a8b58815b4
* move groups/sidebar to groupSidebar.vue * lint files * extract group/party sidebar to rightSidebar.vue * wip stories with example data * update stories - wip sidebar re-styling * message party / group leader + move items to the menu * update paddings /place for quest section * invite to party / guild * update labels (* Party / Guild ) * guild-background to group-background * correct menu order + missing a label based on the group type * no quest - styles / layout applied * quest owner / not started - styles applied + extracted questActions from questDetailsModal.vue to a mixin * no challenge style * hover with underlines * quest-pending area layout / margins * "Collection Quest/Quest Owner Participating" Styling Done * group sidebar menu with icons / background * remove most participate button styles * fix quest-invite panel * move "Start Quest" + add "Leave Quest" * Not Participating + Boss + Rage Quests restyling * party quest changes - invitedToQuest + button styles + no-items style + view details * fix icons + rage value + colors * fix duplicate key * hide items label if 0 items found + hide pending damage if there is none + sidebar section margin + fix percent calculation 0 => 0% * combine quest abandon / cancel to one call + hide begin if quest has already started + close modal if quest was canceled * remove unused translate string * allow leaving an accepted but inactive quest + disable leave when user is quest leader * update "are you sure" questions - remove "doubleSureAbort" - add "sureLeaveInactive" * sidebar margins + menu icon color * refactored css rules * improve some styles * fix button spacing * fix dropmenu with icon hover * hide leave quest for leaders + fix quest buttons spacing * add pending items label * remove "X items found" label * first round of fixes * last v-once * Update Quest Dialogs (#13112) * new quest rewards panel + extract questPopover and itemWithLabel * WIP: questInfo still not applying the row-height.. * split up start-quest-modal into select and detail modal - also rename the current quest-details to be the group-quest-details modal * remove start-quest-modal from modal-scss * update package-lock * WIP before using the quest sidebar branch as a base * move quest detail actions to the "new" details dialog * quest details layout for owner / participant * fix quest rewards - open details modal from sidebar * apply quest-details dialog styles to the buyQuestModal one * fix quest reward icons / popover / texts * WIP back to quest selection * fix lint * merge selectQuestModal.vue with questDetailModal.vue + UI for the select quest * fix margins / layout / labels * fix quest detail + wip invitationListModal.vue / participantListModal.vue * fix questmodal user label centered * fix centered reward items + grouping items and adding a count-badge * sort quests by AZ or quantity * invitations modal * remove console.info * complete participantListModal.vue + extracted getClassName * missed a file for getClassName extraction * fix invitations * select the actual quest on details * fix margins on invite to party / start quest buttons * replace buyQuestModal close button and title * fix recursion due to the same name * missing import * sort quantity by highest first * fix "Can't find a Quest to start" styles * fix "your balance" padding * fix quest collections / drop items * fix member details in participants list * fix quest info * remove nullable because the build doesn't like it (on this file..) * add questCompleted to the stories + fix getDropName * replace quest-rewards in questCompleted.vue * fix questCompleted.vue style * delete obsolete components * add missing spritesheets to storebook * requested pr changes * refactored fetchMember * revert optional chaining * fix merge conflicts * fix rightSidebar hover colors - $scss var to css var * overflow auto instead of scroll * prevent wrapping of quest collections * rollback to multi line quest items * use min-width for the quest popover
163 lines
2.9 KiB
Vue
163 lines
2.9 KiB
Vue
<template>
|
|
<div
|
|
:id="elementId"
|
|
ref="container"
|
|
class="progress-container"
|
|
:class="{condensed}"
|
|
>
|
|
<div
|
|
v-if="showIcon"
|
|
class="svg-icon"
|
|
v-html="icon"
|
|
></div>
|
|
<div class="progress">
|
|
<div
|
|
class="progress-bar"
|
|
:class="progressClass"
|
|
:style="{width: `${percent(value, maxValue)}%`}"
|
|
></div>
|
|
</div>
|
|
<span class="small-text" v-if="showNumbers">
|
|
{{ value | statFloor }} / {{ maxValue }}
|
|
</span>
|
|
<b-tooltip
|
|
class="myClass"
|
|
:target="() => $refs.container"
|
|
:container="elementId"
|
|
:title="tooltip"
|
|
triggers="hover"
|
|
placement="bottom"
|
|
/>
|
|
</div>
|
|
</template>
|
|
|
|
<style lang="scss" scoped>
|
|
@import '~@/assets/scss/colors.scss';
|
|
|
|
.progress-container {
|
|
margin-left: 4px;
|
|
margin-bottom: .5em;
|
|
height: 24px;
|
|
|
|
::v-deep .bs-tooltip-bottom {
|
|
top: -16px !important
|
|
}
|
|
}
|
|
|
|
.progress-container > span {
|
|
color: $header-color;
|
|
margin-left: 8px;
|
|
font-style: normal;
|
|
line-height: 1;
|
|
}
|
|
|
|
.progress-container > .svg-icon {
|
|
width: 24px;
|
|
height: 24px;
|
|
margin-right: 8px;
|
|
}
|
|
|
|
.progress-container > .progress {
|
|
--progress-background: #{$header-dark-background};
|
|
|
|
min-width: 200px;
|
|
margin: 0px;
|
|
border-radius: 1px;
|
|
height: 12px;
|
|
background-color: var(--progress-background);
|
|
@media (max-width: 992px) {
|
|
min-width: 160px;
|
|
}
|
|
}
|
|
|
|
.progress-container > .progress > .progress-bar {
|
|
border-radius: 1px;
|
|
height: 12px;
|
|
min-width: 0px;
|
|
}
|
|
|
|
.progress-container .svg-icon, .progress-container .progress, .progress-container .small-text {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.progress-container.condensed {
|
|
> .svg-icon {
|
|
width: 19px;
|
|
height: 19px;
|
|
margin-top: -2px;
|
|
}
|
|
|
|
> .progress {
|
|
width: 152px;
|
|
border-radius: 1px;
|
|
height: 10px;
|
|
margin-top: 2px;
|
|
background: $purple-100;
|
|
}
|
|
|
|
> .progress > .progress-bar {
|
|
border-radius: 1px;
|
|
height: 10px;
|
|
}
|
|
}
|
|
</style>
|
|
|
|
<script>
|
|
import percent from '@/../../common/script/libs/percent';
|
|
|
|
export default {
|
|
filters: {
|
|
statFloor (value) {
|
|
if (value < 1 && value > 0) {
|
|
return Math.ceil(value * 10) / 10;
|
|
}
|
|
return Math.floor(value);
|
|
},
|
|
},
|
|
props: {
|
|
icon: {
|
|
type: String,
|
|
},
|
|
value: {
|
|
type: Number,
|
|
},
|
|
maxValue: {
|
|
type: Number,
|
|
},
|
|
tooltip: {
|
|
type: String,
|
|
},
|
|
progressClass: {
|
|
type: String,
|
|
},
|
|
condensed: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
showIcon: {
|
|
type: Boolean,
|
|
default: true,
|
|
},
|
|
showNumbers: {
|
|
type: Boolean,
|
|
default: true,
|
|
},
|
|
},
|
|
data () {
|
|
return {
|
|
elementId: null,
|
|
};
|
|
},
|
|
mounted () {
|
|
this.elementId = `container_${this._uid}`;
|
|
},
|
|
methods: {
|
|
percent,
|
|
click () {
|
|
this.$emit('click');
|
|
},
|
|
},
|
|
};
|
|
</script>
|