40 lines
1.4 KiB
Vue
40 lines
1.4 KiB
Vue
<template>
|
|
<div>
|
|
<ul class="dropdown-menu" role="menu" @click="innerClick" @touchstart="innerClick" @touchend="innerClick"
|
|
style="position: fixed; display: block;" :style="positionStyle" ref="menu" v-show="showMenu">
|
|
<li><a class="dropdown-item" href="#">Copy Custom</a></li>
|
|
</ul>
|
|
<copy-dialog ref="copy-dialog"></copy-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script lang="ts">
|
|
import {Component, Hook, Prop} from '@f-list/vue-ts';
|
|
import ContextMenu from './context_menu';
|
|
import CopyCustomDialog from './copy_custom_dialog.vue';
|
|
|
|
@Component({
|
|
components: {'copy-dialog': CopyCustomDialog}
|
|
})
|
|
export default class CopyCustomMenu extends ContextMenu {
|
|
@Prop({required: true})
|
|
readonly propName!: string;
|
|
|
|
itemSelected(element: HTMLElement): void {
|
|
const getName = (children: ReadonlyArray<HTMLElement>): string => {
|
|
for(const child of children)
|
|
if(child.className === 'kink-name')
|
|
return child.textContent!;
|
|
return 'Unknown';
|
|
};
|
|
const name = getName(<any>element.children); //tslint:disable-line:no-any
|
|
const description = element.title;
|
|
(<CopyCustomDialog>this.$refs['copy-dialog']).showDialog(name, description);
|
|
}
|
|
|
|
@Hook('mounted')
|
|
mounted(): void {
|
|
this.bindOffclick();
|
|
}
|
|
}
|
|
</script> |