2019-08-24 23:42:41 +00:00
|
|
|
<template>
|
2020-02-24 18:44:50 +00:00
|
|
|
<fieldset :id="label.toLowerCase()" :class="{ 'no-colored-frames': !frameColorsEnabled }">
|
2019-10-25 08:14:34 +00:00
|
|
|
<legend @click.prevent="collapse">
|
|
|
|
|
<span>{{ label }}</span>
|
2019-12-02 15:20:20 +00:00
|
|
|
<i class="material-icons">
|
2020-02-25 04:34:06 +00:00
|
|
|
{{ isCollapsed(label) ? "expand_more" : "expand_less" }}
|
2019-12-02 15:20:20 +00:00
|
|
|
</i>
|
2019-10-25 08:14:34 +00:00
|
|
|
</legend>
|
2020-02-25 16:10:40 +00:00
|
|
|
<div class="collapsible" :class="{ hidden: isCollapsed(label.toLowerCase()) }">
|
2019-09-16 08:20:28 +00:00
|
|
|
<slot />
|
|
|
|
|
</div>
|
|
|
|
|
</fieldset>
|
2019-08-24 23:42:41 +00:00
|
|
|
</template>
|
|
|
|
|
|
2020-02-03 03:08:40 +00:00
|
|
|
<style scoped lang="scss">
|
2020-06-19 17:37:40 +00:00
|
|
|
fieldset {
|
|
|
|
|
margin: 16px 0;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
background-color: var(--bg-dark-color);
|
|
|
|
|
transition: all 0.2s ease-in-out;
|
|
|
|
|
|
|
|
|
|
legend {
|
|
|
|
|
display: inline-block;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
color: var(--fg-color);
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
transition: all 0.2s ease-in-out;
|
|
|
|
|
|
|
|
|
|
* {
|
|
|
|
|
vertical-align: middle;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
i {
|
|
|
|
|
margin-left: 8px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.blue legend {
|
|
|
|
|
color: #57b5f9;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.gray legend {
|
|
|
|
|
color: #bcc2cd;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.green legend {
|
|
|
|
|
color: #50fa7b;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.cyan legend {
|
|
|
|
|
color: #8be9fd;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.purple legend {
|
|
|
|
|
color: #bd93f9;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.orange legend {
|
|
|
|
|
color: #ffb86c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.pink legend {
|
|
|
|
|
color: #ff79c6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.red legend {
|
|
|
|
|
color: #ff5555;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&.yellow legend {
|
|
|
|
|
color: #f1fa8c;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-11-02 05:32:21 +00:00
|
|
|
fieldset.no-colored-frames legend {
|
|
|
|
|
color: var(--fg-color);
|
|
|
|
|
}
|
2019-08-24 23:42:41 +00:00
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<script>
|
2019-11-02 05:32:21 +00:00
|
|
|
export default {
|
|
|
|
|
computed: {
|
|
|
|
|
frameColorsEnabled() {
|
2020-02-25 16:10:40 +00:00
|
|
|
return this.$store.state.postwoman.settings.FRAME_COLORS_ENABLED || false
|
2020-02-24 18:44:50 +00:00
|
|
|
},
|
2020-02-25 04:34:06 +00:00
|
|
|
sectionString() {
|
2020-02-25 16:33:02 +00:00
|
|
|
return `${this.$route.path.replace(/\/+$/, "")}/${this.label}`
|
2020-02-25 16:10:40 +00:00
|
|
|
},
|
2019-11-02 05:32:21 +00:00
|
|
|
},
|
2019-10-25 08:14:34 +00:00
|
|
|
|
2019-11-02 05:32:21 +00:00
|
|
|
props: {
|
|
|
|
|
label: {
|
|
|
|
|
type: String,
|
2020-02-25 02:06:23 +00:00
|
|
|
default: "Section",
|
2019-10-22 12:02:26 +00:00
|
|
|
},
|
2019-11-02 05:32:21 +00:00
|
|
|
collapsed: {
|
2020-02-24 18:44:50 +00:00
|
|
|
type: Boolean,
|
|
|
|
|
},
|
2019-11-02 05:32:21 +00:00
|
|
|
},
|
2019-08-24 23:42:41 +00:00
|
|
|
|
2019-11-02 05:32:21 +00:00
|
|
|
methods: {
|
|
|
|
|
collapse({ target }) {
|
2020-02-25 16:10:40 +00:00
|
|
|
const parent = target.parentNode.parentNode
|
|
|
|
|
parent.querySelector(".collapsible").classList.toggle("hidden")
|
2020-02-25 16:41:02 +00:00
|
|
|
|
2020-02-25 07:04:10 +00:00
|
|
|
// Save collapsed section into the collapsedSections array
|
2020-02-25 16:10:40 +00:00
|
|
|
this.$store.commit("setCollapsedSection", this.sectionString)
|
2020-02-24 18:44:50 +00:00
|
|
|
},
|
2020-02-25 04:34:06 +00:00
|
|
|
isCollapsed(label) {
|
2020-02-25 16:10:40 +00:00
|
|
|
return this.$store.state.theme.collapsedSections.includes(this.sectionString) || false
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
}
|
2019-08-25 08:37:21 +00:00
|
|
|
</script>
|