Accordion on generate page
This commit is contained in:
32
src/components/AccordionItem.vue
Normal file
32
src/components/AccordionItem.vue
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<script>
|
||||||
|
import { defineComponent } from "vue";
|
||||||
|
|
||||||
|
export default defineComponent({
|
||||||
|
computed: {
|
||||||
|
uid() {
|
||||||
|
return `accordion_item_${this.$.uid}`;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
expanded: false,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="accordion-item">
|
||||||
|
<h2 v-if="$slots.header" class="accordion-header">
|
||||||
|
<button class="accordion-button" :class="{collapsed: !expanded}"
|
||||||
|
type="button" data-bs-toggle="collapse" :data-bs-target="`#${uid}`"
|
||||||
|
:aria-expanded="expanded" :aria-controls="uid">
|
||||||
|
<slot name="header"></slot>
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
<div :id="uid" class="accordion-collapse"
|
||||||
|
:class="{collapse: $slots.header, show: expanded}">
|
||||||
|
<div class="accordion-body">
|
||||||
|
<slot></slot>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
@@ -24,11 +24,10 @@ export default defineComponent({
|
|||||||
|| (this.settings.boss_shuffle && this.settings.boss_shuffle != "vanilla");
|
|| (this.settings.boss_shuffle && this.settings.boss_shuffle != "vanilla");
|
||||||
},
|
},
|
||||||
dungeonItemsShuffled() {
|
dungeonItemsShuffled() {
|
||||||
return (this.settings.small_keys && this.settings.small_keys != "dungeons")
|
return (this.settings.small_keys && this.settings.small_keys != "dungeon")
|
||||||
|| (this.settings.big_keys && this.settings.big_keys != "dungeons")
|
|| (this.settings.big_keys && this.settings.big_keys != "dungeon")
|
||||||
|| (this.settings.maps && this.settings.maps != "dungeons")
|
|| (this.settings.maps && this.settings.maps != "dungeon")
|
||||||
|| (this.settings.compasses && this.settings.compasses != "dungeons")
|
|| (this.settings.compasses && this.settings.compasses != "dungeon")
|
||||||
|| (this.settings.compasses && this.settings.compasses != "dungeons")
|
|
||||||
|| (this.settings.prize_shuffle && this.settings.prize_shuffle != "vanilla");
|
|| (this.settings.prize_shuffle && this.settings.prize_shuffle != "vanilla");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import App from "./App.vue";
|
|||||||
import router from "./router";
|
import router from "./router";
|
||||||
|
|
||||||
import "bootstrap/dist/css/bootstrap.min.css";
|
import "bootstrap/dist/css/bootstrap.min.css";
|
||||||
import "bootstrap/dist/js/bootstrap.min.js";
|
|
||||||
import "bootstrap-icons/font/bootstrap-icons.css";
|
import "bootstrap-icons/font/bootstrap-icons.css";
|
||||||
import "bootstrap";
|
import "bootstrap";
|
||||||
|
|
||||||
|
|||||||
@@ -4,11 +4,13 @@ import { defineComponent } from "vue";
|
|||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import { Modal } from "bootstrap";
|
import { Modal } from "bootstrap";
|
||||||
|
|
||||||
|
import AccordionItem from "@/components/AccordionItem.vue";
|
||||||
import PresetPicker from "@/components/PresetPicker.vue";
|
import PresetPicker from "@/components/PresetPicker.vue";
|
||||||
import SettingPicker from "@/components/SettingPicker.vue";
|
import SettingPicker from "@/components/SettingPicker.vue";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: {
|
components: {
|
||||||
|
AccordionItem,
|
||||||
PresetPicker,
|
PresetPicker,
|
||||||
SettingPicker,
|
SettingPicker,
|
||||||
},
|
},
|
||||||
@@ -121,31 +123,41 @@ export default defineComponent({
|
|||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
Generate Seed
|
Generate Seed
|
||||||
</div>
|
</div>
|
||||||
<ul class="list-group list-group-flush">
|
<div id="settings" class="accordion accordion-flush">
|
||||||
<li class="list-group-item">
|
<AccordionItem>
|
||||||
<div class="mb-2 mt-2">
|
<PresetPicker ref="preset" generator="base" @selected="presetSelected"
|
||||||
<PresetPicker ref="preset" generator="base" @selected="presetSelected"
|
@save="savePreset" />
|
||||||
@save="savePreset" />
|
</AccordionItem>
|
||||||
</div>
|
<AccordionItem :expanded="true">
|
||||||
</li>
|
<template #header>
|
||||||
<li class="list-group-item">
|
<b>World:</b>
|
||||||
|
</template>
|
||||||
<SettingPicker color="primary" v-model="set.mode" name="mode" generator="base" />
|
<SettingPicker color="primary" v-model="set.mode" name="mode" generator="base" />
|
||||||
<SettingPicker color="primary" v-model="set.weapons" name="weapons" generator="base" />
|
<SettingPicker color="primary" v-model="set.weapons" name="weapons" generator="base" />
|
||||||
</li>
|
</AccordionItem>
|
||||||
<li class="list-group-item">
|
<AccordionItem :expanded="true">
|
||||||
|
<template #header>
|
||||||
|
<b>Goal:</b>
|
||||||
|
</template>
|
||||||
<SettingPicker color="success" v-model="set.goal" name="goal" generator="base" />
|
<SettingPicker color="success" v-model="set.goal" name="goal" generator="base" />
|
||||||
<SettingPicker color="success" v-if="['ganon', 'fast_ganon'].includes(this.set.goal)"
|
<SettingPicker color="success" v-if="['ganon', 'fast_ganon'].includes(this.set.goal)"
|
||||||
v-model="set.crystals_ganon" name="crystals_ganon" generator="base" />
|
v-model="set.crystals_ganon" name="crystals_ganon" generator="base" />
|
||||||
<SettingPicker color="success" v-model="set.crystals_gt" name="crystals_gt" generator="base" />
|
<SettingPicker color="success" v-model="set.crystals_gt" name="crystals_gt" generator="base" />
|
||||||
</li>
|
</AccordionItem>
|
||||||
<li class="list-group-item">
|
<AccordionItem :expanded="false">
|
||||||
|
<template #header>
|
||||||
|
<b>Entrance Shuffle:</b>
|
||||||
|
</template>
|
||||||
<SettingPicker color="warning" v-model="set.entrance_shuffle" name="entrance_shuffle" generator="base" />
|
<SettingPicker color="warning" v-model="set.entrance_shuffle" name="entrance_shuffle" generator="base" />
|
||||||
<SettingPicker color="warning" v-if="this.set.entrance_shuffle != 'vanilla'"
|
<SettingPicker color="warning" v-if="this.set.entrance_shuffle != 'vanilla'"
|
||||||
v-model="set.skull_woods" name="skull_woods" generator="base" />
|
v-model="set.skull_woods" name="skull_woods" generator="base" />
|
||||||
<SettingPicker color="warning" v-if="this.set.entrance_shuffle != 'vanilla'"
|
<SettingPicker color="warning" v-if="this.set.entrance_shuffle != 'vanilla'"
|
||||||
v-model="set.linked_drops" name="linked_drops" generator="base" />
|
v-model="set.linked_drops" name="linked_drops" generator="base" />
|
||||||
</li>
|
</AccordionItem>
|
||||||
<li class="list-group-item">
|
<AccordionItem :expanded="false">
|
||||||
|
<template #header>
|
||||||
|
<b>Dungeon Shuffle:</b>
|
||||||
|
</template>
|
||||||
<SettingPicker color="danger" v-model="set.door_shuffle" name="door_shuffle" generator="base" />
|
<SettingPicker color="danger" v-model="set.door_shuffle" name="door_shuffle" generator="base" />
|
||||||
<SettingPicker color="danger" v-if="this.set.door_shuffle != 'vanilla'"
|
<SettingPicker color="danger" v-if="this.set.door_shuffle != 'vanilla'"
|
||||||
v-model="set.door_lobbies" name="door_lobbies" generator="base" />
|
v-model="set.door_lobbies" name="door_lobbies" generator="base" />
|
||||||
@@ -153,31 +165,43 @@ export default defineComponent({
|
|||||||
v-model="set.door_type_mode" name="door_type_mode" generator="base" />
|
v-model="set.door_type_mode" name="door_type_mode" generator="base" />
|
||||||
<SettingPicker color="danger" v-if="this.set.door_shuffle != 'vanilla'"
|
<SettingPicker color="danger" v-if="this.set.door_shuffle != 'vanilla'"
|
||||||
v-model="set.trap_door_mode" name="trap_door_mode" generator="base" />
|
v-model="set.trap_door_mode" name="trap_door_mode" generator="base" />
|
||||||
</li>
|
</AccordionItem>
|
||||||
<li class="list-group-item">
|
<AccordionItem :expanded="false">
|
||||||
|
<template #header>
|
||||||
|
<b>Enemizer:</b>
|
||||||
|
</template>
|
||||||
<SettingPicker color="success" v-model="set.boss_shuffle" name="boss_shuffle" generator="base" />
|
<SettingPicker color="success" v-model="set.boss_shuffle" name="boss_shuffle" generator="base" />
|
||||||
<SettingPicker color="success" v-model="set.enemy_shuffle" name="enemy_shuffle" generator="base" />
|
<SettingPicker color="success" v-model="set.enemy_shuffle" name="enemy_shuffle" generator="base" />
|
||||||
</li>
|
</AccordionItem>
|
||||||
<li class="list-group-item">
|
<AccordionItem :expanded="false">
|
||||||
|
<template #header>
|
||||||
|
<b>Dungeon Item Shuffle:</b>
|
||||||
|
</template>
|
||||||
<SettingPicker color="warning" v-model="set.small_keys" name="small_keys" generator="base" />
|
<SettingPicker color="warning" v-model="set.small_keys" name="small_keys" generator="base" />
|
||||||
<SettingPicker color="warning" v-model="set.big_keys" name="big_keys" generator="base" />
|
<SettingPicker color="warning" v-model="set.big_keys" name="big_keys" generator="base" />
|
||||||
<SettingPicker color="warning" v-model="set.maps" name="maps" generator="base" />
|
<SettingPicker color="warning" v-model="set.maps" name="maps" generator="base" />
|
||||||
<SettingPicker color="warning" v-model="set.compasses" name="compasses" generator="base" />
|
<SettingPicker color="warning" v-model="set.compasses" name="compasses" generator="base" />
|
||||||
</li>
|
</AccordionItem>
|
||||||
<li class="list-group-item">
|
<AccordionItem :expanded="false">
|
||||||
|
<template #header>
|
||||||
|
<b>Other Pool Settings:</b>
|
||||||
|
</template>
|
||||||
<SettingPicker color="danger" v-model="set.shop_shuffle" name="shop_shuffle" generator="base" />
|
<SettingPicker color="danger" v-model="set.shop_shuffle" name="shop_shuffle" generator="base" />
|
||||||
<SettingPicker color="danger" v-model="set.drop_shuffle" name="drop_shuffle" generator="base" />
|
<SettingPicker color="danger" v-model="set.drop_shuffle" name="drop_shuffle" generator="base" />
|
||||||
<SettingPicker color="danger" v-model="set.pottery" name="pottery" generator="base" />
|
<SettingPicker color="danger" v-model="set.pottery" name="pottery" generator="base" />
|
||||||
<SettingPicker color="danger" v-model="set.prize_shuffle" name="prize_shuffle" generator="base" />
|
<SettingPicker color="danger" v-model="set.prize_shuffle" name="prize_shuffle" generator="base" />
|
||||||
</li>
|
</AccordionItem>
|
||||||
<li class="list-group-item">
|
<AccordionItem :expanded="false">
|
||||||
|
<template #header>
|
||||||
|
<b>Item Settings:</b>
|
||||||
|
</template>
|
||||||
<SettingPicker color="primary" v-model="set.boots" name="boots" generator="base" />
|
<SettingPicker color="primary" v-model="set.boots" name="boots" generator="base" />
|
||||||
<SettingPicker color="primary" v-model="set.flute" name="flute" generator="base" />
|
<SettingPicker color="primary" v-model="set.flute" name="flute" generator="base" />
|
||||||
<SettingPicker color="primary" v-model="set.dark_rooms" name="dark_rooms" generator="base" />
|
<SettingPicker color="primary" v-model="set.dark_rooms" name="dark_rooms" generator="base" />
|
||||||
<SettingPicker color="primary" v-model="set.bombs" name="bombs" generator="base" />
|
<SettingPicker color="primary" v-model="set.bombs" name="bombs" generator="base" />
|
||||||
<SettingPicker color="primary" v-model="set.book" name="book" generator="base" />
|
<SettingPicker color="primary" v-model="set.book" name="book" generator="base" />
|
||||||
</li>
|
</AccordionItem>
|
||||||
</ul>
|
</div>
|
||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
<div class="nav nav-pills nav-fill" role="group">
|
<div class="nav nav-pills nav-fill" role="group">
|
||||||
<button type="button" class="m-1 nav-item btn btn-outline-danger"
|
<button type="button" class="m-1 nav-item btn btn-outline-danger"
|
||||||
|
|||||||
Reference in New Issue
Block a user