Use v-slot instead of slot

This commit is contained in:
syuilo 2019-02-18 09:48:00 +09:00
parent ba1492f977
commit 54d40420ad
No known key found for this signature in database
GPG Key ID: BDC4C49D06AB9D69
96 changed files with 291 additions and 283 deletions

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<ui-card> <ui-card>
<div slot="title"><fa :icon="faExclamationCircle"/> {{ $t('title') }}</div> <template v-slot:title><fa :icon="faExclamationCircle"/> {{ $t('title') }}</template>
<section class="fit-top"> <section class="fit-top">
<sequential-entrance animation="entranceFromTop" delay="25"> <sequential-entrance animation="entranceFromTop" delay="25">
<div v-for="report in userReports" :key="report.id" class="haexwsjc"> <div v-for="report in userReports" :key="report.id" class="haexwsjc">

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<ui-card> <ui-card>
<div slot="title"><fa icon="broadcast-tower"/> {{ $t('announcements') }}</div> <template v-slot:title><fa icon="broadcast-tower"/> {{ $t('announcements') }}</template>
<section v-for="(announcement, i) in announcements" class="fit-top"> <section v-for="(announcement, i) in announcements" class="fit-top">
<ui-input v-model="announcement.title" @change="save"> <ui-input v-model="announcement.title" @change="save">
<span>{{ $t('title') }}</span> <span>{{ $t('title') }}</span>

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<ui-card> <ui-card>
<div slot="title"><fa :icon="faTerminal"/> {{ $t('operation') }}</div> <template v-slot:title><fa :icon="faTerminal"/> {{ $t('operation') }}</template>
<section class="fit-top"> <section class="fit-top">
<ui-input v-model="target" type="text"> <ui-input v-model="target" type="text">
<span>{{ $t('fileid-or-url') }}</span> <span>{{ $t('fileid-or-url') }}</span>
@ -17,18 +17,18 @@
</ui-card> </ui-card>
<ui-card> <ui-card>
<div slot="title"><fa :icon="faCloud"/> {{ $t('@.drive') }}</div> <template v-slot:title><fa :icon="faCloud"/> {{ $t('@.drive') }}</template>
<section class="fit-top"> <section class="fit-top">
<ui-horizon-group inputs> <ui-horizon-group inputs>
<ui-select v-model="sort"> <ui-select v-model="sort">
<span slot="label">{{ $t('sort.title') }}</span> <template v-slot:label>{{ $t('sort.title') }}</template>
<option value="-createdAt">{{ $t('sort.createdAtAsc') }}</option> <option value="-createdAt">{{ $t('sort.createdAtAsc') }}</option>
<option value="+createdAt">{{ $t('sort.createdAtDesc') }}</option> <option value="+createdAt">{{ $t('sort.createdAtDesc') }}</option>
<option value="-size">{{ $t('sort.sizeAsc') }}</option> <option value="-size">{{ $t('sort.sizeAsc') }}</option>
<option value="+size">{{ $t('sort.sizeDesc') }}</option> <option value="+size">{{ $t('sort.sizeDesc') }}</option>
</ui-select> </ui-select>
<ui-select v-model="origin"> <ui-select v-model="origin">
<span slot="label">{{ $t('origin.title') }}</span> <template v-slot:label>{{ $t('origin.title') }}</template>
<option value="combined">{{ $t('origin.combined') }}</option> <option value="combined">{{ $t('origin.combined') }}</option>
<option value="local">{{ $t('origin.local') }}</option> <option value="local">{{ $t('origin.local') }}</option>
<option value="remote">{{ $t('origin.remote') }}</option> <option value="remote">{{ $t('origin.remote') }}</option>

View File

@ -1,20 +1,20 @@
<template> <template>
<div> <div>
<ui-card> <ui-card>
<div slot="title"><fa icon="plus"/> {{ $t('add-emoji.title') }}</div> <template v-slot:title><fa icon="plus"/> {{ $t('add-emoji.title') }}</template>
<section class="fit-top"> <section class="fit-top">
<ui-horizon-group inputs> <ui-horizon-group inputs>
<ui-input v-model="name"> <ui-input v-model="name">
<span>{{ $t('add-emoji.name') }}</span> <span>{{ $t('add-emoji.name') }}</span>
<span slot="desc">{{ $t('add-emoji.name-desc') }}</span> <template v-slot:desc>{{ $t('add-emoji.name-desc') }}</template>
</ui-input> </ui-input>
<ui-input v-model="aliases"> <ui-input v-model="aliases">
<span>{{ $t('add-emoji.aliases') }}</span> <span>{{ $t('add-emoji.aliases') }}</span>
<span slot="desc">{{ $t('add-emoji.aliases-desc') }}</span> <template v-slot:desc>{{ $t('add-emoji.aliases-desc') }}</template>
</ui-input> </ui-input>
</ui-horizon-group> </ui-horizon-group>
<ui-input v-model="url"> <ui-input v-model="url">
<i slot="icon"><fa icon="link"/></i> <template v-slot:icon><fa icon="link"/></template>
<span>{{ $t('add-emoji.url') }}</span> <span>{{ $t('add-emoji.url') }}</span>
</ui-input> </ui-input>
<ui-info>{{ $t('add-emoji.info') }}</ui-info> <ui-info>{{ $t('add-emoji.info') }}</ui-info>
@ -23,7 +23,7 @@
</ui-card> </ui-card>
<ui-card> <ui-card>
<div slot="title"><fa :icon="faGrin"/> {{ $t('emojis.title') }}</div> <template v-slot:title><fa :icon="faGrin"/> {{ $t('emojis.title') }}</template>
<section v-for="emoji in emojis" class="oryfrbft"> <section v-for="emoji in emojis" class="oryfrbft">
<div> <div>
<img :src="emoji.url" :alt="emoji.name" style="width: 64px;"/> <img :src="emoji.url" :alt="emoji.name" style="width: 64px;"/>
@ -38,7 +38,7 @@
</ui-input> </ui-input>
</ui-horizon-group> </ui-horizon-group>
<ui-input v-model="emoji.url"> <ui-input v-model="emoji.url">
<i slot="icon"><fa icon="link"/></i> <template v-slot:icon><fa icon="link"/></template>
<span>{{ $t('add-emoji.url') }}</span> <span>{{ $t('add-emoji.url') }}</span>
</ui-input> </ui-input>
<ui-horizon-group class="fit-bottom"> <ui-horizon-group class="fit-bottom">

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<ui-card> <ui-card>
<div slot="title"><fa :icon="faTerminal"/> {{ $t('federation') }}</div> <template v-slot:title><fa :icon="faTerminal"/> {{ $t('federation') }}</template>
<section class="fit-top"> <section class="fit-top">
<ui-input class="target" v-model="target" type="text" @enter="showInstance()"> <ui-input class="target" v-model="target" type="text" @enter="showInstance()">
<span>{{ $t('host') }}</span> <span>{{ $t('host') }}</span>
@ -74,11 +74,11 @@
</ui-card> </ui-card>
<ui-card> <ui-card>
<div slot="title"><fa :icon="faServer"/> {{ $t('instances') }}</div> <template v-slot:title><fa :icon="faServer"/> {{ $t('instances') }}</template>
<section class="fit-top"> <section class="fit-top">
<ui-horizon-group inputs> <ui-horizon-group inputs>
<ui-select v-model="sort"> <ui-select v-model="sort">
<span slot="label">{{ $t('sort') }}</span> <template v-slot:label>{{ $t('sort') }}</template>
<option value="-caughtAt">{{ $t('sorts.caughtAtAsc') }}</option> <option value="-caughtAt">{{ $t('sorts.caughtAtAsc') }}</option>
<option value="+caughtAt">{{ $t('sorts.caughtAtDesc') }}</option> <option value="+caughtAt">{{ $t('sorts.caughtAtDesc') }}</option>
<option value="-lastCommunicatedAt">{{ $t('sorts.lastCommunicatedAtAsc') }}</option> <option value="-lastCommunicatedAt">{{ $t('sorts.lastCommunicatedAtAsc') }}</option>
@ -97,7 +97,7 @@
<option value="+driveFiles">{{ $t('sorts.driveFilesDesc') }}</option> <option value="+driveFiles">{{ $t('sorts.driveFilesDesc') }}</option>
</ui-select> </ui-select>
<ui-select v-model="state"> <ui-select v-model="state">
<span slot="label">{{ $t('state') }}</span> <template v-slot:label>{{ $t('state') }}</template>
<option value="all">{{ $t('states.all') }}</option> <option value="all">{{ $t('states.all') }}</option>
<option value="blocked">{{ $t('states.blocked') }}</option> <option value="blocked">{{ $t('states.blocked') }}</option>
<option value="notResponding">{{ $t('states.not-responding') }}</option> <option value="notResponding">{{ $t('states.not-responding') }}</option>

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<ui-card> <ui-card>
<div slot="title">{{ $t('hided-tags') }}</div> <template v-slot:title>{{ $t('hided-tags') }}</template>
<section> <section>
<textarea class="jdnqwkzlnxcfftthoybjxrebyolvoucw" v-model="hidedTags"></textarea> <textarea class="jdnqwkzlnxcfftthoybjxrebyolvoucw" v-model="hidedTags"></textarea>
<ui-button @click="save">{{ $t('save') }}</ui-button> <ui-button @click="save">{{ $t('save') }}</ui-button>

View File

@ -1,20 +1,20 @@
<template> <template>
<div> <div>
<ui-card> <ui-card>
<div slot="title"><fa icon="cog"/> {{ $t('instance') }}</div> <template v-slot:title><fa icon="cog"/> {{ $t('instance') }}</template>
<section class="fit-top fit-bottom"> <section class="fit-top fit-bottom">
<ui-input :value="host" readonly>{{ $t('host') }}</ui-input> <ui-input :value="host" readonly>{{ $t('host') }}</ui-input>
<ui-input v-model="name">{{ $t('instance-name') }}</ui-input> <ui-input v-model="name">{{ $t('instance-name') }}</ui-input>
<ui-textarea v-model="description">{{ $t('instance-description') }}</ui-textarea> <ui-textarea v-model="description">{{ $t('instance-description') }}</ui-textarea>
<ui-input v-model="mascotImageUrl"><i slot="icon"><fa icon="link"/></i>{{ $t('logo-url') }}</ui-input> <ui-input v-model="mascotImageUrl"><template v-slot:icon><fa icon="link"/></template>{{ $t('logo-url') }}</ui-input>
<ui-input v-model="bannerUrl"><i slot="icon"><fa icon="link"/></i>{{ $t('banner-url') }}</ui-input> <ui-input v-model="bannerUrl"><template v-slot:icon><fa icon="link"/></template>{{ $t('banner-url') }}</ui-input>
<ui-input v-model="errorImageUrl"><i slot="icon"><fa icon="link"/></i>{{ $t('error-image-url') }}</ui-input> <ui-input v-model="errorImageUrl"><template v-slot:icon><fa icon="link"/></template>{{ $t('error-image-url') }}</ui-input>
<ui-input v-model="languages"><i slot="icon"><fa icon="language"/></i>{{ $t('languages') }}<span slot="desc">{{ $t('languages-desc') }}</span></ui-input> <ui-input v-model="languages"><template v-slot:icon><fa icon="language"/></template>{{ $t('languages') }}<template v-slot:desc>{{ $t('languages-desc') }}</template></ui-input>
</section> </section>
<section class="fit-bottom"> <section class="fit-bottom">
<header><fa :icon="faHeadset"/> {{ $t('maintainer-config') }}</header> <header><fa :icon="faHeadset"/> {{ $t('maintainer-config') }}</header>
<ui-input v-model="maintainerName">{{ $t('maintainer-name') }}</ui-input> <ui-input v-model="maintainerName">{{ $t('maintainer-name') }}</ui-input>
<ui-input v-model="maintainerEmail" type="email"><i slot="icon"><fa :icon="farEnvelope"/></i>{{ $t('maintainer-email') }}</ui-input> <ui-input v-model="maintainerEmail" type="email"><template v-slot:icon><fa :icon="farEnvelope"/></template>{{ $t('maintainer-email') }}</ui-input>
</section> </section>
<section class="fit-top fit-bottom"> <section class="fit-top fit-bottom">
<ui-input v-model="maxNoteTextLength">{{ $t('max-note-text-length') }}</ui-input> <ui-input v-model="maxNoteTextLength">{{ $t('max-note-text-length') }}</ui-input>
@ -27,28 +27,28 @@
</section> </section>
<section class="fit-bottom"> <section class="fit-bottom">
<header><fa icon="cloud"/> {{ $t('drive-config') }}</header> <header><fa icon="cloud"/> {{ $t('drive-config') }}</header>
<ui-switch v-model="cacheRemoteFiles">{{ $t('cache-remote-files') }}<span slot="desc">{{ $t('cache-remote-files-desc') }}</span></ui-switch> <ui-switch v-model="cacheRemoteFiles">{{ $t('cache-remote-files') }}<template v-slot:desc>{{ $t('cache-remote-files-desc') }}</template></ui-switch>
<ui-input v-model="localDriveCapacityMb" type="number">{{ $t('local-drive-capacity-mb') }}<span slot="suffix">MB</span><span slot="desc">{{ $t('mb') }}</span></ui-input> <ui-input v-model="localDriveCapacityMb" type="number">{{ $t('local-drive-capacity-mb') }}<template v-slot:suffix>MB</template><template v-slot:desc>{{ $t('mb') }}</template></ui-input>
<ui-input v-model="remoteDriveCapacityMb" type="number" :disabled="!cacheRemoteFiles">{{ $t('remote-drive-capacity-mb') }}<span slot="suffix">MB</span><span slot="desc">{{ $t('mb') }}</span></ui-input> <ui-input v-model="remoteDriveCapacityMb" type="number" :disabled="!cacheRemoteFiles">{{ $t('remote-drive-capacity-mb') }}<template v-slot:suffix>MB</template><template v-slot:desc>{{ $t('mb') }}</template></ui-input>
</section> </section>
<section class="fit-bottom"> <section class="fit-bottom">
<header><fa :icon="faShieldAlt"/> {{ $t('recaptcha-config') }}</header> <header><fa :icon="faShieldAlt"/> {{ $t('recaptcha-config') }}</header>
<ui-switch v-model="enableRecaptcha">{{ $t('enable-recaptcha') }}</ui-switch> <ui-switch v-model="enableRecaptcha">{{ $t('enable-recaptcha') }}</ui-switch>
<ui-info>{{ $t('recaptcha-info') }}</ui-info> <ui-info>{{ $t('recaptcha-info') }}</ui-info>
<ui-horizon-group inputs> <ui-horizon-group inputs>
<ui-input v-model="recaptchaSiteKey" :disabled="!enableRecaptcha"><i slot="icon"><fa icon="key"/></i>{{ $t('recaptcha-site-key') }}</ui-input> <ui-input v-model="recaptchaSiteKey" :disabled="!enableRecaptcha"><template v-slot:icon><fa icon="key"/></template>{{ $t('recaptcha-site-key') }}</ui-input>
<ui-input v-model="recaptchaSecretKey" :disabled="!enableRecaptcha"><i slot="icon"><fa icon="key"/></i>{{ $t('recaptcha-secret-key') }}</ui-input> <ui-input v-model="recaptchaSecretKey" :disabled="!enableRecaptcha"><template v-slot:icon><fa icon="key"/></template>{{ $t('recaptcha-secret-key') }}</ui-input>
</ui-horizon-group> </ui-horizon-group>
</section> </section>
<section> <section>
<header><fa :icon="faGhost"/> {{ $t('proxy-account-config') }}</header> <header><fa :icon="faGhost"/> {{ $t('proxy-account-config') }}</header>
<ui-info>{{ $t('proxy-account-info') }}</ui-info> <ui-info>{{ $t('proxy-account-info') }}</ui-info>
<ui-input v-model="proxyAccount"><span slot="prefix">@</span>{{ $t('proxy-account-username') }}<span slot="desc">{{ $t('proxy-account-username-desc') }}</span></ui-input> <ui-input v-model="proxyAccount"><template v-slot:prefix>@</template>{{ $t('proxy-account-username') }}<template v-slot:desc>{{ $t('proxy-account-username-desc') }}</template></ui-input>
<ui-info warn>{{ $t('proxy-account-warn') }}</ui-info> <ui-info warn>{{ $t('proxy-account-warn') }}</ui-info>
</section> </section>
<section> <section>
<header><fa :icon="farEnvelope"/> {{ $t('email-config') }}</header> <header><fa :icon="farEnvelope"/> {{ $t('email-config') }}</header>
<ui-switch v-model="enableEmail">{{ $t('enable-email') }}<span slot="desc">{{ $t('email-config-info') }}</span></ui-switch> <ui-switch v-model="enableEmail">{{ $t('enable-email') }}<template v-slot:desc>{{ $t('email-config-info') }}</template></ui-switch>
<ui-input v-model="email" type="email" :disabled="!enableEmail">{{ $t('email') }}</ui-input> <ui-input v-model="email" type="email" :disabled="!enableEmail">{{ $t('email') }}</ui-input>
<ui-horizon-group inputs> <ui-horizon-group inputs>
<ui-input v-model="smtpHost" :disabled="!enableEmail">{{ $t('smtp-host') }}</ui-input> <ui-input v-model="smtpHost" :disabled="!enableEmail">{{ $t('smtp-host') }}</ui-input>
@ -58,15 +58,15 @@
<ui-input v-model="smtpUser" :disabled="!enableEmail">{{ $t('smtp-user') }}</ui-input> <ui-input v-model="smtpUser" :disabled="!enableEmail">{{ $t('smtp-user') }}</ui-input>
<ui-input v-model="smtpPass" type="password" :withPasswordToggle="true" :disabled="!enableEmail">{{ $t('smtp-pass') }}</ui-input> <ui-input v-model="smtpPass" type="password" :withPasswordToggle="true" :disabled="!enableEmail">{{ $t('smtp-pass') }}</ui-input>
</ui-horizon-group> </ui-horizon-group>
<ui-switch v-model="smtpSecure" :disabled="!enableEmail">{{ $t('smtp-secure') }}<span slot="desc">{{ $t('smtp-secure-info') }}</span></ui-switch> <ui-switch v-model="smtpSecure" :disabled="!enableEmail">{{ $t('smtp-secure') }}<template v-slot:desc>{{ $t('smtp-secure-info') }}</template></ui-switch>
</section> </section>
<section> <section>
<header><fa :icon="faBolt"/> {{ $t('serviceworker-config') }}</header> <header><fa :icon="faBolt"/> {{ $t('serviceworker-config') }}</header>
<ui-switch v-model="enableServiceWorker">{{ $t('enable-serviceworker') }}<span slot="desc">{{ $t('serviceworker-info') }}</span></ui-switch> <ui-switch v-model="enableServiceWorker">{{ $t('enable-serviceworker') }}<template v-slot:desc>{{ $t('serviceworker-info') }}</template></ui-switch>
<ui-info>{{ $t('vapid-info') }}<br><code>npm i web-push -g<br>web-push generate-vapid-keys</code></ui-info> <ui-info>{{ $t('vapid-info') }}<br><code>npm i web-push -g<br>web-push generate-vapid-keys</code></ui-info>
<ui-horizon-group inputs class="fit-bottom"> <ui-horizon-group inputs class="fit-bottom">
<ui-input v-model="swPublicKey" :disabled="!enableServiceWorker"><i slot="icon"><fa icon="key"/></i>{{ $t('vapid-publickey') }}</ui-input> <ui-input v-model="swPublicKey" :disabled="!enableServiceWorker"><template v-slot:icon><fa icon="key"/></template>{{ $t('vapid-publickey') }}</ui-input>
<ui-input v-model="swPrivateKey" :disabled="!enableServiceWorker"><i slot="icon"><fa icon="key"/></i>{{ $t('vapid-privatekey') }}</ui-input> <ui-input v-model="swPrivateKey" :disabled="!enableServiceWorker"><template v-slot:icon><fa icon="key"/></template>{{ $t('vapid-privatekey') }}</ui-input>
</ui-horizon-group> </ui-horizon-group>
</section> </section>
<section> <section>
@ -76,8 +76,8 @@
<section> <section>
<header><fa :icon="faUserPlus"/> {{ $t('user-recommendation-config') }}</header> <header><fa :icon="faUserPlus"/> {{ $t('user-recommendation-config') }}</header>
<ui-switch v-model="enableExternalUserRecommendation">{{ $t('enable-external-user-recommendation') }}</ui-switch> <ui-switch v-model="enableExternalUserRecommendation">{{ $t('enable-external-user-recommendation') }}</ui-switch>
<ui-input v-model="externalUserRecommendationEngine" :disabled="!enableExternalUserRecommendation">{{ $t('external-user-recommendation-engine') }}<span slot="desc">{{ $t('external-user-recommendation-engine-desc') }}</span></ui-input> <ui-input v-model="externalUserRecommendationEngine" :disabled="!enableExternalUserRecommendation">{{ $t('external-user-recommendation-engine') }}<template v-slot:desc>{{ $t('external-user-recommendation-engine-desc') }}</template></ui-input>
<ui-input v-model="externalUserRecommendationTimeout" type="number" :disabled="!enableExternalUserRecommendation">{{ $t('external-user-recommendation-timeout') }}<span slot="suffix">ms</span><span slot="desc">{{ $t('external-user-recommendation-timeout-desc') }}</span></ui-input> <ui-input v-model="externalUserRecommendationTimeout" type="number" :disabled="!enableExternalUserRecommendation">{{ $t('external-user-recommendation-timeout') }}<template v-slot:suffix>ms</template><template v-slot:desc>{{ $t('external-user-recommendation-timeout-desc') }}</template></ui-input>
</section> </section>
<section> <section>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button> <ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
@ -85,7 +85,7 @@
</ui-card> </ui-card>
<ui-card> <ui-card>
<div slot="title">{{ $t('invite') }}</div> <template v-slot:title>{{ $t('invite') }}</template>
<section> <section>
<ui-button @click="invite">{{ $t('invite') }}</ui-button> <ui-button @click="invite">{{ $t('invite') }}</ui-button>
<p v-if="inviteCode">Code: <code>{{ inviteCode }}</code></p> <p v-if="inviteCode">Code: <code>{{ inviteCode }}</code></p>
@ -93,12 +93,12 @@
</ui-card> </ui-card>
<ui-card> <ui-card>
<div slot="title"><fa :icon="['fab', 'twitter']"/> {{ $t('twitter-integration-config') }}</div> <template v-slot:title><fa :icon="['fab', 'twitter']"/> {{ $t('twitter-integration-config') }}</template>
<section> <section>
<ui-switch v-model="enableTwitterIntegration">{{ $t('enable-twitter-integration') }}</ui-switch> <ui-switch v-model="enableTwitterIntegration">{{ $t('enable-twitter-integration') }}</ui-switch>
<ui-horizon-group> <ui-horizon-group>
<ui-input v-model="twitterConsumerKey" :disabled="!enableTwitterIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('twitter-integration-consumer-key') }}</ui-input> <ui-input v-model="twitterConsumerKey" :disabled="!enableTwitterIntegration"><template v-slot:icon><fa icon="key"/></template>{{ $t('twitter-integration-consumer-key') }}</ui-input>
<ui-input v-model="twitterConsumerSecret" :disabled="!enableTwitterIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('twitter-integration-consumer-secret') }}</ui-input> <ui-input v-model="twitterConsumerSecret" :disabled="!enableTwitterIntegration"><template v-slot:icon><fa icon="key"/></template>{{ $t('twitter-integration-consumer-secret') }}</ui-input>
</ui-horizon-group> </ui-horizon-group>
<ui-info>{{ $t('twitter-integration-info', { url: `${url}/api/tw/cb` }) }}</ui-info> <ui-info>{{ $t('twitter-integration-info', { url: `${url}/api/tw/cb` }) }}</ui-info>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button> <ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
@ -106,12 +106,12 @@
</ui-card> </ui-card>
<ui-card> <ui-card>
<div slot="title"><fa :icon="['fab', 'github']"/> {{ $t('github-integration-config') }}</div> <template v-slot:title><fa :icon="['fab', 'github']"/> {{ $t('github-integration-config') }}</template>
<section> <section>
<ui-switch v-model="enableGithubIntegration">{{ $t('enable-github-integration') }}</ui-switch> <ui-switch v-model="enableGithubIntegration">{{ $t('enable-github-integration') }}</ui-switch>
<ui-horizon-group> <ui-horizon-group>
<ui-input v-model="githubClientId" :disabled="!enableGithubIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('github-integration-client-id') }}</ui-input> <ui-input v-model="githubClientId" :disabled="!enableGithubIntegration"><template v-slot:icon><fa icon="key"/></template>{{ $t('github-integration-client-id') }}</ui-input>
<ui-input v-model="githubClientSecret" :disabled="!enableGithubIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('github-integration-client-secret') }}</ui-input> <ui-input v-model="githubClientSecret" :disabled="!enableGithubIntegration"><template v-slot:icon><fa icon="key"/></template>{{ $t('github-integration-client-secret') }}</ui-input>
</ui-horizon-group> </ui-horizon-group>
<ui-info>{{ $t('github-integration-info', { url: `${url}/api/gh/cb` }) }}</ui-info> <ui-info>{{ $t('github-integration-info', { url: `${url}/api/gh/cb` }) }}</ui-info>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button> <ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
@ -119,12 +119,12 @@
</ui-card> </ui-card>
<ui-card> <ui-card>
<div slot="title"><fa :icon="['fab', 'discord']"/> {{ $t('discord-integration-config') }}</div> <template v-slot:title><fa :icon="['fab', 'discord']"/> {{ $t('discord-integration-config') }}</template>
<section> <section>
<ui-switch v-model="enableDiscordIntegration">{{ $t('enable-discord-integration') }}</ui-switch> <ui-switch v-model="enableDiscordIntegration">{{ $t('enable-discord-integration') }}</ui-switch>
<ui-horizon-group> <ui-horizon-group>
<ui-input v-model="discordClientId" :disabled="!enableDiscordIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('discord-integration-client-id') }}</ui-input> <ui-input v-model="discordClientId" :disabled="!enableDiscordIntegration"><template v-slot:icon><fa icon="key"/></template>{{ $t('discord-integration-client-id') }}</ui-input>
<ui-input v-model="discordClientSecret" :disabled="!enableDiscordIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('discord-integration-client-secret') }}</ui-input> <ui-input v-model="discordClientSecret" :disabled="!enableDiscordIntegration"><template v-slot:icon><fa icon="key"/></template>{{ $t('discord-integration-client-secret') }}</ui-input>
</ui-horizon-group> </ui-horizon-group>
<ui-info>{{ $t('discord-integration-info', { url: `${url}/api/dc/cb` }) }}</ui-info> <ui-info>{{ $t('discord-integration-info', { url: `${url}/api/dc/cb` }) }}</ui-info>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button> <ui-button @click="updateMeta">{{ $t('save') }}</ui-button>

View File

@ -1,10 +1,10 @@
<template> <template>
<div> <div>
<ui-card> <ui-card>
<div slot="title"><fa icon="plus"/> {{ $t('add-moderator.title') }}</div> <template v-slot:title><fa icon="plus"/> {{ $t('add-moderator.title') }}</template>
<section class="fit-top"> <section class="fit-top">
<ui-input v-model="username" type="text"> <ui-input v-model="username" type="text">
<span slot="prefix">@</span> <template v-slot:prefix>@</template>
</ui-input> </ui-input>
<ui-horizon-group> <ui-horizon-group>
<ui-button @click="add" :disabled="changing">{{ $t('add-moderator.add') }}</ui-button> <ui-button @click="add" :disabled="changing">{{ $t('add-moderator.add') }}</ui-button>

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<ui-card> <ui-card>
<div slot="title">{{ $t('operation') }}</div> <template v-slot:title>{{ $t('operation') }}</template>
<section> <section>
<ui-button @click="removeAllJobs">{{ $t('remove-all-jobs') }}</ui-button> <ui-button @click="removeAllJobs">{{ $t('remove-all-jobs') }}</ui-button>
</section> </section>

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<ui-card> <ui-card>
<div slot="title"><fa :icon="faTerminal"/> {{ $t('operation') }}</div> <template v-slot:title><fa :icon="faTerminal"/> {{ $t('operation') }}</template>
<section class="fit-top"> <section class="fit-top">
<ui-input class="target" v-model="target" type="text" @enter="showUser"> <ui-input class="target" v-model="target" type="text" @enter="showUser">
<span>{{ $t('username-or-userid') }}</span> <span>{{ $t('username-or-userid') }}</span>
@ -32,18 +32,18 @@
</ui-card> </ui-card>
<ui-card> <ui-card>
<div slot="title"><fa :icon="faUsers"/> {{ $t('users.title') }}</div> <template v-slot:title><fa :icon="faUsers"/> {{ $t('users.title') }}</template>
<section class="fit-top"> <section class="fit-top">
<ui-horizon-group inputs> <ui-horizon-group inputs>
<ui-select v-model="sort"> <ui-select v-model="sort">
<span slot="label">{{ $t('users.sort.title') }}</span> <template v-slot:label>{{ $t('users.sort.title') }}</template>
<option value="-createdAt">{{ $t('users.sort.createdAtAsc') }}</option> <option value="-createdAt">{{ $t('users.sort.createdAtAsc') }}</option>
<option value="+createdAt">{{ $t('users.sort.createdAtDesc') }}</option> <option value="+createdAt">{{ $t('users.sort.createdAtDesc') }}</option>
<option value="-updatedAt">{{ $t('users.sort.updatedAtAsc') }}</option> <option value="-updatedAt">{{ $t('users.sort.updatedAtAsc') }}</option>
<option value="+updatedAt">{{ $t('users.sort.updatedAtDesc') }}</option> <option value="+updatedAt">{{ $t('users.sort.updatedAtDesc') }}</option>
</ui-select> </ui-select>
<ui-select v-model="state"> <ui-select v-model="state">
<span slot="label">{{ $t('users.state.title') }}</span> <template v-slot:label>{{ $t('users.state.title') }}</template>
<option value="all">{{ $t('users.state.all') }}</option> <option value="all">{{ $t('users.state.all') }}</option>
<option value="admin">{{ $t('users.state.admin') }}</option> <option value="admin">{{ $t('users.state.admin') }}</option>
<option value="moderator">{{ $t('users.state.moderator') }}</option> <option value="moderator">{{ $t('users.state.moderator') }}</option>
@ -52,7 +52,7 @@
<option value="suspended">{{ $t('users.state.suspended') }}</option> <option value="suspended">{{ $t('users.state.suspended') }}</option>
</ui-select> </ui-select>
<ui-select v-model="origin"> <ui-select v-model="origin">
<span slot="label">{{ $t('users.origin.title') }}</span> <template v-slot:label>{{ $t('users.origin.title') }}</template>
<option value="combined">{{ $t('users.origin.combined') }}</option> <option value="combined">{{ $t('users.origin.combined') }}</option>
<option value="local">{{ $t('users.origin.local') }}</option> <option value="local">{{ $t('users.origin.local') }}</option>
<option value="remote">{{ $t('users.origin.remote') }}</option> <option value="remote">{{ $t('users.origin.remote') }}</option>

View File

@ -1,6 +1,6 @@
<template> <template>
<ui-card> <ui-card>
<div slot="title"><fa icon="key"/> API</div> <template v-slot:title><fa icon="key"/> API</template>
<section class="fit-top"> <section class="fit-top">
<ui-input :value="$store.state.i.token" readonly> <ui-input :value="$store.state.i.token" readonly>
@ -19,7 +19,7 @@
</ui-input> </ui-input>
<ui-textarea v-model="body"> <ui-textarea v-model="body">
<span>{{ $t('console.parameter') }} (JSON or JSON5)</span> <span>{{ $t('console.parameter') }} (JSON or JSON5)</span>
<span slot="desc">{{ $t('console.credential-info') }}</span> <template v-slot:desc>{{ $t('console.credential-info') }}</template>
</ui-textarea> </ui-textarea>
<ui-button @click="send" :disabled="sending"> <ui-button @click="send" :disabled="sending">
<template v-if="sending">{{ $t('console.sending') }}</template> <template v-if="sending">{{ $t('console.sending') }}</template>

View File

@ -6,7 +6,7 @@
<header v-if="title" v-html="title"></header> <header v-if="title" v-html="title"></header>
<div class="body" v-if="text" v-html="text"></div> <div class="body" v-if="text" v-html="text"></div>
<ui-input v-if="input" v-model="inputValue" autofocus :type="input.type || 'text'" :placeholder="input.placeholder" @keydown="onInputKeydown"></ui-input> <ui-input v-if="input" v-model="inputValue" autofocus :type="input.type || 'text'" :placeholder="input.placeholder" @keydown="onInputKeydown"></ui-input>
<ui-input v-if="user" v-model="userInputValue" autofocus @keydown="onInputKeydown"><span slot="prefix">@</span></ui-input> <ui-input v-if="user" v-model="userInputValue" autofocus @keydown="onInputKeydown"><template v-slot:prefix>@</template></ui-input>
<ui-select v-if="select" v-model="selectedValue"> <ui-select v-if="select" v-model="selectedValue">
<option v-for="item in select.items" :value="item.value">{{ item.text }}</option> <option v-for="item in select.items" :value="item.value">{{ item.text }}</option>
</ui-select> </ui-select>

View File

@ -1,6 +1,6 @@
<template> <template>
<ui-card> <ui-card>
<div slot="title"><fa icon="cloud"/> {{ $t('@.drive') }}</div> <template v-slot:title><fa icon="cloud"/> {{ $t('@.drive') }}</template>
<section v-if="!fetching" class="juakhbxthdewydyreaphkepoxgxvfogn"> <section v-if="!fetching" class="juakhbxthdewydyreaphkepoxgxvfogn">
<div class="meter"><div :style="meterStyle"></div></div> <div class="meter"><div :style="meterStyle"></div></div>

View File

@ -1,6 +1,6 @@
<template> <template>
<ui-card v-if="enableTwitterIntegration || enableDiscordIntegration || enableGithubIntegration"> <ui-card v-if="enableTwitterIntegration || enableDiscordIntegration || enableGithubIntegration">
<div slot="title"><fa icon="share-alt"/> {{ $t('title') }}</div> <template v-slot:title><fa icon="share-alt"/> {{ $t('title') }}</template>
<section v-if="enableTwitterIntegration"> <section v-if="enableTwitterIntegration">
<header><fa :icon="['fab', 'twitter']"/> Twitter</header> <header><fa :icon="['fab', 'twitter']"/> Twitter</header>

View File

@ -1,6 +1,6 @@
<template> <template>
<ui-card> <ui-card>
<div slot="title"><fa icon="language"/> {{ $t('title') }}</div> <template v-slot:title><fa icon="language"/> {{ $t('title') }}</template>
<section class="fit-top"> <section class="fit-top">
<ui-select v-model="lang" :placeholder="$t('pick-language')"> <ui-select v-model="lang" :placeholder="$t('pick-language')">

View File

@ -1,6 +1,6 @@
<template> <template>
<ui-card> <ui-card>
<div slot="title"><fa icon="ban"/> {{ $t('mute-and-block') }}</div> <template v-slot:title><fa icon="ban"/> {{ $t('mute-and-block') }}</template>
<section> <section>
<header>{{ $t('mute') }}</header> <header>{{ $t('mute') }}</header>
@ -25,7 +25,7 @@
<section> <section>
<header>{{ $t('word-mute') }}</header> <header>{{ $t('word-mute') }}</header>
<ui-textarea v-model="mutedWords"> <ui-textarea v-model="mutedWords">
{{ $t('muted-words') }}<span slot="desc">{{ $t('muted-words-description') }}</span> {{ $t('muted-words') }}<template v-slot:desc>{{ $t('muted-words-description') }}</template>
</ui-textarea> </ui-textarea>
<ui-button @click="save">{{ $t('save') }}</ui-button> <ui-button @click="save">{{ $t('save') }}</ui-button>
</section> </section>

View File

@ -1,9 +1,9 @@
<template> <template>
<ui-card> <ui-card>
<div slot="title"><fa :icon="['far', 'bell']"/> {{ $t('title') }}</div> <template v-slot:title><fa :icon="['far', 'bell']"/> {{ $t('title') }}</template>
<section> <section>
<ui-switch v-model="$store.state.i.settings.autoWatch" @change="onChangeAutoWatch"> <ui-switch v-model="$store.state.i.settings.autoWatch" @change="onChangeAutoWatch">
{{ $t('auto-watch') }}<span slot="desc">{{ $t('auto-watch-desc') }}</span> {{ $t('auto-watch') }}<template v-slot:desc>{{ $t('auto-watch-desc') }}</template>
</ui-switch> </ui-switch>
<section> <section>
<ui-button @click="readAllNotifications">{{ $t('mark-as-read-all-notifications') }}</ui-button> <ui-button @click="readAllNotifications">{{ $t('mark-as-read-all-notifications') }}</ui-button>

View File

@ -1,6 +1,6 @@
<template> <template>
<ui-card> <ui-card>
<div slot="title"><fa icon="user"/> {{ $t('title') }}</div> <template v-slot:title><fa icon="user"/> {{ $t('title') }}</template>
<section class="esokaraujimuwfttfzgocmutcihewscl"> <section class="esokaraujimuwfttfzgocmutcihewscl">
<div class="header" :style="bannerStyle"> <div class="header" :style="bannerStyle">
@ -14,41 +14,41 @@
<ui-input v-model="username" readonly> <ui-input v-model="username" readonly>
<span>{{ $t('account') }}</span> <span>{{ $t('account') }}</span>
<span slot="prefix">@</span> <template v-slot:prefix>@</template>
<span slot="suffix">@{{ host }}</span> <template v-slot:suffix>@{{ host }}</template>
</ui-input> </ui-input>
<ui-input v-model="location"> <ui-input v-model="location">
<span>{{ $t('location') }}</span> <span>{{ $t('location') }}</span>
<span slot="prefix"><fa icon="map-marker-alt"/></span> <template v-slot:prefix><fa icon="map-marker-alt"/></template>
</ui-input> </ui-input>
<ui-input v-model="birthday" type="date"> <ui-input v-model="birthday" type="date">
<span slot="title">{{ $t('birthday') }}</span> <template v-slot:title>{{ $t('birthday') }}</template>
<span slot="prefix"><fa icon="birthday-cake"/></span> <template v-slot:prefix><fa icon="birthday-cake"/></template>
</ui-input> </ui-input>
<ui-textarea v-model="description" :max="500"> <ui-textarea v-model="description" :max="500">
<span>{{ $t('description') }}</span> <span>{{ $t('description') }}</span>
<span slot="desc">{{ $t('you-can-include-hashtags') }}</span> <template v-slot:desc>{{ $t('you-can-include-hashtags') }}</template>
</ui-textarea> </ui-textarea>
<ui-select v-model="lang"> <ui-select v-model="lang">
<span slot="label">{{ $t('language') }}</span> <template v-slot:label>{{ $t('language') }}</template>
<span slot="icon"><fa icon="language"/></span> <template v-slot:icon><fa icon="language"/></template>
<option v-for="lang in unique(Object.values(langmap).map(x => x.nativeName)).map(name => Object.keys(langmap).find(k => langmap[k].nativeName == name))" :value="lang" :key="lang">{{ langmap[lang].nativeName }}</option> <option v-for="lang in unique(Object.values(langmap).map(x => x.nativeName)).map(name => Object.keys(langmap).find(k => langmap[k].nativeName == name))" :value="lang" :key="lang">{{ langmap[lang].nativeName }}</option>
</ui-select> </ui-select>
<ui-input type="file" @change="onAvatarChange"> <ui-input type="file" @change="onAvatarChange">
<span>{{ $t('avatar') }}</span> <span>{{ $t('avatar') }}</span>
<span slot="icon"><fa icon="image"/></span> <template v-slot:icon><fa icon="image"/></template>
<span slot="desc" v-if="avatarUploading">{{ $t('uploading') }}<mk-ellipsis/></span> <template v-slot:desc v-if="avatarUploading">{{ $t('uploading') }}<mk-ellipsis/></template>
</ui-input> </ui-input>
<ui-input type="file" @change="onBannerChange"> <ui-input type="file" @change="onBannerChange">
<span>{{ $t('banner') }}</span> <span>{{ $t('banner') }}</span>
<span slot="icon"><fa icon="image"/></span> <template v-slot:icon><fa icon="image"/></template>
<span slot="desc" v-if="bannerUploading">{{ $t('uploading') }}<mk-ellipsis/></span> <template v-slot:desc v-if="bannerUploading">{{ $t('uploading') }}<mk-ellipsis/></template>
</ui-input> </ui-input>
<ui-button @click="save(true)">{{ $t('save') }}</ui-button> <ui-button @click="save(true)">{{ $t('save') }}</ui-button>

View File

@ -3,16 +3,16 @@
<div class="avatar" :style="{ backgroundImage: user ? `url('${ user.avatarUrl }')` : null }" v-show="withAvatar"></div> <div class="avatar" :style="{ backgroundImage: user ? `url('${ user.avatarUrl }')` : null }" v-show="withAvatar"></div>
<ui-input v-model="username" type="text" pattern="^[a-zA-Z0-9_]+$" spellcheck="false" autofocus required @input="onUsernameChange" styl="fill"> <ui-input v-model="username" type="text" pattern="^[a-zA-Z0-9_]+$" spellcheck="false" autofocus required @input="onUsernameChange" styl="fill">
<span>{{ $t('username') }}</span> <span>{{ $t('username') }}</span>
<span slot="prefix">@</span> <template v-slot:prefix>@</template>
<span slot="suffix">@{{ host }}</span> <template v-slot:suffix>@{{ host }}</template>
</ui-input> </ui-input>
<ui-input v-model="password" type="password" :with-password-toggle="true" required styl="fill"> <ui-input v-model="password" type="password" :with-password-toggle="true" required styl="fill">
<span>{{ $t('password') }}</span> <span>{{ $t('password') }}</span>
<span slot="prefix"><fa icon="lock"/></span> <template v-slot:prefix><fa icon="lock"/></template>
</ui-input> </ui-input>
<ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required styl="fill"> <ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required styl="fill">
<span>{{ $t('@.2fa') }}</span> <span>{{ $t('@.2fa') }}</span>
<span slot="prefix"><fa icon="gavel"/></span> <template v-slot:prefix><fa icon="gavel"/></template>
</ui-input> </ui-input>
<ui-button type="submit" :disabled="signing">{{ signing ? $t('signing-in') : $t('signin') }}</ui-button> <ui-button type="submit" :disabled="signing">{{ signing ? $t('signing-in') : $t('signin') }}</ui-button>
<p v-if="meta && meta.enableTwitterIntegration" style="margin: 8px 0;"><a :href="`${apiUrl}/signin/twitter`">{{ $t('signin-with-twitter') }}</a></p> <p v-if="meta && meta.enableTwitterIntegration" style="margin: 8px 0;"><a :href="`${apiUrl}/signin/twitter`">{{ $t('signin-with-twitter') }}</a></p>

View File

@ -3,37 +3,37 @@
<template v-if="meta"> <template v-if="meta">
<ui-input v-if="meta.disableRegistration" v-model="invitationCode" type="text" :autocomplete="Math.random()" spellcheck="false" required styl="fill"> <ui-input v-if="meta.disableRegistration" v-model="invitationCode" type="text" :autocomplete="Math.random()" spellcheck="false" required styl="fill">
<span>{{ $t('invitation-code') }}</span> <span>{{ $t('invitation-code') }}</span>
<span slot="prefix"><fa icon="id-card-alt"/></span> <template v-slot:prefix><fa icon="id-card-alt"/></template>
<p slot="desc" v-html="this.$t('invitation-info').replace('{}', 'mailto:' + meta.maintainer.email)"></p> <template v-slot:desc v-html="this.$t('invitation-info').replace('{}', 'mailto:' + meta.maintainer.email)"></template>
</ui-input> </ui-input>
<ui-input v-model="username" type="text" pattern="^[a-zA-Z0-9_]{1,20}$" :autocomplete="Math.random()" spellcheck="false" required @input="onChangeUsername" styl="fill"> <ui-input v-model="username" type="text" pattern="^[a-zA-Z0-9_]{1,20}$" :autocomplete="Math.random()" spellcheck="false" required @input="onChangeUsername" styl="fill">
<span>{{ $t('username') }}</span> <span>{{ $t('username') }}</span>
<span slot="prefix">@</span> <template v-slot:prefix>@</template>
<span slot="suffix">@{{ host }}</span> <template v-slot:suffix>@{{ host }}</template>
<p slot="desc" v-if="usernameState == 'wait'" style="color:#999"><fa icon="spinner" pulse fixed-width/> {{ $t('checking') }}</p> <template v-slot:desc v-if="usernameState == 'wait'" style="color:#999"><fa icon="spinner" pulse fixed-width/> {{ $t('checking') }}</template>
<p slot="desc" v-if="usernameState == 'ok'" style="color:#3CB7B5"><fa icon="check" fixed-width/> {{ $t('available') }}</p> <template v-slot:desc v-if="usernameState == 'ok'" style="color:#3CB7B5"><fa icon="check" fixed-width/> {{ $t('available') }}</template>
<p slot="desc" v-if="usernameState == 'unavailable'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('unavailable') }}</p> <template v-slot:desc v-if="usernameState == 'unavailable'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('unavailable') }}</template>
<p slot="desc" v-if="usernameState == 'error'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('error') }}</p> <template v-slot:desc v-if="usernameState == 'error'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('error') }}</template>
<p slot="desc" v-if="usernameState == 'invalid-format'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('invalid-format') }}</p> <template v-slot:desc v-if="usernameState == 'invalid-format'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('invalid-format') }}</template>
<p slot="desc" v-if="usernameState == 'min-range'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('too-short') }}</p> <template v-slot:desc v-if="usernameState == 'min-range'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('too-short') }}</template>
<p slot="desc" v-if="usernameState == 'max-range'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('too-long') }}</p> <template v-slot:desc v-if="usernameState == 'max-range'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('too-long') }}</template>
</ui-input> </ui-input>
<ui-input v-model="password" type="password" :autocomplete="Math.random()" required @input="onChangePassword" :with-password-meter="true" styl="fill"> <ui-input v-model="password" type="password" :autocomplete="Math.random()" required @input="onChangePassword" :with-password-meter="true" styl="fill">
<span>{{ $t('password') }}</span> <span>{{ $t('password') }}</span>
<span slot="prefix"><fa icon="lock"/></span> <template v-slot:prefix><fa icon="lock"/></template>
<div slot="desc"> <template v-slot:desc>
<p v-if="passwordStrength == 'low'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('weak-password') }}</p> <p v-if="passwordStrength == 'low'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('weak-password') }}</p>
<p v-if="passwordStrength == 'medium'" style="color:#3CB7B5"><fa icon="check" fixed-width/> {{ $t('normal-password') }}</p> <p v-if="passwordStrength == 'medium'" style="color:#3CB7B5"><fa icon="check" fixed-width/> {{ $t('normal-password') }}</p>
<p v-if="passwordStrength == 'high'" style="color:#3CB7B5"><fa icon="check" fixed-width/> {{ $t('strong-password') }}</p> <p v-if="passwordStrength == 'high'" style="color:#3CB7B5"><fa icon="check" fixed-width/> {{ $t('strong-password') }}</p>
</div> </template>
</ui-input> </ui-input>
<ui-input v-model="retypedPassword" type="password" :autocomplete="Math.random()" required @input="onChangePasswordRetype" styl="fill"> <ui-input v-model="retypedPassword" type="password" :autocomplete="Math.random()" required @input="onChangePasswordRetype" styl="fill">
<span>{{ $t('password') }} ({{ $t('retype') }})</span> <span>{{ $t('password') }} ({{ $t('retype') }})</span>
<span slot="prefix"><fa icon="lock"/></span> <template v-slot:prefix><fa icon="lock"/></template>
<div slot="desc"> <template v-slot:desc>
<p v-if="passwordRetypeState == 'match'" style="color:#3CB7B5"><fa icon="check" fixed-width/> {{ $t('password-matched') }}</p> <p v-if="passwordRetypeState == 'match'" style="color:#3CB7B5"><fa icon="check" fixed-width/> {{ $t('password-matched') }}</p>
<p v-if="passwordRetypeState == 'not-match'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('password-not-matched') }}</p> <p v-if="passwordRetypeState == 'not-match'" style="color:#FF1161"><fa icon="exclamation-triangle" fixed-width/> {{ $t('password-not-matched') }}</p>
</div> </template>
</ui-input> </ui-input>
<div v-if="meta.enableRecaptcha" class="g-recaptcha" :data-sitekey="meta.recaptchaSiteKey" style="margin: 16px 0;"></div> <div v-if="meta.enableRecaptcha" class="g-recaptcha" :data-sitekey="meta.recaptchaSiteKey" style="margin: 16px 0;"></div>
<ui-button type="submit">{{ $t('create') }}</ui-button> <ui-button type="submit">{{ $t('create') }}</ui-button>

View File

@ -1,10 +1,10 @@
<template> <template>
<ui-card> <ui-card>
<div slot="title"><fa icon="palette"/> {{ $t('theme') }}</div> <template v-slot:title><fa icon="palette"/> {{ $t('theme') }}</template>
<section class="nicnklzforebnpfgasiypmpdaaglujqm fit-top"> <section class="nicnklzforebnpfgasiypmpdaaglujqm fit-top">
<label> <label>
<ui-select v-model="light" :placeholder="$t('light-theme')"> <ui-select v-model="light" :placeholder="$t('light-theme')">
<span slot="label"><fa :icon="faSun"/> {{ $t('light-theme') }}</span> <template v-slot:label><fa :icon="faSun"/> {{ $t('light-theme') }}</template>
<optgroup :label="$t('light-themes')"> <optgroup :label="$t('light-themes')">
<option v-for="x in lightThemes" :value="x.id" :key="x.id">{{ x.name }}</option> <option v-for="x in lightThemes" :value="x.id" :key="x.id">{{ x.name }}</option>
</optgroup> </optgroup>
@ -16,7 +16,7 @@
<label> <label>
<ui-select v-model="dark" :placeholder="$t('dark-theme')"> <ui-select v-model="dark" :placeholder="$t('dark-theme')">
<span slot="label"><fa :icon="faMoon"/> {{ $t('dark-theme') }}</span> <template v-slot:label><fa :icon="faMoon"/> {{ $t('dark-theme') }}</template>
<optgroup :label="$t('dark-themes')"> <optgroup :label="$t('dark-themes')">
<option v-for="x in darkThemes" :value="x.id" :key="x.id">{{ x.name }}</option> <option v-for="x in darkThemes" :value="x.id" :key="x.id">{{ x.name }}</option>
</optgroup> </optgroup>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="cudqjmnl"> <div class="cudqjmnl">
<ui-card> <ui-card>
<div slot="title"><fa :icon="faList"/> {{ list.title }}</div> <template v-slot:title><fa :icon="faList"/> {{ list.title }}</template>
<section> <section>
<ui-button @click="rename"><fa :icon="faICursor"/> {{ $t('rename') }}</ui-button> <ui-button @click="rename"><fa :icon="faICursor"/> {{ $t('rename') }}</ui-button>
@ -10,7 +10,7 @@
</ui-card> </ui-card>
<ui-card> <ui-card>
<div slot="title"><fa :icon="faUsers"/> {{ $t('users') }}</div> <template v-slot:title><fa :icon="faUsers"/> {{ $t('users') }}</template>
<section> <section>
<sequential-entrance animation="entranceFromTop" delay="25"> <sequential-entrance animation="entranceFromTop" delay="25">

View File

@ -1,6 +1,6 @@
<template> <template>
<ui-container :body-togglable="true"> <ui-container :body-togglable="true">
<template slot="header"><slot></slot></template> <template v-slot:header><slot></slot></template>
<mk-error v-if="!fetching && !inited" @retry="init()"/> <mk-error v-if="!fetching && !inited" @retry="init()"/>

View File

@ -8,7 +8,7 @@
</mk-user-list> </mk-user-list>
<ui-container :body-togglable="true"> <ui-container :body-togglable="true">
<template slot="header"><fa :icon="faHashtag" fixed-width/>{{ $t('popular-tags') }}</template> <template v-slot:header><fa :icon="faHashtag" fixed-width/>{{ $t('popular-tags') }}</template>
<div class="vxjfqztj"> <div class="vxjfqztj">
<router-link v-for="tag in tags" :to="`/explore/tags/${tag.tag}`" :key="tag.tag">{{ tag.tag }}</router-link> <router-link v-for="tag in tags" :to="`/explore/tags/${tag.tag}`" :key="tag.tag">{{ tag.tag }}</router-link>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="mkw-hashtags"> <div class="mkw-hashtags">
<ui-container :show-header="!props.compact"> <ui-container :show-header="!props.compact">
<template slot="header"><fa icon="hashtag"/>{{ $t('title') }}</template> <template v-slot:header><fa icon="hashtag"/>{{ $t('title') }}</template>
<div class="mkw-hashtags--body" :data-mobile="platform == 'mobile'"> <div class="mkw-hashtags--body" :data-mobile="platform == 'mobile'">
<mk-trends/> <mk-trends/>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="mkw-memo"> <div class="mkw-memo">
<ui-container :show-header="!props.compact"> <ui-container :show-header="!props.compact">
<template slot="header"><fa :icon="['far', 'sticky-note']"/>{{ $t('title') }}</template> <template v-slot:header><fa :icon="['far', 'sticky-note']"/>{{ $t('title') }}</template>
<div class="mkw-memo--body"> <div class="mkw-memo--body">
<textarea v-model="text" :placeholder="$t('placeholder')" @input="onChange"></textarea> <textarea v-model="text" :placeholder="$t('placeholder')" @input="onChange"></textarea>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="mkw-photo-stream" :class="$style.root" :data-melt="props.design == 2"> <div class="mkw-photo-stream" :class="$style.root" :data-melt="props.design == 2">
<ui-container :show-header="props.design == 0" :naked="props.design == 2"> <ui-container :show-header="props.design == 0" :naked="props.design == 2">
<template slot="header"><fa icon="camera"/>{{ $t('title') }}</template> <template v-slot:header><fa icon="camera"/>{{ $t('title') }}</template>
<p :class="$style.fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p> <p :class="$style.fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p>
<div :class="$style.stream" v-if="!fetching && images.length > 0"> <div :class="$style.stream" v-if="!fetching && images.length > 0">

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="mkw-posts-monitor"> <div class="mkw-posts-monitor">
<ui-container :show-header="props.design == 0" :naked="props.design == 2"> <ui-container :show-header="props.design == 0" :naked="props.design == 2">
<template slot="header"><fa icon="chart-line"/>{{ $t('title') }}</template> <template v-slot:header><fa icon="chart-line"/>{{ $t('title') }}</template>
<button slot="func" @click="toggle" :title="$t('toggle')"><fa icon="sort"/></button> <template v-slot:func><button @click="toggle" :title="$t('toggle')"><fa icon="sort"/></button></template>
<div class="qpdmibaztplkylerhdbllwcokyrfxeyj" :class="{ dual: props.view == 0 }"> <div class="qpdmibaztplkylerhdbllwcokyrfxeyj" :class="{ dual: props.view == 0 }">
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" v-show="props.view != 2"> <svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" v-show="props.view != 2">

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="mkw-rss"> <div class="mkw-rss">
<ui-container :show-header="!props.compact"> <ui-container :show-header="!props.compact">
<template slot="header"><fa icon="rss-square"/>RSS</template> <template v-slot:header><fa icon="rss-square"/>RSS</template>
<button slot="func" title="設定" @click="setting"><fa icon="cog"/></button> <template v-slot:func><button title="設定" @click="setting"><fa icon="cog"/></button></template>
<div class="mkw-rss--body" :data-mobile="platform == 'mobile'"> <div class="mkw-rss--body" :data-mobile="platform == 'mobile'">
<p class="fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p> <p class="fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p>

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="mkw-server"> <div class="mkw-server">
<ui-container :show-header="props.design == 0" :naked="props.design == 2"> <ui-container :show-header="props.design == 0" :naked="props.design == 2">
<template slot="header"><fa icon="server"/>{{ $t('title') }}</template> <template v-slot:header><fa icon="server"/>{{ $t('title') }}</template>
<button slot="func" @click="toggle" :title="$t('toggle')"><fa icon="sort"/></button> <template v-slot:func><button @click="toggle" :title="$t('toggle')"><fa icon="sort"/></button></template>
<p :class="$style.fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p> <p :class="$style.fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p>
<template v-if="!fetching"> <template v-if="!fetching">

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="mk-activity"> <div class="mk-activity">
<ui-container :show-header="design == 0" :naked="design == 2"> <ui-container :show-header="design == 0" :naked="design == 2">
<template slot="header"><fa icon="chart-bar"/>{{ $t('title') }}</template> <template v-slot:header><fa icon="chart-bar"/>{{ $t('title') }}</template>
<button slot="func" :title="$t('toggle')" @click="toggle"><fa icon="sort"/></button> <template v-slot:func><button :title="$t('toggle')" @click="toggle"><fa icon="sort"/></button></template>
<p :class="$style.fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p> <p :class="$style.fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p>
<template v-else> <template v-else>

View File

@ -1,9 +1,11 @@
<template> <template>
<mk-window ref="window" is-modal width="800px" height="500px" @closed="destroyDom"> <mk-window ref="window" is-modal width="800px" height="500px" @closed="destroyDom">
<span slot="header" class="jqiaciqv"> <template v-slot:header>
<span class="title">{{ $t('choose-prompt') }}</span> <span class="jqiaciqv">
<span class="count" v-if="multiple && files.length > 0">({{ $t('chosen-files', { count: files.length }) }})</span> <span class="title">{{ $t('choose-prompt') }}</span>
</span> <span class="count" v-if="multiple && files.length > 0">({{ $t('chosen-files', { count: files.length }) }})</span>
</span>
</template>
<div class="rqsvbumu"> <div class="rqsvbumu">
<x-drive <x-drive

View File

@ -1,8 +1,8 @@
<template> <template>
<mk-window ref="window" is-modal width="800px" height="500px" @closed="destroyDom"> <mk-window ref="window" is-modal width="800px" height="500px" @closed="destroyDom">
<span slot="header"> <template v-slot:header>
<span>{{ $t('choose-prompt') }}</span> <span>{{ $t('choose-prompt') }}</span>
</span> </template>
<div class="hllkpxxu"> <div class="hllkpxxu">
<x-drive <x-drive

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-window ref="window" is-modal width="800px" :can-close="false"> <mk-window ref="window" is-modal width="800px" :can-close="false">
<span slot="header"><fa icon="crop"/>{{ title }}</span> <template v-slot:header><fa icon="crop"/>{{ title }}</template>
<div class="body"> <div class="body">
<vue-cropper ref="cropper" <vue-cropper ref="cropper"
:src="image.url" :src="image.url"

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-window ref="window" @closed="destroyDom" width="800px" height="500px" :popout-url="popout"> <mk-window ref="window" @closed="destroyDom" width="800px" height="500px" :popout-url="popout">
<template slot="header"> <template v-slot:header>
<p v-if="usage" :class="$style.info"><b>{{ usage.toFixed(1) }}%</b> {{ $t('used') }}</p> <p v-if="usage" :class="$style.info"><b>{{ usage.toFixed(1) }}%</b> {{ $t('used') }}</p>
<span :class="$style.title"><fa icon="cloud"/>{{ $t('@.drive') }}</span> <span :class="$style.title"><fa icon="cloud"/>{{ $t('@.drive') }}</span>
</template> </template>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-window ref="window" width="500px" height="560px" :popout-url="popout" @closed="destroyDom"> <mk-window ref="window" width="500px" height="560px" :popout-url="popout" @closed="destroyDom">
<span slot="header" :class="$style.header"><fa icon="gamepad"/>{{ $t('game') }}</span> <template v-slot:header><fa icon="gamepad"/> {{ $t('game') }}</template>
<x-reversi :class="$style.content" @gamed="g => game = g"/> <x-reversi :class="$style.content" @gamed="g => game = g"/>
</mk-window> </mk-window>
</template> </template>
@ -31,10 +31,6 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" module> <style lang="stylus" module>
.header
> [data-icon]
margin-right 4px
.content .content
height 100% height 100%
overflow auto overflow auto

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-window ref="window" width="500px" height="560px" :popout-url="popout" @closed="destroyDom"> <mk-window ref="window" width="500px" height="560px" :popout-url="popout" @closed="destroyDom">
<span slot="header" :class="$style.header"><fa icon="comments"/>{{ $t('title') }} <mk-user-name :user="user"/></span> <template v-slot:header><fa icon="comments"/> {{ $t('title') }} <mk-user-name :user="user"/></template>
<x-messaging-room :user="user" :class="$style.content"/> <x-messaging-room :user="user" :class="$style.content"/>
</mk-window> </mk-window>
</template> </template>
@ -26,10 +26,6 @@ export default Vue.extend({
</script> </script>
<style lang="stylus" module> <style lang="stylus" module>
.header
> [data-icon]
margin-right 4px
.content .content
height 100% height 100%
overflow auto overflow auto

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-window ref="window" width="500px" height="560px" @closed="destroyDom"> <mk-window ref="window" width="500px" height="560px" @closed="destroyDom">
<span slot="header" :class="$style.header"><fa icon="comments"/>{{ $t('title') }}</span> <template v-slot:header :class="$style.header"><fa icon="comments"/>{{ $t('title') }}</template>
<x-messaging :class="$style.content" @navigate="navigate"/> <x-messaging :class="$style.content" @navigate="navigate"/>
</mk-window> </mk-window>
</template> </template>

View File

@ -1,12 +1,14 @@
<template> <template>
<mk-window class="mk-post-form-window" ref="window" is-modal @closed="onWindowClosed" :animation="animation"> <mk-window class="mk-post-form-window" ref="window" is-modal @closed="onWindowClosed" :animation="animation">
<span slot="header" class="mk-post-form-window--header"> <template v-slot:header>
<span class="icon" v-if="geo"><fa icon="map-marker-alt"/></span> <span class="mk-post-form-window--header">
<span v-if="!reply">{{ $t('note') }}</span> <span class="icon" v-if="geo"><fa icon="map-marker-alt"/></span>
<span v-if="reply">{{ $t('reply') }}</span> <span v-if="!reply">{{ $t('note') }}</span>
<span class="count" v-if="files.length != 0">{{ this.$t('attaches').replace('{}', files.length) }}</span> <span v-if="reply">{{ $t('reply') }}</span>
<span class="count" v-if="uploadings.length != 0">{{ this.$t('uploading-media').replace('{}', uploadings.length) }}<mk-ellipsis/></span> <span class="count" v-if="files.length != 0">{{ this.$t('attaches').replace('{}', files.length) }}</span>
</span> <span class="count" v-if="uploadings.length != 0">{{ this.$t('uploading-media').replace('{}', uploadings.length) }}<mk-ellipsis/></span>
</span>
</template>
<div class="mk-post-form-window--body"> <div class="mk-post-form-window--body">
<mk-note-preview v-if="reply" class="notePreview" :note="reply"/> <mk-note-preview v-if="reply" class="notePreview" :note="reply"/>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-window ref="window" :is-modal="false" :can-close="false" width="500px" @closed="destroyDom"> <mk-window ref="window" :is-modal="false" :can-close="false" width="500px" @closed="destroyDom">
<span slot="header">{{ title }}<mk-ellipsis/></span> <template v-slot:header>{{ title }}<mk-ellipsis/></template>
<div :class="$style.body"> <div :class="$style.body">
<p :class="$style.init" v-if="isNaN(value)">{{ $t('waiting') }}<mk-ellipsis/></p> <p :class="$style.init" v-if="isNaN(value)">{{ $t('waiting') }}<mk-ellipsis/></p>
<p :class="$style.percentage" v-if="!isNaN(value)">{{ Math.floor((value / max) * 100) }}</p> <p :class="$style.percentage" v-if="!isNaN(value)">{{ Math.floor((value / max) * 100) }}</p>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-window ref="window" is-modal width="450px" height="500px" @closed="destroyDom"> <mk-window ref="window" is-modal width="450px" height="500px" @closed="destroyDom">
<span slot="header"><fa :icon="['far', 'envelope']"/> {{ $t('title') }}</span> <template v-slot:header><fa :icon="['far', 'envelope']"/> {{ $t('title') }}</template>
<div class="slpqaxdoxhvglersgjukmvizkqbmbokc"> <div class="slpqaxdoxhvglersgjukmvizkqbmbokc">
<div v-for="req in requests"> <div v-for="req in requests">

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-window ref="window" is-modal @closed="onWindowClosed" :animation="animation"> <mk-window ref="window" is-modal @closed="onWindowClosed" :animation="animation">
<span slot="header" :class="$style.header"><fa icon="retweet"/>{{ $t('title') }}</span> <template v-slot:header :class="$style.header"><fa icon="retweet"/>{{ $t('title') }}</template>
<mk-renote-form ref="form" :note="note" @posted="onPosted" @canceled="onCanceled" v-hotkey.global="keymap"/> <mk-renote-form ref="form" :note="note" @posted="onPosted" @canceled="onCanceled" v-hotkey.global="keymap"/>
</mk-window> </mk-window>
</template> </template>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-window ref="window" is-modal width="700px" height="550px" @closed="destroyDom"> <mk-window ref="window" is-modal width="700px" height="550px" @closed="destroyDom">
<span slot="header" :class="$style.header"><fa icon="cog"/>{{ $t('settings') }}</span> <template v-slot:header :class="$style.header"><fa icon="cog"/>{{ $t('settings') }}</template>
<x-settings :initial-page="initialPage" @done="close"/> <x-settings :initial-page="initialPage" @done="close"/>
</mk-window> </mk-window>
</template> </template>

View File

@ -22,17 +22,17 @@
<x-theme class="theme" v-show="page == 'theme'"/> <x-theme class="theme" v-show="page == 'theme'"/>
<ui-card class="web" v-show="page == 'web'"> <ui-card class="web" v-show="page == 'web'">
<div slot="title"><fa icon="sliders-h"/> {{ $t('behaviour') }}</div> <template v-slot:title><fa icon="sliders-h"/> {{ $t('behaviour') }}</template>
<section> <section>
<ui-switch v-model="fetchOnScroll">{{ $t('fetch-on-scroll') }} <ui-switch v-model="fetchOnScroll">{{ $t('fetch-on-scroll') }}
<span slot="desc">{{ $t('fetch-on-scroll-desc') }}</span> <template v-slot:desc>{{ $t('fetch-on-scroll-desc') }}</template>
</ui-switch> </ui-switch>
<ui-switch v-model="autoPopout">{{ $t('auto-popout') }} <ui-switch v-model="autoPopout">{{ $t('auto-popout') }}
<span slot="desc">{{ $t('auto-popout-desc') }}</span> <template v-slot:desc>{{ $t('auto-popout-desc') }}</template>
</ui-switch> </ui-switch>
<ui-switch v-model="keepCw">{{ $t('keep-cw') }} <ui-switch v-model="keepCw">{{ $t('keep-cw') }}
<span slot="desc">{{ $t('keep-cw-desc') }}</span> <template v-slot:desc>{{ $t('keep-cw-desc') }}</template>
</ui-switch> </ui-switch>
</section> </section>
@ -62,12 +62,12 @@
<section> <section>
<header>{{ $t('web-search-engine') }}</header> <header>{{ $t('web-search-engine') }}</header>
<ui-input v-model="webSearchEngine">{{ $t('web-search-engine') }}<span slot="desc">{{ $t('web-search-engine-desc') }}</span></ui-input> <ui-input v-model="webSearchEngine">{{ $t('web-search-engine') }}<template v-slot:desc>{{ $t('web-search-engine-desc') }}</template></ui-input>
</section> </section>
</ui-card> </ui-card>
<ui-card class="web" v-show="page == 'web'"> <ui-card class="web" v-show="page == 'web'">
<div slot="title"><fa icon="desktop"/> {{ $t('display') }}</div> <template v-slot:title><fa icon="desktop"/> {{ $t('display') }}</template>
<section> <section>
<ui-switch v-model="showPostFormOnTopOfTl">{{ $t('post-form-on-timeline') }}</ui-switch> <ui-switch v-model="showPostFormOnTopOfTl">{{ $t('post-form-on-timeline') }}</ui-switch>
@ -135,11 +135,11 @@
</ui-card> </ui-card>
<ui-card class="web" v-show="page == 'web'"> <ui-card class="web" v-show="page == 'web'">
<div slot="title"><fa icon="volume-up"/> {{ $t('sound') }}</div> <template v-slot:title><fa icon="volume-up"/> {{ $t('sound') }}</template>
<section> <section>
<ui-switch v-model="enableSounds">{{ $t('enable-sounds') }} <ui-switch v-model="enableSounds">{{ $t('enable-sounds') }}
<span slot="desc">{{ $t('enable-sounds-desc') }}</span> <template v-slot:desc>{{ $t('enable-sounds-desc') }}</template>
</ui-switch> </ui-switch>
<label>{{ $t('volume') }}</label> <label>{{ $t('volume') }}</label>
<input type="range" <input type="range"
@ -155,7 +155,7 @@
<x-language-settings v-show="page == 'web'"/> <x-language-settings v-show="page == 'web'"/>
<ui-card class="web" v-show="page == 'web'"> <ui-card class="web" v-show="page == 'web'">
<div slot="title"><fa :icon="['far', 'trash-alt']"/> {{ $t('cache') }}</div> <template v-slot:title><fa :icon="['far', 'trash-alt']"/> {{ $t('cache') }}</template>
<section> <section>
<ui-button @click="clean">{{ $t('clean-cache') }}</ui-button> <ui-button @click="clean">{{ $t('clean-cache') }}</ui-button>
<div class="none ui info warn"> <div class="none ui info warn">
@ -171,7 +171,7 @@
</div> </div>
<ui-card class="hashtags" v-show="page == 'hashtags'"> <ui-card class="hashtags" v-show="page == 'hashtags'">
<div slot="title"><fa icon="hashtag"/> {{ $t('tags') }}</div> <template v-slot:title><fa icon="hashtag"/> {{ $t('tags') }}</template>
<section> <section>
<x-tags/> <x-tags/>
</section> </section>
@ -182,28 +182,28 @@
</div> </div>
<ui-card class="apps" v-show="page == 'apps'"> <ui-card class="apps" v-show="page == 'apps'">
<div slot="title"><fa icon="puzzle-piece"/> {{ $t('apps') }}</div> <template v-slot:title><fa icon="puzzle-piece"/> {{ $t('apps') }}</template>
<section> <section>
<x-apps/> <x-apps/>
</section> </section>
</ui-card> </ui-card>
<ui-card class="password" v-show="page == 'security'"> <ui-card class="password" v-show="page == 'security'">
<div slot="title"><fa icon="unlock-alt"/> {{ $t('password') }}</div> <template v-slot:title><fa icon="unlock-alt"/> {{ $t('password') }}</template>
<section> <section>
<x-password-settings/> <x-password-settings/>
</section> </section>
</ui-card> </ui-card>
<ui-card class="2fa" v-show="page == 'security'"> <ui-card class="2fa" v-show="page == 'security'">
<div slot="title"><fa icon="mobile-alt"/> {{ $t('@.2fa') }}</div> <template v-slot:title><fa icon="mobile-alt"/> {{ $t('@.2fa') }}</template>
<section> <section>
<x-2fa/> <x-2fa/>
</section> </section>
</ui-card> </ui-card>
<ui-card class="signin" v-show="page == 'security'"> <ui-card class="signin" v-show="page == 'security'">
<div slot="title"><fa icon="sign-in-alt"/> {{ $t('signin') }}</div> <template v-slot:title><fa icon="sign-in-alt"/> {{ $t('signin') }}</template>
<section> <section>
<x-signins/> <x-signins/>
</section> </section>
@ -214,14 +214,14 @@
</div> </div>
<ui-card class="other" v-show="page == 'other'"> <ui-card class="other" v-show="page == 'other'">
<div slot="title"><fa icon="info-circle"/> {{ $t('about') }}</div> <template v-slot:title><fa icon="info-circle"/> {{ $t('about') }}</template>
<section> <section>
<p v-if="meta">{{ $t('operator') }}: <i><a :href="'mailto:' + meta.maintainer.email" target="_blank">{{ meta.maintainer.name }}</a></i></p> <p v-if="meta">{{ $t('operator') }}: <i><a :href="'mailto:' + meta.maintainer.email" target="_blank">{{ meta.maintainer.name }}</a></i></p>
</section> </section>
</ui-card> </ui-card>
<ui-card class="other" v-show="page == 'other'"> <ui-card class="other" v-show="page == 'other'">
<div slot="title"><fa icon="sync-alt"/> {{ $t('update') }}</div> <template v-slot:title><fa icon="sync-alt"/> {{ $t('update') }}</template>
<section> <section>
<p> <p>
<span>{{ $t('version') }} <i>{{ version }}</i></span> <span>{{ $t('version') }} <i>{{ version }}</i></span>
@ -237,20 +237,20 @@
<details> <details>
<summary>{{ $t('update-settings') }}</summary> <summary>{{ $t('update-settings') }}</summary>
<ui-switch v-model="preventUpdate"> <ui-switch v-model="preventUpdate">
{{ $t('prevent-update') }}<span slot="desc">{{ $t('prevent-update-desc') }}</span> {{ $t('prevent-update') }}<template v-slot:desc>{{ $t('prevent-update-desc') }}</template>
</ui-switch> </ui-switch>
</details> </details>
</section> </section>
</ui-card> </ui-card>
<ui-card class="other" v-show="page == 'other'"> <ui-card class="other" v-show="page == 'other'">
<div slot="title"><fa icon="cogs"/> {{ $t('advanced-settings') }}</div> <template v-slot:title><fa icon="cogs"/> {{ $t('advanced-settings') }}</template>
<section> <section>
<ui-switch v-model="debug"> <ui-switch v-model="debug">
{{ $t('debug-mode') }}<span slot="desc">{{ $t('debug-mode-desc') }}</span> {{ $t('debug-mode') }}<template v-slot:desc>{{ $t('debug-mode-desc') }}</template>
</ui-switch> </ui-switch>
<ui-switch v-model="enableExperimentalFeatures"> <ui-switch v-model="enableExperimentalFeatures">
{{ $t('experimental') }}<span slot="desc">{{ $t('experimental-desc') }}</span> {{ $t('experimental') }}<template v-slot:desc>{{ $t('experimental-desc') }}</template>
</ui-switch> </ui-switch>
</section> </section>
</ui-card> </ui-card>

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<mk-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"> <mk-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')">
<template slot="header"> <template v-slot:header>
<slot></slot> <slot></slot>
</template> </template>
</mk-notes> </mk-notes>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-window ref="window" width="450px" height="500px" @closed="destroyDom"> <mk-window ref="window" width="450px" height="500px" @closed="destroyDom">
<span slot="header"><fa icon="list"/> {{ list.title }}</span> <template v-slot:header><fa icon="list"/> {{ list.title }}</template>
<x-editor :list="list"/> <x-editor :list="list"/>
</mk-window> </mk-window>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-window ref="window" width="450px" height="500px" @closed="destroyDom"> <mk-window ref="window" width="450px" height="500px" @closed="destroyDom">
<span slot="header"><fa icon="list"/> {{ $t('title') }}</span> <template v-slot:header><fa icon="list"/> {{ $t('title') }}</template>
<div class="xkxvokkjlptzyewouewmceqcxhpgzprp"> <div class="xkxvokkjlptzyewouewmceqcxhpgzprp">
<button class="ui" @click="add">{{ $t('create-list') }}</button> <button class="ui" @click="add">{{ $t('create-list') }}</button>

View File

@ -14,7 +14,7 @@
<template v-if="active"><fa icon="angle-up"/></template> <template v-if="active"><fa icon="angle-up"/></template>
<template v-else><fa icon="angle-down"/></template> <template v-else><fa icon="angle-down"/></template>
</button> </button>
<slot name="header"></slot> <span><slot name="header"></slot></span>
<span class="count" v-if="count > 0">({{ count }})</span> <span class="count" v-if="count > 0">({{ count }})</span>
<button v-if="!isTemporaryColumn" class="menu" ref="menu" @click.stop="showMenu"><fa icon="caret-down"/></button> <button v-if="!isTemporaryColumn" class="menu" ref="menu" @click.stop="showMenu"><fa icon="caret-down"/></button>
<button v-else class="close" @click.stop="close"><fa icon="times"/></button> <button v-else class="close" @click.stop="close"><fa icon="times"/></button>

View File

@ -1,6 +1,6 @@
<template> <template>
<x-column :name="name" :column="column" :is-stacked="isStacked"> <x-column :name="name" :column="column" :is-stacked="isStacked">
<span slot="header"><fa :icon="['far', 'envelope']"/>{{ name }}</span> <template v-slot:header><fa :icon="['far', 'envelope']"/>{{ name }}</template>
<x-direct/> <x-direct/>
</x-column> </x-column>

View File

@ -1,8 +1,8 @@
<template> <template>
<x-column> <x-column>
<span slot="header"> <template v-slot:header>
<fa :icon="faHashtag"/>{{ $t('@.explore') }} <fa :icon="faHashtag"/>{{ $t('@.explore') }}
</span> </template>
<div> <div>
<x-explore v-bind="$attrs"/> <x-explore v-bind="$attrs"/>

View File

@ -1,8 +1,8 @@
<template> <template>
<x-column> <x-column>
<span slot="header"> <template v-slot:header>
<fa :icon="['fa', 'star']"/>{{ $t('favorites') }} <fa :icon="['fa', 'star']"/>{{ $t('favorites') }}
</span> </template>
<div> <div>
<x-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"/> <x-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"/>

View File

@ -1,8 +1,8 @@
<template> <template>
<x-column> <x-column>
<span slot="header"> <template v-slot:header>
<fa :icon="faNewspaper"/>{{ $t('@.featured-notes') }} <fa :icon="faNewspaper"/>{{ $t('@.featured-notes') }}
</span> </template>
<div> <div>
<x-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"/> <x-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"/>

View File

@ -1,8 +1,8 @@
<template> <template>
<x-column> <x-column>
<span slot="header"> <template v-slot:header>
<fa icon="hashtag"/><span>{{ tag }}</span> <fa icon="hashtag"/><span>{{ tag }}</span>
</span> </template>
<div class="xroyrflcmhhtmlwmyiwpfqiirqokfueb"> <div class="xroyrflcmhhtmlwmyiwpfqiirqokfueb">
<div ref="chart" class="chart"></div> <div ref="chart" class="chart"></div>

View File

@ -1,6 +1,6 @@
<template> <template>
<x-column :name="name" :column="column" :is-stacked="isStacked"> <x-column :name="name" :column="column" :is-stacked="isStacked">
<span slot="header"><fa icon="at"/>{{ name }}</span> <template v-slot:header><fa icon="at"/>{{ name }}</template>
<x-mentions ref="tl"/> <x-mentions ref="tl"/>
</x-column> </x-column>

View File

@ -1,8 +1,8 @@
<template> <template>
<x-column> <x-column>
<span slot="header"> <template v-slot:header>
<fa :icon="['far', 'comment-alt']"/><mk-user-name :user="note.user" v-if="note"/> <fa :icon="['far', 'comment-alt']"/><mk-user-name :user="note.user" v-if="note"/>
</span> </template>
<div class="rvtscbadixhhbsczoorqoaygovdeecsx" v-if="note"> <div class="rvtscbadixhhbsczoorqoaygovdeecsx" v-if="note">
<div class="is-remote" v-if="note.user.host != null"> <div class="is-remote" v-if="note.user.host != null">

View File

@ -1,6 +1,6 @@
<template> <template>
<x-column :name="name" :column="column" :is-stacked="isStacked"> <x-column :name="name" :column="column" :is-stacked="isStacked">
<span slot="header"><fa :icon="['far', 'bell']"/>{{ name }}</span> <template v-slot:header><fa :icon="['far', 'bell']"/>{{ name }}</template>
<x-notifications/> <x-notifications/>
</x-column> </x-column>

View File

@ -1,8 +1,8 @@
<template> <template>
<x-column> <x-column>
<span slot="header"> <template v-slot:header>
<fa icon="search"/><span>{{ q }}</span> <fa icon="search"/><span>{{ q }}</span>
</span> </template>
<div> <div>
<x-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"/> <x-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"/>

View File

@ -1,6 +1,6 @@
<template> <template>
<x-column :menu="menu" :name="name" :column="column" :is-stacked="isStacked"> <x-column :menu="menu" :name="name" :column="column" :is-stacked="isStacked">
<span slot="header"> <template v-slot:header>
<fa v-if="column.type == 'home'" icon="home"/> <fa v-if="column.type == 'home'" icon="home"/>
<fa v-if="column.type == 'local'" :icon="['far', 'comments']"/> <fa v-if="column.type == 'local'" :icon="['far', 'comments']"/>
<fa v-if="column.type == 'hybrid'" icon="share-alt"/> <fa v-if="column.type == 'hybrid'" icon="share-alt"/>
@ -8,7 +8,7 @@
<fa v-if="column.type == 'list'" icon="list"/> <fa v-if="column.type == 'list'" icon="list"/>
<fa v-if="column.type == 'hashtag'" icon="hashtag"/> <fa v-if="column.type == 'hashtag'" icon="hashtag"/>
<span>{{ name }}</span> <span>{{ name }}</span>
</span> </template>
<div class="editor" style="padding:12px" v-if="edit"> <div class="editor" style="padding:12px" v-if="edit">
<ui-switch v-model="column.isMediaOnly" @change="onChangeSettings">{{ $t('is-media-only') }}</ui-switch> <ui-switch v-model="column.isMediaOnly" @change="onChangeSettings">{{ $t('is-media-only') }}</ui-switch>

View File

@ -1,13 +1,13 @@
<template> <template>
<div> <div>
<ui-container v-if="user.pinnedNotes && user.pinnedNotes.length > 0" :body-togglable="true"> <ui-container v-if="user.pinnedNotes && user.pinnedNotes.length > 0" :body-togglable="true">
<span slot="header"><fa icon="thumbtack"/> {{ $t('pinned-notes') }}</span> <template v-slot:header><fa icon="thumbtack"/> {{ $t('pinned-notes') }}</template>
<div> <div>
<x-note v-for="n in user.pinnedNotes" :key="n.id" :note="n" :mini="true"/> <x-note v-for="n in user.pinnedNotes" :key="n.id" :note="n" :mini="true"/>
</div> </div>
</ui-container> </ui-container>
<ui-container v-if="images.length > 0" :body-togglable="true"> <ui-container v-if="images.length > 0" :body-togglable="true">
<span slot="header"><fa :icon="['far', 'images']"/> {{ $t('images') }}</span> <template v-slot:header><fa :icon="['far', 'images']"/> {{ $t('images') }}</template>
<div class="sainvnaq"> <div class="sainvnaq">
<router-link v-for="image in images" <router-link v-for="image in images"
:style="`background-image: url(${image.thumbnailUrl})`" :style="`background-image: url(${image.thumbnailUrl})`"
@ -18,13 +18,13 @@
</div> </div>
</ui-container> </ui-container>
<ui-container :body-togglable="true"> <ui-container :body-togglable="true">
<span slot="header"><fa :icon="['far', 'chart-bar']"/> {{ $t('activity') }}</span> <template v-slot:header><fa :icon="['far', 'chart-bar']"/> {{ $t('activity') }}</template>
<div> <div>
<div ref="chart"></div> <div ref="chart"></div>
</div> </div>
</ui-container> </ui-container>
<ui-container> <ui-container>
<span slot="header"><fa :icon="['far', 'comment-alt']"/> {{ $t('timeline') }}</span> <template v-slot:header><fa :icon="['far', 'comment-alt']"/> {{ $t('timeline') }}</template>
<div> <div>
<x-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"/> <x-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"/>
</div> </div>

View File

@ -1,8 +1,8 @@
<template> <template>
<x-column> <x-column>
<span slot="header"> <template v-slot:header>
<fa icon="user"/><mk-user-name :user="user" v-if="user"/> <fa icon="user"/><mk-user-name :user="user" v-if="user"/>
</span> </template>
<div class="zubukjlciycdsyynicqrnlsmdwmymzqu" v-if="user"> <div class="zubukjlciycdsyynicqrnlsmdwmymzqu" v-if="user">
<div class="is-remote" v-if="user.host != null"> <div class="is-remote" v-if="user.host != null">

View File

@ -1,6 +1,6 @@
<template> <template>
<x-column :menu="menu" :naked="true" :narrow="true" :name="name" :column="column" :is-stacked="isStacked" class="wtdtxvecapixsepjtcupubtsmometobz"> <x-column :menu="menu" :naked="true" :narrow="true" :name="name" :column="column" :is-stacked="isStacked" class="wtdtxvecapixsepjtcupubtsmometobz">
<span slot="header"><fa icon="calculator"/>{{ name }}</span> <template v-slot:header><fa icon="calculator"/>{{ name }}</template>
<div class="gqpwvtwtprsbmnssnbicggtwqhmylhnq"> <div class="gqpwvtwtprsbmnssnbicggtwqhmylhnq">
<template v-if="edit"> <template v-if="edit">

View File

@ -1,9 +1,11 @@
<template> <template>
<div> <div>
<mk-notes ref="timeline" :make-promise="makePromise" @inited="inited"> <mk-notes ref="timeline" :make-promise="makePromise" @inited="inited">
<header slot="header" class="oxgbmvii"> <template v-slot:header>
<span><fa icon="search"/> {{ q }}</span> <header class="oxgbmvii">
</header> <span><fa icon="search"/> {{ q }}</span>
</header>
</template>
</mk-notes> </mk-notes>
</div> </div>
</template> </template>

View File

@ -1,9 +1,11 @@
<template> <template>
<div> <div>
<mk-notes ref="timeline" :make-promise="makePromise" @inited="inited"> <mk-notes ref="timeline" :make-promise="makePromise" @inited="inited">
<header class="wqraeznr" slot="header"> <template v-slot:header>
<span><fa icon="hashtag"/> {{ $route.params.tag }}</span> <header class="wqraeznr">
</header> <span><fa icon="hashtag"/> {{ $route.params.tag }}</span>
</header>
</template>
</mk-notes> </mk-notes>
</div> </div>
</template> </template>

View File

@ -6,12 +6,12 @@
</div> </div>
<mk-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"> <mk-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')">
<template slot="header"> <template v-slot:header>
<slot></slot> <slot></slot>
</template> </template>
<p slot="empty"> <template v-slot:empty>
<fa :icon="['far', 'comments']"/>{{ $t('empty') }} <fa :icon="['far', 'comments']"/>{{ $t('empty') }}
</p> </template>
</mk-notes> </mk-notes>
</div> </div>
</template> </template>

View File

@ -5,7 +5,7 @@
<!--<mk-calendar @chosen="warp" :start="new Date(user.createdAt)"/>--> <!--<mk-calendar @chosen="warp" :start="new Date(user.createdAt)"/>-->
<div class="activity"> <div class="activity">
<ui-container :body-togglable="true"> <ui-container :body-togglable="true">
<template slot="header"><fa icon="chart-bar"/>{{ $t('activity') }}</template> <template v-slot:header><fa icon="chart-bar"/>{{ $t('activity') }}</template>
<x-activity :user="user" :limit="35" style="padding: 16px;"/> <x-activity :user="user" :limit="35" style="padding: 16px;"/>
</ui-container> </ui-container>
</div> </div>

View File

@ -1,6 +1,6 @@
<template> <template>
<ui-container :body-togglable="true"> <ui-container :body-togglable="true">
<span slot="header"><fa icon="camera"/> {{ $t('title') }}</span> <template v-slot:header><fa icon="camera"/> {{ $t('title') }}</template>
<div class="dzsuvbsrrrwobdxifudxuefculdfiaxd"> <div class="dzsuvbsrrrwobdxifudxuefculdfiaxd">
<p class="initializing" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('loading') }}<mk-ellipsis/></p> <p class="initializing" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('loading') }}<mk-ellipsis/></p>

View File

@ -1,13 +1,15 @@
<template> <template>
<div> <div>
<mk-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"> <mk-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')">
<header slot="header" class="oh5y2r7l5lx8j6jj791ykeiwgihheguk"> <template v-slot:header>
<span :data-active="mode == 'default'" @click="mode = 'default'"><fa :icon="['far', 'comment-alt']"/> {{ $t('default') }}</span> <header class="oh5y2r7l5lx8j6jj791ykeiwgihheguk">
<span :data-active="mode == 'with-replies'" @click="mode = 'with-replies'"><fa icon="comments"/> {{ $t('with-replies') }}</span> <span :data-active="mode == 'default'" @click="mode = 'default'"><fa :icon="['far', 'comment-alt']"/> {{ $t('default') }}</span>
<span :data-active="mode == 'with-media'" @click="mode = 'with-media'"><fa :icon="['far', 'images']"/> {{ $t('with-media') }}</span> <span :data-active="mode == 'with-replies'" @click="mode = 'with-replies'"><fa icon="comments"/> {{ $t('with-replies') }}</span>
<span :data-active="mode == 'my-posts'" @click="mode = 'my-posts'"><fa icon="user"/> {{ $t('my-posts') }}</span> <span :data-active="mode == 'with-media'" @click="mode = 'with-media'"><fa :icon="['far', 'images']"/> {{ $t('with-media') }}</span>
</header> <span :data-active="mode == 'my-posts'" @click="mode = 'my-posts'"><fa icon="user"/> {{ $t('my-posts') }}</span>
<p class="empty" slot="empty"><fa :icon="['far', 'comments']"/>{{ $t('empty') }}</p> </header>
</template>
<template v-slot:empty><fa :icon="['far', 'comments']"/>{{ $t('empty') }}</template>
</mk-notes> </mk-notes>
</div> </div>
</template> </template>

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="mkw-messaging"> <div class="mkw-messaging">
<ui-container :show-header="props.design == 0"> <ui-container :show-header="props.design == 0">
<template slot="header"><fa icon="comments"/>{{ $t('title') }}</template> <template v-slot:header><fa icon="comments"/>{{ $t('title') }}</template>
<button slot="func" @click="add"><fa icon="plus"/></button> <template v-slot:func><button @click="add"><fa icon="plus"/></button></template>
<x-messaging ref="index" compact @navigate="navigate"/> <x-messaging ref="index" compact @navigate="navigate"/>
</ui-container> </ui-container>

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="mkw-notifications"> <div class="mkw-notifications">
<ui-container :show-header="!props.compact"> <ui-container :show-header="!props.compact">
<template slot="header"><fa :icon="['far', 'bell']"/>{{ $t('title') }}</template> <template v-slot:header><fa :icon="['far', 'bell']"/>{{ $t('title') }}</template>
<!-- <button slot="func" :title="$t('title')" @click="settings"><fa icon="cog"/></button> --> <!-- <button v-slot:func :title="$t('title')" @click="settings"><fa icon="cog"/></button> -->
<mk-notifications :class="$style.notifications"/> <mk-notifications :class="$style.notifications"/>
</ui-container> </ui-container>

View File

@ -1,11 +1,13 @@
<template> <template>
<div class="mkw-polls"> <div class="mkw-polls">
<ui-container :show-header="!props.compact"> <ui-container :show-header="!props.compact">
<template slot="header"><fa icon="chart-pie"/>{{ $t('title') }}</template> <template v-slot:header><fa icon="chart-pie"/>{{ $t('title') }}</template>
<button slot="func" :title="$t('title')" @click="fetch"> <template v-slot:func>
<fa v-if="!fetching && more" icon="arrow-right"/> <button :title="$t('title')" @click="fetch">
<fa v-if="!fetching && !more" icon="sync"/> <fa v-if="!fetching && more" icon="arrow-right"/>
</button> <fa v-if="!fetching && !more" icon="sync"/>
</button>
</template>
<div class="mkw-polls--body"> <div class="mkw-polls--body">
<div class="poll" v-if="!fetching && poll != null"> <div class="poll" v-if="!fetching && poll != null">

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<ui-container :show-header="props.design == 0"> <ui-container :show-header="props.design == 0">
<template slot="header"><fa icon="pencil-alt"/>{{ $t('title') }}</template> <template v-slot:header><fa icon="pencil-alt"/>{{ $t('title') }}</template>
<div class="lhcuptdmcdkfwmipgazeawoiuxpzaclc-body" <div class="lhcuptdmcdkfwmipgazeawoiuxpzaclc-body"
@dragover.stop="onDragover" @dragover.stop="onDragover"

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="mkw-trends"> <div class="mkw-trends">
<ui-container :show-header="!props.compact"> <ui-container :show-header="!props.compact">
<template slot="header"><fa icon="fire"/>{{ $t('title') }}</template> <template v-slot:header><fa icon="fire"/>{{ $t('title') }}</template>
<button slot="func" :title="$t('title')" @click="fetch"><fa icon="sync"/></button> <template v-slot:func><button :title="$t('title')" @click="fetch"><fa icon="sync"/></button></template>
<div class="mkw-trends--body"> <div class="mkw-trends--body">
<p class="fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p> <p class="fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p>

View File

@ -1,11 +1,13 @@
<template> <template>
<div class="mkw-users"> <div class="mkw-users">
<ui-container :show-header="!props.compact"> <ui-container :show-header="!props.compact">
<template slot="header"><fa icon="users"/>{{ $t('title') }}</template> <template v-slot:header><fa icon="users"/>{{ $t('title') }}</template>
<button slot="func" :title="$t('title')" @click="refresh"> <template v-slot:func>
<fa v-if="!fetching && more" icon="arrow-right"/> <button :title="$t('title')" @click="refresh">
<fa v-if="!fetching && !more" icon="sync"/> <fa v-if="!fetching && more" icon="arrow-right"/>
</button> <fa v-if="!fetching && !more" icon="sync"/>
</button>
</template>
<div class="mkw-users--body"> <div class="mkw-users--body">
<p class="fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p> <p class="fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="mk-ui"> <div class="mk-ui">
<x-header> <x-header>
<template slot="func"><slot name="func"></slot></template> <template v-slot:func><slot name="func"></slot></template>
<slot name="header"></slot> <slot name="header"></slot>
</x-header> </x-header>
<x-nav :is-open="isDrawerOpening"/> <x-nav :is-open="isDrawerOpening"/>

View File

@ -1,10 +1,10 @@
<template> <template>
<div class="mk-user-timeline"> <div class="mk-user-timeline">
<mk-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"> <mk-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')">
<div slot="empty"> <template v-slot:empty>
<fa :icon="['far', 'comments']"/> <fa :icon="['far', 'comments']"/>
{{ withMedia ? this.$t('no-notes-with-media') : this.$t('no-notes') }} {{ withMedia ? this.$t('no-notes-with-media') : this.$t('no-notes') }}
</div> </template>
</mk-notes> </mk-notes>
</div> </div>
</template> </template>

View File

@ -1,11 +1,11 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"> <template v-slot:header>
<template v-if="folder"><span style="margin-right:4px;"><fa :icon="['far', 'folder-open']"/></span>{{ folder.name }}</template> <template v-if="folder"><span style="margin-right:4px;"><fa :icon="['far', 'folder-open']"/></span>{{ folder.name }}</template>
<template v-if="file"><mk-file-type-icon data-icon :type="file.type" style="margin-right:4px;"/>{{ file.name }}</template> <template v-if="file"><mk-file-type-icon data-icon :type="file.type" style="margin-right:4px;"/>{{ file.name }}</template>
<template v-if="!folder && !file"><span style="margin-right:4px;"><fa icon="cloud"/></span>{{ $t('@.drive') }}</template> <template v-if="!folder && !file"><span style="margin-right:4px;"><fa icon="cloud"/></span>{{ $t('@.drive') }}</template>
</span> </template>
<template slot="func"><button @click="fn"><fa icon="ellipsis-h"/></button></template> <template v-slot:func><button @click="fn"><fa icon="ellipsis-h"/></button></template>
<x-drive <x-drive
ref="browser" ref="browser"
:init-folder="initFolder" :init-folder="initFolder"

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><span style="margin-right:4px;"><fa :icon="faHashtag"/></span>{{ $t('@.explore') }}</span> <template v-slot:header><span style="margin-right:4px;"><fa :icon="faHashtag"/></span>{{ $t('@.explore') }}</template>
<main> <main>
<x-explore v-bind="$attrs"/> <x-explore v-bind="$attrs"/>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><span style="margin-right:4px;"><fa icon="star"/></span>{{ $t('title') }}</span> <template v-slot:header><span style="margin-right:4px;"><fa icon="star"/></span>{{ $t('title') }}</template>
<main> <main>
<sequential-entrance animation="entranceFromTop" delay="25"> <sequential-entrance animation="entranceFromTop" delay="25">

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><span style="margin-right:4px;"><fa :icon="faNewspaper"/></span>{{ $t('@.featured-notes') }}</span> <template v-slot:header><span style="margin-right:4px;"><fa :icon="faNewspaper"/></span>{{ $t('@.featured-notes') }}</template>
<main> <main>
<sequential-entrance animation="entranceFromTop" delay="25"> <sequential-entrance animation="entranceFromTop" delay="25">

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><span style="margin-right:4px;"><fa icon="gamepad"/></span>{{ $t('reversi') }}</span> <template v-slot:header><span style="margin-right:4px;"><fa icon="gamepad"/></span>{{ $t('reversi') }}</template>
<x-reversi :game-id="$route.params.game" @nav="nav" :self-nav="false"/> <x-reversi :game-id="$route.params.game" @nav="nav" :self-nav="false"/>
</mk-ui> </mk-ui>
</template> </template>

View File

@ -8,9 +8,9 @@
</ui-container> </ui-container>
<mk-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')"> <mk-notes ref="timeline" :make-promise="makePromise" @inited="() => $emit('loaded')">
<div slot="empty"> <template v-slot:empty>
<fa :icon="['far', 'comments']"/>{{ $t('empty') }} <fa :icon="['far', 'comments']"/>{{ $t('empty') }}
</div> </template>
</mk-notes> </mk-notes>
</div> </div>
</template> </template>

View File

@ -1,24 +1,26 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header" @click="showNav = true"> <template v-slot:header>
<span :class="$style.title"> <span @click="showNav = true">
<span v-if="src == 'home'"><fa icon="home"/>{{ $t('home') }}</span> <span :class="$style.title">
<span v-if="src == 'local'"><fa :icon="['far', 'comments']"/>{{ $t('local') }}</span> <span v-if="src == 'home'"><fa icon="home"/>{{ $t('home') }}</span>
<span v-if="src == 'hybrid'"><fa icon="share-alt"/>{{ $t('hybrid') }}</span> <span v-if="src == 'local'"><fa :icon="['far', 'comments']"/>{{ $t('local') }}</span>
<span v-if="src == 'global'"><fa icon="globe"/>{{ $t('global') }}</span> <span v-if="src == 'hybrid'"><fa icon="share-alt"/>{{ $t('hybrid') }}</span>
<span v-if="src == 'mentions'"><fa icon="at"/>{{ $t('mentions') }}</span> <span v-if="src == 'global'"><fa icon="globe"/>{{ $t('global') }}</span>
<span v-if="src == 'messages'"><fa :icon="['far', 'envelope']"/>{{ $t('messages') }}</span> <span v-if="src == 'mentions'"><fa icon="at"/>{{ $t('mentions') }}</span>
<span v-if="src == 'list'"><fa icon="list"/>{{ list.title }}</span> <span v-if="src == 'messages'"><fa :icon="['far', 'envelope']"/>{{ $t('messages') }}</span>
<span v-if="src == 'tag'"><fa icon="hashtag"/>{{ tagTl.title }}</span> <span v-if="src == 'list'"><fa icon="list"/>{{ list.title }}</span>
<span v-if="src == 'tag'"><fa icon="hashtag"/>{{ tagTl.title }}</span>
</span>
<span style="margin-left:8px">
<template v-if="!showNav"><fa icon="angle-down"/></template>
<template v-else><fa icon="angle-up"/></template>
</span>
<i :class="$style.badge" v-if="$store.state.i.hasUnreadMentions || $store.state.i.hasUnreadSpecifiedNotes"><fa icon="circle"/></i>
</span> </span>
<span style="margin-left:8px"> </template>
<template v-if="!showNav"><fa icon="angle-down"/></template>
<template v-else><fa icon="angle-up"/></template>
</span>
<i :class="$style.badge" v-if="$store.state.i.hasUnreadMentions || $store.state.i.hasUnreadSpecifiedNotes"><fa icon="circle"/></i>
</span>
<template slot="func"> <template v-slot:func>
<button @click="fn"><fa icon="pencil-alt"/></button> <button @click="fn"><fa icon="pencil-alt"/></button>
</template> </template>

View File

@ -1,9 +1,9 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"> <template v-slot:header>
<template v-if="user"><span style="margin-right:4px;"><fa :icon="['far', 'comments']"/></span><mk-user-name :user="user"/></template> <template v-if="user"><span style="margin-right:4px;"><fa :icon="['far', 'comments']"/></span><mk-user-name :user="user"/></template>
<template v-else><mk-ellipsis/></template> <template v-else><mk-ellipsis/></template>
</span> </template>
<x-messaging-room v-if="!fetching" :user="user" :is-naked="true"/> <x-messaging-room v-if="!fetching" :user="user" :is-naked="true"/>
</mk-ui> </mk-ui>
</template> </template>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><span style="margin-right:4px;"><fa :icon="['far', 'comments']"/></span>{{ $t('@.messaging') }}</span> <template v-slot:header><span style="margin-right:4px;"><fa :icon="['far', 'comments']"/></span>{{ $t('@.messaging') }}</template>
<x-messaging @navigate="navigate" :header-top="48"/> <x-messaging @navigate="navigate" :header-top="48"/>
</mk-ui> </mk-ui>
</template> </template>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><span style="margin-right:4px;"><fa :icon="['far', 'sticky-note']"/></span>{{ $t('title') }}</span> <template v-slot:header><span style="margin-right:4px;"><fa :icon="['far', 'sticky-note']"/></span>{{ $t('title') }}</template>
<main v-if="!fetching"> <main v-if="!fetching">
<div> <div>
<mk-note-detail :note="note"/> <mk-note-detail :note="note"/>

View File

@ -1,7 +1,7 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><span style="margin-right:4px;"><fa :icon="['far', 'bell']"/></span>{{ $t('notifications') }}</span> <template v-slot:header><span style="margin-right:4px;"><fa :icon="['far', 'bell']"/></span>{{ $t('notifications') }}</template>
<template slot="func"><button @click="fn"><fa icon="check"/></button></template> <template v-slot:func><button @click="fn"><fa icon="check"/></button></template>
<main> <main>
<mk-notifications @fetched="onFetched"/> <mk-notifications @fetched="onFetched"/>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><fa :icon="['far', 'envelope']"/>{{ $t('title') }}</span> <template v-slot:header><fa :icon="['far', 'envelope']"/>{{ $t('title') }}</template>
<main> <main>
<div v-for="req in requests"> <div v-for="req in requests">

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><fa icon="search"/> {{ q }}</span> <template v-slot:header><fa icon="search"/> {{ q }}</template>
<main> <main>
<mk-notes ref="timeline" :make-promise="makePromise" @inited="inited"/> <mk-notes ref="timeline" :make-promise="makePromise" @inited="inited"/>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><span style="margin-right:4px;"><fa icon="cog"/></span>{{ $t('settings') }}</span> <template v-slot:header><span style="margin-right:4px;"><fa icon="cog"/></span>{{ $t('settings') }}</template>
<main> <main>
<div class="signed-in-as"> <div class="signed-in-as">
<mfm :text="$t('signed-in-as').replace('{}', name)" :should-break="false" :plain-text="true" :custom-emojis="$store.state.i.emojis"/> <mfm :text="$t('signed-in-as').replace('{}', name)" :should-break="false" :plain-text="true" :custom-emojis="$store.state.i.emojis"/>
@ -11,7 +11,7 @@
<x-theme/> <x-theme/>
<ui-card> <ui-card>
<div slot="title"><fa icon="poll-h"/> {{ $t('design') }}</div> <template v-slot:title><fa icon="poll-h"/> {{ $t('design') }}</template>
<section> <section>
<ui-switch v-model="darkmode">{{ $t('dark-mode') }}</ui-switch> <ui-switch v-model="darkmode">{{ $t('dark-mode') }}</ui-switch>
@ -63,7 +63,7 @@
</ui-card> </ui-card>
<ui-card> <ui-card>
<div slot="title"><fa icon="sliders-h"/> {{ $t('behavior') }}</div> <template v-slot:title><fa icon="sliders-h"/> {{ $t('behavior') }}</template>
<section> <section>
<ui-switch v-model="fetchOnScroll">{{ $t('fetch-on-scroll') }}</ui-switch> <ui-switch v-model="fetchOnScroll">{{ $t('fetch-on-scroll') }}</ui-switch>
@ -93,7 +93,7 @@
<section> <section>
<header>{{ $t('web-search-engine') }}</header> <header>{{ $t('web-search-engine') }}</header>
<ui-input v-model="webSearchEngine">{{ $t('web-search-engine') }}<span slot="desc">{{ $t('web-search-engine-desc') }}</span></ui-input> <ui-input v-model="webSearchEngine">{{ $t('web-search-engine') }}<template v-slot:desc>{{ $t('web-search-engine-desc') }}</template></ui-input>
</section> </section>
</ui-card> </ui-card>
@ -104,7 +104,7 @@
<x-mute-and-block/> <x-mute-and-block/>
<ui-card> <ui-card>
<div slot="title"><fa icon="volume-up"/> {{ $t('sound') }}</div> <template v-slot:title><fa icon="volume-up"/> {{ $t('sound') }}</template>
<section> <section>
<ui-switch v-model="enableSounds">{{ $t('enable-sounds') }}</ui-switch> <ui-switch v-model="enableSounds">{{ $t('enable-sounds') }}</ui-switch>
@ -118,14 +118,14 @@
<x-api-settings /> <x-api-settings />
<ui-card> <ui-card>
<div slot="title"><fa icon="unlock-alt"/> {{ $t('password') }}</div> <template v-slot:title><fa icon="unlock-alt"/> {{ $t('password') }}</template>
<section> <section>
<x-password-settings/> <x-password-settings/>
</section> </section>
</ui-card> </ui-card>
<ui-card> <ui-card>
<div slot="title"><fa icon="sync-alt"/> {{ $t('update') }}</div> <template v-slot:title><fa icon="sync-alt"/> {{ $t('update') }}</template>
<section> <section>
<div>{{ $t('version') }} <i>{{ version }}</i></div> <div>{{ $t('version') }} <i>{{ version }}</i></div>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><span style="margin-right:4px;"><fa icon="hashtag"/></span>{{ $route.params.tag }}</span> <template v-slot:header><span style="margin-right:4px;"><fa icon="hashtag"/></span>{{ $route.params.tag }}</template>
<main> <main>
<mk-notes ref="timeline" :make-promise="makePromise" @inited="inited"/> <mk-notes ref="timeline" :make-promise="makePromise" @inited="inited"/>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header" v-if="!fetching"><fa icon="list"/>{{ list.title }}</span> <template v-slot:header v-if="!fetching"><fa icon="list"/>{{ list.title }}</template>
<main v-if="!fetching"> <main v-if="!fetching">
<x-editor :list="list"/> <x-editor :list="list"/>

View File

@ -1,7 +1,7 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><fa icon="list"/>{{ $t('title') }}</span> <template v-slot:header><fa icon="list"/>{{ $t('title') }}</template>
<template slot="func"><button @click="fn"><fa icon="plus"/></button></template> <template v-slot:func><button @click="fn"><fa icon="plus"/></button></template>
<main> <main>
<ul> <ul>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<template slot="header" v-if="!fetching"><img :src="avator" alt=""> <template v-slot:header v-if="!fetching"><img :src="avator" alt="">
<mk-user-name :user="user"/> <mk-user-name :user="user"/>
</template> </template>
<div class="wwtwuxyh" v-if="!fetching"> <div class="wwtwuxyh" v-if="!fetching">

View File

@ -1,7 +1,7 @@
<template> <template>
<mk-ui> <mk-ui>
<span slot="header"><span style="margin-right:4px;"><fa icon="home"/></span>{{ $t('dashboard') }}</span> <template v-slot:header><span style="margin-right:4px;"><fa icon="home"/></span>{{ $t('dashboard') }}</template>
<template slot="func"> <template v-slot:func>
<button @click="customizing = !customizing"><fa icon="cog"/></button> <button @click="customizing = !customizing"><fa icon="cog"/></button>
</template> </template>
<main> <main>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="mkw-activity"> <div class="mkw-activity">
<ui-container :show-header="!props.compact"> <ui-container :show-header="!props.compact">
<template slot="header"><fa icon="chart-bar"/>{{ $t('activity') }}</template> <template v-slot:header><fa icon="chart-bar"/>{{ $t('activity') }}</template>
<div :class="$style.body"> <div :class="$style.body">
<x-activity :user="$store.state.i"/> <x-activity :user="$store.state.i"/>
</div> </div>

View File

@ -1,7 +1,7 @@
<template> <template>
<main> <main>
<ui-card> <ui-card>
<div slot="title">MFM Playground</div> <template v-slot:title>MFM Playground</template>
<section class="fit-top"> <section class="fit-top">
<ui-textarea v-model="mfm"> <ui-textarea v-model="mfm">
<span>MFM</span> <span>MFM</span>
@ -18,7 +18,7 @@
</ui-card> </ui-card>
<ui-card> <ui-card>
<div slot="title">Dialog Generator</div> <template v-slot:title>Dialog Generator</template>
<section class="fit-top"> <section class="fit-top">
<ui-select v-model="dialogType" placeholder=""> <ui-select v-model="dialogType" placeholder="">
<option value="info">Information</option> <option value="info">Information</option>