This commit is contained in:
syuilo 2021-09-27 23:07:46 +09:00
parent c0ae5ea189
commit 6544916b0c
61 changed files with 233 additions and 234 deletions

View file

@ -1,7 +1,7 @@
<template> <template>
<button class="nrvgflfu _button" @click="toggle"> <button class="nrvgflfu _button" @click="toggle">
<b>{{ value ? $ts._cw.hide : $ts._cw.show }}</b> <b>{{ modelValue ? $ts._cw.hide : $ts._cw.show }}</b>
<span v-if="!value">{{ label }}</span> <span v-if="!modelValue">{{ label }}</span>
</button> </button>
</template> </template>
@ -12,7 +12,7 @@ import { concat } from '../../prelude/array';
export default defineComponent({ export default defineComponent({
props: { props: {
value: { modelValue: {
type: Boolean, type: Boolean,
required: true required: true
}, },
@ -36,7 +36,7 @@ export default defineComponent({
length, length,
toggle() { toggle() {
this.$emit('update:value', !this.value); this.$emit('update:modelValue', !this.modelValue);
} }
} }
}); });

View file

@ -14,23 +14,23 @@
</template> </template>
<FormBase class="xkpnjxcv"> <FormBase class="xkpnjxcv">
<template v-for="item in Object.keys(form).filter(item => !form[item].hidden)"> <template v-for="item in Object.keys(form).filter(item => !form[item].hidden)">
<FormInput v-if="form[item].type === 'number'" v-model:value="values[item]" type="number" :step="form[item].step || 1"> <FormInput v-if="form[item].type === 'number'" v-model="values[item]" type="number" :step="form[item].step || 1">
<span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span> <span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span>
<template v-if="form[item].description" #desc>{{ form[item].description }}</template> <template v-if="form[item].description" #desc>{{ form[item].description }}</template>
</FormInput> </FormInput>
<FormInput v-else-if="form[item].type === 'string' && !form[item].multiline" v-model:value="values[item]" type="text"> <FormInput v-else-if="form[item].type === 'string' && !form[item].multiline" v-model="values[item]" type="text">
<span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span> <span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span>
<template v-if="form[item].description" #desc>{{ form[item].description }}</template> <template v-if="form[item].description" #desc>{{ form[item].description }}</template>
</FormInput> </FormInput>
<FormTextarea v-else-if="form[item].type === 'string' && form[item].multiline" v-model:value="values[item]"> <FormTextarea v-else-if="form[item].type === 'string' && form[item].multiline" v-model="values[item]">
<span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span> <span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span>
<template v-if="form[item].description" #desc>{{ form[item].description }}</template> <template v-if="form[item].description" #desc>{{ form[item].description }}</template>
</FormTextarea> </FormTextarea>
<FormSwitch v-else-if="form[item].type === 'boolean'" v-model:value="values[item]"> <FormSwitch v-else-if="form[item].type === 'boolean'" v-model="values[item]">
<span v-text="form[item].label || item"></span> <span v-text="form[item].label || item"></span>
<template v-if="form[item].description" #desc>{{ form[item].description }}</template> <template v-if="form[item].description" #desc>{{ form[item].description }}</template>
</FormSwitch> </FormSwitch>
<FormSelect v-else-if="form[item].type === 'enum'" v-model:value="values[item]"> <FormSelect v-else-if="form[item].type === 'enum'" v-model="values[item]">
<template #label><span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span></template> <template #label><span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span></template>
<option v-for="item in form[item].enum" :value="item.value" :key="item.value">{{ item.label }}</option> <option v-for="item in form[item].enum" :value="item.value" :key="item.value">{{ item.label }}</option>
</FormSelect> </FormSelect>
@ -38,7 +38,7 @@
<template #desc><span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span></template> <template #desc><span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span></template>
<option v-for="item in form[item].options" :value="item.value" :key="item.value">{{ item.label }}</option> <option v-for="item in form[item].options" :value="item.value" :key="item.value">{{ item.label }}</option>
</FormRadios> </FormRadios>
<FormRange v-else-if="form[item].type === 'range'" v-model:value="values[item]" :min="form[item].mim" :max="form[item].max" :step="form[item].step"> <FormRange v-else-if="form[item].type === 'range'" v-model="values[item]" :min="form[item].mim" :max="form[item].max" :step="form[item].step">
<template #label><span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span></template> <template #label><span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span></template>
<template v-if="form[item].description" #desc>{{ form[item].description }}</template> <template v-if="form[item].description" #desc>{{ form[item].description }}</template>
</FormRange> </FormRange>

View file

@ -59,7 +59,7 @@
<div class="body"> <div class="body">
<p v-if="appearNote.cw != null" class="cw"> <p v-if="appearNote.cw != null" class="cw">
<Mfm v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$i" :custom-emojis="appearNote.emojis"/> <Mfm v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$i" :custom-emojis="appearNote.emojis"/>
<XCwButton v-model:value="showContent" :note="appearNote"/> <XCwButton v-model="showContent" :note="appearNote"/>
</p> </p>
<div class="content" v-show="appearNote.cw == null || showContent"> <div class="content" v-show="appearNote.cw == null || showContent">
<div class="text"> <div class="text">

View file

@ -6,7 +6,7 @@
<div class="body"> <div class="body">
<p v-if="note.cw != null" class="cw"> <p v-if="note.cw != null" class="cw">
<span class="text" v-if="note.cw != ''">{{ note.cw }}</span> <span class="text" v-if="note.cw != ''">{{ note.cw }}</span>
<XCwButton v-model:value="showContent" :note="note"/> <XCwButton v-model="showContent" :note="note"/>
</p> </p>
<div class="content" v-show="note.cw == null || showContent"> <div class="content" v-show="note.cw == null || showContent">
<XSubNote-content class="text" :note="note"/> <XSubNote-content class="text" :note="note"/>

View file

@ -7,7 +7,7 @@
<div class="body"> <div class="body">
<p v-if="note.cw != null" class="cw"> <p v-if="note.cw != null" class="cw">
<Mfm v-if="note.cw != ''" class="text" :text="note.cw" :author="note.user" :i="$i" :custom-emojis="note.emojis" /> <Mfm v-if="note.cw != ''" class="text" :text="note.cw" :author="note.user" :i="$i" :custom-emojis="note.emojis" />
<XCwButton v-model:value="showContent" :note="note"/> <XCwButton v-model="showContent" :note="note"/>
</p> </p>
<div class="content" v-show="note.cw == null || showContent"> <div class="content" v-show="note.cw == null || showContent">
<XSubNote-content class="text" :note="note"/> <XSubNote-content class="text" :note="note"/>

View file

@ -43,7 +43,7 @@
<div class="body"> <div class="body">
<p v-if="appearNote.cw != null" class="cw"> <p v-if="appearNote.cw != null" class="cw">
<Mfm v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$i" :custom-emojis="appearNote.emojis"/> <Mfm v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$i" :custom-emojis="appearNote.emojis"/>
<XCwButton v-model:value="showContent" :note="appearNote"/> <XCwButton v-model="showContent" :note="appearNote"/>
</p> </p>
<div class="content" :class="{ collapsed }" v-show="appearNote.cw == null || showContent"> <div class="content" :class="{ collapsed }" v-show="appearNote.cw == null || showContent">
<div class="text"> <div class="text">

View file

@ -44,8 +44,8 @@
</template> </template>
</I18n> </I18n>
</label> </label>
<captcha v-if="meta.enableHcaptcha" class="_formBlock captcha" provider="hcaptcha" ref="hcaptcha" v-model:value="hCaptchaResponse" :sitekey="meta.hcaptchaSiteKey"/> <captcha v-if="meta.enableHcaptcha" class="_formBlock captcha" provider="hcaptcha" ref="hcaptcha" v-model="hCaptchaResponse" :sitekey="meta.hcaptchaSiteKey"/>
<captcha v-if="meta.enableRecaptcha" class="_formBlock captcha" provider="recaptcha" ref="recaptcha" v-model:value="reCaptchaResponse" :sitekey="meta.recaptchaSiteKey"/> <captcha v-if="meta.enableRecaptcha" class="_formBlock captcha" provider="recaptcha" ref="recaptcha" v-model="reCaptchaResponse" :sitekey="meta.recaptchaSiteKey"/>
<MkButton class="_formBlock" type="submit" :disabled="shouldDisableSubmitting" primary data-cy-signup-submit>{{ $ts.start }}</MkButton> <MkButton class="_formBlock" type="submit" :disabled="shouldDisableSubmitting" primary data-cy-signup-submit>{{ $ts.start }}</MkButton>
</template> </template>
</form> </form>

View file

@ -3,7 +3,7 @@ import { defineComponent, h, resolveDirective, withDirectives } from 'vue';
export default defineComponent({ export default defineComponent({
props: { props: {
value: { modelValue: {
required: true, required: true,
}, },
}, },
@ -13,11 +13,11 @@ export default defineComponent({
return withDirectives(h('div', { return withDirectives(h('div', {
class: 'pxhvhrfw', class: 'pxhvhrfw',
}, options.map(option => withDirectives(h('button', { }, options.map(option => withDirectives(h('button', {
class: ['_button', { active: this.value === option.props.value }], class: ['_button', { active: this.modelValue === option.props.modelValue }],
key: option.key, key: option.key,
disabled: this.value === option.props.value, disabled: this.modelValue === option.props.modelValue,
onClick: () => { onClick: () => {
this.$emit('update:value', option.props.value); this.$emit('update:modelValue', option.props.modelValue);
} }
}, option.children), [ }, option.children), [
[resolveDirective('click-anime')] [resolveDirective('click-anime')]

View file

@ -9,7 +9,7 @@
<template #header>Req Viewer</template> <template #header>Req Viewer</template>
<div class="rlkneywz"> <div class="rlkneywz">
<MkTab v-model:value="tab" style="border-bottom: solid 0.5px var(--divider);"> <MkTab v-model="tab" style="border-bottom: solid 0.5px var(--divider);">
<option value="req">Request</option> <option value="req">Request</option>
<option value="res">Response</option> <option value="res">Response</option>
</MkTab> </MkTab>

View file

@ -4,7 +4,7 @@
<i class="fas fa-terminal" style="margin-right: 0.5em;"></i>Task Manager <i class="fas fa-terminal" style="margin-right: 0.5em;"></i>Task Manager
</template> </template>
<div class="qljqmnzj _monospace"> <div class="qljqmnzj _monospace">
<MkTab v-model:value="tab" style="border-bottom: solid 0.5px var(--divider);"> <MkTab v-model="tab" style="border-bottom: solid 0.5px var(--divider);">
<option value="windows">Windows</option> <option value="windows">Windows</option>
<option value="stream">Stream</option> <option value="stream">Stream</option>
<option value="streamPool">Stream (Pool)</option> <option value="streamPool">Stream (Pool)</option>

View file

@ -4,7 +4,7 @@
<div class="_content"> <div class="_content">
<details> <details>
<summary>{{ $ts.import }}</summary> <summary>{{ $ts.import }}</summary>
<MkTextarea v-model:value="themeToImport"> <MkTextarea v-model="themeToImport">
{{ $ts._theme.importInfo }} {{ $ts._theme.importInfo }}
</MkTextarea> </MkTextarea>
<MkButton :disabled="!themeToImport.trim()" @click="importTheme">{{ $ts.import }}</MkButton> <MkButton :disabled="!themeToImport.trim()" @click="importTheme">{{ $ts.import }}</MkButton>
@ -14,9 +14,9 @@
<section class="_section"> <section class="_section">
<div class="_content _card _gap"> <div class="_content _card _gap">
<div class="_content"> <div class="_content">
<MkInput v-model:value="name" required><span>{{ $ts.name }}</span></MkInput> <MkInput v-model="name" required><span>{{ $ts.name }}</span></MkInput>
<MkInput v-model:value="author" required><span>{{ $ts.author }}</span></MkInput> <MkInput v-model="author" required><span>{{ $ts.author }}</span></MkInput>
<MkTextarea v-model:value="description"><span>{{ $ts.description }}</span></MkTextarea> <MkTextarea v-model="description"><span>{{ $ts.description }}</span></MkTextarea>
<div class="_inputs"> <div class="_inputs">
<div v-text="$ts._theme.base" /> <div v-text="$ts._theme.base" />
<MkRadio v-model="baseTheme" value="light">{{ $ts.light }}</MkRadio> <MkRadio v-model="baseTheme" value="light">{{ $ts.light }}</MkRadio>
@ -41,31 +41,31 @@
<!-- color --> <!-- color -->
<div v-else-if="typeof v === 'string'" class="color"> <div v-else-if="typeof v === 'string'" class="color">
<input type="color" :value="v" @input="colorChanged($event.target.value, i)"/> <input type="color" :value="v" @input="colorChanged($event.target.value, i)"/>
<MkInput class="select" :value="v" @update:value="colorChanged($event, i)"/> <MkInput class="select" :value="v" @update:modelValue="colorChanged($event, i)"/>
</div> </div>
<!-- ref const --> <!-- ref const -->
<MkInput v-else-if="v.type === 'refConst'" v-model:value="v.key"> <MkInput v-else-if="v.type === 'refConst'" v-model="v.key">
<template #prefix>$</template> <template #prefix>$</template>
<span>{{ $ts.name }}</span> <span>{{ $ts.name }}</span>
</MkInput> </MkInput>
<!-- ref props --> <!-- ref props -->
<MkSelect class="select" v-else-if="v.type === 'refProp'" v-model:value="v.key"> <MkSelect class="select" v-else-if="v.type === 'refProp'" v-model="v.key">
<option v-for="key in themeProps" :value="key" :key="key">{{ $t('_theme.keys.' + key) }}</option> <option v-for="key in themeProps" :value="key" :key="key">{{ $t('_theme.keys.' + key) }}</option>
</MkSelect> </MkSelect>
<!-- func --> <!-- func -->
<template v-else-if="v.type === 'func'"> <template v-else-if="v.type === 'func'">
<MkSelect class="select" v-model:value="v.name"> <MkSelect class="select" v-model="v.name">
<template #label>{{ $ts._theme.funcKind }}</template> <template #label>{{ $ts._theme.funcKind }}</template>
<option v-for="n in ['alpha', 'darken', 'lighten']" :value="n" :key="n">{{ $t('_theme.' + n) }}</option> <option v-for="n in ['alpha', 'darken', 'lighten']" :value="n" :key="n">{{ $t('_theme.' + n) }}</option>
</MkSelect> </MkSelect>
<MkInput type="number" v-model:value="v.arg"><span>{{ $ts._theme.argument }}</span></MkInput> <MkInput type="number" v-model="v.arg"><span>{{ $ts._theme.argument }}</span></MkInput>
<MkSelect class="select" v-model:value="v.value"> <MkSelect class="select" v-model="v.value">
<template #label>{{ $ts._theme.basedProp }}</template> <template #label>{{ $ts._theme.basedProp }}</template>
<option v-for="key in themeProps" :value="key" :key="key">{{ $t('_theme.keys.' + key) }}</option> <option v-for="key in themeProps" :value="key" :key="key">{{ $t('_theme.keys.' + key) }}</option>
</MkSelect> </MkSelect>
</template> </template>
<!-- CSS --> <!-- CSS -->
<MkInput v-else-if="v.type === 'css'" v-model:value="v.value"> <MkInput v-else-if="v.type === 'css'" v-model="v.value">
<span>CSS</span> <span>CSS</span>
</MkInput> </MkInput>
</div> </div>

View file

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<div class="_section" style="padding: 0;" v-if="$i"> <div class="_section" style="padding: 0;" v-if="$i">
<MkTab class="_content" v-model:value="tab"> <MkTab class="_content" v-model="tab">
<option value="featured"><i class="fas fa-fire-alt"></i> {{ $ts._channel.featured }}</option> <option value="featured"><i class="fas fa-fire-alt"></i> {{ $ts._channel.featured }}</option>
<option value="following"><i class="fas fa-heart"></i> {{ $ts._channel.following }}</option> <option value="following"><i class="fas fa-heart"></i> {{ $ts._channel.following }}</option>
<option value="owned"><i class="fas fa-edit"></i> {{ $ts._channel.owned }}</option> <option value="owned"><i class="fas fa-edit"></i> {{ $ts._channel.owned }}</option>

View file

@ -1,11 +1,11 @@
<template> <template>
<FormBase> <FormBase>
<FormSuspense :p="init"> <FormSuspense :p="init">
<FormInput v-model:value="title"> <FormInput v-model="title">
<span>{{ $ts.title }}</span> <span>{{ $ts.title }}</span>
</FormInput> </FormInput>
<FormTextarea v-model:value="description" :max="500"> <FormTextarea v-model="description" :max="500">
<span>{{ $ts.description }}</span> <span>{{ $ts.description }}</span>
</FormTextarea> </FormTextarea>
@ -17,7 +17,7 @@
<FormButton @click="selectFile" primary><i class="fas fa-plus"></i> {{ $ts.attachFile }}</FormButton> <FormButton @click="selectFile" primary><i class="fas fa-plus"></i> {{ $ts.attachFile }}</FormButton>
</FormGroup> </FormGroup>
<FormSwitch v-model:value="isSensitive">{{ $ts.markAsSensitive }}</FormSwitch> <FormSwitch v-model="isSensitive">{{ $ts.markAsSensitive }}</FormSwitch>
<FormButton v-if="postId" @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton> <FormButton v-if="postId" @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton>
<FormButton v-else @click="save" primary><i class="fas fa-save"></i> {{ $ts.publish }}</FormButton> <FormButton v-else @click="save" primary><i class="fas fa-save"></i> {{ $ts.publish }}</FormButton>

View file

@ -1,6 +1,6 @@
<template> <template>
<div class="xprsixdl _root"> <div class="xprsixdl _root">
<MkTab v-model:value="tab" v-if="$i"> <MkTab v-model="tab" v-if="$i">
<option value="explore"><i class="fas fa-icons"></i> {{ $ts.gallery }}</option> <option value="explore"><i class="fas fa-icons"></i> {{ $ts.gallery }}</option>
<option value="liked"><i class="fas fa-heart"></i> {{ $ts._gallery.liked }}</option> <option value="liked"><i class="fas fa-heart"></i> {{ $ts._gallery.liked }}</option>
<option value="my"><i class="fas fa-edit"></i> {{ $ts._gallery.my }}</option> <option value="my"><i class="fas fa-edit"></i> {{ $ts._gallery.my }}</option>

View file

@ -24,10 +24,10 @@
</div> </div>
<!-- TODO <!-- TODO
<div class="inputs" style="display: flex; padding-top: 1.2em;"> <div class="inputs" style="display: flex; padding-top: 1.2em;">
<MkInput v-model:value="searchUsername" style="margin: 0; flex: 1;" type="text" spellcheck="false" @update:value="$refs.reports.reload()"> <MkInput v-model="searchUsername" style="margin: 0; flex: 1;" type="text" spellcheck="false" @update:modelValue="$refs.reports.reload()">
<span>{{ $ts.username }}</span> <span>{{ $ts.username }}</span>
</MkInput> </MkInput>
<MkInput v-model:value="searchHost" style="margin: 0; flex: 1;" type="text" spellcheck="false" @update:value="$refs.reports.reload()" :disabled="pagination.params().origin === 'local'"> <MkInput v-model="searchHost" style="margin: 0; flex: 1;" type="text" spellcheck="false" @update:modelValue="$refs.reports.reload()" :disabled="pagination.params().origin === 'local'">
<span>{{ $ts.host }}</span> <span>{{ $ts.host }}</span>
</MkInput> </MkInput>
</div> </div>

View file

@ -12,11 +12,11 @@
<div class="_debobigegoItem _debobigegoNoConcat" v-sticky-container> <div class="_debobigegoItem _debobigegoNoConcat" v-sticky-container>
<div class="_debobigegoLabel">hCaptcha</div> <div class="_debobigegoLabel">hCaptcha</div>
<div class="main"> <div class="main">
<FormInput v-model:value="hcaptchaSiteKey"> <FormInput v-model="hcaptchaSiteKey">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
<span>{{ $ts.hcaptchaSiteKey }}</span> <span>{{ $ts.hcaptchaSiteKey }}</span>
</FormInput> </FormInput>
<FormInput v-model:value="hcaptchaSecretKey"> <FormInput v-model="hcaptchaSecretKey">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
<span>{{ $ts.hcaptchaSecretKey }}</span> <span>{{ $ts.hcaptchaSecretKey }}</span>
</FormInput> </FormInput>
@ -33,11 +33,11 @@
<div class="_debobigegoItem _debobigegoNoConcat" v-sticky-container> <div class="_debobigegoItem _debobigegoNoConcat" v-sticky-container>
<div class="_debobigegoLabel">reCAPTCHA</div> <div class="_debobigegoLabel">reCAPTCHA</div>
<div class="main"> <div class="main">
<FormInput v-model:value="recaptchaSiteKey"> <FormInput v-model="recaptchaSiteKey">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
<span>{{ $ts.recaptchaSiteKey }}</span> <span>{{ $ts.recaptchaSiteKey }}</span>
</FormInput> </FormInput>
<FormInput v-model:value="recaptchaSecretKey"> <FormInput v-model="recaptchaSecretKey">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
<span>{{ $ts.recaptchaSecretKey }}</span> <span>{{ $ts.recaptchaSecretKey }}</span>
</FormInput> </FormInput>

View file

@ -1,30 +1,30 @@
<template> <template>
<FormBase> <FormBase>
<FormSuspense :p="init"> <FormSuspense :p="init">
<FormSwitch v-model:value="enableEmail">{{ $ts.enableEmail }}<template #desc>{{ $ts.emailConfigInfo }}</template></FormSwitch> <FormSwitch v-model="enableEmail">{{ $ts.enableEmail }}<template #desc>{{ $ts.emailConfigInfo }}</template></FormSwitch>
<template v-if="enableEmail"> <template v-if="enableEmail">
<FormInput v-model:value="email" type="email"> <FormInput v-model="email" type="email">
<span>{{ $ts.emailAddress }}</span> <span>{{ $ts.emailAddress }}</span>
</FormInput> </FormInput>
<div class="_debobigegoItem _debobigegoNoConcat" v-sticky-container> <div class="_debobigegoItem _debobigegoNoConcat" v-sticky-container>
<div class="_debobigegoLabel">{{ $ts.smtpConfig }}</div> <div class="_debobigegoLabel">{{ $ts.smtpConfig }}</div>
<div class="main"> <div class="main">
<FormInput v-model:value="smtpHost"> <FormInput v-model="smtpHost">
<span>{{ $ts.smtpHost }}</span> <span>{{ $ts.smtpHost }}</span>
</FormInput> </FormInput>
<FormInput v-model:value="smtpPort" type="number"> <FormInput v-model="smtpPort" type="number">
<span>{{ $ts.smtpPort }}</span> <span>{{ $ts.smtpPort }}</span>
</FormInput> </FormInput>
<FormInput v-model:value="smtpUser"> <FormInput v-model="smtpUser">
<span>{{ $ts.smtpUser }}</span> <span>{{ $ts.smtpUser }}</span>
</FormInput> </FormInput>
<FormInput v-model:value="smtpPass" type="password"> <FormInput v-model="smtpPass" type="password">
<span>{{ $ts.smtpPass }}</span> <span>{{ $ts.smtpPass }}</span>
</FormInput> </FormInput>
<FormInfo>{{ $ts.emptyToDisableSmtpAuth }}</FormInfo> <FormInfo>{{ $ts.emptyToDisableSmtpAuth }}</FormInfo>
<FormSwitch v-model:value="smtpSecure">{{ $ts.smtpSecure }}<template #desc>{{ $ts.smtpSecureInfo }}</template></FormSwitch> <FormSwitch v-model="smtpSecure">{{ $ts.smtpSecure }}<template #desc>{{ $ts.smtpSecureInfo }}</template></FormSwitch>
</div> </div>
</div> </div>

View file

@ -1,6 +1,6 @@
<template> <template>
<div class="ogwlenmc"> <div class="ogwlenmc">
<MkTab v-model:value="tab"> <MkTab v-model="tab">
<option value="local">{{ $ts.local }}</option> <option value="local">{{ $ts.local }}</option>
<option value="remote">{{ $ts.remote }}</option> <option value="remote">{{ $ts.remote }}</option>
</MkTab> </MkTab>

View file

@ -1,23 +1,23 @@
<template> <template>
<FormBase> <FormBase>
<FormSuspense :p="init"> <FormSuspense :p="init">
<FormSwitch v-model:value="cacheRemoteFiles"> <FormSwitch v-model="cacheRemoteFiles">
{{ $ts.cacheRemoteFiles }} {{ $ts.cacheRemoteFiles }}
<template #desc>{{ $ts.cacheRemoteFilesDescription }}</template> <template #desc>{{ $ts.cacheRemoteFilesDescription }}</template>
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="proxyRemoteFiles"> <FormSwitch v-model="proxyRemoteFiles">
{{ $ts.proxyRemoteFiles }} {{ $ts.proxyRemoteFiles }}
<template #desc>{{ $ts.proxyRemoteFilesDescription }}</template> <template #desc>{{ $ts.proxyRemoteFilesDescription }}</template>
</FormSwitch> </FormSwitch>
<FormInput v-model:value="localDriveCapacityMb" type="number"> <FormInput v-model="localDriveCapacityMb" type="number">
<span>{{ $ts.driveCapacityPerLocalAccount }}</span> <span>{{ $ts.driveCapacityPerLocalAccount }}</span>
<template #suffix>MB</template> <template #suffix>MB</template>
<template #desc>{{ $ts.inMb }}</template> <template #desc>{{ $ts.inMb }}</template>
</FormInput> </FormInput>
<FormInput v-model:value="remoteDriveCapacityMb" type="number" :disabled="!cacheRemoteFiles"> <FormInput v-model="remoteDriveCapacityMb" type="number" :disabled="!cacheRemoteFiles">
<span>{{ $ts.driveCapacityPerRemoteAccount }}</span> <span>{{ $ts.driveCapacityPerRemoteAccount }}</span>
<template #suffix>MB</template> <template #suffix>MB</template>
<template #desc>{{ $ts.inMb }}</template> <template #desc>{{ $ts.inMb }}</template>

View file

@ -1,7 +1,7 @@
<template> <template>
<FormBase> <FormBase>
<FormSuspense :p="init"> <FormSuspense :p="init">
<FormTextarea v-model:value="blockedHosts"> <FormTextarea v-model="blockedHosts">
<span>{{ $ts.blockedInstances }}</span> <span>{{ $ts.blockedInstances }}</span>
<template #desc>{{ $ts.blockedInstancesDescription }}</template> <template #desc>{{ $ts.blockedInstancesDescription }}</template>
</FormTextarea> </FormTextarea>

View file

@ -1,19 +1,19 @@
<template> <template>
<FormBase> <FormBase>
<FormSuspense :p="init"> <FormSuspense :p="init">
<FormSwitch v-model:value="enableDiscordIntegration"> <FormSwitch v-model="enableDiscordIntegration">
{{ $ts.enable }} {{ $ts.enable }}
</FormSwitch> </FormSwitch>
<template v-if="enableDiscordIntegration"> <template v-if="enableDiscordIntegration">
<FormInfo>Callback URL: {{ `${url}/api/dc/cb` }}</FormInfo> <FormInfo>Callback URL: {{ `${url}/api/dc/cb` }}</FormInfo>
<FormInput v-model:value="discordClientId"> <FormInput v-model="discordClientId">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
Client ID Client ID
</FormInput> </FormInput>
<FormInput v-model:value="discordClientSecret"> <FormInput v-model="discordClientSecret">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
Client Secret Client Secret
</FormInput> </FormInput>

View file

@ -1,19 +1,19 @@
<template> <template>
<FormBase> <FormBase>
<FormSuspense :p="init"> <FormSuspense :p="init">
<FormSwitch v-model:value="enableGithubIntegration"> <FormSwitch v-model="enableGithubIntegration">
{{ $ts.enable }} {{ $ts.enable }}
</FormSwitch> </FormSwitch>
<template v-if="enableGithubIntegration"> <template v-if="enableGithubIntegration">
<FormInfo>Callback URL: {{ `${url}/api/gh/cb` }}</FormInfo> <FormInfo>Callback URL: {{ `${url}/api/gh/cb` }}</FormInfo>
<FormInput v-model:value="githubClientId"> <FormInput v-model="githubClientId">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
Client ID Client ID
</FormInput> </FormInput>
<FormInput v-model:value="githubClientSecret"> <FormInput v-model="githubClientSecret">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
Client Secret Client Secret
</FormInput> </FormInput>

View file

@ -1,19 +1,19 @@
<template> <template>
<FormBase> <FormBase>
<FormSuspense :p="init"> <FormSuspense :p="init">
<FormSwitch v-model:value="enableTwitterIntegration"> <FormSwitch v-model="enableTwitterIntegration">
{{ $ts.enable }} {{ $ts.enable }}
</FormSwitch> </FormSwitch>
<template v-if="enableTwitterIntegration"> <template v-if="enableTwitterIntegration">
<FormInfo>Callback URL: {{ `${url}/api/tw/cb` }}</FormInfo> <FormInfo>Callback URL: {{ `${url}/api/tw/cb` }}</FormInfo>
<FormInput v-model:value="twitterConsumerKey"> <FormInput v-model="twitterConsumerKey">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
Consumer Key Consumer Key
</FormInput> </FormInput>
<FormInput v-model:value="twitterConsumerSecret"> <FormInput v-model="twitterConsumerSecret">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
Consumer Secret Consumer Secret
</FormInput> </FormInput>

View file

@ -1,59 +1,59 @@
<template> <template>
<FormBase> <FormBase>
<FormSuspense :p="init"> <FormSuspense :p="init">
<FormSwitch v-model:value="useObjectStorage">{{ $ts.useObjectStorage }}</FormSwitch> <FormSwitch v-model="useObjectStorage">{{ $ts.useObjectStorage }}</FormSwitch>
<template v-if="useObjectStorage"> <template v-if="useObjectStorage">
<FormInput v-model:value="objectStorageBaseUrl"> <FormInput v-model="objectStorageBaseUrl">
<span>{{ $ts.objectStorageBaseUrl }}</span> <span>{{ $ts.objectStorageBaseUrl }}</span>
<template #desc>{{ $ts.objectStorageBaseUrlDesc }}</template> <template #desc>{{ $ts.objectStorageBaseUrlDesc }}</template>
</FormInput> </FormInput>
<FormInput v-model:value="objectStorageBucket"> <FormInput v-model="objectStorageBucket">
<span>{{ $ts.objectStorageBucket }}</span> <span>{{ $ts.objectStorageBucket }}</span>
<template #desc>{{ $ts.objectStorageBucketDesc }}</template> <template #desc>{{ $ts.objectStorageBucketDesc }}</template>
</FormInput> </FormInput>
<FormInput v-model:value="objectStoragePrefix"> <FormInput v-model="objectStoragePrefix">
<span>{{ $ts.objectStoragePrefix }}</span> <span>{{ $ts.objectStoragePrefix }}</span>
<template #desc>{{ $ts.objectStoragePrefixDesc }}</template> <template #desc>{{ $ts.objectStoragePrefixDesc }}</template>
</FormInput> </FormInput>
<FormInput v-model:value="objectStorageEndpoint"> <FormInput v-model="objectStorageEndpoint">
<span>{{ $ts.objectStorageEndpoint }}</span> <span>{{ $ts.objectStorageEndpoint }}</span>
<template #desc>{{ $ts.objectStorageEndpointDesc }}</template> <template #desc>{{ $ts.objectStorageEndpointDesc }}</template>
</FormInput> </FormInput>
<FormInput v-model:value="objectStorageRegion"> <FormInput v-model="objectStorageRegion">
<span>{{ $ts.objectStorageRegion }}</span> <span>{{ $ts.objectStorageRegion }}</span>
<template #desc>{{ $ts.objectStorageRegionDesc }}</template> <template #desc>{{ $ts.objectStorageRegionDesc }}</template>
</FormInput> </FormInput>
<FormInput v-model:value="objectStorageAccessKey"> <FormInput v-model="objectStorageAccessKey">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
<span>Access key</span> <span>Access key</span>
</FormInput> </FormInput>
<FormInput v-model:value="objectStorageSecretKey"> <FormInput v-model="objectStorageSecretKey">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
<span>Secret key</span> <span>Secret key</span>
</FormInput> </FormInput>
<FormSwitch v-model:value="objectStorageUseSSL"> <FormSwitch v-model="objectStorageUseSSL">
{{ $ts.objectStorageUseSSL }} {{ $ts.objectStorageUseSSL }}
<template #desc>{{ $ts.objectStorageUseSSLDesc }}</template> <template #desc>{{ $ts.objectStorageUseSSLDesc }}</template>
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="objectStorageUseProxy"> <FormSwitch v-model="objectStorageUseProxy">
{{ $ts.objectStorageUseProxy }} {{ $ts.objectStorageUseProxy }}
<template #desc>{{ $ts.objectStorageUseProxyDesc }}</template> <template #desc>{{ $ts.objectStorageUseProxyDesc }}</template>
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="objectStorageSetPublicRead"> <FormSwitch v-model="objectStorageSetPublicRead">
{{ $ts.objectStorageSetPublicRead }} {{ $ts.objectStorageSetPublicRead }}
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="objectStorageS3ForcePathStyle"> <FormSwitch v-model="objectStorageS3ForcePathStyle">
s3ForcePathStyle s3ForcePathStyle
</FormSwitch> </FormSwitch>
</template> </template>

View file

@ -2,17 +2,17 @@
<FormBase> <FormBase>
<FormSuspense :p="init"> <FormSuspense :p="init">
<FormGroup> <FormGroup>
<FormInput v-model:value="summalyProxy"> <FormInput v-model="summalyProxy">
<template #prefix><i class="fas fa-link"></i></template> <template #prefix><i class="fas fa-link"></i></template>
Summaly Proxy URL Summaly Proxy URL
</FormInput> </FormInput>
</FormGroup> </FormGroup>
<FormGroup> <FormGroup>
<FormInput v-model:value="deeplAuthKey"> <FormInput v-model="deeplAuthKey">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
DeepL Auth Key DeepL Auth Key
</FormInput> </FormInput>
<FormSwitch v-model:value="deeplIsPro"> <FormSwitch v-model="deeplIsPro">
Pro account Pro account
</FormSwitch> </FormSwitch>
</FormGroup> </FormGroup>

View file

@ -8,7 +8,7 @@
<template #suffix v-else>{{ $ts.none }} ({{ $ts.notRecommended }})</template> <template #suffix v-else>{{ $ts.none }} ({{ $ts.notRecommended }})</template>
</FormLink> </FormLink>
<FormSwitch v-model:value="enableRegistration">{{ $ts.enableRegistration }}</FormSwitch> <FormSwitch v-model="enableRegistration">{{ $ts.enableRegistration }}</FormSwitch>
<FormButton @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton> <FormButton @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton>
</FormSuspense> </FormSuspense>

View file

@ -1,18 +1,18 @@
<template> <template>
<FormBase> <FormBase>
<FormSuspense :p="init"> <FormSuspense :p="init">
<FormSwitch v-model:value="enableServiceWorker"> <FormSwitch v-model="enableServiceWorker">
{{ $ts.enableServiceworker }} {{ $ts.enableServiceworker }}
<template #desc>{{ $ts.serviceworkerInfo }}</template> <template #desc>{{ $ts.serviceworkerInfo }}</template>
</FormSwitch> </FormSwitch>
<template v-if="enableServiceWorker"> <template v-if="enableServiceWorker">
<FormInput v-model:value="swPublicKey"> <FormInput v-model="swPublicKey">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
Public key Public key
</FormInput> </FormInput>
<FormInput v-model:value="swPrivateKey"> <FormInput v-model="swPrivateKey">
<template #prefix><i class="fas fa-key"></i></template> <template #prefix><i class="fas fa-key"></i></template>
Private key Private key
</FormInput> </FormInput>

View file

@ -1,50 +1,50 @@
<template> <template>
<FormBase> <FormBase>
<FormSuspense :p="init"> <FormSuspense :p="init">
<FormInput v-model:value="name"> <FormInput v-model="name">
<span>{{ $ts.instanceName }}</span> <span>{{ $ts.instanceName }}</span>
</FormInput> </FormInput>
<FormTextarea v-model:value="description"> <FormTextarea v-model="description">
<span>{{ $ts.instanceDescription }}</span> <span>{{ $ts.instanceDescription }}</span>
</FormTextarea> </FormTextarea>
<FormInput v-model:value="iconUrl"> <FormInput v-model="iconUrl">
<template #prefix><i class="fas fa-link"></i></template> <template #prefix><i class="fas fa-link"></i></template>
<span>{{ $ts.iconUrl }}</span> <span>{{ $ts.iconUrl }}</span>
</FormInput> </FormInput>
<FormInput v-model:value="bannerUrl"> <FormInput v-model="bannerUrl">
<template #prefix><i class="fas fa-link"></i></template> <template #prefix><i class="fas fa-link"></i></template>
<span>{{ $ts.bannerUrl }}</span> <span>{{ $ts.bannerUrl }}</span>
</FormInput> </FormInput>
<FormInput v-model:value="backgroundImageUrl"> <FormInput v-model="backgroundImageUrl">
<template #prefix><i class="fas fa-link"></i></template> <template #prefix><i class="fas fa-link"></i></template>
<span>{{ $ts.backgroundImageUrl }}</span> <span>{{ $ts.backgroundImageUrl }}</span>
</FormInput> </FormInput>
<FormInput v-model:value="tosUrl"> <FormInput v-model="tosUrl">
<template #prefix><i class="fas fa-link"></i></template> <template #prefix><i class="fas fa-link"></i></template>
<span>{{ $ts.tosUrl }}</span> <span>{{ $ts.tosUrl }}</span>
</FormInput> </FormInput>
<FormInput v-model:value="maintainerName"> <FormInput v-model="maintainerName">
<span>{{ $ts.maintainerName }}</span> <span>{{ $ts.maintainerName }}</span>
</FormInput> </FormInput>
<FormInput v-model:value="maintainerEmail" type="email"> <FormInput v-model="maintainerEmail" type="email">
<template #prefix><i class="fas fa-envelope"></i></template> <template #prefix><i class="fas fa-envelope"></i></template>
<span>{{ $ts.maintainerEmail }}</span> <span>{{ $ts.maintainerEmail }}</span>
</FormInput> </FormInput>
<FormInput v-model:value="maxNoteTextLength" type="number"> <FormInput v-model="maxNoteTextLength" type="number">
<template #prefix><i class="fas fa-pencil-alt"></i></template> <template #prefix><i class="fas fa-pencil-alt"></i></template>
<span>{{ $ts.maxNoteTextLength }}</span> <span>{{ $ts.maxNoteTextLength }}</span>
</FormInput> </FormInput>
<FormSwitch v-model:value="enableLocalTimeline">{{ $ts.enableLocalTimeline }}</FormSwitch> <FormSwitch v-model="enableLocalTimeline">{{ $ts.enableLocalTimeline }}</FormSwitch>
<FormSwitch v-model:value="enableGlobalTimeline">{{ $ts.enableGlobalTimeline }}</FormSwitch> <FormSwitch v-model="enableGlobalTimeline">{{ $ts.enableGlobalTimeline }}</FormSwitch>
<FormInfo>{{ $ts.disablingTimelinesInfo }}</FormInfo> <FormInfo>{{ $ts.disablingTimelinesInfo }}</FormInfo>
<FormButton @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton> <FormButton @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton>

View file

@ -1,7 +1,7 @@
<template> <template>
<div class=""> <div class="">
<div class="_section" style="padding: 0;"> <div class="_section" style="padding: 0;">
<MkTab v-model:value="tab"> <MkTab v-model="tab">
<option value="owned">{{ $ts.ownedGroups }}</option> <option value="owned">{{ $ts.ownedGroups }}</option>
<option value="joined">{{ $ts.joinedGroups }}</option> <option value="joined">{{ $ts.joinedGroups }}</option>
<option value="invites"><i class="fas fa-envelope-open-text"></i> {{ $ts.invites }}</option> <option value="invites"><i class="fas fa-envelope-open-text"></i> {{ $ts.invites }}</option>

View file

@ -19,7 +19,7 @@
</optgroup> </optgroup>
</MkSelect> </MkSelect>
<XBlocks class="children" v-model:value="value.children" :hpml="hpml"/> <XBlocks class="children" v-model="value.children" :hpml="hpml"/>
</section> </section>
</XContainer> </XContainer>
</template> </template>

View file

@ -11,7 +11,7 @@
</template> </template>
<section class="ilrvjyvi"> <section class="ilrvjyvi">
<XBlocks class="children" v-model:value="value.children" :hpml="hpml"/> <XBlocks class="children" v-model="value.children" :hpml="hpml"/>
</section> </section>
</XContainer> </XContainer>
</template> </template>

View file

@ -32,7 +32,7 @@ export default defineComponent({
}, },
props: { props: {
value: { modelValue: {
type: Array, type: Array,
required: true required: true
}, },
@ -41,15 +41,15 @@ export default defineComponent({
}, },
}, },
emits: ['update:value'], emits: ['update:modelValue'],
computed: { computed: {
blocks: { blocks: {
get() { get() {
return this.value; return this.modelValue;
}, },
set(value) { set(value) {
this.$emit('update:value', value); this.$emit('update:modelValue', value);
} }
} }
}, },
@ -62,17 +62,16 @@ export default defineComponent({
v, v,
...this.blocks.slice(i + 1) ...this.blocks.slice(i + 1)
]; ];
this.$emit('update:value', newValue); this.$emit('update:modelValue', newValue);
}, },
removeItem(el) { removeItem(el) {
console.log(el);
const i = this.blocks.findIndex(x => x.id === el.id); const i = this.blocks.findIndex(x => x.id === el.id);
const newValue = [ const newValue = [
...this.blocks.slice(0, i), ...this.blocks.slice(0, i),
...this.blocks.slice(i + 1) ...this.blocks.slice(i + 1)
]; ];
this.$emit('update:value', newValue); this.$emit('update:modelValue', newValue);
}, },
} }
}); });

View file

@ -7,23 +7,23 @@
</button> </button>
</template> </template>
<section v-if="value.type === null" class="pbglfege" @click="changeType()"> <section v-if="modelValue.type === null" class="pbglfege" @click="changeType()">
{{ $ts._pages.script.emptySlot }} {{ $ts._pages.script.emptySlot }}
</section> </section>
<section v-else-if="value.type === 'text'" class="tbwccoaw"> <section v-else-if="modelValue.type === 'text'" class="tbwccoaw">
<input v-model="value.value"/> <input v-model="modelValue.value"/>
</section> </section>
<section v-else-if="value.type === 'multiLineText'" class="tbwccoaw"> <section v-else-if="modelValue.type === 'multiLineText'" class="tbwccoaw">
<textarea v-model="value.value"></textarea> <textarea v-model="modelValue.value"></textarea>
</section> </section>
<section v-else-if="value.type === 'textList'" class="tbwccoaw"> <section v-else-if="modelValue.type === 'textList'" class="tbwccoaw">
<textarea v-model="value.value" :placeholder="$ts._pages.script.blocks._textList.info"></textarea> <textarea v-model="modelValue.value" :placeholder="$ts._pages.script.blocks._textList.info"></textarea>
</section> </section>
<section v-else-if="value.type === 'number'" class="tbwccoaw"> <section v-else-if="modelValue.type === 'number'" class="tbwccoaw">
<input v-model="value.value" type="number"/> <input v-model="modelValue.value" type="number"/>
</section> </section>
<section v-else-if="value.type === 'ref'" class="hpdwcrvs"> <section v-else-if="modelValue.type === 'ref'" class="hpdwcrvs">
<select v-model="value.value"> <select v-model="modelValue.value">
<option v-for="v in hpml.getVarsByType(getExpectedType ? getExpectedType() : null).filter(x => x.name !== name)" :value="v.name">{{ v.name }}</option> <option v-for="v in hpml.getVarsByType(getExpectedType ? getExpectedType() : null).filter(x => x.name !== name)" :value="v.name">{{ v.name }}</option>
<optgroup :label="$ts._pages.script.argVariables"> <optgroup :label="$ts._pages.script.argVariables">
<option v-for="v in fnSlots" :value="v.name">{{ v.name }}</option> <option v-for="v in fnSlots" :value="v.name">{{ v.name }}</option>
@ -36,21 +36,21 @@
</optgroup> </optgroup>
</select> </select>
</section> </section>
<section v-else-if="value.type === 'aiScriptVar'" class="tbwccoaw"> <section v-else-if="modelValue.type === 'aiScriptVar'" class="tbwccoaw">
<input v-model="value.value"/> <input v-model="modelValue.value"/>
</section> </section>
<section v-else-if="value.type === 'fn'" class="" style="padding:0 16px 16px 16px;"> <section v-else-if="modelValue.type === 'fn'" class="" style="padding:0 16px 16px 16px;">
<MkTextarea v-model="slots"> <MkTextarea v-model="slots">
<template #label>{{ $ts._pages.script.blocks._fn.slots }}</template> <template #label>{{ $ts._pages.script.blocks._fn.slots }}</template>
<template #caption>{{ $t('_pages.script.blocks._fn.slots-info') }}</template> <template #caption>{{ $t('_pages.script.blocks._fn.slots-info') }}</template>
</MkTextarea> </MkTextarea>
<XV v-if="value.value.expression" v-model:value="value.value.expression" :title="$t(`_pages.script.blocks._fn.arg1`)" :get-expected-type="() => null" :hpml="hpml" :fn-slots="value.value.slots" :name="name"/> <XV v-if="modelValue.value.expression" v-model="modelValue.value.expression" :title="$t(`_pages.script.blocks._fn.arg1`)" :get-expected-type="() => null" :hpml="hpml" :fn-slots="value.value.slots" :name="name"/>
</section> </section>
<section v-else-if="value.type.startsWith('fn:')" class="" style="padding:16px;"> <section v-else-if="modelValue.type.startsWith('fn:')" class="" style="padding:16px;">
<XV v-for="(x, i) in value.args" v-model:value="value.args[i]" :title="hpml.getVarByName(value.type.split(':')[1]).value.slots[i].name" :get-expected-type="() => null" :hpml="hpml" :name="name" :key="i"/> <XV v-for="(x, i) in modelValue.args" v-model="value.args[i]" :title="hpml.getVarByName(modelValue.type.split(':')[1]).value.slots[i].name" :get-expected-type="() => null" :hpml="hpml" :name="name" :key="i"/>
</section> </section>
<section v-else class="" style="padding:16px;"> <section v-else class="" style="padding:16px;">
<XV v-for="(x, i) in value.args" v-model:value="value.args[i]" :title="$t(`_pages.script.blocks._${value.type}.arg${i + 1}`)" :get-expected-type="() => _getExpectedType(i)" :hpml="hpml" :name="name" :fn-slots="fnSlots" :key="i"/> <XV v-for="(x, i) in modelValue.args" v-model="modelValue.args[i]" :title="$t(`_pages.script.blocks._${modelValue.type}.arg${i + 1}`)" :get-expected-type="() => _getExpectedType(i)" :hpml="hpml" :name="name" :fn-slots="fnSlots" :key="i"/>
</section> </section>
</XContainer> </XContainer>
</template> </template>
@ -78,7 +78,7 @@ export default defineComponent({
required: false, required: false,
default: null default: null
}, },
value: { modelValue: {
required: true required: true
}, },
title: { title: {
@ -113,21 +113,21 @@ export default defineComponent({
computed: { computed: {
icon(): any { icon(): any {
if (this.value.type === null) return null; if (this.modelValue.type === null) return null;
if (this.value.type.startsWith('fn:')) return 'fas fa-plug'; if (this.modelValue.type.startsWith('fn:')) return 'fas fa-plug';
return blockDefs.find(x => x.type === this.value.type).icon; return blockDefs.find(x => x.type === this.modelValue.type).icon;
}, },
typeText(): any { typeText(): any {
if (this.value.type === null) return null; if (this.modelValue.type === null) return null;
if (this.value.type.startsWith('fn:')) return this.value.type.split(':')[1]; if (this.modelValue.type.startsWith('fn:')) return this.modelValue.type.split(':')[1];
return this.$t(`_pages.script.blocks.${this.value.type}`); return this.$t(`_pages.script.blocks.${this.modelValue.type}`);
}, },
}, },
watch: { watch: {
slots: { slots: {
handler() { handler() {
this.value.value.slots = this.slots.split('\n').map(x => ({ this.modelValue.value.slots = this.slots.split('\n').map(x => ({
name: x, name: x,
type: null type: null
})); }));
@ -137,24 +137,24 @@ export default defineComponent({
}, },
created() { created() {
if (this.value.value == null) this.value.value = null; if (this.modelValue.value == null) this.modelValue.value = null;
if (this.value.value && this.value.value.slots) this.slots = this.value.value.slots.map(x => x.name).join('\n'); if (this.modelValue.value && this.modelValue.value.slots) this.slots = this.modelValue.value.slots.map(x => x.name).join('\n');
this.$watch(() => this.value.type, (t) => { this.$watch(() => this.modelValue.type, (t) => {
this.warn = null; this.warn = null;
if (this.value.type === 'fn') { if (this.modelValue.type === 'fn') {
const id = uuid(); const id = uuid();
this.value.value = { this.modelValue.value = {
slots: [], slots: [],
expression: { id, type: null } expression: { id, type: null }
}; };
return; return;
} }
if (this.value.type && this.value.type.startsWith('fn:')) { if (this.modelValue.type && this.modelValue.type.startsWith('fn:')) {
const fnName = this.value.type.split(':')[1]; const fnName = this.modelValue.type.split(':')[1];
const fn = this.hpml.getVarByName(fnName); const fn = this.hpml.getVarByName(fnName);
const empties = []; const empties = [];
@ -162,29 +162,29 @@ export default defineComponent({
const id = uuid(); const id = uuid();
empties.push({ id, type: null }); empties.push({ id, type: null });
} }
this.value.args = empties; this.modelValue.args = empties;
return; return;
} }
if (isLiteralValue(this.value)) return; if (isLiteralValue(this.modelValue)) return;
const empties = []; const empties = [];
for (let i = 0; i < funcDefs[this.value.type].in.length; i++) { for (let i = 0; i < funcDefs[this.modelValue.type].in.length; i++) {
const id = uuid(); const id = uuid();
empties.push({ id, type: null }); empties.push({ id, type: null });
} }
this.value.args = empties; this.modelValue.args = empties;
for (let i = 0; i < funcDefs[this.value.type].in.length; i++) { for (let i = 0; i < funcDefs[this.modelValue.type].in.length; i++) {
const inType = funcDefs[this.value.type].in[i]; const inType = funcDefs[this.modelValue.type].in[i];
if (typeof inType !== 'number') { if (typeof inType !== 'number') {
if (inType === 'number') this.value.args[i].type = 'number'; if (inType === 'number') this.modelValue.args[i].type = 'number';
if (inType === 'string') this.value.args[i].type = 'text'; if (inType === 'string') this.modelValue.args[i].type = 'text';
} }
} }
}); });
this.$watch(() => this.value.args, (args) => { this.$watch(() => this.modelValue.args, (args) => {
if (args == null) { if (args == null) {
this.warn = null; this.warn = null;
return; return;
@ -202,8 +202,8 @@ export default defineComponent({
}); });
this.$watch(() => this.hpml.variables, () => { this.$watch(() => this.hpml.variables, () => {
if (this.type != null && this.value) { if (this.type != null && this.modelValue) {
this.error = this.hpml.typeCheck(this.value); this.error = this.hpml.typeCheck(this.modelValue);
} }
}, { }, {
deep: true deep: true
@ -221,11 +221,11 @@ export default defineComponent({
showCancelButton: true showCancelButton: true
}); });
if (canceled) return; if (canceled) return;
this.value.type = type; this.modelValue.type = type;
}, },
_getExpectedType(slot: number) { _getExpectedType(slot: number) {
return this.hpml.getExpectedType(this.value, slot); return this.hpml.getExpectedType(this.modelValue, slot);
} }
} }
}); });

View file

@ -47,7 +47,7 @@
<MkContainer :foldable="true" :expanded="true" class="_gap"> <MkContainer :foldable="true" :expanded="true" class="_gap">
<template #header><i class="fas fa-sticky-note"></i> {{ $ts._pages.contents }}</template> <template #header><i class="fas fa-sticky-note"></i> {{ $ts._pages.contents }}</template>
<div style="padding: 16px;"> <div style="padding: 16px;">
<XBlocks class="content" v-model:value="content" :hpml="hpml"/> <XBlocks class="content" v-model="content" :hpml="hpml"/>
<MkButton @click="add()" v-if="!readonly"><i class="fas fa-plus"></i></MkButton> <MkButton @click="add()" v-if="!readonly"><i class="fas fa-plus"></i></MkButton>
</div> </div>

View file

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<MkTab v-model:value="tab" v-if="$i"> <MkTab v-model="tab" v-if="$i">
<option value="featured"><i class="fas fa-fire-alt"></i> {{ $ts._pages.featured }}</option> <option value="featured"><i class="fas fa-fire-alt"></i> {{ $ts._pages.featured }}</option>
<option value="my"><i class="fas fa-edit"></i> {{ $ts._pages.my }}</option> <option value="my"><i class="fas fa-edit"></i> {{ $ts._pages.my }}</option>
<option value="liked"><i class="fas fa-heart"></i> {{ $ts._pages.liked }}</option> <option value="liked"><i class="fas fa-heart"></i> {{ $ts._pages.liked }}</option>

View file

@ -1,6 +1,6 @@
<template> <template>
<FormBase v-if="token"> <FormBase v-if="token">
<FormInput v-model:value="password" type="password"> <FormInput v-model="password" type="password">
<template #prefix><i class="fas fa-lock"></i></template> <template #prefix><i class="fas fa-lock"></i></template>
<span>{{ $ts.newPassword }}</span> <span>{{ $ts.newPassword }}</span>
</FormInput> </FormInput>

View file

@ -2,7 +2,7 @@
<FormBase> <FormBase>
<FormInfo warn>{{ $ts.customCssWarn }}</FormInfo> <FormInfo warn>{{ $ts.customCssWarn }}</FormInfo>
<FormTextarea v-model:value="localCustomCss" manual-save tall class="_monospace" style="tab-size: 2;"> <FormTextarea v-model="localCustomCss" manual-save tall class="_monospace" style="tab-size: 2;">
<span>{{ $ts.local }}</span> <span>{{ $ts.local }}</span>
</FormTextarea> </FormTextarea>
</FormBase> </FormBase>

View file

@ -2,10 +2,10 @@
<FormBase> <FormBase>
<FormGroup> <FormGroup>
<template #label>{{ $ts.defaultNavigationBehaviour }}</template> <template #label>{{ $ts.defaultNavigationBehaviour }}</template>
<FormSwitch v-model:value="navWindow">{{ $ts.openInWindow }}</FormSwitch> <FormSwitch v-model="navWindow">{{ $ts.openInWindow }}</FormSwitch>
</FormGroup> </FormGroup>
<FormSwitch v-model:value="alwaysShowMainColumn">{{ $ts._deck.alwaysShowMainColumn }}</FormSwitch> <FormSwitch v-model="alwaysShowMainColumn">{{ $ts._deck.alwaysShowMainColumn }}</FormSwitch>
<FormRadios v-model="columnAlign"> <FormRadios v-model="columnAlign">
<template #desc>{{ $ts._deck.columnAlign }}</template> <template #desc>{{ $ts._deck.columnAlign }}</template>
@ -20,7 +20,7 @@
<option :value="48">{{ $ts.wide }}</option> <option :value="48">{{ $ts.wide }}</option>
</FormRadios> </FormRadios>
<FormInput v-model:value="columnMargin" type="number"> <FormInput v-model="columnMargin" type="number">
<span>{{ $ts._deck.columnMargin }}</span> <span>{{ $ts._deck.columnMargin }}</span>
<template #suffix>px</template> <template #suffix>px</template>
</FormInput> </FormInput>

View file

@ -1,7 +1,7 @@
<template> <template>
<FormBase> <FormBase>
<FormGroup> <FormGroup>
<FormInput v-model:value="emailAddress" type="email"> <FormInput v-model="emailAddress" type="email">
{{ $ts.emailAddress }} {{ $ts.emailAddress }}
<template #desc v-if="$i.email && !$i.emailVerified">{{ $ts.verificationEmailSent }}</template> <template #desc v-if="$i.email && !$i.emailVerified">{{ $ts.verificationEmailSent }}</template>
<template #desc v-else-if="emailAddress === $i.email && $i.emailVerified">{{ $ts.emailVerified }}</template> <template #desc v-else-if="emailAddress === $i.email && $i.emailVerified">{{ $ts.emailVerified }}</template>

View file

@ -1,22 +1,22 @@
<template> <template>
<FormBase> <FormBase>
<FormGroup> <FormGroup>
<FormSwitch v-model:value="mention"> <FormSwitch v-model="mention">
{{ $ts._notification._types.mention }} {{ $ts._notification._types.mention }}
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="reply"> <FormSwitch v-model="reply">
{{ $ts._notification._types.reply }} {{ $ts._notification._types.reply }}
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="quote"> <FormSwitch v-model="quote">
{{ $ts._notification._types.quote }} {{ $ts._notification._types.quote }}
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="follow"> <FormSwitch v-model="follow">
{{ $ts._notification._types.follow }} {{ $ts._notification._types.follow }}
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="receiveFollowRequest"> <FormSwitch v-model="receiveFollowRequest">
{{ $ts._notification._types.receiveFollowRequest }} {{ $ts._notification._types.receiveFollowRequest }}
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="groupInvited"> <FormSwitch v-model="groupInvited">
{{ $ts._notification._types.groupInvited }} {{ $ts._notification._types.groupInvited }}
</FormSwitch> </FormSwitch>
</FormGroup> </FormGroup>

View file

@ -14,7 +14,7 @@
{{ $ts.emailNotification }} {{ $ts.emailNotification }}
</FormLink> </FormLink>
<FormSwitch :value="$i.receiveAnnouncementEmail" @update:value="onChangeReceiveAnnouncementEmail"> <FormSwitch :value="$i.receiveAnnouncementEmail" @update:modelValue="onChangeReceiveAnnouncementEmail">
{{ $ts.receiveAnnouncementFromInstance }} {{ $ts.receiveAnnouncementFromInstance }}
</FormSwitch> </FormSwitch>
</FormBase> </FormBase>

View file

@ -1,8 +1,8 @@
<template> <template>
<FormBase> <FormBase>
<FormSwitch v-model:value="showFixedPostForm">{{ $ts.showFixedPostForm }}</FormSwitch> <FormSwitch v-model="showFixedPostForm">{{ $ts.showFixedPostForm }}</FormSwitch>
<FormSelect v-model:value="lang"> <FormSelect v-model="lang">
<template #label>{{ $ts.uiLanguage }}</template> <template #label>{{ $ts.uiLanguage }}</template>
<option v-for="x in langs" :value="x[0]" :key="x[0]">{{ x[1] }}</option> <option v-for="x in langs" :value="x[0]" :key="x[0]">{{ x[1] }}</option>
<template #caption> <template #caption>
@ -16,13 +16,13 @@
<FormGroup> <FormGroup>
<template #label>{{ $ts.behavior }}</template> <template #label>{{ $ts.behavior }}</template>
<FormSwitch v-model:value="imageNewTab">{{ $ts.openImageInNewTab }}</FormSwitch> <FormSwitch v-model="imageNewTab">{{ $ts.openImageInNewTab }}</FormSwitch>
<FormSwitch v-model:value="enableInfiniteScroll">{{ $ts.enableInfiniteScroll }}</FormSwitch> <FormSwitch v-model="enableInfiniteScroll">{{ $ts.enableInfiniteScroll }}</FormSwitch>
<FormSwitch v-model:value="useReactionPickerForContextMenu">{{ $ts.useReactionPickerForContextMenu }}</FormSwitch> <FormSwitch v-model="useReactionPickerForContextMenu">{{ $ts.useReactionPickerForContextMenu }}</FormSwitch>
<FormSwitch v-model:value="disablePagesScript">{{ $ts.disablePagesScript }}</FormSwitch> <FormSwitch v-model="disablePagesScript">{{ $ts.disablePagesScript }}</FormSwitch>
</FormGroup> </FormGroup>
<FormSelect v-model:value="serverDisconnectedBehavior"> <FormSelect v-model="serverDisconnectedBehavior">
<template #label>{{ $ts.whenServerDisconnected }}</template> <template #label>{{ $ts.whenServerDisconnected }}</template>
<option value="reload">{{ $ts._serverDisconnectedBehavior.reload }}</option> <option value="reload">{{ $ts._serverDisconnectedBehavior.reload }}</option>
<option value="dialog">{{ $ts._serverDisconnectedBehavior.dialog }}</option> <option value="dialog">{{ $ts._serverDisconnectedBehavior.dialog }}</option>
@ -31,22 +31,22 @@
<FormGroup> <FormGroup>
<template #label>{{ $ts.appearance }}</template> <template #label>{{ $ts.appearance }}</template>
<FormSwitch v-model:value="disableAnimatedMfm">{{ $ts.disableAnimatedMfm }}</FormSwitch> <FormSwitch v-model="disableAnimatedMfm">{{ $ts.disableAnimatedMfm }}</FormSwitch>
<FormSwitch v-model:value="reduceAnimation">{{ $ts.reduceUiAnimation }}</FormSwitch> <FormSwitch v-model="reduceAnimation">{{ $ts.reduceUiAnimation }}</FormSwitch>
<FormSwitch v-model:value="useBlurEffect">{{ $ts.useBlurEffect }}</FormSwitch> <FormSwitch v-model="useBlurEffect">{{ $ts.useBlurEffect }}</FormSwitch>
<FormSwitch v-model:value="useBlurEffectForModal">{{ $ts.useBlurEffectForModal }}</FormSwitch> <FormSwitch v-model="useBlurEffectForModal">{{ $ts.useBlurEffectForModal }}</FormSwitch>
<FormSwitch v-model:value="showGapBetweenNotesInTimeline">{{ $ts.showGapBetweenNotesInTimeline }}</FormSwitch> <FormSwitch v-model="showGapBetweenNotesInTimeline">{{ $ts.showGapBetweenNotesInTimeline }}</FormSwitch>
<FormSwitch v-model:value="loadRawImages">{{ $ts.loadRawImages }}</FormSwitch> <FormSwitch v-model="loadRawImages">{{ $ts.loadRawImages }}</FormSwitch>
<FormSwitch v-model:value="disableShowingAnimatedImages">{{ $ts.disableShowingAnimatedImages }}</FormSwitch> <FormSwitch v-model="disableShowingAnimatedImages">{{ $ts.disableShowingAnimatedImages }}</FormSwitch>
<FormSwitch v-model:value="squareAvatars">{{ $ts.squareAvatars }}</FormSwitch> <FormSwitch v-model="squareAvatars">{{ $ts.squareAvatars }}</FormSwitch>
<FormSwitch v-model:value="useSystemFont">{{ $ts.useSystemFont }}</FormSwitch> <FormSwitch v-model="useSystemFont">{{ $ts.useSystemFont }}</FormSwitch>
<FormSwitch v-model:value="useOsNativeEmojis">{{ $ts.useOsNativeEmojis }} <FormSwitch v-model="useOsNativeEmojis">{{ $ts.useOsNativeEmojis }}
<div><Mfm text="🍮🍦🍭🍩🍰🍫🍬🥞🍪" :key="useOsNativeEmojis"/></div> <div><Mfm text="🍮🍦🍭🍩🍰🍫🍬🥞🍪" :key="useOsNativeEmojis"/></div>
</FormSwitch> </FormSwitch>
</FormGroup> </FormGroup>
<FormGroup> <FormGroup>
<FormSwitch v-model:value="aiChanMode">{{ $ts.aiChanMode }}</FormSwitch> <FormSwitch v-model="aiChanMode">{{ $ts.aiChanMode }}</FormSwitch>
</FormGroup> </FormGroup>
<FormRadios v-model="fontSize"> <FormRadios v-model="fontSize">
@ -57,14 +57,14 @@
<option value="veryLarge"><span style="font-size: 20px;">Aa</span></option> <option value="veryLarge"><span style="font-size: 20px;">Aa</span></option>
</FormRadios> </FormRadios>
<FormSelect v-model:value="instanceTicker"> <FormSelect v-model="instanceTicker">
<template #label>{{ $ts.instanceTicker }}</template> <template #label>{{ $ts.instanceTicker }}</template>
<option value="none">{{ $ts._instanceTicker.none }}</option> <option value="none">{{ $ts._instanceTicker.none }}</option>
<option value="remote">{{ $ts._instanceTicker.remote }}</option> <option value="remote">{{ $ts._instanceTicker.remote }}</option>
<option value="always">{{ $ts._instanceTicker.always }}</option> <option value="always">{{ $ts._instanceTicker.always }}</option>
</FormSelect> </FormSelect>
<FormSelect v-model:value="nsfw"> <FormSelect v-model="nsfw">
<template #label>{{ $ts.nsfw }}</template> <template #label>{{ $ts.nsfw }}</template>
<option value="respect">{{ $ts._nsfw.respect }}</option> <option value="respect">{{ $ts._nsfw.respect }}</option>
<option value="ignore">{{ $ts._nsfw.ignore }}</option> <option value="ignore">{{ $ts._nsfw.ignore }}</option>
@ -73,10 +73,10 @@
<FormGroup> <FormGroup>
<template #label>{{ $ts.defaultNavigationBehaviour }}</template> <template #label>{{ $ts.defaultNavigationBehaviour }}</template>
<FormSwitch v-model:value="defaultSideView">{{ $ts.openInSideView }}</FormSwitch> <FormSwitch v-model="defaultSideView">{{ $ts.openInSideView }}</FormSwitch>
</FormGroup> </FormGroup>
<FormSelect v-model:value="chatOpenBehavior"> <FormSelect v-model="chatOpenBehavior">
<template #label>{{ $ts.chatOpenBehavior }}</template> <template #label>{{ $ts.chatOpenBehavior }}</template>
<option value="page">{{ $ts.showInPage }}</option> <option value="page">{{ $ts.showInPage }}</option>
<option value="window">{{ $ts.openInWindow }}</option> <option value="window">{{ $ts.openInWindow }}</option>

View file

@ -1,6 +1,6 @@
<template> <template>
<FormBase> <FormBase>
<FormTextarea v-model:value="items" tall manual-save> <FormTextarea v-model="items" tall manual-save>
<span>{{ $ts.menu }}</span> <span>{{ $ts.menu }}</span>
<template #desc><button class="_textButton" @click="addItem">{{ $ts.addItem }}</button></template> <template #desc><button class="_textButton" @click="addItem">{{ $ts.addItem }}</button></template>
</FormTextarea> </FormTextarea>

View file

@ -1,6 +1,6 @@
<template> <template>
<FormBase> <FormBase>
<MkTab v-model:value="tab" style="margin-bottom: var(--margin);"> <MkTab v-model="tab" style="margin-bottom: var(--margin);">
<option value="mute">{{ $ts.mutedUsers }}</option> <option value="mute">{{ $ts.mutedUsers }}</option>
<option value="block">{{ $ts.blockedUsers }}</option> <option value="block">{{ $ts.blockedUsers }}</option>
</MkTab> </MkTab>

View file

@ -2,18 +2,18 @@
<FormBase> <FormBase>
<FormLink to="/settings/update">Misskey Update</FormLink> <FormLink to="/settings/update">Misskey Update</FormLink>
<FormSwitch :value="$i.injectFeaturedNote" @update:value="onChangeInjectFeaturedNote"> <FormSwitch :value="$i.injectFeaturedNote" @update:modelValue="onChangeInjectFeaturedNote">
{{ $ts.showFeaturedNotesInTimeline }} {{ $ts.showFeaturedNotesInTimeline }}
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="reportError">{{ $ts.sendErrorReports }}<template #desc>{{ $ts.sendErrorReportsDescription }}</template></FormSwitch> <FormSwitch v-model="reportError">{{ $ts.sendErrorReports }}<template #desc>{{ $ts.sendErrorReportsDescription }}</template></FormSwitch>
<FormLink to="/settings/account-info">{{ $ts.accountInfo }}</FormLink> <FormLink to="/settings/account-info">{{ $ts.accountInfo }}</FormLink>
<FormLink to="/settings/experimental-features">{{ $ts.experimentalFeatures }}</FormLink> <FormLink to="/settings/experimental-features">{{ $ts.experimentalFeatures }}</FormLink>
<FormGroup> <FormGroup>
<template #label>{{ $ts.developer }}</template> <template #label>{{ $ts.developer }}</template>
<FormSwitch v-model:value="debug" @update:value="changeDebug"> <FormSwitch v-model="debug" @update:modelValue="changeDebug">
DEBUG MODE DEBUG MODE
</FormSwitch> </FormSwitch>
<template v-if="debug"> <template v-if="debug">

View file

@ -3,7 +3,7 @@
<FormInfo warn>{{ $ts._plugin.installWarn }}</FormInfo> <FormInfo warn>{{ $ts._plugin.installWarn }}</FormInfo>
<FormGroup> <FormGroup>
<FormTextarea v-model:value="code" tall> <FormTextarea v-model="code" tall>
<span>{{ $ts.code }}</span> <span>{{ $ts.code }}</span>
</FormTextarea> </FormTextarea>
</FormGroup> </FormGroup>

View file

@ -3,7 +3,7 @@
<FormGroup v-for="plugin in plugins" :key="plugin.id"> <FormGroup v-for="plugin in plugins" :key="plugin.id">
<template #label><span style="display: flex;"><b>{{ plugin.name }}</b><span style="margin-left: auto;">v{{ plugin.version }}</span></span></template> <template #label><span style="display: flex;"><b>{{ plugin.name }}</b><span style="margin-left: auto;">v{{ plugin.version }}</span></span></template>
<FormSwitch :value="plugin.active" @update:value="changeActive(plugin, $event)">{{ $ts.makeActive }}</FormSwitch> <FormSwitch :value="plugin.active" @update:modelValue="changeActive(plugin, $event)">{{ $ts.makeActive }}</FormSwitch>
<div class="_debobigegoItem"> <div class="_debobigegoItem">
<div class="_debobigegoPanel" style="padding: 16px;"> <div class="_debobigegoPanel" style="padding: 16px;">
<div class="_keyValue"> <div class="_keyValue">

View file

@ -1,34 +1,34 @@
<template> <template>
<FormBase> <FormBase>
<FormGroup> <FormGroup>
<FormSwitch v-model:value="isLocked" @update:value="save()">{{ $ts.makeFollowManuallyApprove }}</FormSwitch> <FormSwitch v-model="isLocked" @update:modelValue="save()">{{ $ts.makeFollowManuallyApprove }}</FormSwitch>
<FormSwitch v-model:value="autoAcceptFollowed" :disabled="!isLocked" @update:value="save()">{{ $ts.autoAcceptFollowed }}</FormSwitch> <FormSwitch v-model="autoAcceptFollowed" :disabled="!isLocked" @update:modelValue="save()">{{ $ts.autoAcceptFollowed }}</FormSwitch>
<template #caption>{{ $ts.lockedAccountInfo }}</template> <template #caption>{{ $ts.lockedAccountInfo }}</template>
</FormGroup> </FormGroup>
<FormSwitch v-model:value="hideOnlineStatus" @update:value="save()"> <FormSwitch v-model="hideOnlineStatus" @update:modelValue="save()">
{{ $ts.hideOnlineStatus }} {{ $ts.hideOnlineStatus }}
<template #desc>{{ $ts.hideOnlineStatusDescription }}</template> <template #desc>{{ $ts.hideOnlineStatusDescription }}</template>
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="noCrawle" @update:value="save()"> <FormSwitch v-model="noCrawle" @update:modelValue="save()">
{{ $ts.noCrawle }} {{ $ts.noCrawle }}
<template #desc>{{ $ts.noCrawleDescription }}</template> <template #desc>{{ $ts.noCrawleDescription }}</template>
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="isExplorable" @update:value="save()"> <FormSwitch v-model="isExplorable" @update:modelValue="save()">
{{ $ts.makeExplorable }} {{ $ts.makeExplorable }}
<template #desc>{{ $ts.makeExplorableDescription }}</template> <template #desc>{{ $ts.makeExplorableDescription }}</template>
</FormSwitch> </FormSwitch>
<FormSwitch v-model:value="rememberNoteVisibility" @update:value="save()">{{ $ts.rememberNoteVisibility }}</FormSwitch> <FormSwitch v-model="rememberNoteVisibility" @update:modelValue="save()">{{ $ts.rememberNoteVisibility }}</FormSwitch>
<FormGroup v-if="!rememberNoteVisibility"> <FormGroup v-if="!rememberNoteVisibility">
<template #label>{{ $ts.defaultNoteVisibility }}</template> <template #label>{{ $ts.defaultNoteVisibility }}</template>
<FormSelect v-model:value="defaultNoteVisibility"> <FormSelect v-model="defaultNoteVisibility">
<option value="public">{{ $ts._visibility.public }}</option> <option value="public">{{ $ts._visibility.public }}</option>
<option value="home">{{ $ts._visibility.home }}</option> <option value="home">{{ $ts._visibility.home }}</option>
<option value="followers">{{ $ts._visibility.followers }}</option> <option value="followers">{{ $ts._visibility.followers }}</option>
<option value="specified">{{ $ts._visibility.specified }}</option> <option value="specified">{{ $ts._visibility.specified }}</option>
</FormSelect> </FormSelect>
<FormSwitch v-model:value="defaultNoteLocalOnly">{{ $ts._visibility.localOnly }}</FormSwitch> <FormSwitch v-model="defaultNoteLocalOnly">{{ $ts._visibility.localOnly }}</FormSwitch>
</FormGroup> </FormGroup>
<FormSwitch v-model:value="keepCw" @update:value="save()">{{ $ts.keepCw }}</FormSwitch> <FormSwitch v-model="keepCw" @update:modelValue="save()">{{ $ts.keepCw }}</FormSwitch>
</FormBase> </FormBase>
</template> </template>

View file

@ -8,26 +8,26 @@
<FormButton @click="changeBanner" primary>{{ $ts._profile.changeBanner }}</FormButton> <FormButton @click="changeBanner" primary>{{ $ts._profile.changeBanner }}</FormButton>
</FormGroup> </FormGroup>
<FormInput v-model:value="name" :max="30" manual-save> <FormInput v-model="name" :max="30" manual-save>
<span>{{ $ts._profile.name }}</span> <span>{{ $ts._profile.name }}</span>
</FormInput> </FormInput>
<FormTextarea v-model:value="description" :max="500" tall manual-save> <FormTextarea v-model="description" :max="500" tall manual-save>
<span>{{ $ts._profile.description }}</span> <span>{{ $ts._profile.description }}</span>
<template #desc>{{ $ts._profile.youCanIncludeHashtags }}</template> <template #desc>{{ $ts._profile.youCanIncludeHashtags }}</template>
</FormTextarea> </FormTextarea>
<FormInput v-model:value="location" manual-save> <FormInput v-model="location" manual-save>
<span>{{ $ts.location }}</span> <span>{{ $ts.location }}</span>
<template #prefix><i class="fas fa-map-marker-alt"></i></template> <template #prefix><i class="fas fa-map-marker-alt"></i></template>
</FormInput> </FormInput>
<FormInput v-model:value="birthday" type="date" manual-save> <FormInput v-model="birthday" type="date" manual-save>
<span>{{ $ts.birthday }}</span> <span>{{ $ts.birthday }}</span>
<template #prefix><i class="fas fa-birthday-cake"></i></template> <template #prefix><i class="fas fa-birthday-cake"></i></template>
</FormInput> </FormInput>
<FormSelect v-model:value="lang"> <FormSelect v-model="lang">
<template #label>{{ $ts.language }}</template> <template #label>{{ $ts.language }}</template>
<option v-for="x in langs" :value="x[0]" :key="x[0]">{{ x[1] }}</option> <option v-for="x in langs" :value="x[0]" :key="x[0]">{{ x[1] }}</option>
</FormSelect> </FormSelect>
@ -37,11 +37,11 @@
<template #caption>{{ $ts._profile.metadataDescription }}</template> <template #caption>{{ $ts._profile.metadataDescription }}</template>
</FormGroup> </FormGroup>
<FormSwitch v-model:value="isCat">{{ $ts.flagAsCat }}<template #desc>{{ $ts.flagAsCatDescription }}</template></FormSwitch> <FormSwitch v-model="isCat">{{ $ts.flagAsCat }}<template #desc>{{ $ts.flagAsCatDescription }}</template></FormSwitch>
<FormSwitch v-model:value="isBot">{{ $ts.flagAsBot }}<template #desc>{{ $ts.flagAsBotDescription }}</template></FormSwitch> <FormSwitch v-model="isBot">{{ $ts.flagAsBot }}<template #desc>{{ $ts.flagAsBotDescription }}</template></FormSwitch>
<FormSwitch v-model:value="alwaysMarkNsfw">{{ $ts.alwaysMarkSensitive }}</FormSwitch> <FormSwitch v-model="alwaysMarkNsfw">{{ $ts.alwaysMarkSensitive }}</FormSwitch>
</FormBase> </FormBase>
</template> </template>

View file

@ -19,7 +19,7 @@
</FormGroup> </FormGroup>
<FormGroup> <FormGroup>
<FormTextarea tall v-model:value="valueForEditor" class="_monospace" style="tab-size: 2;"> <FormTextarea tall v-model="valueForEditor" class="_monospace" style="tab-size: 2;">
<span>{{ $ts.value }} (JSON)</span> <span>{{ $ts.value }} (JSON)</span>
</FormTextarea> </FormTextarea>
<FormButton @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton> <FormButton @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton>

View file

@ -1,6 +1,6 @@
<template> <template>
<FormBase> <FormBase>
<FormRange v-model:value="masterVolume" :min="0" :max="1" :step="0.05"> <FormRange v-model="masterVolume" :min="0" :max="1" :step="0.05">
<template #label><i class="fas fa-volume-icon"></i> {{ $ts.masterVolume }}</template> <template #label><i class="fas fa-volume-icon"></i> {{ $ts.masterVolume }}</template>
</FormRange> </FormRange>

View file

@ -1,7 +1,7 @@
<template> <template>
<FormBase> <FormBase>
<FormGroup> <FormGroup>
<FormTextarea v-model:value="installThemeCode"> <FormTextarea v-model="installThemeCode">
<span>{{ $ts._theme.code }}</span> <span>{{ $ts._theme.code }}</span>
</FormTextarea> </FormTextarea>
<FormButton @click="() => preview(installThemeCode)" :disabled="installThemeCode == null" inline><i class="fas fa-eye"></i> {{ $ts.preview }}</FormButton> <FormButton @click="() => preview(installThemeCode)" :disabled="installThemeCode == null" inline><i class="fas fa-eye"></i> {{ $ts.preview }}</FormButton>

View file

@ -1,6 +1,6 @@
<template> <template>
<FormBase> <FormBase>
<FormSelect v-model:value="selectedThemeId"> <FormSelect v-model="selectedThemeId">
<template #label>{{ $ts.theme }}</template> <template #label>{{ $ts.theme }}</template>
<optgroup :label="$ts._theme.installedThemes"> <optgroup :label="$ts._theme.installedThemes">
<option v-for="x in installedThemes" :value="x.id" :key="x.id">{{ x.name }}</option> <option v-for="x in installedThemes" :value="x.id" :key="x.id">{{ x.name }}</option>

View file

@ -23,11 +23,11 @@
</div> </div>
</div> </div>
</div> </div>
<FormSwitch v-model:value="syncDeviceDarkMode">{{ $ts.syncDeviceDarkMode }}</FormSwitch> <FormSwitch v-model="syncDeviceDarkMode">{{ $ts.syncDeviceDarkMode }}</FormSwitch>
</FormGroup> </FormGroup>
<template v-if="darkMode"> <template v-if="darkMode">
<FormSelect v-model:value="darkThemeId"> <FormSelect v-model="darkThemeId">
<template #label>{{ $ts.themeForDarkMode }}</template> <template #label>{{ $ts.themeForDarkMode }}</template>
<optgroup :label="$ts.darkThemes"> <optgroup :label="$ts.darkThemes">
<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>
@ -36,7 +36,7 @@
<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>
</FormSelect> </FormSelect>
<FormSelect v-model:value="lightThemeId"> <FormSelect v-model="lightThemeId">
<template #label>{{ $ts.themeForLightMode }}</template> <template #label>{{ $ts.themeForLightMode }}</template>
<optgroup :label="$ts.lightThemes"> <optgroup :label="$ts.lightThemes">
<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>
@ -47,7 +47,7 @@
</FormSelect> </FormSelect>
</template> </template>
<template v-else> <template v-else>
<FormSelect v-model:value="lightThemeId"> <FormSelect v-model="lightThemeId">
<template #label>{{ $ts.themeForLightMode }}</template> <template #label>{{ $ts.themeForLightMode }}</template>
<optgroup :label="$ts.lightThemes"> <optgroup :label="$ts.lightThemes">
<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>
@ -56,7 +56,7 @@
<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>
</FormSelect> </FormSelect>
<FormSelect v-model:value="darkThemeId"> <FormSelect v-model="darkThemeId">
<template #label>{{ $ts.themeForDarkMode }}</template> <template #label>{{ $ts.themeForDarkMode }}</template>
<optgroup :label="$ts.darkThemes"> <optgroup :label="$ts.darkThemes">
<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>

View file

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<MkTab v-model:value="tab"> <MkTab v-model="tab">
<option value="soft">{{ $ts._wordMute.soft }}</option> <option value="soft">{{ $ts._wordMute.soft }}</option>
<option value="hard">{{ $ts._wordMute.hard }}</option> <option value="hard">{{ $ts._wordMute.hard }}</option>
</MkTab> </MkTab>
@ -8,14 +8,14 @@
<div class="_debobigegoItem"> <div class="_debobigegoItem">
<div v-show="tab === 'soft'"> <div v-show="tab === 'soft'">
<FormInfo>{{ $ts._wordMute.softDescription }}</FormInfo> <FormInfo>{{ $ts._wordMute.softDescription }}</FormInfo>
<FormTextarea v-model:value="softMutedWords"> <FormTextarea v-model="softMutedWords">
<span>{{ $ts._wordMute.muteWords }}</span> <span>{{ $ts._wordMute.muteWords }}</span>
<template #desc>{{ $ts._wordMute.muteWordsDescription }}<br>{{ $ts._wordMute.muteWordsDescription2 }}</template> <template #desc>{{ $ts._wordMute.muteWordsDescription }}<br>{{ $ts._wordMute.muteWordsDescription2 }}</template>
</FormTextarea> </FormTextarea>
</div> </div>
<div v-show="tab === 'hard'"> <div v-show="tab === 'hard'">
<FormInfo>{{ $ts._wordMute.hardDescription }}</FormInfo> <FormInfo>{{ $ts._wordMute.hardDescription }}</FormInfo>
<FormTextarea v-model:value="hardMutedWords"> <FormTextarea v-model="hardMutedWords">
<span>{{ $ts._wordMute.muteWords }}</span> <span>{{ $ts._wordMute.muteWords }}</span>
<template #desc>{{ $ts._wordMute.muteWordsDescription }}<br>{{ $ts._wordMute.muteWordsDescription2 }}</template> <template #desc>{{ $ts._wordMute.muteWordsDescription }}<br>{{ $ts._wordMute.muteWordsDescription2 }}</template>
</FormTextarea> </FormTextarea>

View file

@ -37,7 +37,7 @@
</div> </div>
<FormGroup v-if="codeEnabled"> <FormGroup v-if="codeEnabled">
<FormTextarea v-model:value="themeCode" tall> <FormTextarea v-model="themeCode" tall>
<span>{{ $ts._theme.code }}</span> <span>{{ $ts._theme.code }}</span>
</FormTextarea> </FormTextarea>
<FormButton @click="applyThemeCode" primary>{{ $ts.apply }}</FormButton> <FormButton @click="applyThemeCode" primary>{{ $ts.apply }}</FormButton>
@ -45,7 +45,7 @@
<FormButton v-else @click="codeEnabled = true"><i class="fas fa-code"></i> {{ $ts.editCode }}</FormButton> <FormButton v-else @click="codeEnabled = true"><i class="fas fa-code"></i> {{ $ts.editCode }}</FormButton>
<FormGroup v-if="descriptionEnabled"> <FormGroup v-if="descriptionEnabled">
<FormTextarea v-model:value="description"> <FormTextarea v-model="description">
<span>{{ $ts._theme.description }}</span> <span>{{ $ts._theme.description }}</span>
</FormTextarea> </FormTextarea>
</FormGroup> </FormGroup>

View file

@ -20,9 +20,9 @@
</FormGroup> </FormGroup>
<FormGroup v-if="iAmModerator"> <FormGroup v-if="iAmModerator">
<FormSwitch v-if="user.host == null && $i.isAdmin && (moderator || !user.isAdmin)" @update:value="toggleModerator" v-model:value="moderator">{{ $ts.moderator }}</FormSwitch> <FormSwitch v-if="user.host == null && $i.isAdmin && (moderator || !user.isAdmin)" @update:modelValue="toggleModerator" v-model="moderator">{{ $ts.moderator }}</FormSwitch>
<FormSwitch @update:value="toggleSilence" v-model:value="silenced">{{ $ts.silence }}</FormSwitch> <FormSwitch @update:modelValue="toggleSilence" v-model="silenced">{{ $ts.silence }}</FormSwitch>
<FormSwitch @update:value="toggleSuspend" v-model:value="suspended">{{ $ts.suspend }}</FormSwitch> <FormSwitch @update:modelValue="toggleSuspend" v-model="suspended">{{ $ts.suspend }}</FormSwitch>
</FormGroup> </FormGroup>
<FormGroup> <FormGroup>

View file

@ -1,6 +1,6 @@
<template> <template>
<div class="yrzkoczt" v-sticky-container> <div class="yrzkoczt" v-sticky-container>
<MkTab v-model:value="with_" class="_gap tab"> <MkTab v-model="with_" class="_gap tab">
<option :value="null">{{ $ts.notes }}</option> <option :value="null">{{ $ts.notes }}</option>
<option value="replies">{{ $ts.notesAndReplies }}</option> <option value="replies">{{ $ts.notesAndReplies }}</option>
<option value="files">{{ $ts.withFiles }}</option> <option value="files">{{ $ts.withFiles }}</option>

View file

@ -6,7 +6,7 @@
<div class="body"> <div class="body">
<p v-if="note.cw != null" class="cw"> <p v-if="note.cw != null" class="cw">
<span class="text" v-if="note.cw != ''">{{ note.cw }}</span> <span class="text" v-if="note.cw != ''">{{ note.cw }}</span>
<XCwButton v-model:value="showContent" :note="note"/> <XCwButton v-model="showContent" :note="note"/>
</p> </p>
<div class="content" v-show="note.cw == null || showContent"> <div class="content" v-show="note.cw == null || showContent">
<XSubNote-content class="text" :note="note"/> <XSubNote-content class="text" :note="note"/>

View file

@ -7,7 +7,7 @@
<div class="body"> <div class="body">
<p v-if="note.cw != null" class="cw"> <p v-if="note.cw != null" class="cw">
<Mfm v-if="note.cw != ''" class="text" :text="note.cw" :author="note.user" :i="$i" :custom-emojis="note.emojis" /> <Mfm v-if="note.cw != ''" class="text" :text="note.cw" :author="note.user" :i="$i" :custom-emojis="note.emojis" />
<XCwButton v-model:value="showContent" :note="note"/> <XCwButton v-model="showContent" :note="note"/>
</p> </p>
<div class="content" v-show="note.cw == null || showContent"> <div class="content" v-show="note.cw == null || showContent">
<XSubNote-content class="text" :note="note"/> <XSubNote-content class="text" :note="note"/>

View file

@ -42,7 +42,7 @@
<div class="body"> <div class="body">
<p v-if="appearNote.cw != null" class="cw"> <p v-if="appearNote.cw != null" class="cw">
<Mfm v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$i" :custom-emojis="appearNote.emojis"/> <Mfm v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$i" :custom-emojis="appearNote.emojis"/>
<XCwButton v-model:value="showContent" :note="appearNote"/> <XCwButton v-model="showContent" :note="appearNote"/>
</p> </p>
<div class="content" :class="{ collapsed }" v-show="appearNote.cw == null || showContent"> <div class="content" :class="{ collapsed }" v-show="appearNote.cw == null || showContent">
<div class="text"> <div class="text">