{"version":3,"sources":["webpack:///./src/components/Printing/MatchPrint.vue?bc4c","webpack:///./src/helpers/MapScoreSheet.js","webpack:///src/components/Printing/MatchPrint.vue","webpack:///./src/components/Printing/MatchPrint.vue?e7de","webpack:///./src/components/Printing/MatchPrint.vue","webpack:///./src/classes/Lineup.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","fab","small","block","loading","text","xSmall","on","onClick","_v","_e","_s","staticRenderFns","getTeam","id","tournament","teams","find","d","form","division","round","match","homeTeam","awayTeam","pool","teamId","hl","lineups","f","al","homeLineup","Lineup","awayLineup","base","Teams1","TeamName1","Team1_Player1","Team1_Player2","TeamName2","Team2_Player2","Team2_Player1","title","name","team1","team2","ct","court","time","join","teamNames","push","t","isDual","dualMatchN","team1Array","pair","_hl","starters","length","playerIds","players","filter","includes","p1","p1A","firstName","lastName","jersey","p2","p2A","jeresy","team2Array","_al","isPool","pools","field","getDualDesc","number","bracket","displayNumber","getMatchTitle","val","ff","getTextField","setText","props","data","pdfUrl","computed","methods","downloadFile","link","href","URL","createObjectURL","blob","download","fileName","document","body","append","click","remove","setTimeout","printFile","component","VBtn","VIcon","dto","update","JSON","parse","exclude","DtoUpdate","positions","type","startsWith","pairs","replace","Array","keys","map","i","n","x","console","log","p","a","stringify","_type","initPostions","applyAll","flatten","m","forEach"],"mappings":"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","file":"js/chunk-1f1e7bdf.6483f0c9.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-btn',{attrs:{\"color\":\"color3 color3Text--text\",\"fab\":_vm.fab,\"small\":_vm.small,\"block\":_vm.block,\"loading\":_vm.loading,\"text\":_vm.text,\"x-small\":_vm.xSmall},on:{\"click\":_vm.onClick}},[(_vm.fab)?_c('v-icon',[_vm._v(\"fas fa-print\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.fab ? null : 'Print Score Sheet')+\" \")],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Lineup from '@/classes/Lineup.js'\r\nconst getTeam = (id, tournament) => {\r\n return id ? tournament.teams.find(d => d.id === id) : null\r\n}\r\n\r\nexport default function (form, tournament, division, round, match, homeTeam, awayTeam, pool) {\r\n awayTeam = match.awayTeam ? getTeam(match.awayTeam.teamId, tournament) : null\r\n homeTeam = match.homeTeam ? getTeam(match.homeTeam.teamId, tournament) : null\r\n\r\n const hl = homeTeam && match.lineups && match.lineups.find(f => f.teamId === homeTeam.id)\r\n const al = awayTeam && match.lineups && match.lineups.find(f => f.teamId === awayTeam.id)\r\n const homeLineup = hl && new Lineup(hl)\r\n const awayLineup = al && new Lineup(al)\r\n\r\n const base = {\r\n Teams1: null,\r\n TeamName1: null,\r\n Team1_Player1: null,\r\n Team1_Player2: null,\r\n TeamName2: null,\r\n Team2_Player2: null,\r\n Team2_Player1: null,\r\n title: tournament.name,\r\n division: division.name,\r\n round: pool ? `Pool ${pool.name}` : round.name,\r\n team1: null,\r\n team2: null,\r\n // match: null,\r\n ct: [match.court, match.time].join('\\n')\r\n }\r\n\r\n const teamNames = []\r\n if (homeTeam) {\r\n teamNames.push(homeTeam.name)\r\n base.TeamName1 = homeTeam.name\r\n let t = homeTeam.name\r\n if (match.isDual) t += ` Pair ${match.dualMatchN}`\r\n const team1Array = [t]\r\n\r\n let pair = null\r\n if (match.isDual) {\r\n if (homeLineup) {\r\n const _hl = homeLineup.starters.length > 0 && homeLineup.starters[match.dualMatchN - 1]\r\n if (_hl) {\r\n const playerIds = _hl.players\r\n pair = {\r\n players: homeTeam.players.filter(f => playerIds.includes(f.id))\r\n }\r\n }\r\n }\r\n } else {\r\n pair = homeTeam\r\n }\r\n\r\n if (pair) {\r\n const p1 = pair.players[0]\r\n if (p1) {\r\n const p1A = [p1.firstName, p1.lastName]\r\n if (p1.jersey) p1A.push(`#${p1.jersey}`)\r\n base.Team1_Player1 = p1A.join(' ')\r\n team1Array.push(base.Team1_Player1)\r\n }\r\n\r\n const p2 = pair.players[1]\r\n if (p2) {\r\n const p2A = [p2.firstName, p2.lastName]\r\n if (p2.jeresy) p2A.push(`#${p2.jersey}`)\r\n base.Team1_Player2 = p2A.join(' ')\r\n team1Array.push(base.Team1_Player2)\r\n }\r\n }\r\n\r\n base.team1 = team1Array.join('\\n')\r\n }\r\n\r\n if (awayTeam) {\r\n teamNames.push(awayTeam.name)\r\n base.TeamName2 = awayTeam.name\r\n let t = awayTeam.name\r\n if (match.isDual) t += ` Pair ${match.dualMatchN}`\r\n const team2Array = [t]\r\n\r\n let pair = null\r\n if (match.isDual) {\r\n if (awayLineup) {\r\n const _al = awayLineup.starters.length > 0 && awayLineup.starters[match.dualMatchN - 1]\r\n if (_al) {\r\n const playerIds = _al.players\r\n pair = {\r\n players: awayTeam.players.filter(f => playerIds.includes(f.id))\r\n }\r\n }\r\n }\r\n } else {\r\n pair = awayTeam\r\n }\r\n\r\n if (pair) {\r\n const p1 = pair.players[0]\r\n if (p1) {\r\n const p1A = [p1.firstName, p1.lastName]\r\n if (p1.jersey) p1A.push(`#${p1.jersey}`)\r\n base.Team2_Player1 = p1A.join(' ')\r\n team2Array.push(base.Team2_Player1)\r\n }\r\n\r\n const p2 = pair.players[1]\r\n if (p2) {\r\n const p2A = [p2.firstName, p2.lastName]\r\n if (p2.jersey) p2A.push(`#${p2.jersey}`)\r\n base.Team2_Player2 = p2A.join(' ')\r\n team2Array.push(base.Team2_Player2)\r\n }\r\n }\r\n\r\n base.team2 = team2Array.join('\\n')\r\n }\r\n\r\n if (teamNames.length === 2) {\r\n base.Teams1 = `${teamNames[0]} vs ${teamNames[1]}`\r\n }\r\n\r\n const isPool = round.pools.length > 0\r\n if (isPool) {\r\n base.round = base.round + '\\n' + (match.getDualDesc() || `Match ${match.number}`)\r\n } else {\r\n if (round.bracket) {\r\n base.round = base.round + '\\n' + (match.getDualDesc(round.bracket) || `Match ${match.displayNumber} (${round.bracket.getMatchTitle(match)})`)\r\n }\r\n }\r\n\r\n for (const field in base) {\r\n const val = base[field]\r\n if (val) {\r\n // console.log(val)\r\n const ff = form.getTextField(field)\r\n ff.setText(val)\r\n }\r\n }\r\n\r\n return form\r\n}\r\n","\r\n \r\n fas fa-print\r\n {{ fab ? null : 'Print Score Sheet' }}\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MatchPrint.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MatchPrint.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MatchPrint.vue?vue&type=template&id=250d509e&\"\nimport script from \"./MatchPrint.vue?vue&type=script&lang=js&\"\nexport * from \"./MatchPrint.vue?vue&type=script&lang=js&\"\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 { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","import DtoUpdate from './DtoUpdate'\r\nimport flatten from '@/helpers/ArrayFlatten'\r\n\r\nexport default class Lineup {\r\n id = 0\r\n name = null\r\n _type = null\r\n teamId = null\r\n positions = []\r\n applyAll = false\r\n\r\n constructor (dto) {\r\n if (dto) {\r\n this.update(dto)\r\n }\r\n }\r\n\r\n update (dto) {\r\n if (typeof dto === 'string') dto = JSON.parse(dto)\r\n const exclude = ['positions']\r\n DtoUpdate(dto, this, exclude)\r\n\r\n if (dto.positions) {\r\n this.positions = dto.positions\r\n }\r\n\r\n // this.ensurePositions()\r\n }\r\n\r\n get type () {\r\n return this._type\r\n }\r\n\r\n set type (val) {\r\n this._type = (val || 'lineups-dual-1')\r\n this.initPostions()\r\n }\r\n\r\n initPostions () {\r\n if (this.type.startsWith('lineups-dual-')) {\r\n const pairs = +this.type.replace('lineups-dual-', '')\r\n this.positions = [...Array(pairs).keys()].map(i => {\r\n return {\r\n type: 'dual',\r\n n: ++i,\r\n players: []\r\n }\r\n })\r\n }\r\n }\r\n\r\n ensurePositions () {\r\n if (this.type.startsWith('lineups-dual-')) {\r\n const pairs = +this.type.replace('lineups-dual-', '')\r\n let i = 0\r\n for (i = 1; i <= pairs; i++) {\r\n const x = this.positions.find(f => f.type === 'dual' && f.n === i)\r\n if (!x) {\r\n console.log('missing position')\r\n this.positions.push({\r\n type: 'dual',\r\n n: i,\r\n players: []\r\n })\r\n }\r\n }\r\n\r\n for (i = 1; i <= 6; i++) {\r\n const x = this.positions.find(f => f.type === 'alt' && f.n === i)\r\n if (!x) {\r\n this.positions.push({\r\n type: 'alt',\r\n n: i,\r\n players: []\r\n })\r\n }\r\n }\r\n\r\n for (i = 1; i <= 6; i++) {\r\n const x = this.positions.find(f => f.type === 'removed' && f.n === i)\r\n if (!x) {\r\n this.positions.push({\r\n type: 'removed',\r\n n: i,\r\n players: []\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n get starters () {\r\n return this.positions.filter(f => f.type === 'dual')\r\n }\r\n\r\n get alternates () {\r\n return this.positions.filter(f => f.type === 'alt')\r\n }\r\n\r\n get removedPlayers () {\r\n return this.positions.filter(f => f.type === 'removed')\r\n }\r\n\r\n get valid () {\r\n return this.name && this.type && this.starters.filter(f => f.players.length !== 2).length === 0\r\n }\r\n\r\n get dto () {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n type: this.type,\r\n positions: this.positions,\r\n teamId: this.teamId,\r\n applyAll: this.applyAll\r\n }\r\n }\r\n\r\n get players () {\r\n return flatten(this.positions.map(m => m.players))\r\n }\r\n\r\n get playersNeeded () {\r\n let n = 0\r\n this.positions.filter(f => ['dual'].includes(f.type)).forEach(p => {\r\n n = n + (p.type === 'dual' ? 2 : 1)\r\n })\r\n return n\r\n }\r\n\r\n removePosition (p) {\r\n const a = JSON.stringify(p)\r\n this.positions = this.positions.filter(f => JSON.stringify(f) !== a)\r\n }\r\n}\r\n"],"sourceRoot":""}