{"version":3,"sources":["articleapp.js"],"names":["app","Vue","el","data","articles","tags","filterTags","loading","busy","currentArticle","showArticle","noMoreArticles","showingAllTags","orderByColumns","beforeMount","window","addEventListener","this","handleScroll","passive","mounted","$nextTick","loadMoreContent","computed","prevArticleExists","currentIndex","_findCurrentIndex","nextArticleExists","fullList","length","next","methods","_getFullTagUrl","name","_showArticle","article","e","_this","axios","post","pageVersionId","then","res","catch","error","console","log","history","pushState","fullPath","document","getElementById","dataset","url","location","origin","preventDefault","tl","TimelineMax","articleAnimate","articleBg","fromTo","opacity","y","_showAllTags","Array","from","forEach","tag","i","show","_initiateFlexSlider","$","flexslider","animation","slideshow","index","_showNextArticle","nextArticle","_showPreviousArticle","prevArticle","_close","onComplete","_doneClosing","footerHeight","getElementsByTagName","clientHeight","innerHeight","scrollY","body","offsetHeight","findGetParameter","parameterName","result","tmp","search","substr","split","item","decodeURIComponent","fetchNew","_this2","pageIndex","fetchNewFromJs","selectedTags","getSelectedTags","currentPageCount","orderBy","getSelectedOrderByColumn","oldarticles","newarticles","newArray","concat","response","status","reload","selectTag","selected","selectOrderByColumn","col","id","allSelectedTags","push","selectedCol"],"mappings":"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","file":"articleapp.js","sourcesContent":["'use strict';\n\nvar app = new Vue({\n el: '#article-list',\n data: {\n articles: [],\n tags: [],\n filterTags: [],\n loading: true,\n busy: false,\n currentArticle: null,\n showArticle: false,\n noMoreArticles: false,\n showingAllTags: true,\n orderByColumns: []\n },\n beforeMount: function beforeMount() {\n window.addEventListener('scroll', this.handleScroll, { passive: true });\n },\n mounted: function mounted() {\n this.$nextTick(function () {\n this.loadMoreContent(true);\n });\n },\n\n computed: {\n\n prevArticleExists: function prevArticleExists() {\n var currentIndex = this._findCurrentIndex();\n var prev = this.articles[currentIndex - 1];\n if (prev) {\n return true;\n }\n },\n nextArticleExists: function nextArticleExists() {\n var currentIndex = this._findCurrentIndex();\n var fullList = this.articles.length;\n var next = this.articles[currentIndex + 1];\n var remainingArticles = fullList - (currentIndex + 1);\n if (remainingArticles < 5) {\n this.loadMoreContent(false);\n }\n if (next !== null) {\n return true;\n }\n }\n },\n methods: {\n _getFullTagUrl: function _getFullTagUrl(name) {\n return \"/search?selectedTag=\" + name;\n },\n _showArticle: function _showArticle(article, e) {\n var _this = this;\n\n axios.post('/TrackPage?pageVersionId=' + article.pageVersionId).then(function (res) {\n _this.loading = false;\n }).catch(function (error) {\n console.log(error);\n });\n\n history.pushState(\"\", article.fullPath, article.fullPath);\n\n document.getElementById('someFB').dataset.url = window.location.origin + article.fullPath;\n e.preventDefault();\n this.currentArticle = article;\n this.showArticle = true;\n\n console.log(this.currentArticle);\n\n var tl = new TimelineMax();\n var articleAnimate = document.getElementById('article-detail');\n var articleBg = document.getElementById('articleBg');\n\n tl.fromTo(articleAnimate, 0.5, {\n opacity: 0,\n y: 300\n }, {\n opacity: 1,\n y: 0\n });\n\n tl.fromTo(articleBg, 0.4, {\n opacity: 0\n }, {\n opacity: 1\n }, \"-=0.4\");\n },\n _showAllTags: function _showAllTags() {\n Array.from(this.tags).forEach(function (tag, i) {\n tag.show = true;\n });\n this.showingAllTags = true;\n },\n _initiateFlexSlider: function _initiateFlexSlider() {\n $('.flexslider').flexslider({\n animation: \"slide\",\n slideshow: false\n });\n\n return true;\n },\n _findCurrentIndex: function _findCurrentIndex() {\n var index;\n var currentArticle = this.currentArticle;\n Array.from(this.articles).forEach(function (article, i) {\n if (article === currentArticle) {\n index = i;\n }\n });\n return index;\n },\n _showNextArticle: function _showNextArticle() {\n var currentIndex = this._findCurrentIndex();\n var nextArticle = this.articles[currentIndex + 1];\n if (nextArticle) {\n this.currentArticle = nextArticle;\n }\n },\n _showPreviousArticle: function _showPreviousArticle() {\n var currentIndex = this._findCurrentIndex();\n var prevArticle = this.articles[currentIndex - 1];\n if (prevArticle) {\n this.currentArticle = prevArticle;\n }\n },\n _close: function _close() {\n var tl = new TimelineMax({ onComplete: this._doneClosing });\n\n var articleAnimate = document.getElementById('article-detail');\n var articleBg = document.getElementById('articleBg');\n\n tl.fromTo(articleAnimate, 0.3, {\n opacity: 1,\n y: 0\n }, {\n opacity: 0,\n y: 300\n });\n\n tl.fromTo(articleBg, 0.4, {\n opacity: 1\n }, {\n opacity: 0\n }, \"-=0.4\");\n },\n _doneClosing: function _doneClosing() {\n this.showArticle = false;\n },\n handleScroll: function handleScroll() {\n var footerHeight = document.getElementsByTagName('footer')[0].clientHeight;\n if (!this.noMoreArticles) {\n if (window.innerHeight + window.scrollY >= document.body.offsetHeight - footerHeight * 1.5 && !this.loading) {\n this.loading = true;\n this.loadMoreContent(false);\n }\n }\n },\n findGetParameter: function findGetParameter(parameterName) {\n var result = null,\n tmp = [];\n location.search.substr(1).split(\"&\").forEach(function (item) {\n tmp = item.split(\"=\");\n if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);\n });\n return result;\n },\n loadMoreContent: function loadMoreContent(fetchNew) {\n var _this2 = this;\n\n if (fetchNew) {\n this.pageIndex = 0;\n this.articles = [];\n } else {\n this.pageIndex++;\n }\n\n var fetchNewFromJs = this.findGetParameter('fetchNew');\n\n var data = {\n selectedTags: this.getSelectedTags(),\n currentPageCount: this.articles.length,\n fetchNew: fetchNewFromJs,\n orderBy: this.getSelectedOrderByColumn()\n };\n\n axios.post('/aktuelt/getarticles/', data).then(function (res) {\n _this2.orderByColumns = res.data.orderByColumns;\n _this2.tags = res.data.tags;\n var oldarticles = _this2.articles;\n var newarticles = res.data.articles;\n var newArray = oldarticles.concat(newarticles);\n _this2.articles = newArray;\n if (res.data.articles.length === 0) {\n _this2.noMoreArticles = true;\n }\n _this2.loading = false;\n }).catch(function (error) {\n if (error.response.status === 401) {\n // reload the page to get another AT\n window.location.reload();\n }\n });\n },\n selectTag: function selectTag(tag) {\n this.loading = true;\n tag.selected = !tag.selected;\n this.noMoreArticles = false;\n this.loadMoreContent(true);\n },\n selectOrderByColumn: function selectOrderByColumn(col) {\n this.loading = true;\n this.orderByColumns.forEach(function (item) {\n if (item.id !== col.id) {\n item.selected = false;\n }\n });\n col.selected = true;\n this.noMoreArticles = false;\n this.loadMoreContent(true);\n },\n getSelectedTags: function getSelectedTags() {\n var allSelectedTags = [];\n if (this.tags !== null && this.tags.length > 0) for (var i = 0; i < this.tags.length; i++) {\n if (this.tags[i].selected) {\n allSelectedTags.push(this.tags[i].name);\n }\n }\n return allSelectedTags;\n },\n getSelectedOrderByColumn: function getSelectedOrderByColumn() {\n var selectedCol = 1;\n this.orderByColumns.forEach(function (col) {\n if (col.selected) {\n selectedCol = col.id;\n }\n });\n return selectedCol;\n }\n }\n});"]}