build: update browserslist definition file

This commit is contained in:
Sebin Nyshkim 2023-11-30 22:05:43 +01:00
parent 6a1474eb52
commit 61147be693
5 changed files with 89 additions and 95 deletions

View file

@ -1,12 +1,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed } from 'vue' import { computed } from 'vue'
import { Ratings } from '@/interfaces'
interface Props { interface Props {
modelValue: number[] modelValue: number[]
id: string
name?: string name?: string
kind: string value: Ratings
value: number
} }
interface Emits { interface Emits {
@ -32,12 +31,16 @@ const checked = computed({
class="filter-button__input" class="filter-button__input"
type="checkbox" type="checkbox"
:name="name" :name="name"
:id="id" :id="Ratings[value].toLowerCase()"
:value="value" :value="value"
v-model="checked" v-model="checked"
/> />
<label :for="id" class="filter-button__label" :class="[kind]"> <label
<slot></slot> :for="Ratings[value].toLowerCase()"
class="filter-button__label"
:class="[Ratings[value].toLowerCase()]"
>
{{ Ratings[value] }}
</label> </label>
</div> </div>
</template> </template>

View file

@ -1,14 +1,14 @@
<script setup lang="ts"> <script setup lang="ts">
interface Props { interface Props {
type?: string type: string
} }
defineProps<Props>() defineProps<Props>()
</script> </script>
<template> <template>
<span class="filter-list__tag" :class="type"> <span class="filter-list__tag" :class="type.toLowerCase()">
<slot></slot> <span>{{ type }}</span>
</span> </span>
</template> </template>

View file

@ -1,5 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed, ref } from 'vue' import { computed, ref } from 'vue'
import { Ratings, Role } from '@/interfaces'
import type { Kink } from '@/interfaces' import type { Kink } from '@/interfaces'
import FilterButton from '@/components/FilterButton.vue' import FilterButton from '@/components/FilterButton.vue'
import FilterListTag from '@/components/FilterListTag.vue' import FilterListTag from '@/components/FilterListTag.vue'
@ -17,36 +18,15 @@ const filteredItems = computed(() =>
.sort((a, b) => a.rating - b.rating) .sort((a, b) => a.rating - b.rating)
.filter((kink) => filterOptions.value.some((filterNum) => kink.rating === filterNum)) .filter((kink) => filterOptions.value.some((filterNum) => kink.rating === filterNum))
) )
const toLabel = (rating: number) => {
switch (rating) {
case 1:
return 'Love'
case 2:
return 'Yes'
case 3:
return 'Maybe'
case 4:
return 'No'
}
}
</script> </script>
<template> <template>
<div class="filter-list"> <div class="filter-list">
<div class="filter-list__filters"> <div class="filter-list__filters">
<FilterButton name="rating" id="love" kind="love" :value="1" v-model="filterOptions"> <FilterButton name="rating" :value="Ratings.Love" v-model="filterOptions" />
Love <FilterButton name="rating" :value="Ratings.Yes" v-model="filterOptions" />
</FilterButton> <FilterButton name="rating" :value="Ratings.Maybe" v-model="filterOptions" />
<FilterButton name="rating" id="yes" kind="yes" :value="2" v-model="filterOptions"> <FilterButton name="rating" :value="Ratings.No" v-model="filterOptions" />
Yes
</FilterButton>
<FilterButton name="rating" id="maybe" kind="maybe" :value="3" v-model="filterOptions">
Maybe
</FilterButton>
<FilterButton name="rating" id="no" kind="no" :value="4" v-model="filterOptions">
No
</FilterButton>
</div> </div>
<div class="filter-list__list-container"> <div class="filter-list__list-container">
@ -56,22 +36,19 @@ const toLabel = (rating: number) => {
<FilterListTag <FilterListTag
v-if="filterOptions.length > 1" v-if="filterOptions.length > 1"
class="category" class="category"
:type="toLabel(item.rating)?.toLowerCase()" :type="Ratings[item.rating]"
> />
<span>{{ toLabel(item.rating) }}</span>
</FilterListTag>
<span class="filter-list__item-name"> <span class="filter-list__item-name">
<span>{{ item.name }}</span> <span>{{ item.name }}</span>
</span> </span>
<FilterListTag
<FilterListTag type="receive"> v-if="(item.role ?? 0 & Role.Receive) === Role.Receive"
<span v-if="item.receive">receive</span> :type="Role[Role.Receive]"
</FilterListTag> />
<FilterListTag
<FilterListTag type="give"> v-if="(item.role ?? 0 & Role.Give) === Role.Give"
<span v-if="item.give">give</span> :type="Role[Role.Give]"
</FilterListTag> />
</li> </li>
</ul> </ul>
</template> </template>

View file

@ -6,8 +6,20 @@ interface ColorDict {
interface Kink { interface Kink {
name: string name: string
rating: number rating: number
receive?: boolean role?: Role
give?: boolean }
export enum Ratings {
Love,
Yes,
Maybe,
No
}
export enum Role {
Give = 1,
Receive = 2,
Both = Give | Receive
} }
export type { ColorDict, Kink } export type { ColorDict, Kink }

View file

@ -1,3 +1,5 @@
import { Ratings, Role } from '@/interfaces'
export const firstName = 'Sebin', export const firstName = 'Sebin',
middleName = 'Antario', middleName = 'Antario',
lastName = 'Nyshkim', lastName = 'Nyshkim',
@ -31,50 +33,50 @@ export const firstName = 'Sebin',
girth: 5 // cm girth: 5 // cm
}, },
kinks = [ kinks = [
{ name: 'Absorption', rating: 4 }, { name: 'Absorption', rating: Ratings.No },
{ name: 'Anal', rating: 1, recive: true, give: true }, { name: 'Anal', rating: Ratings.Love, role: Role.Both },
{ name: 'Auto-Fellatio', rating: 2 }, { name: 'Auto-Fellatio', rating: Ratings.Yes },
{ name: 'Biting', rating: 2, receive: true, give: true }, { name: 'Biting', rating: Ratings.Yes, role: Role.Both },
{ name: 'Bukkake', rating: 2, receive: false, give: true }, { name: 'Bukkake', rating: Ratings.Yes, role: Role.Give },
{ name: 'Chastity', rating: 4 }, { name: 'Chastity', rating: Ratings.No },
{ name: 'Chubby', rating: 3 }, { name: 'Chubby', rating: Ratings.Maybe },
{ name: 'Clothed Sex', rating: 2 }, { name: 'Clothed Sex', rating: Ratings.Yes },
{ name: 'Cock Slapping', rating: 2, receive: false, give: true }, { name: 'Cock Slapping', rating: Ratings.Yes, role: Role.Give },
{ name: 'Coiling', rating: 3, receive: false, give: true }, { name: 'Coiling', rating: Ratings.Maybe, role: Role.Give },
{ name: 'Competition', rating: 3, receive: false, give: true }, { name: 'Competition', rating: Ratings.Maybe, role: Role.Give },
{ name: 'Creampie', rating: 2, receive: false, give: true }, { name: 'Creampie', rating: Ratings.Yes, role: Role.Give },
{ name: 'Crushing (Living/Objects)', rating: 4 }, { name: 'Crushing (Living/Objects)', rating: Ratings.No },
{ name: 'Cum From Mouth/Nose', rating: 2, receive: false, give: true }, { name: 'Cum From Mouth/Nose', rating: Ratings.Yes, role: Role.Give },
{ name: 'Cum Inflation (Light/Medium)', rating: 2 }, { name: 'Cum Inflation (Light/Medium)', rating: Ratings.Yes },
{ name: 'Deep-throat', rating: 2, receive: true, give: false }, { name: 'Deep-throat', rating: Ratings.Yes, role: Role.Receive },
{ name: 'Dirty Talking', rating: 2 }, { name: 'Dirty Talking', rating: Ratings.Yes },
{ name: 'Excessive Cum', rating: 1, receive: true, give: true }, { name: 'Excessive Cum', rating: Ratings.Love, role: Role.Both },
{ name: 'Face-Fucking', rating: 2, receive: false, give: true }, { name: 'Face-Fucking', rating: Ratings.Yes, role: Role.Give },
{ name: 'Facial', rating: 2, receive: false, give: true }, { name: 'Facial', rating: Ratings.Yes, role: Role.Give },
{ name: 'Feet', rating: 4 }, { name: 'Feet', rating: Ratings.No },
{ name: 'Filled Condoms', rating: 2 }, { name: 'Filled Condoms', rating: Ratings.Yes },
{ name: 'Foreplay', rating: 2, receive: true, give: true }, { name: 'Foreplay', rating: Ratings.Yes, role: Role.Both },
{ name: 'Frotting', rating: 2 }, { name: 'Frotting', rating: Ratings.Yes },
{ name: 'Gangbangs', rating: 2 }, { name: 'Gangbangs', rating: Ratings.Yes },
{ name: 'Growth', rating: 1, receive: true, give: false }, { name: 'Growth', rating: Ratings.Love, role: Role.Receive },
{ name: 'Handjobs', rating: 2, receive: true, give: true }, { name: 'Handjobs', rating: Ratings.Yes, role: Role.Both },
{ name: 'Hotdogging', rating: 2, receive: false, give: true }, { name: 'Hotdogging', rating: Ratings.Yes, role: Role.Give },
{ name: 'Kissing', rating: 2, receive: true, give: true }, { name: 'Kissing', rating: Ratings.Yes, role: Role.Both },
{ name: 'Macro', rating: 1 }, { name: 'Macro', rating: Ratings.Love },
{ name: 'Milking', rating: 2 }, { name: 'Milking', rating: Ratings.Yes },
{ name: 'Muscle Growth', rating: 1, receive: true, give: true }, { name: 'Muscle Growth', rating: Ratings.Love, role: Role.Both },
{ name: 'Muscle Worship', rating: 2, receive: true, give: true }, { name: 'Muscle Worship', rating: Ratings.Yes, role: Role.Both },
{ name: 'Nipple Play', rating: 2, receive: true, give: true }, { name: 'Nipple Play', rating: Ratings.Yes, role: Role.Both },
{ name: 'Oral', rating: 1, receive: true, give: true }, { name: 'Oral', rating: Ratings.Love, role: Role.Both },
{ name: 'Rough', rating: 2, receive: true, give: true }, { name: 'Rough', rating: Ratings.Yes, role: Role.Both },
{ name: 'Sheath Play', rating: 2, receive: true, give: true }, { name: 'Sheath Play', rating: Ratings.Yes, role: Role.Both },
{ name: 'Size Difference', rating: 1 }, { name: 'Size Difference', rating: Ratings.Love },
{ name: 'Slime/Goo Characters', rating: 2 }, { name: 'Slime/Goo Characters', rating: Ratings.Yes },
{ name: 'Spanking', rating: 3, receive: false, give: true }, { name: 'Spanking', rating: Ratings.Maybe, role: Role.Give },
{ name: 'Tailsex', rating: 2, receive: true, give: true }, { name: 'Tailsex', rating: Ratings.Yes, role: Role.Both },
{ name: 'Toys', rating: 2, receive: true, give: true }, { name: 'Toys', rating: Ratings.Yes, role: Role.Both },
{ name: 'Underwear', rating: 1 }, { name: 'Underwear', rating: Ratings.Love },
{ name: 'Unsanitary', rating: 4 }, { name: 'Unsanitary', rating: Ratings.No },
{ name: 'Verbal Abuse', rating: 3, receive: false, give: true }, { name: 'Verbal Abuse', rating: Ratings.Maybe, role: Role.Give },
{ name: 'Vore', rating: 4 }, { name: 'Vore', rating: Ratings.No }
] ]