wip
This commit is contained in:
		
							parent
							
								
									be80c98ee5
								
							
						
					
					
						commit
						e8affdc730
					
				
					 18 changed files with 56 additions and 48 deletions
				
			
		| 
						 | 
					@ -9,7 +9,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script lang="ts">
 | 
					<script lang="ts">
 | 
				
			||||||
import Vue from 'vue';
 | 
					import Vue from 'vue';
 | 
				
			||||||
import anime from 'animejs';
 | 
					import * as anime from 'animejs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default Vue.extend({
 | 
					export default Vue.extend({
 | 
				
			||||||
	props: ['post', 'source', 'compact'],
 | 
						props: ['post', 'source', 'compact'],
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,7 +20,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script lang="ts">
 | 
					<script lang="ts">
 | 
				
			||||||
import Vue from 'vue';
 | 
					import Vue from 'vue';
 | 
				
			||||||
import anime from 'animejs';
 | 
					import * as anime from 'animejs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const placeholder = '%i18n:common.tags.mk-reaction-picker.choose-reaction%';
 | 
					const placeholder = '%i18n:common.tags.mk-reaction-picker.choose-reaction%';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,7 @@
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script lang="typescript">
 | 
					<script lang="typescript">
 | 
				
			||||||
	import anime from 'animejs';
 | 
						import * as anime from 'animejs';
 | 
				
			||||||
	import Ellipsis from './ellipsis.vue';
 | 
						import Ellipsis from './ellipsis.vue';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	export default {
 | 
						export default {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -96,7 +96,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	</style>
 | 
						</style>
 | 
				
			||||||
	<script lang="typescript">
 | 
						<script lang="typescript">
 | 
				
			||||||
		import anime from 'animejs';
 | 
							import * as anime from 'animejs';
 | 
				
			||||||
		import contains from '../../common/scripts/contains';
 | 
							import contains from '../../common/scripts/contains';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.root.addEventListener('contextmenu', e => {
 | 
							this.root.addEventListener('contextmenu', e => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,7 +35,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	</style>
 | 
						</style>
 | 
				
			||||||
	<script lang="typescript">
 | 
						<script lang="typescript">
 | 
				
			||||||
		import anime from 'animejs';
 | 
							import * as anime from 'animejs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,7 +83,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	</style>
 | 
						</style>
 | 
				
			||||||
	<script lang="typescript">
 | 
						<script lang="typescript">
 | 
				
			||||||
		import anime from 'animejs';
 | 
							import * as anime from 'animejs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.canThrough = opts.canThrough != null ? opts.canThrough : true;
 | 
							this.canThrough = opts.canThrough != null ? opts.canThrough : true;
 | 
				
			||||||
		this.opts.buttons.forEach(button => {
 | 
							this.opts.buttons.forEach(button => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -141,7 +141,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	</style>
 | 
						</style>
 | 
				
			||||||
	<script lang="typescript">
 | 
						<script lang="typescript">
 | 
				
			||||||
		import anime from 'animejs';
 | 
							import * as anime from 'animejs';
 | 
				
			||||||
		import bytesToSize from '../../../common/scripts/bytes-to-size';
 | 
							import bytesToSize from '../../../common/scripts/bytes-to-size';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.mixin('i');
 | 
							this.mixin('i');
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,7 +49,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	</style>
 | 
						</style>
 | 
				
			||||||
	<script lang="typescript">
 | 
						<script lang="typescript">
 | 
				
			||||||
		import anime from 'animejs';
 | 
							import * as anime from 'animejs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.data = {
 | 
							this.data = {
 | 
				
			||||||
			folder: undefined,
 | 
								folder: undefined,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,7 +27,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	</style>
 | 
						</style>
 | 
				
			||||||
	<script lang="typescript">
 | 
						<script lang="typescript">
 | 
				
			||||||
		import anime from 'animejs';
 | 
							import * as anime from 'animejs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.mixin('widget');
 | 
							this.mixin('widget');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,7 +99,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	</style>
 | 
						</style>
 | 
				
			||||||
	<script lang="typescript">
 | 
						<script lang="typescript">
 | 
				
			||||||
		import anime from 'animejs';
 | 
							import * as anime from 'animejs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.mixin('i');
 | 
							this.mixin('i');
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script lang="ts">
 | 
					<script lang="ts">
 | 
				
			||||||
import Vue from 'vue';
 | 
					import Vue from 'vue';
 | 
				
			||||||
import anime from 'animejs';
 | 
					import * as anime from 'animejs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default Vue.extend({
 | 
					export default Vue.extend({
 | 
				
			||||||
	props: ['image'],
 | 
						props: ['image'],
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,6 +10,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script lang="ts">
 | 
					<script lang="ts">
 | 
				
			||||||
import Vue from 'vue';
 | 
					import Vue from 'vue';
 | 
				
			||||||
 | 
					import MkImagesImageDialog from './images-image-dialog.vue';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default Vue.extend({
 | 
					export default Vue.extend({
 | 
				
			||||||
	props: ['image'],
 | 
						props: ['image'],
 | 
				
			||||||
| 
						 | 
					@ -23,7 +24,7 @@ export default Vue.extend({
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	methods: {
 | 
						methods: {
 | 
				
			||||||
		onMousemove(e) {
 | 
							onMousemove(e) {
 | 
				
			||||||
			const rect = this.$refs.view.getBoundingClientRect();
 | 
								const rect = this.$el.getBoundingClientRect();
 | 
				
			||||||
			const mouseX = e.clientX - rect.left;
 | 
								const mouseX = e.clientX - rect.left;
 | 
				
			||||||
			const mouseY = e.clientY - rect.top;
 | 
								const mouseY = e.clientY - rect.top;
 | 
				
			||||||
			const xp = mouseX / this.$el.offsetWidth * 100;
 | 
								const xp = mouseX / this.$el.offsetWidth * 100;
 | 
				
			||||||
| 
						 | 
					@ -36,11 +37,12 @@ export default Vue.extend({
 | 
				
			||||||
			this.$el.style.backgroundPosition = '';
 | 
								this.$el.style.backgroundPosition = '';
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		onClick(ev) {
 | 
							onClick() {
 | 
				
			||||||
			riot.mount(document.body.appendChild(document.createElement('mk-image-dialog')), {
 | 
								document.body.appendChild(new MkImagesImageDialog({
 | 
				
			||||||
				image: this.image
 | 
									propsData: {
 | 
				
			||||||
			});
 | 
										image: this.image
 | 
				
			||||||
			return false;
 | 
									}
 | 
				
			||||||
 | 
								}).$mount().$el);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,40 +20,40 @@ export default Vue.extend({
 | 
				
			||||||
		const tags = this.$refs.image as Vue[];
 | 
							const tags = this.$refs.image as Vue[];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (this.images.length == 1) {
 | 
							if (this.images.length == 1) {
 | 
				
			||||||
			this.$el.style.gridTemplateRows = '1fr';
 | 
								(this.$el.style as any).gridTemplateRows = '1fr';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			tags[0].$el.style.gridColumn = '1 / 2';
 | 
								(tags[0].$el.style as any).gridColumn = '1 / 2';
 | 
				
			||||||
			tags[0].$el.style.gridRow = '1 / 2';
 | 
								(tags[0].$el.style as any).gridRow = '1 / 2';
 | 
				
			||||||
		} else if (this.images.length == 2) {
 | 
							} else if (this.images.length == 2) {
 | 
				
			||||||
			this.$el.style.gridTemplateColumns = '1fr 1fr';
 | 
								(this.$el.style as any).gridTemplateColumns = '1fr 1fr';
 | 
				
			||||||
			this.$el.style.gridTemplateRows = '1fr';
 | 
								(this.$el.style as any).gridTemplateRows = '1fr';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			tags[0].$el.style.gridColumn = '1 / 2';
 | 
								(tags[0].$el.style as any).gridColumn = '1 / 2';
 | 
				
			||||||
			tags[0].$el.style.gridRow = '1 / 2';
 | 
								(tags[0].$el.style as any).gridRow = '1 / 2';
 | 
				
			||||||
			tags[1].$el.style.gridColumn = '2 / 3';
 | 
								(tags[1].$el.style as any).gridColumn = '2 / 3';
 | 
				
			||||||
			tags[1].$el.style.gridRow = '1 / 2';
 | 
								(tags[1].$el.style as any).gridRow = '1 / 2';
 | 
				
			||||||
		} else if (this.images.length == 3) {
 | 
							} else if (this.images.length == 3) {
 | 
				
			||||||
			this.$el.style.gridTemplateColumns = '1fr 0.5fr';
 | 
								(this.$el.style as any).gridTemplateColumns = '1fr 0.5fr';
 | 
				
			||||||
			this.$el.style.gridTemplateRows = '1fr 1fr';
 | 
								(this.$el.style as any).gridTemplateRows = '1fr 1fr';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			tags[0].$el.style.gridColumn = '1 / 2';
 | 
								(tags[0].$el.style as any).gridColumn = '1 / 2';
 | 
				
			||||||
			tags[0].$el.style.gridRow = '1 / 3';
 | 
								(tags[0].$el.style as any).gridRow = '1 / 3';
 | 
				
			||||||
			tags[1].$el.style.gridColumn = '2 / 3';
 | 
								(tags[1].$el.style as any).gridColumn = '2 / 3';
 | 
				
			||||||
			tags[1].$el.style.gridRow = '1 / 2';
 | 
								(tags[1].$el.style as any).gridRow = '1 / 2';
 | 
				
			||||||
			tags[2].$el.style.gridColumn = '2 / 3';
 | 
								(tags[2].$el.style as any).gridColumn = '2 / 3';
 | 
				
			||||||
			tags[2].$el.style.gridRow = '2 / 3';
 | 
								(tags[2].$el.style as any).gridRow = '2 / 3';
 | 
				
			||||||
		} else if (this.images.length == 4) {
 | 
							} else if (this.images.length == 4) {
 | 
				
			||||||
			this.$el.style.gridTemplateColumns = '1fr 1fr';
 | 
								(this.$el.style as any).gridTemplateColumns = '1fr 1fr';
 | 
				
			||||||
			this.$el.style.gridTemplateRows = '1fr 1fr';
 | 
								(this.$el.style as any).gridTemplateRows = '1fr 1fr';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			tags[0].$el.style.gridColumn = '1 / 2';
 | 
								(tags[0].$el.style as any).gridColumn = '1 / 2';
 | 
				
			||||||
			tags[0].$el.style.gridRow = '1 / 2';
 | 
								(tags[0].$el.style as any).gridRow = '1 / 2';
 | 
				
			||||||
			tags[1].$el.style.gridColumn = '2 / 3';
 | 
								(tags[1].$el.style as any).gridColumn = '2 / 3';
 | 
				
			||||||
			tags[1].$el.style.gridRow = '1 / 2';
 | 
								(tags[1].$el.style as any).gridRow = '1 / 2';
 | 
				
			||||||
			tags[2].$el.style.gridColumn = '1 / 2';
 | 
								(tags[2].$el.style as any).gridColumn = '1 / 2';
 | 
				
			||||||
			tags[2].$el.style.gridRow = '2 / 3';
 | 
								(tags[2].$el.style as any).gridRow = '2 / 3';
 | 
				
			||||||
			tags[3].$el.style.gridColumn = '2 / 3';
 | 
								(tags[3].$el.style as any).gridColumn = '2 / 3';
 | 
				
			||||||
			tags[3].$el.style.gridRow = '2 / 3';
 | 
								(tags[3].$el.style as any).gridRow = '2 / 3';
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,6 +20,9 @@ import postFormWindow from './post-form-window.vue';
 | 
				
			||||||
import repostFormWindow from './repost-form-window.vue';
 | 
					import repostFormWindow from './repost-form-window.vue';
 | 
				
			||||||
import analogClock from './analog-clock.vue';
 | 
					import analogClock from './analog-clock.vue';
 | 
				
			||||||
import ellipsisIcon from './ellipsis-icon.vue';
 | 
					import ellipsisIcon from './ellipsis-icon.vue';
 | 
				
			||||||
 | 
					import images from './images.vue';
 | 
				
			||||||
 | 
					import imagesImage from './images-image.vue';
 | 
				
			||||||
 | 
					import imagesImageDialog from './images-image-dialog.vue';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Vue.component('mk-ui', ui);
 | 
					Vue.component('mk-ui', ui);
 | 
				
			||||||
Vue.component('mk-ui-header', uiHeader);
 | 
					Vue.component('mk-ui-header', uiHeader);
 | 
				
			||||||
| 
						 | 
					@ -41,3 +44,6 @@ Vue.component('mk-post-form-window', postFormWindow);
 | 
				
			||||||
Vue.component('mk-repost-form-window', repostFormWindow);
 | 
					Vue.component('mk-repost-form-window', repostFormWindow);
 | 
				
			||||||
Vue.component('mk-analog-clock', analogClock);
 | 
					Vue.component('mk-analog-clock', analogClock);
 | 
				
			||||||
Vue.component('mk-ellipsis-icon', ellipsisIcon);
 | 
					Vue.component('mk-ellipsis-icon', ellipsisIcon);
 | 
				
			||||||
 | 
					Vue.component('mk-images', images);
 | 
				
			||||||
 | 
					Vue.component('mk-images-image', imagesImage);
 | 
				
			||||||
 | 
					Vue.component('mk-images-image-dialog', imagesImageDialog);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
<div class="mk-posts">
 | 
					<div class="mk-posts">
 | 
				
			||||||
	<template v-for="(post, i) in _posts">
 | 
						<template v-for="(post, i) in _posts">
 | 
				
			||||||
		<mk-posts-post :post.sync="post" :key="post.id"/>
 | 
							<mk-posts-post :post.sync="post" :key="post.id"/>
 | 
				
			||||||
		<p class="date" :key="post.id + '-time'" v-if="i != _posts.length - 1 && _post._date != _posts[i + 1]._date"><span>%fa:angle-up%{{ post._datetext }}</span><span>%fa:angle-down%{{ _posts[i + 1]._datetext }}</span></p>
 | 
							<p class="date" :key="post.id + '-time'" v-if="i != _posts.length - 1 && post._date != _posts[i + 1]._date"><span>%fa:angle-up%{{ post._datetext }}</span><span>%fa:angle-down%{{ _posts[i + 1]._datetext }}</span></p>
 | 
				
			||||||
	</template>
 | 
						</template>
 | 
				
			||||||
	<footer>
 | 
						<footer>
 | 
				
			||||||
		<slot name="footer"></slot>
 | 
							<slot name="footer"></slot>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script lang="ts">
 | 
					<script lang="ts">
 | 
				
			||||||
import Vue from 'vue';
 | 
					import Vue from 'vue';
 | 
				
			||||||
import anime from 'animejs';
 | 
					import * as anime from 'animejs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default Vue.extend({
 | 
					export default Vue.extend({
 | 
				
			||||||
	props: ['message'],
 | 
						props: ['message'],
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script lang="ts">
 | 
					<script lang="ts">
 | 
				
			||||||
import Vue from 'vue';
 | 
					import Vue from 'vue';
 | 
				
			||||||
import anime from 'animejs';
 | 
					import * as anime from 'animejs';
 | 
				
			||||||
import contains from '../../../common/scripts/contains';
 | 
					import contains from '../../../common/scripts/contains';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const minHeight = 40;
 | 
					const minHeight = 40;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	</style>
 | 
						</style>
 | 
				
			||||||
	<script lang="typescript">
 | 
						<script lang="typescript">
 | 
				
			||||||
		import anime from 'animejs';
 | 
							import * as anime from 'animejs';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('mount', () => {
 | 
							this.on('mount', () => {
 | 
				
			||||||
			anime({
 | 
								anime({
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue