1
|
{"version":3,"file":"profile-main.js?v=19f69af4da7a9275be0a","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/profile/src/views/Profile.vue?vue&type=style&index=0&id=487fb694&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/vue-material-design-icons/MapMarker.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/MapMarker.vue?eeb6","webpack:///nextcloud/node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=0b375c76","webpack:///nextcloud/apps/profile/src/views/Profile.vue","webpack:///nextcloud/apps/profile/src/views/Profile.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/profile/src/views/Profile.vue?67b4","webpack://nextcloud/./apps/profile/src/views/Profile.vue?a485","webpack:///nextcloud/apps/profile/src/main.ts","webpack:///nextcloud/apps/profile/src/services/ProfileSections.ts","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-sscttPbK.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcRichText-BWY0OxW9.mjs","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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((key) => (__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};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\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, `[data-v-487fb694] #app-content-vue{background-color:unset}.profile[data-v-487fb694]{width:100%;overflow-y:auto}.profile__header[data-v-487fb694]{display:flex;position:sticky;height:190px;top:-40px;background-color:var(--color-main-background-blur);backdrop-filter:var(--filter-background-blur);-webkit-backdrop-filter:var(--filter-background-blur)}.profile__header__container[data-v-487fb694]{align-self:flex-end;width:100%;max-width:1024px;margin:8px auto;row-gap:8px;display:grid;grid-template-rows:max-content max-content;grid-template-columns:240px 1fr;justify-content:center}.profile__header__container__placeholder[data-v-487fb694]{grid-row:1/3}.profile__header__container__displayname[data-v-487fb694]{padding-inline:16px;width:640px;height:45px;margin-block:125px 0;display:flex;align-items:center;gap:18px}.profile__header__container__displayname h2[data-v-487fb694]{font-size:30px;margin:0}.profile__header__container__displayname span[data-v-487fb694]{font-size:20px}.profile__sidebar[data-v-487fb694]{position:sticky;top:0;align-self:flex-start;padding-top:20px;min-width:220px;margin-block:-150px 0;margin-inline:0 20px}.profile__sidebar[data-v-487fb694] .avatar.avatardiv{text-align:center;margin:auto;display:block;padding:8px}.profile__sidebar[data-v-487fb694] .avatar.avatardiv.interactive .avatardiv__user-status{cursor:pointer}.profile__sidebar[data-v-487fb694] .avatar.avatardiv .avatardiv__user-status{inset-inline-end:14px;bottom:14px;width:34px;height:34px;background-size:28px;border:none;background-color:var(--color-main-background);line-height:34px;font-size:20px}.profile__wrapper[data-v-487fb694]{background-color:var(--color-main-background);min-height:100%}.profile__content[data-v-487fb694]{max-width:1024px;margin:0 auto;display:flex;width:100%}.profile__blocks[data-v-487fb694]{margin:18px 0 80px 0;display:grid;gap:16px 0;width:640px}.profile__blocks p[data-v-487fb694],.profile__blocks h3[data-v-487fb694]{cursor:text;overflow-wrap:anywhere}.profile__blocks-details[data-v-487fb694]{display:flex;flex-direction:column;gap:2px 0}.profile__blocks-details .detail[data-v-487fb694]{display:inline-block;color:var(--color-text-maxcontrast)}.profile__blocks-details .detail p .map-icon[data-v-487fb694]{display:inline-block;vertical-align:middle}.profile__blocks-headline[data-v-487fb694]{margin-inline:0;margin-block:10px 0;font-weight:bold;font-size:20px}@media only screen and (max-width: 1024px){.profile__header[data-v-487fb694]{height:250px;position:unset}.profile__header__container[data-v-487fb694]{grid-template-columns:unset;margin-bottom:110px}.profile__header__container__displayname[data-v-487fb694]{margin:80px 20px 0px 0px !important;width:unset;text-align:center;padding-inline:12px}.profile__header__container__edit-button[data-v-487fb694]{width:fit-content;display:block;margin:60px auto}.profile__header__container__status-text[data-v-487fb694]{margin:4px auto}.profile__content[data-v-487fb694]{display:block}.profile__content .avatar[data-v-487fb694]{margin-top:-110px !important}.profile__blocks[data-v-487fb694]{width:unset;max-width:600px;margin:0 auto;padding:20px 50px 50px 50px}.profile__sidebar[data-v-487fb694]{margin:unset;position:unset}}.user-actions[data-v-487fb694]{display:flex;flex-direction:column;gap:8px 0;margin-top:20px;max-width:300px}.user-actions__primary[data-v-487fb694]{margin:0 auto;max-width:100%}.user-actions__primary__icon[data-v-487fb694]{filter:var(--primary-invert-if-dark)}.user-actions__other[data-v-487fb694]{display:flex;justify-content:center;gap:0 4px}.user-actions__other__icon[data-v-487fb694]{height:20px;width:20px;object-fit:contain;filter:var(--background-invert-if-dark);align-self:center;margin:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/profile/src/views/Profile.vue\"],\"names\":[],\"mappings\":\"AAIA,mCACC,sBAAA,CAGD,0BACC,UAAA,CACA,eAAA,CAEA,kCACC,YAAA,CACA,eAAA,CACA,YAAA,CACA,SAAA,CACA,kDAAA,CACA,6CAAA,CACA,qDAAA,CAEA,6CACC,mBAAA,CACA,UAAA,CACA,gBAvBiB,CAwBjB,eAAA,CACA,WAAA,CACA,YAAA,CACA,0CAAA,CACA,+BAAA,CACA,sBAAA,CAEA,0DACC,YAAA,CAGD,0DACC,mBAAA,CACA,WApCgB,CAqChB,WAAA,CACA,oBAAA,CACA,YAAA,CACA,kBAAA,CACA,QAAA,CAEA,6DACC,cAAA,CACA,QAAA,CAGD,+DACC,cAAA,CAMJ,mCACC,eAAA,CACA,KAAA,CACA,qBAAA,CACA,gBAAA,CACA,eAAA,CACA,qBAAA,CACA,oBAAA,CAGA,qDACC,iBAAA,CACA,WAAA,CACA,aAAA,CACA,WAAA,CAGC,yFAEC,cAAA,CAIF,6EACC,qBAAA,CACA,WAAA,CACA,UAAA,CACA,WAAA,CACA,oBAAA,CACA,WAAA,CAEA,6CAAA,CACA,gBAAA,CACA,cAAA,CAKH,mCACC,6CAAA,CACA,eAAA,CAGD,mCACC,gBApGkB,CAqGlB,aAAA,CACA,YAAA,CACA,UAAA,CAGD,kCACC,oBAAA,CACA,YAAA,CACA,UAAA,CACA,WA7GkB,CA+GlB,yEACC,WAAA,CACA,sBAAA,CAGD,0CACC,YAAA,CACA,qBAAA,CACA,SAAA,CAEA,kDACC,oBAAA,CACA,mCAAA,CAEA,8DACC,oBAAA,CACA,qBAAA,CAKH,2CACC,eAAA,CACA,mBAAA,CACA,gBAAA,CACA,cAAA,CAKH,2CAEE,kCACC,YAAA,CACA,cAAA,CAEA,6CACC,2BAAA,CACA,mBAAA,CAEA,0DACC,mCAAA,CACA,WAAA,CACA,iBAAA,CACA,mBAAA,CAGD,0DACC,iBAAA,CACA,aAAA,CACA,gBAAA,CAGD,0DACC,eAAA,CAKH,mCACC,aAAA,CAEC,2CAEA,4BAAA,CAIF,kCACC,WAAA,CACA,eAAA,CACA,aAAA,CACA,2BAAA,CAGD,mCACC,YAAA,CACA,cAAA,CAAA,CAKH,+BACC,YAAA,CACA,qBAAA,CACA,SAAA,CACA,eAAA,CACA,eAAA,CAEA,wCACC,aAAA,CACA,cAAA,CAEA,8CACC,oCAAA,CAIF,sCACC,YAAA,CACA,sBAAA,CACA,SAAA,CAEA,4CACC,WAAA,CACA,UAAA,CACA,kBAAA,CACA,uCAAA,CACA,iBAAA,CACA,WAAA\",\"sourcesContent\":[\"\\n$profile-max-width: 1024px;\\n$content-max-width: 640px;\\n\\n:deep(#app-content-vue) {\\n\\tbackground-color: unset;\\n}\\n\\n.profile {\\n\\twidth: 100%;\\n\\toverflow-y: auto;\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\tposition: sticky;\\n\\t\\theight: 190px;\\n\\t\\ttop: -40px;\\n\\t\\tbackground-color: var(--color-main-background-blur);\\n\\t\\tbackdrop-filter: var(--filter-background-blur);\\n\\t\\t-webkit-backdrop-filter: var(--filter-background-blur);\\n\\n\\t\\t&__container {\\n\\t\\t\\talign-self: flex-end;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmax-width: $profile-max-width;\\n\\t\\t\\tmargin: 8px auto;\\n\\t\\t\\trow-gap: 8px;\\n\\t\\t\\tdisplay: grid;\\n\\t\\t\\tgrid-template-rows: max-content max-content;\\n\\t\\t\\tgrid-template-columns: 240px 1fr;\\n\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t&__placeholder {\\n\\t\\t\\t\\tgrid-row: 1 / 3;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&__displayname {\\n\\t\\t\\t\\tpadding-inline: 16px; // same as the status text button, see NcButton\\n\\t\\t\\t\\twidth: $content-max-width;\\n\\t\\t\\t\\theight: 45px;\\n\\t\\t\\t\\tmargin-block: 125px 0;\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tgap: 18px;\\n\\n\\t\\t\\t\\th2 {\\n\\t\\t\\t\\t\\tfont-size: 30px;\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tspan {\\n\\t\\t\\t\\t\\tfont-size: 20px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__sidebar {\\n\\t\\tposition: sticky;\\n\\t\\ttop: 0;\\n\\t\\talign-self: flex-start;\\n\\t\\tpadding-top: 20px;\\n\\t\\tmin-width: 220px;\\n\\t\\tmargin-block: -150px 0;\\n\\t\\tmargin-inline: 0 20px;\\n\\n\\t\\t// Specificity hack is needed to override Avatar component styles\\n\\t\\t:deep(.avatar.avatardiv) {\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\tmargin: auto;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tpadding: 8px;\\n\\n\\t\\t\\t&.interactive {\\n\\t\\t\\t\\t.avatardiv__user-status {\\n\\t\\t\\t\\t\\t// Show that the status is interactive\\n\\t\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t.avatardiv__user-status {\\n\\t\\t\\t\\tinset-inline-end: 14px;\\n\\t\\t\\t\\tbottom: 14px;\\n\\t\\t\\t\\twidth: 34px;\\n\\t\\t\\t\\theight: 34px;\\n\\t\\t\\t\\tbackground-size: 28px;\\n\\t\\t\\t\\tborder: none;\\n\\t\\t\\t\\t// Styles when custom status icon and status text are set\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t\\tline-height: 34px;\\n\\t\\t\\t\\tfont-size: 20px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tmin-height: 100%;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tmax-width: $profile-max-width;\\n\\t\\tmargin: 0 auto;\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&__blocks {\\n\\t\\tmargin: 18px 0 80px 0;\\n\\t\\tdisplay: grid;\\n\\t\\tgap: 16px 0;\\n\\t\\twidth: $content-max-width;\\n\\n\\t\\tp, h3 {\\n\\t\\t\\tcursor: text;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t&-details {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\tgap: 2px 0;\\n\\n\\t\\t\\t.detail {\\n\\t\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t\\t\\tp .map-icon {\\n\\t\\t\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-headline {\\n\\t\\t\\tmargin-inline: 0;\\n\\t\\t\\tmargin-block: 10px 0;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tfont-size: 20px;\\n\\t\\t}\\n\\t}\\n}\\n\\n@media only screen and (max-width: 1024px) {\\n\\t.profile {\\n\\t\\t&__header {\\n\\t\\t\\theight: 250px;\\n\\t\\t\\tposition: unset;\\n\\n\\t\\t\\t&__container {\\n\\t\\t\\t\\tgrid-template-columns: unset;\\n\\t\\t\\t\\tmargin-bottom: 110px;\\n\\n\\t\\t\\t\\t&__displayname {\\n\\t\\t\\t\\t\\tmargin: 80px 20px 0px 0px!important;\\n\\t\\t\\t\\t\\twidth: unset;\\n\\t\\t\\t\\t\\ttext-align: center;\\n\\t\\t\\t\\t\\tpadding-inline: 12px;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&__edit-button {\\n\\t\\t\\t\\t\\twidth: fit-content;\\n\\t\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\t\\tmargin: 60px auto;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&__status-text {\\n\\t\\t\\t\\t\\tmargin: 4px auto;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&__content {\\n\\t\\t\\tdisplay: block;\\n\\n\\t\\t\\t .avatar {\\n\\t\\t\\t\\t// Overlap avatar to top header\\n\\t\\t\\t\\tmargin-top: -110px !important;\\n\\t\\t\\t }\\n\\t\\t}\\n\\n\\t\\t&__blocks {\\n\\t\\t\\twidth: unset;\\n\\t\\t\\tmax-width: 600px;\\n\\t\\t\\tmargin: 0 auto;\\n\\t\\t\\tpadding: 20px 50px 50px 50px;\\n\\t\\t}\\n\\n\\t\\t&__sidebar {\\n\\t\\t\\tmargin: unset;\\n\\t\\t\\tposition: unset;\\n\\t\\t}\\n\\t}\\n}\\n\\n.user-actions {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: 8px 0;\\n\\tmargin-top: 20px;\\n\\tmax-width: 300px;\\n\\n\\t&__primary {\\n\\t\\tmargin: 0 auto;\\n\\t\\tmax-width: 100%;\\n\\n\\t\\t&__icon {\\n\\t\\t\\tfilter: var(--primary-invert-if-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t&__other {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\tgap: 0 4px;\\n\\n\\t\\t&__icon {\\n\\t\\t\\theight: 20px;\\n\\t\\t\\twidth: 20px;\\n\\t\\t\\tobject-fit: contain;\\n\\t\\t\\tfilter: var(--background-invert-if-dark);\\n\\t\\t\\talign-self: center;\\n\\t\\t\\tmargin: 12px; // so we get 44px x 44px\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon map-marker-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MapMarkerIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./MapMarker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./MapMarker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MapMarker.vue?vue&type=template&id=0b375c76\"\nimport script from \"./MapMarker.vue?vue&type=script&lang=js\"\nexport * from \"./MapMarker.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/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('span',_vm._b({staticClass:\"material-design-icon map-marker-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcContent',{attrs:{\"app-name\":\"profile\"}},[_c('NcAppContent',[_c('div',{staticClass:\"profile__header\"},[_c('div',{staticClass:\"profile__header__container\"},[_c('div',{staticClass:\"profile__header__container__placeholder\"}),_vm._v(\" \"),_c('div',{staticClass:\"profile__header__container__displayname\"},[_c('h2',[_vm._v(_vm._s(_vm.displayname || _vm.userId))]),_vm._v(\" \"),(_vm.pronouns)?_c('span',[_vm._v(\"·\")]):_vm._e(),_vm._v(\" \"),(_vm.pronouns)?_c('span',{staticClass:\"profile__header__container__pronouns\"},[_vm._v(_vm._s(_vm.pronouns))]):_vm._e(),_vm._v(\" \"),(_vm.isCurrentUser)?_c('NcButton',{attrs:{\"type\":\"primary\",\"href\":_vm.settingsUrl},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('PencilIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,4260349822)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('profile', 'Edit Profile'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),(_vm.status.icon || _vm.status.message)?_c('NcButton',{attrs:{\"disabled\":!_vm.isCurrentUser,\"type\":_vm.isCurrentUser ? 'tertiary' : 'tertiary-no-background'},on:{\"click\":_vm.openStatusModal}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.status.icon)+\" \"+_vm._s(_vm.status.message)+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1)]),_vm._v(\" \"),_c('div',{staticClass:\"profile__wrapper\"},[_c('div',{staticClass:\"profile__content\"},[_c('div',{staticClass:\"profile__sidebar\"},[_c('NcAvatar',{staticClass:\"avatar\",class:{ interactive: _vm.isCurrentUser },attrs:{\"user\":_vm.userId,\"size\":180,\"show-user-status\":true,\"show-user-status-compact\":false,\"disable-menu\":true,\"disable-tooltip\":true,\"is-no-user\":!_vm.isUserAvatarVisible},nativeOn:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openStatusModal.apply(null, arguments)}}}),_vm._v(\" \"),_c('div',{staticClass:\"user-actions\"},[(_vm.primaryAction)?_c('NcButton',{staticClass:\"user-actions__primary\",attrs:{\"type\":\"primary\",\"href\":_vm.primaryAction.target,\"icon\":_vm.primaryAction.icon,\"target\":_vm.primaryAction.id === 'phone' ? '_self' :'_blank'},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('img',{staticClass:\"user-actions__primary__icon\",attrs:{\"src\":_vm.primaryAction.icon,\"alt\":\"\"}})]},proxy:true}],null,false,1780240256)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.primaryAction.title)+\"\\n\\t\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcActions',{staticClass:\"user-actions__other\",attrs:{\"inline\":4}},_vm._l((_vm.otherActions),function(action){return _c('NcActionLink',{key:action.id,attrs:{\"close-after-click\":true,\"href\":action.target,\"target\":action.id === 'phone' ? '_self' :'_blank'},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('img',{staticClass:\"user-actions__other__icon\",attrs:{\"src\":action.icon,\"alt\":\"\"}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(action.title)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])}),1)],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"profile__blocks\"},[(_vm.organisation || _vm.role || _vm.address)?_c('div',{staticClass:\"profile__blocks-details\"},[(_vm.organisation || _vm.role)?_c('div',{staticClass:\"detail\"},[_c('p',[_vm._v(_vm._s(_vm.organisation)+\" \"),(_vm.organisation && _vm.role)?_c('span',[_vm._v(\"•\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.role))])]):_vm._e(),_vm._v(\" \"),(_vm.address)?_c('div',{staticClass:\"detail\"},[_c('p',[_c('MapMarkerIcon',{staticClass:\"map-icon\",attrs:{\"size\":16}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.address)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")],1)]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.headline || _vm.biography || _vm.sections.length > 0)?[(_vm.headline)?_c('h3',{staticClass:\"profile__blocks-headline\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.headline)+\"\\n\\t\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.biography)?_c('NcRichText',{attrs:{\"text\":_vm.biography,\"use-extended-markdown\":\"\"}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.sections),function(section,index){return _c('div',{key:index,ref:'section-' + index,refInFor:true,staticClass:\"profile__additionalContent\"},[_c(section(_vm.$refs['section-'+index], _vm.userId),{tag:\"component\",attrs:{\"user-id\":_vm.userId}})],1)})]:_c('NcEmptyContent',{staticClass:\"profile__blocks-empty-info\",attrs:{\"name\":_vm.emptyProfileMessage,\"description\":_vm.t('profile', 'The headline and about sections will show up here')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountIcon',{attrs:{\"size\":60}})]},proxy:true}])})],2)])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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!./Profile.vue?vue&type=script&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!./Profile.vue?vue&type=script&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!./Profile.vue?vue&type=style&index=0&id=487fb694&prod&lang=scss&scoped=true\";\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!./Profile.vue?vue&type=style&index=0&id=487fb694&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Profile.vue?vue&type=template&id=487fb694&scoped=true\"\nimport script from \"./Profile.vue?vue&type=script&lang=ts\"\nexport * from \"./Profile.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Profile.vue?vue&type=style&index=0&id=487fb694&prod&lang=scss&scoped=true\"\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 \"487fb694\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport Vue from 'vue';\nimport Profile from './views/Profile.vue';\nimport ProfileSections from './services/ProfileSections.js';\n__webpack_nonce__ = getCSPNonce();\nif (!window.OCA) {\n window.OCA = {};\n}\nif (!window.OCA.Core) {\n window.OCA.Core = {};\n}\nObject.assign(window.OCA.Core, { ProfileSections: new ProfileSections() });\nconst View = Vue.extend(Profile);\nwindow.addEventListener('DOMContentLoaded', () => {\n new View().$mount('#content');\n});\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nexport default class ProfileSections {\n _sections;\n constructor() {\n this._sections = [];\n }\n /**\n * @param {registerSectionCallback} section To be called to mount the section to the profile page\n */\n registerSection(section) {\n this._sections.push(section);\n }\n getSections() {\n return this._sections;\n }\n}\n","import '../assets/referencePickerModal-Ba6soz9w.css';\nimport { e as destroyWidget, a as renderWidget, i as isWidgetRegistered, h as hasInteractiveView, f as hasFullWidth, c as renderCustomPickerElement, g as destroyCustomPickerElement, d as isCustomPickerElementRegistered, j as getCustomPickerElementSize } from \"./index-56SXuvlv.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { r as register, V as t21, a as t, W as t7, X as t44, Y as t38, Z as t22, B as t40, _ as t29, n as t17, $ as t11 } from \"./_l10n-DIOHNc85.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { imagePath, generateOcsUrl } from \"@nextcloud/router\";\nimport NcEmptyContent from \"../Components/NcEmptyContent.mjs\";\nimport { N as NcHighlight } from \"./index-Bz6q9mZw.mjs\";\nimport { N as NcSelect } from \"./NcSelect-DmIaznJY.mjs\";\nimport { useElementSize, useIntersectionObserver } from \"@vueuse/core\";\nimport Vue, { ref, nextTick } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { g as getRoute } from \"./autolink-cbuFALXr.mjs\";\nimport NcButton from \"../Components/NcButton.mjs\";\nimport NcLoadingIcon from \"../Components/NcLoadingIcon.mjs\";\nimport { N as NcTextField } from \"./NcTextField-Cd_RjGj6.mjs\";\nimport { D as DotsHorizontal } from \"./DotsHorizontal-C6LNsw4N.mjs\";\nimport NcModal from \"../Components/NcModal.mjs\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { A as ArrowLeft } from \"./ArrowLeft-DuT2LZOm.mjs\";\nimport { C as Close } from \"./Close-BtLPUSdO.mjs\";\nregister(t21);\nconst IDLE_TIMEOUT = 3 * 60 * 1e3;\nconst _sfc_main$8 = {\n name: \"NcReferenceWidget\",\n components: {\n NcButton\n },\n props: {\n reference: {\n type: Object,\n required: true\n },\n interactive: {\n type: Boolean,\n default: true\n },\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n setup() {\n const isVisible = ref(false);\n const widgetRoot = ref();\n const { width } = useElementSize(widgetRoot);\n useIntersectionObserver(widgetRoot, ([entry]) => {\n nextTick(() => {\n isVisible.value = entry.isIntersecting;\n });\n });\n return {\n width,\n isVisible,\n widgetRoot\n };\n },\n data() {\n return {\n showInteractive: false,\n rendered: false,\n idleTimeout: null\n };\n },\n computed: {\n isInteractive() {\n return !this.interactiveOptIn && this.interactive || this.showInteractive;\n },\n hasFullWidth() {\n return hasFullWidth(this.reference.richObjectType);\n },\n hasCustomWidget() {\n return isWidgetRegistered(this.reference.richObjectType);\n },\n hasInteractiveView() {\n return isWidgetRegistered(this.reference.richObjectType) && hasInteractiveView(this.reference.richObjectType);\n },\n noAccess() {\n return this.reference && !this.reference.accessible;\n },\n descriptionStyle() {\n if (this.numberOfLines === 0) {\n return {\n display: \"none\"\n };\n }\n const lineClamp = this.numberOfLines;\n return {\n lineClamp,\n webkitLineClamp: lineClamp\n };\n },\n numberOfLines() {\n const lineCountOffsets = [450, 550, 650, Infinity];\n return lineCountOffsets.findIndex((max) => this.width < max);\n },\n compactLink() {\n const link = this.reference.openGraphObject.link;\n if (!link) {\n return \"\";\n }\n if (link.startsWith(\"https://\")) {\n return link.substring(8);\n }\n if (link.startsWith(\"http://\")) {\n return link.substring(7);\n }\n return link;\n },\n route() {\n return getRoute(this.$router, this.reference.openGraphObject.link);\n },\n referenceWidgetLinkComponent() {\n return this.route ? RouterLink : \"a\";\n },\n referenceWidgetLinkProps() {\n return this.route ? { to: this.route } : { href: this.reference.openGraphObject.link, target: \"_blank\" };\n }\n },\n watch: {\n isVisible: {\n handler(val) {\n if (!val) {\n this.idleTimeout = setTimeout(() => {\n if (!this.isVisible) {\n this.destroyWidget();\n }\n }, IDLE_TIMEOUT);\n return;\n }\n if (this.idleTimeout) {\n clearTimeout(this.idleTimeout);\n this.idleTimeout = null;\n }\n if (!this.rendered) {\n this.renderWidget();\n }\n },\n immediate: true\n }\n },\n beforeDestroy() {\n this.destroyWidget();\n },\n methods: {\n t,\n enableInteractive() {\n this.showInteractive = true;\n this.renderWidget();\n },\n renderWidget() {\n if (!this.$refs.customWidget) {\n return;\n }\n if (this?.reference?.richObjectType === \"open-graph\") {\n return;\n }\n this.$refs.customWidget.innerHTML = \"\";\n const widget = document.createElement(\"div\");\n widget.style = \"width: 100%;\";\n this.$refs.customWidget.appendChild(widget);\n this.$nextTick(() => {\n renderWidget(widget, {\n ...this.reference,\n interactive: this.isInteractive\n });\n this.rendered = true;\n });\n },\n destroyWidget() {\n if (this.rendered) {\n destroyWidget(this.reference.richObjectType, this.$el);\n this.rendered = false;\n }\n }\n }\n};\nvar _sfc_render$8 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { ref: \"widgetRoot\", class: { \"toggle-interactive\": _vm.hasInteractiveView && !_vm.isInteractive } }, [_vm.reference && _vm.hasCustomWidget ? _c(\"div\", { ref: \"customWidget\", staticClass: \"widget-custom\", class: { \"full-width\": _vm.hasFullWidth } }) : !_vm.noAccess && _vm.reference && _vm.reference.openGraphObject && !_vm.hasCustomWidget ? _c(_vm.referenceWidgetLinkComponent, _vm._b({ tag: \"component\", staticClass: \"widget-default\", attrs: { \"rel\": \"noopener noreferrer\" } }, \"component\", _vm.referenceWidgetLinkProps, false), [_vm.reference.openGraphObject.thumb ? _c(\"img\", { staticClass: \"widget-default--image\", attrs: { \"src\": _vm.reference.openGraphObject.thumb } }) : _vm._e(), _c(\"div\", { staticClass: \"widget-default--details\" }, [_c(\"p\", { staticClass: \"widget-default--name\" }, [_vm._v(\" \" + _vm._s(_vm.reference.openGraphObject.name) + \" \")]), _c(\"p\", { staticClass: \"widget-default--description\", style: _vm.descriptionStyle }, [_vm._v(\" \" + _vm._s(_vm.reference.openGraphObject.description) + \" \")]), _c(\"p\", { staticClass: \"widget-default--link\" }, [_vm._v(\" \" + _vm._s(_vm.compactLink) + \" \")])])]) : _vm._e(), _vm.interactiveOptIn && _vm.hasInteractiveView && !_vm.isInteractive ? _c(\"NcButton\", { staticClass: \"toggle-interactive--button\", on: { \"click\": _vm.enableInteractive } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Enable interactive view\")) + \" \")]) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns$8 = [];\nvar __component__$8 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$8,\n _sfc_render$8,\n _sfc_staticRenderFns$8,\n false,\n null,\n \"734d6ae9\"\n);\nconst NcReferenceWidget = __component__$8.exports;\nconst _sfc_main$7 = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n isRegistered: isCustomPickerElementRegistered(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n if (this.isRegistered) {\n this.renderElement();\n }\n },\n beforeDestroy() {\n if (this.isRegistered) {\n destroyCustomPickerElement(this.provider.id, this.$el, this.renderResult);\n }\n },\n methods: {\n renderElement() {\n if (this.$refs.domElement) {\n this.$refs.domElement.innerHTML = \"\";\n }\n const renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false });\n Promise.resolve(renderFunctionResult).then((result) => {\n this.renderResult = result;\n if (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n this.renderResult.object.$on(\"submit\", this.onSubmit);\n this.renderResult.object.$on(\"cancel\", this.onCancel);\n }\n this.renderResult.element.addEventListener(\"submit\", (e) => {\n this.onSubmit(e.detail);\n });\n this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(value) {\n this.$emit(\"submit\", value);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nvar _sfc_render$7 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { ref: \"domElement\" });\n};\nvar _sfc_staticRenderFns$7 = [];\nvar __component__$7 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$7,\n _sfc_render$7,\n _sfc_staticRenderFns$7,\n false,\n null,\n \"de9850e4\"\n);\nconst NcCustomPickerElement = __component__$7.exports;\nregister(t7);\nconst anyLinkProviderId = \"any-link\";\nconst anyLinkProvider = {\n id: anyLinkProviderId,\n title: t(\"Any link\"),\n icon_url: imagePath(\"core\", \"filetypes/link.svg\")\n};\nif (!window._vue_richtext_reference_providers) {\n window._vue_richtext_reference_providers = loadState(\"core\", \"reference-provider-list\", []);\n}\nif (!window._vue_richtext_reference_provider_timestamps) {\n window._vue_richtext_reference_provider_timestamps = loadState(\"core\", \"reference-provider-timestamps\", {});\n}\nfunction getProvider(providerId) {\n if (providerId === anyLinkProviderId) {\n return anyLinkProvider;\n }\n return getProviders().find((p) => p.id === providerId);\n}\nfunction getProviders() {\n return window._vue_richtext_reference_providers.filter((p) => {\n const keep = !!p.search_providers_ids && p.search_providers_ids.length > 0 || isCustomPickerElementRegistered(p.id);\n if (!keep) {\n console.debug(\"[smart picker]\", p.id, \"reference provider is discoverable but does not have any related search provider or custom picker component registered\");\n }\n return keep;\n });\n}\nfunction sortProviders(providerList) {\n const timestamps = window._vue_richtext_reference_provider_timestamps;\n return providerList.sort((a, b) => {\n return a.order === b.order ? 0 : a.order > b.order ? 1 : -1;\n }).sort((a, b) => {\n const ta = timestamps[a.id];\n const tb = timestamps[b.id];\n return ta === tb ? 0 : tb === void 0 ? -1 : ta === void 0 ? 1 : ta > tb ? -1 : 1;\n });\n}\nfunction searchProvider(query, limit = null) {\n const providers = getProviders();\n const escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n const regexp = new RegExp(escapedQuery, \"i\");\n const sortedProviders = sortProviders(providers);\n const filteredSortedProviders = sortedProviders.filter((p) => {\n return p.title.match(regexp);\n });\n const searchResult = limit ? filteredSortedProviders.slice(0, limit) : filteredSortedProviders;\n if (query === \"\" || searchResult.length === 0) {\n searchResult.push(anyLinkProvider);\n }\n return searchResult;\n}\nfunction touchProvider(providerId) {\n const timestamp = Math.floor(Date.now() / 1e3);\n const params = {\n timestamp\n };\n const url = generateOcsUrl(\"references/provider/{providerId}\", { providerId });\n axios.put(url, params).then((response) => {\n window._vue_richtext_reference_provider_timestamps[providerId] = timestamp;\n });\n}\nlet mytimer = 0;\nfunction delay(callback, ms) {\n return function() {\n const context = this;\n const args = arguments;\n clearTimeout(mytimer);\n mytimer = setTimeout(function() {\n callback.apply(context, args);\n }, ms);\n };\n}\nfunction isUrl(str) {\n try {\n return Boolean(new URL(str));\n } catch (error) {\n return false;\n }\n}\nregister(t38, t44);\nconst _sfc_main$6 = {\n name: \"LinkVariantIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$6 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon link-variant-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$6 = [];\nvar __component__$6 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$6,\n _sfc_render$6,\n _sfc_staticRenderFns$6,\n false,\n null,\n null\n);\nconst LinkVariantIcon = __component__$6.exports;\nconst _sfc_main$5 = {\n name: \"NcProviderList\",\n components: {\n NcSelect,\n NcHighlight,\n NcEmptyContent,\n LinkVariantIcon\n },\n emits: [\n \"select-provider\",\n \"submit\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: t(\"Select provider\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const result = [];\n if (this.query !== \"\" && isUrl(this.query)) {\n result.push({\n id: this.query,\n title: this.query,\n isLink: true\n });\n }\n result.push(...searchProvider(this.query));\n return result;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n this.$refs[\"provider-select\"]?.$el?.querySelector(\"#provider-select-input\")?.focus();\n }, 300);\n },\n onProviderSelected(p) {\n if (p !== null) {\n if (p.isLink) {\n this.$emit(\"submit\", p.title);\n } else {\n this.$emit(\"select-provider\", p);\n }\n this.selectedProvider = null;\n }\n },\n onSearch(query, loading) {\n this.query = query;\n }\n }\n};\nvar _sfc_render$5 = function render4() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"provider-list\" }, [_c(\"NcSelect\", { ref: \"provider-select\", staticClass: \"provider-list--select\", attrs: { \"input-id\": \"provider-select-input\", \"label\": \"title\", \"placeholder\": _vm.multiselectPlaceholder, \"options\": _vm.options, \"append-to-body\": false, \"clear-search-on-select\": true, \"clear-search-on-blur\": () => false, \"filterable\": false }, on: { \"search\": _vm.onSearch, \"input\": _vm.onProviderSelected }, scopedSlots: _vm._u([{ key: \"option\", fn: function(option) {\n return [option.isLink ? _c(\"div\", { staticClass: \"provider\" }, [_c(\"LinkVariantIcon\", { staticClass: \"link-icon\", attrs: { \"size\": 20 } }), _c(\"span\", [_vm._v(_vm._s(option.title))])], 1) : _c(\"div\", { staticClass: \"provider\" }, [_c(\"img\", { staticClass: \"provider-icon\", attrs: { \"src\": option.icon_url, \"alt\": _vm.providerIconAlt } }), _c(\"NcHighlight\", { staticClass: \"option-text\", attrs: { \"search\": _vm.query, \"text\": option.title } })], 1)];\n } }]), model: { value: _vm.selectedProvider, callback: function($$v) {\n _vm.selectedProvider = $$v;\n }, expression: \"selectedProvider\" } }), _c(\"NcEmptyContent\", { staticClass: \"provider-list--empty-content\", scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"LinkVariantIcon\")];\n }, proxy: true }]) })], 1);\n};\nvar _sfc_staticRenderFns$5 = [];\nvar __component__$5 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$5,\n _sfc_render$5,\n _sfc_staticRenderFns$5,\n false,\n null,\n \"f03ee0c9\"\n);\nconst NcProviderList = __component__$5.exports;\nregister(t22);\nconst _sfc_main$4 = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon,\n NcEmptyContent,\n NcLoadingIcon,\n NcReferenceWidget,\n NcTextField\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: false,\n reference: null,\n abortController: null,\n inputPlaceholder: t(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return isUrl(this.inputValue);\n }\n },\n methods: {\n focus() {\n this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]?.focus();\n },\n onSubmit(e) {\n const value = e.target.value;\n if (this.isLinkValid) {\n this.$emit(\"submit\", value);\n }\n },\n onClear() {\n this.inputValue = \"\";\n this.reference = null;\n },\n onInput() {\n this.reference = null;\n if (this.abortController) {\n this.abortController.abort();\n }\n if (this.isLinkValid) {\n delay(() => {\n this.updateReference();\n }, 500)();\n }\n },\n updateReference() {\n this.loading = true;\n this.abortController = new AbortController();\n axios.get(generateOcsUrl(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((response) => {\n this.reference = response.data.ocs.data.references[this.inputValue];\n }).catch((error) => {\n console.error(error);\n }).then(() => {\n this.loading = false;\n });\n }\n }\n};\nvar _sfc_render$4 = function render5() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"raw-link\" }, [_c(\"div\", { staticClass: \"input-wrapper\" }, [_c(\"NcTextField\", { ref: \"url-input\", attrs: { \"value\": _vm.inputValue, \"show-trailing-button\": _vm.inputValue !== \"\", \"label\": _vm.inputPlaceholder }, on: { \"update:value\": [function($event) {\n _vm.inputValue = $event;\n }, _vm.onInput], \"trailing-button-click\": _vm.onClear }, nativeOn: { \"keyup\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n return _vm.onSubmit.apply(null, arguments);\n } } }, [_vm.loading ? _c(\"NcLoadingIcon\", { attrs: { \"size\": 16 } }) : _c(\"LinkVariantIcon\", { attrs: { \"size\": 16 } })], 1)], 1), _vm.reference !== null ? _c(\"NcReferenceWidget\", { staticClass: \"reference-widget\", attrs: { \"reference\": _vm.reference } }) : _c(\"NcEmptyContent\", { staticClass: \"raw-link--empty-content\", scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm.provider.icon_url ? _c(\"img\", { staticClass: \"provider-icon\", attrs: { \"src\": _vm.provider.icon_url } }) : _c(\"LinkVariantIcon\")];\n }, proxy: true }]) })], 1);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n \"3c1803b5\"\n);\nconst NcRawLinkInput = __component__$4.exports;\nconst _sfc_main$3 = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: true\n },\n /**\n * The query that led to getting this result\n * Used to highlight the entry text\n */\n query: {\n type: String,\n required: true\n }\n }\n};\nvar _sfc_render$3 = function render6() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"result\" }, [_vm.entry.icon ? _c(\"div\", { staticClass: \"result--icon-class\", class: { [_vm.entry.icon]: true, rounded: _vm.entry.rounded } }) : _c(\"img\", { staticClass: \"result--image\", class: { rounded: _vm.entry.rounded }, attrs: { \"src\": _vm.entry.thumbnailUrl } }), _c(\"div\", { staticClass: \"result--content\" }, [_c(\"span\", { staticClass: \"result--content--name\" }, [_c(\"NcHighlight\", { attrs: { \"search\": _vm.query, \"text\": _vm.entry.title } })], 1), _c(\"span\", { staticClass: \"result--content--subline\" }, [_c(\"NcHighlight\", { attrs: { \"search\": _vm.query, \"text\": _vm.entry.subline } })], 1)])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n \"ff4bcbf3\"\n);\nconst NcSearchResult = __component__$3.exports;\nregister(t29, t38, t40);\nconst LIMIT = 5;\nconst _sfc_main$2 = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon,\n DotsHorizontalIcon: DotsHorizontal,\n NcEmptyContent,\n NcSelect,\n NcSearchResult\n },\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: true\n },\n showEmptyContent: {\n type: Boolean,\n default: true\n },\n searchPlaceholder: {\n type: String,\n default: null\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n searchQuery: \"\",\n selectedResult: null,\n resultsBySearchProvider: {},\n searching: false,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: t(\"Start typing to search\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || t(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\") {\n return [];\n }\n const options = [];\n if (isUrl(this.searchQuery)) {\n options.push(this.rawLinkEntry);\n }\n options.push(...this.formattedSearchResults);\n return options;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: true\n };\n },\n formattedSearchResults() {\n const results = [];\n this.searchProviderIds.forEach((pid) => {\n if (this.resultsBySearchProvider[pid].entries.length > 0) {\n if (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n results.push({\n id: \"groupTitle-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isCustomGroupTitle: true,\n providerId: pid\n });\n }\n const providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n return {\n id: \"provider-\" + pid + \"-entry-\" + index,\n ...entry\n };\n });\n results.push(...providerEntriesWithId);\n if (this.resultsBySearchProvider[pid].isPaginated) {\n results.push({\n id: \"moreOf-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isMore: true,\n providerId: pid,\n isLoading: this.searchingMoreOf === pid\n });\n }\n }\n });\n return results;\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeDestroy() {\n this.cancelSearchRequests();\n },\n methods: {\n t,\n resetResults() {\n const resultsBySearchProvider = {};\n this.searchProviderIds.forEach((pid) => {\n resultsBySearchProvider[pid] = {\n entries: []\n };\n });\n this.resultsBySearchProvider = resultsBySearchProvider;\n },\n focus() {\n setTimeout(() => {\n this.$refs[\"search-select\"]?.$el?.querySelector(\"#search-select-input\")?.focus();\n }, 300);\n },\n cancelSearchRequests() {\n if (this.abortController) {\n this.abortController.abort();\n }\n },\n onSearchInput(query, loading) {\n this.searchQuery = query;\n delay(() => {\n this.updateSearch();\n }, 500)();\n },\n onSelectResultSelected(item) {\n if (item !== null) {\n if (item.resourceUrl) {\n this.cancelSearchRequests();\n this.$emit(\"submit\", item.resourceUrl);\n } else if (item.isMore) {\n this.searchMoreOf(item.providerId).then(() => {\n this.selectedResult = null;\n });\n }\n }\n },\n searchMoreOf(searchProviderId) {\n this.searchingMoreOf = searchProviderId;\n this.cancelSearchRequests();\n return this.searchProviders(searchProviderId);\n },\n updateSearch() {\n this.cancelSearchRequests();\n this.resetResults();\n if (this.searchQuery === \"\") {\n this.searching = false;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(searchProviderId = null) {\n this.abortController = new AbortController();\n this.searching = true;\n const searchPromises = searchProviderId === null ? [...this.searchProviderIds].map((pid) => {\n return this.searchOneProvider(pid);\n }) : [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)];\n return Promise.allSettled(searchPromises).then((promises) => {\n const isOneCanceled = !!promises.find((p) => {\n return p.status === \"rejected\" && (p.reason.name === \"CanceledError\" || p.reason.code === \"ERR_CANCELED\");\n });\n if (!isOneCanceled) {\n this.searching = false;\n this.searchingMoreOf = null;\n }\n });\n },\n searchOneProvider(providerId, cursor = null) {\n const url = cursor === null ? generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId, term: this.searchQuery, limit: LIMIT }) : generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId, term: this.searchQuery, limit: LIMIT, cursor });\n return axios.get(url, {\n signal: this.abortController.signal\n }).then((response) => {\n const data = response.data.ocs.data;\n this.resultsBySearchProvider[providerId].name = data.name;\n this.resultsBySearchProvider[providerId].cursor = data.cursor;\n this.resultsBySearchProvider[providerId].isPaginated = data.isPaginated;\n this.resultsBySearchProvider[providerId].entries.push(...data.entries);\n });\n }\n }\n};\nvar _sfc_render$2 = function render7() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"smart-picker-search\", class: { \"with-empty-content\": _vm.showEmptyContent } }, [_c(\"NcSelect\", { ref: \"search-select\", staticClass: \"smart-picker-search--select\", attrs: { \"input-id\": \"search-select-input\", \"label\": \"name\", \"placeholder\": _vm.mySearchPlaceholder, \"options\": _vm.options, \"append-to-body\": false, \"close-on-select\": false, \"clear-search-on-select\": false, \"clear-search-on-blur\": () => false, \"reset-focus-on-options-change\": false, \"filterable\": false, \"autoscroll\": true, \"reset-on-options-change\": false, \"loading\": _vm.searching }, on: { \"search\": _vm.onSearchInput, \"input\": _vm.onSelectResultSelected }, scopedSlots: _vm._u([{ key: \"option\", fn: function(option) {\n return [option.isRawLink ? _c(\"div\", { staticClass: \"custom-option\" }, [_c(\"LinkVariantIcon\", { staticClass: \"option-simple-icon\", attrs: { \"size\": 20 } }), _c(\"span\", { staticClass: \"option-text\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Raw link {options}\", { options: option.resourceUrl })) + \" \")])], 1) : option.resourceUrl ? _c(\"NcSearchResult\", { staticClass: \"search-result\", attrs: { \"entry\": option, \"query\": _vm.searchQuery } }) : option.isCustomGroupTitle ? _c(\"span\", { staticClass: \"custom-option group-name\" }, [_vm.provider.icon_url ? _c(\"img\", { staticClass: \"provider-icon group-name-icon\", attrs: { \"src\": _vm.provider.icon_url } }) : _vm._e(), _c(\"span\", { staticClass: \"option-text\" }, [_c(\"strong\", [_vm._v(_vm._s(option.name))])])]) : option.isMore ? _c(\"span\", { class: { \"custom-option\": true } }, [option.isLoading ? _c(\"span\", { staticClass: \"option-simple-icon icon-loading-small\" }) : _c(\"DotsHorizontalIcon\", { staticClass: \"option-simple-icon\", attrs: { \"size\": 20 } }), _c(\"span\", { staticClass: \"option-text\" }, [_vm._v(\" \" + _vm._s(_vm.t('Load more \"{options}\"', { options: option.name })) + \" \")])], 1) : _vm._e()];\n } }, { key: \"no-options\", fn: function() {\n return [_vm._v(\" \" + _vm._s(_vm.noOptionsText) + \" \")];\n }, proxy: true }]), model: { value: _vm.selectedResult, callback: function($$v) {\n _vm.selectedResult = $$v;\n }, expression: \"selectedResult\" } }), _vm.showEmptyContent ? _c(\"NcEmptyContent\", { staticClass: \"smart-picker-search--empty-content\", scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm.provider.icon_url ? _c(\"img\", { staticClass: \"provider-icon\", attrs: { \"alt\": _vm.providerIconAlt, \"src\": _vm.provider.icon_url } }) : _c(\"LinkVariantIcon\")];\n }, proxy: true }], null, false, 2922132592) }) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n \"05fef988\"\n);\nconst NcSearch = __component__$2.exports;\nconst MODES = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n};\nconst _sfc_main$1 = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement,\n NcProviderList,\n NcRawLinkInput,\n NcSearch\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"cancel\",\n \"cancel-raw-link\",\n \"cancel-search\",\n \"provider-selected\",\n \"submit\"\n ],\n data() {\n return {\n MODES,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? MODES.providerList : isCustomPickerElementRegistered(this.selectedProvider.id) ? MODES.customElement : this.selectedProvider.search_providers_ids ? MODES.searchInput : MODES.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n if (this.focusOnCreate) {\n if (this.initialProvider) {\n setTimeout(() => {\n this.$refs[\"url-input\"]?.focus();\n }, 300);\n } else {\n this.$nextTick(() => {\n this.$refs[\"provider-list\"]?.focus();\n });\n }\n }\n },\n methods: {\n onEscapePressed() {\n if (this.selectedProvider !== null) {\n this.deselectProvider();\n } else {\n this.cancelProviderSelection();\n }\n },\n onProviderSelected(provider) {\n this.selectedProvider = provider;\n this.$emit(\"provider-selected\", provider);\n this.$nextTick(() => {\n this.$refs[\"url-input\"]?.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n this.$emit(\"cancel-search\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelRawLinkInput() {\n this.$emit(\"cancel-raw-link\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(link) {\n if (this.selectedProvider !== null) {\n touchProvider(this.selectedProvider.id);\n }\n this.$emit(\"submit\", link);\n this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null;\n this.$emit(\"provider-selected\", null);\n setTimeout(() => {\n this.$refs[\"provider-list\"]?.focus();\n }, 300);\n }\n }\n};\nvar _sfc_render$1 = function render8() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"reference-picker\", style: _vm.pickerWrapperStyle, attrs: { \"tabindex\": \"-1\" }, on: { \"keydown\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) return null;\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.onEscapePressed.apply(null, arguments);\n } } }, [_vm.mode === _vm.MODES.providerList ? _c(\"NcProviderList\", { ref: \"provider-list\", on: { \"select-provider\": _vm.onProviderSelected, \"submit\": _vm.submitLink, \"cancel\": _vm.cancelProviderSelection } }) : _vm.mode === _vm.MODES.standardLinkInput ? _c(\"NcRawLinkInput\", { ref: \"url-input\", attrs: { \"provider\": _vm.selectedProvider }, on: { \"submit\": _vm.submitLink, \"cancel\": _vm.cancelRawLinkInput } }) : _vm.mode === _vm.MODES.searchInput ? _c(\"NcSearch\", { ref: \"url-input\", attrs: { \"provider\": _vm.selectedProvider }, on: { \"cancel\": _vm.cancelSearch, \"submit\": _vm.submitLink } }) : _vm.mode === _vm.MODES.customElement ? _c(\"div\", { staticClass: \"custom-element-wrapper\" }, [_c(\"NcCustomPickerElement\", { staticClass: \"custom-element\", attrs: { \"provider\": _vm.selectedProvider }, on: { \"submit\": _vm.submitLink, \"cancel\": _vm.cancelCustomElement } })], 1) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"cd33df8e\"\n);\nconst NcReferencePicker = __component__$1.exports;\nregister(t11, t17);\nconst _sfc_main = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker,\n NcModal,\n NcButton,\n ArrowLeftIcon: ArrowLeft,\n CloseIcon: Close\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n },\n /**\n * If true, add the modal content to the Viewer trap elements via the event-bus\n */\n isInsideViewer: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n show: true,\n selectedProvider: this.initialProvider,\n backButtonTitle: t(\"Back to provider selection\"),\n closeButtonTitle: t(\"Close\"),\n closeButtonLabel: t(\"Close Smart Picker\")\n };\n },\n computed: {\n isProviderSelected() {\n return this.selectedProvider !== null;\n },\n showBackButton() {\n return this.initialProvider === null && this.isProviderSelected;\n },\n modalSize() {\n return this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id) ? getCustomPickerElementSize(this.selectedProvider.id) ?? \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : t(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const elem = this.$refs.modal_content;\n emit(\"viewer:trapElements:changed\", elem);\n }\n },\n methods: {\n onCancel() {\n this.show = false;\n this.$emit(\"cancel\");\n },\n onSubmit(value) {\n this.show = false;\n this.$emit(\"submit\", value);\n },\n onProviderSelect(provider) {\n this.selectedProvider = provider;\n if (provider === null && this.initialProvider !== null) {\n this.onCancel();\n }\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nvar _sfc_render = function render9() {\n var _vm = this, _c = _vm._self._c;\n return _vm.show ? _c(\"NcModal\", { staticClass: \"reference-picker-modal\", attrs: { \"size\": _vm.modalSize, \"can-close\": true }, on: { \"close\": _vm.onCancel } }, [_c(\"div\", { ref: \"modal_content\", staticClass: \"reference-picker-modal--content\" }, [_vm.showBackButton ? _c(\"NcButton\", { staticClass: \"back-button\", attrs: { \"aria-label\": _vm.backButtonTitle, \"title\": _vm.backButtonTitle }, on: { \"click\": _vm.onBackClicked }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"ArrowLeftIcon\")];\n }, proxy: true }], null, false, 3001860362) }) : _vm._e(), _c(\"NcButton\", { staticClass: \"close-button\", attrs: { \"aria-label\": _vm.closeButtonLabel, \"title\": _vm.closeButtonTitle, \"variant\": \"tertiary\" }, on: { \"click\": _vm.onCancel }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"CloseIcon\")];\n }, proxy: true }], null, false, 2491825086) }), _vm.showModalName ? _c(\"h2\", [_vm._v(\" \" + _vm._s(_vm.modalName) + \" \")]) : _vm._e(), _c(\"NcReferencePicker\", { ref: \"referencePicker\", attrs: { \"initial-provider\": _vm.initialProvider, \"focus-on-create\": _vm.focusOnCreate }, on: { \"provider-selected\": _vm.onProviderSelect, \"submit\": _vm.onSubmit, \"cancel\": _vm.onCancel } })], 1)]) : _vm._e();\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"c66449c1\"\n);\nconst NcReferencePickerModal = __component__.exports;\nasync function getLinkWithPicker(providerId = null, isInsideViewer = void 0) {\n return await new Promise((resolve, reject) => {\n const modalId = \"referencePickerModal\";\n const modalElement = document.createElement(\"div\");\n modalElement.id = modalId;\n document.body.append(modalElement);\n const initialProvider = providerId === null ? null : getProvider(providerId) ?? null;\n const View = Vue.extend(NcReferencePickerModal);\n const view = new View({\n propsData: {\n initialProvider,\n isInsideViewer\n }\n }).$mount(modalElement);\n view.$on(\"cancel\", () => {\n view.$destroy();\n reject(new Error(\"User cancellation\"));\n });\n view.$on(\"submit\", (link) => {\n view.$destroy();\n resolve(link);\n });\n });\n}\nexport {\n NcReferenceWidget as N,\n anyLinkProviderId as a,\n getProvider as b,\n getProviders as c,\n searchProvider as d,\n NcReferencePicker as e,\n NcReferencePickerModal as f,\n getLinkWithPicker as g,\n NcSearch as h,\n sortProviders as s\n};\n//# sourceMappingURL=referencePickerModal-sscttPbK.mjs.map\n","import '../assets/NcRichText-CWVHZl8s.css';\nimport { ref } from \"vue\";\nimport { N as NcReferenceWidget } from \"./referencePickerModal-sscttPbK.mjs\";\nimport { U as URL_PATTERN, p as parseUrl, r as remarkAutolink, g as getRoute } from \"./autolink-cbuFALXr.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { getSharingToken } from \"@nextcloud/sharing/public\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch-BIEYfWtF.mjs\";\nimport { visit, SKIP as SKIP$1, EXIT as EXIT$1 } from \"unist-util-visit\";\nimport { u } from \"unist-builder\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport breaks from \"remark-breaks\";\nimport remarkUnlinkProtocols from \"remark-unlink-protocols\";\nimport remark2rehype from \"remark-rehype\";\nimport rehype2react from \"rehype-react\";\nimport rehypeExternalLinks from \"rehype-external-links\";\nimport { RouterLink } from \"vue-router\";\nconst _sfc_main$1 = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget\n },\n props: {\n text: {\n type: String,\n default: \"\"\n },\n referenceData: {\n type: Array,\n default: null\n },\n limit: {\n type: Number,\n default: 1\n },\n displayFallback: {\n type: Boolean,\n default: false\n },\n interactive: {\n type: Boolean,\n default: true\n },\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n references: null,\n loading: true\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences.length !== 0;\n },\n values() {\n if (this.referenceData) {\n return this.referenceData;\n }\n if (this.displayFallback && !this.loading && !this.references) {\n return [this.fallbackReference];\n }\n return this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n return this.values[0] ?? null;\n },\n displayedReferences() {\n return this.values.slice(0, this.limit);\n },\n fallbackReference() {\n return {\n accessible: true,\n openGraphObject: {\n id: this.text,\n link: this.text,\n name: this.text\n },\n richObjectType: \"open-graph\"\n };\n }\n },\n watch: {\n text: \"fetch\"\n },\n mounted() {\n this.fetch();\n },\n methods: {\n fetch() {\n this.loading = true;\n if (this.referenceData) {\n this.references = null;\n this.loading = false;\n return;\n }\n if (!new RegExp(URL_PATTERN).exec(this.text)) {\n this.references = null;\n this.loading = false;\n return;\n }\n this.resolve().then((response) => {\n this.references = response.data.ocs.data.references;\n this.loading = false;\n this.$emit(\"loaded\");\n }).catch((error) => {\n console.error(\"Failed to extract references\", error);\n this.loading = false;\n this.$emit(\"loaded\");\n });\n },\n resolve() {\n const match = new RegExp(URL_PATTERN).exec(this.text.trim());\n const isPublic = getCurrentUser() === null;\n if (this.limit === 1 && match) {\n return isPublic ? axios.get(generateOcsUrl(\"references/resolvePublic\") + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) : axios.get(generateOcsUrl(\"references/resolve\") + `?reference=${encodeURIComponent(match[0])}`);\n }\n return isPublic ? axios.post(generateOcsUrl(\"references/extractPublic\"), {\n text: this.text,\n resolve: true,\n limit: this.limit,\n sharingToken: getSharingToken()\n }) : axios.post(generateOcsUrl(\"references/extract\"), {\n text: this.text,\n resolve: true,\n limit: this.limit\n });\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _vm.isVisible ? _c(\"div\", { staticClass: \"widgets--list\", class: { \"icon-loading\": _vm.loading } }, _vm._l(_vm.displayedReferences, function(reference) {\n return _c(\"NcReferenceWidget\", { key: reference?.openGraphObject?.id, attrs: { \"reference\": reference, \"interactive\": _vm.interactive, \"interactive-opt-in\": _vm.interactiveOptIn } });\n }), 1) : _vm._e();\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"ffdba753\"\n);\nconst NcReferenceList = __component__$1.exports;\nconst remarkPlaceholder = function() {\n return function(ast) {\n visit(ast, (node2) => node2.type === \"text\", visitor);\n function visitor(node2, index, parent) {\n const placeholders = node2.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry, index2, list2) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return u(\"text\", entry);\n }\n const [, component] = matches;\n return u(\"element\", {\n tagName: `#${component}`\n });\n });\n parent.children.splice(index, 1, ...placeholders);\n }\n };\n};\nconst prepareTextNode = ({ h, context }, text2) => {\n if (context.autolink) {\n text2 = parseUrl(text2);\n }\n if (Array.isArray(text2)) {\n return text2.map((entry) => {\n if (typeof entry === \"string\") {\n return entry;\n }\n const { component, props } = entry;\n const componentClass = component.name === \"NcLink\" ? void 0 : \"rich-text--component\";\n return h(component, {\n props,\n class: componentClass\n });\n });\n }\n return text2;\n};\nconst remarkUnescape = function() {\n return function(tree) {\n visit(\n tree,\n (node2) => [\"text\", \"code\", \"inlineCode\"].includes(node2.type),\n (node2, index, parent) => {\n parent.children.splice(index, 1, {\n ...node2,\n value: node2.value.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n });\n return [SKIP$1, index + 1];\n }\n );\n };\n};\nfunction ccount(value, character) {\n const source = String(value);\n if (typeof character !== \"string\") {\n throw new TypeError(\"Expected character\");\n }\n let count = 0;\n let index = source.indexOf(character);\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n return count;\n}\nfunction ok$1() {\n}\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nfunction asciiControl(code2) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code2 !== null && (code2 < 32 || code2 === 127)\n );\n}\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\"));\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && code2 > -1 && regex.test(String.fromCharCode(code2));\n }\n}\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\nconst convert = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function(test) {\n if (test === null || test === void 0) {\n return ok;\n }\n if (typeof test === \"function\") {\n return castFactory(test);\n }\n if (typeof test === \"object\") {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test);\n }\n if (typeof test === \"string\") {\n return typeFactory(test);\n }\n throw new Error(\"Expected function, string, or object as test\");\n }\n);\nfunction anyFactory(tests) {\n const checks = [];\n let index = -1;\n while (++index < tests.length) {\n checks[index] = convert(tests[index]);\n }\n return castFactory(any);\n function any(...parameters) {\n let index2 = -1;\n while (++index2 < checks.length) {\n if (checks[index2].apply(this, parameters)) return true;\n }\n return false;\n }\n}\nfunction propsFactory(check) {\n const checkAsRecord = (\n /** @type {Record<string, unknown>} */\n check\n );\n return castFactory(all2);\n function all2(node2) {\n const nodeAsRecord = (\n /** @type {Record<string, unknown>} */\n /** @type {unknown} */\n node2\n );\n let key;\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false;\n }\n return true;\n }\n}\nfunction typeFactory(check) {\n return castFactory(type);\n function type(node2) {\n return node2 && node2.type === check;\n }\n}\nfunction castFactory(testFunction) {\n return check;\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) && testFunction.call(\n this,\n value,\n typeof index === \"number\" ? index : void 0,\n parent || void 0\n )\n );\n }\n}\nfunction ok() {\n return true;\n}\nfunction looksLikeANode(value) {\n return value !== null && typeof value === \"object\" && \"type\" in value;\n}\nfunction color(d) {\n return d;\n}\nconst empty = [];\nconst CONTINUE = true;\nconst EXIT = false;\nconst SKIP = \"skip\";\nfunction visitParents(tree, test, visitor, reverse) {\n let check;\n {\n check = test;\n }\n const is = convert(check);\n const step = 1;\n factory(tree, void 0, [])();\n function factory(node2, index, parents) {\n const value = (\n /** @type {Record<string, unknown>} */\n node2 && typeof node2 === \"object\" ? node2 : {}\n );\n if (typeof value.type === \"string\") {\n const name = (\n // `hast`\n typeof value.tagName === \"string\" ? value.tagName : (\n // `xast`\n typeof value.name === \"string\" ? value.name : void 0\n )\n );\n Object.defineProperty(visit2, \"name\", {\n value: \"node (\" + color(node2.type + (name ? \"<\" + name + \">\" : \"\")) + \")\"\n });\n }\n return visit2;\n function visit2() {\n let result = empty;\n let subresult;\n let offset;\n let grandparents;\n if (is(node2, index, parents[parents.length - 1] || void 0)) {\n result = toResult(visitor(node2, parents));\n if (result[0] === EXIT) {\n return result;\n }\n }\n if (\"children\" in node2 && node2.children) {\n const nodeAsParent = (\n /** @type {UnistParent} */\n node2\n );\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = -1 + step;\n grandparents = parents.concat(nodeAsParent);\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset];\n subresult = factory(child, offset, grandparents)();\n if (subresult[0] === EXIT) {\n return subresult;\n }\n offset = typeof subresult[1] === \"number\" ? subresult[1] : offset + step;\n }\n }\n }\n return result;\n }\n }\n}\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === \"number\") {\n return [CONTINUE, value];\n }\n return value === null || value === void 0 ? empty : [value];\n}\nfunction findAndReplace(tree, list2, options) {\n const settings = options || {};\n const ignored = convert(settings.ignore || []);\n const pairs = toPairs(list2);\n let pairIndex = -1;\n while (++pairIndex < pairs.length) {\n visitParents(tree, \"text\", visitor);\n }\n function visitor(node2, parents) {\n let index = -1;\n let grandparent;\n while (++index < parents.length) {\n const parent = parents[index];\n const siblings = grandparent ? grandparent.children : void 0;\n if (ignored(\n parent,\n siblings ? siblings.indexOf(parent) : void 0,\n grandparent\n )) {\n return;\n }\n grandparent = parent;\n }\n if (grandparent) {\n return handler(node2, parents);\n }\n }\n function handler(node2, parents) {\n const parent = parents[parents.length - 1];\n const find = pairs[pairIndex][0];\n const replace2 = pairs[pairIndex][1];\n let start = 0;\n const siblings = parent.children;\n const index = siblings.indexOf(node2);\n let change = false;\n let nodes = [];\n find.lastIndex = 0;\n let match = find.exec(node2.value);\n while (match) {\n const position = match.index;\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node2]\n };\n let value = replace2(...match, matchObject);\n if (typeof value === \"string\") {\n value = value.length > 0 ? { type: \"text\", value } : void 0;\n }\n if (value === false) {\n find.lastIndex = position + 1;\n } else {\n if (start !== position) {\n nodes.push({\n type: \"text\",\n value: node2.value.slice(start, position)\n });\n }\n if (Array.isArray(value)) {\n nodes.push(...value);\n } else if (value) {\n nodes.push(value);\n }\n start = position + match[0].length;\n change = true;\n }\n if (!find.global) {\n break;\n }\n match = find.exec(node2.value);\n }\n if (change) {\n if (start < node2.value.length) {\n nodes.push({ type: \"text\", value: node2.value.slice(start) });\n }\n parent.children.splice(index, 1, ...nodes);\n } else {\n nodes = [node2];\n }\n return index + nodes.length;\n }\n}\nfunction toPairs(tupleOrList) {\n const result = [];\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError(\"Expected find and replace tuple or list of tuples\");\n }\n const list2 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];\n let index = -1;\n while (++index < list2.length) {\n const tuple = list2[index];\n result.push([toExpression(tuple[0]), toFunction(tuple[1])]);\n }\n return result;\n}\nfunction toExpression(find) {\n return typeof find === \"string\" ? new RegExp(escapeStringRegexp(find), \"g\") : find;\n}\nfunction toFunction(replace2) {\n return typeof replace2 === \"function\" ? replace2 : function() {\n return replace2;\n };\n}\nconst inConstruct = \"phrasing\";\nconst notInConstruct = [\"autolink\", \"link\", \"image\", \"label\"];\nfunction gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n };\n}\nfunction gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: \"@\",\n before: \"[+\\\\-.\\\\w]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \".\",\n before: \"[Ww]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \":\",\n before: \"[ps]\",\n after: \"\\\\/\",\n inConstruct,\n notInConstruct\n }\n ]\n };\n}\nfunction enterLiteralAutolink(token) {\n this.enter({ type: \"link\", title: null, url: \"\", children: [] }, token);\n}\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token);\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"link\");\n node2.url = \"http://\" + this.sliceSerialize(token);\n}\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token);\n}\nfunction exitLiteralAutolink(token) {\n this.exit(token);\n}\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n { ignore: [\"link\", \"linkReference\"] }\n );\n}\nfunction findUrl(_, protocol, domain2, path2, match) {\n let prefix = \"\";\n if (!previous(match)) {\n return false;\n }\n if (/^w/i.test(protocol)) {\n domain2 = protocol + domain2;\n protocol = \"\";\n prefix = \"http://\";\n }\n if (!isCorrectDomain(domain2)) {\n return false;\n }\n const parts = splitUrl(domain2 + path2);\n if (!parts[0]) return false;\n const result = {\n type: \"link\",\n title: null,\n url: prefix + protocol + parts[0],\n children: [{ type: \"text\", value: protocol + parts[0] }]\n };\n if (parts[1]) {\n return [result, { type: \"text\", value: parts[1] }];\n }\n return result;\n}\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) || // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false;\n }\n return {\n type: \"link\",\n title: null,\n url: \"mailto:\" + atext + \"@\" + label,\n children: [{ type: \"text\", value: atext + \"@\" + label }]\n };\n}\nfunction isCorrectDomain(domain2) {\n const parts = domain2.split(\".\");\n if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 2]))) {\n return false;\n }\n return true;\n}\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url);\n if (!trailExec) {\n return [url, void 0];\n }\n url = url.slice(0, trailExec.index);\n let trail2 = trailExec[0];\n let closingParenIndex = trail2.indexOf(\")\");\n const openingParens = ccount(url, \"(\");\n let closingParens = ccount(url, \")\");\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail2.slice(0, closingParenIndex + 1);\n trail2 = trail2.slice(closingParenIndex + 1);\n closingParenIndex = trail2.indexOf(\")\");\n closingParens++;\n }\n return [url, trail2];\n}\nfunction previous(match, email) {\n const code2 = match.input.charCodeAt(match.index - 1);\n return (match.index === 0 || unicodeWhitespace(code2) || unicodePunctuation(code2)) && (!email || code2 !== 47);\n}\nfunction normalizeIdentifier(value) {\n return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nfootnoteReference.peek = footnoteReferencePeek;\nfunction gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n };\n}\nfunction gfmFootnoteToMarkdown() {\n return {\n // This is on by default already.\n unsafe: [{ character: \"[\", inConstruct: [\"phrasing\", \"label\", \"reference\"] }],\n handlers: { footnoteDefinition, footnoteReference }\n };\n}\nfunction enterFootnoteDefinition(token) {\n this.enter(\n { type: \"footnoteDefinition\", identifier: \"\", label: \"\", children: [] },\n token\n );\n}\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer();\n}\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume();\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"footnoteDefinition\");\n node2.label = label;\n node2.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n}\nfunction exitFootnoteDefinition(token) {\n this.exit(token);\n}\nfunction enterFootnoteCall(token) {\n this.enter({ type: \"footnoteReference\", identifier: \"\", label: \"\" }, token);\n}\nfunction enterFootnoteCallString() {\n this.buffer();\n}\nfunction exitFootnoteCallString(token) {\n const label = this.resume();\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"footnoteReference\");\n node2.label = label;\n node2.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n}\nfunction exitFootnoteCall(token) {\n this.exit(token);\n}\nfunction footnoteReference(node2, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteReference\");\n const subexit = state.enter(\"reference\");\n value += tracker.move(\n state.safe(state.associationId(node2), {\n ...tracker.current(),\n before: value,\n after: \"]\"\n })\n );\n subexit();\n exit2();\n value += tracker.move(\"]\");\n return value;\n}\nfunction footnoteReferencePeek() {\n return \"[\";\n}\nfunction footnoteDefinition(node2, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteDefinition\");\n const subexit = state.enter(\"label\");\n value += tracker.move(\n state.safe(state.associationId(node2), {\n ...tracker.current(),\n before: value,\n after: \"]\"\n })\n );\n subexit();\n value += tracker.move(\n \"]:\" + (node2.children && node2.children.length > 0 ? \" \" : \"\")\n );\n tracker.shift(4);\n value += tracker.move(\n state.indentLines(state.containerFlow(node2, tracker.current()), map$2)\n );\n exit2();\n return value;\n}\nfunction map$2(line, index, blank) {\n if (index === 0) {\n return line;\n }\n return (blank ? \"\" : \" \") + line;\n}\nconst constructsWithoutStrikethrough = [\n \"autolink\",\n \"destinationLiteral\",\n \"destinationRaw\",\n \"reference\",\n \"titleQuote\",\n \"titleApostrophe\"\n];\nhandleDelete.peek = peekDelete;\nfunction gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: [\"delete\"],\n enter: { strikethrough: enterStrikethrough },\n exit: { strikethrough: exitStrikethrough }\n };\n}\nfunction gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: \"~\",\n inConstruct: \"phrasing\",\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: { delete: handleDelete }\n };\n}\nfunction enterStrikethrough(token) {\n this.enter({ type: \"delete\", children: [] }, token);\n}\nfunction exitStrikethrough(token) {\n this.exit(token);\n}\nfunction handleDelete(node2, _, state, info) {\n const tracker = state.createTracker(info);\n const exit2 = state.enter(\"strikethrough\");\n let value = tracker.move(\"~~\");\n value += state.containerPhrasing(node2, {\n ...tracker.current(),\n before: value,\n after: \"~\"\n });\n value += tracker.move(\"~~\");\n exit2();\n return value;\n}\nfunction peekDelete() {\n return \"~\";\n}\nfunction markdownTable(table, options = {}) {\n const align = (options.align || []).concat();\n const stringLength = options.stringLength || defaultStringLength;\n const alignments = [];\n const cellMatrix = [];\n const sizeMatrix = [];\n const longestCellByColumn = [];\n let mostCellsPerRow = 0;\n let rowIndex = -1;\n while (++rowIndex < table.length) {\n const row2 = [];\n const sizes2 = [];\n let columnIndex2 = -1;\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length;\n }\n while (++columnIndex2 < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex2]);\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell);\n sizes2[columnIndex2] = size;\n if (longestCellByColumn[columnIndex2] === void 0 || size > longestCellByColumn[columnIndex2]) {\n longestCellByColumn[columnIndex2] = size;\n }\n }\n row2.push(cell);\n }\n cellMatrix[rowIndex] = row2;\n sizeMatrix[rowIndex] = sizes2;\n }\n let columnIndex = -1;\n if (typeof align === \"object\" && \"length\" in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex]);\n }\n } else {\n const code2 = toAlignment(align);\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code2;\n }\n }\n columnIndex = -1;\n const row = [];\n const sizes = [];\n while (++columnIndex < mostCellsPerRow) {\n const code2 = alignments[columnIndex];\n let before = \"\";\n let after = \"\";\n if (code2 === 99) {\n before = \":\";\n after = \":\";\n } else if (code2 === 108) {\n before = \":\";\n } else if (code2 === 114) {\n after = \":\";\n }\n let size = options.alignDelimiters === false ? 1 : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n );\n const cell = before + \"-\".repeat(size) + after;\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length;\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size;\n }\n sizes[columnIndex] = size;\n }\n row[columnIndex] = cell;\n }\n cellMatrix.splice(1, 0, row);\n sizeMatrix.splice(1, 0, sizes);\n rowIndex = -1;\n const lines = [];\n while (++rowIndex < cellMatrix.length) {\n const row2 = cellMatrix[rowIndex];\n const sizes2 = sizeMatrix[rowIndex];\n columnIndex = -1;\n const line = [];\n while (++columnIndex < mostCellsPerRow) {\n const cell = row2[columnIndex] || \"\";\n let before = \"\";\n let after = \"\";\n if (options.alignDelimiters !== false) {\n const size = longestCellByColumn[columnIndex] - (sizes2[columnIndex] || 0);\n const code2 = alignments[columnIndex];\n if (code2 === 114) {\n before = \" \".repeat(size);\n } else if (code2 === 99) {\n if (size % 2) {\n before = \" \".repeat(size / 2 + 0.5);\n after = \" \".repeat(size / 2 - 0.5);\n } else {\n before = \" \".repeat(size / 2);\n after = before;\n }\n } else {\n after = \" \".repeat(size);\n }\n }\n if (options.delimiterStart !== false && !columnIndex) {\n line.push(\"|\");\n }\n if (options.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === \"\") && (options.delimiterStart !== false || columnIndex)) {\n line.push(\" \");\n }\n if (options.alignDelimiters !== false) {\n line.push(before);\n }\n line.push(cell);\n if (options.alignDelimiters !== false) {\n line.push(after);\n }\n if (options.padding !== false) {\n line.push(\" \");\n }\n if (options.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1) {\n line.push(\"|\");\n }\n }\n lines.push(\n options.delimiterEnd === false ? line.join(\"\").replace(/ +$/, \"\") : line.join(\"\")\n );\n }\n return lines.join(\"\\n\");\n}\nfunction serialize(value) {\n return value === null || value === void 0 ? \"\" : String(value);\n}\nfunction defaultStringLength(value) {\n return value.length;\n}\nfunction toAlignment(value) {\n const code2 = typeof value === \"string\" ? value.codePointAt(0) : 0;\n return code2 === 67 || code2 === 99 ? 99 : code2 === 76 || code2 === 108 ? 108 : code2 === 82 || code2 === 114 ? 114 : 0;\n}\nfunction blockquote(node2, _, state, info) {\n const exit2 = state.enter(\"blockquote\");\n const tracker = state.createTracker(info);\n tracker.move(\"> \");\n tracker.shift(2);\n const value = state.indentLines(\n state.containerFlow(node2, tracker.current()),\n map$1\n );\n exit2();\n return value;\n}\nfunction map$1(line, _, blank) {\n return \">\" + (blank ? \"\" : \" \") + line;\n}\nfunction patternInScope(stack, pattern) {\n return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);\n}\nfunction listInScope(stack, list2, none) {\n if (typeof list2 === \"string\") {\n list2 = [list2];\n }\n if (!list2 || list2.length === 0) {\n return none;\n }\n let index = -1;\n while (++index < list2.length) {\n if (stack.includes(list2[index])) {\n return true;\n }\n }\n return false;\n}\nfunction hardBreak(_, _1, state, info) {\n let index = -1;\n while (++index < state.unsafe.length) {\n if (state.unsafe[index].character === \"\\n\" && patternInScope(state.stack, state.unsafe[index])) {\n return /[ \\t]/.test(info.before) ? \"\" : \" \";\n }\n }\n return \"\\\\\\n\";\n}\nfunction longestStreak(value, substring) {\n const source = String(value);\n let index = source.indexOf(substring);\n let expected = index;\n let count = 0;\n let max = 0;\n if (typeof substring !== \"string\") {\n throw new TypeError(\"Expected substring\");\n }\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count;\n }\n } else {\n count = 1;\n }\n expected = index + substring.length;\n index = source.indexOf(substring, expected);\n }\n return max;\n}\nfunction formatCodeAsIndented(node2, state) {\n return Boolean(\n state.options.fences === false && node2.value && // If there’s no info…\n !node2.lang && // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node2.value) && // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node2.value)\n );\n}\nfunction checkFence(state) {\n const marker = state.options.fence || \"`\";\n if (marker !== \"`\" && marker !== \"~\") {\n throw new Error(\n \"Cannot serialize code with `\" + marker + \"` for `options.fence`, expected `` ` `` or `~`\"\n );\n }\n return marker;\n}\nfunction code$1(node2, _, state, info) {\n const marker = checkFence(state);\n const raw = node2.value || \"\";\n const suffix = marker === \"`\" ? \"GraveAccent\" : \"Tilde\";\n if (formatCodeAsIndented(node2, state)) {\n const exit3 = state.enter(\"codeIndented\");\n const value2 = state.indentLines(raw, map);\n exit3();\n return value2;\n }\n const tracker = state.createTracker(info);\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3));\n const exit2 = state.enter(\"codeFenced\");\n let value = tracker.move(sequence);\n if (node2.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`);\n value += tracker.move(\n state.safe(node2.lang, {\n before: value,\n after: \" \",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n if (node2.lang && node2.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`);\n value += tracker.move(\" \");\n value += tracker.move(\n state.safe(node2.meta, {\n before: value,\n after: \"\\n\",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n value += tracker.move(\"\\n\");\n if (raw) {\n value += tracker.move(raw + \"\\n\");\n }\n value += tracker.move(sequence);\n exit2();\n return value;\n}\nfunction map(line, _, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nfunction checkQuote(state) {\n const marker = state.options.quote || '\"';\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n \"Cannot serialize title with `\" + marker + \"` for `options.quote`, expected `\\\"`, or `'`\"\n );\n }\n return marker;\n}\nfunction definition(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"definition\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"]: \");\n subexit();\n if (\n // If there’s no url, or…\n !node2.url || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \"\\n\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n exit2();\n return value;\n}\nfunction checkEmphasis(state) {\n const marker = state.options.emphasis || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize emphasis with `\" + marker + \"` for `options.emphasis`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nemphasis.peek = emphasisPeek;\nfunction emphasis(node2, _, state, info) {\n const marker = checkEmphasis(state);\n const exit2 = state.enter(\"emphasis\");\n const tracker = state.createTracker(info);\n let value = tracker.move(marker);\n value += tracker.move(\n state.containerPhrasing(node2, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n );\n value += tracker.move(marker);\n exit2();\n return value;\n}\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || \"*\";\n}\nconst emptyOptions$1 = {};\nfunction toString(value, options) {\n const settings = emptyOptions$1;\n const includeImageAlt = typeof settings.includeImageAlt === \"boolean\" ? settings.includeImageAlt : true;\n const includeHtml = typeof settings.includeHtml === \"boolean\" ? settings.includeHtml : true;\n return one(value, includeImageAlt, includeHtml);\n}\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if (\"value\" in value) {\n return value.type === \"html\" && !includeHtml ? \"\" : value.value;\n }\n if (includeImageAlt && \"alt\" in value && value.alt) {\n return value.alt;\n }\n if (\"children\" in value) {\n return all(value.children, includeImageAlt, includeHtml);\n }\n }\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml);\n }\n return \"\";\n}\nfunction all(values, includeImageAlt, includeHtml) {\n const result = [];\n let index = -1;\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml);\n }\n return result.join(\"\");\n}\nfunction node(value) {\n return Boolean(value && typeof value === \"object\");\n}\nfunction formatHeadingAsSetext(node2, state) {\n let literalWithBreak = false;\n visit(node2, function(node3) {\n if (\"value\" in node3 && /\\r?\\n|\\r/.test(node3.value) || node3.type === \"break\") {\n literalWithBreak = true;\n return EXIT$1;\n }\n });\n return Boolean(\n (!node2.depth || node2.depth < 3) && toString(node2) && (state.options.setext || literalWithBreak)\n );\n}\nfunction heading(node2, _, state, info) {\n const rank = Math.max(Math.min(6, node2.depth || 1), 1);\n const tracker = state.createTracker(info);\n if (formatHeadingAsSetext(node2, state)) {\n const exit3 = state.enter(\"headingSetext\");\n const subexit2 = state.enter(\"phrasing\");\n const value2 = state.containerPhrasing(node2, {\n ...tracker.current(),\n before: \"\\n\",\n after: \"\\n\"\n });\n subexit2();\n exit3();\n return value2 + \"\\n\" + (rank === 1 ? \"=\" : \"-\").repeat(\n // The whole size…\n value2.length - // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value2.lastIndexOf(\"\\r\"), value2.lastIndexOf(\"\\n\")) + 1)\n );\n }\n const sequence = \"#\".repeat(rank);\n const exit2 = state.enter(\"headingAtx\");\n const subexit = state.enter(\"phrasing\");\n tracker.move(sequence + \" \");\n let value = state.containerPhrasing(node2, {\n before: \"# \",\n after: \"\\n\",\n ...tracker.current()\n });\n if (/^[\\t ]/.test(value)) {\n value = \"&#x\" + value.charCodeAt(0).toString(16).toUpperCase() + \";\" + value.slice(1);\n }\n value = value ? sequence + \" \" + value : sequence;\n if (state.options.closeAtx) {\n value += \" \" + sequence;\n }\n subexit();\n exit2();\n return value;\n}\nhtml.peek = htmlPeek;\nfunction html(node2) {\n return node2.value || \"\";\n}\nfunction htmlPeek() {\n return \"<\";\n}\nimage.peek = imagePeek;\nfunction image(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"image\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n value += tracker.move(\n state.safe(node2.alt, { before: value, after: \"]\", ...tracker.current() })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node2.url && node2.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction imagePeek() {\n return \"!\";\n}\nimageReference.peek = imageReferencePeek;\nfunction imageReference(node2, _, state, info) {\n const type = node2.referenceType;\n const exit2 = state.enter(\"imageReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n const alt = state.safe(node2.alt, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(alt + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !alt || alt !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction imageReferencePeek() {\n return \"!\";\n}\ninlineCode.peek = inlineCodePeek;\nfunction inlineCode(node2, _, state) {\n let value = node2.value || \"\";\n let sequence = \"`\";\n let index = -1;\n while (new RegExp(\"(^|[^`])\" + sequence + \"([^`]|$)\").test(value)) {\n sequence += \"`\";\n }\n if (/[^ \\r\\n]/.test(value) && (/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value) || /^`|`$/.test(value))) {\n value = \" \" + value + \" \";\n }\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index];\n const expression = state.compilePattern(pattern);\n let match;\n if (!pattern.atBreak) continue;\n while (match = expression.exec(value)) {\n let position = match.index;\n if (value.charCodeAt(position) === 10 && value.charCodeAt(position - 1) === 13) {\n position--;\n }\n value = value.slice(0, position) + \" \" + value.slice(match.index + 1);\n }\n }\n return sequence + value + sequence;\n}\nfunction inlineCodePeek() {\n return \"`\";\n}\nfunction formatLinkAsAutolink(node2, state) {\n const raw = toString(node2);\n return Boolean(\n !state.options.resourceLink && // If there’s a url…\n node2.url && // And there’s a no title…\n !node2.title && // And the content of `node` is a single text node…\n node2.children && node2.children.length === 1 && node2.children[0].type === \"text\" && // And if the url is the same as the content…\n (raw === node2.url || \"mailto:\" + raw === node2.url) && // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node2.url) && // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node2.url)\n );\n}\nlink.peek = linkPeek;\nfunction link(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const tracker = state.createTracker(info);\n let exit2;\n let subexit;\n if (formatLinkAsAutolink(node2, state)) {\n const stack = state.stack;\n state.stack = [];\n exit2 = state.enter(\"autolink\");\n let value2 = tracker.move(\"<\");\n value2 += tracker.move(\n state.containerPhrasing(node2, {\n before: value2,\n after: \">\",\n ...tracker.current()\n })\n );\n value2 += tracker.move(\">\");\n exit2();\n state.stack = stack;\n return value2;\n }\n exit2 = state.enter(\"link\");\n subexit = state.enter(\"label\");\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.containerPhrasing(node2, {\n before: value,\n after: \"](\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node2.url && node2.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction linkPeek(node2, _, state) {\n return formatLinkAsAutolink(node2, state) ? \"<\" : \"[\";\n}\nlinkReference.peek = linkReferencePeek;\nfunction linkReference(node2, _, state, info) {\n const type = node2.referenceType;\n const exit2 = state.enter(\"linkReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n const text2 = state.containerPhrasing(node2, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(text2 + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !text2 || text2 !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction linkReferencePeek() {\n return \"[\";\n}\nfunction checkBullet(state) {\n const marker = state.options.bullet || \"*\";\n if (marker !== \"*\" && marker !== \"+\" && marker !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bullet`, expected `*`, `+`, or `-`\"\n );\n }\n return marker;\n}\nfunction checkBulletOther(state) {\n const bullet = checkBullet(state);\n const bulletOther = state.options.bulletOther;\n if (!bulletOther) {\n return bullet === \"*\" ? \"-\" : \"*\";\n }\n if (bulletOther !== \"*\" && bulletOther !== \"+\" && bulletOther !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + bulletOther + \"` for `options.bulletOther`, expected `*`, `+`, or `-`\"\n );\n }\n if (bulletOther === bullet) {\n throw new Error(\n \"Expected `bullet` (`\" + bullet + \"`) and `bulletOther` (`\" + bulletOther + \"`) to be different\"\n );\n }\n return bulletOther;\n}\nfunction checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || \".\";\n if (marker !== \".\" && marker !== \")\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bulletOrdered`, expected `.` or `)`\"\n );\n }\n return marker;\n}\nfunction checkRule(state) {\n const marker = state.options.rule || \"*\";\n if (marker !== \"*\" && marker !== \"-\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize rules with `\" + marker + \"` for `options.rule`, expected `*`, `-`, or `_`\"\n );\n }\n return marker;\n}\nfunction list(node2, parent, state, info) {\n const exit2 = state.enter(\"list\");\n const bulletCurrent = state.bulletCurrent;\n let bullet = node2.ordered ? checkBulletOrdered(state) : checkBullet(state);\n const bulletOther = node2.ordered ? bullet === \".\" ? \")\" : \".\" : checkBulletOther(state);\n let useDifferentMarker = parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false;\n if (!node2.ordered) {\n const firstListItem = node2.children ? node2.children[0] : void 0;\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === \"*\" || bullet === \"-\") && // Empty first list item:\n firstListItem && (!firstListItem.children || !firstListItem.children[0]) && // Directly in two other list items:\n state.stack[state.stack.length - 1] === \"list\" && state.stack[state.stack.length - 2] === \"listItem\" && state.stack[state.stack.length - 3] === \"list\" && state.stack[state.stack.length - 4] === \"listItem\" && // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 && state.indexStack[state.indexStack.length - 2] === 0 && state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true;\n }\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1;\n while (++index < node2.children.length) {\n const item = node2.children[index];\n if (item && item.type === \"listItem\" && item.children && item.children[0] && item.children[0].type === \"thematicBreak\") {\n useDifferentMarker = true;\n break;\n }\n }\n }\n }\n if (useDifferentMarker) {\n bullet = bulletOther;\n }\n state.bulletCurrent = bullet;\n const value = state.containerFlow(node2, info);\n state.bulletLastUsed = bullet;\n state.bulletCurrent = bulletCurrent;\n exit2();\n return value;\n}\nfunction checkListItemIndent(state) {\n const style = state.options.listItemIndent || \"one\";\n if (style !== \"tab\" && style !== \"one\" && style !== \"mixed\") {\n throw new Error(\n \"Cannot serialize items with `\" + style + \"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`\"\n );\n }\n return style;\n}\nfunction listItem(node2, parent, state, info) {\n const listItemIndent = checkListItemIndent(state);\n let bullet = state.bulletCurrent || checkBullet(state);\n if (parent && parent.type === \"list\" && parent.ordered) {\n bullet = (typeof parent.start === \"number\" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node2)) + bullet;\n }\n let size = bullet.length + 1;\n if (listItemIndent === \"tab\" || listItemIndent === \"mixed\" && (parent && parent.type === \"list\" && parent.spread || node2.spread)) {\n size = Math.ceil(size / 4) * 4;\n }\n const tracker = state.createTracker(info);\n tracker.move(bullet + \" \".repeat(size - bullet.length));\n tracker.shift(size);\n const exit2 = state.enter(\"listItem\");\n const value = state.indentLines(\n state.containerFlow(node2, tracker.current()),\n map2\n );\n exit2();\n return value;\n function map2(line, index, blank) {\n if (index) {\n return (blank ? \"\" : \" \".repeat(size)) + line;\n }\n return (blank ? bullet : bullet + \" \".repeat(size - bullet.length)) + line;\n }\n}\nfunction paragraph(node2, _, state, info) {\n const exit2 = state.enter(\"paragraph\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node2, info);\n subexit();\n exit2();\n return value;\n}\nconst phrasing = (\n /** @type {(node?: unknown) => node is Exclude<PhrasingContent, Html>} */\n convert([\n \"break\",\n \"delete\",\n \"emphasis\",\n // To do: next major: removed since footnotes were added to GFM.\n \"footnote\",\n \"footnoteReference\",\n \"image\",\n \"imageReference\",\n \"inlineCode\",\n // Enabled by `mdast-util-math`:\n \"inlineMath\",\n \"link\",\n \"linkReference\",\n // Enabled by `mdast-util-mdx`:\n \"mdxJsxTextElement\",\n // Enabled by `mdast-util-mdx`:\n \"mdxTextExpression\",\n \"strong\",\n \"text\",\n // Enabled by `mdast-util-directive`:\n \"textDirective\"\n ])\n);\nfunction root(node2, _, state, info) {\n const hasPhrasing = node2.children.some(function(d) {\n return phrasing(d);\n });\n const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow;\n return fn.call(state, node2, info);\n}\nfunction checkStrong(state) {\n const marker = state.options.strong || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize strong with `\" + marker + \"` for `options.strong`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nstrong.peek = strongPeek;\nfunction strong(node2, _, state, info) {\n const marker = checkStrong(state);\n const exit2 = state.enter(\"strong\");\n const tracker = state.createTracker(info);\n let value = tracker.move(marker + marker);\n value += tracker.move(\n state.containerPhrasing(node2, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n );\n value += tracker.move(marker + marker);\n exit2();\n return value;\n}\nfunction strongPeek(_, _1, state) {\n return state.options.strong || \"*\";\n}\nfunction text$1(node2, _, state, info) {\n return state.safe(node2.value, info);\n}\nfunction checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3;\n if (repetition < 3) {\n throw new Error(\n \"Cannot serialize rules with repetition `\" + repetition + \"` for `options.ruleRepetition`, expected `3` or more\"\n );\n }\n return repetition;\n}\nfunction thematicBreak(_, _1, state) {\n const value = (checkRule(state) + (state.options.ruleSpaces ? \" \" : \"\")).repeat(checkRuleRepetition(state));\n return state.options.ruleSpaces ? value.slice(0, -1) : value;\n}\nconst handle = {\n blockquote,\n break: hardBreak,\n code: code$1,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text: text$1,\n thematicBreak\n};\nfunction gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n };\n}\nfunction enterTable(token) {\n const align = token._align;\n this.enter(\n {\n type: \"table\",\n align: align.map(function(d) {\n return d === \"none\" ? null : d;\n }),\n children: []\n },\n token\n );\n this.data.inTable = true;\n}\nfunction exitTable(token) {\n this.exit(token);\n this.data.inTable = void 0;\n}\nfunction enterRow(token) {\n this.enter({ type: \"tableRow\", children: [] }, token);\n}\nfunction exit(token) {\n this.exit(token);\n}\nfunction enterCell(token) {\n this.enter({ type: \"tableCell\", children: [] }, token);\n}\nfunction exitCodeText(token) {\n let value = this.resume();\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"inlineCode\");\n node2.value = value;\n this.exit(token);\n}\nfunction replace($0, $1) {\n return $1 === \"|\" ? $1 : $0;\n}\nfunction gfmTableToMarkdown(options) {\n const settings = options || {};\n const padding = settings.tableCellPadding;\n const alignDelimiters = settings.tablePipeAlign;\n const stringLength = settings.stringLength;\n const around = padding ? \" \" : \"|\";\n return {\n unsafe: [\n { character: \"\\r\", inConstruct: \"tableCell\" },\n { character: \"\\n\", inConstruct: \"tableCell\" },\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n { atBreak: true, character: \"|\", after: \"[\t :-]\" },\n // A pipe in a cell must be encoded.\n { character: \"|\", inConstruct: \"tableCell\" },\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n { atBreak: true, character: \":\", after: \"-\" },\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n { atBreak: true, character: \"-\", after: \"[:|-]\" }\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n };\n function handleTable(node2, _, state, info) {\n return serializeData(handleTableAsData(node2, state, info), node2.align);\n }\n function handleTableRow(node2, _, state, info) {\n const row = handleTableRowAsData(node2, state, info);\n const value = serializeData([row]);\n return value.slice(0, value.indexOf(\"\\n\"));\n }\n function handleTableCell(node2, _, state, info) {\n const exit2 = state.enter(\"tableCell\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node2, {\n ...info,\n before: around,\n after: around\n });\n subexit();\n exit2();\n return value;\n }\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n });\n }\n function handleTableAsData(node2, state, info) {\n const children = node2.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"table\");\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info);\n }\n subexit();\n return result;\n }\n function handleTableRowAsData(node2, state, info) {\n const children = node2.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"tableRow\");\n while (++index < children.length) {\n result[index] = handleTableCell(children[index], node2, state, info);\n }\n subexit();\n return result;\n }\n function inlineCodeWithTable(node2, parent, state) {\n let value = handle.inlineCode(node2, parent, state);\n if (state.stack.includes(\"tableCell\")) {\n value = value.replace(/\\|/g, \"\\\\$&\");\n }\n return value;\n }\n}\nfunction gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n };\n}\nfunction gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{ atBreak: true, character: \"-\", after: \"[:|-]\" }],\n handlers: { listItem: listItemWithTaskListItem }\n };\n}\nfunction exitCheck(token) {\n const node2 = this.stack[this.stack.length - 2];\n ok$1(node2.type === \"listItem\");\n node2.checked = token.type === \"taskListCheckValueChecked\";\n}\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2];\n if (parent && parent.type === \"listItem\" && typeof parent.checked === \"boolean\") {\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"paragraph\");\n const head = node2.children[0];\n if (head && head.type === \"text\") {\n const siblings = parent.children;\n let index = -1;\n let firstParaghraph;\n while (++index < siblings.length) {\n const sibling = siblings[index];\n if (sibling.type === \"paragraph\") {\n firstParaghraph = sibling;\n break;\n }\n }\n if (firstParaghraph === node2) {\n head.value = head.value.slice(1);\n if (head.value.length === 0) {\n node2.children.shift();\n } else if (node2.position && head.position && typeof head.position.start.offset === \"number\") {\n head.position.start.column++;\n head.position.start.offset++;\n node2.position.start = Object.assign({}, head.position.start);\n }\n }\n }\n }\n this.exit(token);\n}\nfunction listItemWithTaskListItem(node2, parent, state, info) {\n const head = node2.children[0];\n const checkable = typeof node2.checked === \"boolean\" && head && head.type === \"paragraph\";\n const checkbox = \"[\" + (node2.checked ? \"x\" : \" \") + \"] \";\n const tracker = state.createTracker(info);\n if (checkable) {\n tracker.move(checkbox);\n }\n let value = handle.listItem(node2, parent, state, {\n ...info,\n ...tracker.current()\n });\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check);\n }\n return value;\n function check($0) {\n return $0 + checkbox;\n }\n}\nfunction gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ];\n}\nfunction gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n };\n}\nfunction splice(list2, start, remove, items) {\n const end = list2.length;\n let chunkStart = 0;\n let parameters;\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n if (items.length < 1e4) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n list2.splice(...parameters);\n } else {\n if (remove) list2.splice(start, remove);\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 1e4);\n parameters.unshift(start, 0);\n list2.splice(...parameters);\n chunkStart += 1e4;\n start += 1e4;\n }\n }\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n const all2 = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all2, extensions[index]);\n }\n return all2;\n}\nfunction syntaxExtension(all2, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all2, hook) ? all2[hook] : void 0;\n const left = maybe || (all2[hook] = {});\n const right = extension[hook];\n let code2;\n if (right) {\n for (code2 in right) {\n if (!hasOwnProperty.call(left, code2)) left[code2] = [];\n const value = right[code2];\n constructs(\n // @ts-expect-error Looks like a list.\n left[code2],\n Array.isArray(value) ? value : value ? [value] : []\n );\n }\n }\n }\n}\nfunction constructs(existing, list2) {\n let index = -1;\n const before = [];\n while (++index < list2.length) {\n (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n }\n splice(existing, 0, 0, before);\n}\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\nconst text = {};\nfunction gfmAutolinkLiteral() {\n return {\n text\n };\n}\nlet code = 48;\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;\n else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok2, nok) {\n const self = this;\n let dot;\n let data;\n return start;\n function start(code2) {\n if (!gfmAtext(code2) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code2);\n }\n function atext(code2) {\n if (gfmAtext(code2)) {\n effects.consume(code2);\n return atext;\n }\n if (code2 === 64) {\n effects.consume(code2);\n return emailDomain;\n }\n return nok(code2);\n }\n function emailDomain(code2) {\n if (code2 === 46) {\n return effects.check(\n emailDomainDotTrail,\n emailDomainAfter,\n emailDomainDot\n )(code2);\n }\n if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n data = true;\n effects.consume(code2);\n return emailDomain;\n }\n return emailDomainAfter(code2);\n }\n function emailDomainDot(code2) {\n effects.consume(code2);\n dot = true;\n return emailDomain;\n }\n function emailDomainAfter(code2) {\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeWwwAutolink(effects, ok2, nok) {\n const self = this;\n return wwwStart;\n function wwwStart(code2) {\n if (code2 !== 87 && code2 !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n return effects.check(\n wwwPrefix,\n effects.attempt(domain, effects.attempt(path, wwwAfter), nok),\n nok\n )(code2);\n }\n function wwwAfter(code2) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeProtocolAutolink(effects, ok2, nok) {\n const self = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n function protocolStart(code2) {\n if ((code2 === 72 || code2 === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n return nok(code2);\n }\n function protocolPrefixInside(code2) {\n if (asciiAlpha(code2) && buffer.length < 5) {\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n if (code2 === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code2);\n return protocolSlashesInside;\n }\n }\n return nok(code2);\n }\n function protocolSlashesInside(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code2);\n }\n function afterProtocol(code2) {\n return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n }\n function protocolAfter(code2) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeWwwPrefix(effects, ok2, nok) {\n let size = 0;\n return wwwPrefixInside;\n function wwwPrefixInside(code2) {\n if ((code2 === 87 || code2 === 119) && size < 3) {\n size++;\n effects.consume(code2);\n return wwwPrefixInside;\n }\n if (code2 === 46 && size === 3) {\n effects.consume(code2);\n return wwwPrefixAfter;\n }\n return nok(code2);\n }\n function wwwPrefixAfter(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction tokenizeDomain(effects, ok2, nok) {\n let underscoreInLastSegment;\n let underscoreInLastLastSegment;\n let seen;\n return domainInside;\n function domainInside(code2) {\n if (code2 === 46 || code2 === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n return domainAfter(code2);\n }\n seen = true;\n effects.consume(code2);\n return domainInside;\n }\n function domainAtPunctuation(code2) {\n if (code2 === 95) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = void 0;\n }\n effects.consume(code2);\n return domainInside;\n }\n function domainAfter(code2) {\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code2);\n }\n return ok2(code2);\n }\n}\nfunction tokenizePath(effects, ok2) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n function pathInside(code2) {\n if (code2 === 40) {\n sizeOpen++;\n effects.consume(code2);\n return pathInside;\n }\n if (code2 === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code2);\n }\n if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n return effects.check(trail, ok2, pathAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n effects.consume(code2);\n return pathInside;\n }\n function pathAtPunctuation(code2) {\n if (code2 === 41) {\n sizeClose++;\n }\n effects.consume(code2);\n return pathInside;\n }\n}\nfunction tokenizeTrail(effects, ok2, nok) {\n return trail2;\n function trail2(code2) {\n if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n effects.consume(code2);\n return trail2;\n }\n if (code2 === 38) {\n effects.consume(code2);\n return trailCharRefStart;\n }\n if (code2 === 93) {\n effects.consume(code2);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code2 === 60 || // So is whitespace.\n code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)\n ) {\n return ok2(code2);\n }\n return nok(code2);\n }\n function trailBracketAfter(code2) {\n if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n return trail2(code2);\n }\n function trailCharRefStart(code2) {\n return asciiAlpha(code2) ? trailCharRefInside(code2) : nok(code2);\n }\n function trailCharRefInside(code2) {\n if (code2 === 59) {\n effects.consume(code2);\n return trail2;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return trailCharRefInside;\n }\n return nok(code2);\n }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok2, nok) {\n return start;\n function start(code2) {\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n return asciiAlphanumeric(code2) ? nok(code2) : ok2(code2);\n }\n}\nfunction previousWww(code2) {\n return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\nfunction classifyCharacter(code2) {\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return 1;\n }\n if (unicodePunctuation(code2)) {\n return 2;\n }\n}\nfunction resolveAll(constructs2, events, context) {\n const called = [];\n let index = -1;\n while (++index < constructs2.length) {\n const resolve = constructs2[index].resolveAll;\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n return events;\n}\nfunction factorySpace(effects, ok2, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n function start(code2) {\n if (markdownSpace(code2)) {\n effects.enter(type);\n return prefix(code2);\n }\n return ok2(code2);\n }\n function prefix(code2) {\n if (markdownSpace(code2) && size++ < limit) {\n effects.consume(code2);\n return prefix;\n }\n effects.exit(type);\n return ok2(code2);\n }\n}\nconst blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n};\nfunction tokenizeBlankLine(effects, ok2, nok) {\n return start;\n function start(code2) {\n return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n }\n function after(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok2(code2) : nok(code2);\n }\n}\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\nfunction gfmFootnote() {\n return {\n document: {\n [91]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let labelStart;\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code2);\n }\n const id = normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n );\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok2(code2);\n }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n events[index][1];\n break;\n }\n }\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: \"chunkString\",\n contentType: \"string\",\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n [\"enter\", call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n [\"enter\", marker, context],\n [\"exit\", marker, context],\n // Everything in between.\n [\"enter\", string, context],\n [\"enter\", chunk, context],\n [\"exit\", chunk, context],\n [\"exit\", string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n [\"exit\", call, context]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n function callStart(code2) {\n if (code2 !== 94) return nok(code2);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n function callData(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok2;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? callEscape : callData;\n }\n function callEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return callData;\n }\n return callData(code2);\n }\n}\nfunction tokenizeDefinitionStart(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let identifier;\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n function labelAtMarker(code2) {\n if (code2 === 94) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code2);\n }\n function labelInside(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return labelInside;\n }\n return labelInside(code2);\n }\n function labelAfter(code2) {\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return factorySpace(\n effects,\n whitespaceAfter,\n \"gfmFootnoteDefinitionWhitespace\"\n );\n }\n return nok(code2);\n }\n function whitespaceAfter(code2) {\n return ok2(code2);\n }\n}\nfunction tokenizeDefinitionContinuation(effects, ok2, nok) {\n return effects.check(blankLine, ok2, effects.attempt(indent, ok2, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok2, nok) {\n const self = this;\n return factorySpace(\n effects,\n afterPrefix,\n \"gfmFootnoteDefinitionIndent\",\n 4 + 1\n );\n function afterPrefix(code2) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok2(code2) : nok(code2);\n }\n}\nfunction gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === void 0) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n const text2 = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n const nextEvents = [\n [\"enter\", strikethrough, context],\n [\"enter\", events[open][1], context],\n [\"exit\", events[open][1], context],\n [\"enter\", text2, context]\n ];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(insideSpan, events.slice(open + 1, index), context)\n );\n }\n splice(nextEvents, nextEvents.length, 0, [\n [\"exit\", text2, context],\n [\"enter\", events[index][1], context],\n [\"exit\", events[index][1], context],\n [\"exit\", strikethrough, context]\n ]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n function tokenizeStrikethrough(effects, ok2, nok) {\n const previous2 = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n function start(code2) {\n if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code2);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code2);\n }\n function more(code2) {\n const before = classifyCharacter(previous2);\n if (code2 === 126) {\n if (size > 1) return nok(code2);\n effects.consume(code2);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code2);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = classifyCharacter(code2);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok2(code2);\n }\n }\n}\nclass EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n this.map = [];\n }\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImpl(this, index, remove, add);\n }\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array<Event>} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImpl(this, index, remove, add, true)\n // }\n /**\n * Done, change the events.\n *\n * @param {Array<Event>} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function(a, b) {\n return a[0] - b[0];\n });\n if (this.map.length === 0) {\n return;\n }\n let index = this.map.length;\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(\n events.slice(this.map[index][0] + this.map[index][1]),\n this.map[index][2]\n );\n events.length = this.map[index][0];\n }\n vecs.push([...events]);\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n events.push(...slice);\n slice = vecs.pop();\n }\n this.map.length = 0;\n }\n}\nfunction addImpl(editMap, at, remove, add) {\n let index = 0;\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n editMap.map[index][2].push(...add);\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\nfunction gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n if (event[1].type === \"tableContent\") {\n align.push(\n events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\"\n );\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\nfunction gfmTable() {\n return {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\nfunction tokenizeTable(effects, ok2, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n let seen;\n return start;\n function start(code2) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" || // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\")\n index--;\n else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n return next(code2);\n }\n function headRowBefore(code2) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code2);\n }\n function headRowStart(code2) {\n if (code2 === 124) {\n return headRowBreak(code2);\n }\n seen = true;\n sizeB += 1;\n return headRowBreak(code2);\n }\n function headRowBreak(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n if (sizeB > 1) {\n sizeB = 0;\n self.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n return nok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n size += 1;\n }\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n seen = true;\n return headRowBreak;\n }\n effects.enter(\"data\");\n return headRowData(code2);\n }\n function headRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return headRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? headRowEscape : headRowData;\n }\n function headRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return headRowData;\n }\n return headRowData(code2);\n }\n function headDelimiterStart(code2) {\n self.interrupt = false;\n if (self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n effects.enter(\"tableDelimiterRow\");\n seen = false;\n if (markdownSpace(code2)) {\n return factorySpace(\n effects,\n headDelimiterBefore,\n \"linePrefix\",\n self.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2);\n }\n return headDelimiterBefore(code2);\n }\n function headDelimiterBefore(code2) {\n if (code2 === 45 || code2 === 58) {\n return headDelimiterValueBefore(code2);\n }\n if (code2 === 124) {\n seen = true;\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterCellBefore(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n }\n return headDelimiterValueBefore(code2);\n }\n function headDelimiterValueBefore(code2) {\n if (code2 === 58) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n if (code2 === 45) {\n sizeB += 1;\n return headDelimiterLeftAlignmentAfter(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return headDelimiterCellAfter(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterLeftAlignmentAfter(code2) {\n if (code2 === 45) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterFiller(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return headDelimiterFiller;\n }\n if (code2 === 58) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code2);\n }\n function headDelimiterRightAlignmentAfter(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n }\n return headDelimiterCellAfter(code2);\n }\n function headDelimiterCellAfter(code2) {\n if (code2 === 124) {\n return headDelimiterBefore(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code2);\n }\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n return ok2(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterNok(code2) {\n return nok(code2);\n }\n function bodyRowStart(code2) {\n effects.enter(\"tableRow\");\n return bodyRowBreak(code2);\n }\n function bodyRowBreak(code2) {\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"tableRow\");\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n }\n effects.enter(\"data\");\n return bodyRowData(code2);\n }\n function bodyRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return bodyRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? bodyRowEscape : bodyRowData;\n }\n function bodyRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return bodyRowData;\n }\n return bodyRowData(code2);\n }\n}\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n let rowKind = 0;\n let lastCell = [0, 0, 0, 0];\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n let currentTable;\n let currentBody;\n let currentCell;\n const map2 = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n currentBody = void 0;\n lastTableEnd = 0;\n }\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentTable, context]]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = void 0;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentBody, context]]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map2,\n context,\n lastCell,\n rowKind,\n void 0,\n currentCell\n );\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map2,\n context,\n lastCell,\n rowKind,\n void 0,\n currentCell\n );\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map2,\n context,\n lastCell,\n rowKind,\n index,\n currentCell\n );\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map2, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n }\n map2.consume(context.events);\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\nfunction flushCell(map2, context, range, rowKind, rowEnd, previousCell) {\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n const valueName = \"tableContent\";\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map2.add(range[0], 0, [[\"exit\", previousCell, context]]);\n }\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map2.add(range[1], 0, [[\"enter\", previousCell, context]]);\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map2.add(range[2], 0, [[\"enter\", valueToken, context]]);\n if (rowKind !== 2) {\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map2.add(a, b, []);\n }\n }\n map2.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n }\n if (rowEnd !== void 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map2.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n previousCell = void 0;\n }\n return previousCell;\n}\nfunction flushTableEnd(map2, context, index, table, tableBody) {\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\"exit\", tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push([\"exit\", table, context]);\n map2.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n};\nfunction gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\nfunction tokenizeTasklistCheck(effects, ok2, nok) {\n const self = this;\n return open;\n function open(code2) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code2);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n function inside(code2) {\n if (markdownLineEndingOrSpace(code2)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code2);\n }\n function close(code2) {\n if (code2 === 93) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok2,\n nok\n )(code2);\n }\n return nok(code2);\n }\n}\nfunction spaceThenNonSpace(effects, ok2, nok) {\n return factorySpace(effects, after, \"whitespace\");\n function after(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ]);\n}\nconst emptyOptions = {};\nfunction remarkGfm(options) {\n const self = (\n /** @type {Processor<Root>} */\n this\n );\n const settings = options || emptyOptions;\n const data = self.data();\n const micromarkExtensions = data.micromarkExtensions || (data.micromarkExtensions = []);\n const fromMarkdownExtensions = data.fromMarkdownExtensions || (data.fromMarkdownExtensions = []);\n const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);\n micromarkExtensions.push(gfm(settings));\n fromMarkdownExtensions.push(gfmFromMarkdown());\n toMarkdownExtensions.push(gfmToMarkdown(settings));\n}\nconst LINK_PROTOCOLS = [\"http\", \"https\", \"mailto\", \"tel\"];\nconst rehypeHighlight = ref(null);\nasync function importRehypeHighlightLibrary() {\n const module = await import(\"rehype-highlight\");\n rehypeHighlight.value = module.default;\n}\nconst _sfc_main = {\n name: \"NcRichText\",\n components: {\n NcReferenceList\n },\n props: {\n text: {\n type: String,\n default: \"\"\n },\n arguments: {\n type: Object,\n default: () => {\n return {};\n }\n },\n referenceLimit: {\n type: Number,\n default: 0\n },\n referenceInteractive: {\n type: Boolean,\n default: true\n },\n referenceInteractiveOptIn: {\n type: Boolean,\n default: false\n },\n /** Provide data upfront to avoid extra http request */\n references: {\n type: Array,\n default: null\n },\n /** Provide basic Markdown syntax */\n useMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide GitHub Flavored Markdown syntax */\n useExtendedMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide event from rendered markdown inputs */\n interactive: {\n type: Boolean,\n default: false\n },\n autolink: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"interact-todo\",\n \"interact:todo\"\n ],\n data() {\n return {\n parentId: GenRandomId(5)\n };\n },\n methods: {\n renderPlaintext(h) {\n const context = this;\n const placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map(function(entry, index, list2) {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return prepareTextNode({ h, context }, entry);\n }\n const argumentId = matches[1];\n const argument = context.arguments[argumentId];\n if (typeof argument === \"object\") {\n const { component, props } = argument;\n return h(component, {\n props,\n class: \"rich-text--component\"\n });\n }\n if (argument) {\n return h(\"span\", { class: \"rich-text--fallback\" }, argument);\n }\n return entry;\n });\n return h(\"div\", { class: \"rich-text--wrapper\" }, [\n h(\"div\", {}, placeholders.flat()),\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n props: {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n }\n })\n ]) : null\n ]);\n },\n renderMarkdown(h) {\n const renderedMarkdown = unified().use(remarkParse).use(remarkAutolink, {\n autolink: this.autolink,\n useMarkdown: this.useMarkdown,\n useExtendedMarkdown: this.useExtendedMarkdown\n }).use(remarkUnescape).use(this.useExtendedMarkdown ? remarkGfm : void 0).use(breaks).use(remarkUnlinkProtocols, { except: LINK_PROTOCOLS }).use(remark2rehype, {\n handlers: {\n component(toHast, node2) {\n return toHast(node2, node2.component, { value: node2.value });\n }\n }\n }).use(this.useExtendedMarkdown ? rehypeHighlight.value : void 0).use(remarkPlaceholder).use(rehypeExternalLinks, {\n target: \"_blank\",\n rel: [\"noopener noreferrer\"]\n }).use(rehype2react, {\n createElement: (tag, attrs, children) => {\n if (!tag.startsWith(\"#\")) {\n if (this.useExtendedMarkdown) {\n if (tag === \"code\" && !rehypeHighlight.value && attrs?.attrs?.class?.includes(\"language\")) {\n importRehypeHighlightLibrary();\n }\n let nestedNode = null;\n if (tag === \"li\" && Array.isArray(children) && children[0].tag === \"input\" && children[0].data.attrs.type === \"checkbox\") {\n const [inputNode, ...labelParts] = children;\n const nestedNodeIndex = labelParts.findIndex((child) => [\"ul\", \"ol\", \"li\", \"blockquote\", \"pre\"].includes(child.tag));\n if (nestedNodeIndex !== -1) {\n nestedNode = labelParts[nestedNodeIndex];\n labelParts.splice(nestedNodeIndex);\n }\n const id = this.parentId + \"-markdown-input-\" + GenRandomId(5);\n const inputComponent = h(NcCheckboxRadioSwitch, {\n attrs: {\n ...inputNode.data.attrs,\n id,\n disabled: !this.interactive\n },\n on: {\n \"update:checked\": () => {\n this.$emit(\"interact-todo\", id);\n this.$emit(\"interact:todo\", id);\n }\n }\n }, labelParts);\n return h(tag, attrs, [inputComponent, nestedNode]);\n }\n }\n if (tag === \"a\") {\n const route = getRoute(this.$router, attrs.attrs.href);\n if (route) {\n delete attrs.attrs.href;\n delete attrs.attrs.target;\n return h(RouterLink, {\n ...attrs,\n props: {\n to: route\n }\n }, children);\n }\n }\n return h(tag, attrs, children);\n }\n const placeholder = this.arguments[tag.slice(1)];\n if (!placeholder) {\n return h(\"span\", { ...{ attrs }, ...{ class: \"rich-text--fallback\" } }, [`{${tag.slice(1)}}`]);\n }\n if (!placeholder.component) {\n return h(\"span\", attrs, [placeholder]);\n }\n return h(\n placeholder.component,\n {\n attrs,\n props: placeholder.props,\n class: \"rich-text--component\"\n },\n children\n );\n },\n prefix: false\n }).processSync(\n this.text.replace(/<[^>]+>/g, (match) => match.replace(/</g, \"<\")).replace(/>/gmi, \">\")\n ).result;\n return h(\"div\", { class: \"rich-text--wrapper rich-text--wrapper-markdown\" }, [\n renderedMarkdown,\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n props: {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n }\n })\n ]) : null\n ]);\n }\n },\n render(h) {\n return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown(h) : this.renderPlaintext(h);\n }\n};\nconst _sfc_render = null;\nconst _sfc_staticRenderFns = null;\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"cd4f75c7\"\n);\nconst NcRichText = __component__.exports;\nexport {\n NcRichText as N,\n NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText-BWY0OxW9.mjs.map\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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"640\":\"b2fa23a809053c6305c5\",\"5771\":\"a4e2a98efcfb7393c5bd\",\"5810\":\"e0ecfcd31fb108c51bfd\",\"5862\":\"142cd48ca8ec32e57725\",\"7432\":\"71b42a3f9698c187ab3c\"}[chunkId] + \"\";\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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 8820;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\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\t1820: 0,\n\t8820: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (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((id) => (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[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// 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, [4208], () => (__webpack_require__(35455)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","___CSS_LOADER_EXPORT___","push","module","id","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","defineComponent","components","AccountIcon","MapMarkerIcon","NcActionLink","NcActions","NcAppContent","NcAvatar","NcButton","NcContent","NcEmptyContent","NcRichText","PencilIcon","setup","t","data","loadState","userId","displayname","address","organisation","role","headline","biography","actions","isUserAvatarVisible","pronouns","status","sections","window","OCA","Core","ProfileSections","getSections","computed","isCurrentUser","getCurrentUser","uid","allActions","primaryAction","length","otherActions","slice","settingsUrl","generateUrl","emptyProfileMessage","user","mounted","document","subscribe","handleStatusUpdate","beforeDestroy","unsubscribe","methods","openStatusModal","statusMenuItem","querySelector","click","showError","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","scopedSlots","_u","key","fn","proxy","icon","message","class","interactive","nativeOn","preventDefault","stopPropagation","apply","arguments","target","_l","action","section","index","ref","refInFor","$refs","tag","__webpack_nonce__","getCSPNonce","Object","assign","constructor","_sections","registerSection","View","Vue","extend","Profile","addEventListener","$mount","r","_sfc_main$8","reference","required","Boolean","interactiveOptIn","isVisible","widgetRoot","width","entry","value","isIntersecting","showInteractive","rendered","idleTimeout","isInteractive","hasFullWidth","richObjectType","hasCustomWidget","i","hasInteractiveView","h","noAccess","accessible","descriptionStyle","numberOfLines","display","lineClamp","webkitLineClamp","Infinity","findIndex","max","compactLink","link","openGraphObject","startsWith","substring","route","g","$router","referenceWidgetLinkComponent","referenceWidgetLinkProps","to","href","watch","handler","val","clearTimeout","renderWidget","setTimeout","destroyWidget","immediate","enableInteractive","customWidget","innerHTML","widget","createElement","style","appendChild","$nextTick","$el","_sfc_render$8","thumb","description","_sfc_staticRenderFns$8","NcReferenceWidget","n","exports","_sfc_main$7","provider","isRegistered","renderResult","renderElement","domElement","renderFunctionResult","providerId","Promise","resolve","then","result","object","_isVue","$on","onSubmit","onCancel","element","e","detail","_sfc_render$7","_sfc_staticRenderFns$7","NcCustomPickerElement","anyLinkProvider","icon_url","searchProvider","query","limit","providers","_vue_richtext_reference_providers","filter","p","keep","search_providers_ids","console","debug","escapedQuery","replace","regexp","RegExp","filteredSortedProviders","providerList","timestamps","_vue_richtext_reference_provider_timestamps","sort","a","b","order","ta","tb","sortProviders","match","searchResult","mytimer","delay","callback","ms","context","args","isUrl","str","URL","error","_sfc_main$6","_sfc_render$6","_sfc_staticRenderFns$6","LinkVariantIcon","_sfc_main$5","NcSelect","NcHighlight","selectedProvider","multiselectPlaceholder","providerIconAlt","isLink","focus","onProviderSelected","onSearch","loading","_sfc_render$5","option","model","$$v","expression","_sfc_staticRenderFns$5","NcProviderList","_sfc_main$4","NcLoadingIcon","NcTextField","inputValue","abortController","inputPlaceholder","isLinkValid","getElementsByTagName","onClear","onInput","abort","updateReference","AbortController","get","encodeURIComponent","signal","response","ocs","references","catch","_sfc_render$4","indexOf","_k","keyCode","_sfc_staticRenderFns$4","NcRawLinkInput","_sfc_main$3","_sfc_render$3","rounded","thumbnailUrl","subline","_sfc_staticRenderFns$3","NcSearchResult","_sfc_main$2","DotsHorizontalIcon","D","showEmptyContent","searchPlaceholder","searchQuery","selectedResult","resultsBySearchProvider","searching","searchingMoreOf","noOptionsText","mySearchPlaceholder","searchProviderIds","rawLinkEntry","formattedSearchResults","resourceUrl","isRawLink","results","forEach","pid","entries","isCustomGroupTitle","providerEntriesWithId","map","isPaginated","isMore","isLoading","resetResults","cancelSearchRequests","onSearchInput","updateSearch","onSelectResultSelected","item","searchMoreOf","searchProviderId","searchProviders","searchPromises","searchOneProvider","cursor","allSettled","promises","find","reason","code","url","term","_sfc_render$2","_sfc_staticRenderFns$2","NcSearch","MODES","standardLinkInput","searchInput","customElement","_sfc_main$1","initialProvider","focusOnCreate","mode","pickerWrapperStyle","onEscapePressed","deselectProvider","cancelProviderSelection","cancelCustomElement","cancelSearch","cancelRawLinkInput","submitLink","timestamp","Math","floor","Date","now","params","put","touchProvider","_sfc_render$1","_sfc_staticRenderFns$1","NcReferencePicker","_sfc_main","NcModal","ArrowLeftIcon","A","CloseIcon","C","isInsideViewer","show","backButtonTitle","closeButtonTitle","closeButtonLabel","isProviderSelected","showBackButton","modalSize","showModalName","modalName","elem","modal_content","onProviderSelect","onBackClicked","referencePicker","_sfc_render","_sfc_staticRenderFns","text","referenceData","Array","displayFallback","displayedReferences","values","fallbackReference","firstReference","fetch","U","exec","trim","isPublic","post","sharingToken","NcReferenceList","remarkPlaceholder","ast","node2","parent","placeholders","split","index2","list2","matches","u","component","tagName","children","splice","remarkUnescape","tree","includes","ccount","character","source","TypeError","count","asciiAlpha","regexCheck","asciiAlphanumeric","markdownLineEnding","code2","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","regex","test","fromCharCode","convert","ok","castFactory","isArray","tests","checks","parameters","anyFactory","check","checkAsRecord","nodeAsRecord","propsFactory","Error","testFunction","looksLikeANode","call","empty","CONTINUE","EXIT","SKIP","visitParents","visitor","reverse","is","factory","parents","defineProperty","visit2","subresult","offset","grandparents","toResult","nodeAsParent","concat","child","toFunction","replace2","inConstruct","notInConstruct","enterLiteralAutolink","token","enter","enterLiteralAutolinkValue","config","autolinkProtocol","exitLiteralAutolinkHttp","exit","exitLiteralAutolinkWww","stack","sliceSerialize","exitLiteralAutolinkEmail","autolinkEmail","exitLiteralAutolink","transformGfmAutolinkLiterals","ignored","ignore","pairs","tupleOrList","tuple","string","escapeStringRegexp","toPairs","pairIndex","grandparent","siblings","start","change","nodes","lastIndex","position","matchObject","input","global","findAndReplace","findUrl","findEmail","_","protocol","domain2","path2","prefix","previous","parts","isCorrectDomain","trailExec","trail2","closingParenIndex","openingParens","closingParens","splitUrl","atext","label","email","charCodeAt","normalizeIdentifier","toLowerCase","toUpperCase","enterFootnoteDefinition","identifier","enterFootnoteDefinitionLabelString","buffer","exitFootnoteDefinitionLabelString","resume","exitFootnoteDefinition","enterFootnoteCall","enterFootnoteCallString","exitFootnoteCallString","exitFootnoteCall","footnoteReference","state","info","tracker","createTracker","move","exit2","subexit","safe","associationId","current","before","after","footnoteDefinition","shift","indentLines","containerFlow","map$2","line","blank","peek","constructsWithoutStrikethrough","enterStrikethrough","exitStrikethrough","handleDelete","containerPhrasing","defaultStringLength","toAlignment","codePointAt","map$1","listInScope","none","hardBreak","_1","unsafe","pattern","checkQuote","marker","quote","emphasis","checkEmphasis","emptyOptions$1","toString","settings","one","includeImageAlt","includeHtml","node","alt","all","join","html","image","suffix","imageReference","referenceType","inlineCode","sequence","compilePattern","atBreak","formatLinkAsAutolink","raw","resourceLink","value2","linkReference","text2","checkBullet","bullet","checkRule","rule","phrasing","strong","checkStrong","handle","blockquote","break","fence","checkFence","fences","lang","formatCodeAsIndented","exit3","repeat","expected","longestStreak","encode","meta","definition","heading","rank","min","depth","literalWithBreak","node3","setext","formatHeadingAsSetext","subexit2","lastIndexOf","closeAtx","list","bulletCurrent","ordered","bulletOrdered","checkBulletOrdered","bulletOther","checkBulletOther","useDifferentMarker","bulletLastUsed","firstListItem","indexStack","listItem","listItemIndent","checkListItemIndent","incrementListMarker","spread","ceil","paragraph","root","some","d","thematicBreak","ruleSpaces","repetition","ruleRepetition","checkRuleRepetition","enterTable","align","_align","inTable","exitTable","enterRow","enterCell","exitCodeText","$0","$1","gfmTableToMarkdown","padding","tableCellPadding","alignDelimiters","tablePipeAlign","stringLength","around","handlers","table","serializeData","handleTableRowAsData","handleTableAsData","tableCell","handleTableCell","tableRow","matrix","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","row2","sizes2","columnIndex2","cell","columnIndex","row","sizes","lines","delimiterStart","delimiterEnd","markdownTable","exitCheck","checked","exitParagraphWithTaskListItem","head","firstParaghraph","sibling","column","listItemWithTaskListItem","checkable","checkbox","remove","items","end","chunkStart","from","unshift","hasOwnProperty","syntaxExtension","all2","extension","hook","left","right","constructs","existing","add","wwwPrefix","tokenize","effects","ok2","nok","wwwPrefixInside","consume","wwwPrefixAfter","partial","domain","underscoreInLastSegment","underscoreInLastLastSegment","seen","domainInside","trail","domainAfter","domainAtPunctuation","path","sizeOpen","sizeClose","pathInside","pathAtPunctuation","trailCharRefStart","trailBracketAfter","trailCharRefInside","emailDomainDotTrail","wwwAutolink","self","previousWww","previousUnbalanced","events","attempt","wwwAfter","protocolAutolink","previousProtocol","fromCodePoint","protocolPrefixInside","protocolSlashesInside","afterProtocol","asciiControl","protocolAfter","emailAutolink","dot","gfmAtext","previousEmail","emailDomain","emailDomainAfter","emailDomainDot","_balanced","_gfmAutolinkLiteralWalkedInto","classifyCharacter","resolveAll","constructs2","called","factorySpace","POSITIVE_INFINITY","blankLine","indent","tail","tokenizePotentialGfmFootnoteCall","defined","parser","gfmFootnotes","labelStart","resolveToPotentialGfmFootnoteCall","_bufferIndex","chunk","contentType","replacement","tokenizeGfmFootnoteCall","callStart","callData","callEscape","tokenizeDefinitionStart","_container","labelAtMarker","labelInside","labelAfter","labelEscape","whitespaceAfter","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","gfmStrikethrough","single","singleTilde","tokenizer","previous2","more","_open","_close","open","strikethrough","nextEvents","insideSpan","null","attentionMarkers","EditMap","editMap","at","addImpl","vecs","pop","gfmTableAlign","inDelimiterRow","event","alignIndex","tokenizeTable","sizeB","next","bodyRowStart","headRowBefore","lazy","headRowBreak","headRowStart","interrupt","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","disable","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","resolveTable","currentTable","currentBody","currentCell","inFirstCellAwaitingPipe","rowKind","lastCell","afterHeadAwaitingFirstBodyRow","lastTableEnd","map2","flushTableEnd","flushCell","range","rowEnd","previousCell","groupName","getPoint","relatedStart","relatedEnd","valueToken","tableBody","exits","related","side","tasklistCheck","_gfmTasklistFirstContentOfListItem","inside","close","spaceThenNonSpace","emptyOptions","remarkGfm","micromarkExtensions","fromMarkdownExtensions","toMarkdownExtensions","extensions","combineExtensions","continuation","resolveTo","flow","gfm","transforms","literalAutolink","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","gfmFootnoteDefinition","gfmFootnoteDefinitionLabelString","gfmFootnoteCall","gfmFootnoteCallString","canContainEols","tableData","tableHeader","codeText","taskListCheckValueChecked","taskListCheckValueUnchecked","delete","gfmToMarkdown","LINK_PROTOCOLS","rehypeHighlight","referenceLimit","referenceInteractive","referenceInteractiveOptIn","useMarkdown","useExtendedMarkdown","autolink","parentId","G","renderPlaintext","componentClass","prepareTextNode","argumentId","argument","flat","renderMarkdown","renderedMarkdown","use","except","toHast","rel","async","importRehypeHighlightLibrary","nestedNode","inputNode","labelParts","nestedNodeIndex","inputComponent","N","disabled","placeholder","processSync","render","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","loaded","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","fulfilled","j","keys","every","getter","__esModule","o","enumerable","f","chunkId","reduce","globalThis","Function","obj","prop","prototype","l","done","script","needAttach","scripts","s","getAttribute","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","bind","Symbol","toStringTag","nmd","paths","scriptUrl","importScripts","location","currentScript","baseURI","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
|