-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathrenderer_menu.vue
More file actions
101 lines (95 loc) · 2.43 KB
/
renderer_menu.vue
File metadata and controls
101 lines (95 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<template>
<dt-popover
:open="open"
:dialog-class="`d-bgc-transparent d-bs-none dtc-theme--${theme}`"
content-class="d-bgc-transparent d-px-0 d-py-0"
transition="fade"
placement="left-start"
initial-focus-element="dialog"
:close-on-click="false"
:modal="false"
sticky
>
<template #anchor="{ attrs }">
<dt-button
class="d-mx-50 d-px-0"
:class="`dtc-renderer-menu__button--${theme}`"
:active="open"
importance="clear"
v-bind="attrs"
@click="onOpen"
>
<template #icon="{ iconSize }">
<dt-icon-menu :size="iconSize" />
</template>
</dt-button>
</template>
<template #content>
<div>
<dtc-button-bar
class="d-mbe-50"
:value="background"
@click="e => updateSettings('background', e)"
>
<template #theme>
<div class="d-size-25 d-ba">
<span class="d-fs12 d-ps-relative d-ibs-75">T</span>
</div>
</template>
<template #black>
<div class="d-size-25 d-ba d-bgc-black-800" />
</template>
<template #white>
<div class="d-size-25 d-ba d-bgc-white" />
</template>
</dtc-button-bar>
<dtc-button-bar
class="d-mbe-50"
:value="positioning"
@click="e => updateSettings('positioning', e)"
>
<template #native>
<dt-icon-arrow-left />
</template>
<template #center>
<dt-icon-align-center />
</template>
</dtc-button-bar>
</div>
</template>
</dt-popover>
</template>
<script setup>
import { DtIconArrowLeft, DtIconAlignCenter, DtIconMenu } from '@dialpad/dialtone-icons/vue';
import DtcButtonBar from '../tools/button_bar.vue';
import { DtButton, DtPopover } from '@dialpad/dialtone-vue';
import { SETTINGS_UPDATE_EVENT } from '@/src/lib/constants';
import { ref } from 'vue';
defineProps({
theme: {
type: String,
required: true,
},
background: {
type: String,
required: true,
},
positioning: {
type: String,
required: true,
},
});
const emit = defineEmits([SETTINGS_UPDATE_EVENT]);
function updateSettings (setting, e) {
emit(SETTINGS_UPDATE_EVENT, setting, e);
}
const open = ref(false);
function onOpen () {
open.value = !open.value;
}
</script>
<script>
export default {
name: 'DtcRendererMenu',
};
</script>