{"version":3,"sources":["webpack:///./src/views/news/components/ArticleItem.vue?ea4f","webpack:///./src/views/news/components/ArticleItem.vue","webpack:///./src/views/news/components/ArticleItem.vue?5870","webpack:///./src/views/news/components/ArticleItem.vue?e245","webpack:///./src/views/news/News.vue?44b8","webpack:///./src/views/news/News.vue","webpack:///./src/views/news/News.vue?8138","webpack:///./src/views/news/News.vue?4973","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts"],"names":["render","_vm","this","_h","$createElement","_c","_self","VCard","staticClass","attrs","on","openArticle","staticStyle","_v","_s","article","Title","_f","PostedAt","body","VSpacer","VBtn","$event","stopPropagation","$t","VIcon","_e","staticRenderFns","ArticleItem","admins","includes","userEmail","text","Body","length","section","substr","BannerImage","URI","$router","push","ID","Vue","__decorate","Prop","default","Getter","namespace","Component","component","VContainer","VBadge","articles","toString","loading","800","_l","i","key","News","retrieved","getArticles","Action","components","AddArticleButton","VGrid","name","extend","functional","props","id","String","tag","type","h","data","children","trim","classes","Object","keys","filter","value","startsWith","join","domProps","Grid","fluid","Boolean","mergeData","class","Array","concat"],"mappings":"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","file":"assets/js/chunk-50b8aafa.51a4913a.js","sourcesContent":["import { 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 { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(VCard,{staticClass:\"mb-4\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.openArticle}},[_c(VCardTitle,{staticClass:\"headline\"},[_c('span',{staticStyle:{\"font-weight\":\"600\"}},[_vm._v(_vm._s(_vm.article.Title))])]),_c(VCardText,[_c('div',{staticStyle:{\"font-weight\":\"600\"}},[_vm._v(\" \"+_vm._s(_vm._f(\"format\")(_vm.article.PostedAt))+\" \")]),_c('div',[_vm._v(_vm._s(_vm.body))])]),_c(VCardActions,{staticClass:\"pb-6\"},[_c(VSpacer),(_vm.canEdit)?_c(VBtn,{attrs:{\"elevation\":\"0\",\"color\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.openArticle($event)}}},[_c('span',{staticClass:\"mx-2\"},[_vm._v(_vm._s(_vm.$t(\"latestNewsSections.latestNewsPage.read\")))]),_c(VIcon,{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-newspaper\")])],1):_vm._e()],1)],1)}\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\r\nimport Vue from \"vue\";\r\nimport { Article } from \"@/core/models\";\r\nimport { Getter } from \"vuex-class\";\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class ArticleItem extends Vue {\r\n @Prop({ default: () => {} }) article!: Article;\r\n @Getter(\"getUserEmail\", { namespace: \"profile\" }) userEmail!: string;\r\n\r\n get canEdit() {\r\n let admins = [\"demo@prezpvr.de\", \"dev@prezpvr.de\"]; // only these two can edit!\r\n return admins.includes(this.userEmail);\r\n }\r\n get body() {\r\n const text = this.article.Body;\r\n if (text.length < 200) return text;\r\n const section = text.substr(0, 200);\r\n return `${section}...`;\r\n }\r\n get image() {\r\n if (this.article.BannerImage) return this.article.BannerImage.URI;\r\n return \"\";\r\n }\r\n\r\n openArticle(): void {\r\n this.$router.push(\"/news/article/\" + this.article.ID);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArticleItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ArticleItem.vue?vue&type=template&id=7ec20913&\"\nimport script from \"./ArticleItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./ArticleItem.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","import { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"news-page\"}},[_c(VContainer,[_c('div',{staticClass:\"font-weight-bold display-1 my-12 d-flex align-center\"},[_c('span',[_vm._v(_vm._s(_vm.$t(\"latestNewsSections.latestNewsPage.latestNews\")))]),_c(VBadge,{attrs:{\"content\":_vm.articles.length.toString(),\"color\":\"primary\",\"overlap\":\"\"}},[_c(VIcon,{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-post\")])],1),_c(VSpacer),(_vm.hasPrivileges)?_c('AddArticleButton'):_vm._e()],1),(_vm.articles.length > 0 && !_vm.loading)?_c('masonry',{attrs:{\"gutter\":10,\"cols\":{ default: 2, 800: 1 }}},_vm._l((_vm.articles),function(article,i){return _c('ArticleItem',{key:i,attrs:{\"article\":article}})}),1):_vm._e(),(_vm.articles.length == 0 && !_vm.loading)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(\"latestNewsSections.latestNewsPage.noNews\"))+\" \")]):_vm._e()],1),(_vm.loading)?_c(VContainer,[_vm._v(_vm._s(_vm.$t(\"latestNewsSections.latestNewsPage.newsLoading\")))]):_vm._e()],1)}\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\r\nimport Vue from \"vue\";\r\nimport { Action, Getter } from \"vuex-class\";\r\nimport { Component } from \"vue-property-decorator\";\r\n\r\nimport { Article } from \"@/core/models\";\r\nimport ArticleItem from \"./components/ArticleItem.vue\";\r\nimport AddArticleButton from \"./components/AddArticleButton.vue\";\r\n\r\n@Component({ components: { ArticleItem, AddArticleButton } })\r\nexport default class News extends Vue {\r\n @Getter(\"news/loading\") loading!: boolean;\r\n @Getter(\"news/retrieved\") retrieved!: boolean;\r\n @Getter(\"news/getArticles\") articles!: Article[];\r\n @Action(\"news/getArticles\") getArticles!: () => Promise;\r\n @Getter(\"profile/getUserHasPrivileges\") hasPrivileges!: boolean;\r\n\r\n created() {\r\n if (!this.retrieved) this.getArticles();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./News.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./News.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./News.vue?vue&type=template&id=682a7dca&\"\nimport script from \"./News.vue?vue&type=script&lang=ts&\"\nexport * from \"./News.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","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n /* @vue/component */\n return Vue.extend({\n name: `v-${name}`,\n\n functional: true,\n\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n render (h, { props, data, children }): VNode {\n data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n const classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n\n if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(props.tag, data, children)\n },\n })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n name: 'v-container',\n functional: true,\n props: {\n id: String,\n tag: {\n type: String,\n default: 'div',\n },\n fluid: {\n type: Boolean,\n default: false,\n },\n },\n render (h, { props, data, children }) {\n let classes\n const { attrs } = data\n if (attrs) {\n // reset attrs to extract utility clases like pa-3\n data.attrs = {}\n classes = Object.keys(attrs).filter(key => {\n // TODO: Remove once resolved\n // https://github.com/vuejs/vue/issues/7841\n if (key === 'slot') return false\n\n const value = attrs[key]\n\n // add back data attributes like data-test=\"foo\" but do not\n // add them as classes\n if (key.startsWith('data-')) {\n data.attrs![key] = value\n return false\n }\n\n return value || typeof value === 'string'\n })\n }\n\n if (props.id) {\n data.domProps = data.domProps || {}\n data.domProps.id = props.id\n }\n\n return h(\n props.tag,\n mergeData(data, {\n staticClass: 'container',\n class: Array({\n 'container--fluid': props.fluid,\n }).concat(classes || []),\n }),\n children\n )\n },\n})\n"],"sourceRoot":""}