{"version":3,"sources":["webpack:///./src/components/dashboard/DashboardRosterSubPage.vue?52f3","webpack:///./src/components/dashboard/DashboardRosterSubPage.vue","webpack:///./src/components/dashboard/DashboardRosterSubPage.vue?ca5f","webpack:///./src/components/dashboard/DashboardRosterSubPage.vue?e628","webpack:///../../../src/components/VCard/VCard.ts"],"names":["render","_vm","this","_h","$createElement","_c","_self","displayedRoster","attrs","staticClass","_v","_s","$t","_l","roleData","k","key","imageLinks","iconRole","name","subRole","_e","count","at","type","characters","filter","c","classes","includes","class","length","cl","thumbnailClass","staticRenderFns","teamModule","roles","rosters","find","x","id","$route","params","rosterId","result","role","subroles","push","forEach","isLoading","State","components","SummaryTable","UsersRepartitionTable","component","VAvatar","VCard","VCol","VContainer","VDivider","VImg","VListItem","VListItemContent","VList","VListItemSubtitle","VListItemTitle","VRow","props","flat","hover","img","link","loaderHeight","Number","default","raised","Boolean","computed","styles","style","methods","genProgress","data","h","tag","setBackgroundColor","$slots"],"mappings":"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","file":"dist/js/chunk-8554ee46.461fd315.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.displayedRoster != null)?_c('v-container',{attrs:{\"fluid\":\"\",\"pa-0\":\"\",\"grid-list-xl\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"9\"}},[_c('summary-table',{attrs:{\"roster\":_vm.displayedRoster}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"3\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"6\"}},[_c('v-card',[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"headline\"},[_vm._v(_vm._s(_vm.$t('dashboard.roles')))])],1)],1),_c('v-divider'),_vm._l((_vm.rolesData),function(roleData,k){return [_c('v-list-item',{key:k},[_c('v-img',{staticClass:\"mr-3\",attrs:{\"max-width\":28,\"src\":_vm.imageLinks.iconRole(roleData.name)}}),_c('v-list-item-title',[(!roleData.subRole)?_c('span',[_vm._v(_vm._s(roleData.name))]):_vm._e(),(roleData.subRole)?_c('span',[_vm._v(_vm._s(roleData.subRole))]):_vm._e()]),_c('v-list-item-subtitle',{staticClass:\"text-right\"},[_vm._v(_vm._s(roleData.count))])],1)]})],2)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"6\"}},[_c('v-card',[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"headline\"},[_vm._v(_vm._s(_vm.$t('dashboard.armor_types')))])],1)],1),_c('v-divider'),_vm._l((_vm.armorTypes),function(at,k){return _c('v-list-item',{key:k},[_c('v-list-item-title',[_vm._v(_vm._s(at.type))]),_c('v-list-item-subtitle',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.displayedRoster.characters.filter(function (c) { return at.classes.includes(c.class); }).length)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])],1)})],2)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"6\"}},[_c('v-card',[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"headline\"},[_vm._v(_vm._s(_vm.$t('dashboard.classes')))])],1)],1),_c('v-divider'),_vm._l((_vm.classes),function(cl,k){return _c('v-list-item',{key:k},[_c('v-avatar',{staticClass:\"mr-3\",attrs:{\"size\":28}},[_c('v-img',{attrs:{\"src\":_vm.imageLinks.thumbnailClass(k)}})],1),_c('v-list-item-title',[_vm._v(_vm._s(cl.name))]),_c('v-list-item-subtitle',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.displayedRoster.characters.filter(function (c) { return c.class == k; }).length)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])],1)})],2)],1)],1)],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Mixins, Prop } from \"vue-property-decorator\";\nimport { namespace } from \"vuex-class\";\n\n/**\n * Utils\n */\nimport classes from \"@/config/wow/classes\";\nimport * as externalLinks from \"@/config/external-links\";\nimport * as imageLinks from \"@/config/image-links\";\nimport armorTypes from \"@/config/wow/armor-types\";\nimport roles, { SubRole } from \"@/config/wow/roles\";\n\nimport { getTimeSince } from \"@/utils/date-helpers\";\n\n\n/**\n * Components\n */\nimport SummaryTable from \"./components/SummaryTable.vue\";\nimport UsersRepartitionTable from \"./components/UsersRepartitionTable.vue\";\n\n/**\n * API\n */\nimport { GetOneTeamResponse } from \"@/api/teams/get-one-team.response\";\nimport { GetRostersResponse } from \"@/api/rosters/get-rosters.response\";\n\n/**\n * Mixins\n */\nimport mixinNow from \"@/mixins/now-mixin\";\n\n\n/**\n * Types\n */\n\n\n/**\n * VueX Modules\n */\nconst teamModule = namespace(\"team\");\n\n\ninterface RoleList {\n\tname: string;\n\tsubRole: SubRole | \"\";\n\tcount: number;\n}\n\n/**\n * Roster's dashboard sub page.\n */\n@Component({\n\tcomponents: {\n\t\tSummaryTable,\n\t\tUsersRepartitionTable\n\t}\n})\nexport default class DashboardRosterSubPage extends Mixins(mixinNow) {\n\t/// Injections\n\tclasses = classes;\n\texternalLinks = externalLinks;\n\timageLinks = imageLinks;\n\troles = roles;\n\tarmorTypes = armorTypes;\n\n\tgetTimeSince = getTimeSince;\n\n\t/// Properties\n\t@Prop()\n\trosters!: GetRostersResponse.Roster[];\n\n\t/// Attributes\n\tisLoading = false;\n\n\n\t/// VueX Modules\n\t@teamModule.State(\"team\")\n\tcurrentTeam!: GetOneTeamResponse;\n\n\t/**\n\t * The current roster to display.\n\t */\n\tget displayedRoster(): GetRostersResponse.Roster | null {\n\t\treturn this.rosters.find(x => x.id == this.$route.params.rosterId) ?? null;\n\t}\n\n\tget rolesData(): RoleList[] {\n\t\tconst displayedRoster = this.displayedRoster;\n\t\tif (displayedRoster == null) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst result: RoleList[] = [];\n\t\tfor (const role of roles) {\n\t\t\tif (role.subroles.length == 0) {\n\t\t\t\tresult.push({\n\t\t\t\t\tname: role.name,\n\t\t\t\t\tsubRole: \"\",\n\t\t\t\t\tcount: displayedRoster.characters.filter(x => x.role == role.name).length\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\trole.subroles.forEach(function (subRole) {\n\t\t\t\t\tif (subRole != \"\") {\n\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\tname: role.name,\n\t\t\t\t\t\t\tsubRole: subRole,\n\t\t\t\t\t\t\tcount: displayedRoster.characters.filter(x => x.role == role.name && x.subRole == subRole).length\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\t/// Methods\n\tasync created() {\n\t\tthis.isLoading = true;\n\n\t\t//\n\t\t// if (this.displayedRoster == null) {\n\t\t// \tawait this.$router.push(\"/\");\n\t\t// }\n\n\n\t\tthis.isLoading = false;\n\n\t\t// this.connection.on(\"CharacterSync\", function (characterUpdated) {\n\t\t// \tthat.rosters = that.rosters.map((roster) => ({\n\t\t// \t\t...roster,\n\t\t// \t\tcharacters: roster.characters.map((character) => {\n\t\t// \t\t\tif (character.id === characterUpdated.id) {\n\t\t// \t\t\t\treturn characterUpdated;\n\t\t// \t\t\t}\n\t\t// \t\t\telse {\n\t\t// \t\t\t\treturn character;\n\t\t// \t\t\t}\n\t\t// \t\t})\n\t\t// \t}));\n\t\t// });\n\t}\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardRosterSubPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashboardRosterSubPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DashboardRosterSubPage.vue?vue&type=template&id=0d71f9bf&\"\nimport script from \"./DashboardRosterSubPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./DashboardRosterSubPage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAvatar,VCard,VCol,VContainer,VDivider,VImg,VListItem,VListItemContent,VListItemSubtitle,VListItemTitle,VRow})\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n Loadable,\n Routable,\n VSheet\n).extend({\n name: 'v-card',\n\n props: {\n flat: Boolean,\n hover: Boolean,\n img: String,\n link: Boolean,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n raised: Boolean,\n },\n\n computed: {\n classes (): object {\n return {\n 'v-card': true,\n ...Routable.options.computed.classes.call(this),\n 'v-card--flat': this.flat,\n 'v-card--hover': this.hover,\n 'v-card--link': this.isClickable,\n 'v-card--loading': this.loading,\n 'v-card--disabled': this.disabled,\n 'v-card--raised': this.raised,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n const style: Dictionary = {\n ...VSheet.options.computed.styles.call(this),\n }\n\n if (this.img) {\n style.background = `url(\"${this.img}\") center center / cover no-repeat`\n }\n\n return style\n },\n },\n\n methods: {\n genProgress () {\n const render = Loadable.options.methods.genProgress.call(this)\n\n if (!render) return null\n\n return this.$createElement('div', {\n staticClass: 'v-card__progress',\n key: 'progress',\n }, [render])\n },\n },\n\n render (h): VNode {\n const { tag, data } = this.generateRouteLink()\n\n data.style = this.styles\n\n if (this.isClickable) {\n data.attrs = data.attrs || {}\n data.attrs.tabindex = 0\n }\n\n return h(tag, this.setBackgroundColor(this.color, data), [\n this.genProgress(),\n this.$slots.default,\n ])\n },\n})\n"],"sourceRoot":""}