{"version":3,"sources":["fuji.js"],"names":["nowTheme","document","body","getAttribute","window","matchMedia","matches","updateMeidumTheme","mediumInst","targetTheme","getNowTheme","detach","mediumZoom","background","updateUtterancesTheme","utterancesFrame","contentWindow","postMessage","type","theme","querySelector","addEventListener","loadComment","secondQueryOfToc","forEach","querySelectorAll","parent","innerText","value","setAttribute","key","documentElement","scrollTop","domTheme","systemTheme","localStorage","setItem","commentArea","DISQUS","reset","reload"],"mappings":"aAII,SAAIA,cAAJ,IAAIA,EAAWC,SAASC,KAAKC,aAAa,cAC1C,MAAiB,SAAbH,EACOI,OAAOC,WAAW,gCAAgCC,QAAU,OAAS,QAExD,SAAbN,EAAsB,OAAS,QAK9C,SAASO,kBAAkBC,GACvB,IAAIC,EAAcC,cACdF,IAAAA,EAAYG,SAGRH,EAFJ,SAAAA,EAEiBI,WAAW,gBAAiB,CADzCH,WAAgB,YAChBG,WAAA,gBAAA,CAGGC,WAAA,aASf,SAASC,sBAAsBC,GAC3B,IAAIN,EAAcC,cADtBK,IACsBL,SAAdD,EAGIM,EAAgBC,cAAcC,YAFlCF,CACeG,KAAK,YAChBH,MAAgBC,eAGD,uBAKfD,EAAgBC,cAAcC,YAEhB,CACCC,KAAA,YAEXC,MAAA,gBAGX,wBAIDlB,SAASmB,cAAc,gCACvBnB,SAASmB,cAAc,+BAA+BC,iBAAiB,QAASC,aAMhFC,IAeAf,WAfAe,iBAAiBC,SAAQC,iBAAaC,sBAClC,EAAAH,iBAAUI,QACNC,iBAAMC,QAAa,SAAAD,EAASE,EAAAJ,GAC/B,KAAAE,EAAAD,WAHLC,EAAAC,aAAA,QAAA,oBAUH5B,SAEDmB,cAAA,wBAAAC,iBAAA,QAAA,WAHIpB,SAAS8B,gBAAgBC,UAAY,IAMrCxB,WACgB,SAAZK,cADJD,WAAA,gBAAA,CAGGC,WAAA,YACHD,WAAA,gBAAA,CAKJC,WAAA,YAGIZ,SAAIgC,cAAWhC,yBAA2BoB,iBAA1C,QAAA,WACA,IAAIa,EAAWxB,cADXuB,EAAWhC,SAASC,KAAKC,aAAa,cAGtC8B,EAAa7B,OAAQC,WAAA,gCAAAC,QAAA,OAAA,QAEPuB,SAAd5B,GAFJA,SAIWgC,KAAQJ,aAAc,aAAA,UAAA7B,EAAA,OAAA,SAC7BmC,aAAAC,QAAA,kBAAA,UAAApC,EAAA,OAAA,UACc6B,UAAL3B,GAETiC,SAAaC,KAAAA,aAAQ,aAAmBF,QAExCC,aAAAC,QAAA,kBAAA,QAAAF,EAAA,OAAA,UAGAC,SAAaC,KAAAA,aAAQ,aAAmBF,SAAxCC,aAAaC,QAAQ,kBAAmC,SAAhBF,EAA0B,OAAS,UAI/E3B,kBAAkBC,YAGlB,IAAI6B,EAAcpC,SAASmB,cAAc,iBAEtBnB,SAAAmB,cAAA,+BAAAjB,aAAA,WAEkC,eAA7CW,EAAAA,aAA+BM,iBAClCN,sBAAAb,SAAAmB,cAAA,yBACgD,WAA7CiB,EAAYlC,aAAa,iBACnBmC,OAAOC,MAAA,CACDC,QAAA","file":"fuji.min.js","sourcesContent":["'use strict';\r\n\r\n// get current theme\r\nfunction getNowTheme() {\r\n let nowTheme = document.body.getAttribute('data-theme');\r\n if (nowTheme === 'auto') {\r\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\r\n } else {\r\n return nowTheme === 'dark' ? 'dark' : 'light';\r\n }\r\n}\r\n\r\n// update medium-zoom theme\r\nfunction updateMeidumTheme(mediumInst) {\r\n let targetTheme = getNowTheme();\r\n if (mediumInst) {\r\n mediumInst.detach();\r\n if (targetTheme === 'dark') {\r\n mediumInst = mediumZoom('.img-zoomable', {\r\n background: '#2f3136',\r\n });\r\n } else {\r\n mediumInst = mediumZoom('.img-zoomable', {\r\n background: '#fffffd',\r\n });\r\n }\r\n }\r\n}\r\n\r\n// update utterances theme\r\nfunction updateUtterancesTheme(utterancesFrame) {\r\n let targetTheme = getNowTheme();\r\n if (utterancesFrame) {\r\n if (targetTheme === 'dark') {\r\n utterancesFrame.contentWindow.postMessage(\r\n {\r\n type: 'set-theme',\r\n theme: 'photon-dark',\r\n },\r\n 'https://utteranc.es'\r\n );\r\n } else {\r\n utterancesFrame.contentWindow.postMessage(\r\n {\r\n type: 'set-theme',\r\n theme: 'github-light',\r\n },\r\n 'https://utteranc.es'\r\n );\r\n }\r\n }\r\n}\r\n\r\n// load comment button only when comment area exist\r\nif (document.querySelector('span.post-comment-notloaded')) {\r\n document.querySelector('span.post-comment-notloaded').addEventListener('click', loadComment);\r\n}\r\n\r\n// remove empty ul in toc if article only have ## and ###\r\nvar secondQueryOfToc = document.querySelectorAll('.sidebar-toc ul ul');\r\nif (secondQueryOfToc.length > 0) {\r\n secondQueryOfToc.forEach((value, key, parent) => {\r\n if (value.innerText === '') {\r\n value.setAttribute('style', 'display: none;');\r\n }\r\n });\r\n}\r\n\r\n// to-top button\r\ndocument.querySelector('.btn .btn-scroll-top').addEventListener('click', () => {\r\n document.documentElement.scrollTop = 0;\r\n});\r\n\r\n// init medium-zoom\r\nvar mediumInst; // medium-zoom instance\r\nif (getNowTheme() === 'dark') {\r\n mediumInst = mediumZoom('.img-zoomable', {\r\n background: '#2f3136',\r\n });\r\n} else {\r\n mediumInst = mediumZoom('.img-zoomable', {\r\n background: '#fffffd',\r\n });\r\n}\r\n\r\n// theme switch button\r\ndocument.querySelector('.btn .btn-toggle-mode').addEventListener('click', () => {\r\n let nowTheme = getNowTheme();\r\n let domTheme = document.body.getAttribute('data-theme');\r\n let systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\r\n\r\n if (domTheme === 'auto') {\r\n // if now in auto mode, switch to user mode\r\n document.body.setAttribute('data-theme', nowTheme === 'light' ? 'dark' : 'light');\r\n localStorage.setItem('fuji_data-theme', nowTheme === 'light' ? 'dark' : 'light');\r\n } else if (domTheme === 'light') {\r\n // if now in user mode and light mode\r\n document.body.setAttribute('data-theme', 'dark');\r\n // if the theme want to switch is system theme\r\n localStorage.setItem('fuji_data-theme', systemTheme === 'dark' ? 'auto' : 'dark');\r\n } else {\r\n // if now in user mode and dark mode\r\n document.body.setAttribute('data-theme', 'light');\r\n // if the theme want to switch is system theme\r\n localStorage.setItem('fuji_data-theme', systemTheme === 'light' ? 'auto' : 'light');\r\n }\r\n\r\n // update medium background\r\n updateMeidumTheme(mediumInst);\r\n // switch comment area theme\r\n // only works after comment area are initialized\r\n let commentArea = document.querySelector('.post-comment');\r\n let commentStatus = document.querySelector('span.post-comment-notloaded').getAttribute('style');\r\n if (commentStatus) {\r\n if (commentArea.getAttribute('data-comment') === 'utterances') {\r\n updateUtterancesTheme(document.querySelector('.post-comment iframe'));\r\n }\r\n if (commentArea.getAttribute('data-comment') === 'disqus') {\r\n DISQUS.reset({\r\n reload: true,\r\n });\r\n }\r\n }\r\n});\r\n"]}