import { html, css, Component, classMap } from 'wkit' import fetch from '/lib/fetch.js' class Header extends Component { static props = { input: '' } static styles = css` .common-header { flex-shrink: 0; display: flex; flex-direction: column; justify-content: space-between; align-items: center; width: 100%; height: 240px; background: var(--color-red-1); color: #fff; .wrapper { display: flex; width: 1024px; justify-content: space-between; align-items: center; } .navibar { height: 36px; margin-top: 24px; .logo { font-weight: bold; font-size: 26px; & img { display: block; height: 36px; } } .navi { display: flex; align-items: center; font-size: 16px; & router-link { margin: 0 16px; padding: 3px 6px; border-radius: 4px; transition: background 0.2s ease-in-out; &:hover { background: rgba(255, 255, 255, 0.3); } &.router-link-active { text-decoration: underline; } } } } .banner { width: 640px; text-align: center; } .search { display: none; width: 520px; color: #fff; --bg-color: rgba(0, 0, 0, 0.3); } &.search-show { height: 320px; .search { display: inline-block; } } &::after { display: flex; justify-content: center; align-items: center; width: 100%; height: 48px; font-size: 16px; background: rgba(0, 0, 0, 0.1); content: '免费、快速、开放的 CDN 服务'; } } @media screen and (max-width: 1024px) { .common-header { .navibar { width: 100%; padding: 0 32px; } .wrapper { width: 100%; } } } ` search() { let id = this.input.trim() if (id) { fetch('/package/search/' + encodeURIComponent(id)).then(r => { let dict = { versions: [], id } let last = null for (let it of r.data) { let tmp = it.split('/') let v = tmp.shift() let n = tmp.join('/') if (last === v) { dict[last].push(n) } else { last = v dict.versions.push(last) dict[last] = [n] } } this.$store.result = dict }) } else { this.$store.result = null } } render() { return html`
` } } Header.reg('header')