Improve MisskeyPages
* ifブロック を追加 * ボタンやスイッチなどのテキストに変数使えるようにした
This commit is contained in:
		@@ -0,0 +1,54 @@
 | 
			
		||||
<template>
 | 
			
		||||
<x-container @remove="() => $emit('remove')">
 | 
			
		||||
	<template #header><fa :icon="faBolt"/> {{ $t('blocks.button') }}</template>
 | 
			
		||||
 | 
			
		||||
	<section class="xfhsjczc">
 | 
			
		||||
		<ui-input v-model="value.text"><span>{{ $t('blocks._button.text') }}</span></ui-input>
 | 
			
		||||
		<ui-select v-model="value.action">
 | 
			
		||||
			<template #label>{{ $t('blocks._button.action') }}</template>
 | 
			
		||||
			<option value="dialog">{{ $t('blocks._button._action.dialog') }}</option>
 | 
			
		||||
			<option value="resetRandom">{{ $t('blocks._button._action.resetRandom') }}</option>
 | 
			
		||||
		</ui-select>
 | 
			
		||||
		<ui-input v-if="value.action === 'dialog'" v-model="value.content"><span>{{ $t('blocks._button._action._dialog.content') }}</span></ui-input>
 | 
			
		||||
	</section>
 | 
			
		||||
</x-container>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
import { faBolt } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
import i18n from '../../../../../i18n';
 | 
			
		||||
import XContainer from '../page-editor.container.vue';
 | 
			
		||||
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
	i18n: i18n('pages'),
 | 
			
		||||
 | 
			
		||||
	components: {
 | 
			
		||||
		XContainer
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	props: {
 | 
			
		||||
		value: {
 | 
			
		||||
			required: true
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			faBolt
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	created() {
 | 
			
		||||
		if (this.value.text == null) Vue.set(this.value, 'text', '');
 | 
			
		||||
		if (this.value.action == null) Vue.set(this.value, 'action', 'dialog');
 | 
			
		||||
		if (this.value.content == null) Vue.set(this.value, 'content', null);
 | 
			
		||||
	},
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="stylus" scoped>
 | 
			
		||||
.xfhsjczc
 | 
			
		||||
	padding 0 16px 0 16px
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,113 @@
 | 
			
		||||
<template>
 | 
			
		||||
<x-container @remove="() => $emit('remove')">
 | 
			
		||||
	<template #header><fa :icon="faQuestion"/> {{ $t('blocks.if') }}</template>
 | 
			
		||||
	<template #func>
 | 
			
		||||
		<button @click="add()">
 | 
			
		||||
			<fa :icon="faPlus"/>
 | 
			
		||||
		</button>
 | 
			
		||||
	</template>
 | 
			
		||||
 | 
			
		||||
	<section class="romcojzs">
 | 
			
		||||
		<ui-select v-model="value.var">
 | 
			
		||||
			<template #label>{{ $t('blocks._if.variable') }}</template>
 | 
			
		||||
			<option v-for="v in aiScript.getVarsByType('boolean')" :value="v.name">{{ v.name }}</option>
 | 
			
		||||
			<optgroup :label="$t('script.pageVariables')">
 | 
			
		||||
				<option v-for="v in aiScript.getPageVarsByType('boolean')" :value="v">{{ v }}</option>
 | 
			
		||||
			</optgroup>
 | 
			
		||||
			<optgroup :label="$t('script.enviromentVariables')">
 | 
			
		||||
				<option v-for="v in aiScript.getEnvVarsByType('boolean')" :value="v">{{ v }}</option>
 | 
			
		||||
			</optgroup>
 | 
			
		||||
		</ui-select>
 | 
			
		||||
 | 
			
		||||
		<div class="children">
 | 
			
		||||
			<x-block v-for="child in value.children" :value="child" @input="v => updateItem(v)" @remove="() => remove(child)" :key="child.id" :ai-script="aiScript"/>
 | 
			
		||||
		</div>
 | 
			
		||||
	</section>
 | 
			
		||||
</x-container>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
import * as uuid from 'uuid';
 | 
			
		||||
import { faPlus, faQuestion } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
import i18n from '../../../../../i18n';
 | 
			
		||||
import XContainer from '../page-editor.container.vue';
 | 
			
		||||
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
	i18n: i18n('pages'),
 | 
			
		||||
 | 
			
		||||
	components: {
 | 
			
		||||
		XContainer
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	inject: ['getPageBlockList'],
 | 
			
		||||
 | 
			
		||||
	props: {
 | 
			
		||||
		value: {
 | 
			
		||||
			required: true
 | 
			
		||||
		},
 | 
			
		||||
		aiScript: {
 | 
			
		||||
			required: true,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			faPlus, faQuestion
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	beforeCreate() {
 | 
			
		||||
		this.$options.components.XBlock = require('../page-editor.block.vue').default
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	created() {
 | 
			
		||||
		if (this.value.children == null) Vue.set(this.value, 'children', []);
 | 
			
		||||
		if (this.value.var === undefined) Vue.set(this.value, 'var', null);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	methods: {
 | 
			
		||||
		async add() {
 | 
			
		||||
			const { canceled, result: type } = await this.$root.dialog({
 | 
			
		||||
				type: null,
 | 
			
		||||
				title: this.$t('choose-block'),
 | 
			
		||||
				select: {
 | 
			
		||||
					items: this.getPageBlockList()
 | 
			
		||||
				},
 | 
			
		||||
				showCancelButton: true
 | 
			
		||||
			});
 | 
			
		||||
			if (canceled) return;
 | 
			
		||||
 | 
			
		||||
			const id = uuid.v4();
 | 
			
		||||
			this.value.children.push({ id, type });
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		updateItem(v) {
 | 
			
		||||
			const i = this.value.children.findIndex(x => x.id === v.id);
 | 
			
		||||
			const newValue = [
 | 
			
		||||
				...this.value.children.slice(0, i),
 | 
			
		||||
				v,
 | 
			
		||||
				...this.value.children.slice(i + 1)
 | 
			
		||||
			];
 | 
			
		||||
			this.value.children = newValue;
 | 
			
		||||
			this.$emit('input', this.value);
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		remove(el) {
 | 
			
		||||
			const i = this.value.children.findIndex(x => x.id === el.id);
 | 
			
		||||
			const newValue = [
 | 
			
		||||
				...this.value.children.slice(0, i),
 | 
			
		||||
				...this.value.children.slice(i + 1)
 | 
			
		||||
			];
 | 
			
		||||
			this.value.children = newValue;
 | 
			
		||||
			this.$emit('input', this.value);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="stylus" scoped>
 | 
			
		||||
.romcojzs
 | 
			
		||||
	padding 0 16px 16px 16px
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,78 @@
 | 
			
		||||
<template>
 | 
			
		||||
<x-container @remove="() => $emit('remove')">
 | 
			
		||||
	<template #header><fa :icon="faImage"/> {{ $t('blocks.image') }}</template>
 | 
			
		||||
	<template #func>
 | 
			
		||||
		<button @click="choose()">
 | 
			
		||||
			<fa :icon="faFolderOpen"/>
 | 
			
		||||
		</button>
 | 
			
		||||
	</template>
 | 
			
		||||
 | 
			
		||||
	<section class="oyyftmcf">
 | 
			
		||||
		<x-file-thumbnail class="preview" v-if="file" :file="file" :detail="true" fit="contain" @click="choose()"/>
 | 
			
		||||
	</section>
 | 
			
		||||
</x-container>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
import { faPencilAlt } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
import { faImage, faFolderOpen } from '@fortawesome/free-regular-svg-icons';
 | 
			
		||||
import i18n from '../../../../../i18n';
 | 
			
		||||
import XContainer from '../page-editor.container.vue';
 | 
			
		||||
import XFileThumbnail from '../../drive-file-thumbnail.vue';
 | 
			
		||||
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
	i18n: i18n('pages'),
 | 
			
		||||
 | 
			
		||||
	components: {
 | 
			
		||||
		XContainer, XFileThumbnail
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	props: {
 | 
			
		||||
		value: {
 | 
			
		||||
			required: true
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			file: null,
 | 
			
		||||
			faPencilAlt, faImage, faFolderOpen
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	created() {
 | 
			
		||||
		if (this.value.fileId === undefined) Vue.set(this.value, 'fileId', null);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	mounted() {
 | 
			
		||||
		if (this.value.fileId == null) {
 | 
			
		||||
			this.choose();
 | 
			
		||||
		} else {
 | 
			
		||||
			this.$root.api('drive/files/show', {
 | 
			
		||||
				fileId: this.value.fileId
 | 
			
		||||
			}).then(file => {
 | 
			
		||||
				this.file = file;
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	methods: {
 | 
			
		||||
		async choose() {
 | 
			
		||||
			this.$chooseDriveFile({
 | 
			
		||||
				multiple: false
 | 
			
		||||
			}).then(file => {
 | 
			
		||||
				this.file = file;
 | 
			
		||||
				this.value.fileId = file.id;
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="stylus" scoped>
 | 
			
		||||
.oyyftmcf
 | 
			
		||||
	> .preview
 | 
			
		||||
		height 150px
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,61 @@
 | 
			
		||||
<template>
 | 
			
		||||
<x-container @remove="() => $emit('remove')">
 | 
			
		||||
	<template #header><fa :icon="faBolt"/> {{ $t('blocks.input') }}</template>
 | 
			
		||||
 | 
			
		||||
	<section class="dnvasjon">
 | 
			
		||||
		<ui-input v-model="value.name"><template #prefix><fa :icon="faSquareRootAlt"/></template><span>{{ $t('blocks._input.name') }}</span></ui-input>
 | 
			
		||||
		<ui-input v-model="value.text"><span>{{ $t('blocks._input.text') }}</span></ui-input>
 | 
			
		||||
		<ui-select v-model="value.inputType">
 | 
			
		||||
			<template #label>{{ $t('blocks._input.inputType') }}</template>
 | 
			
		||||
			<option value="string">{{ $t('blocks._input._inputType.string') }}</option>
 | 
			
		||||
			<option value="number">{{ $t('blocks._input._inputType.number') }}</option>
 | 
			
		||||
		</ui-select>
 | 
			
		||||
		<ui-input v-model="value.default" :type="value.inputType"><span>{{ $t('blocks._input.default') }}</span></ui-input>
 | 
			
		||||
	</section>
 | 
			
		||||
</x-container>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
import { faBolt, faSquareRootAlt } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
import i18n from '../../../../../i18n';
 | 
			
		||||
import XContainer from '../page-editor.container.vue';
 | 
			
		||||
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
	i18n: i18n('pages'),
 | 
			
		||||
 | 
			
		||||
	components: {
 | 
			
		||||
		XContainer
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	props: {
 | 
			
		||||
		value: {
 | 
			
		||||
			required: true
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			faBolt, faSquareRootAlt
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	created() {
 | 
			
		||||
		if (this.value.name == null) Vue.set(this.value, 'name', '');
 | 
			
		||||
		if (this.value.inputType == null) Vue.set(this.value, 'inputType', 'string');
 | 
			
		||||
 | 
			
		||||
		this.$watch('value.inputType', t => {
 | 
			
		||||
			if (this.value.default != null) {
 | 
			
		||||
				if (t === 'number') this.value.default = parseInt(this.value.default, 10);
 | 
			
		||||
				if (t === 'string') this.value.default = this.value.default.toString();
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
	},
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="stylus" scoped>
 | 
			
		||||
.dnvasjon
 | 
			
		||||
	padding 0 16px 0 16px
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,126 @@
 | 
			
		||||
<template>
 | 
			
		||||
<x-container @remove="() => $emit('remove')">
 | 
			
		||||
	<template #header><fa :icon="faStickyNote"/> {{ value.title }}</template>
 | 
			
		||||
	<template #func>
 | 
			
		||||
		<button @click="rename()">
 | 
			
		||||
			<fa :icon="faPencilAlt"/>
 | 
			
		||||
		</button>
 | 
			
		||||
		<button @click="add()">
 | 
			
		||||
			<fa :icon="faPlus"/>
 | 
			
		||||
		</button>
 | 
			
		||||
	</template>
 | 
			
		||||
 | 
			
		||||
	<section class="ilrvjyvi">
 | 
			
		||||
		<div class="children">
 | 
			
		||||
			<x-block v-for="child in value.children" :value="child" @input="v => updateItem(v)" @remove="() => remove(child)" :key="child.id" :ai-script="aiScript"/>
 | 
			
		||||
		</div>
 | 
			
		||||
	</section>
 | 
			
		||||
</x-container>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
import * as uuid from 'uuid';
 | 
			
		||||
import { faPlus, faPencilAlt } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
import { faStickyNote } from '@fortawesome/free-regular-svg-icons';
 | 
			
		||||
import i18n from '../../../../../i18n';
 | 
			
		||||
import XContainer from '../page-editor.container.vue';
 | 
			
		||||
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
	i18n: i18n('pages'),
 | 
			
		||||
 | 
			
		||||
	components: {
 | 
			
		||||
		XContainer
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	inject: ['getPageBlockList'],
 | 
			
		||||
 | 
			
		||||
	props: {
 | 
			
		||||
		value: {
 | 
			
		||||
			required: true
 | 
			
		||||
		},
 | 
			
		||||
		aiScript: {
 | 
			
		||||
			required: true,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			faStickyNote, faPlus, faPencilAlt
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	beforeCreate() {
 | 
			
		||||
		this.$options.components.XBlock = require('../page-editor.block.vue').default
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	created() {
 | 
			
		||||
		if (this.value.title == null) Vue.set(this.value, 'title', null);
 | 
			
		||||
		if (this.value.children == null) Vue.set(this.value, 'children', []);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	mounted() {
 | 
			
		||||
		if (this.value.title == null) {
 | 
			
		||||
			this.rename();
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	methods: {
 | 
			
		||||
		async rename() {
 | 
			
		||||
			const { canceled, result: title } = await this.$root.dialog({
 | 
			
		||||
				title: 'Enter title',
 | 
			
		||||
				input: {
 | 
			
		||||
					type: 'text',
 | 
			
		||||
					default: this.value.title
 | 
			
		||||
				},
 | 
			
		||||
				showCancelButton: true
 | 
			
		||||
			});
 | 
			
		||||
			if (canceled) return;
 | 
			
		||||
			this.value.title = title;
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		async add() {
 | 
			
		||||
			const { canceled, result: type } = await this.$root.dialog({
 | 
			
		||||
				type: null,
 | 
			
		||||
				title: this.$t('choose-block'),
 | 
			
		||||
				select: {
 | 
			
		||||
					items: this.getPageBlockList()
 | 
			
		||||
				},
 | 
			
		||||
				showCancelButton: true
 | 
			
		||||
			});
 | 
			
		||||
			if (canceled) return;
 | 
			
		||||
 | 
			
		||||
			const id = uuid.v4();
 | 
			
		||||
			this.value.children.push({ id, type });
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		updateItem(v) {
 | 
			
		||||
			const i = this.value.children.findIndex(x => x.id === v.id);
 | 
			
		||||
			const newValue = [
 | 
			
		||||
				...this.value.children.slice(0, i),
 | 
			
		||||
				v,
 | 
			
		||||
				...this.value.children.slice(i + 1)
 | 
			
		||||
			];
 | 
			
		||||
			this.value.children = newValue;
 | 
			
		||||
			this.$emit('input', this.value);
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		remove(el) {
 | 
			
		||||
			const i = this.value.children.findIndex(x => x.id === el.id);
 | 
			
		||||
			const newValue = [
 | 
			
		||||
				...this.value.children.slice(0, i),
 | 
			
		||||
				...this.value.children.slice(i + 1)
 | 
			
		||||
			];
 | 
			
		||||
			this.value.children = newValue;
 | 
			
		||||
			this.$emit('input', this.value);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="stylus" scoped>
 | 
			
		||||
.ilrvjyvi
 | 
			
		||||
	> .children
 | 
			
		||||
		padding 16px
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,48 @@
 | 
			
		||||
<template>
 | 
			
		||||
<x-container @remove="() => $emit('remove')">
 | 
			
		||||
	<template #header><fa :icon="faBolt"/> {{ $t('blocks.switch') }}</template>
 | 
			
		||||
 | 
			
		||||
	<section class="kjuadyyj">
 | 
			
		||||
		<ui-input v-model="value.name"><template #prefix><fa :icon="faSquareRootAlt"/></template><span>{{ $t('blocks._switch.name') }}</span></ui-input>
 | 
			
		||||
		<ui-input v-model="value.text"><span>{{ $t('blocks._switch.text') }}</span></ui-input>
 | 
			
		||||
		<ui-switch v-model="value.default"><span>{{ $t('blocks._switch.default') }}</span></ui-switch>
 | 
			
		||||
	</section>
 | 
			
		||||
</x-container>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
import { faBolt, faSquareRootAlt } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
import i18n from '../../../../../i18n';
 | 
			
		||||
import XContainer from '../page-editor.container.vue';
 | 
			
		||||
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
	i18n: i18n('pages'),
 | 
			
		||||
 | 
			
		||||
	components: {
 | 
			
		||||
		XContainer
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	props: {
 | 
			
		||||
		value: {
 | 
			
		||||
			required: true
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			faBolt, faSquareRootAlt
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	created() {
 | 
			
		||||
		if (this.value.name == null) Vue.set(this.value, 'name', '');
 | 
			
		||||
	},
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="stylus" scoped>
 | 
			
		||||
.kjuadyyj
 | 
			
		||||
	padding 0 16px 16px 16px
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,57 @@
 | 
			
		||||
<template>
 | 
			
		||||
<x-container @remove="() => $emit('remove')">
 | 
			
		||||
	<template #header><fa :icon="faAlignLeft"/> {{ $t('blocks.text') }}</template>
 | 
			
		||||
 | 
			
		||||
	<section class="ihymsbbe">
 | 
			
		||||
		<textarea v-model="value.text"></textarea>
 | 
			
		||||
	</section>
 | 
			
		||||
</x-container>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
import { faAlignLeft } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
import i18n from '../../../../../i18n';
 | 
			
		||||
import XContainer from '../page-editor.container.vue';
 | 
			
		||||
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
	i18n: i18n('pages'),
 | 
			
		||||
 | 
			
		||||
	components: {
 | 
			
		||||
		XContainer
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	props: {
 | 
			
		||||
		value: {
 | 
			
		||||
			required: true
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			faAlignLeft,
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	created() {
 | 
			
		||||
		if (this.value.text == null) Vue.set(this.value, 'text', '');
 | 
			
		||||
	},
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="stylus" scoped>
 | 
			
		||||
.ihymsbbe
 | 
			
		||||
	> textarea
 | 
			
		||||
		display block
 | 
			
		||||
		-webkit-appearance none
 | 
			
		||||
		-moz-appearance none
 | 
			
		||||
		appearance none
 | 
			
		||||
		width 100%
 | 
			
		||||
		min-width 100%
 | 
			
		||||
		min-height 150px
 | 
			
		||||
		border none
 | 
			
		||||
		box-shadow none
 | 
			
		||||
		padding 16px
 | 
			
		||||
		background transparent
 | 
			
		||||
		color var(--text)
 | 
			
		||||
</style>
 | 
			
		||||
		Reference in New Issue
	
	Block a user