Files
habitica/website/client/components/inventory/item.vue
negue 4108a22d78 [WIP] bootstrap-vue upgrade (#9178)
* update bootstrap-vue to 1.0.0-beta.9 - remove all individual bootstrap components and use BootstrapVue into Vue

* change modal action names from show::modal to bv::show::modal

* check if drops are undefined

* fix modal widths - sellModal now using input instead of dropbox

* upgrade to bootstrap 4.0beta

* include package-lock changes

* fix app menu dropdown position

* upgrade bootstrap to beta2 (was missing grid offset and other fixes) - refix header menu position

* fix tags popup (auto width to max not working) - fix filter panel width (adding width: 100% works until max-width)

* show hide logo on different screensize (new css breakpoints - http://getbootstrap.com/docs/4.0/utilities/display/ )

* fix package-lock?

* fix active button style / app header toggle button

* fix package-lock !

* update package lock after merge - new mixin "openedItemRows" to save the "show more/show less" in stable

* mixin naming style

* fix buyQuestModal marginTop

* fix customMenuDropdown position

* fix userDropdown items
2017-11-08 18:40:37 +01:00

69 lines
1.3 KiB
Vue

<template lang="pug">
div(v-if="emptyItem")
.item-wrapper
.item.item-empty
.item-content
span.item-label(v-if="label") {{ label }}
div(v-else)
.item-wrapper(@click="click", :id="itemId")
.item(:class="{'item-active': active, 'highlight-border':highlightBorder }")
slot(name="itemBadge", :item="item")
span.item-content(
:class="itemContentClass"
)
span.item-label(v-if="label") {{ label }}
b-popover(
v-if="showPopover"
:target="itemId",
triggers="hover",
:placement="popoverPosition",
)
slot(name="popoverContent", :item="item")
</template>
<script>
import uuid from 'uuid';
export default {
props: {
item: {
type: Object,
},
itemContentClass: {
type: String,
},
label: {
type: String,
},
emptyItem: {
type: Boolean,
default: false,
},
popoverPosition: {
type: String,
default: 'bottom',
},
showPopover: {
type: Boolean,
default: true,
},
active: {
type: Boolean,
},
highlightBorder: {
type: Boolean,
},
},
data () {
return Object.freeze({
itemId: uuid.v4(),
});
},
methods: {
click () {
this.$emit('click', this.item);
},
},
};
</script>