{"version":3,"file":"assets/app.86785150.js","mappings":"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","sources":["webpack://apexnews/./src/App.vue","webpack://apexnews/./src/App.vue?0e40","webpack://apexnews/./src/views/NewsView.vue","webpack://apexnews/./src/components/RelatedNews.vue","webpack://apexnews/src/components/RelatedNews.vue","webpack://apexnews/./src/components/RelatedNews.vue?b8ce","webpack://apexnews/./src/components/RelatedNews.vue?ad8b","webpack://apexnews/./src/assets/util.js","webpack://apexnews/src/views/NewsView.vue","webpack://apexnews/./src/views/NewsView.vue?b8b3","webpack://apexnews/./src/views/NewsView.vue?978c","webpack://apexnews/./src/views/TestView.vue","webpack://apexnews/src/views/TestView.vue","webpack://apexnews/./src/views/TestView.vue?c5d6","webpack://apexnews/./src/views/TestView.vue?2003","webpack://apexnews/./src/router/index.js","webpack://apexnews/./src/store/index.js","webpack://apexnews/./src/api/http.js","webpack://apexnews/./src/api/index.js","webpack://apexnews/./src/main.js","webpack://apexnews/webpack/bootstrap","webpack://apexnews/webpack/runtime/chunk loaded","webpack://apexnews/webpack/runtime/compat get default export","webpack://apexnews/webpack/runtime/define property getters","webpack://apexnews/webpack/runtime/global","webpack://apexnews/webpack/runtime/hasOwnProperty shorthand","webpack://apexnews/webpack/runtime/make namespace object","webpack://apexnews/webpack/runtime/jsonp chunk loading","webpack://apexnews/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=35f00b73\"\nvar script = {}\nimport style0 from \"./App.vue?vue&type=style&index=0&id=35f00b73&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/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","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.detailData && _vm.detailData.meta)?_c('div',{staticClass:\"body\",on:{\"scroll\":_vm.handleScroll}},[_c('header',[_c('h2',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(this.detailData.title)+\" \")]),_c('div',{staticClass:\"gray\"},[_c('span',[_vm._v(_vm._s(this.detailData.meta.publisher))]),_c('span',{attrs:{\"id\":\"publishTime\"}},[_vm._v(_vm._s(_vm.timeAgo))])])]),_c('main',{attrs:{\"id\":\"article-content\"}},[_c('div',{attrs:{\"id\":\"op_container_text\"}},[_c('div',{staticClass:\"banner\"},[_c('img',{staticClass:\"thumbnail\",attrs:{\"src\":_vm.detailData.meta.image_url,\"alt\":\"thumbnail\"}})]),_c('div',{ref:\"content\",staticClass:\"summary\"}),_c('div',{staticClass:\"expand\"},[_c('a',{staticClass:\"expand-btn expand-default\",attrs:{\"id\":\"expand\",\"href\":_vm.detailData.meta.url}},[_c('span',[_vm._v(_vm._s(_vm.language.continueReading))]),_c('img',{staticClass:\"ltr\",attrs:{\"src\":require(\"@/assets/arrowright.png\")}})])])])]),_c('div',{staticClass:\"open-related-news\"},[_c('div',{staticClass:\"related-news-list\"},[_c('div',{staticClass:\"list-title\"},[_vm._v(_vm._s(_vm.language.recommendedForYou))])]),_vm._l((_vm.groupedNews),function(group){return _vm._l((group),function(item){return _c('div',{key:item.id,staticClass:\"related-news-item\"},[_c('RelatedNews',{attrs:{\"RelatedNewsData\":item}})],1)})})],2)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',{staticClass:\"news-item\",attrs:{\"target\":\"_parent\",\"href\":_vm.RelatedNewsData.url,\"id\":_vm.RelatedNewsData.fid,\"click_tracking_url\":_vm.RelatedNewsData.click_tracking_url,\"impression_tracking_url\":_vm.RelatedNewsData.impression_tracking_url}},[_c('div',{staticClass:\"thumbnail\"},[_c('img',{attrs:{\"src\":_vm.RelatedNewsData.meta.image_url,\"alt\":\"\"}})]),_c('div',{staticClass:\"main\"},[_c('div',{staticClass:\"big\"},[_vm._v(\" \"+_vm._s(_vm.RelatedNewsData.title)+\" \")]),_c('div',{staticClass:\"extra\"},[_c('i',{style:(_vm.getBackgroundImageStyle(_vm.RelatedNewsData.meta.publisher_icon))}),_c('span',[_vm._v(_vm._s(_vm.RelatedNewsData.meta.publisher))])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RelatedNews.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RelatedNews.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RelatedNews.vue?vue&type=template&id=4de67b94\"\nimport script from \"./RelatedNews.vue?vue&type=script&lang=js\"\nexport * from \"./RelatedNews.vue?vue&type=script&lang=js\"\nimport style0 from \"./RelatedNews.vue?vue&type=style&index=0&id=4de67b94&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/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","// 发布时间差计算函数\r\nconst timeDifference = (language, date) => {\r\n // 将时间字符串转换为日期对象\r\n const eventDate = new Date(date);\r\n // console.log(this.detailData.meta.pub_date);\r\n // 获取当前本地时间的日期对象\r\n const now = new Date();\r\n\r\n // 计算时间差(以毫秒为单位)\r\n const timeDiff = now - eventDate;\r\n // console.log('now', now);\r\n // console.log('eventDate', eventDate);\r\n\r\n // 将时间差转换为秒、分钟、小时、天、周、月、年\r\n const seconds = Math.floor(timeDiff / 1000);\r\n const minutes = Math.floor(seconds / 60);\r\n const hours = Math.floor(minutes / 60);\r\n const days = Math.floor(hours / 24);\r\n const weeks = Math.floor(days / 7);\r\n const months = Math.floor(days / 30); // 近似一个月为30天\r\n const years = Math.floor(days / 365); // 近似一年为365天\r\n // console.log('年月日分秒:----》', timeDiff, years, months, weeks, days, hours, minutes, seconds);\r\n\r\n function getTimeAgo({ years, months, weeks, days, hours, minutes, seconds }, language) {\r\n const timeUnits = {\r\n de: [\r\n { value: years, unit: 'Jahr(e)' },\r\n { value: months, unit: 'Monat(e)' },\r\n { value: weeks, unit: 'Woche(n)' },\r\n { value: days, unit: 'Tag(e)' },\r\n { value: hours, unit: 'Stunde(n)' },\r\n { value: minutes, unit: 'Minute(n)' },\r\n { value: seconds, unit: 'Sekunde(n)' },\r\n ],\r\n en: [\r\n { value: years, unit: 'year(s)' },\r\n { value: months, unit: 'month(s)' },\r\n { value: weeks, unit: 'week(s)' },\r\n { value: days, unit: 'day(s)' },\r\n { value: hours, unit: 'hour(s)' },\r\n { value: minutes, unit: 'minute(s)' },\r\n { value: seconds, unit: 'second(s)' },\r\n ],\r\n es: [\r\n { value: years, unit: 'año(s)' },\r\n { value: months, unit: 'mes(es)' },\r\n { value: weeks, unit: 'semana(s)' },\r\n { value: days, unit: 'día(s)' },\r\n { value: hours, unit: 'hora(s)' },\r\n { value: minutes, unit: 'minuto(s)' },\r\n { value: seconds, unit: 'segundo(s)' },\r\n ],\r\n };\r\n\r\n const units = timeUnits[language];\r\n\r\n for (const { value, unit } of units) {\r\n if (value > 0) {\r\n switch (language) {\r\n case 'de':\r\n return `${value} ${unit} her`;\r\n case 'en':\r\n return `${value} ${unit} ago`;\r\n case 'es':\r\n return `${value} ${unit} atrás`;\r\n }\r\n }\r\n }\r\n }\r\n return getTimeAgo({ years, months, weeks, days, hours, minutes, seconds }, language);\r\n};\r\n\r\n// 语种转换;\r\nconst translateLabels = (language) => {\r\n const labels = {\r\n en: {\r\n continueReading: 'Continue Reading',\r\n recommendedForYou: 'Recommended for You',\r\n },\r\n es: {\r\n continueReading: 'Sigue Leyendo',\r\n recommendedForYou: 'Recomendado para ti',\r\n },\r\n de: {\r\n continueReading: 'Weiterlesen',\r\n recommendedForYou: 'Empfohlen für Sie',\r\n },\r\n };\r\n\r\n return labels[language] || labels['en'];\r\n};\r\n\r\n// 计算阅读完成百分比函数\r\nconst handleScroll = (percentageRead) => {\r\n if (percentageRead < 100) {\r\n const format = (num) => Math.round(Math.abs(num));\r\n const content = document.getElementById('article-content');\r\n const rect = content.getBoundingClientRect();\r\n const top = rect.top;\r\n const bottom = rect.bottom;\r\n const c = Math.max(document.documentElement.clientHeight, window.innerHeight);\r\n const t = format(top);\r\n const b = format(bottom);\r\n if (bottom > 0) {\r\n if (top > 0) {\r\n percentageRead = Math.ceil((c / b) * 100);\r\n } else {\r\n percentageRead = Math.ceil(((t + c) / (t + b)) * 100);\r\n }\r\n } else {\r\n percentageRead = Math.ceil(((t + c) / (t - b)) * 100);\r\n }\r\n // console.log(percentageRead + '%');\r\n } else {\r\n percentageRead = 100;\r\n // console.log(percentageRead + '%');\r\n }\r\n return percentageRead;\r\n};\r\n\r\n// 内容删除继续阅读处理\r\nconst removeContinueReading = (text) => {\r\n const phrases = [\r\n 'Continue Reading', // English\r\n 'Sigue leyendo', // Spanish\r\n 'Weiterlesen', // German\r\n ];\r\n\r\n phrases.forEach((phrase) => {\r\n const regex = new RegExp(phrase, 'gi');\r\n text = text.replace(regex, '');\r\n });\r\n\r\n return text;\r\n};\r\n\r\n// content 替换样式 如:添加加粗\r\nfunction extractAndFormatPTags(htmlString, textContent) {\r\n // 创建一个 DOM 解析器\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(htmlString, 'text/html');\r\n\r\n // 要屏蔽的句子列表\r\n const blacklist = [\r\n 'Sign up for our free Indy100 weekly newsletter',\r\n \"How to join the indy100's free WhatsApp channel\",\r\n 'Have your say in our news democracy. Click the upvote icon at the top of the page to help raise this article through the indy100 rankings',\r\n ];\r\n\r\n // 移除黑名单中的内容\r\n blacklist.forEach((phrase) => {\r\n textContent = textContent.replace(new RegExp(phrase, 'g'), '');\r\n });\r\n\r\n // 获取所有的
标签\r\n const figureTags = doc.querySelectorAll('figure');\r\n figureTags.forEach((figure) => {\r\n // 获取
标签中的文本内容\r\n const figcaption = figure.querySelector('figcaption');\r\n if (figcaption) {\r\n const figureText = figcaption.textContent.replace(/\\s+/g, ' ').trim();\r\n textContent = textContent.replace(figureText, '');\r\n }\r\n });\r\n\r\n // 函数:递归移除子节点中的标签,仅保留文本内容\r\n function removeInnerTags(node) {\r\n const childNodes = Array.from(node.childNodes);\r\n childNodes.forEach((child) => {\r\n if (child.nodeType === Node.ELEMENT_NODE) {\r\n removeInnerTags(child); // 递归处理子节点\r\n const textContent = child.textContent;\r\n child.replaceWith(textContent);\r\n }\r\n });\r\n }\r\n\r\n // 函数:获取标签内的纯文本内容\r\n function getTextContent(node) {\r\n return node.textContent.replace(/\\s+/g, ' ').trim();\r\n }\r\n\r\n // 获取所有

标签的文本内容,并保留 标签的结构\r\n const formattedPTags = Array.from(doc.querySelectorAll('p')).map((p) => {\r\n const cloneP = p.cloneNode(true);\r\n const childNodes = Array.from(cloneP.childNodes);\r\n\r\n childNodes.forEach((node) => {\r\n if (node.nodeType === Node.ELEMENT_NODE) {\r\n if (node.nodeName === 'STRONG' || node.nodeName === 'EM') {\r\n removeInnerTags(node);\r\n } else {\r\n const textContent = node.textContent;\r\n node.replaceWith(textContent);\r\n }\r\n }\r\n });\r\n\r\n return {\r\n tag: 'p',\r\n content: getTextContent(cloneP),\r\n };\r\n });\r\n\r\n // 构建新的 HTML 结构\r\n let resultHTML = textContent;\r\n\r\n formattedPTags.forEach((pTag) => {\r\n if (resultHTML.includes(pTag.content)) {\r\n resultHTML = resultHTML.replace(pTag.content, `

${pTag.content}

`);\r\n }\r\n });\r\n\r\n // 临时容器,用于进一步处理 标签\r\n const tempDiv = document.createElement('div');\r\n tempDiv.innerHTML = resultHTML;\r\n\r\n const elementsToWrap = ['strong', 'em'];\r\n\r\n elementsToWrap.forEach((tag) => {\r\n const nodes = tempDiv.querySelectorAll(tag);\r\n nodes.forEach((node) => {\r\n const content = getTextContent(node);\r\n if (resultHTML.includes(content)) {\r\n resultHTML = resultHTML.replace(content, `<${tag}>${content}`);\r\n }\r\n });\r\n });\r\n\r\n // 处理 标签中的嵌套标签\r\n elementsToWrap.forEach((tag) => {\r\n const nodes = tempDiv.querySelectorAll(tag);\r\n nodes.forEach((node) => {\r\n removeInnerTags(node);\r\n });\r\n });\r\n\r\n return tempDiv.innerHTML;\r\n}\r\nexport default {\r\n timeDifference,\r\n handleScroll,\r\n translateLabels,\r\n removeContinueReading,\r\n extractAndFormatPTags,\r\n};\r\n","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NewsView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NewsView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NewsView.vue?vue&type=template&id=b12e8964\"\nimport script from \"./NewsView.vue?vue&type=script&lang=js\"\nexport * from \"./NewsView.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewsView.vue?vue&type=style&index=0&id=b12e8964&prod&lang=less\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"box\"},_vm._l((_vm.list),function(item,index){return _c('a',{key:index,staticClass:\"item\",attrs:{\"click_tracking_url\":item.click_tracking_url,\"impression_tracking_url\":item.impression_tracking_url},on:{\"click\":function($event){$event.preventDefault();return _vm.click_fun.apply(null, arguments)}}},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(item.title))]),_c('span',[_vm._v(\"分类:\"+_vm._s(item.category))]),_c('span',[_vm._v(\"CTR:\"+_vm._s(item.ctr))]),_c('span',[_vm._v(\"时间:\"+_vm._s(_vm.checkTimestampWithinThreeDays(item.publish_time).status)+\" 日期:\"+_vm._s(_vm.checkTimestampWithinThreeDays(item.publish_time).timePoint))])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TestView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TestView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TestView.vue?vue&type=template&id=d7f769f6&scoped=true\"\nimport script from \"./TestView.vue?vue&type=script&lang=js\"\nexport * from \"./TestView.vue?vue&type=script&lang=js\"\nimport style0 from \"./TestView.vue?vue&type=style&index=0&id=d7f769f6&prod&lang=less&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d7f769f6\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport VueRouter from 'vue-router';\nimport NewsView from '../views/NewsView.vue';\nimport TestView from '../views/TestView.vue';\n\nVue.use(VueRouter);\n\nconst routes = [\n {\n path: '/',\n name: 'News',\n component: NewsView,\n },\n {\n path: '/test',\n name: 'Test',\n component: TestView,\n },\n];\n\nconst router = new VueRouter({\n mode: 'history',\n routes,\n});\nexport default router;\n","import Vue from 'vue';\nimport Vuex from 'vuex';\n\nVue.use(Vuex);\n\nexport default new Vuex.Store({\n state: {\n adData: [\n { div: `
` },\n { div: `
` },\n { div: `
` },\n\n\n // { div: `
` },\n\n\n { div: `
` },\n { div: `
` },\n { div: `
` },\n ],\n count: 0,\n },\n getters: {},\n mutations: {\n countAdd(state) {\n // console.log('before countAdd', state.count);\n state.count++;\n // console.log(' countAdd over', state.count);\n },\n },\n actions: {},\n modules: {},\n});\n","import axios from 'axios';\r\n\r\naxios.defaults.baseURL = process.env.NODE_ENV === 'production' ? 'https://api.imelynews.com/feed' : '/feed';\r\naxios.interceptors.response.use(\r\n function (response) {\r\n return response.data;\r\n },\r\n function (error) {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nexport default axios;\r\n","import http from './http.js';\r\n// // 获取feed详情\r\nfunction getFeedDetail(id, country,client_info,os_ver,publish_time,channel,language,mocel,category) {\r\n return http.get(`/detail?fid=${id}&country=${country}&client_info=${client_info}&os_ver=${os_ver}&publish_time=${publish_time}&channel=${channel}&language=${language}&mocel=${mocel}&category=${category}`);\r\n}\r\n// 获取feed列表\r\nfunction getFeedList(category) {\r\n return http.get(`/list?category=${category}`);\r\n}\r\n\r\n//测试用 \r\nfunction testApi(token, count, client_info, user_ip, model, os_ver, language, country) {\r\n return http.get(`/m/list?token=${token}&count=${count}&client_info=${client_info}&user_ip=${user_ip}&model=${model}&os_version=${os_ver}&language=${language}&country=${country}`);\r\n // https://api.imelynews.com/feed/m/list?\r\n}\r\n\r\nfunction show(url) {\r\n url = url.replace('https://api.imelynews.com/feed', '');\r\n return http.get(`${url}`);\r\n}\r\n\r\nexport default {\r\n getFeedList,\r\n getFeedDetail,\r\n testApi,\r\n show,\r\n};\r\n","import Vue from \"vue\";\r\nimport App from \"./App.vue\";\r\nimport router from \"./router\";\r\nimport store from \"./store\";\r\nimport api from \"./api/index.js\"; //可以通过this.$api.xxx()调用`/src/http/index.js`中的xxx方法。\r\n// import Ads from \"vue-google-adsense\";\r\nimport Adsense from 'vue-google-adsense/dist/Adsense.min.js'\r\n\r\n\r\nVue.config.productionTip = false;\r\nVue.prototype.$api = api;\r\n\r\nVue.use(require('vue-script2'))\r\nVue.use(Adsense)\r\n\r\n// Vue.use(Ads.Adsense);\r\n// Vue.use(Ads.InArticleAdsense);\r\n// Vue.use(Ads.InFeedAdsense);\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n render: (h) => h(App),\r\n}).$mount(\"#app\");\r\n\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapexnews\"] = self[\"webpackChunkapexnews\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(8245); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","attrs","staticRenderFns","script","component","detailData","meta","staticClass","on","handleScroll","_v","_s","title","publisher","timeAgo","image_url","ref","url","language","continueReading","require","recommendedForYou","_l","groupedNews","group","item","key","id","_e","RelatedNewsData","fid","click_tracking_url","impression_tracking_url","style","getBackgroundImageStyle","publisher_icon","name","props","Object","data","methods","iconUrl","components","mounted","timeDifference","date","eventDate","Date","now","timeDiff","seconds","Math","floor","minutes","hours","days","weeks","months","years","getTimeAgo","timeUnits","de","value","unit","en","es","units","translateLabels","labels","percentageRead","format","num","round","abs","content","document","getElementById","rect","getBoundingClientRect","top","bottom","c","max","documentElement","clientHeight","window","innerHeight","t","b","ceil","removeContinueReading","text","phrases","forEach","phrase","regex","RegExp","replace","extractAndFormatPTags","htmlString","textContent","parser","DOMParser","doc","parseFromString","blacklist","figureTags","querySelectorAll","removeInnerTags","node","childNodes","Array","from","child","nodeType","Node","ELEMENT_NODE","replaceWith","getTextContent","trim","figure","figcaption","querySelector","figureText","formattedPTags","map","p","cloneP","cloneNode","nodeName","tag","resultHTML","pTag","includes","tempDiv","createElement","innerHTML","elementsToWrap","nodes","RelatedNews","relatedNewsData","startTime","content_html","getFeedDetailData","$route","query","country","client_info","os_ver","publish_time","channel","model","category","$api","getFeedDetail","JSON","parse","util","contentxml","handle_content","$nextTick","$refs","recList","error","handleLinkClick","event","targetElement","target","preventDefault","tagName","className","console","log","getAttribute","sendClickToGA","location","href","parentElement","sendToGA","endTime","getTime","sendViewToGA","handleIntersection","entries","observer","entry","isIntersecting","show","warn","unobserve","observeElements","IntersectionObserver","root","rootMargin","threshold","elements","element","observe","addEventListener","code","computed","pub_date","groups","i","length","push","slice","updated","beforeDestroy","removeEventListener","list","index","$event","click_fun","apply","arguments","ctr","checkTimestampWithinThreeDays","status","timePoint","token","count","user_ip","mdoel","os_version","fetchData","testApi","categoryCount","reduce","acc","totalCount","categoryPercentage","percentage","toFixed","parseFloat","sort","a","e","closestParentA","findClosestAParent","timestamp","threeDaysInMillis","formattedDate","getFullYear","String","getMonth","padStart","getDate","getHours","getMinutes","toLowerCase","parentNode","Vue","use","VueRouter","routes","path","NewsView","TestView","router","mode","Vuex","state","adData","div","getters","mutations","countAdd","actions","modules","axios","defaults","baseURL","interceptors","response","Promise","reject","mocel","http","get","getFeedList","config","productionTip","prototype","api","Adsense","store","h","App","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","keys","every","splice","r","n","getter","__esModule","d","definition","o","defineProperty","enumerable","g","globalThis","Function","obj","prop","hasOwnProperty","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}