2022-06-30 12:35:29 +03:00
|
|
|
<template>
|
|
|
|
<div @click="change(index)"
|
|
|
|
:class="['pattern-item',
|
|
|
|
index === mode && isActive === true ?
|
|
|
|
'pattern-item_selected' : '',
|
|
|
|
]">
|
|
|
|
<span class="pattern-item__icon"
|
|
|
|
v-text="pattern.icon"></span>
|
2022-08-07 22:36:48 +03:00
|
|
|
<div class="pattern-item__info-container">
|
|
|
|
<span class="pattern-item__name"
|
|
|
|
v-text="pattern.name"></span>
|
|
|
|
<span class="pattern-item__type"
|
|
|
|
v-text="pattern.type"></span>
|
|
|
|
</div>
|
2022-06-30 12:35:29 +03:00
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
2022-07-14 17:50:28 +03:00
|
|
|
<script lang="ts">
|
|
|
|
import { defineComponent } from 'vue';
|
|
|
|
|
|
|
|
export default defineComponent({
|
2022-06-30 12:35:29 +03:00
|
|
|
name: 'PatternItem',
|
|
|
|
props: {
|
|
|
|
pattern: {
|
|
|
|
type: Object,
|
|
|
|
},
|
|
|
|
index: {
|
|
|
|
type: Number,
|
|
|
|
},
|
|
|
|
mode: {
|
|
|
|
type: Number,
|
|
|
|
},
|
|
|
|
isActive: {
|
|
|
|
type: Boolean,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
methods: {
|
2022-08-05 18:56:49 +03:00
|
|
|
change: function (index: number): void {
|
2022-07-17 15:16:28 +03:00
|
|
|
this.$emit('change', index as number);
|
2022-06-30 12:35:29 +03:00
|
|
|
},
|
|
|
|
},
|
2022-07-14 17:50:28 +03:00
|
|
|
});
|
2022-06-30 12:35:29 +03:00
|
|
|
</script>
|
|
|
|
|
2022-07-21 16:07:17 +03:00
|
|
|
<style lang="scss">
|
2022-06-30 12:35:29 +03:00
|
|
|
.pattern-item {
|
|
|
|
width: 100%;
|
2022-08-07 22:36:48 +03:00
|
|
|
height: 50px;
|
2022-06-30 12:35:29 +03:00
|
|
|
padding: 8px;
|
|
|
|
border-radius: var(--number-border-radius);
|
|
|
|
background: var(--color-pattern-button);
|
|
|
|
display: flex;
|
|
|
|
flex-direction: row;
|
|
|
|
justify-content: flex-start;
|
2022-08-07 22:36:48 +03:00
|
|
|
gap: 8px;
|
2022-06-30 12:35:29 +03:00
|
|
|
align-items: center;
|
|
|
|
text-align: center;
|
|
|
|
overflow: hidden;
|
2022-08-07 21:29:22 +03:00
|
|
|
cursor: pointer;
|
2022-06-30 12:35:29 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
@media only screen and (min-width: 540px) {
|
|
|
|
.pattern-item {
|
|
|
|
width: 200px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.pattern-item ::selection {
|
|
|
|
background-color: transparent;
|
|
|
|
}
|
|
|
|
|
|
|
|
.pattern-item_selected {
|
|
|
|
background: var(--color-b);
|
|
|
|
}
|
|
|
|
|
2022-07-14 17:50:28 +03:00
|
|
|
.pattern-item__icon {
|
|
|
|
font-size: 24px;
|
|
|
|
}
|
2022-06-30 12:35:29 +03:00
|
|
|
|
2022-08-07 22:36:48 +03:00
|
|
|
.pattern-item__info-container {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
justify-content: space-between;
|
|
|
|
text-align: left;
|
2022-07-14 17:50:28 +03:00
|
|
|
}
|
2022-08-07 22:36:48 +03:00
|
|
|
|
|
|
|
.pattern-item__name {
|
|
|
|
font-size: 16px;
|
|
|
|
white-space: nowrap;
|
|
|
|
overflow: hidden;
|
|
|
|
color: var(--color-pattern-text);
|
|
|
|
}
|
|
|
|
|
|
|
|
.pattern-item__type {
|
|
|
|
font-size: 12px;
|
|
|
|
white-space: nowrap;
|
|
|
|
overflow: hidden;
|
|
|
|
color: var(--color-pattern-text);
|
|
|
|
}
|
2022-06-30 12:35:29 +03:00
|
|
|
</style>
|
2022-07-14 17:50:28 +03:00
|
|
|
|