{"mappings":"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","sources":["","dist/wave-markdown/wave-markdown.js"],"sourcesContent":["(function () {\nlet { nothing: $336210b9876a60d1$var$nothing, html: $336210b9876a60d1$var$html, ref: $336210b9876a60d1$var$ref, createRef: $336210b9876a60d1$var$createRef, CustomHTMLElement: $336210b9876a60d1$var$CustomHTMLElement } = lithtml;\nlet $336210b9876a60d1$var$tag = \"wave-markdown\";\nlet $336210b9876a60d1$var$version = \"0.9.1\";\n/** @type {Promise} */ let $336210b9876a60d1$var$scriptPromise;\n// Ripped from: https://thewebdev.info/2021/06/27/how-to-find-the-first-scrollable-parent-element-with-javascript\nlet $336210b9876a60d1$var$getScrollParentEl = (el)=>{\n if (el === null) return null;\n return el.scrollHeight > el.clientHeight ? el : $336210b9876a60d1$var$getScrollParentEl(el.parentElement);\n};\n/**\r\n * WaveMarkdown ..\r\n */ class $336210b9876a60d1$var$WaveMarkdown extends $336210b9876a60d1$var$CustomHTMLElement {\n static get tag() {\n return $336210b9876a60d1$var$tag;\n }\n static get version() {\n return $336210b9876a60d1$var$version;\n }\n /** Make sure changing the attributes and properties trigger a rerender */ static get observedAttributes() {\n return [\n \"md-source\",\n \"use-shadow-root\"\n ];\n }\n static get observedProperties() {\n return [\n \"markdownData\",\n \"_bw\"\n ];\n }\n /**\r\n * Constructor\r\n */ constructor(){\n super($336210b9876a60d1$var$WaveMarkdown, {\n useShadowRoot: false\n });\n if (!$336210b9876a60d1$var$scriptPromise) $336210b9876a60d1$var$scriptPromise = new Promise((resolve)=>{\n // If someone else has added the marked library, make sure we do not download it again\n if (window.marked) {\n resolve();\n return;\n }\n let script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.src = \"https://cdnpowel.azureedge.net/scripts/marked/4.0.14/marked.min.js\";\n script.id = \"wave-markdown-script\";\n script.crossOrigin = \"anonymous\";\n script.onload = resolve;\n // INFO integrity: https://report-uri.com/home/sri_hash\n script.integrity = \"sha512-8eLX5I782rMdjOqsAVN5qPj9IsGPzThynM/WG3ruYZparaVhZVX+KVRWHKhmpXVnzFj0LgQMTZtKkTZ+n7wscw==\";\n document.head.appendChild(script);\n if (!window.hljs) {\n script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.src = \"https://cdnpowel.azureedge.net/scripts/highlight/11.7.0/highlight.min.js\";\n script.id = \"wave-markdown-highlight-script\";\n script.crossOrigin = \"anonymous\";\n //script.onload = resolve;\n // INFO integrity: https://report-uri.com/home/sri_hash\n //script.integrity = 'sha512-8eLX5I782rMdjOqsAVN5qPj9IsGPzThynM/WG3ruYZparaVhZVX+KVRWHKhmpXVnzFj0LgQMTZtKkTZ+n7wscw==';\n document.head.appendChild(script);\n let link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = \"https://cdnpowel.azureedge.net/scripts/highlight/11.7.0/a11y-dark.min.css\";\n link.id = \"wave-markdown-highlight-style\";\n link.crossOrigin = \"anonymous\";\n document.head.appendChild(link);\n }\n });\n this._bx = $336210b9876a60d1$var$createRef();\n }\n /** Called when destroy has been called on the element, so we do some cleanup */ onDestroy() {\n this._bx = null;\n }\n /**\r\n * Called when an cmdSource changes value\r\n * @param {string} oldValue the old value\r\n * @param {string} newValue the new value\r\n */ onChanged_mdSource(oldValue, newValue) {\n if (!newValue) return;\n let self = this;\n let hash = self.mdSource.split(\"#\")[1];\n self.$triggerEvent(\"sourcechange\", {\n event: false,\n data: {\n prevSource: oldValue,\n source: newValue\n }\n });\n self._bw = true;\n self.$triggerEvent(\"loading\", {\n event: false,\n data: {\n source: self.mdSource,\n hash: hash\n }\n });\n fetch(newValue, {}).then((response)=>response.text()).then((md)=>self.markdownData = md).finally((_)=>{\n self._bw = false;\n setTimeout((_)=>self.$triggerEvent(\"loaded\", {\n event: false,\n data: {\n source: self.mdSource,\n hash: hash\n }\n }), 0);\n });\n }\n /**\r\n * Called when the markdownData property changes value\r\n * @param {string} oldValue the old value\r\n * @param {string} newValue the new value\r\n */ onChanged_markdownData(oldValue, newValue) {\n let self = this;\n $336210b9876a60d1$var$scriptPromise.then((_)=>{\n let splitSource = self.mdSource.split(\"/\");\n let source = splitSource.splice(0, splitSource.length - 1).join(\"/\") + \"/\";\n let html = self._by(newValue, {\n baseUrl: source,\n xhtml: true,\n smartLists: true,\n smartypants: true\n });\n //console.log('Source:', source)\n //self._bz = source;\n if (self._bx?.value) {\n self._bx.value.innerHTML = html;\n self._bx.value.scrollTop = 0;\n // Make sure external links are opened in a new tab\n for (let a of self._bx.value.getElementsByTagName(\"a\")){\n let href = a.getAttribute(\"href\");\n if (!href.startsWith(\"#\") && href.indexOf(\".md\") === -1 && href.indexOf(\".mdown\") === -1) a.target = \"_bA\";\n }\n if (!self.$attribs.turnOffHighlight) window.hljs?.highlightAll();\n // Scroll to hashed location\n let hash = self.mdSource.split(\"#\")[1];\n let el = hash && document.getElementById(hash);\n if (el) $336210b9876a60d1$var$getScrollParentEl(el)?.scroll(0, el.offsetTop);\n }\n });\n }\n /**\r\n * Called when an useShadowRoot changes value\r\n * @param {boolean} oldValue the old value\r\n * @param {boolean} newValue the new value\r\n */ onChanged_useShadowRoot(oldValue, newValue) {\n this.options.useShadowRoot = newValue;\n }\n /**\r\n * Convert markdown data to (sanitized) html\r\n * @param {string} data\r\n * @param {Object} optionsOrCallback\r\n * @returns {string} the html\r\n */ _by(data, optionsOrCallback, callback) {\n let html = window.marked.parse(data, optionsOrCallback);\n return window.DOMPurify.sanitize(html);\n }\n /**\r\n *\r\n * @param {HTMLElement} e\r\n */ _bB(e) {\n let self = this;\n if (!e) return;\n let el = e.target;\n let isLink = el.localName === \"a\";\n if (!isLink) return;\n let href = el.getAttribute(\"href\");\n if (el.target === \"_bA\") return;\n e.stopImmediatePropagation();\n e.preventDefault();\n e.stopPropagation();\n if (href.startsWith(\"#\")) {\n let el = document.querySelector(\"wave-markdown \" + href);\n //el && getScrollParentEl(el)?.scroll(0, el.offsetTop);\n el && el.scrollIntoView();\n return;\n }\n let event = {\n a: el,\n href: el.href,\n cancel: false\n };\n self.dispatchEvent(new CustomEvent(\"navigate\", {\n detail: event\n }));\n if (!event.cancel) self.mdSource = href;\n }\n /** Render the template */ render(reason) {\n let self = this;\n return $336210b9876a60d1$var$html`
${self._bw && !self.$attribs.hideSpinner ? $336210b9876a60d1$var$html`
` : $336210b9876a60d1$var$nothing}
`;\n }\n}\n// Define the new web component\nif (!window.customElements.get($336210b9876a60d1$var$tag)) window.customElements.define($336210b9876a60d1$var$tag, $336210b9876a60d1$var$WaveMarkdown);\n\n})();\n//# sourceMappingURL=wave-markdown.js.map\n","let { nothing, html, ref, createRef, CustomHTMLElement } = lithtml;\r\nlet tag = 'wave-markdown';\r\nlet version = '0.9.1';\r\n\r\n/** @type {Promise} */\r\nlet scriptPromise;\r\n\r\n// Ripped from: https://thewebdev.info/2021/06/27/how-to-find-the-first-scrollable-parent-element-with-javascript\r\nlet getScrollParentEl = (el) => {\r\n if (el === null) {\r\n return null;\r\n }\r\n\r\n return el.scrollHeight > el.clientHeight ? el : getScrollParentEl(el.parentElement);\r\n }\r\n\r\n/**\r\n * WaveMarkdown ..\r\n */\r\nclass WaveMarkdown extends CustomHTMLElement {\r\n static get tag() { return tag }\r\n static get version() { return version }\r\n\r\n /** Make sure changing the attributes and properties trigger a rerender */\r\n static get observedAttributes() { return ['md-source', 'use-shadow-root']; }\r\n static get observedProperties() { return ['markdownData', '_bw']; }\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor() {\r\n super(WaveMarkdown, { useShadowRoot: false });\r\n\r\n if (!scriptPromise) {\r\n scriptPromise = new Promise((resolve) => {\r\n // If someone else has added the marked library, make sure we do not download it again\r\n if (window.marked) {\r\n resolve();\r\n return;\r\n }\r\n\r\n let script = document.createElement('script');\r\n\r\n script.type = 'text/javascript';\r\n script.src = 'https://cdnpowel.azureedge.net/scripts/marked/4.0.14/marked.min.js';\r\n script.id = 'wave-markdown-script';\r\n script.crossOrigin = 'anonymous';\r\n script.onload = resolve;\r\n\r\n // INFO integrity: https://report-uri.com/home/sri_hash\r\n script.integrity = 'sha512-8eLX5I782rMdjOqsAVN5qPj9IsGPzThynM/WG3ruYZparaVhZVX+KVRWHKhmpXVnzFj0LgQMTZtKkTZ+n7wscw==';\r\n\r\n document.head.appendChild(script);\r\n\r\n if (!window.hljs) {\r\n script = document.createElement('script');\r\n\r\n script.type = 'text/javascript';\r\n script.src = 'https://cdnpowel.azureedge.net/scripts/highlight/11.7.0/highlight.min.js';\r\n script.id = 'wave-markdown-highlight-script';\r\n script.crossOrigin = 'anonymous';\r\n //script.onload = resolve;\r\n\r\n // INFO integrity: https://report-uri.com/home/sri_hash\r\n //script.integrity = 'sha512-8eLX5I782rMdjOqsAVN5qPj9IsGPzThynM/WG3ruYZparaVhZVX+KVRWHKhmpXVnzFj0LgQMTZtKkTZ+n7wscw==';\r\n\r\n document.head.appendChild(script);\r\n\r\n let link = document.createElement('link')\r\n\r\n link.rel = 'stylesheet';\r\n link.href = 'https://cdnpowel.azureedge.net/scripts/highlight/11.7.0/a11y-dark.min.css';\r\n link.id = 'wave-markdown-highlight-style';\r\n link.crossOrigin = 'anonymous';\r\n\r\n document.head.appendChild(link);\r\n }\r\n });\r\n }\r\n\r\n this._bx = createRef();\r\n }\r\n\r\n /** Called when destroy has been called on the element, so we do some cleanup */\r\n onDestroy () {\r\n this._bx = null;\r\n }\r\n\r\n /**\r\n * Called when an cmdSource changes value\r\n * @param {string} oldValue the old value\r\n * @param {string} newValue the new value\r\n */\r\n onChanged_mdSource (oldValue, newValue) {\r\n if (!newValue) {\r\n return;\r\n }\r\n\r\n let self = this;\r\n let hash = self.mdSource.split('#')[1];\r\n\r\n self.$triggerEvent('sourcechange', { event: false, data: {\r\n prevSource: oldValue,\r\n source : newValue\r\n }});\r\n\r\n self._bw = true;\r\n self.$triggerEvent('loading', { event: false, data: { source: self.mdSource, hash }});\r\n\r\n fetch(newValue, {})\r\n .then(response => response.text() )\r\n .then(md => self.markdownData = md )\r\n .finally(_ => {\r\n self._bw = false;\r\n setTimeout(_ => self.$triggerEvent('loaded', { event: false, data: { source: self.mdSource, hash } }), 0);\r\n });\r\n }\r\n\r\n /**\r\n * Called when the markdownData property changes value\r\n * @param {string} oldValue the old value\r\n * @param {string} newValue the new value\r\n */\r\n onChanged_markdownData (oldValue, newValue) {\r\n let self = this;\r\n\r\n scriptPromise.then(_ => {\r\n let splitSource = self.mdSource.split('/');\r\n let source = splitSource.splice(0, splitSource.length - 1).join('/') + '/';\r\n let html = self._by(newValue, { baseUrl: source, xhtml: true, smartLists: true, smartypants: true });\r\n //console.log('Source:', source)\r\n //self._bz = source;\r\n\r\n if (self._bx?.value) {\r\n self._bx.value.innerHTML = html;\r\n self._bx.value.scrollTop = 0;\r\n\r\n // Make sure external links are opened in a new tab\r\n for (let a of self._bx.value.getElementsByTagName('a')) {\r\n let href = a.getAttribute('href');\r\n\r\n if (!href.startsWith('#') && href.indexOf('.md') === -1 && href.indexOf('.mdown') === -1) {\r\n a.target = '_bA';\r\n }\r\n };\r\n\r\n if (!self.$attribs.turnOffHighlight) {\r\n window.hljs?.highlightAll();\r\n }\r\n\r\n // Scroll to hashed location\r\n let hash = self.mdSource.split('#')[1];\r\n let el = hash && document.getElementById(hash);\r\n\r\n if (el) {\r\n getScrollParentEl(el)?.scroll(0, el.offsetTop);\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Called when an useShadowRoot changes value\r\n * @param {boolean} oldValue the old value\r\n * @param {boolean} newValue the new value\r\n */\r\n onChanged_useShadowRoot (oldValue, newValue) {\r\n this.options.useShadowRoot = newValue;\r\n }\r\n\r\n /**\r\n * Convert markdown data to (sanitized) html\r\n * @param {string} data\r\n * @param {Object} optionsOrCallback\r\n * @returns {string} the html\r\n */\r\n _by(data, optionsOrCallback, callback) {\r\n let html = window.marked.parse(data, optionsOrCallback);\r\n\r\n return window.DOMPurify.sanitize(html);\r\n }\r\n\r\n /**\r\n *\r\n * @param {HTMLElement} e\r\n */\r\n _bB(e) {\r\n let self = this;\r\n\r\n if (!e) {\r\n return;\r\n }\r\n let el = e.target;\r\n let isLink = el.localName === 'a';\r\n\r\n if (!isLink) {\r\n return;\r\n }\r\n\r\n let href = el.getAttribute('href');\r\n\r\n if (el.target === '_bA') {\r\n return;\r\n }\r\n\r\n e.stopImmediatePropagation();\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (href.startsWith('#')) {\r\n let el = document.querySelector('wave-markdown ' + href)\r\n\r\n //el && getScrollParentEl(el)?.scroll(0, el.offsetTop);\r\n el && el.scrollIntoView();\r\n\r\n return;\r\n }\r\n\r\n let event = {\r\n a : el,\r\n href : el.href,\r\n cancel: false,\r\n };\r\n\r\n self.dispatchEvent(new CustomEvent('navigate', { detail: event }));\r\n\r\n if (!event.cancel) {\r\n self.mdSource = href;\r\n }\r\n }\r\n\r\n /** Render the template */\r\n render(reason) {\r\n let self = this;\r\n\r\n return html`
${self._bw && !self.$attribs.hideSpinner\r\n ? html`
`\r\n : nothing}
`;\r\n }\r\n}\r\n\r\n// Define the new web component\r\nif (!window.customElements.get(tag)) {\r\n window.customElements.define(tag, WaveMarkdown);\r\n}"],"names":["$336210b9876a60d1$var$scriptPromise","nothing","$336210b9876a60d1$var$nothing","html","$336210b9876a60d1$var$html","ref","$336210b9876a60d1$var$ref","createRef","$336210b9876a60d1$var$createRef","CustomHTMLElement","$336210b9876a60d1$var$CustomHTMLElement","lithtml","$336210b9876a60d1$var$tag","$336210b9876a60d1$var$getScrollParentEl","el","scrollHeight","clientHeight","parentElement","$336210b9876a60d1$var$WaveMarkdown","tag","version","observedAttributes","observedProperties","constructor","useShadowRoot","Promise","resolve","window","marked","script","document","createElement","type","src","id","crossOrigin","onload","integrity","head","appendChild","hljs","link","rel","href","_bx","onDestroy","onChanged_mdSource","oldValue","newValue","self","hash","mdSource","split","$triggerEvent","event","data","prevSource","source","_bw","fetch","then","response","text","md","markdownData","finally","_","setTimeout","onChanged_markdownData","splitSource","splice","length","join","_by","baseUrl","xhtml","smartLists","smartypants","value","a","innerHTML","scrollTop","getElementsByTagName","getAttribute","startsWith","indexOf","target","$attribs","turnOffHighlight","highlightAll","getElementById","scroll","offsetTop","onChanged_useShadowRoot","options","optionsOrCallback","callback","parse","DOMPurify","sanitize","_bB","e","localName","stopImmediatePropagation","preventDefault","stopPropagation","querySelector","scrollIntoView","cancel","dispatchEvent","CustomEvent","detail","render","reason","hideSpinner","customElements","get","define"],"version":3,"file":"wave-markdown.js.map"}