wip
This commit is contained in:
		
							parent
							
								
									c0ae5ea189
								
							
						
					
					
						commit
						6544916b0c
					
				
					 61 changed files with 233 additions and 234 deletions
				
			
		|  | @ -1,7 +1,7 @@ | |||
| <template> | ||||
| <button class="nrvgflfu _button" @click="toggle"> | ||||
| 	<b>{{ value ? $ts._cw.hide : $ts._cw.show }}</b> | ||||
| 	<span v-if="!value">{{ label }}</span> | ||||
| 	<b>{{ modelValue ? $ts._cw.hide : $ts._cw.show }}</b> | ||||
| 	<span v-if="!modelValue">{{ label }}</span> | ||||
| </button> | ||||
| </template> | ||||
| 
 | ||||
|  | @ -12,7 +12,7 @@ import { concat } from '../../prelude/array'; | |||
| 
 | ||||
| export default defineComponent({ | ||||
| 	props: { | ||||
| 		value: { | ||||
| 		modelValue: { | ||||
| 			type: Boolean, | ||||
| 			required: true | ||||
| 		}, | ||||
|  | @ -36,7 +36,7 @@ export default defineComponent({ | |||
| 		length, | ||||
| 
 | ||||
| 		toggle() { | ||||
| 			this.$emit('update:value', !this.value); | ||||
| 			this.$emit('update:modelValue', !this.modelValue); | ||||
| 		} | ||||
| 	} | ||||
| }); | ||||
|  |  | |||
|  | @ -14,23 +14,23 @@ | |||
| 	</template> | ||||
| 	<FormBase class="xkpnjxcv"> | ||||
| 		<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> | ||||
| 				<template v-if="form[item].description" #desc>{{ form[item].description }}</template> | ||||
| 			</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> | ||||
| 				<template v-if="form[item].description" #desc>{{ form[item].description }}</template> | ||||
| 			</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> | ||||
| 				<template v-if="form[item].description" #desc>{{ form[item].description }}</template> | ||||
| 			</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> | ||||
| 				<template v-if="form[item].description" #desc>{{ form[item].description }}</template> | ||||
| 			</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> | ||||
| 				<option v-for="item in form[item].enum" :value="item.value" :key="item.value">{{ item.label }}</option> | ||||
| 			</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> | ||||
| 				<option v-for="item in form[item].options" :value="item.value" :key="item.value">{{ item.label }}</option> | ||||
| 			</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 v-if="form[item].description" #desc>{{ form[item].description }}</template> | ||||
| 			</FormRange> | ||||
|  |  | |||
|  | @ -59,7 +59,7 @@ | |||
| 			<div class="body"> | ||||
| 				<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"/> | ||||
| 					<XCwButton v-model:value="showContent" :note="appearNote"/> | ||||
| 					<XCwButton v-model="showContent" :note="appearNote"/> | ||||
| 				</p> | ||||
| 				<div class="content" v-show="appearNote.cw == null || showContent"> | ||||
| 					<div class="text"> | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
| 		<div class="body"> | ||||
| 			<p v-if="note.cw != null" class="cw"> | ||||
| 				<span class="text" v-if="note.cw != ''">{{ note.cw }}</span> | ||||
| 				<XCwButton v-model:value="showContent" :note="note"/> | ||||
| 				<XCwButton v-model="showContent" :note="note"/> | ||||
| 			</p> | ||||
| 			<div class="content" v-show="note.cw == null || showContent"> | ||||
| 				<XSubNote-content class="text" :note="note"/> | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
| 			<div class="body"> | ||||
| 				<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" /> | ||||
| 					<XCwButton v-model:value="showContent" :note="note"/> | ||||
| 					<XCwButton v-model="showContent" :note="note"/> | ||||
| 				</p> | ||||
| 				<div class="content" v-show="note.cw == null || showContent"> | ||||
| 					<XSubNote-content class="text" :note="note"/> | ||||
|  |  | |||
|  | @ -43,7 +43,7 @@ | |||
| 			<div class="body"> | ||||
| 				<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"/> | ||||
| 					<XCwButton v-model:value="showContent" :note="appearNote"/> | ||||
| 					<XCwButton v-model="showContent" :note="appearNote"/> | ||||
| 				</p> | ||||
| 				<div class="content" :class="{ collapsed }" v-show="appearNote.cw == null || showContent"> | ||||
| 					<div class="text"> | ||||
|  |  | |||
|  | @ -44,8 +44,8 @@ | |||
| 				</template> | ||||
| 			</I18n> | ||||
| 		</label> | ||||
| 		<captcha v-if="meta.enableHcaptcha" class="_formBlock captcha" provider="hcaptcha" ref="hcaptcha" v-model:value="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.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="reCaptchaResponse" :sitekey="meta.recaptchaSiteKey"/> | ||||
| 		<MkButton class="_formBlock" type="submit" :disabled="shouldDisableSubmitting" primary data-cy-signup-submit>{{ $ts.start }}</MkButton> | ||||
| 	</template> | ||||
| </form> | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ import { defineComponent, h, resolveDirective, withDirectives } from 'vue'; | |||
| 
 | ||||
| export default defineComponent({ | ||||
| 	props: { | ||||
| 		value: { | ||||
| 		modelValue: { | ||||
| 			required: true, | ||||
| 		}, | ||||
| 	}, | ||||
|  | @ -13,11 +13,11 @@ export default defineComponent({ | |||
| 		return withDirectives(h('div', { | ||||
| 			class: 'pxhvhrfw', | ||||
| 		}, 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, | ||||
| 			disabled: this.value === option.props.value, | ||||
| 			disabled: this.modelValue === option.props.modelValue, | ||||
| 			onClick: () => { | ||||
| 				this.$emit('update:value', option.props.value); | ||||
| 				this.$emit('update:modelValue', option.props.modelValue); | ||||
| 			} | ||||
| 		}, option.children), [ | ||||
| 			[resolveDirective('click-anime')] | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ | |||
| 	<template #header>Req Viewer</template> | ||||
| 
 | ||||
| 	<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="res">Response</option> | ||||
| 		</MkTab> | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ | |||
| 		<i class="fas fa-terminal" style="margin-right: 0.5em;"></i>Task Manager | ||||
| 	</template> | ||||
| 	<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="stream">Stream</option> | ||||
| 			<option value="streamPool">Stream (Pool)</option> | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ | |||
| 		<div class="_content"> | ||||
| 			<details> | ||||
| 				<summary>{{ $ts.import }}</summary> | ||||
| 				<MkTextarea v-model:value="themeToImport"> | ||||
| 				<MkTextarea v-model="themeToImport"> | ||||
| 					{{ $ts._theme.importInfo }} | ||||
| 				</MkTextarea> | ||||
| 				<MkButton :disabled="!themeToImport.trim()" @click="importTheme">{{ $ts.import }}</MkButton> | ||||
|  | @ -14,9 +14,9 @@ | |||
| 	<section class="_section"> | ||||
| 		<div class="_content _card _gap"> | ||||
| 			<div class="_content"> | ||||
| 				<MkInput v-model:value="name" required><span>{{ $ts.name }}</span></MkInput> | ||||
| 				<MkInput v-model:value="author" required><span>{{ $ts.author }}</span></MkInput> | ||||
| 				<MkTextarea v-model:value="description"><span>{{ $ts.description }}</span></MkTextarea> | ||||
| 				<MkInput v-model="name" required><span>{{ $ts.name }}</span></MkInput> | ||||
| 				<MkInput v-model="author" required><span>{{ $ts.author }}</span></MkInput> | ||||
| 				<MkTextarea v-model="description"><span>{{ $ts.description }}</span></MkTextarea> | ||||
| 				<div class="_inputs"> | ||||
| 					<div v-text="$ts._theme.base" /> | ||||
| 					<MkRadio v-model="baseTheme" value="light">{{ $ts.light }}</MkRadio> | ||||
|  | @ -41,31 +41,31 @@ | |||
| 							<!-- color --> | ||||
| 							<div v-else-if="typeof v === 'string'" class="color"> | ||||
| 								<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> | ||||
| 							<!-- 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> | ||||
| 								<span>{{ $ts.name }}</span> | ||||
| 							</MkInput> | ||||
| 							<!-- 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> | ||||
| 							</MkSelect> | ||||
| 							<!-- 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> | ||||
| 									<option v-for="n in ['alpha', 'darken', 'lighten']" :value="n" :key="n">{{ $t('_theme.' + n) }}</option> | ||||
| 								</MkSelect> | ||||
| 								<MkInput type="number" v-model:value="v.arg"><span>{{ $ts._theme.argument }}</span></MkInput> | ||||
| 								<MkSelect class="select" v-model:value="v.value"> | ||||
| 								<MkInput type="number" v-model="v.arg"><span>{{ $ts._theme.argument }}</span></MkInput> | ||||
| 								<MkSelect class="select" v-model="v.value"> | ||||
| 									<template #label>{{ $ts._theme.basedProp }}</template> | ||||
| 									<option v-for="key in themeProps" :value="key" :key="key">{{ $t('_theme.keys.' + key) }}</option> | ||||
| 								</MkSelect> | ||||
| 							</template> | ||||
| 							<!-- 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> | ||||
| 							</MkInput> | ||||
| 						</div> | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| <template> | ||||
| <div> | ||||
| 	<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="following"><i class="fas fa-heart"></i> {{ $ts._channel.following }}</option> | ||||
| 			<option value="owned"><i class="fas fa-edit"></i> {{ $ts._channel.owned }}</option> | ||||
|  |  | |||
|  | @ -1,11 +1,11 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormSuspense :p="init"> | ||||
| 		<FormInput v-model:value="title"> | ||||
| 		<FormInput v-model="title"> | ||||
| 			<span>{{ $ts.title }}</span> | ||||
| 		</FormInput> | ||||
| 
 | ||||
| 		<FormTextarea v-model:value="description" :max="500"> | ||||
| 		<FormTextarea v-model="description" :max="500"> | ||||
| 			<span>{{ $ts.description }}</span> | ||||
| 		</FormTextarea> | ||||
| 
 | ||||
|  | @ -17,7 +17,7 @@ | |||
| 			<FormButton @click="selectFile" primary><i class="fas fa-plus"></i> {{ $ts.attachFile }}</FormButton> | ||||
| 		</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-else @click="save" primary><i class="fas fa-save"></i> {{ $ts.publish }}</FormButton> | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
| <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="liked"><i class="fas fa-heart"></i> {{ $ts._gallery.liked }}</option> | ||||
| 		<option value="my"><i class="fas fa-edit"></i> {{ $ts._gallery.my }}</option> | ||||
|  |  | |||
|  | @ -24,10 +24,10 @@ | |||
| 			</div> | ||||
| 			<!-- TODO | ||||
| 			<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> | ||||
| 				</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> | ||||
| 				</MkInput> | ||||
| 			</div> | ||||
|  |  | |||
|  | @ -12,11 +12,11 @@ | |||
| 			<div class="_debobigegoItem _debobigegoNoConcat" v-sticky-container> | ||||
| 				<div class="_debobigegoLabel">hCaptcha</div> | ||||
| 				<div class="main"> | ||||
| 					<FormInput v-model:value="hcaptchaSiteKey"> | ||||
| 					<FormInput v-model="hcaptchaSiteKey"> | ||||
| 						<template #prefix><i class="fas fa-key"></i></template> | ||||
| 						<span>{{ $ts.hcaptchaSiteKey }}</span> | ||||
| 					</FormInput> | ||||
| 					<FormInput v-model:value="hcaptchaSecretKey"> | ||||
| 					<FormInput v-model="hcaptchaSecretKey"> | ||||
| 						<template #prefix><i class="fas fa-key"></i></template> | ||||
| 						<span>{{ $ts.hcaptchaSecretKey }}</span> | ||||
| 					</FormInput> | ||||
|  | @ -33,11 +33,11 @@ | |||
| 			<div class="_debobigegoItem _debobigegoNoConcat" v-sticky-container> | ||||
| 				<div class="_debobigegoLabel">reCAPTCHA</div> | ||||
| 				<div class="main"> | ||||
| 					<FormInput v-model:value="recaptchaSiteKey"> | ||||
| 					<FormInput v-model="recaptchaSiteKey"> | ||||
| 						<template #prefix><i class="fas fa-key"></i></template> | ||||
| 						<span>{{ $ts.recaptchaSiteKey }}</span> | ||||
| 					</FormInput> | ||||
| 					<FormInput v-model:value="recaptchaSecretKey"> | ||||
| 					<FormInput v-model="recaptchaSecretKey"> | ||||
| 						<template #prefix><i class="fas fa-key"></i></template> | ||||
| 						<span>{{ $ts.recaptchaSecretKey }}</span> | ||||
| 					</FormInput> | ||||
|  |  | |||
|  | @ -1,30 +1,30 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<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"> | ||||
| 			<FormInput v-model:value="email" type="email"> | ||||
| 			<FormInput v-model="email" type="email"> | ||||
| 				<span>{{ $ts.emailAddress }}</span> | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<div class="_debobigegoItem _debobigegoNoConcat" v-sticky-container> | ||||
| 				<div class="_debobigegoLabel">{{ $ts.smtpConfig }}</div> | ||||
| 				<div class="main"> | ||||
| 					<FormInput v-model:value="smtpHost"> | ||||
| 					<FormInput v-model="smtpHost"> | ||||
| 						<span>{{ $ts.smtpHost }}</span> | ||||
| 					</FormInput> | ||||
| 					<FormInput v-model:value="smtpPort" type="number"> | ||||
| 					<FormInput v-model="smtpPort" type="number"> | ||||
| 						<span>{{ $ts.smtpPort }}</span> | ||||
| 					</FormInput> | ||||
| 					<FormInput v-model:value="smtpUser"> | ||||
| 					<FormInput v-model="smtpUser"> | ||||
| 						<span>{{ $ts.smtpUser }}</span> | ||||
| 					</FormInput> | ||||
| 					<FormInput v-model:value="smtpPass" type="password"> | ||||
| 					<FormInput v-model="smtpPass" type="password"> | ||||
| 						<span>{{ $ts.smtpPass }}</span> | ||||
| 					</FormInput> | ||||
| 					<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> | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
| <div class="ogwlenmc"> | ||||
| 	<MkTab v-model:value="tab"> | ||||
| 	<MkTab v-model="tab"> | ||||
| 		<option value="local">{{ $ts.local }}</option> | ||||
| 		<option value="remote">{{ $ts.remote }}</option> | ||||
| 	</MkTab> | ||||
|  |  | |||
|  | @ -1,23 +1,23 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormSuspense :p="init"> | ||||
| 		<FormSwitch v-model:value="cacheRemoteFiles"> | ||||
| 		<FormSwitch v-model="cacheRemoteFiles"> | ||||
| 			{{ $ts.cacheRemoteFiles }} | ||||
| 			<template #desc>{{ $ts.cacheRemoteFilesDescription }}</template> | ||||
| 		</FormSwitch> | ||||
| 
 | ||||
| 		<FormSwitch v-model:value="proxyRemoteFiles"> | ||||
| 		<FormSwitch v-model="proxyRemoteFiles"> | ||||
| 			{{ $ts.proxyRemoteFiles }} | ||||
| 			<template #desc>{{ $ts.proxyRemoteFilesDescription }}</template> | ||||
| 		</FormSwitch> | ||||
| 
 | ||||
| 		<FormInput v-model:value="localDriveCapacityMb" type="number"> | ||||
| 		<FormInput v-model="localDriveCapacityMb" type="number"> | ||||
| 			<span>{{ $ts.driveCapacityPerLocalAccount }}</span> | ||||
| 			<template #suffix>MB</template> | ||||
| 			<template #desc>{{ $ts.inMb }}</template> | ||||
| 		</FormInput> | ||||
| 
 | ||||
| 		<FormInput v-model:value="remoteDriveCapacityMb" type="number" :disabled="!cacheRemoteFiles"> | ||||
| 		<FormInput v-model="remoteDriveCapacityMb" type="number" :disabled="!cacheRemoteFiles"> | ||||
| 			<span>{{ $ts.driveCapacityPerRemoteAccount }}</span> | ||||
| 			<template #suffix>MB</template> | ||||
| 			<template #desc>{{ $ts.inMb }}</template> | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormSuspense :p="init"> | ||||
| 		<FormTextarea v-model:value="blockedHosts"> | ||||
| 		<FormTextarea v-model="blockedHosts"> | ||||
| 			<span>{{ $ts.blockedInstances }}</span> | ||||
| 			<template #desc>{{ $ts.blockedInstancesDescription }}</template> | ||||
| 		</FormTextarea> | ||||
|  |  | |||
|  | @ -1,19 +1,19 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormSuspense :p="init"> | ||||
| 		<FormSwitch v-model:value="enableDiscordIntegration"> | ||||
| 		<FormSwitch v-model="enableDiscordIntegration"> | ||||
| 			{{ $ts.enable }} | ||||
| 		</FormSwitch> | ||||
| 
 | ||||
| 		<template v-if="enableDiscordIntegration"> | ||||
| 			<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> | ||||
| 				Client ID | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<FormInput v-model:value="discordClientSecret"> | ||||
| 			<FormInput v-model="discordClientSecret"> | ||||
| 				<template #prefix><i class="fas fa-key"></i></template> | ||||
| 				Client Secret | ||||
| 			</FormInput> | ||||
|  |  | |||
|  | @ -1,19 +1,19 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormSuspense :p="init"> | ||||
| 		<FormSwitch v-model:value="enableGithubIntegration"> | ||||
| 		<FormSwitch v-model="enableGithubIntegration"> | ||||
| 			{{ $ts.enable }} | ||||
| 		</FormSwitch> | ||||
| 
 | ||||
| 		<template v-if="enableGithubIntegration"> | ||||
| 			<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> | ||||
| 				Client ID | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<FormInput v-model:value="githubClientSecret"> | ||||
| 			<FormInput v-model="githubClientSecret"> | ||||
| 				<template #prefix><i class="fas fa-key"></i></template> | ||||
| 				Client Secret | ||||
| 			</FormInput> | ||||
|  |  | |||
|  | @ -1,19 +1,19 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormSuspense :p="init"> | ||||
| 		<FormSwitch v-model:value="enableTwitterIntegration"> | ||||
| 		<FormSwitch v-model="enableTwitterIntegration"> | ||||
| 			{{ $ts.enable }} | ||||
| 		</FormSwitch> | ||||
| 
 | ||||
| 		<template v-if="enableTwitterIntegration"> | ||||
| 			<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> | ||||
| 				Consumer Key | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<FormInput v-model:value="twitterConsumerSecret"> | ||||
| 			<FormInput v-model="twitterConsumerSecret"> | ||||
| 				<template #prefix><i class="fas fa-key"></i></template> | ||||
| 				Consumer Secret | ||||
| 			</FormInput> | ||||
|  |  | |||
|  | @ -1,59 +1,59 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormSuspense :p="init"> | ||||
| 		<FormSwitch v-model:value="useObjectStorage">{{ $ts.useObjectStorage }}</FormSwitch> | ||||
| 		<FormSwitch v-model="useObjectStorage">{{ $ts.useObjectStorage }}</FormSwitch> | ||||
| 
 | ||||
| 		<template v-if="useObjectStorage"> | ||||
| 			<FormInput v-model:value="objectStorageBaseUrl"> | ||||
| 			<FormInput v-model="objectStorageBaseUrl"> | ||||
| 				<span>{{ $ts.objectStorageBaseUrl }}</span> | ||||
| 				<template #desc>{{ $ts.objectStorageBaseUrlDesc }}</template> | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<FormInput v-model:value="objectStorageBucket"> | ||||
| 			<FormInput v-model="objectStorageBucket"> | ||||
| 				<span>{{ $ts.objectStorageBucket }}</span> | ||||
| 				<template #desc>{{ $ts.objectStorageBucketDesc }}</template> | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<FormInput v-model:value="objectStoragePrefix"> | ||||
| 			<FormInput v-model="objectStoragePrefix"> | ||||
| 				<span>{{ $ts.objectStoragePrefix }}</span> | ||||
| 				<template #desc>{{ $ts.objectStoragePrefixDesc }}</template> | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<FormInput v-model:value="objectStorageEndpoint"> | ||||
| 			<FormInput v-model="objectStorageEndpoint"> | ||||
| 				<span>{{ $ts.objectStorageEndpoint }}</span> | ||||
| 				<template #desc>{{ $ts.objectStorageEndpointDesc }}</template> | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<FormInput v-model:value="objectStorageRegion"> | ||||
| 			<FormInput v-model="objectStorageRegion"> | ||||
| 				<span>{{ $ts.objectStorageRegion }}</span> | ||||
| 				<template #desc>{{ $ts.objectStorageRegionDesc }}</template> | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<FormInput v-model:value="objectStorageAccessKey"> | ||||
| 			<FormInput v-model="objectStorageAccessKey"> | ||||
| 				<template #prefix><i class="fas fa-key"></i></template> | ||||
| 				<span>Access key</span> | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<FormInput v-model:value="objectStorageSecretKey"> | ||||
| 			<FormInput v-model="objectStorageSecretKey"> | ||||
| 				<template #prefix><i class="fas fa-key"></i></template> | ||||
| 				<span>Secret key</span> | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<FormSwitch v-model:value="objectStorageUseSSL"> | ||||
| 			<FormSwitch v-model="objectStorageUseSSL"> | ||||
| 				{{ $ts.objectStorageUseSSL }} | ||||
| 				<template #desc>{{ $ts.objectStorageUseSSLDesc }}</template> | ||||
| 			</FormSwitch> | ||||
| 
 | ||||
| 			<FormSwitch v-model:value="objectStorageUseProxy"> | ||||
| 			<FormSwitch v-model="objectStorageUseProxy"> | ||||
| 				{{ $ts.objectStorageUseProxy }} | ||||
| 				<template #desc>{{ $ts.objectStorageUseProxyDesc }}</template> | ||||
| 			</FormSwitch> | ||||
| 
 | ||||
| 			<FormSwitch v-model:value="objectStorageSetPublicRead"> | ||||
| 			<FormSwitch v-model="objectStorageSetPublicRead"> | ||||
| 				{{ $ts.objectStorageSetPublicRead }} | ||||
| 			</FormSwitch> | ||||
| 
 | ||||
| 			<FormSwitch v-model:value="objectStorageS3ForcePathStyle"> | ||||
| 			<FormSwitch v-model="objectStorageS3ForcePathStyle"> | ||||
| 				s3ForcePathStyle | ||||
| 			</FormSwitch> | ||||
| 		</template> | ||||
|  |  | |||
|  | @ -2,17 +2,17 @@ | |||
| <FormBase> | ||||
| 	<FormSuspense :p="init"> | ||||
| 		<FormGroup> | ||||
| 			<FormInput v-model:value="summalyProxy"> | ||||
| 			<FormInput v-model="summalyProxy"> | ||||
| 				<template #prefix><i class="fas fa-link"></i></template> | ||||
| 				Summaly Proxy URL | ||||
| 			</FormInput> | ||||
| 		</FormGroup> | ||||
| 		<FormGroup> | ||||
| 			<FormInput v-model:value="deeplAuthKey"> | ||||
| 			<FormInput v-model="deeplAuthKey"> | ||||
| 				<template #prefix><i class="fas fa-key"></i></template> | ||||
| 				DeepL Auth Key | ||||
| 			</FormInput> | ||||
| 			<FormSwitch v-model:value="deeplIsPro"> | ||||
| 			<FormSwitch v-model="deeplIsPro"> | ||||
| 				Pro account | ||||
| 			</FormSwitch> | ||||
| 		</FormGroup> | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ | |||
| 			<template #suffix v-else>{{ $ts.none }} ({{ $ts.notRecommended }})</template> | ||||
| 		</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> | ||||
| 	</FormSuspense> | ||||
|  |  | |||
|  | @ -1,18 +1,18 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormSuspense :p="init"> | ||||
| 		<FormSwitch v-model:value="enableServiceWorker"> | ||||
| 		<FormSwitch v-model="enableServiceWorker"> | ||||
| 			{{ $ts.enableServiceworker }} | ||||
| 			<template #desc>{{ $ts.serviceworkerInfo }}</template> | ||||
| 		</FormSwitch> | ||||
| 
 | ||||
| 		<template v-if="enableServiceWorker"> | ||||
| 			<FormInput v-model:value="swPublicKey"> | ||||
| 			<FormInput v-model="swPublicKey"> | ||||
| 				<template #prefix><i class="fas fa-key"></i></template> | ||||
| 				Public key | ||||
| 			</FormInput> | ||||
| 
 | ||||
| 			<FormInput v-model:value="swPrivateKey"> | ||||
| 			<FormInput v-model="swPrivateKey"> | ||||
| 				<template #prefix><i class="fas fa-key"></i></template> | ||||
| 				Private key | ||||
| 			</FormInput> | ||||
|  |  | |||
|  | @ -1,50 +1,50 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormSuspense :p="init"> | ||||
| 		<FormInput v-model:value="name"> | ||||
| 		<FormInput v-model="name"> | ||||
| 			<span>{{ $ts.instanceName }}</span> | ||||
| 		</FormInput> | ||||
| 
 | ||||
| 		<FormTextarea v-model:value="description"> | ||||
| 		<FormTextarea v-model="description"> | ||||
| 			<span>{{ $ts.instanceDescription }}</span> | ||||
| 		</FormTextarea> | ||||
| 
 | ||||
| 		<FormInput v-model:value="iconUrl"> | ||||
| 		<FormInput v-model="iconUrl"> | ||||
| 			<template #prefix><i class="fas fa-link"></i></template> | ||||
| 			<span>{{ $ts.iconUrl }}</span> | ||||
| 		</FormInput> | ||||
| 
 | ||||
| 		<FormInput v-model:value="bannerUrl"> | ||||
| 		<FormInput v-model="bannerUrl"> | ||||
| 			<template #prefix><i class="fas fa-link"></i></template> | ||||
| 			<span>{{ $ts.bannerUrl }}</span> | ||||
| 		</FormInput> | ||||
| 
 | ||||
| 		<FormInput v-model:value="backgroundImageUrl"> | ||||
| 		<FormInput v-model="backgroundImageUrl"> | ||||
| 			<template #prefix><i class="fas fa-link"></i></template> | ||||
| 			<span>{{ $ts.backgroundImageUrl }}</span> | ||||
| 		</FormInput> | ||||
| 
 | ||||
| 		<FormInput v-model:value="tosUrl"> | ||||
| 		<FormInput v-model="tosUrl"> | ||||
| 			<template #prefix><i class="fas fa-link"></i></template> | ||||
| 			<span>{{ $ts.tosUrl }}</span> | ||||
| 		</FormInput> | ||||
| 
 | ||||
| 		<FormInput v-model:value="maintainerName"> | ||||
| 		<FormInput v-model="maintainerName"> | ||||
| 			<span>{{ $ts.maintainerName }}</span> | ||||
| 		</FormInput> | ||||
| 
 | ||||
| 		<FormInput v-model:value="maintainerEmail" type="email"> | ||||
| 		<FormInput v-model="maintainerEmail" type="email"> | ||||
| 			<template #prefix><i class="fas fa-envelope"></i></template> | ||||
| 			<span>{{ $ts.maintainerEmail }}</span> | ||||
| 		</FormInput> | ||||
| 
 | ||||
| 		<FormInput v-model:value="maxNoteTextLength" type="number"> | ||||
| 		<FormInput v-model="maxNoteTextLength" type="number"> | ||||
| 			<template #prefix><i class="fas fa-pencil-alt"></i></template> | ||||
| 			<span>{{ $ts.maxNoteTextLength }}</span> | ||||
| 		</FormInput> | ||||
| 
 | ||||
| 		<FormSwitch v-model:value="enableLocalTimeline">{{ $ts.enableLocalTimeline }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="enableGlobalTimeline">{{ $ts.enableGlobalTimeline }}</FormSwitch> | ||||
| 		<FormSwitch v-model="enableLocalTimeline">{{ $ts.enableLocalTimeline }}</FormSwitch> | ||||
| 		<FormSwitch v-model="enableGlobalTimeline">{{ $ts.enableGlobalTimeline }}</FormSwitch> | ||||
| 		<FormInfo>{{ $ts.disablingTimelinesInfo }}</FormInfo> | ||||
| 
 | ||||
| 		<FormButton @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton> | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| <template> | ||||
| <div class=""> | ||||
| 	<div class="_section" style="padding: 0;"> | ||||
| 		<MkTab v-model:value="tab"> | ||||
| 		<MkTab v-model="tab"> | ||||
| 			<option value="owned">{{ $ts.ownedGroups }}</option> | ||||
| 			<option value="joined">{{ $ts.joinedGroups }}</option> | ||||
| 			<option value="invites"><i class="fas fa-envelope-open-text"></i> {{ $ts.invites }}</option> | ||||
|  |  | |||
|  | @ -19,7 +19,7 @@ | |||
| 			</optgroup> | ||||
| 		</MkSelect> | ||||
| 
 | ||||
| 		<XBlocks class="children" v-model:value="value.children" :hpml="hpml"/> | ||||
| 		<XBlocks class="children" v-model="value.children" :hpml="hpml"/> | ||||
| 	</section> | ||||
| </XContainer> | ||||
| </template> | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ | |||
| 	</template> | ||||
| 
 | ||||
| 	<section class="ilrvjyvi"> | ||||
| 		<XBlocks class="children" v-model:value="value.children" :hpml="hpml"/> | ||||
| 		<XBlocks class="children" v-model="value.children" :hpml="hpml"/> | ||||
| 	</section> | ||||
| </XContainer> | ||||
| </template> | ||||
|  |  | |||
|  | @ -32,7 +32,7 @@ export default defineComponent({ | |||
| 	}, | ||||
| 
 | ||||
| 	props: { | ||||
| 		value: { | ||||
| 		modelValue: { | ||||
| 			type: Array, | ||||
| 			required: true | ||||
| 		}, | ||||
|  | @ -41,15 +41,15 @@ export default defineComponent({ | |||
| 		}, | ||||
| 	}, | ||||
| 
 | ||||
| 	emits: ['update:value'], | ||||
| 	emits: ['update:modelValue'], | ||||
| 
 | ||||
| 	computed: { | ||||
| 		blocks: { | ||||
| 			get() { | ||||
| 				return this.value; | ||||
| 				return this.modelValue; | ||||
| 			}, | ||||
| 			set(value) { | ||||
| 				this.$emit('update:value', value); | ||||
| 				this.$emit('update:modelValue', value); | ||||
| 			} | ||||
| 		} | ||||
| 	}, | ||||
|  | @ -62,17 +62,16 @@ export default defineComponent({ | |||
| 				v, | ||||
| 				...this.blocks.slice(i + 1) | ||||
| 			]; | ||||
| 			this.$emit('update:value', newValue); | ||||
| 			this.$emit('update:modelValue', newValue); | ||||
| 		}, | ||||
| 
 | ||||
| 		removeItem(el) { | ||||
| 			console.log(el); | ||||
| 			const i = this.blocks.findIndex(x => x.id === el.id); | ||||
| 			const newValue = [ | ||||
| 				...this.blocks.slice(0, i), | ||||
| 				...this.blocks.slice(i + 1) | ||||
| 			]; | ||||
| 			this.$emit('update:value', newValue); | ||||
| 			this.$emit('update:modelValue', newValue); | ||||
| 		}, | ||||
| 	} | ||||
| }); | ||||
|  |  | |||
|  | @ -7,23 +7,23 @@ | |||
| 		</button> | ||||
| 	</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 }} | ||||
| 	</section> | ||||
| 	<section v-else-if="value.type === 'text'" class="tbwccoaw"> | ||||
| 		<input v-model="value.value"/> | ||||
| 	<section v-else-if="modelValue.type === 'text'" class="tbwccoaw"> | ||||
| 		<input v-model="modelValue.value"/> | ||||
| 	</section> | ||||
| 	<section v-else-if="value.type === 'multiLineText'" class="tbwccoaw"> | ||||
| 		<textarea v-model="value.value"></textarea> | ||||
| 	<section v-else-if="modelValue.type === 'multiLineText'" class="tbwccoaw"> | ||||
| 		<textarea v-model="modelValue.value"></textarea> | ||||
| 	</section> | ||||
| 	<section v-else-if="value.type === 'textList'" class="tbwccoaw"> | ||||
| 		<textarea v-model="value.value" :placeholder="$ts._pages.script.blocks._textList.info"></textarea> | ||||
| 	<section v-else-if="modelValue.type === 'textList'" class="tbwccoaw"> | ||||
| 		<textarea v-model="modelValue.value" :placeholder="$ts._pages.script.blocks._textList.info"></textarea> | ||||
| 	</section> | ||||
| 	<section v-else-if="value.type === 'number'" class="tbwccoaw"> | ||||
| 		<input v-model="value.value" type="number"/> | ||||
| 	<section v-else-if="modelValue.type === 'number'" class="tbwccoaw"> | ||||
| 		<input v-model="modelValue.value" type="number"/> | ||||
| 	</section> | ||||
| 	<section v-else-if="value.type === 'ref'" class="hpdwcrvs"> | ||||
| 		<select v-model="value.value"> | ||||
| 	<section v-else-if="modelValue.type === 'ref'" class="hpdwcrvs"> | ||||
| 		<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> | ||||
| 			<optgroup :label="$ts._pages.script.argVariables"> | ||||
| 				<option v-for="v in fnSlots" :value="v.name">{{ v.name }}</option> | ||||
|  | @ -36,21 +36,21 @@ | |||
| 			</optgroup> | ||||
| 		</select> | ||||
| 	</section> | ||||
| 	<section v-else-if="value.type === 'aiScriptVar'" class="tbwccoaw"> | ||||
| 		<input v-model="value.value"/> | ||||
| 	<section v-else-if="modelValue.type === 'aiScriptVar'" class="tbwccoaw"> | ||||
| 		<input v-model="modelValue.value"/> | ||||
| 	</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"> | ||||
| 			<template #label>{{ $ts._pages.script.blocks._fn.slots }}</template> | ||||
| 			<template #caption>{{ $t('_pages.script.blocks._fn.slots-info') }}</template> | ||||
| 		</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 v-else-if="value.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"/> | ||||
| 	<section v-else-if="modelValue.type.startsWith('fn:')" class="" style="padding:16px;"> | ||||
| 		<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 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> | ||||
| </XContainer> | ||||
| </template> | ||||
|  | @ -78,7 +78,7 @@ export default defineComponent({ | |||
| 			required: false, | ||||
| 			default: null | ||||
| 		}, | ||||
| 		value: { | ||||
| 		modelValue: { | ||||
| 			required: true | ||||
| 		}, | ||||
| 		title: { | ||||
|  | @ -113,21 +113,21 @@ export default defineComponent({ | |||
| 
 | ||||
| 	computed: { | ||||
| 		icon(): any { | ||||
| 			if (this.value.type === null) return null; | ||||
| 			if (this.value.type.startsWith('fn:')) return 'fas fa-plug'; | ||||
| 			return blockDefs.find(x => x.type === this.value.type).icon; | ||||
| 			if (this.modelValue.type === null) return null; | ||||
| 			if (this.modelValue.type.startsWith('fn:')) return 'fas fa-plug'; | ||||
| 			return blockDefs.find(x => x.type === this.modelValue.type).icon; | ||||
| 		}, | ||||
| 		typeText(): any { | ||||
| 			if (this.value.type === null) return null; | ||||
| 			if (this.value.type.startsWith('fn:')) return this.value.type.split(':')[1]; | ||||
| 			return this.$t(`_pages.script.blocks.${this.value.type}`); | ||||
| 			if (this.modelValue.type === null) return null; | ||||
| 			if (this.modelValue.type.startsWith('fn:')) return this.modelValue.type.split(':')[1]; | ||||
| 			return this.$t(`_pages.script.blocks.${this.modelValue.type}`); | ||||
| 		}, | ||||
| 	}, | ||||
| 
 | ||||
| 	watch: { | ||||
| 		slots: { | ||||
| 			handler() { | ||||
| 				this.value.value.slots = this.slots.split('\n').map(x => ({ | ||||
| 				this.modelValue.value.slots = this.slots.split('\n').map(x => ({ | ||||
| 					name: x, | ||||
| 					type: null | ||||
| 				})); | ||||
|  | @ -137,24 +137,24 @@ export default defineComponent({ | |||
| 	}, | ||||
| 
 | ||||
| 	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; | ||||
| 
 | ||||
| 			if (this.value.type === 'fn') { | ||||
| 			if (this.modelValue.type === 'fn') { | ||||
| 				const id = uuid(); | ||||
| 				this.value.value = { | ||||
| 				this.modelValue.value = { | ||||
| 					slots: [], | ||||
| 					expression: { id, type: null } | ||||
| 				}; | ||||
| 				return; | ||||
| 			} | ||||
| 
 | ||||
| 			if (this.value.type && this.value.type.startsWith('fn:')) { | ||||
| 				const fnName = this.value.type.split(':')[1]; | ||||
| 			if (this.modelValue.type && this.modelValue.type.startsWith('fn:')) { | ||||
| 				const fnName = this.modelValue.type.split(':')[1]; | ||||
| 				const fn = this.hpml.getVarByName(fnName); | ||||
| 
 | ||||
| 				const empties = []; | ||||
|  | @ -162,29 +162,29 @@ export default defineComponent({ | |||
| 					const id = uuid(); | ||||
| 					empties.push({ id, type: null }); | ||||
| 				} | ||||
| 				this.value.args = empties; | ||||
| 				this.modelValue.args = empties; | ||||
| 				return; | ||||
| 			} | ||||
| 
 | ||||
| 			if (isLiteralValue(this.value)) return; | ||||
| 			if (isLiteralValue(this.modelValue)) return; | ||||
| 
 | ||||
| 			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(); | ||||
| 				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++) { | ||||
| 				const inType = funcDefs[this.value.type].in[i]; | ||||
| 			for (let i = 0; i < funcDefs[this.modelValue.type].in.length; i++) { | ||||
| 				const inType = funcDefs[this.modelValue.type].in[i]; | ||||
| 				if (typeof inType !== 'number') { | ||||
| 					if (inType === 'number') this.value.args[i].type = 'number'; | ||||
| 					if (inType === 'string') this.value.args[i].type = 'text'; | ||||
| 					if (inType === 'number') this.modelValue.args[i].type = 'number'; | ||||
| 					if (inType === 'string') this.modelValue.args[i].type = 'text'; | ||||
| 				} | ||||
| 			} | ||||
| 		}); | ||||
| 
 | ||||
| 		this.$watch(() => this.value.args, (args) => { | ||||
| 		this.$watch(() => this.modelValue.args, (args) => { | ||||
| 			if (args == null) { | ||||
| 				this.warn = null; | ||||
| 				return; | ||||
|  | @ -202,8 +202,8 @@ export default defineComponent({ | |||
| 		}); | ||||
| 
 | ||||
| 		this.$watch(() => this.hpml.variables, () => { | ||||
| 			if (this.type != null && this.value) { | ||||
| 				this.error = this.hpml.typeCheck(this.value); | ||||
| 			if (this.type != null && this.modelValue) { | ||||
| 				this.error = this.hpml.typeCheck(this.modelValue); | ||||
| 			} | ||||
| 		}, { | ||||
| 			deep: true | ||||
|  | @ -221,11 +221,11 @@ export default defineComponent({ | |||
| 				showCancelButton: true | ||||
| 			}); | ||||
| 			if (canceled) return; | ||||
| 			this.value.type = type; | ||||
| 			this.modelValue.type = type; | ||||
| 		}, | ||||
| 
 | ||||
| 		_getExpectedType(slot: number) { | ||||
| 			return this.hpml.getExpectedType(this.value, slot); | ||||
| 			return this.hpml.getExpectedType(this.modelValue, slot); | ||||
| 		} | ||||
| 	} | ||||
| }); | ||||
|  |  | |||
|  | @ -47,7 +47,7 @@ | |||
| 	<MkContainer :foldable="true" :expanded="true" class="_gap"> | ||||
| 		<template #header><i class="fas fa-sticky-note"></i> {{ $ts._pages.contents }}</template> | ||||
| 		<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> | ||||
| 		</div> | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
| <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="my"><i class="fas fa-edit"></i> {{ $ts._pages.my }}</option> | ||||
| 		<option value="liked"><i class="fas fa-heart"></i> {{ $ts._pages.liked }}</option> | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
| <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> | ||||
| 		<span>{{ $ts.newPassword }}</span> | ||||
| 	</FormInput> | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| <FormBase> | ||||
| 	<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> | ||||
| 	</FormTextarea> | ||||
| </FormBase> | ||||
|  |  | |||
|  | @ -2,10 +2,10 @@ | |||
| <FormBase> | ||||
| 	<FormGroup> | ||||
| 		<template #label>{{ $ts.defaultNavigationBehaviour }}</template> | ||||
| 		<FormSwitch v-model:value="navWindow">{{ $ts.openInWindow }}</FormSwitch> | ||||
| 		<FormSwitch v-model="navWindow">{{ $ts.openInWindow }}</FormSwitch> | ||||
| 	</FormGroup> | ||||
| 
 | ||||
| 	<FormSwitch v-model:value="alwaysShowMainColumn">{{ $ts._deck.alwaysShowMainColumn }}</FormSwitch> | ||||
| 	<FormSwitch v-model="alwaysShowMainColumn">{{ $ts._deck.alwaysShowMainColumn }}</FormSwitch> | ||||
| 
 | ||||
| 	<FormRadios v-model="columnAlign"> | ||||
| 		<template #desc>{{ $ts._deck.columnAlign }}</template> | ||||
|  | @ -20,7 +20,7 @@ | |||
| 		<option :value="48">{{ $ts.wide }}</option> | ||||
| 	</FormRadios> | ||||
| 
 | ||||
| 	<FormInput v-model:value="columnMargin" type="number"> | ||||
| 	<FormInput v-model="columnMargin" type="number"> | ||||
| 		<span>{{ $ts._deck.columnMargin }}</span> | ||||
| 		<template #suffix>px</template> | ||||
| 	</FormInput> | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormGroup> | ||||
| 		<FormInput v-model:value="emailAddress" type="email"> | ||||
| 		<FormInput v-model="emailAddress" type="email"> | ||||
| 			{{ $ts.emailAddress }} | ||||
| 			<template #desc v-if="$i.email && !$i.emailVerified">{{ $ts.verificationEmailSent }}</template> | ||||
| 			<template #desc v-else-if="emailAddress === $i.email && $i.emailVerified">{{ $ts.emailVerified }}</template> | ||||
|  |  | |||
|  | @ -1,22 +1,22 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormGroup> | ||||
| 		<FormSwitch v-model:value="mention"> | ||||
| 		<FormSwitch v-model="mention"> | ||||
| 			{{ $ts._notification._types.mention }} | ||||
| 		</FormSwitch> | ||||
| 		<FormSwitch v-model:value="reply"> | ||||
| 		<FormSwitch v-model="reply"> | ||||
| 			{{ $ts._notification._types.reply }} | ||||
| 		</FormSwitch> | ||||
| 		<FormSwitch v-model:value="quote"> | ||||
| 		<FormSwitch v-model="quote"> | ||||
| 			{{ $ts._notification._types.quote }} | ||||
| 		</FormSwitch> | ||||
| 		<FormSwitch v-model:value="follow"> | ||||
| 		<FormSwitch v-model="follow"> | ||||
| 			{{ $ts._notification._types.follow }} | ||||
| 		</FormSwitch> | ||||
| 		<FormSwitch v-model:value="receiveFollowRequest"> | ||||
| 		<FormSwitch v-model="receiveFollowRequest"> | ||||
| 			{{ $ts._notification._types.receiveFollowRequest }} | ||||
| 		</FormSwitch> | ||||
| 		<FormSwitch v-model:value="groupInvited"> | ||||
| 		<FormSwitch v-model="groupInvited"> | ||||
| 			{{ $ts._notification._types.groupInvited }} | ||||
| 		</FormSwitch> | ||||
| 	</FormGroup> | ||||
|  |  | |||
|  | @ -14,7 +14,7 @@ | |||
| 		{{ $ts.emailNotification }} | ||||
| 	</FormLink> | ||||
| 
 | ||||
| 	<FormSwitch :value="$i.receiveAnnouncementEmail" @update:value="onChangeReceiveAnnouncementEmail"> | ||||
| 	<FormSwitch :value="$i.receiveAnnouncementEmail" @update:modelValue="onChangeReceiveAnnouncementEmail"> | ||||
| 		{{ $ts.receiveAnnouncementFromInstance }} | ||||
| 	</FormSwitch> | ||||
| </FormBase> | ||||
|  |  | |||
|  | @ -1,8 +1,8 @@ | |||
| <template> | ||||
| <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> | ||||
| 		<option v-for="x in langs" :value="x[0]" :key="x[0]">{{ x[1] }}</option> | ||||
| 		<template #caption> | ||||
|  | @ -16,13 +16,13 @@ | |||
| 
 | ||||
| 	<FormGroup> | ||||
| 		<template #label>{{ $ts.behavior }}</template> | ||||
| 		<FormSwitch v-model:value="imageNewTab">{{ $ts.openImageInNewTab }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="enableInfiniteScroll">{{ $ts.enableInfiniteScroll }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="useReactionPickerForContextMenu">{{ $ts.useReactionPickerForContextMenu }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="disablePagesScript">{{ $ts.disablePagesScript }}</FormSwitch> | ||||
| 		<FormSwitch v-model="imageNewTab">{{ $ts.openImageInNewTab }}</FormSwitch> | ||||
| 		<FormSwitch v-model="enableInfiniteScroll">{{ $ts.enableInfiniteScroll }}</FormSwitch> | ||||
| 		<FormSwitch v-model="useReactionPickerForContextMenu">{{ $ts.useReactionPickerForContextMenu }}</FormSwitch> | ||||
| 		<FormSwitch v-model="disablePagesScript">{{ $ts.disablePagesScript }}</FormSwitch> | ||||
| 	</FormGroup> | ||||
| 
 | ||||
| 	<FormSelect v-model:value="serverDisconnectedBehavior"> | ||||
| 	<FormSelect v-model="serverDisconnectedBehavior"> | ||||
| 		<template #label>{{ $ts.whenServerDisconnected }}</template> | ||||
| 		<option value="reload">{{ $ts._serverDisconnectedBehavior.reload }}</option> | ||||
| 		<option value="dialog">{{ $ts._serverDisconnectedBehavior.dialog }}</option> | ||||
|  | @ -31,22 +31,22 @@ | |||
| 
 | ||||
| 	<FormGroup> | ||||
| 		<template #label>{{ $ts.appearance }}</template> | ||||
| 		<FormSwitch v-model:value="disableAnimatedMfm">{{ $ts.disableAnimatedMfm }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="reduceAnimation">{{ $ts.reduceUiAnimation }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="useBlurEffect">{{ $ts.useBlurEffect }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="useBlurEffectForModal">{{ $ts.useBlurEffectForModal }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="showGapBetweenNotesInTimeline">{{ $ts.showGapBetweenNotesInTimeline }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="loadRawImages">{{ $ts.loadRawImages }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="disableShowingAnimatedImages">{{ $ts.disableShowingAnimatedImages }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="squareAvatars">{{ $ts.squareAvatars }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="useSystemFont">{{ $ts.useSystemFont }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="useOsNativeEmojis">{{ $ts.useOsNativeEmojis }} | ||||
| 		<FormSwitch v-model="disableAnimatedMfm">{{ $ts.disableAnimatedMfm }}</FormSwitch> | ||||
| 		<FormSwitch v-model="reduceAnimation">{{ $ts.reduceUiAnimation }}</FormSwitch> | ||||
| 		<FormSwitch v-model="useBlurEffect">{{ $ts.useBlurEffect }}</FormSwitch> | ||||
| 		<FormSwitch v-model="useBlurEffectForModal">{{ $ts.useBlurEffectForModal }}</FormSwitch> | ||||
| 		<FormSwitch v-model="showGapBetweenNotesInTimeline">{{ $ts.showGapBetweenNotesInTimeline }}</FormSwitch> | ||||
| 		<FormSwitch v-model="loadRawImages">{{ $ts.loadRawImages }}</FormSwitch> | ||||
| 		<FormSwitch v-model="disableShowingAnimatedImages">{{ $ts.disableShowingAnimatedImages }}</FormSwitch> | ||||
| 		<FormSwitch v-model="squareAvatars">{{ $ts.squareAvatars }}</FormSwitch> | ||||
| 		<FormSwitch v-model="useSystemFont">{{ $ts.useSystemFont }}</FormSwitch> | ||||
| 		<FormSwitch v-model="useOsNativeEmojis">{{ $ts.useOsNativeEmojis }} | ||||
| 			<div><Mfm text="🍮🍦🍭🍩🍰🍫🍬🥞🍪" :key="useOsNativeEmojis"/></div> | ||||
| 		</FormSwitch> | ||||
| 	</FormGroup> | ||||
| 
 | ||||
| 	<FormGroup> | ||||
| 		<FormSwitch v-model:value="aiChanMode">{{ $ts.aiChanMode }}</FormSwitch> | ||||
| 		<FormSwitch v-model="aiChanMode">{{ $ts.aiChanMode }}</FormSwitch> | ||||
| 	</FormGroup> | ||||
| 
 | ||||
| 	<FormRadios v-model="fontSize"> | ||||
|  | @ -57,14 +57,14 @@ | |||
| 		<option value="veryLarge"><span style="font-size: 20px;">Aa</span></option> | ||||
| 	</FormRadios> | ||||
| 
 | ||||
| 	<FormSelect v-model:value="instanceTicker"> | ||||
| 	<FormSelect v-model="instanceTicker"> | ||||
| 		<template #label>{{ $ts.instanceTicker }}</template> | ||||
| 		<option value="none">{{ $ts._instanceTicker.none }}</option> | ||||
| 		<option value="remote">{{ $ts._instanceTicker.remote }}</option> | ||||
| 		<option value="always">{{ $ts._instanceTicker.always }}</option> | ||||
| 	</FormSelect> | ||||
| 
 | ||||
| 	<FormSelect v-model:value="nsfw"> | ||||
| 	<FormSelect v-model="nsfw"> | ||||
| 		<template #label>{{ $ts.nsfw }}</template> | ||||
| 		<option value="respect">{{ $ts._nsfw.respect }}</option> | ||||
| 		<option value="ignore">{{ $ts._nsfw.ignore }}</option> | ||||
|  | @ -73,10 +73,10 @@ | |||
| 
 | ||||
| 	<FormGroup> | ||||
| 		<template #label>{{ $ts.defaultNavigationBehaviour }}</template> | ||||
| 		<FormSwitch v-model:value="defaultSideView">{{ $ts.openInSideView }}</FormSwitch> | ||||
| 		<FormSwitch v-model="defaultSideView">{{ $ts.openInSideView }}</FormSwitch> | ||||
| 	</FormGroup> | ||||
| 
 | ||||
| 	<FormSelect v-model:value="chatOpenBehavior"> | ||||
| 	<FormSelect v-model="chatOpenBehavior"> | ||||
| 		<template #label>{{ $ts.chatOpenBehavior }}</template> | ||||
| 		<option value="page">{{ $ts.showInPage }}</option> | ||||
| 		<option value="window">{{ $ts.openInWindow }}</option> | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormTextarea v-model:value="items" tall manual-save> | ||||
| 	<FormTextarea v-model="items" tall manual-save> | ||||
| 		<span>{{ $ts.menu }}</span> | ||||
| 		<template #desc><button class="_textButton" @click="addItem">{{ $ts.addItem }}</button></template> | ||||
| 	</FormTextarea> | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
| <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="block">{{ $ts.blockedUsers }}</option> | ||||
| 	</MkTab> | ||||
|  |  | |||
|  | @ -2,18 +2,18 @@ | |||
| <FormBase> | ||||
| 	<FormLink to="/settings/update">Misskey Update</FormLink> | ||||
| 
 | ||||
| 	<FormSwitch :value="$i.injectFeaturedNote" @update:value="onChangeInjectFeaturedNote"> | ||||
| 	<FormSwitch :value="$i.injectFeaturedNote" @update:modelValue="onChangeInjectFeaturedNote"> | ||||
| 		{{ $ts.showFeaturedNotesInTimeline }} | ||||
| 	</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/experimental-features">{{ $ts.experimentalFeatures }}</FormLink> | ||||
| 
 | ||||
| 	<FormGroup> | ||||
| 		<template #label>{{ $ts.developer }}</template> | ||||
| 		<FormSwitch v-model:value="debug" @update:value="changeDebug"> | ||||
| 		<FormSwitch v-model="debug" @update:modelValue="changeDebug"> | ||||
| 			DEBUG MODE | ||||
| 		</FormSwitch> | ||||
| 		<template v-if="debug"> | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| 	<FormInfo warn>{{ $ts._plugin.installWarn }}</FormInfo> | ||||
| 
 | ||||
| 	<FormGroup> | ||||
| 		<FormTextarea v-model:value="code" tall> | ||||
| 		<FormTextarea v-model="code" tall> | ||||
| 			<span>{{ $ts.code }}</span> | ||||
| 		</FormTextarea> | ||||
| 	</FormGroup> | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| 	<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> | ||||
| 
 | ||||
| 		<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="_debobigegoPanel" style="padding: 16px;"> | ||||
| 				<div class="_keyValue"> | ||||
|  |  | |||
|  | @ -1,34 +1,34 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormGroup> | ||||
| 		<FormSwitch v-model:value="isLocked" @update:value="save()">{{ $ts.makeFollowManuallyApprove }}</FormSwitch> | ||||
| 		<FormSwitch v-model:value="autoAcceptFollowed" :disabled="!isLocked" @update:value="save()">{{ $ts.autoAcceptFollowed }}</FormSwitch> | ||||
| 		<FormSwitch v-model="isLocked" @update:modelValue="save()">{{ $ts.makeFollowManuallyApprove }}</FormSwitch> | ||||
| 		<FormSwitch v-model="autoAcceptFollowed" :disabled="!isLocked" @update:modelValue="save()">{{ $ts.autoAcceptFollowed }}</FormSwitch> | ||||
| 		<template #caption>{{ $ts.lockedAccountInfo }}</template> | ||||
| 	</FormGroup> | ||||
| 	<FormSwitch v-model:value="hideOnlineStatus" @update:value="save()"> | ||||
| 	<FormSwitch v-model="hideOnlineStatus" @update:modelValue="save()"> | ||||
| 		{{ $ts.hideOnlineStatus }} | ||||
| 		<template #desc>{{ $ts.hideOnlineStatusDescription }}</template> | ||||
| 	</FormSwitch> | ||||
| 	<FormSwitch v-model:value="noCrawle" @update:value="save()"> | ||||
| 	<FormSwitch v-model="noCrawle" @update:modelValue="save()"> | ||||
| 		{{ $ts.noCrawle }} | ||||
| 		<template #desc>{{ $ts.noCrawleDescription }}</template> | ||||
| 	</FormSwitch> | ||||
| 	<FormSwitch v-model:value="isExplorable" @update:value="save()"> | ||||
| 	<FormSwitch v-model="isExplorable" @update:modelValue="save()"> | ||||
| 		{{ $ts.makeExplorable }} | ||||
| 		<template #desc>{{ $ts.makeExplorableDescription }}</template> | ||||
| 	</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"> | ||||
| 		<template #label>{{ $ts.defaultNoteVisibility }}</template> | ||||
| 		<FormSelect v-model:value="defaultNoteVisibility"> | ||||
| 		<FormSelect v-model="defaultNoteVisibility"> | ||||
| 			<option value="public">{{ $ts._visibility.public }}</option> | ||||
| 			<option value="home">{{ $ts._visibility.home }}</option> | ||||
| 			<option value="followers">{{ $ts._visibility.followers }}</option> | ||||
| 			<option value="specified">{{ $ts._visibility.specified }}</option> | ||||
| 		</FormSelect> | ||||
| 		<FormSwitch v-model:value="defaultNoteLocalOnly">{{ $ts._visibility.localOnly }}</FormSwitch> | ||||
| 		<FormSwitch v-model="defaultNoteLocalOnly">{{ $ts._visibility.localOnly }}</FormSwitch> | ||||
| 	</FormGroup> | ||||
| 	<FormSwitch v-model:value="keepCw" @update:value="save()">{{ $ts.keepCw }}</FormSwitch> | ||||
| 	<FormSwitch v-model="keepCw" @update:modelValue="save()">{{ $ts.keepCw }}</FormSwitch> | ||||
| </FormBase> | ||||
| </template> | ||||
| 
 | ||||
|  |  | |||
|  | @ -8,26 +8,26 @@ | |||
| 		<FormButton @click="changeBanner" primary>{{ $ts._profile.changeBanner }}</FormButton> | ||||
| 	</FormGroup> | ||||
| 
 | ||||
| 	<FormInput v-model:value="name" :max="30" manual-save> | ||||
| 	<FormInput v-model="name" :max="30" manual-save> | ||||
| 		<span>{{ $ts._profile.name }}</span> | ||||
| 	</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> | ||||
| 		<template #desc>{{ $ts._profile.youCanIncludeHashtags }}</template> | ||||
| 	</FormTextarea> | ||||
| 
 | ||||
| 	<FormInput v-model:value="location" manual-save> | ||||
| 	<FormInput v-model="location" manual-save> | ||||
| 		<span>{{ $ts.location }}</span> | ||||
| 		<template #prefix><i class="fas fa-map-marker-alt"></i></template> | ||||
| 	</FormInput> | ||||
| 
 | ||||
| 	<FormInput v-model:value="birthday" type="date" manual-save> | ||||
| 	<FormInput v-model="birthday" type="date" manual-save> | ||||
| 		<span>{{ $ts.birthday }}</span> | ||||
| 		<template #prefix><i class="fas fa-birthday-cake"></i></template> | ||||
| 	</FormInput> | ||||
| 
 | ||||
| 	<FormSelect v-model:value="lang"> | ||||
| 	<FormSelect v-model="lang"> | ||||
| 		<template #label>{{ $ts.language }}</template> | ||||
| 		<option v-for="x in langs" :value="x[0]" :key="x[0]">{{ x[1] }}</option> | ||||
| 	</FormSelect> | ||||
|  | @ -37,11 +37,11 @@ | |||
| 		<template #caption>{{ $ts._profile.metadataDescription }}</template> | ||||
| 	</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> | ||||
| </template> | ||||
| 
 | ||||
|  |  | |||
|  | @ -19,7 +19,7 @@ | |||
| 		</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> | ||||
| 			</FormTextarea> | ||||
| 			<FormButton @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton> | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
| <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> | ||||
| 	</FormRange> | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormGroup> | ||||
| 		<FormTextarea v-model:value="installThemeCode"> | ||||
| 		<FormTextarea v-model="installThemeCode"> | ||||
| 			<span>{{ $ts._theme.code }}</span> | ||||
| 		</FormTextarea> | ||||
| 		<FormButton @click="() => preview(installThemeCode)" :disabled="installThemeCode == null" inline><i class="fas fa-eye"></i> {{ $ts.preview }}</FormButton> | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
| <FormBase> | ||||
| 	<FormSelect v-model:value="selectedThemeId"> | ||||
| 	<FormSelect v-model="selectedThemeId"> | ||||
| 		<template #label>{{ $ts.theme }}</template> | ||||
| 		<optgroup :label="$ts._theme.installedThemes"> | ||||
| 			<option v-for="x in installedThemes" :value="x.id" :key="x.id">{{ x.name }}</option> | ||||
|  |  | |||
|  | @ -23,11 +23,11 @@ | |||
| 				</div> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 		<FormSwitch v-model:value="syncDeviceDarkMode">{{ $ts.syncDeviceDarkMode }}</FormSwitch> | ||||
| 		<FormSwitch v-model="syncDeviceDarkMode">{{ $ts.syncDeviceDarkMode }}</FormSwitch> | ||||
| 	</FormGroup> | ||||
| 
 | ||||
| 	<template v-if="darkMode"> | ||||
| 		<FormSelect v-model:value="darkThemeId"> | ||||
| 		<FormSelect v-model="darkThemeId"> | ||||
| 			<template #label>{{ $ts.themeForDarkMode }}</template> | ||||
| 			<optgroup :label="$ts.darkThemes"> | ||||
| 				<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> | ||||
| 			</optgroup> | ||||
| 		</FormSelect> | ||||
| 		<FormSelect v-model:value="lightThemeId"> | ||||
| 		<FormSelect v-model="lightThemeId"> | ||||
| 			<template #label>{{ $ts.themeForLightMode }}</template> | ||||
| 			<optgroup :label="$ts.lightThemes"> | ||||
| 				<option v-for="x in lightThemes" :value="x.id" :key="x.id">{{ x.name }}</option> | ||||
|  | @ -47,7 +47,7 @@ | |||
| 		</FormSelect> | ||||
| 	</template> | ||||
| 	<template v-else> | ||||
| 		<FormSelect v-model:value="lightThemeId"> | ||||
| 		<FormSelect v-model="lightThemeId"> | ||||
| 			<template #label>{{ $ts.themeForLightMode }}</template> | ||||
| 			<optgroup :label="$ts.lightThemes"> | ||||
| 				<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> | ||||
| 			</optgroup> | ||||
| 		</FormSelect> | ||||
| 		<FormSelect v-model:value="darkThemeId"> | ||||
| 		<FormSelect v-model="darkThemeId"> | ||||
| 			<template #label>{{ $ts.themeForDarkMode }}</template> | ||||
| 			<optgroup :label="$ts.darkThemes"> | ||||
| 				<option v-for="x in darkThemes" :value="x.id" :key="x.id">{{ x.name }}</option> | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
| <div> | ||||
| 	<MkTab v-model:value="tab"> | ||||
| 	<MkTab v-model="tab"> | ||||
| 		<option value="soft">{{ $ts._wordMute.soft }}</option> | ||||
| 		<option value="hard">{{ $ts._wordMute.hard }}</option> | ||||
| 	</MkTab> | ||||
|  | @ -8,14 +8,14 @@ | |||
| 		<div class="_debobigegoItem"> | ||||
| 			<div v-show="tab === 'soft'"> | ||||
| 				<FormInfo>{{ $ts._wordMute.softDescription }}</FormInfo> | ||||
| 				<FormTextarea v-model:value="softMutedWords"> | ||||
| 				<FormTextarea v-model="softMutedWords"> | ||||
| 					<span>{{ $ts._wordMute.muteWords }}</span> | ||||
| 					<template #desc>{{ $ts._wordMute.muteWordsDescription }}<br>{{ $ts._wordMute.muteWordsDescription2 }}</template> | ||||
| 				</FormTextarea> | ||||
| 			</div> | ||||
| 			<div v-show="tab === 'hard'"> | ||||
| 				<FormInfo>{{ $ts._wordMute.hardDescription }}</FormInfo> | ||||
| 				<FormTextarea v-model:value="hardMutedWords"> | ||||
| 				<FormTextarea v-model="hardMutedWords"> | ||||
| 					<span>{{ $ts._wordMute.muteWords }}</span> | ||||
| 					<template #desc>{{ $ts._wordMute.muteWordsDescription }}<br>{{ $ts._wordMute.muteWordsDescription2 }}</template> | ||||
| 				</FormTextarea> | ||||
|  |  | |||
|  | @ -37,7 +37,7 @@ | |||
| 	</div> | ||||
| 
 | ||||
| 	<FormGroup v-if="codeEnabled"> | ||||
| 		<FormTextarea v-model:value="themeCode" tall> | ||||
| 		<FormTextarea v-model="themeCode" tall> | ||||
| 			<span>{{ $ts._theme.code }}</span> | ||||
| 		</FormTextarea> | ||||
| 		<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> | ||||
| 
 | ||||
| 	<FormGroup v-if="descriptionEnabled"> | ||||
| 		<FormTextarea v-model:value="description"> | ||||
| 		<FormTextarea v-model="description"> | ||||
| 			<span>{{ $ts._theme.description }}</span> | ||||
| 		</FormTextarea> | ||||
| 	</FormGroup> | ||||
|  |  | |||
|  | @ -20,9 +20,9 @@ | |||
| 		</FormGroup> | ||||
| 
 | ||||
| 		<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 @update:value="toggleSilence" v-model:value="silenced">{{ $ts.silence }}</FormSwitch> | ||||
| 			<FormSwitch @update:value="toggleSuspend" v-model:value="suspended">{{ $ts.suspend }}</FormSwitch> | ||||
| 			<FormSwitch v-if="user.host == null && $i.isAdmin && (moderator || !user.isAdmin)" @update:modelValue="toggleModerator" v-model="moderator">{{ $ts.moderator }}</FormSwitch> | ||||
| 			<FormSwitch @update:modelValue="toggleSilence" v-model="silenced">{{ $ts.silence }}</FormSwitch> | ||||
| 			<FormSwitch @update:modelValue="toggleSuspend" v-model="suspended">{{ $ts.suspend }}</FormSwitch> | ||||
| 		</FormGroup> | ||||
| 
 | ||||
| 		<FormGroup> | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
| <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="replies">{{ $ts.notesAndReplies }}</option> | ||||
| 		<option value="files">{{ $ts.withFiles }}</option> | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
| 		<div class="body"> | ||||
| 			<p v-if="note.cw != null" class="cw"> | ||||
| 				<span class="text" v-if="note.cw != ''">{{ note.cw }}</span> | ||||
| 				<XCwButton v-model:value="showContent" :note="note"/> | ||||
| 				<XCwButton v-model="showContent" :note="note"/> | ||||
| 			</p> | ||||
| 			<div class="content" v-show="note.cw == null || showContent"> | ||||
| 				<XSubNote-content class="text" :note="note"/> | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
| 			<div class="body"> | ||||
| 				<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" /> | ||||
| 					<XCwButton v-model:value="showContent" :note="note"/> | ||||
| 					<XCwButton v-model="showContent" :note="note"/> | ||||
| 				</p> | ||||
| 				<div class="content" v-show="note.cw == null || showContent"> | ||||
| 					<XSubNote-content class="text" :note="note"/> | ||||
|  |  | |||
|  | @ -42,7 +42,7 @@ | |||
| 			<div class="body"> | ||||
| 				<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"/> | ||||
| 					<XCwButton v-model:value="showContent" :note="appearNote"/> | ||||
| 					<XCwButton v-model="showContent" :note="appearNote"/> | ||||
| 				</p> | ||||
| 				<div class="content" :class="{ collapsed }" v-show="appearNote.cw == null || showContent"> | ||||
| 					<div class="text"> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue