2017-11-13 01:23:39 -05:00
|
|
|
<template lang="html">
|
2018-03-30 17:58:56 -04:00
|
|
|
<div v-if="item.contents" :class="classes">
|
2020-08-17 13:33:30 -04:00
|
|
|
<header v-if="! item.no_header" class="tw-font-size-5">
|
2019-10-04 14:57:13 -04:00
|
|
|
{{ t(item.i18n_key, item.title) }}
|
2018-03-30 17:58:56 -04:00
|
|
|
</header>
|
|
|
|
<section
|
|
|
|
v-if="item.description"
|
2020-08-17 13:33:30 -04:00
|
|
|
class="tw-pd-b-1 tw-c-text-alt"
|
2019-06-20 15:15:54 -04:00
|
|
|
>
|
2019-10-04 14:57:13 -04:00
|
|
|
<markdown :source="t(item.desc_i18n_key, item.description)" />
|
2019-06-20 15:15:54 -04:00
|
|
|
</section>
|
2018-07-05 20:27:17 -04:00
|
|
|
<div
|
2018-03-30 17:58:56 -04:00
|
|
|
v-for="i in item.contents"
|
|
|
|
:key="i.full_key"
|
2018-07-05 20:27:17 -04:00
|
|
|
:class="{'ffz-unmatched-item': showing && ! shouldShow(i)}"
|
|
|
|
>
|
|
|
|
<component
|
|
|
|
:is="i.component"
|
|
|
|
:context="context"
|
|
|
|
:item="i"
|
|
|
|
:filter="filter"
|
2019-06-01 02:11:22 -04:00
|
|
|
@navigate="navigate"
|
2018-07-05 20:27:17 -04:00
|
|
|
/>
|
|
|
|
</div>
|
2018-03-30 17:58:56 -04:00
|
|
|
</div>
|
2017-11-13 01:23:39 -05:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
export default {
|
2018-07-05 20:27:17 -04:00
|
|
|
props: ['item', 'context', 'filter'],
|
2017-11-13 01:23:39 -05:00
|
|
|
|
|
|
|
computed: {
|
2018-07-05 20:27:17 -04:00
|
|
|
showing() {
|
|
|
|
return this.shouldShow(this.item);
|
|
|
|
},
|
|
|
|
|
2017-11-13 01:23:39 -05:00
|
|
|
classes() {
|
|
|
|
return [
|
|
|
|
'ffz--menu-container',
|
2017-12-13 17:35:20 -05:00
|
|
|
this.item.full_box ? 'tw-border' : 'tw-border-t'
|
2017-11-13 01:23:39 -05:00
|
|
|
]
|
|
|
|
}
|
2018-07-05 20:27:17 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
methods: {
|
2019-06-01 02:11:22 -04:00
|
|
|
navigate(...args) {
|
|
|
|
this.$emit('navigate', ...args);
|
|
|
|
},
|
|
|
|
|
2018-07-05 20:27:17 -04:00
|
|
|
shouldShow(item) {
|
|
|
|
if ( ! this.filter || ! this.filter.length || ! item.search_terms )
|
|
|
|
return true;
|
|
|
|
|
|
|
|
return item.search_terms.includes(this.filter);
|
|
|
|
}
|
2017-11-13 01:23:39 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|