{"version":3,"file":"2452-2452.js?v=1737220afaa0866aacc5","mappings":"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","sources":["webpack:///nextcloud/apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=style&index=0&id=60bd0af2&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/updatenotification/src/components/Markdown.vue?vue&type=style&index=0&id=4fb3448b&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/updatenotification/src/components/AppChangelogDialog.vue","webpack:///nextcloud/apps/updatenotification/src/composables/useMarkdown.ts","webpack:///nextcloud/apps/updatenotification/src/components/Markdown.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/updatenotification/src/components/Markdown.vue","webpack://nextcloud/./apps/updatenotification/src/components/Markdown.vue?96e9","webpack://nextcloud/./apps/updatenotification/src/components/Markdown.vue?8d8c","webpack:///nextcloud/apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/updatenotification/src/components/AppChangelogDialog.vue?0a81","webpack://nextcloud/./apps/updatenotification/src/components/AppChangelogDialog.vue?c992"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `[data-v-60bd0af2] .app-changelog-dialog{min-height:50vh !important}.app-changelog-dialog__text[data-v-60bd0af2]{padding-inline:14px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/updatenotification/src/components/AppChangelogDialog.vue\"],\"names\":[],\"mappings\":\"AACA,wCACC,0BAAA,CAGD,6CACC,mBAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.markdown[data-v-4fb3448b] ul{list-style:disc;padding-inline-start:20px}.markdown[data-v-4fb3448b] h3,.markdown[data-v-4fb3448b] h4,.markdown[data-v-4fb3448b] h5,.markdown[data-v-4fb3448b] h6{font-weight:600;line-height:1.5;margin-top:24px;margin-bottom:12px;color:var(--color-main-text)}.markdown[data-v-4fb3448b] h3{font-size:20px}.markdown[data-v-4fb3448b] h4{font-size:18px}.markdown[data-v-4fb3448b] h5{font-size:17px}.markdown[data-v-4fb3448b] h6{font-size:var(--default-font-size)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/updatenotification/src/components/Markdown.vue\"],\"names\":[],\"mappings\":\"AAGE,8BACC,eAAA,CACA,yBAAA,CAGD,wHACC,eAAA,CACA,eAAA,CACA,eAAA,CACA,kBAAA,CACA,4BAAA,CAGD,8BACC,cAAA,CAGD,8BACC,cAAA,CAGD,8BACC,cAAA,CAGD,8BACC,kCAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcDialog,{attrs:{\"content-classes\":\"app-changelog-dialog\",\"buttons\":_setup.dialogButtons,\"name\":_setup.t('updatenotification', 'What\\'s new in {app} {version}', { app: _setup.appName, version: _setup.appVersion }),\"open\":_vm.open && _setup.markdown !== undefined,\"size\":\"normal\"},on:{\"update:open\":function($event){return _vm.$emit('update:open', $event)}}},[_c(_setup.Markdown,{staticClass:\"app-changelog-dialog__text\",attrs:{\"markdown\":_setup.markdown,\"min-heading-level\":3}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { marked } from 'marked';\nimport { computed } from 'vue';\nimport dompurify from 'dompurify';\nexport const useMarkdown = (text, minHeadingLevel) => {\n const minHeading = computed(() => Math.min(Math.max(minHeadingLevel.value ?? 1, 1), 6));\n const renderer = new marked.Renderer();\n renderer.link = function (href, title, text) {\n let out = `<a href=\"${href}\" rel=\"noreferrer noopener\" target=\"_blank\"`;\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n };\n renderer.image = function (href, title, text) {\n if (text) {\n return text;\n }\n return title ?? '';\n };\n renderer.heading = (text, level) => {\n const headingLevel = Math.max(minHeading.value, level);\n return `<h${headingLevel}>${text}</h${headingLevel}>`;\n };\n const html = computed(() => dompurify.sanitize(marked((text.value ?? '').trim(), {\n renderer,\n gfm: false,\n breaks: false,\n pedantic: false,\n }), {\n SAFE_FOR_JQUERY: true,\n ALLOWED_TAGS: [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'strong',\n 'p',\n 'a',\n 'ul',\n 'ol',\n 'li',\n 'em',\n 'del',\n 'blockquote',\n ],\n }));\n return { html };\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"markdown\",domProps:{\"innerHTML\":_vm._s(_setup.html)}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=4fb3448b&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=4fb3448b&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Markdown.vue?vue&type=template&id=4fb3448b&scoped=true\"\nimport script from \"./Markdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Markdown.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./Markdown.vue?vue&type=style&index=0&id=4fb3448b&prod&scoped=true&lang=scss\"\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 \"4fb3448b\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=style&index=0&id=60bd0af2&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=style&index=0&id=60bd0af2&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppChangelogDialog.vue?vue&type=template&id=60bd0af2&scoped=true\"\nimport script from \"./AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppChangelogDialog.vue?vue&type=style&index=0&id=60bd0af2&prod&scoped=true&lang=scss\"\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 \"60bd0af2\",\n null\n \n)\n\nexport default component.exports"],"names":["___CSS_LOADER_EXPORT___","push","module","id","_defineComponent","__name","props","markdown","minHeadingLevel","default","setup","__props","html","useMarkdown","text","minHeading","computed","Math","min","max","value","renderer","marked","Renderer","link","href","title","out","image","heading","level","headingLevel","dompurify","trim","gfm","breaks","pedantic","SAFE_FOR_JQUERY","ALLOWED_TAGS","toRef","__sfc","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","_setup","_setupProxy","staticClass","domProps","_s","appId","version","undefined","open","type","Boolean","emits","_ref","emit","dialogButtons","label","t","callback","window","appName","ref","appVersion","watchEffect","url","generateOcsUrl","app","axios","get","then","_ref2","data","ocs","content","catch","error","response","status","console","NcDialog","Markdown","attrs","on","$event","$emit"],"sourceRoot":""}