${o.text}
`;\n","import { html } from \"lit\";\n\nexport default (o) => html`\n \n \n`;\n","import { html } from \"lit\";\n\nexport default (o) => html`\n `;\n","import { html } from \"lit\";\n\nexport default (o) => html`\n \n`;\n","\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??ruleSet[1].rules[2].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!./gif.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!./gif.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import ConverseGif from 'shared/gif/index.js';\nimport { CustomElement } from 'shared/components/element.js';\nimport { api } from '@converse/headless/core';\nimport { getHyperlinkTemplate } from 'utils/html.js';\nimport { html } from 'lit';\n\nimport './styles/gif.scss';\n\nexport default class ConverseGIFElement extends CustomElement {\n static get properties () {\n /**\n * @typedef { Object } ConverseGIFComponentProperties\n * @property { Boolean } autoplay\n * @property { Boolean } noloop\n * @property { String } progress_color\n * @property { String } nick\n * @property { ('url'|'empty'|'error') } fallback\n * @property { String } src\n */\n return {\n 'autoplay': { type: Boolean },\n 'noloop': { type: Boolean },\n 'progress_color': { type: String },\n 'fallback': { type: String },\n 'src': { type: String },\n };\n }\n\n constructor () {\n super();\n this.autoplay = false;\n this.noloop = false;\n this.fallback = 'url';\n }\n\n initGIF () {\n const options = {\n 'autoplay': this.autoplay,\n 'loop': !this.noloop,\n }\n if (this.progress_color) {\n options['progress_color'] = this.progress_color;\n }\n this.supergif = new ConverseGif(this, options);\n }\n\n updated (changed) {\n if (!this.supergif || changed.has('src')) {\n this.initGIF();\n return;\n }\n if (changed.has('autoplay')) {\n this.supergif.options.autoplay = this.autoplay;\n }\n if (changed.has('noloop')) {\n this.supergif.options.loop = !this.noloop;\n }\n if (changed.has('progress_color')) {\n this.supergif.options.progress_color = this.progress_color;\n }\n }\n\n render () {\n return (this.supergif?.load_error && ['url', 'empty'].includes(this.fallback)) ? this.renderErrorFallback() :\n html``;\n }\n\n renderErrorFallback () {\n if (this.fallback === 'url') {\n return getHyperlinkTemplate(this.src);\n } else if (this.fallback === 'empty') {\n return '';\n }\n }\n\n setHover () {\n if (this.supergif) {\n this.supergif.hovering = true;\n this.hover_timeout && clearTimeout(this.hover_timeout);\n this.hover_timeout = setTimeout(() => this.unsetHover(), 2000);\n }\n }\n\n unsetHover () {\n if (this.supergif) this.supergif.hovering = false;\n }\n\n onControlsClicked (ev) {\n ev.preventDefault();\n if (this.supergif.playing) {\n this.supergif.pause();\n } else {\n // When the user manually clicks play, we turn on looping\n this.supergif.options.loop = true;\n this.supergif.play();\n }\n }\n}\n\napi.elements.define('converse-gif', ConverseGIFElement);\n","import { html } from \"lit\";\nimport 'shared/components/gif.js';\n\nexport default (url, hide_url) =>\n html`${txt}
\\``,\n 'preformatted_block': txt => html`${txt}
${renderStylingDirectiveBody(txt, i, options)}`,\n 'strike': (txt, i, options) => html`~