Ideendokument

This commit is contained in:
Jörn-Michael Miehe 2023-09-20 16:16:45 +00:00
parent 0fcae295ec
commit cc94aace76
5 changed files with 37 additions and 22 deletions

View file

@ -6,7 +6,12 @@
- Option "Nur Groß-/Kleinbuchstaben" (standard nur groß)
- Option "Leerzeichen ignorieren" (standard ja)
- Option "custom Zuordnung Buchstaben" (standard leer)
- Türchen sichtbar machen (besser für touch, standard nein)
# Fixed
# Aufgaben
- Lösungsbuchstaben weniger als türchen erzeugt bug
- Rework PreviewDoor für RectangleCanvas
# Erledigt
- Lösungsbuchstaben weniger als türchen erzeugt bug

View file

@ -1,5 +1,5 @@
<template>
<SVGRect :rectangle="door.position" :focused="false" @click.left="on_click" />
<SVGRect :rectangle="door.position" @click.left="on_click" />
</template>
<script lang="ts">

View file

@ -1,6 +1,6 @@
<template>
<rect
:class="focused ? 'focus' : ''"
:class="color !== undefined ? `visible ${color}` : ''"
:x="rectangle.left"
:y="rectangle.top"
:width="rectangle.width"
@ -12,32 +12,42 @@
import { Rectangle } from "@/lib/rectangle";
import { Options, Vue } from "vue-class-component";
// type RectClass = "red" | "yellow" | "green" | "blue" | "purple";
type RectColor = "yellow" | "green";
@Options({
props: {
focused: {
type: Boolean,
default: false,
color: {
type: String,
required: false,
},
rectangle: Rectangle,
},
})
export default class extends Vue {
public focused!: boolean;
public color?: RectColor;
public rectangle!: Rectangle;
}
</script>
<style lang="scss" scoped>
rect {
fill: lightgreen;
stroke: green;
fill-opacity: 0.2;
stroke-opacity: 0.9;
stroke-width: 1;
fill: transparent;
&.focus {
fill: gold;
stroke: yellow;
&.visible {
fill-opacity: 0.2;
stroke-opacity: 0.9;
stroke-width: 1;
&.yellow {
fill: gold;
stroke: yellow;
}
&.green {
fill: lightgreen;
stroke: green;
}
}
}
</style>

View file

@ -1,5 +1,5 @@
<template>
<SVGRect :rectangle="door.position" :focused="editing" />
<SVGRect :rectangle="door.position" :color="editing ? 'yellow' : 'green'" />
<foreignObject
:x="Math.round(parent_aspect_ratio * door.position.left)"
:y="door.position.top"
@ -9,7 +9,7 @@
>
<div
xmlns="http://www.w3.org/1999/xhtml"
class="is-flex is-align-items-center is-justify-content-center"
class="px-4 is-flex is-align-items-center is-justify-content-center"
@click.left="on_click"
>
<input
@ -22,8 +22,8 @@
placeholder="Tag"
@keydown="on_keydown"
/>
<div v-else-if="door.day > 0" class="is-size-1 has-text-weight-bold">
{{ door.day }}
<div v-else class="is-size-1 has-text-weight-bold has-text-danger">
{{ door.day > 0 ? door.day : "*" }}
</div>
</div>
</foreignObject>
@ -139,7 +139,6 @@ foreignObject {
cursor: pointer;
> div {
color: red;
height: inherit;
}
}

View file

@ -10,10 +10,11 @@
>
<SVGRect
v-for="(rect, index) in rectangles"
color="green"
:key="`rect-${index}`"
:rectangle="rect"
/>
<SVGRect v-if="preview_visible" :focused="true" :rectangle="preview_rect" />
<SVGRect v-if="preview_visible" color="yellow" :rectangle="preview_rect" />
</ThouCanvas>
</template>