FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
ameliabooking
/
v3
/
src
/
views
/
public
/
Parts
Edit File: DotsPopup.vue
<template> <el-popover ref="editRef" :visible="editPopVisible" :persistent="false" :show-arrow="false" :width="'auto'" :popper-class="'am-cc__popper'" :popper-style="cssVars" trigger="click" > <template #reference> <span class="am-cc__edit-btn am-icon-dots-vertical" :class="props.referenceClass" @click="clickItem" ></span> </template> <div v-click-outside="close" class="am-cc__edit" > <!-- Edit --> <div v-if="props.haveEdit" class="am-cc__edit-item" @click="editItem" > <span class="am-icon-edit"></span> <span class="am-cc__edit-text"> {{ amLabels.edit }} </span> </div> <!-- /Edit --> <!-- View --> <div v-if="props.haveView" class="am-cc__edit-item" @click="editItem" > <span class="am-icon-search"></span> <span class="am-cc__edit-text"> {{ amLabels.view }} </span> </div> <!-- /View --> <!-- Delete --> <div v-if="props.haveDelete" class="am-cc__edit-item am-delete" @click="removeItem" > <span class="am-icon-clearable"></span> <span class="am-cc__edit-text"> {{ amLabels.delete }} </span> </div> <!-- /Delete --> <!-- Duplicate --> <div v-if="props.haveDuplicate" class="am-cc__edit-item am-clone" @click="duplicateItem" > <span class="am-icon-clearable"></span> <span class="am-cc__edit-text"> {{ amLabels.duplicate }} </span> </div> <!-- /Duplicate --> </div> </el-popover> </template> <script setup> // * Import from Vue import { ref, inject, computed, } from "vue"; // * Dedicated components import { ClickOutside as vClickOutside } from "element-plus"; import { useColorTransparency } from "../../../assets/js/common/colorManipulation"; // * Component properties let props = defineProps({ index: { type: Number, default: 0 }, referenceClass: { type: String, default: '' }, haveDuplicate: { type: Boolean, default: false }, haveDelete: { type: Boolean, default: true }, haveEdit: { type: Boolean, default: true }, haveView: { type: Boolean, default: false }, }) // * Components emits let emits = defineEmits([ 'remove', 'edit', 'duplicate', ]) // * Labels let amLabels = inject('amLabels') let editPopVisible = ref(false) function clickItem () { editPopVisible.value = true } function editItem () { emits('edit', props.index) close() } function removeItem () { emits('remove', props.index) close() } function duplicateItem () { emits('duplicate', props.index) close() } function close () { editPopVisible.value= false } /************* * Customize * *************/ // * Fonts let amFonts = inject('amFonts') // * Colors block let amColors = inject('amColors') let cssVars = computed(() => { return { '--am-c-cc-error': amColors.value.colorError, '--am-c-cc-error-op15': useColorTransparency(amColors.value.colorError, 0.15), '--am-c-cc-bgr': amColors.value.colorMainBgr, '--am-c-cc-text': amColors.value.colorMainText, '--am-c-cc-text-op10': useColorTransparency(amColors.value.colorMainText, 0.1), '--am-c-cc-text-op15': useColorTransparency(amColors.value.colorMainText, 0.15), '--am-font-family': amFonts.value.fontFamily, } }) </script> <script> export default { name: 'DotsPopup' } </script> <style lang="scss"> @mixin am-dots-popup { .am-cc { &__edit-btn { cursor: pointer; } } } .amelia-v2-booking #amelia-container { @include am-dots-popup; } </style>
Save
Back