diff options
author | sun6eal <jacob.sun.meta@gmail.com> | 2019-05-20 08:54:20 +0300 |
---|---|---|
committer | sun6eal <jacob.sun.meta@gmail.com> | 2019-05-20 08:54:20 +0300 |
commit | 91b7cf5c4bac458921daa7a717fdafae84a1c893 (patch) | |
tree | 983b24499ec9aec8bf05454ec9eb80b44cebb61e | |
parent | e75fc4edb352d915facd7ddd989fb6a223b2c5df (diff) |
updatev0.3.0
-rw-r--r-- | layouts/partials/js.html | 2 | ||||
-rw-r--r-- | layouts/partials/loader.html | 3 | ||||
-rw-r--r-- | src/css/base.scss | 73 | ||||
-rw-r--r-- | src/css/light.scss | 10 | ||||
-rw-r--r-- | src/css/var.scss | 1 | ||||
-rw-r--r-- | src/index.js | 8 | ||||
-rw-r--r-- | src/js/css_template.js | 3 | ||||
-rw-r--r-- | src/js/loader.js | 75 | ||||
-rw-r--r-- | src/js/main.js | 78 | ||||
-rw-r--r-- | static/css/main.css | 654 | ||||
-rw-r--r-- | static/js/main.js | 399 |
11 files changed, 1110 insertions, 196 deletions
diff --git a/layouts/partials/js.html b/layouts/partials/js.html index ef27b98..57a8be8 100644 --- a/layouts/partials/js.html +++ b/layouts/partials/js.html @@ -9,4 +9,6 @@ <script>hljs.initHighlightingOnLoad();</script> {{ end }} +{{- if not .Site.IsServer -}} {{ template "_internal/google_analytics_async.html" . }} +{{- end -}} diff --git a/layouts/partials/loader.html b/layouts/partials/loader.html index 48a0327..7cd06e6 100644 --- a/layouts/partials/loader.html +++ b/layouts/partials/loader.html @@ -1,8 +1,7 @@ -<div class="loader"> + <div class="top"> <img class="logo" src="{{ "images/logo.svg" | absURL }}" alt="logo" /> </div> <div class="bottom"> <img class="logo" src="{{ "images/logo.svg" | absURL }}" alt="logo" /> </div> -</div> diff --git a/src/css/base.scss b/src/css/base.scss index 6d54a9d..fb727a2 100644 --- a/src/css/base.scss +++ b/src/css/base.scss @@ -9,6 +9,7 @@ body { word-break : break-all; box-sizing : border-box; font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, WenQuanYi Micro Hei, sans-serif; + overflow: hidden; } img { @@ -56,63 +57,47 @@ img { a:hover { text-decoration: none !important; } -body { - overflow: auto; - .loader { + +body.loaded { + .top { display: none; } -} -body.loading { - overflow: hidden; - .loader { - display: block; + .bottom { + display: none; } } -body.loaded { - .loader { - background:transparent; + +.top img.logo, .bottom img.logo { + display: block; + margin: 0 auto; + position: relative; +} +.top, .bottom { + position: absolute; + width: 100vw; + height: 50vh; + z-index: 99999; + overflow: hidden; +} +.top { + background: $dark_main_bg; + top: -50vh; + img.logo { + bottom: -100%; + transform: translateY(-50%); } } -.loader { +.bottom { background: $dark_main_bg; - width: 100vw; - height: 100vh; - position: absolute; - top: 0; - left: 0; - z-index: 999999; + top: 100vh; img.logo { - display: block; - margin: 0 auto; - position: relative; - } - .top, .bottom { - position: absolute; - width: 100vw; - height: 50vh; - z-index: 99999; - overflow: hidden; - } - .top { - background: rgb(102, 204, 255); - top: -50vh; - img.logo { - bottom: -100%; - transform: translateY(-50%); - } + transform: translateY(-50%); } - .bottom { - background: rgb(190, 251, 191); - top: 100vh; - img.logo { - transform: translateY(-50%); - } - - } } + .header, .footer { height: 5vh; diff --git a/src/css/light.scss b/src/css/light.scss index 9900aba..97e4d14 100644 --- a/src/css/light.scss +++ b/src/css/light.scss @@ -64,7 +64,7 @@ body.light-mode, .light-mode pre, .light-mode code { - background: #DDDDDD; + background: $light_header_bg; } /* sidebar fg */ @@ -87,7 +87,7 @@ body.light-mode, .light-mode .logo-link, .light-mode .dialog, .light-mode .dialog button { - background: #DDDDDD; + background: $light_header_bg; } .light-mode .header .menu>li:hover, @@ -130,3 +130,9 @@ body.light-mode, .light-mode .title { text-shadow: none; } + +.light-mode { + .top, .bottom { + background: $light_header_bg; + } +} diff --git a/src/css/var.scss b/src/css/var.scss index 1cd4301..f32cb9b 100644 --- a/src/css/var.scss +++ b/src/css/var.scss @@ -1,2 +1,3 @@ $light_main_bg: #FFF; $dark_main_bg: #282C34; +$light_header_bg: #DDD; diff --git a/src/index.js b/src/index.js index 648f378..eb112df 100644 --- a/src/index.js +++ b/src/index.js @@ -6,13 +6,13 @@ import { activateSidebarToggle, activateModeSwitcher, activateSidebarDrag, - activateDialog, - getLoader + activateDialog } from './js/main' +import { getLoader } from './js/loader' const loader = getLoader() onEvent('DOMContentLoaded', e => { console.log('page loaded!', Date.now()) - loader.close() + loader.loading() const doms = {} doms.pane = qs('.sidebar') doms.main = qs('.main') @@ -23,5 +23,5 @@ onEvent('DOMContentLoaded', e => { activateSidebarToggle(doms) activateModeSwitcher(doms, loader) activateSidebarDrag(doms) - activateDialog(doms) + activateDialog(doms, loader) }, 0, document) diff --git a/src/js/css_template.js b/src/js/css_template.js index 0359f8e..cd2f371 100644 --- a/src/js/css_template.js +++ b/src/js/css_template.js @@ -88,7 +88,8 @@ const wildStyle = styleTemplate` .wild-mode .footer, .wild-mode .header .sub-menu li:hover, .wild-mode .sidebar a:hover, - .wild-mode .logo-link { + .wild-mode .logo-link, + .wild-mode .top, .wild-mode .bottom { background: ${'dark'}; } .wild-mode .header .menu>li:hover, diff --git a/src/js/loader.js b/src/js/loader.js new file mode 100644 index 0000000..7987f74 --- /dev/null +++ b/src/js/loader.js @@ -0,0 +1,75 @@ +import { qs, getProgress } from './helpers' +import { easeElasticOut } from 'd3-ease' +export function getLoader () { + let topEle = qs('.top') + let bottomEle = qs('.bottom') + let distance = document.documentElement.clientHeight / 2 + let ticket = false + let closed = false + let opening = false + let openWaiting = false + const animation = (ease, cb, duration, finaly = () => {}) => { + const tick = () => { + let progress = Math.min(ease((getProgress(data))), 1) + // d3.easeExpOut has problem, t can not reach to 1, so I mannually fix it + // progress = progress > 0.999 ? 1 : progress + if (progress < 1) { + cb(progress) + window.requestAnimationFrame(tick) + } else { + window.performance.clearMarks(data.id) + cb(progress) + finaly() + } + } + const data = { + duration, + id: window.requestAnimationFrame(tick) + } + } + const loading = () => { + console.log('loading', ticket) + if (ticket) return + ticket = true + close(() => { + closed = true + if (openWaiting) { + open() + } + }) + } + const loaded = () => { + console.log('loaded: ', ticket, opening) + if (!ticket) return + if (opening) return + opening = true + if (closed) { + open() + } else { + openWaiting = true + } + } + function close (cb) { + animation(easeElasticOut, progress => { + topEle.style.top = -((1 - progress) * distance) + 'px' + bottomEle.style.top = (1 - progress) * distance + distance + 'px' + }, 1000, cb) + } + + function open (cb) { + animation(easeElasticOut, progress => { + topEle.style.top = -(progress * distance) + 'px' + bottomEle.style.top = progress * distance + distance + 'px' + }, 1000, () => { + opening = false + closed = false + openWaiting = false + ticket = false + }) + } + + return { + loading, + loaded + } +} diff --git a/src/js/main.js b/src/js/main.js index 8476750..03e53c3 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -9,12 +9,11 @@ import { onEvent, onPointerMove, ls, - download, - getProgress + download } from './helpers' import wildStyle from './css_template' import { genFile } from './file_template' -import { easeBounceOut, easeBounceIn } from 'd3-ease' + // sidebar function dragging wrapper function activateSidebarDrag (doms) { const state = { @@ -127,7 +126,7 @@ function tryLoadMode (doms, loader) { ls.get('wild_style')) document.body.appendChild(wildEle) } - loader.open() + loader.loaded() } function activateModeSwitcher (doms, loader) { onEvent('click', e => { @@ -146,6 +145,7 @@ function activateModeSwitcher (doms, loader) { console.error('Theme name not found, probably missing an "Identifier" field in Config file.') return } + loader.loading() toMode(theme + '-mode') if (theme === 'wild') { const wildEle = qs('.wild-ele') @@ -157,6 +157,7 @@ function activateModeSwitcher (doms, loader) { } ls.set('wild_style', style) } + loader.loaded() }, 0, '#theme-switcher') } @@ -164,7 +165,7 @@ function activateModeSwitcher (doms, loader) { // removeClass(cloak, 'hide') // } -function activateDialog (doms) { +function activateDialog (doms, loader) { onEvent('click', e => { removeClass('.dialog', 'show') }, 0, '.close-dialog') @@ -182,8 +183,10 @@ function activateDialog (doms) { window.alert('Mess up builtin themes.') return } + loader.loading() exportWild(themeName) removeClass('.dialog', 'show') + loader.loaded() }, 0, '.export') } function exportWild (themeName) { @@ -199,74 +202,11 @@ function generateFile (themeName) { return file + style } -function getLoader () { - let topEle = qs('.top') - let bottomEle = qs('.bottom') - // let distance = document.documentElement.clientHeight / 2 - let distance = 312.5 - console.log('distance', distance) - let isLoaded = false - let isLoadingDone = false - - const animation = (ease, cb, duration, finaly = () => {}) => { - const tick = () => { - const progress = Math.min(ease((getProgress(data))), 1) - if (progress < 1) { - cb(progress) - window.requestAnimationFrame(tick) - } else { - window.performance.clearMarks(data.id) - cb(progress) - finaly() - } - } - const data = { - duration, - id: window.requestAnimationFrame(tick) - } - } - function close (cb) { - console.log('close') - removeClass(document.body, 'loaded') - addClass(document.body, 'loading') - animation(easeBounceIn, progress => { - topEle.style.top = -((1 - progress) * distance) + 'px' - bottomEle.style.top = (1 - progress) * distance + distance + 'px' - }, 1000, () => { - isLoadingDone = true - if (isLoaded) open() - }) - } - - function open (cb) { - isLoaded = true - if (isLoadingDone) { - console.log('open') - addClass(document.body, 'loaded') - animation(easeBounceOut, progress => { - topEle.style.top = -(progress * distance) + 'px' - bottomEle.style.top = progress * distance + distance + 'px' - }, 1000, afterOpen) - } - } - - const afterOpen = () => { - removeClass(document.body, 'loading') - isLoadingDone = false - isLoaded = false - } - return { - close, - open - } -} - export { tryLoadMode, tryRestoreSidebar, activateSidebarToggle, activateModeSwitcher, activateSidebarDrag, - activateDialog, - getLoader + activateDialog } diff --git a/static/css/main.css b/static/css/main.css index ed20ab6..994e174 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -1 +1,653 @@ -html{font-size:calc(1vh + 1vw)}body{margin:0;word-break:break-all;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif}img{height:auto;width:100%;max-width:40vw}.clearfix:after{content:"";display:table;clear:both}.left{float:left}.right{float:right}.hide{height:0;opacity:0}.btn{text-decoration:none;cursor:pointer}.control{list-style-type:none;margin:0;padding:0}.no-break{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a:hover{text-decoration:none!important}body{overflow:auto}body .loader{display:none}body.loading{overflow:hidden}body.loading .loader{display:block}body.loaded .loader{background:transparent}.loader{background:#282c34;width:100vw;height:100vh;position:absolute;top:0;left:0;z-index:999999}.loader img.logo{display:block;margin:0 auto;position:relative}.loader .bottom,.loader .top{position:absolute;width:100vw;height:50vh;z-index:99999;overflow:hidden}.loader .top{background:#6cf;top:-50vh}.loader .top img.logo{bottom:-100%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.loader .bottom{background:#befbbf;top:100vh}.loader .bottom img.logo{-webkit-transform:translateY(-50%);transform:translateY(-50%)}.footer,.header{height:5vh}.footer a,.header a{line-height:5vh;display:block;padding-left:.8rem;padding-right:.8rem}.footer ul,.header>ul{margin:0 1vw}.footer li,.menu>li{float:left}.menu>li{position:relative}.footer .social{float:left}.footer .status{float:right}.middle{height:90vh}.sidebar{width:20vw;float:left}.main{margin-left:20vw;-webkit-box-sizing:border-box;box-sizing:border-box;padding:2vw 3vw;overflow-y:auto;position:relative}.main,.sidebar{height:100%}.sidebar.hide{display:none}.sidebar.hide+.main{margin-left:0!important}.intro{text-align:center;position:absolute;top:50%;left:0;right:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.intro img.logo{display:inline}.header ul ul{display:none;position:absolute;top:100%;left:0;width:14em;z-index:999}.header li:hover>ul{display:block}.main{font-size:1rem;line-height:2}.header .sub-menu a{padding:0 2vw}.sidebar{overflow-y:auto}.sidebar a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar ul{margin-top:1rem}.sidebar a,.taxonomy-key{display:block;line-height:2;padding:0 2vw}.logo-link{height:5vh;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:1.2vh}.logo{height:70%;width:auto;display:block}.logo-container{display:none}body.dark-mode .logo-default,body.light-mode .logo-light,body.wild-mode .logo-wild{display:list-item}body.dark-mode .intro .logo-default,body.light-mode .intro .logo-light,body.wild-mode .intro .logo-wild{display:block}hr{margin:1rem 0}pre{padding:.8rem 1rem}code,pre{overflow:auto}code{font-size:.8rem;font-family:Fira Code,Inconsolata,Deja Vu Sans Mono,Source Code Pro,Consolas,monospace;padding:.2rem .6rem}.icon{width:1rem;height:1rem;display:inline-block}.footer .icon{position:relative;top:.2rem}.sidebar .icon{margin-right:.5rem;position:relative;top:.1rem}.article-meta .icon{position:relative;top:calc(.1rem + 2px)}.article-tags .icon{position:relative;top:-.2rem}.article-categories li:first-child .icon{top:calc(.1rem + 1px)}.article{text-align:left}.title{font-weight:700;margin:0 0 .5rem}.item{margin-bottom:1rem}.item .title{margin:0}.article-meta{font-size:.8rem;margin-bottom:1rem}.article-meta ul{list-style-type:none;margin:0}.article-meta-splitter,.article-meta li{margin-bottom:.5rem}.article-meta li{float:left;margin-right:1rem}.article-meta li:first-child{margin-right:.5rem}.main .article-tags a{padding:0 .8rem;border-radius:1px;display:block;line-height:1.4}.main p a{margin:0 .3rem}.article-meta a,.list a,.pagination a,.terms-list a,.title a,a.terms-title{text-decoration:none}.pagination a,.terms-list a{font-size:.8rem}.pagination a{padding:0 .5rem}.pagination{position:absolute;left:0;right:0;bottom:0;padding:0 2rem}.pagination ul{list-style-type:none;margin-left:0}.code-toolbar>.toolbar a{border-bottom:none;display:block}.local-info{font-size:.8rem;padding:.8rem;margin-bottom:1rem}.footer a,.header a,.sidebar a,.taxonomy-key{font-size:.81rem}.main a{color:#9cf}.main .article-tags a{background:#327e36;color:#fff}.dialog label,.local-info{background:#ff9;color:#333;-webkit-box-shadow:2px 3px 1px 1px #000;box-shadow:2px 3px 1px 1px #000}.dialog,.footer a:hover,.header .menu>li:hover,.logo-link,.main,body{background:#282c34}.dialog .title,.header .sub-menu a,.main,.main .title a,.sidebar a,.taxonomy-key,blockquote.twitter-tweet{color:#c6c6c7}.icon{background:#c6c6c7}.article-meta,.footnotes,.item-meta{color:#939bab}td,th{border-bottom:1px solid #939bab}hr{border:1px solid #939bab}.pagination{background:#939bab}.sidebar{background:#16191d}.header ul ul{-webkit-box-shadow:0 .1em .2em 0 #060606;box-shadow:0 .1em .2em 0 #060606}.header ul ul,.pagination a:hover{background:#1a1d21}code{background:#1a1c21}.count,.taxonomy-key{color:#939394}.footer,.header,.header .sub-menu li:hover,.sidebar a:hover{background:#21252b}.footer a,.footer time,.header a,.pagination a{color:#797d85}.footer .icon{background-color:#797d85}.main h1,.main h2,.main h3,.main h4,.main h5,.main h6,.title{text-shadow:0 1px 1px #000}.dialog{width:100vw;height:0;position:absolute;top:0;left:0;z-index:9999;overflow:hidden;font-size:1rem}.dialog .wrapper{padding:1rem}.dialog footer,.dialog header,.dialog main{margin-bottom:2rem}.dialog header{margin-top:-2rem}.dialog div{margin-bottom:1rem}.dialog.show{height:100vh}.dialog label{display:block;margin-bottom:1rem;padding:.8rem 1rem;-webkit-box-shadow:none;box-shadow:none}.dialog input{padding:.3rem}.dialog button,.dialog input{font-size:1.2rem;float:right}.dialog button{padding:.3rem 1rem;background:#3083fe;color:#fff}.dialog .close-dialog{font-size:3rem;background:none;border:none}.light-mode .dialog button,.light-mode .main a{color:#3083fe}.light-mode .main .article-tags a{background:#35cc81;color:#fff}.light-mode .local-info{background:#efecaa;color:#000;-webkit-box-shadow:none;box-shadow:none}.light-mode .main,body.light-mode{background:#fff}.light-mode .dialog .title,.light-mode .main,.light-mode .main .title a,.light-mode .sidebar a,.light-mode .taxonomy-key,.light-mode blockquote.twitter-tweet{color:#4c4c4c}.light-mode .icon{background:#4c4c4c}.light-mode .article-meta,.light-mode .footnotes,.light-mode .item-meta{color:#999}.light-mode td,.light-mode th{border-bottom:1px solid #ccc}.light-mode hr{border:1px solid #ccc}.light-mode .pagination{background:#ccc}.light-mode .sidebar{background:#eee}.light-mode code,.light-mode pre{background:#ddd}.light-mode .sidebar a{color:#3f3f3f}.light-mode .count,.light-mode .taxonomy-key{color:#777}.light-mode .dialog,.light-mode .dialog button,.light-mode .footer,.light-mode .header,.light-mode .header .sub-menu li:hover,.light-mode .logo-link,.light-mode .sidebar a:hover{background:#ddd}.light-mode .footer a:hover,.light-mode .header .menu>li:hover{background:#ccc}.light-mode .header ul ul{-webkit-box-shadow:0 .1em .2em 0 #aaa;box-shadow:0 .1em .2em 0 #aaa}.light-mode .header ul ul,.light-mode .pagination a:hover{background:#ccc}.light-mode .footer a,.light-mode .footer time,.light-mode .header a,.light-mode .pagination a{color:#323232}.light-mode .header .sub-menu a{color:#0b0b0b}.light-mode .footer .icon{background-color:#323232}.light-mode .main h1,.light-mode .main h2,.light-mode .main h3,.light-mode .main h4,.light-mode .main h5,.light-mode .main h6,.light-mode .title,.wild-mode .main h1,.wild-mode .main h2,.wild-mode .main h3,.wild-mode .main h4,.wild-mode .main h5,.wild-mode .main h6,.wild-mode .title{text-shadow:none}.wild-mode .local-info{-webkit-box-shadow:none;box-shadow:none}.icon-tags{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='pricetags'%3E%3Cpath d='M12.87 22a1.84 1.84 0 0 1-1.29-.53l-6.41-6.42a1 1 0 0 1-.29-.61L4 5.09a1 1 0 0 1 .29-.8 1 1 0 0 1 .8-.29l9.35.88a1 1 0 0 1 .61.29l6.42 6.41a1.82 1.82 0 0 1 0 2.57l-7.32 7.32a1.82 1.82 0 0 1-1.28.53zm-6-8.11l6 6 7.05-7.05-6-6-7.81-.73z'/%3E%3Ccircle cx='10.5' cy='10.5' r='1.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='pricetags'%3E%3Cpath d='M12.87 22a1.84 1.84 0 0 1-1.29-.53l-6.41-6.42a1 1 0 0 1-.29-.61L4 5.09a1 1 0 0 1 .29-.8 1 1 0 0 1 .8-.29l9.35.88a1 1 0 0 1 .61.29l6.42 6.41a1.82 1.82 0 0 1 0 2.57l-7.32 7.32a1.82 1.82 0 0 1-1.28.53zm-6-8.11l6 6 7.05-7.05-6-6-7.81-.73z'/%3E%3Ccircle cx='10.5' cy='10.5' r='1.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.icon-categories{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M19.5 20.5h-15A2.47 2.47 0 0 1 2 18.07V5.93A2.47 2.47 0 0 1 4.5 3.5h4.6a1 1 0 0 1 .77.37l2.6 3.18h7A2.47 2.47 0 0 1 22 9.48v8.59a2.47 2.47 0 0 1-2.5 2.43zM4 13.76v4.31a.46.46 0 0 0 .5.43h15a.46.46 0 0 0 .5-.43V9.48a.46.46 0 0 0-.5-.43H12a1 1 0 0 1-.77-.37L8.63 5.5H4.5a.46.46 0 0 0-.5.43z' data-name='folder'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M19.5 20.5h-15A2.47 2.47 0 0 1 2 18.07V5.93A2.47 2.47 0 0 1 4.5 3.5h4.6a1 1 0 0 1 .77.37l2.6 3.18h7A2.47 2.47 0 0 1 22 9.48v8.59a2.47 2.47 0 0 1-2.5 2.43zM4 13.76v4.31a.46.46 0 0 0 .5.43h15a.46.46 0 0 0 .5-.43V9.48a.46.46 0 0 0-.5-.43H12a1 1 0 0 1-.77-.37L8.63 5.5H4.5a.46.46 0 0 0-.5.43z' data-name='folder'/%3E%3C/g%3E%3C/svg%3E")}.icon-post{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='file-text'%3E%3Cpath d='M15 16H9a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2zm-6-2h3a1 1 0 0 0 0-2H9a1 1 0 0 0 0 2z'/%3E%3Cpath d='M19.74 8.33l-5.44-6a1 1 0 0 0-.74-.33h-7A2.53 2.53 0 0 0 4 4.5v15A2.53 2.53 0 0 0 6.56 22h10.88A2.53 2.53 0 0 0 20 19.5V9a1 1 0 0 0-.26-.67zM14 5l2.74 3h-2a.79.79 0 0 1-.74-.85zm3.44 15H6.56a.53.53 0 0 1-.56-.5v-15a.53.53 0 0 1 .56-.5H12v3.15A2.79 2.79 0 0 0 14.71 10H18v9.5a.53.53 0 0 1-.56.5z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='file-text'%3E%3Cpath d='M15 16H9a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2zm-6-2h3a1 1 0 0 0 0-2H9a1 1 0 0 0 0 2z'/%3E%3Cpath d='M19.74 8.33l-5.44-6a1 1 0 0 0-.74-.33h-7A2.53 2.53 0 0 0 4 4.5v15A2.53 2.53 0 0 0 6.56 22h10.88A2.53 2.53 0 0 0 20 19.5V9a1 1 0 0 0-.26-.67zM14 5l2.74 3h-2a.79.79 0 0 1-.74-.85zm3.44 15H6.56a.53.53 0 0 1-.56-.5v-15a.53.53 0 0 1 .56-.5H12v3.15A2.79 2.79 0 0 0 14.71 10H18v9.5a.53.53 0 0 1-.56.5z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.article-meta .icon-date{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='calendar'%3E%3Cpath d='M18 4h-1V3a1 1 0 0 0-2 0v1H9V3a1 1 0 0 0-2 0v1H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h12a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3zM6 6h1v1a1 1 0 0 0 2 0V6h6v1a1 1 0 0 0 2 0V6h1a1 1 0 0 1 1 1v4H5V7a1 1 0 0 1 1-1zm12 14H6a1 1 0 0 1-1-1v-6h14v6a1 1 0 0 1-1 1z'/%3E%3Ccircle cx='8' cy='16' r='1'/%3E%3Cpath d='M16 15h-4a1 1 0 0 0 0 2h4a1 1 0 0 0 0-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='calendar'%3E%3Cpath d='M18 4h-1V3a1 1 0 0 0-2 0v1H9V3a1 1 0 0 0-2 0v1H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h12a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3zM6 6h1v1a1 1 0 0 0 2 0V6h6v1a1 1 0 0 0 2 0V6h1a1 1 0 0 1 1 1v4H5V7a1 1 0 0 1 1-1zm12 14H6a1 1 0 0 1-1-1v-6h14v6a1 1 0 0 1-1 1z'/%3E%3Ccircle cx='8' cy='16' r='1'/%3E%3Cpath d='M16 15h-4a1 1 0 0 0 0 2h4a1 1 0 0 0 0-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.github{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M12 1A10.89 10.89 0 0 0 1 11.77 10.79 10.79 0 0 0 8.52 22c.55.1.75-.23.75-.52v-1.83c-3.06.65-3.71-1.44-3.71-1.44a2.86 2.86 0 0 0-1.22-1.58c-1-.66.08-.65.08-.65a2.31 2.31 0 0 1 1.68 1.11 2.37 2.37 0 0 0 3.2.89 2.33 2.33 0 0 1 .7-1.44c-2.44-.27-5-1.19-5-5.32a4.15 4.15 0 0 1 1.11-2.91 3.78 3.78 0 0 1 .11-2.84s.93-.29 3 1.1a10.68 10.68 0 0 1 5.5 0c2.1-1.39 3-1.1 3-1.1a3.78 3.78 0 0 1 .11 2.84A4.15 4.15 0 0 1 19 11.2c0 4.14-2.58 5.05-5 5.32a2.5 2.5 0 0 1 .75 2v2.95c0 .35.2.63.75.52A10.8 10.8 0 0 0 23 11.77 10.89 10.89 0 0 0 12 1' data-name='github'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M12 1A10.89 10.89 0 0 0 1 11.77 10.79 10.79 0 0 0 8.52 22c.55.1.75-.23.75-.52v-1.83c-3.06.65-3.71-1.44-3.71-1.44a2.86 2.86 0 0 0-1.22-1.58c-1-.66.08-.65.08-.65a2.31 2.31 0 0 1 1.68 1.11 2.37 2.37 0 0 0 3.2.89 2.33 2.33 0 0 1 .7-1.44c-2.44-.27-5-1.19-5-5.32a4.15 4.15 0 0 1 1.11-2.91 3.78 3.78 0 0 1 .11-2.84s.93-.29 3 1.1a10.68 10.68 0 0 1 5.5 0c2.1-1.39 3-1.1 3-1.1a3.78 3.78 0 0 1 .11 2.84A4.15 4.15 0 0 1 19 11.2c0 4.14-2.58 5.05-5 5.32a2.5 2.5 0 0 1 .75 2v2.95c0 .35.2.63.75.52A10.8 10.8 0 0 0 23 11.77 10.89 10.89 0 0 0 12 1' data-name='github'/%3E%3C/g%3E%3C/svg%3E")}.twitter{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M8.08 20A11.07 11.07 0 0 0 19.52 9 8.09 8.09 0 0 0 21 6.16a.44.44 0 0 0-.62-.51 1.88 1.88 0 0 1-2.16-.38 3.89 3.89 0 0 0-5.58-.17A4.13 4.13 0 0 0 11.49 9C8.14 9.2 5.84 7.61 4 5.43a.43.43 0 0 0-.75.24 9.68 9.68 0 0 0 4.6 10.05A6.73 6.73 0 0 1 3.38 18a.45.45 0 0 0-.14.84A11 11 0 0 0 8.08 20' data-name='twitter'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M8.08 20A11.07 11.07 0 0 0 19.52 9 8.09 8.09 0 0 0 21 6.16a.44.44 0 0 0-.62-.51 1.88 1.88 0 0 1-2.16-.38 3.89 3.89 0 0 0-5.58-.17A4.13 4.13 0 0 0 11.49 9C8.14 9.2 5.84 7.61 4 5.43a.43.43 0 0 0-.75.24 9.68 9.68 0 0 0 4.6 10.05A6.73 6.73 0 0 1 3.38 18a.45.45 0 0 0-.14.84A11 11 0 0 0 8.08 20' data-name='twitter'/%3E%3C/g%3E%3C/svg%3E")}.facebook{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M17 3.5a.5.5 0 0 0-.5-.5H14a4.77 4.77 0 0 0-5 4.5v2.7H6.5a.5.5 0 0 0-.5.5v2.6a.5.5 0 0 0 .5.5H9v6.7a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-6.7h2.62a.5.5 0 0 0 .49-.37l.72-2.6a.5.5 0 0 0-.48-.63H13V7.5a1 1 0 0 1 1-.9h2.5a.5.5 0 0 0 .5-.5z' data-name='facebook'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M17 3.5a.5.5 0 0 0-.5-.5H14a4.77 4.77 0 0 0-5 4.5v2.7H6.5a.5.5 0 0 0-.5.5v2.6a.5.5 0 0 0 .5.5H9v6.7a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-6.7h2.62a.5.5 0 0 0 .49-.37l.72-2.6a.5.5 0 0 0-.48-.63H13V7.5a1 1 0 0 1 1-.9h2.5a.5.5 0 0 0 .5-.5z' data-name='facebook'/%3E%3C/g%3E%3C/svg%3E")}.behance{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='behance'%3E%3Cpath d='M14.76 11.19a1 1 0 0 0-1 1.09h2.06a1 1 0 0 0-1.06-1.09zM9.49 12.3H8.26v1.94h1c1 0 1.44-.33 1.44-1s-.46-.94-1.21-.94zm.87-1.78c0-.53-.35-.85-.95-.85H8.26v1.74h.85c.89 0 1.25-.32 1.25-.89z'/%3E%3Cpath d='M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zM9.7 15.2H7V8.7h2.7c1.17 0 1.94.61 1.94 1.6a1.4 1.4 0 0 1-1.12 1.43A1.52 1.52 0 0 1 12 13.37c0 1.16-1 1.83-2.3 1.83zm3.55-6h3v.5h-3zM17 13.05h-3.3v.14a1.07 1.07 0 0 0 1.09 1.19.9.9 0 0 0 1-.63H17a2 2 0 0 1-2.17 1.55 2.15 2.15 0 0 1-2.36-2.3v-.44a2.11 2.11 0 0 1 2.28-2.25A2.12 2.12 0 0 1 17 12.58z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='behance'%3E%3Cpath d='M14.76 11.19a1 1 0 0 0-1 1.09h2.06a1 1 0 0 0-1.06-1.09zM9.49 12.3H8.26v1.94h1c1 0 1.44-.33 1.44-1s-.46-.94-1.21-.94zm.87-1.78c0-.53-.35-.85-.95-.85H8.26v1.74h.85c.89 0 1.25-.32 1.25-.89z'/%3E%3Cpath d='M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zM9.7 15.2H7V8.7h2.7c1.17 0 1.94.61 1.94 1.6a1.4 1.4 0 0 1-1.12 1.43A1.52 1.52 0 0 1 12 13.37c0 1.16-1 1.83-2.3 1.83zm3.55-6h3v.5h-3zM17 13.05h-3.3v.14a1.07 1.07 0 0 0 1.09 1.19.9.9 0 0 0 1-.63H17a2 2 0 0 1-2.17 1.55 2.15 2.15 0 0 1-2.36-2.3v-.44a2.11 2.11 0 0 1 2.28-2.25A2.12 2.12 0 0 1 17 12.58z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.email{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M19 4H5a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3zm0 2l-6.5 4.47a1 1 0 0 1-1 0L5 6z' data-name='email'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M19 4H5a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3zm0 2l-6.5 4.47a1 1 0 0 1-1 0L5 6z' data-name='email'/%3E%3C/g%3E%3C/svg%3E")}.rss{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Ccircle cx='6.18' cy='17.82' r='2.18'/%3E%3Cpath d='M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Ccircle cx='6.18' cy='17.82' r='2.18'/%3E%3Cpath d='M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z'/%3E%3C/svg%3E")}
\ No newline at end of file +html { + font-size: calc(1vh + 1vw); } + +body { + margin: 0; + word-break: break-all; + -webkit-box-sizing: border-box; + box-sizing: border-box; + font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, WenQuanYi Micro Hei, sans-serif; + overflow: hidden; } + +img { + height: auto; + width: 100%; + max-width: 40vw; } + +.clearfix::after { + content: ""; + display: table; + clear: both; } + +.left { + float: left; } + +.right { + float: right; } + +.hide { + height: 0; + opacity: 0; } + +.btn { + text-decoration: none; + cursor: pointer; } + +.control { + list-style-type: none; + margin: 0; + padding: 0; } + +.no-break { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + +a:hover { + text-decoration: none !important; } + +body.loaded .top { + display: none; } + +body.loaded .bottom { + display: none; } + +.top img.logo, .bottom img.logo { + display: block; + margin: 0 auto; + position: relative; } + +.top, .bottom { + position: absolute; + width: 100vw; + height: 50vh; + z-index: 99999; + overflow: hidden; } + +.top { + background: #282C34; + top: -50vh; } + .top img.logo { + bottom: -100%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + +.bottom { + background: #282C34; + top: 100vh; } + .bottom img.logo { + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + +.header, +.footer { + height: 5vh; } + +.header a, +.footer a { + line-height: 5vh; + display: block; + padding-left: 0.8rem; + padding-right: 0.8rem; } + +.header > ul, +.footer ul { + margin: 0 1vw; } + +.menu > li, +.footer li { + float: left; } + +.menu > li { + position: relative; } + +.footer .social { + float: left; } + +.footer .status { + float: right; } + +.middle { + height: 90vh; } + +.sidebar { + width: 20vw; + float: left; } + +.main { + margin-left: 20vw; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 2vw 3vw; + overflow-y: auto; + position: relative; } + +.sidebar, +.main { + height: 100%; } + +.sidebar.hide { + display: none; } + +.sidebar.hide + .main { + margin-left: 0 !important; } + +.intro { + text-align: center; + position: absolute; + top: 50%; + left: 0; + right: 0; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + +.intro img.logo { + display: inline; } + +.header ul ul { + display: none; + position: absolute; + top: 100%; + left: 0; + width: 14em; + z-index: 999; } + +.header li:hover > ul { + display: block; } + +.main { + font-size: 1rem; + line-height: 2; } + +.header .sub-menu a { + padding: 0 2vw; } + +.sidebar { + overflow-y: auto; } + +.sidebar a { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + +.sidebar a, +.taxonomy-key { + display: block; } + +.sidebar ul { + margin-top: 1rem; } + +.sidebar a, +.taxonomy-key { + display: block; + line-height: 2; + padding: 0 2vw; } + +.logo-link { + height: 5vh; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-top: 1.2vh; } + +.logo { + height: 70%; + width: auto; + display: block; } + +.logo-container { + display: none; } + +body.wild-mode .logo-wild { + display: list-item; } + +body.light-mode .logo-light { + display: list-item; } + +body.dark-mode .logo-default { + display: list-item; } + +body.wild-mode .intro .logo-wild { + display: block; } + +body.light-mode .intro .logo-light { + display: block; } + +body.dark-mode .intro .logo-default { + display: block; } + +hr { + margin: 1rem 0; } + +pre { + overflow: auto; + padding: 0.8rem 1rem; } + +code { + overflow: auto; + font-size: 0.8rem; + font-family: 'Fira Code', Inconsolata, 'Deja Vu Sans Mono', 'Source Code Pro', Consolas, monospace; + padding: 0.2rem 0.6rem; } + +.icon { + width: 1rem; + height: 1rem; + display: inline-block; } + +.footer .icon { + position: relative; + top: 0.2rem; } + +.sidebar .icon { + margin-right: 0.5rem; + position: relative; + top: 0.1rem; } + +.article-meta .icon { + position: relative; + top: calc(0.1rem + 2px); } + +.article-tags .icon { + position: relative; + top: -0.2rem; } + +.article-categories li:first-child .icon { + top: calc(0.1rem + 1px); } + +.article { + text-align: left; } + +.title { + font-weight: bold; + margin: 0 0 0.5rem 0; } + +.item { + margin-bottom: 1rem; } + +.item .title { + margin: 0; } + +.article-meta { + font-size: 0.8rem; + margin-bottom: 1rem; } + +.article-meta ul { + list-style-type: none; + margin: 0; } + +.article-meta-splitter { + margin-bottom: 0.5rem; } + +.article-meta li { + float: left; + margin-right: 1rem; + margin-bottom: 0.5rem; } + +.article-meta li:first-child { + margin-right: 0.5rem; } + +.main .article-tags a { + padding: 0rem 0.8rem; + border-radius: 1px; + display: block; + line-height: 1.4; } + +.main p a { + margin: 0 0.3rem; } + +.title a, +.article-meta a, +.list a, +a.terms-title, +.terms-list a, +.pagination a { + text-decoration: none; } + +.terms-list a { + font-size: 0.8rem; } + +.pagination a { + font-size: 0.8rem; + padding: 0 0.5rem; } + +.pagination { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 0 2rem; } + +.pagination ul { + list-style-type: none; + margin-left: 0; } + +/* prism toolbar */ +.code-toolbar > .toolbar a { + border-bottom: none; + display: block; } + +.local-info { + font-size: 0.8rem; + padding: 0.8rem; + margin-bottom: 1rem; } + +.header a, +.footer a, +.sidebar a, +.taxonomy-key { + font-size: 0.81rem; } + +.main a { + color: #99CCFF; } + +.main .article-tags a { + background: #327E36; + color: #FFF; } + +.local-info, .dialog label { + background: #FFFF99; + color: #333; + -webkit-box-shadow: 2px 3px 1px 1px #000; + box-shadow: 2px 3px 1px 1px #000; } + +/* man bg */ +body, +.main, +.header .menu > li:hover, +.footer a:hover, +.logo-link, +.dialog { + background: #282C34; } + +/* main fg */ +.main, +blockquote.twitter-tweet, +.header .sub-menu a, +.sidebar a, +.taxonomy-key, +.main .title a, +.dialog .title { + color: #C6C6C7; } + +.icon { + background: #C6C6C7; } + +/* main minor */ +.article-meta, +.item-meta, +.footnotes { + color: #939BAB; } + +th, +td { + border-bottom: 1px solid #939BAB; } + +hr { + border: 1px solid #939BAB; } + +.pagination { + background: #939BAB; } + +/* sidebar bg */ +.sidebar { + background: #16191D; } + +.header ul ul { + -webkit-box-shadow: 0 0.1em 0.2em 0 #060606; + box-shadow: 0 0.1em 0.2em 0 #060606; } + +.header ul ul, +.pagination a:hover { + background: #1A1D21; } + +code { + background: #1A1C21; } + +/* sidebar minor */ +.count, +.taxonomy-key { + color: #939394; } + +/* header, footer bg */ +.header, +.footer, +.header .sub-menu li:hover, +.sidebar a:hover { + background: #21252B; } + +/* header, footer fg */ +.header a, +.footer a, +.footer time, +.pagination a { + color: #797D85; } + +.footer .icon { + background-color: #797D85; } + +.main h1, +.main h2, +.main h3, +.main h4, +.main h5, +.main h6 { + text-shadow: 0 1px 1px #000; } + +.title { + text-shadow: 0 1px 1px #000; } + +.dialog { + width: 100vw; + height: 0; + position: absolute; + top: 0; + left: 0; + z-index: 9999; + overflow: hidden; + font-size: 1rem; } + +.dialog .wrapper { + padding: 1rem; } + +.dialog header, .dialog main, .dialog footer { + margin-bottom: 2rem; } + +.dialog header { + margin-top: -2rem; } + +.dialog div { + margin-bottom: 1rem; } + +.dialog.show { + height: 100vh; } + +.dialog label { + display: block; + margin-bottom: 1rem; + padding: 0.8rem 1rem; + -webkit-box-shadow: none; + box-shadow: none; } + +.dialog input { + padding: 0.3rem; } + +.dialog input, .dialog button { + font-size: 1.2rem; + float: right; } + +.dialog button { + padding: 0.3rem 1rem; + background: #3083FE; + color: #FFF; } + +.dialog .close-dialog { + font-size: 3rem; + background: none; + border: none; } + +.light-mode .dialog button { + color: #3083FE; } + +.light-mode .main a { + color: #3083FE; } + +.light-mode .main .article-tags a { + background: #35CC81; + color: #FFF; } + +.light-mode .local-info { + background: #EFECAA; + color: #000000; + -webkit-box-shadow: none; + box-shadow: none; } + +/* man bg */ +body.light-mode, +.light-mode .main { + background: #FFF; } + +/* main fg */ +.light-mode .main, +.light-mode blockquote.twitter-tweet, +.light-mode .sidebar a, +.light-mode .taxonomy-key, +.light-mode .main .title a, +.light-mode .dialog .title { + color: #4C4C4C; } + +.light-mode .icon { + background: #4C4C4C; } + +/* main minor */ +.light-mode .article-meta, +.light-mode .item-meta, +.light-mode .footnotes { + color: #999999; } + +.light-mode th, +.light-mode td { + border-bottom: 1px solid #CCCCCC; } + +.light-mode hr { + border: 1px solid #CCCCCC; } + +.light-mode .pagination { + background: #CCCCCC; } + +/* sidebar bg */ +.light-mode .sidebar { + background: #EEEEEE; } + +.light-mode pre, +.light-mode code { + background: #DDD; } + +/* sidebar fg */ +.light-mode .sidebar a { + color: #3F3F3F; } + +/* sidebar minor */ +.light-mode .count, +.light-mode .taxonomy-key { + color: #777777; } + +/* header, footer bg */ +.light-mode .header, +.light-mode .footer, +.light-mode .header .sub-menu li:hover, +.light-mode .sidebar a:hover, +.light-mode .logo-link, +.light-mode .dialog, +.light-mode .dialog button { + background: #DDD; } + +.light-mode .header .menu > li:hover, +.light-mode .footer a:hover { + background: #CCCCCC; } + +/* sub-menu bg */ +.light-mode .header ul ul { + -webkit-box-shadow: 0 0.1em 0.2em 0 #AAAAAA; + box-shadow: 0 0.1em 0.2em 0 #AAAAAA; } + +.light-mode .header ul ul, +.light-mode .pagination a:hover { + background: #CCCCCC; } + +/* header, footer fg */ +.light-mode .header a, +.light-mode .footer a, +.light-mode .footer time, +.light-mode .pagination a { + color: #323232; } + +.light-mode .header .sub-menu a { + color: #0B0B0B; } + +.light-mode .footer .icon { + background-color: #323232; } + +.light-mode .main h1, +.light-mode .main h2, +.light-mode .main h3, +.light-mode .main h4, +.light-mode .main h5, +.light-mode .main h6, +.light-mode .title { + text-shadow: none; } + +.light-mode .top, .light-mode .bottom { + background: #DDD; } + +.wild-mode .main h1, +.wild-mode .main h2, +.wild-mode .main h3, +.wild-mode .main h4, +.wild-mode .main h5, +.wild-mode .main h6, +.wild-mode .title { + text-shadow: none; } + +.wild-mode .local-info { + -webkit-box-shadow: none; + box-shadow: none; } + +.icon-tags { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='pricetags'%3E%3Cpath d='M12.87 22a1.84 1.84 0 0 1-1.29-.53l-6.41-6.42a1 1 0 0 1-.29-.61L4 5.09a1 1 0 0 1 .29-.8 1 1 0 0 1 .8-.29l9.35.88a1 1 0 0 1 .61.29l6.42 6.41a1.82 1.82 0 0 1 0 2.57l-7.32 7.32a1.82 1.82 0 0 1-1.28.53zm-6-8.11l6 6 7.05-7.05-6-6-7.81-.73z'/%3E%3Ccircle cx='10.5' cy='10.5' r='1.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='pricetags'%3E%3Cpath d='M12.87 22a1.84 1.84 0 0 1-1.29-.53l-6.41-6.42a1 1 0 0 1-.29-.61L4 5.09a1 1 0 0 1 .29-.8 1 1 0 0 1 .8-.29l9.35.88a1 1 0 0 1 .61.29l6.42 6.41a1.82 1.82 0 0 1 0 2.57l-7.32 7.32a1.82 1.82 0 0 1-1.28.53zm-6-8.11l6 6 7.05-7.05-6-6-7.81-.73z'/%3E%3Ccircle cx='10.5' cy='10.5' r='1.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); } + +.icon-categories { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M19.5 20.5h-15A2.47 2.47 0 0 1 2 18.07V5.93A2.47 2.47 0 0 1 4.5 3.5h4.6a1 1 0 0 1 .77.37l2.6 3.18h7A2.47 2.47 0 0 1 22 9.48v8.59a2.47 2.47 0 0 1-2.5 2.43zM4 13.76v4.31a.46.46 0 0 0 .5.43h15a.46.46 0 0 0 .5-.43V9.48a.46.46 0 0 0-.5-.43H12a1 1 0 0 1-.77-.37L8.63 5.5H4.5a.46.46 0 0 0-.5.43z' data-name='folder'/%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M19.5 20.5h-15A2.47 2.47 0 0 1 2 18.07V5.93A2.47 2.47 0 0 1 4.5 3.5h4.6a1 1 0 0 1 .77.37l2.6 3.18h7A2.47 2.47 0 0 1 22 9.48v8.59a2.47 2.47 0 0 1-2.5 2.43zM4 13.76v4.31a.46.46 0 0 0 .5.43h15a.46.46 0 0 0 .5-.43V9.48a.46.46 0 0 0-.5-.43H12a1 1 0 0 1-.77-.37L8.63 5.5H4.5a.46.46 0 0 0-.5.43z' data-name='folder'/%3E%3C/g%3E%3C/svg%3E"); } + +.icon-post { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='file-text'%3E%3Cpath d='M15 16H9a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2zM9 14h3a1 1 0 0 0 0-2H9a1 1 0 0 0 0 2z'/%3E%3Cpath d='M19.74 8.33l-5.44-6a1 1 0 0 0-.74-.33h-7A2.53 2.53 0 0 0 4 4.5v15A2.53 2.53 0 0 0 6.56 22h10.88A2.53 2.53 0 0 0 20 19.5V9a1 1 0 0 0-.26-.67zM14 5l2.74 3h-2a.79.79 0 0 1-.74-.85zm3.44 15H6.56a.53.53 0 0 1-.56-.5v-15a.53.53 0 0 1 .56-.5H12v3.15A2.79 2.79 0 0 0 14.71 10H18v9.5a.53.53 0 0 1-.56.5z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='file-text'%3E%3Cpath d='M15 16H9a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2zM9 14h3a1 1 0 0 0 0-2H9a1 1 0 0 0 0 2z'/%3E%3Cpath d='M19.74 8.33l-5.44-6a1 1 0 0 0-.74-.33h-7A2.53 2.53 0 0 0 4 4.5v15A2.53 2.53 0 0 0 6.56 22h10.88A2.53 2.53 0 0 0 20 19.5V9a1 1 0 0 0-.26-.67zM14 5l2.74 3h-2a.79.79 0 0 1-.74-.85zm3.44 15H6.56a.53.53 0 0 1-.56-.5v-15a.53.53 0 0 1 .56-.5H12v3.15A2.79 2.79 0 0 0 14.71 10H18v9.5a.53.53 0 0 1-.56.5z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); } + +.article-meta .icon-date { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='calendar'%3E%3Cpath d='M18 4h-1V3a1 1 0 0 0-2 0v1H9V3a1 1 0 0 0-2 0v1H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h12a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3zM6 6h1v1a1 1 0 0 0 2 0V6h6v1a1 1 0 0 0 2 0V6h1a1 1 0 0 1 1 1v4H5V7a1 1 0 0 1 1-1zm12 14H6a1 1 0 0 1-1-1v-6h14v6a1 1 0 0 1-1 1z'/%3E%3Ccircle cx='8' cy='16' r='1'/%3E%3Cpath d='M16 15h-4a1 1 0 0 0 0 2h4a1 1 0 0 0 0-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='calendar'%3E%3Cpath d='M18 4h-1V3a1 1 0 0 0-2 0v1H9V3a1 1 0 0 0-2 0v1H6a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3h12a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3zM6 6h1v1a1 1 0 0 0 2 0V6h6v1a1 1 0 0 0 2 0V6h1a1 1 0 0 1 1 1v4H5V7a1 1 0 0 1 1-1zm12 14H6a1 1 0 0 1-1-1v-6h14v6a1 1 0 0 1-1 1z'/%3E%3Ccircle cx='8' cy='16' r='1'/%3E%3Cpath d='M16 15h-4a1 1 0 0 0 0 2h4a1 1 0 0 0 0-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); } + +.github { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M12 1A10.89 10.89 0 0 0 1 11.77 10.79 10.79 0 0 0 8.52 22c.55.1.75-.23.75-.52v-1.83c-3.06.65-3.71-1.44-3.71-1.44a2.86 2.86 0 0 0-1.22-1.58c-1-.66.08-.65.08-.65a2.31 2.31 0 0 1 1.68 1.11 2.37 2.37 0 0 0 3.2.89 2.33 2.33 0 0 1 .7-1.44c-2.44-.27-5-1.19-5-5.32a4.15 4.15 0 0 1 1.11-2.91 3.78 3.78 0 0 1 .11-2.84s.93-.29 3 1.1a10.68 10.68 0 0 1 5.5 0c2.1-1.39 3-1.1 3-1.1a3.78 3.78 0 0 1 .11 2.84A4.15 4.15 0 0 1 19 11.2c0 4.14-2.58 5.05-5 5.32a2.5 2.5 0 0 1 .75 2v2.95c0 .35.2.63.75.52A10.8 10.8 0 0 0 23 11.77 10.89 10.89 0 0 0 12 1' data-name='github'/%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M12 1A10.89 10.89 0 0 0 1 11.77 10.79 10.79 0 0 0 8.52 22c.55.1.75-.23.75-.52v-1.83c-3.06.65-3.71-1.44-3.71-1.44a2.86 2.86 0 0 0-1.22-1.58c-1-.66.08-.65.08-.65a2.31 2.31 0 0 1 1.68 1.11 2.37 2.37 0 0 0 3.2.89 2.33 2.33 0 0 1 .7-1.44c-2.44-.27-5-1.19-5-5.32a4.15 4.15 0 0 1 1.11-2.91 3.78 3.78 0 0 1 .11-2.84s.93-.29 3 1.1a10.68 10.68 0 0 1 5.5 0c2.1-1.39 3-1.1 3-1.1a3.78 3.78 0 0 1 .11 2.84A4.15 4.15 0 0 1 19 11.2c0 4.14-2.58 5.05-5 5.32a2.5 2.5 0 0 1 .75 2v2.95c0 .35.2.63.75.52A10.8 10.8 0 0 0 23 11.77 10.89 10.89 0 0 0 12 1' data-name='github'/%3E%3C/g%3E%3C/svg%3E"); } + +.twitter { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M8.08 20A11.07 11.07 0 0 0 19.52 9 8.09 8.09 0 0 0 21 6.16a.44.44 0 0 0-.62-.51 1.88 1.88 0 0 1-2.16-.38 3.89 3.89 0 0 0-5.58-.17A4.13 4.13 0 0 0 11.49 9C8.14 9.2 5.84 7.61 4 5.43a.43.43 0 0 0-.75.24 9.68 9.68 0 0 0 4.6 10.05A6.73 6.73 0 0 1 3.38 18a.45.45 0 0 0-.14.84A11 11 0 0 0 8.08 20' data-name='twitter'/%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M8.08 20A11.07 11.07 0 0 0 19.52 9 8.09 8.09 0 0 0 21 6.16a.44.44 0 0 0-.62-.51 1.88 1.88 0 0 1-2.16-.38 3.89 3.89 0 0 0-5.58-.17A4.13 4.13 0 0 0 11.49 9C8.14 9.2 5.84 7.61 4 5.43a.43.43 0 0 0-.75.24 9.68 9.68 0 0 0 4.6 10.05A6.73 6.73 0 0 1 3.38 18a.45.45 0 0 0-.14.84A11 11 0 0 0 8.08 20' data-name='twitter'/%3E%3C/g%3E%3C/svg%3E"); } + +.facebook { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M17 3.5a.5.5 0 0 0-.5-.5H14a4.77 4.77 0 0 0-5 4.5v2.7H6.5a.5.5 0 0 0-.5.5v2.6a.5.5 0 0 0 .5.5H9v6.7a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-6.7h2.62a.5.5 0 0 0 .49-.37l.72-2.6a.5.5 0 0 0-.48-.63H13V7.5a1 1 0 0 1 1-.9h2.5a.5.5 0 0 0 .5-.5z' data-name='facebook'/%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M17 3.5a.5.5 0 0 0-.5-.5H14a4.77 4.77 0 0 0-5 4.5v2.7H6.5a.5.5 0 0 0-.5.5v2.6a.5.5 0 0 0 .5.5H9v6.7a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-6.7h2.62a.5.5 0 0 0 .49-.37l.72-2.6a.5.5 0 0 0-.48-.63H13V7.5a1 1 0 0 1 1-.9h2.5a.5.5 0 0 0 .5-.5z' data-name='facebook'/%3E%3C/g%3E%3C/svg%3E"); } + +.behance { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='behance'%3E%3Cpath d='M14.76 11.19a1 1 0 0 0-1 1.09h2.06a1 1 0 0 0-1.06-1.09zM9.49 12.3H8.26v1.94h1c1 0 1.44-.33 1.44-1s-.46-.94-1.21-.94zM10.36 10.52c0-.53-.35-.85-.95-.85H8.26v1.74h.85c.89 0 1.25-.32 1.25-.89z'/%3E%3Cpath d='M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zM9.7 15.2H7V8.7h2.7c1.17 0 1.94.61 1.94 1.6a1.4 1.4 0 0 1-1.12 1.43A1.52 1.52 0 0 1 12 13.37c0 1.16-1 1.83-2.3 1.83zm3.55-6h3v.5h-3zM17 13.05h-3.3v.14a1.07 1.07 0 0 0 1.09 1.19.9.9 0 0 0 1-.63H17a2 2 0 0 1-2.17 1.55 2.15 2.15 0 0 1-2.36-2.3v-.44a2.11 2.11 0 0 1 2.28-2.25A2.12 2.12 0 0 1 17 12.58z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cg data-name='behance'%3E%3Cpath d='M14.76 11.19a1 1 0 0 0-1 1.09h2.06a1 1 0 0 0-1.06-1.09zM9.49 12.3H8.26v1.94h1c1 0 1.44-.33 1.44-1s-.46-.94-1.21-.94zM10.36 10.52c0-.53-.35-.85-.95-.85H8.26v1.74h.85c.89 0 1.25-.32 1.25-.89z'/%3E%3Cpath d='M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2zM9.7 15.2H7V8.7h2.7c1.17 0 1.94.61 1.94 1.6a1.4 1.4 0 0 1-1.12 1.43A1.52 1.52 0 0 1 12 13.37c0 1.16-1 1.83-2.3 1.83zm3.55-6h3v.5h-3zM17 13.05h-3.3v.14a1.07 1.07 0 0 0 1.09 1.19.9.9 0 0 0 1-.63H17a2 2 0 0 1-2.17 1.55 2.15 2.15 0 0 1-2.36-2.3v-.44a2.11 2.11 0 0 1 2.28-2.25A2.12 2.12 0 0 1 17 12.58z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); } + +.email { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M19 4H5a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3zm0 2l-6.5 4.47a1 1 0 0 1-1 0L5 6z' data-name='email'/%3E%3C/g%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg data-name='Layer 2'%3E%3Cpath d='M19 4H5a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3zm0 2l-6.5 4.47a1 1 0 0 1-1 0L5 6z' data-name='email'/%3E%3C/g%3E%3C/svg%3E"); } + +.rss { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Ccircle cx='6.18' cy='17.82' r='2.18'/%3E%3Cpath d='M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z'/%3E%3C/svg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Ccircle cx='6.18' cy='17.82' r='2.18'/%3E%3Cpath d='M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z'/%3E%3C/svg%3E"); } + diff --git a/static/js/main.js b/static/js/main.js index 7ca6c74..4fb899f 100644 --- a/static/js/main.js +++ b/static/js/main.js @@ -1,73 +1,326 @@ -!function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t,n){},function(e,t,n){(function(t){var n="Expected a function",o=NaN,i="[object Symbol]",r=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,d=/^0b[01]+$/i,u=/^0o[0-7]+$/i,l=parseInt,c="object"==typeof t&&t&&t.Object===Object&&t,s="object"==typeof self&&self&&self.Object===Object&&self,f=c||s||Function("return this")(),m=Object.prototype.toString,p=Math.max,h=Math.min,g=function(){return f.Date.now()};function w(e,t,o){var i,r,a,d,u,l,c=0,s=!1,f=!1,m=!0;if("function"!=typeof e)throw new TypeError(n);function w(t){var n=i,o=r;return i=r=void 0,c=t,d=e.apply(o,n)}function v(e){var n=e-l;return void 0===l||n>=t||n<0||f&&e-c>=a}function x(){var e=g();if(v(e))return k(e);u=setTimeout(x,function(e){var n=t-(e-l);return f?h(n,a-(e-c)):n}(e))}function k(e){return u=void 0,m&&i?w(e):(i=r=void 0,d)}function M(){var e=g(),n=v(e);if(i=arguments,r=this,l=e,n){if(void 0===u)return function(e){return c=e,u=setTimeout(x,t),s?w(e):d}(l);if(f)return u=setTimeout(x,t),w(l)}return void 0===u&&(u=setTimeout(x,t)),d}return t=b(t)||0,y(o)&&(s=!!o.leading,a=(f="maxWait"in o)?p(b(o.maxWait)||0,t):a,m="trailing"in o?!!o.trailing:m),M.cancel=function(){void 0!==u&&clearTimeout(u),c=0,i=l=r=u=void 0},M.flush=function(){return void 0===u?d:k(g())},M}function y(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function b(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&m.call(e)==i}(e))return o;if(y(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=y(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(r,"");var n=d.test(e);return n||u.test(e)?l(e.slice(2),n?2:8):a.test(e)?o:+e}e.exports=function(e,t,o){var i=!0,r=!0;if("function"!=typeof e)throw new TypeError(n);return y(o)&&(i="leading"in o?!!o.leading:i,r="trailing"in o?!!o.trailing:r),w(e,t,{leading:i,maxWait:t,trailing:r})}}).call(this,n(2))},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";n.r(t);n(0);const o=n(1);function i(e,t=document.body){return"string"==typeof t&&(t=document.querySelector(t)),t.querySelector(e)}function r(e,t={},...n){const o=document.createElement(e);return Object.keys(t).forEach(e=>{o.setAttribute(e,t[e])}),n.forEach(e=>{"string"==typeof e&&(e=document.createTextNode(e)),o.appendChild(e)}),o}function a(e,t){return"string"==typeof e&&(e=i(e)),e.classList.remove(t),e}function d(e,t){return"string"==typeof e&&(e=i(e)),e.classList.add(t),e}function u(e,t){return"string"==typeof e&&(e=i(e)),e.classList.contains(t)}function l(e,t){"string"==typeof e&&(e=i(e)),Object.keys(t).forEach(n=>{e.style[n]=t[n]})}function c(e,t,n=0,r=document.body,a={}){"string"==typeof r&&(r=i(r)),n>0?r.addEventListener(e,o(t,n),a):r.addEventListener(e,t,a)}const s={};function f(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e))+e}function m(e){return e.duration?Math.min(function(e){const[t]=window.performance.getEntriesByName(e);return t?window.performance.now()-t.startTime:(window.performance.mark(e),0)}(e.id)/e.duration,1):1}s.get=(e=>window.localStorage.getItem(e)),s.set=((e,t)=>{null==t?t="":"string"!=typeof t&&(t=JSON.stringify(t)),window.localStorage.setItem(e,t)});const p={darkCode:["c","f","6","9"],lightCode:["a","b","c","d","e","f"],textCode:["1a2a3a","2a3a4a","3a4a5a","4a5a6a","5a6a7a","6a7a8a","7a8a9a"],grayCode:["aaa","bbb","ccc","ddd"],lightGrayCode:["e2e2e2","e7e7e7","ececec"],deepGrayCode:["222","333","444"],dark:()=>{let e="";for(let t=0;3!==t;t++){let t=p.darkCode[f(0,p.darkCode.length)];e+=t+t}return"#"+e},light:()=>{let e="";for(let t=0;6!==t;t++)e+=p.lightCode[f(0,p.lightCode.length)];return"#"+e},gray:()=>{let e=f(0,p.grayCode.length);return"#"+p.grayCode[e]},lightGray:()=>{let e=f(0,p.lightGrayCode.length);return"#"+p.lightGrayCode[e]},deepGray:()=>{let e=f(0,p.deepGrayCode.length);return"#"+p.deepGrayCode[e]},text:(e=0,t=7)=>{let n=f(e,t);return"#"+p.textCode[n]}};p.deepText=p.text.bind(p,0,2),p.mediumText=p.text.bind(p,2,5),p.lightText=p.text.bind(p,5,6);var h=function(e,...t){return function(){let n=e.slice();return t.forEach((e,t)=>{n[t]+=p[e]()}),n.join("").replace(/\s{2}/gm," ")}}` - .wild-mode code { - background: ${"lightGray"} - } - .wild-mode .main .article-tags a { - background: ${"light"}; - } - .wild-mode .local-info { - background: ${"light"}; - } - body.wild-mode, - .wild-mode .main { - background: ${"light"}; - } - .wild-mode th, - .wild-mode td { - border-bottom: 1px solid ${"dark"}; - } - .wild-mode hr { - border: 1px solid ${"dark"}; - } - .wild-mode .pagination { - background: ${"dark"}; - } - .wild-mode .sidebar { - background: ${"dark"}; - } - .wild-mode .header, - .wild-mode .footer, - .wild-mode .header .sub-menu li:hover, - .wild-mode .sidebar a:hover, - .wild-mode .logo-link { - background: ${"dark"}; - } - .wild-mode .header .menu>li:hover, - .wild-mode .footer a:hover { - background: ${"light"}; - } - .wild-mode .header ul ul { - box-shadow: 0 0.1em 0.2em 0 ${"dark"}; - } - .wild-mode .header ul ul, - .wild-mode .pagination a:hover { - background: ${"dark"}; - } - .wild-mode .article-meta, - .wild-mode .item-meta, - .wild-mode .footnotes, - .wild-mode .count, - .wild-mode .taxonomy-key { - color: ${"mediumText"}; - } - .wild-mode .main .article-tags a, - .wild-mode .local-info, - .wild-mode .main, - .wild-mode .main a, - .wild-mode .terms-list a, - .wild-mode blockquote.twitter-tweet, - .wild-mode .sidebar a, - .wild-mode .taxonomy-key, - .wild-mode .main .title a, - .wild-mode .header a, - .wild-mode .footer a, - .wild-mode .footer time, - .wild-mode .pagination a, - .wild-mode .header .sub-menu a { - color: ${"deepGray"}; - } - .wild-mode .icon, - .wild-mode .footer .icon { - background: ${"deepGray"}; - } - `;(function e(t){function n(e){return Math.pow(e,t)}return t=+t,n.exponent=e,n})(3),function e(t){function n(e){return 1-Math.pow(1-e,t)}return t=+t,n.exponent=e,n}(3),function e(t){function n(e){return((e*=2)<=1?Math.pow(e,t):2-Math.pow(2-e,t))/2}return t=+t,n.exponent=e,n}(3),Math.PI;var g=4/11,w=6/11,y=8/11,b=.75,v=9/11,x=10/11,k=.9375,M=21/22,C=63/64,$=1/g/g;function j(e){return 1-O(1-e)}function O(e){return(e=+e)<g?$*e*e:e<y?$*(e-=w)*e+b:e<x?$*(e-=v)*e+k:$*(e-=M)*e+C}(function e(t){function n(e){return e*e*((t+1)*e-t)}return t=+t,n.overshoot=e,n})(1.70158),function e(t){function n(e){return--e*e*((t+1)*e+t)+1}return t=+t,n.overshoot=e,n}(1.70158),function e(t){function n(e){return((e*=2)<1?e*e*((t+1)*e-t):(e-=2)*e*((t+1)*e+t)+2)/2}return t=+t,n.overshoot=e,n}(1.70158);var T=2*Math.PI;(function e(t,n){var o=Math.asin(1/(t=Math.max(1,t)))*(n/=T);function i(e){return t*Math.pow(2,10*--e)*Math.sin((o-e)/n)}return i.amplitude=function(t){return e(t,n*T)},i.period=function(n){return e(t,n)},i})(1,.3),function e(t,n){var o=Math.asin(1/(t=Math.max(1,t)))*(n/=T);function i(e){return 1-t*Math.pow(2,-10*(e=+e))*Math.sin((e+o)/n)}return i.amplitude=function(t){return e(t,n*T)},i.period=function(n){return e(t,n)},i}(1,.3),function e(t,n){var o=Math.asin(1/(t=Math.max(1,t)))*(n/=T);function i(e){return((e=2*e-1)<0?t*Math.pow(2,10*e)*Math.sin((o-e)/n):2-t*Math.pow(2,-10*e)*Math.sin((o+e)/n))/2}return i.amplitude=function(t){return e(t,n*T)},i.period=function(n){return e(t,n)},i}(1,.3);function _(e){const t={last:!1,resizing:!1,resizable:!1};function n(t,n=4){return Math.abs(t-e.pane.getBoundingClientRect().right)<=n}function o(n){t.resizing=!1;let o=e.pane.getBoundingClientRect();!function(e){if(e<=10)return;s.set("sidebar_width",e)}(o.right-o.left)}c("mousedown",e=>{t.resizable&&(t.resizing=!0)},0),c("mouseup",o,0),c("keydown",e=>{e.ctrlKey&&66===e.keyCode&&E()},0),c("touchstart",e=>{t.resizing=n(e.touches[0].clientX,10)}),c("touchend",o),function(e,t,n=document.body){c("mousemove",t=>{e({clientX:t.clientX,clientY:t.clientY,type:t.type})},t,n,{passive:!0}),c("touchmove",t=>{e({clientX:t.touches[0].clientX,clientY:t.touches[0].clientY,type:t.type})},t,n,{passive:!0})}(function(o){t.resizable=n(o.clientX),t.resizing?function(t){let n=t-e.paneLeft;n<=10?d(e.pane,"hide"):z(n)}(o.clientX):"mousemove"===o.type&&o.clientX>10&&t.last!==t.resizable&&(t.resizable?l(document.body,{cursor:"ew-resize"}):l(document.body,{cursor:"auto"}),t.last=t.resizable)},50,i(".middle"))}function z(e,t="px"){l(i(".sidebar"),{width:e+"px"}),l(i(".main"),{marginLeft:e+"px"})}function E(e,t){return u(e.pane,"hide")?(a(e.pane,"hide"),s.set("is_sidebar_hide","0")):(d(e.pane,"hide"),s.set("is_sidebar_hide","1")),t.preventDefault(),t.stopPropagation(),!1}const S=e=>{u(document.body,e)||d(function(e,t){return"string"==typeof e&&(e=i(e)),e.className="",e}(document.body),e),s.set("mode",e)};function G(e){c("click",e=>{a(".dialog","show")},0,".close-dialog"),c("click",e=>{const t=i("#theme-name").value.trim();t?/^[a-zA-Z\s-]+$/.test(t)?"light"!==t&&"dark"!==t&&"wild"!==t?(!function(e){let t=function(e){let t=s.get("wild_style"),n=e.replace(/\s/g,"-");return t=t.replace(/wild-mode/g,`${n}-mode`),function(e,t){return`/*\nHugo Edidor theme wild mode exported.\nhomepage: https://github.com/jacobsun/edidor\nUsage:\n1. Throw me to your site root folder/static/css directory, you can rename me to whatever you like.\n2. Copy the code below to your config file.\n\n--------\n[[menu.main]]\nparent = "Theme"\nidentifier = "${e}"\nname = "${t}"\nurl = "#"\nweight = 30\n--------\n\n3. Change the field 'name' and 'weight' to whatever you like. Leave others alone, and don't add your custom field, hugo doesn't support that, though I really hope so :/.\n*/`}(n,e)+t}(e);!function(e,t){const n=r("a",{href:"data:text/plain;charset=utf-8,"+encodeURIComponent(t),download:e,style:{display:"none"}});document.body.appendChild(n),n.click(),document.body.removeChild(n)}(e+".css",t)}(t),a(".dialog","show")):window.alert("Mess up builtin themes."):window.alert("Only English letters, space, hyphens are allowed."):window.alert("Name is required.")},0,".export")}const L=function(){let e=i(".top"),t=i(".bottom"),n=312.5;console.log("distance",n);let o=!1,r=!1;const u=(e,t,n,o=(()=>{}))=>{const i=()=>{const n=Math.min(e(m(r)),1);n<1?(t(n),window.requestAnimationFrame(i)):(window.performance.clearMarks(r.id),t(n),o())},r={duration:n,id:window.requestAnimationFrame(i)}};function l(i){o=!0,r&&(console.log("open"),d(document.body,"loaded"),u(O,o=>{e.style.top=-o*n+"px",t.style.top=o*n+n+"px"},1e3,c))}const c=()=>{a(document.body,"loading"),r=!1,o=!1};return{close:function(i){console.log("close"),a(document.body,"loaded"),d(document.body,"loading"),u(j,o=>{e.style.top=-(1-o)*n+"px",t.style.top=(1-o)*n+n+"px"},1e3,()=>{r=!0,o&&l()})},open:l}}();c("DOMContentLoaded",e=>{console.log("page loaded!",Date.now()),L.close();const t={};t.pane=i(".sidebar"),t.main=i(".main"),t.cloak=i("#cloak"),t.paneLeft=t.pane.getBoundingClientRect().left,function(e,t){let n=s.get("mode");if(n&&S(n),"wild-mode"===n){let e=r("style",{class:"wild-ele"},s.get("wild_style"));document.body.appendChild(e)}t.open()}(0,L),function(e){z(s.get("sidebar_width")),"1"===s.get("is_sidebar_hide")?d(e.pane,"hide"):a(e.pane,"hide")}(t),function(e){c("click",E.bind(null,e),0,".toggle-sidebar")}(t),function(e,t){c("click",e=>{if(e.preventDefault(),e.stopPropagation(),"theme-switcher-button"===e.target.id)return;if(u(e.target,"export-wild"))return d(".dialog","show"),void i("#theme-name").focus();let t=e.target.dataset.theme;if(t){if(S(t+"-mode"),"wild"===t){const e=i(".wild-ele"),t=h();e?e.innerText=t:document.body.appendChild(r("style",{class:"wild-ele"},t)),s.set("wild_style",t)}}else console.error('Theme name not found, probably missing an "Identifier" field in Config file.')},0,"#theme-switcher")}(),_(t),G()},0,document)}]);
\ No newline at end of file +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./src/index.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./node_modules/d3-ease/src/back.js": +/*!******************************************!*\ + !*** ./node_modules/d3-ease/src/back.js ***! + \******************************************/ +/*! exports provided: backIn, backOut, backInOut */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backIn\", function() { return backIn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backOut\", function() { return backOut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"backInOut\", function() { return backInOut; });\nvar overshoot = 1.70158;\n\nvar backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nvar backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nvar backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n\n\n//# sourceURL=webpack:///./node_modules/d3-ease/src/back.js?"); + +/***/ }), + +/***/ "./node_modules/d3-ease/src/bounce.js": +/*!********************************************!*\ + !*** ./node_modules/d3-ease/src/bounce.js ***! + \********************************************/ +/*! exports provided: bounceIn, bounceOut, bounceInOut */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bounceIn\", function() { return bounceIn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bounceOut\", function() { return bounceOut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bounceInOut\", function() { return bounceInOut; });\nvar b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nfunction bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nfunction bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nfunction bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-ease/src/bounce.js?"); + +/***/ }), + +/***/ "./node_modules/d3-ease/src/circle.js": +/*!********************************************!*\ + !*** ./node_modules/d3-ease/src/circle.js ***! + \********************************************/ +/*! exports provided: circleIn, circleOut, circleInOut */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"circleIn\", function() { return circleIn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"circleOut\", function() { return circleOut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"circleInOut\", function() { return circleInOut; });\nfunction circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nfunction circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nfunction circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-ease/src/circle.js?"); + +/***/ }), + +/***/ "./node_modules/d3-ease/src/cubic.js": +/*!*******************************************!*\ + !*** ./node_modules/d3-ease/src/cubic.js ***! + \*******************************************/ +/*! exports provided: cubicIn, cubicOut, cubicInOut */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cubicIn\", function() { return cubicIn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cubicOut\", function() { return cubicOut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cubicInOut\", function() { return cubicInOut; });\nfunction cubicIn(t) {\n return t * t * t;\n}\n\nfunction cubicOut(t) {\n return --t * t * t + 1;\n}\n\nfunction cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-ease/src/cubic.js?"); + +/***/ }), + +/***/ "./node_modules/d3-ease/src/elastic.js": +/*!*********************************************!*\ + !*** ./node_modules/d3-ease/src/elastic.js ***! + \*********************************************/ +/*! exports provided: elasticIn, elasticOut, elasticInOut */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"elasticIn\", function() { return elasticIn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"elasticOut\", function() { return elasticOut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"elasticInOut\", function() { return elasticInOut; });\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nvar elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nvar elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nvar elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n\n\n//# sourceURL=webpack:///./node_modules/d3-ease/src/elastic.js?"); + +/***/ }), + +/***/ "./node_modules/d3-ease/src/exp.js": +/*!*****************************************!*\ + !*** ./node_modules/d3-ease/src/exp.js ***! + \*****************************************/ +/*! exports provided: expIn, expOut, expInOut */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expIn\", function() { return expIn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expOut\", function() { return expOut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expInOut\", function() { return expInOut; });\nfunction expIn(t) {\n return Math.pow(2, 10 * t - 10);\n}\n\nfunction expOut(t) {\n return 1 - Math.pow(2, -10 * t);\n}\n\nfunction expInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-ease/src/exp.js?"); + +/***/ }), + +/***/ "./node_modules/d3-ease/src/index.js": +/*!*******************************************!*\ + !*** ./node_modules/d3-ease/src/index.js ***! + \*******************************************/ +/*! exports provided: easeLinear, easeQuad, easeQuadIn, easeQuadOut, easeQuadInOut, easeCubic, easeCubicIn, easeCubicOut, easeCubicInOut, easePoly, easePolyIn, easePolyOut, easePolyInOut, easeSin, easeSinIn, easeSinOut, easeSinInOut, easeExp, easeExpIn, easeExpOut, easeExpInOut, easeCircle, easeCircleIn, easeCircleOut, easeCircleInOut, easeBounce, easeBounceIn, easeBounceOut, easeBounceInOut, easeBack, easeBackIn, easeBackOut, easeBackInOut, easeElastic, easeElasticIn, easeElasticOut, easeElasticInOut */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _linear__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./linear */ \"./node_modules/d3-ease/src/linear.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeLinear\", function() { return _linear__WEBPACK_IMPORTED_MODULE_0__[\"linear\"]; });\n\n/* harmony import */ var _quad__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./quad */ \"./node_modules/d3-ease/src/quad.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeQuad\", function() { return _quad__WEBPACK_IMPORTED_MODULE_1__[\"quadInOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeQuadIn\", function() { return _quad__WEBPACK_IMPORTED_MODULE_1__[\"quadIn\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeQuadOut\", function() { return _quad__WEBPACK_IMPORTED_MODULE_1__[\"quadOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeQuadInOut\", function() { return _quad__WEBPACK_IMPORTED_MODULE_1__[\"quadInOut\"]; });\n\n/* harmony import */ var _cubic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cubic */ \"./node_modules/d3-ease/src/cubic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeCubic\", function() { return _cubic__WEBPACK_IMPORTED_MODULE_2__[\"cubicInOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeCubicIn\", function() { return _cubic__WEBPACK_IMPORTED_MODULE_2__[\"cubicIn\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeCubicOut\", function() { return _cubic__WEBPACK_IMPORTED_MODULE_2__[\"cubicOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeCubicInOut\", function() { return _cubic__WEBPACK_IMPORTED_MODULE_2__[\"cubicInOut\"]; });\n\n/* harmony import */ var _poly__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./poly */ \"./node_modules/d3-ease/src/poly.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easePoly\", function() { return _poly__WEBPACK_IMPORTED_MODULE_3__[\"polyInOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easePolyIn\", function() { return _poly__WEBPACK_IMPORTED_MODULE_3__[\"polyIn\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easePolyOut\", function() { return _poly__WEBPACK_IMPORTED_MODULE_3__[\"polyOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easePolyInOut\", function() { return _poly__WEBPACK_IMPORTED_MODULE_3__[\"polyInOut\"]; });\n\n/* harmony import */ var _sin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./sin */ \"./node_modules/d3-ease/src/sin.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeSin\", function() { return _sin__WEBPACK_IMPORTED_MODULE_4__[\"sinInOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeSinIn\", function() { return _sin__WEBPACK_IMPORTED_MODULE_4__[\"sinIn\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeSinOut\", function() { return _sin__WEBPACK_IMPORTED_MODULE_4__[\"sinOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeSinInOut\", function() { return _sin__WEBPACK_IMPORTED_MODULE_4__[\"sinInOut\"]; });\n\n/* harmony import */ var _exp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./exp */ \"./node_modules/d3-ease/src/exp.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeExp\", function() { return _exp__WEBPACK_IMPORTED_MODULE_5__[\"expInOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeExpIn\", function() { return _exp__WEBPACK_IMPORTED_MODULE_5__[\"expIn\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeExpOut\", function() { return _exp__WEBPACK_IMPORTED_MODULE_5__[\"expOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeExpInOut\", function() { return _exp__WEBPACK_IMPORTED_MODULE_5__[\"expInOut\"]; });\n\n/* harmony import */ var _circle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./circle */ \"./node_modules/d3-ease/src/circle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeCircle\", function() { return _circle__WEBPACK_IMPORTED_MODULE_6__[\"circleInOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeCircleIn\", function() { return _circle__WEBPACK_IMPORTED_MODULE_6__[\"circleIn\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeCircleOut\", function() { return _circle__WEBPACK_IMPORTED_MODULE_6__[\"circleOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeCircleInOut\", function() { return _circle__WEBPACK_IMPORTED_MODULE_6__[\"circleInOut\"]; });\n\n/* harmony import */ var _bounce__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./bounce */ \"./node_modules/d3-ease/src/bounce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeBounce\", function() { return _bounce__WEBPACK_IMPORTED_MODULE_7__[\"bounceOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeBounceIn\", function() { return _bounce__WEBPACK_IMPORTED_MODULE_7__[\"bounceIn\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeBounceOut\", function() { return _bounce__WEBPACK_IMPORTED_MODULE_7__[\"bounceOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeBounceInOut\", function() { return _bounce__WEBPACK_IMPORTED_MODULE_7__[\"bounceInOut\"]; });\n\n/* harmony import */ var _back__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./back */ \"./node_modules/d3-ease/src/back.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeBack\", function() { return _back__WEBPACK_IMPORTED_MODULE_8__[\"backInOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeBackIn\", function() { return _back__WEBPACK_IMPORTED_MODULE_8__[\"backIn\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeBackOut\", function() { return _back__WEBPACK_IMPORTED_MODULE_8__[\"backOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeBackInOut\", function() { return _back__WEBPACK_IMPORTED_MODULE_8__[\"backInOut\"]; });\n\n/* harmony import */ var _elastic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./elastic */ \"./node_modules/d3-ease/src/elastic.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeElastic\", function() { return _elastic__WEBPACK_IMPORTED_MODULE_9__[\"elasticOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeElasticIn\", function() { return _elastic__WEBPACK_IMPORTED_MODULE_9__[\"elasticIn\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeElasticOut\", function() { return _elastic__WEBPACK_IMPORTED_MODULE_9__[\"elasticOut\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"easeElasticInOut\", function() { return _elastic__WEBPACK_IMPORTED_MODULE_9__[\"elasticInOut\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/d3-ease/src/index.js?"); + +/***/ }), + +/***/ "./node_modules/d3-ease/src/linear.js": +/*!********************************************!*\ + !*** ./node_modules/d3-ease/src/linear.js ***! + \********************************************/ +/*! exports provided: linear */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"linear\", function() { return linear; });\nfunction linear(t) {\n return +t;\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-ease/src/linear.js?"); + +/***/ }), + +/***/ "./node_modules/d3-ease/src/poly.js": +/*!******************************************!*\ + !*** ./node_modules/d3-ease/src/poly.js ***! + \******************************************/ +/*! exports provided: polyIn, polyOut, polyInOut */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"polyIn\", function() { return polyIn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"polyOut\", function() { return polyOut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"polyInOut\", function() { return polyInOut; });\nvar exponent = 3;\n\nvar polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nvar polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nvar polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n\n\n//# sourceURL=webpack:///./node_modules/d3-ease/src/poly.js?"); + +/***/ }), + +/***/ "./node_modules/d3-ease/src/quad.js": +/*!******************************************!*\ + !*** ./node_modules/d3-ease/src/quad.js ***! + \******************************************/ +/*! exports provided: quadIn, quadOut, quadInOut */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quadIn\", function() { return quadIn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quadOut\", function() { return quadOut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"quadInOut\", function() { return quadInOut; });\nfunction quadIn(t) {\n return t * t;\n}\n\nfunction quadOut(t) {\n return t * (2 - t);\n}\n\nfunction quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-ease/src/quad.js?"); + +/***/ }), + +/***/ "./node_modules/d3-ease/src/sin.js": +/*!*****************************************!*\ + !*** ./node_modules/d3-ease/src/sin.js ***! + \*****************************************/ +/*! exports provided: sinIn, sinOut, sinInOut */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sinIn\", function() { return sinIn; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sinOut\", function() { return sinOut; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sinInOut\", function() { return sinInOut; });\nvar pi = Math.PI,\n halfPi = pi / 2;\n\nfunction sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\n\nfunction sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nfunction sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n\n\n//# sourceURL=webpack:///./node_modules/d3-ease/src/sin.js?"); + +/***/ }), + +/***/ "./node_modules/lodash.throttle/index.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash.throttle/index.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(global) {/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/lodash.throttle/index.js?"); + +/***/ }), + +/***/ "./node_modules/webpack/buildin/global.js": +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?"); + +/***/ }), + +/***/ "./src/css/main.scss": +/*!***************************!*\ + !*** ./src/css/main.scss ***! + \***************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// extracted by mini-css-extract-plugin\n\n//# sourceURL=webpack:///./src/css/main.scss?"); + +/***/ }), + +/***/ "./src/index.js": +/*!**********************!*\ + !*** ./src/index.js ***! + \**********************/ +/*! no exports provided */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _css_main_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./css/main.scss */ \"./src/css/main.scss\");\n/* harmony import */ var _css_main_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_main_scss__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _js_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./js/helpers */ \"./src/js/helpers.js\");\n/* harmony import */ var _js_main__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./js/main */ \"./src/js/main.js\");\n/* harmony import */ var _js_loader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./js/loader */ \"./src/js/loader.js\");\n\n\n\n\nconst loader = Object(_js_loader__WEBPACK_IMPORTED_MODULE_3__[\"getLoader\"])()\nObject(_js_helpers__WEBPACK_IMPORTED_MODULE_1__[\"onEvent\"])('DOMContentLoaded', e => {\n console.log('page loaded!', Date.now())\n loader.loading()\n const doms = {}\n doms.pane = Object(_js_helpers__WEBPACK_IMPORTED_MODULE_1__[\"qs\"])('.sidebar')\n doms.main = Object(_js_helpers__WEBPACK_IMPORTED_MODULE_1__[\"qs\"])('.main')\n doms.cloak = Object(_js_helpers__WEBPACK_IMPORTED_MODULE_1__[\"qs\"])('#cloak')\n doms.paneLeft = doms.pane.getBoundingClientRect().left\n Object(_js_main__WEBPACK_IMPORTED_MODULE_2__[\"tryLoadMode\"])(doms, loader)\n Object(_js_main__WEBPACK_IMPORTED_MODULE_2__[\"tryRestoreSidebar\"])(doms)\n Object(_js_main__WEBPACK_IMPORTED_MODULE_2__[\"activateSidebarToggle\"])(doms)\n Object(_js_main__WEBPACK_IMPORTED_MODULE_2__[\"activateModeSwitcher\"])(doms, loader)\n Object(_js_main__WEBPACK_IMPORTED_MODULE_2__[\"activateSidebarDrag\"])(doms)\n Object(_js_main__WEBPACK_IMPORTED_MODULE_2__[\"activateDialog\"])(doms, loader)\n}, 0, document)\n\n\n//# sourceURL=webpack:///./src/index.js?"); + +/***/ }), + +/***/ "./src/js/css_template.js": +/*!********************************!*\ + !*** ./src/js/css_template.js ***! + \********************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"./src/js/helpers.js\");\n\n\n// tagged template function, produce wild styles\nfunction styleTemplate (strings, ...keys) {\n return function () {\n let temp = strings.slice()\n keys.forEach((key, i) => {\n temp[i] += gen[key]()\n })\n return temp.join('').replace(/\\s{2}/gm, ' ')\n }\n}\n\nconst gen = {\n darkCode: ['c', 'f', '6', '9'],\n lightCode: ['a', 'b', 'c', 'd', 'e', 'f'],\n textCode: ['1a2a3a', '2a3a4a', '3a4a5a', '4a5a6a', '5a6a7a', '6a7a8a', '7a8a9a'],\n grayCode: ['aaa', 'bbb', 'ccc', 'ddd'],\n lightGrayCode: ['e2e2e2', 'e7e7e7', 'ececec'],\n deepGrayCode: ['222', '333', '444']\n}\n\ngen.dark = () => {\n let d = ''\n for (let i = 0; i !== 3; i++) {\n let c = gen.darkCode[Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"randomInt\"])(0, gen.darkCode.length)]\n d += c + c\n }\n return '#' + d\n}\ngen.light = () => {\n let d = ''\n for (let i = 0; i !== 6; i++) {\n d += gen.lightCode[Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"randomInt\"])(0, gen.lightCode.length)]\n }\n return '#' + d\n}\n\ngen.gray = () => {\n let i = Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"randomInt\"])(0, gen.grayCode.length)\n return '#' + gen.grayCode[i]\n}\ngen.lightGray = () => {\n let i = Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"randomInt\"])(0, gen.lightGrayCode.length)\n return '#' + gen.lightGrayCode[i]\n}\ngen.deepGray = () => {\n let i = Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"randomInt\"])(0, gen.deepGrayCode.length)\n return '#' + gen.deepGrayCode[i]\n}\ngen.text = (base = 0, max = 7) => {\n let i = Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"randomInt\"])(base, max)\n return '#' + gen.textCode[i]\n}\n\ngen.deepText = gen.text.bind(gen, 0, 2)\ngen.mediumText = gen.text.bind(gen, 2, 5)\ngen.lightText = gen.text.bind(gen, 5, 6)\n\nconst wildStyle = styleTemplate`\n .wild-mode code {\n background: ${'lightGray'}\n }\n .wild-mode .main .article-tags a {\n background: ${'light'};\n }\n .wild-mode .local-info {\n background: ${'light'};\n }\n body.wild-mode,\n .wild-mode .main {\n background: ${'light'};\n }\n .wild-mode th,\n .wild-mode td {\n border-bottom: 1px solid ${'dark'};\n }\n .wild-mode hr {\n border: 1px solid ${'dark'};\n }\n .wild-mode .pagination {\n background: ${'dark'};\n }\n .wild-mode .sidebar {\n background: ${'dark'};\n }\n .wild-mode .header,\n .wild-mode .footer,\n .wild-mode .header .sub-menu li:hover,\n .wild-mode .sidebar a:hover,\n .wild-mode .logo-link,\n .wild-mode .top, .wild-mode .bottom {\n background: ${'dark'};\n }\n .wild-mode .header .menu>li:hover,\n .wild-mode .footer a:hover {\n background: ${'light'};\n }\n .wild-mode .header ul ul {\n box-shadow: 0 0.1em 0.2em 0 ${'dark'};\n }\n .wild-mode .header ul ul,\n .wild-mode .pagination a:hover {\n background: ${'dark'};\n }\n .wild-mode .article-meta,\n .wild-mode .item-meta,\n .wild-mode .footnotes,\n .wild-mode .count,\n .wild-mode .taxonomy-key {\n color: ${'mediumText'};\n }\n .wild-mode .main .article-tags a,\n .wild-mode .local-info,\n .wild-mode .main,\n .wild-mode .main a,\n .wild-mode .terms-list a,\n .wild-mode blockquote.twitter-tweet,\n .wild-mode .sidebar a,\n .wild-mode .taxonomy-key,\n .wild-mode .main .title a,\n .wild-mode .header a,\n .wild-mode .footer a,\n .wild-mode .footer time,\n .wild-mode .pagination a,\n .wild-mode .header .sub-menu a {\n color: ${'deepGray'};\n }\n .wild-mode .icon,\n .wild-mode .footer .icon {\n background: ${'deepGray'};\n }\n `\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (wildStyle);\n\n\n//# sourceURL=webpack:///./src/js/css_template.js?"); + +/***/ }), + +/***/ "./src/js/file_template.js": +/*!*********************************!*\ + !*** ./src/js/file_template.js ***! + \*********************************/ +/*! exports provided: genFile */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"genFile\", function() { return genFile; });\nfunction genFile (identifier, themeName) {\n return `/*\nHugo Edidor theme wild mode exported.\nhomepage: https://github.com/jacobsun/edidor\nUsage:\n1. Throw me to your site root folder/static/css directory, you can rename me to whatever you like.\n2. Copy the code below to your config file.\n\n--------\n[[menu.main]]\nparent = \"Theme\"\nidentifier = \"${identifier}\"\nname = \"${themeName}\"\nurl = \"#\"\nweight = 30\n--------\n\n3. Change the field 'name' and 'weight' to whatever you like. Leave others alone, and don't add your custom field, hugo doesn't support that, though I really hope so :/.\n*/`\n}\n\n\n//# sourceURL=webpack:///./src/js/file_template.js?"); + +/***/ }), + +/***/ "./src/js/helpers.js": +/*!***************************!*\ + !*** ./src/js/helpers.js ***! + \***************************/ +/*! exports provided: qs, elt, removeClass, clearClass, addClass, toggleClass, hasClass, setStyle, onEvent, onPointerMove, ls, randomInt, download, trackTime, getProgress */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"qs\", function() { return qs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"elt\", function() { return elt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeClass\", function() { return removeClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clearClass\", function() { return clearClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addClass\", function() { return addClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"toggleClass\", function() { return toggleClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasClass\", function() { return hasClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setStyle\", function() { return setStyle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onEvent\", function() { return onEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onPointerMove\", function() { return onPointerMove; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ls\", function() { return ls; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"randomInt\", function() { return randomInt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"download\", function() { return download; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"trackTime\", function() { return trackTime; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getProgress\", function() { return getProgress; });\n// dom helper functions\nconst throttle = __webpack_require__(/*! lodash.throttle */ \"./node_modules/lodash.throttle/index.js\")\nfunction qs (sel, parent = document.body) {\n if (typeof parent === 'string') {\n parent = document.querySelector(parent)\n }\n return parent.querySelector(sel)\n}\n\nfunction elt (name, attr = {}, ...text) {\n const node = document.createElement(name)\n Object.keys(attr).forEach(k => {\n node.setAttribute(k, attr[k])\n })\n text.forEach(t => {\n if (typeof t === 'string') {\n t = document.createTextNode(t)\n }\n node.appendChild(t)\n })\n return node\n}\n\nfunction removeClass (dom, cls) {\n if (typeof dom === 'string') {\n dom = qs(dom)\n }\n dom.classList.remove(cls)\n return dom\n}\nfunction clearClass (dom, cls) {\n if (typeof dom === 'string') {\n dom = qs(dom)\n }\n dom.className = ''\n return dom\n}\nfunction addClass (dom, cls) {\n if (typeof dom === 'string') {\n dom = qs(dom)\n }\n dom.classList.add(cls)\n return dom\n}\nfunction toggleClass (dom, cls) {\n if (typeof dom === 'string') {\n dom = qs(dom)\n }\n dom.classList.toggle(cls)\n return dom\n}\nfunction hasClass (dom, cls) {\n if (typeof dom === 'string') {\n dom = qs(dom)\n }\n return dom.classList.contains(cls)\n}\nfunction setStyle (dom, styles) {\n if (typeof dom === 'string') {\n dom = qs(dom)\n }\n\n Object.keys(styles).forEach(key => {\n dom.style[key] = styles[key]\n })\n}\nfunction onEvent (event, cb, limit = 0, dom = document.body, options = {}) {\n if (typeof dom === 'string') {\n dom = qs(dom)\n }\n if (limit > 0) {\n dom.addEventListener(event, throttle(cb, limit), options)\n } else {\n dom.addEventListener(event, cb, options)\n }\n}\n// mousemove and touchmove abstraction\nfunction onPointerMove (cb, limit, dom = document.body) {\n onEvent('mousemove', e => {\n cb({ // eslint-disable-line\n clientX: e.clientX,\n clientY: e.clientY,\n type: e.type\n })\n }, limit, dom, { passive: true })\n\n onEvent('touchmove', e => {\n cb({ // eslint-disable-line\n clientX: e.touches[0].clientX,\n clientY: e.touches[0].clientY,\n type: e.type\n })\n }, limit, dom, { passive: true })\n}\n// local storage\nconst ls = {}\nls.get = key => window.localStorage.getItem(key)\n\nls.set = (key, value) => {\n if (value === null || value === undefined) {\n value = ''\n } else if (typeof value !== 'string') {\n value = JSON.stringify(value)\n }\n window.localStorage.setItem(key, value)\n}\nfunction randomInt (min, max) {\n min = Math.ceil(min)\n max = Math.floor(max)\n return Math.floor(Math.random() * (max - min)) + min\n}\n\nfunction download (filename, text) {\n const a = elt('a', {\n href: 'data:text/plain;charset=utf-8,' + encodeURIComponent(text),\n download: filename,\n style: {\n display: 'none'\n }\n })\n document.body.appendChild(a)\n a.click()\n document.body.removeChild(a)\n}\n\nfunction trackTime (id) {\n const [entry] = window.performance.getEntriesByName(id)\n if (!entry) {\n window.performance.mark(id)\n return 0\n }\n return window.performance.now() - entry.startTime\n}\nfunction getProgress (data) {\n if (data.duration) {\n return Math.min(trackTime(data.id) / data.duration, 1)\n }\n return 1\n}\n\n\n//# sourceURL=webpack:///./src/js/helpers.js?"); + +/***/ }), + +/***/ "./src/js/loader.js": +/*!**************************!*\ + !*** ./src/js/loader.js ***! + \**************************/ +/*! exports provided: getLoader */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLoader\", function() { return getLoader; });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"./src/js/helpers.js\");\n/* harmony import */ var d3_ease__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! d3-ease */ \"./node_modules/d3-ease/src/index.js\");\n\n\nfunction getLoader () {\n let topEle = Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"qs\"])('.top')\n let bottomEle = Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"qs\"])('.bottom')\n let distance = document.documentElement.clientHeight / 2\n let ticket = false\n let closed = false\n let opening = false\n let openWaiting = false\n const animation = (ease, cb, duration, finaly = () => {}) => {\n const tick = () => {\n let progress = Math.min(ease((Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"getProgress\"])(data))), 1)\n // d3.easeExpOut has problem, t can not reach to 1, so I mannually fix it\n // progress = progress > 0.999 ? 1 : progress\n if (progress < 1) {\n cb(progress)\n window.requestAnimationFrame(tick)\n } else {\n window.performance.clearMarks(data.id)\n cb(progress)\n finaly()\n }\n }\n const data = {\n duration,\n id: window.requestAnimationFrame(tick)\n }\n }\n const loading = () => {\n console.log('loading', ticket)\n if (ticket) return\n ticket = true\n close(() => {\n closed = true\n if (openWaiting) {\n open()\n }\n })\n }\n const loaded = () => {\n console.log('loaded: ', ticket, opening)\n if (!ticket) return\n if (opening) return\n opening = true\n if (closed) {\n open()\n } else {\n openWaiting = true\n }\n }\n function close (cb) {\n animation(d3_ease__WEBPACK_IMPORTED_MODULE_1__[\"easeElasticOut\"], progress => {\n topEle.style.top = -((1 - progress) * distance) + 'px'\n bottomEle.style.top = (1 - progress) * distance + distance + 'px'\n }, 1000, cb)\n }\n\n function open (cb) {\n animation(d3_ease__WEBPACK_IMPORTED_MODULE_1__[\"easeElasticOut\"], progress => {\n topEle.style.top = -(progress * distance) + 'px'\n bottomEle.style.top = progress * distance + distance + 'px'\n }, 1000, () => {\n opening = false\n closed = false\n openWaiting = false\n ticket = false\n })\n }\n\n return {\n loading,\n loaded\n }\n}\n\n\n//# sourceURL=webpack:///./src/js/loader.js?"); + +/***/ }), + +/***/ "./src/js/main.js": +/*!************************!*\ + !*** ./src/js/main.js ***! + \************************/ +/*! exports provided: tryLoadMode, tryRestoreSidebar, activateSidebarToggle, activateModeSwitcher, activateSidebarDrag, activateDialog */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tryLoadMode\", function() { return tryLoadMode; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"tryRestoreSidebar\", function() { return tryRestoreSidebar; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"activateSidebarToggle\", function() { return activateSidebarToggle; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"activateModeSwitcher\", function() { return activateModeSwitcher; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"activateSidebarDrag\", function() { return activateSidebarDrag; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"activateDialog\", function() { return activateDialog; });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ \"./src/js/helpers.js\");\n/* harmony import */ var _css_template__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./css_template */ \"./src/js/css_template.js\");\n/* harmony import */ var _file_template__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./file_template */ \"./src/js/file_template.js\");\n\n\n\n\n// sidebar function dragging wrapper\nfunction activateSidebarDrag (doms) {\n const state = {\n last: false,\n resizing: false,\n resizable: false\n }\n\n function switchCursor () {\n if (state.resizable) {\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"setStyle\"])(document.body, { cursor: 'ew-resize' })\n } else {\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"setStyle\"])(document.body, { cursor: 'auto' })\n }\n }\n\n function canResize (x, threshold = 4) {\n return Math.abs(x - doms.pane.getBoundingClientRect().right) <= threshold\n }\n function resize (x) {\n let newWidth = x - doms.paneLeft\n if (newWidth <= 10) {\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"addClass\"])(doms.pane, 'hide')\n } else {\n adjustWidth(newWidth)\n }\n }\n function cancelResize (e) {\n state.resizing = false\n let r = doms.pane.getBoundingClientRect()\n saveWidth(r.right - r.left)\n }\n\n function saveWidth (x) {\n if (x <= 10) {\n return\n }\n _helpers__WEBPACK_IMPORTED_MODULE_0__[\"ls\"].set('sidebar_width', x)\n }\n\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"onEvent\"])('mousedown', e => {\n if (state.resizable) {\n state.resizing = true\n }\n }, 0)\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"onEvent\"])('mouseup', cancelResize, 0)\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"onEvent\"])('keydown', e => {\n if (e.ctrlKey && e.keyCode === 66) {\n toggleSidebar()\n }\n }, 0)\n\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"onEvent\"])('touchstart', e => {\n state.resizing = canResize(e.touches[0].clientX, 10)\n })\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"onEvent\"])('touchend', cancelResize)\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"onPointerMove\"])(pointerMoveHandler, 50, Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"qs\"])('.middle'))\n function pointerMoveHandler (e) {\n state.resizable = canResize(e.clientX)\n if (state.resizing) {\n resize(e.clientX)\n } else if (e.type === 'mousemove' && e.clientX > 10 && state.last !== state.resizable) {\n switchCursor()\n state.last = state.resizable\n }\n }\n}\n// sidebar dragging function end\n// toggle and load sidebar width\nfunction adjustWidth (x, unit = 'px') {\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"setStyle\"])(Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"qs\"])('.sidebar'), { width: x + 'px' })\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"setStyle\"])(Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"qs\"])('.main'), { marginLeft: x + 'px' })\n}\nfunction tryRestoreSidebar (doms) {\n let x = _helpers__WEBPACK_IMPORTED_MODULE_0__[\"ls\"].get('sidebar_width')\n adjustWidth(x)\n let flag = _helpers__WEBPACK_IMPORTED_MODULE_0__[\"ls\"].get('is_sidebar_hide')\n flag === '1' ? Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"addClass\"])(doms.pane, 'hide') : Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"removeClass\"])(doms.pane, 'hide')\n}\nfunction activateSidebarToggle (doms) {\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"onEvent\"])('click', toggleSidebar.bind(null, doms), 0, '.toggle-sidebar')\n}\n\nfunction toggleSidebar (doms, e) {\n if (Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"hasClass\"])(doms.pane, 'hide')) {\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"removeClass\"])(doms.pane, 'hide')\n _helpers__WEBPACK_IMPORTED_MODULE_0__[\"ls\"].set('is_sidebar_hide', '0')\n } else {\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"addClass\"])(doms.pane, 'hide')\n _helpers__WEBPACK_IMPORTED_MODULE_0__[\"ls\"].set('is_sidebar_hide', '1')\n }\n e.preventDefault()\n e.stopPropagation()\n return false\n}\n// style mode functions\nconst toMode = name => {\n if (!Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"hasClass\"])(document.body, name)) {\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"addClass\"])(Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"clearClass\"])(document.body), name)\n }\n _helpers__WEBPACK_IMPORTED_MODULE_0__[\"ls\"].set('mode', name)\n}\nfunction tryLoadMode (doms, loader) {\n let mode = _helpers__WEBPACK_IMPORTED_MODULE_0__[\"ls\"].get('mode')\n mode && toMode(mode)\n if (mode === 'wild-mode') {\n let wildEle = Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"elt\"])(\n 'style',\n { class: 'wild-ele' },\n _helpers__WEBPACK_IMPORTED_MODULE_0__[\"ls\"].get('wild_style'))\n document.body.appendChild(wildEle)\n }\n loader.loaded()\n}\nfunction activateModeSwitcher (doms, loader) {\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"onEvent\"])('click', e => {\n e.preventDefault()\n e.stopPropagation()\n if (e.target.id === 'theme-switcher-button') {\n return\n }\n if (Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"hasClass\"])(e.target, 'export-wild')) {\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"addClass\"])('.dialog', 'show')\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"qs\"])('#theme-name').focus()\n return\n }\n let theme = e.target.dataset.theme\n if (!theme) {\n console.error('Theme name not found, probably missing an \"Identifier\" field in Config file.')\n return\n }\n loader.loading()\n toMode(theme + '-mode')\n if (theme === 'wild') {\n const wildEle = Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"qs\"])('.wild-ele')\n const style = Object(_css_template__WEBPACK_IMPORTED_MODULE_1__[\"default\"])()\n if (wildEle) {\n wildEle.innerText = style\n } else {\n document.body.appendChild(Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"elt\"])('style', { class: 'wild-ele' }, style))\n }\n _helpers__WEBPACK_IMPORTED_MODULE_0__[\"ls\"].set('wild_style', style)\n }\n loader.loaded()\n }, 0, '#theme-switcher')\n}\n\n// function showCloak () {\n// removeClass(cloak, 'hide')\n// }\n\nfunction activateDialog (doms, loader) {\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"onEvent\"])('click', e => {\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"removeClass\"])('.dialog', 'show')\n }, 0, '.close-dialog')\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"onEvent\"])('click', e => {\n const themeName = Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"qs\"])('#theme-name').value.trim()\n if (!themeName) {\n window.alert('Name is required.')\n return\n }\n if (!/^[a-zA-Z\\s-]+$/.test(themeName)) {\n window.alert('Only English letters, space, hyphens are allowed.')\n return\n }\n if (themeName === 'light' || themeName === 'dark' || themeName === 'wild') {\n window.alert('Mess up builtin themes.')\n return\n }\n loader.loading()\n exportWild(themeName)\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"removeClass\"])('.dialog', 'show')\n loader.loaded()\n }, 0, '.export')\n}\nfunction exportWild (themeName) {\n let content = generateFile(themeName)\n Object(_helpers__WEBPACK_IMPORTED_MODULE_0__[\"download\"])(themeName + '.css', content)\n}\n\nfunction generateFile (themeName) {\n let style = _helpers__WEBPACK_IMPORTED_MODULE_0__[\"ls\"].get('wild_style')\n let identifier = themeName.replace(/\\s/g, '-')\n style = style.replace(/wild-mode/g, `${identifier}-mode`)\n let file = Object(_file_template__WEBPACK_IMPORTED_MODULE_2__[\"genFile\"])(identifier, themeName)\n return file + style\n}\n\n\n\n\n//# sourceURL=webpack:///./src/js/main.js?"); + +/***/ }) + +/******/ });
\ No newline at end of file |