{"version":3,"sources":["webpack:///./src/components/Tournament/Courts/AddCourts.vue?2ef5","webpack:///src/components/Tournament/Courts/AddCourts.vue","webpack:///./src/components/Tournament/Courts/AddCourts.vue?8b07","webpack:///./src/components/Tournament/Courts/AddCourts.vue","webpack:///./src/components/QR/PdfPrint.vue?2b20","webpack:///src/components/QR/PdfPrint.vue","webpack:///./src/components/QR/PdfPrint.vue?0c21","webpack:///./src/components/QR/PdfPrint.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","flat","_v","model","value","callback","$$v","courts","expression","staticClass","saving","on","$event","stopPropagation","cancel","dirty","save","staticRenderFns","props","data","computed","tCourts","calcCourts","ranges","forEach","results","filter","isNaN","a","b","push","noSort","combined","methods","$emit","emitCourts","emit","tournament","jProps","saveJProps","watch","val","component","VBtn","VCard","VCardActions","VCardText","VTextField","scopedSlots","_u","key","fn","ref","_g","loading","_s","btnText","_e","dialog","window","someSelected","toggleAll","allSelected","_l","p","i","desc","title","$set","onSavingChange","downloadable","length","download","dd","pp","icon","init","contentInit","pages","map","obj","Object","assign","createContent","content","images","scanMe","styles","fontSize","bold","alignment","subtitle","color","lastImage","Promise","all","pdfMake","pdfFonts","v","components","AddCourts","VCheckbox","VDialog","VDivider","VIcon","VSpacer","VToolbar","VToolbarTitle","VWindow","VWindowItem"],"mappings":"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","file":"js/chunk-163a53bc.25010405.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"flat\":_vm.flat}},[_c('v-card-text',[_c('div',[_vm._v(\"Enter the court numbers (or names) seperated by a comma. i.e. 6,7,8,9\")]),_c('div',[_vm._v(\"To enter a range of court put in the starting and ending court number sperated by a dash. i.e. 1-10 (only works with numbers)\")]),_c('v-text-field',{attrs:{\"label\":\"Additional Courts\"},model:{value:(_vm.courts),callback:function ($$v) {_vm.courts=$$v},expression:\"courts\"}})],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error white--text\",\"disabled\":_vm.saving},on:{\"click\":function($event){$event.stopPropagation();return _vm.cancel($event)}}},[_vm._v(\"cancel\")]),_c('v-btn',{attrs:{\"color\":\"success white--text\",\"disabled\":!_vm.dirty,\"loading\":_vm.saving},on:{\"click\":function($event){$event.stopPropagation();return _vm.save($event)}}},[_vm._v(\"save\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <v-card :flat=\"flat\">\r\n <v-card-text>\r\n <div>Enter the court numbers (or names) seperated by a comma. i.e. 6,7,8,9</div>\r\n <div>To enter a range of court put in the starting and ending court number sperated by a dash. i.e. 1-10 (only works with numbers)</div>\r\n <v-text-field\r\n label=\"Additional Courts\"\r\n v-model=\"courts\"\r\n ></v-text-field>\r\n </v-card-text>\r\n <v-card-actions class=\"justify-center\">\r\n <v-btn\r\n color=\"error white--text\"\r\n @click.stop=\"cancel\"\r\n :disabled=\"saving\"\r\n >cancel</v-btn>\r\n <v-btn\r\n color=\"success white--text\"\r\n :disabled=\"!dirty\"\r\n :loading=\"saving\"\r\n @click.stop=\"save\"\r\n >save</v-btn>\r\n </v-card-actions>\r\n </v-card>\r\n</template>\r\n\r\n<script>\r\nimport { firstBy } from 'thenby'\r\nimport { union } from '@/helpers/SetFunctions'\r\nexport default {\r\n props: ['flat', 'tournament', 'emit', 'noSort'],\r\n data () {\r\n return {\r\n courts: null,\r\n saving: false\r\n }\r\n },\r\n computed: {\r\n tCourts () {\r\n return (this.tournament && this.tournament.courts) || []\r\n },\r\n calcCourts () {\r\n if (!this.courts) return []\r\n let results = this.courts.split(',')\r\n const ranges = results.filter(f => f.includes('-'))\r\n ranges.forEach(r => {\r\n results = results.filter(f => f !== r)\r\n const x = r.split('-')\r\n let a = +x[0]\r\n const b = +x[1]\r\n if (!isNaN(a) && !isNaN(b)) {\r\n for (a; a <= b; a++) {\r\n results.push(`${a}`.trim())\r\n }\r\n }\r\n })\r\n\r\n return this.noSort ? [...new Set(results)] : [...new Set(results)].sort(firstBy(Number))\r\n },\r\n combined () {\r\n const all = union(new Set(this.calcCourts), new Set(this.tCourts))\r\n return [...all].sort(firstBy(Number)).map(m => m.trim()).filter(f => !!f)\r\n },\r\n dirty () {\r\n return (this.tournament && JSON.stringify(this.tCourts) !== JSON.stringify(this.combined)) || (this.emit && this.calcCourts.length > 0)\r\n }\r\n },\r\n methods: {\r\n cancel () {\r\n this.courts = null\r\n this.$emit('cancel-click')\r\n },\r\n emitCourts () {\r\n this.$emit('emit-courts', this.calcCourts)\r\n },\r\n save () {\r\n if (this.emit) {\r\n this.emitCourts()\r\n return\r\n }\r\n this.saving = true\r\n this.tournament.jProps.courts = this.combined\r\n this.tournament.saveJProps()\r\n .then(r => {\r\n this.courts = null\r\n this.$emit('save-complete')\r\n })\r\n .catch(e => console.log(e.response))\r\n .finally(() => { this.saving = false })\r\n }\r\n },\r\n watch: {\r\n saving: function (val) {\r\n this.$emit('saving-change', val)\r\n }\r\n }\r\n}\r\n</script>\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!./AddCourts.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!./AddCourts.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AddCourts.vue?vue&type=template&id=5fbbc588&\"\nimport script from \"./AddCourts.vue?vue&type=script&lang=js&\"\nexport * from \"./AddCourts.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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"scrollable\":\"\",\"persistent\":\"\",\"max-width\":\"500px\",\"transition\":\"dialog-transition\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [(_vm.pages)?_c('v-btn',_vm._g({attrs:{\"color\":\"color3\",\"text\":\"\",\"x-small\":\"\",\"loading\":_vm.loading}},on),[_vm._v(_vm._s(_vm.btnText || 'Print'))]):_vm._e()]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"color\":\"color2 color2Text--text\"}},[_c('v-toolbar-title',[_vm._v(\"Download QR Codes\")]),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"color1 color1Text--text\",\"small\":\"\",\"fab\":\"\",\"disabled\":_vm.loading},on:{\"click\":function($event){$event.stopPropagation();_vm.dialog = false}}},[_c('v-icon',[_vm._v(\"fas fa-times\")])],1)],1),_c('v-card-text',{staticClass:\"pt-2\"},[_c('v-window',{model:{value:(_vm.window),callback:function ($$v) {_vm.window=$$v},expression:\"window\"}},[_c('v-window-item',{key:0},[_c('div',{staticClass:\"text-end\"},[(_vm.tournament.isTournament)?_c('v-btn',{attrs:{\"color\":\"color3\",\"x-small\":\"\",\"text\":\"\"},on:{\"click\":function($event){$event.stopPropagation();_vm.window = 1}}},[_vm._v(\" Add Courts \")]):_vm._e()],1),_c('v-checkbox',{attrs:{\"label\":\"Toggle All\",\"readonly\":\"\",\"indeterminate\":_vm.someSelected,\"color\":\"success\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleAll($event)}},model:{value:(_vm.allSelected),callback:function ($$v) {_vm.allSelected=$$v},expression:\"allSelected\"}}),_vm._l((_vm.pp),function(p,i){return _c('v-checkbox',{key:(\"\" + (p.title) + i),attrs:{\"label\":p.desc || p.title,\"hide-details\":\"\",\"dense\":\"\",\"color\":\"success\"},model:{value:(p.selected),callback:function ($$v) {_vm.$set(p, \"selected\", $$v)},expression:\"p.selected\"}})})],2),_c('v-window-item',{key:1},[_c('add-courts',{attrs:{\"flat\":true,\"tournament\":_vm.tournament},on:{\"cancel-click\":function($event){_vm.window = 0},\"save-complete\":function($event){_vm.window = 0},\"saving-change\":_vm.onSavingChange}})],1)],1)],1),(_vm.window === 0)?_c('v-divider'):_vm._e(),(_vm.window === 0)?_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"success\",\"loading\":_vm.loading,\"disabled\":this.downloadable.length === 0},on:{\"click\":function($event){$event.stopPropagation();return _vm.download($event)}}},[_vm._v(\"download (\"+_vm._s(this.downloadable.length)+\")\")])],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <v-dialog\r\n v-model=\"dialog\"\r\n scrollable\r\n persistent\r\n max-width=\"500px\"\r\n transition=\"dialog-transition\"\r\n >\r\n <template v-slot:activator=\"{ on }\">\r\n <v-btn\r\n color=\"color3\"\r\n text\r\n v-on=\"on\"\r\n v-if=\"pages\"\r\n x-small\r\n :loading=\"loading\"\r\n >{{btnText || 'Print'}}</v-btn>\r\n </template>\r\n <v-card>\r\n <v-toolbar color=\"color2 color2Text--text\">\r\n <v-toolbar-title>Download QR Codes</v-toolbar-title>\r\n <v-spacer></v-spacer>\r\n <v-btn\r\n color=\"color1 color1Text--text\"\r\n small fab\r\n @click.stop=\"dialog = false\"\r\n :disabled=\"loading\"\r\n >\r\n <v-icon>fas fa-times</v-icon>\r\n </v-btn>\r\n </v-toolbar>\r\n <v-card-text class=\"pt-2\">\r\n <v-window v-model=\"window\">\r\n <v-window-item :key=\"0\">\r\n <div class=\"text-end\">\r\n <v-btn\r\n v-if=\"tournament.isTournament\"\r\n color=\"color3\"\r\n x-small text\r\n @click.stop=\"window = 1\"\r\n >\r\n Add Courts\r\n </v-btn>\r\n </div>\r\n <v-checkbox\r\n label=\"Toggle All\"\r\n readonly\r\n v-model=\"allSelected\"\r\n :indeterminate=\"someSelected\"\r\n color=\"success\"\r\n @click.stop=\"toggleAll\"\r\n ></v-checkbox>\r\n <v-checkbox\r\n v-for=\"(p, i) in pp\"\r\n :key='`${p.title}${i}`'\r\n :label=\"p.desc || p.title\"\r\n v-model=\"p.selected\"\r\n hide-details dense\r\n color=\"success\"\r\n ></v-checkbox>\r\n </v-window-item>\r\n <v-window-item :key=\"1\">\r\n <add-courts\r\n :flat=\"true\"\r\n :tournament=\"tournament\"\r\n @cancel-click=\"window = 0\"\r\n @save-complete=\"window = 0\"\r\n @saving-change=\"onSavingChange\"\r\n ></add-courts>\r\n </v-window-item>\r\n </v-window>\r\n </v-card-text>\r\n <v-divider v-if=\"window === 0\"></v-divider>\r\n <v-card-actions class=\"justify-center\" v-if=\"window === 0\">\r\n <v-btn\r\n color=\"success\"\r\n :loading=\"loading\"\r\n @click.stop=\"download\"\r\n :disabled=\"this.downloadable.length === 0\"\r\n >download ({{this.downloadable.length}})</v-btn>\r\n </v-card-actions>\r\n </v-card>\r\n </v-dialog>\r\n</template>\r\n\r\n<script>\r\nimport AddCourts from '@/components/Tournament/Courts/AddCourts'\r\nconst pdfMake = () => import('pdfmake/build/pdfmake.js')\r\nconst pdfFonts = () => import('pdfmake/build/vfs_fonts.js')\r\n\r\nexport default {\r\n props: ['pages', 'btnText', 'name', 'tournament'],\r\n data () {\r\n return {\r\n dd: null,\r\n loading: false,\r\n dialog: false,\r\n pp: [],\r\n window: 0\r\n }\r\n },\r\n computed: {\r\n downloadable () {\r\n return this.pp.filter(f => f.selected)\r\n },\r\n allSelected () {\r\n return this.pp.length === this.downloadable.length\r\n },\r\n someSelected () {\r\n return this.downloadable.length > 0 && !this.allSelected\r\n },\r\n icon () {\r\n if (this.allSelected) return { name: 'fas fa-check-square', color: 'color3' }\r\n if (this.someSelected) return { name: 'fas fa-minus-square', color: 'color3' }\r\n return { name: 'far fa-square', color: '' }\r\n }\r\n },\r\n methods: {\r\n toggleAll () {\r\n const v = !this.allSelected\r\n this.pp.forEach(f => { f.selected = v })\r\n },\r\n init () {\r\n this.window = 0\r\n this.contentInit()\r\n },\r\n contentInit () {\r\n this.pp = this.pages.map(m => {\r\n var obj = Object.assign({ selected: true }, m)\r\n return obj\r\n })\r\n },\r\n createContent () {\r\n this.dd = {\r\n content: [],\r\n images: {\r\n scanMe: 'https://vblimages.blob.core.windows.net/images/152184d7-12af-4207-9b77-6c394945b655.png'\r\n },\r\n styles: {\r\n title: {\r\n fontSize: 33,\r\n bold: true,\r\n alignment: 'center'\r\n },\r\n subtitle: {\r\n fontSize: 22,\r\n bold: true,\r\n alignment: 'center',\r\n color: '#A6A6A6'\r\n }\r\n }\r\n }\r\n this.downloadable.filter(f => f.selected).forEach((p, i) => {\r\n const imageName = `image${i}`\r\n this.dd.content.push({ style: 'title', text: p.title })\r\n this.dd.content.push({ style: 'subtitle', text: p.subtitle, margin: [0, 0, 0, 0] })\r\n this.dd.images[imageName] = p.url\r\n this.dd.content.push({ image: imageName, width: 500, style: 'title' })\r\n var lastImage = { image: 'scanMe', width: 500, style: 'title' }\r\n if (i + 1 < this.downloadable.length) lastImage.pageBreak = 'after'\r\n this.dd.content.push(lastImage)\r\n })\r\n },\r\n download () {\r\n this.loading = true\r\n this.createContent()\r\n Promise.all([pdfMake(), pdfFonts()])\r\n .then(data => {\r\n const p = data[0]\r\n const f = data[1]\r\n window.pdfMake.vfs = f.pdfMake.vfs\r\n\r\n const n = this.name || 'QR Codes'\r\n p.createPdf(this.dd).download(n, () => {\r\n this.loading = false\r\n this.dialog = false\r\n })\r\n })\r\n },\r\n onSavingChange (v) {\r\n this.loading = v\r\n }\r\n },\r\n watch: {\r\n dialog: 'init',\r\n window: 'contentInit'\r\n },\r\n components: {\r\n AddCourts\r\n }\r\n}\r\n</script>\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!./PdfPrint.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!./PdfPrint.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdfPrint.vue?vue&type=template&id=a6e768be&\"\nimport script from \"./PdfPrint.vue?vue&type=script&lang=js&\"\nexport * from \"./PdfPrint.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 { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\nimport { VWindow } from 'vuetify/lib/components/VWindow';\nimport { VWindowItem } from 'vuetify/lib/components/VWindow';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCheckbox,VDialog,VDivider,VIcon,VSpacer,VToolbar,VToolbarTitle,VWindow,VWindowItem})\n"],"sourceRoot":""}