temp-text.vue 698 B

123456789101112131415161718192021222324252627282930
  1. <template>
  2. <v-text :config="config" ref="shape" name="text">
  3. </v-text>
  4. </template>
  5. <script lang="ts" setup>
  6. import { TextData, dataToConfig } from "./index.ts";
  7. import { computed, ref } from "vue";
  8. import { DC } from "@/deconstruction.js";
  9. import { Transform } from "konva/lib/Util";
  10. import { Group } from "konva/lib/Group";
  11. const props = defineProps<{ data: TextData, addMode?: boolean }>()
  12. const shape = ref<DC<Group>>()
  13. defineExpose({
  14. get shape() {
  15. return shape.value
  16. }
  17. })
  18. const config = computed(() => {
  19. const dec = new Transform(props.data.mat).decompose()
  20. const conf = {
  21. ...dataToConfig(props.data),
  22. ...dec,
  23. opacity: props.addMode ? 0.3 : 1
  24. }
  25. return conf
  26. })
  27. </script>