aboutsummaryrefslogtreecommitdiffstats
path: root/dist/files-reference-files.js.map
blob: 2babbb90bc64d4878989009bf40a6fe3a5a3ad7b (plain)
1
{"version":3,"file":"files-reference-files.js?v=77d2314e7a1afb797b56","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-4kExxHbR.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcRichText-CwXSzf21.mjs","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/apps/files/src/views/ReferenceFileWidget.vue?vue&type=style&index=0&id=f5ca5316&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/chunks/index-BC-7VPxC.mjs","webpack:///nextcloud/apps/files/src/views/ReferenceFileWidget.vue","webpack:///nextcloud/apps/files/src/views/ReferenceFileWidget.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/views/ReferenceFileWidget.vue?75e6","webpack://nextcloud/./apps/files/src/views/ReferenceFileWidget.vue?1c02","webpack:///nextcloud/apps/files/src/views/FileReferencePickerElement.vue","webpack:///nextcloud/apps/files/src/views/FileReferencePickerElement.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/views/FileReferencePickerElement.vue?71ed","webpack:///nextcloud/apps/files/src/reference-files.ts","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};","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-DQgzdF9S.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-CjUzohn5.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-o_8gWurX.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-4kExxHbR.mjs.map\n","import '../assets/NcRichText-li93TNBn.css';\nimport { ref } from \"vue\";\nimport { N as NcReferenceWidget } from \"./referencePickerModal-4kExxHbR.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-VeztTzpz.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(/&lt;/gmi, \"<\").replace(/&gt;/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: [\"interact:todo\"],\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                    }\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, \"&lt;\")).replace(/&gt;/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  \"ddd5e67e\"\n);\nconst NcRichText = __component__.exports;\nexport {\n  NcRichText as N,\n  NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText-CwXSzf21.mjs.map\n","import { o as logger } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { q, F, s, N, t, P, c, l, m, n, a, g, p, b, r, d, h, f, k, j, e, i } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"path\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n  NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n  NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n  NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n  return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewFileMenu {\n  _entries = [];\n  registerEntry(entry) {\n    this.validateEntry(entry);\n    entry.category = entry.category ?? 1;\n    this._entries.push(entry);\n  }\n  unregisterEntry(entry) {\n    const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n    if (entryIndex === -1) {\n      logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n      return;\n    }\n    this._entries.splice(entryIndex, 1);\n  }\n  /**\n   * Get the list of registered entries\n   *\n   * @param {Folder} context the creation context. Usually the current folder\n   */\n  getEntries(context) {\n    if (context) {\n      return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n    }\n    return this._entries;\n  }\n  getEntryIndex(id) {\n    return this._entries.findIndex((entry) => entry.id === id);\n  }\n  validateEntry(entry) {\n    if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n      throw new Error(\"Invalid entry\");\n    }\n    if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n      throw new Error(\"Invalid id or displayName property\");\n    }\n    if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n      throw new Error(\"Invalid icon provided\");\n    }\n    if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n      throw new Error(\"Invalid enabled property\");\n    }\n    if (typeof entry.handler !== \"function\") {\n      throw new Error(\"Invalid handler property\");\n    }\n    if (\"order\" in entry && typeof entry.order !== \"number\") {\n      throw new Error(\"Invalid order property\");\n    }\n    if (this.getEntryIndex(entry.id) !== -1) {\n      throw new Error(\"Duplicate entry\");\n    }\n  }\n}\nconst getNewFileMenu = function() {\n  if (typeof window._nc_newfilemenu === \"undefined\") {\n    window._nc_newfilemenu = new NewFileMenu();\n    logger.debug(\"NewFileMenu initialized\");\n  }\n  return window._nc_newfilemenu;\n};\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n  DefaultType2[\"DEFAULT\"] = \"default\";\n  DefaultType2[\"HIDDEN\"] = \"hidden\";\n  return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n  _action;\n  constructor(action) {\n    this.validateAction(action);\n    this._action = action;\n  }\n  get id() {\n    return this._action.id;\n  }\n  get displayName() {\n    return this._action.displayName;\n  }\n  get title() {\n    return this._action.title;\n  }\n  get iconSvgInline() {\n    return this._action.iconSvgInline;\n  }\n  get enabled() {\n    return this._action.enabled;\n  }\n  get exec() {\n    return this._action.exec;\n  }\n  get execBatch() {\n    return this._action.execBatch;\n  }\n  get order() {\n    return this._action.order;\n  }\n  get parent() {\n    return this._action.parent;\n  }\n  get default() {\n    return this._action.default;\n  }\n  get destructive() {\n    return this._action.destructive;\n  }\n  get inline() {\n    return this._action.inline;\n  }\n  get renderInline() {\n    return this._action.renderInline;\n  }\n  validateAction(action) {\n    if (!action.id || typeof action.id !== \"string\") {\n      throw new Error(\"Invalid id\");\n    }\n    if (!action.displayName || typeof action.displayName !== \"function\") {\n      throw new Error(\"Invalid displayName function\");\n    }\n    if (\"title\" in action && typeof action.title !== \"function\") {\n      throw new Error(\"Invalid title function\");\n    }\n    if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n      throw new Error(\"Invalid iconSvgInline function\");\n    }\n    if (!action.exec || typeof action.exec !== \"function\") {\n      throw new Error(\"Invalid exec function\");\n    }\n    if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n      throw new Error(\"Invalid enabled function\");\n    }\n    if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n      throw new Error(\"Invalid execBatch function\");\n    }\n    if (\"order\" in action && typeof action.order !== \"number\") {\n      throw new Error(\"Invalid order\");\n    }\n    if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n      throw new Error(\"Invalid destructive flag\");\n    }\n    if (\"parent\" in action && typeof action.parent !== \"string\") {\n      throw new Error(\"Invalid parent\");\n    }\n    if (action.default && !Object.values(DefaultType).includes(action.default)) {\n      throw new Error(\"Invalid default\");\n    }\n    if (\"inline\" in action && typeof action.inline !== \"function\") {\n      throw new Error(\"Invalid inline function\");\n    }\n    if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n      throw new Error(\"Invalid renderInline function\");\n    }\n  }\n}\nconst registerFileAction = function(action) {\n  if (typeof window._nc_fileactions === \"undefined\") {\n    window._nc_fileactions = [];\n    logger.debug(\"FileActions initialized\");\n  }\n  if (window._nc_fileactions.find((search) => search.id === action.id)) {\n    logger.error(`FileAction ${action.id} already registered`, { action });\n    return;\n  }\n  window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n  if (typeof window._nc_fileactions === \"undefined\") {\n    window._nc_fileactions = [];\n    logger.debug(\"FileActions initialized\");\n  }\n  return window._nc_fileactions;\n};\nclass FileListAction {\n  _action;\n  constructor(action) {\n    this.validateAction(action);\n    this._action = action;\n  }\n  get id() {\n    return this._action.id;\n  }\n  get displayName() {\n    return this._action.displayName;\n  }\n  get iconSvgInline() {\n    return this._action.iconSvgInline;\n  }\n  get order() {\n    return this._action.order;\n  }\n  get enabled() {\n    return this._action.enabled;\n  }\n  get exec() {\n    return this._action.exec;\n  }\n  validateAction(action) {\n    if (!action.id || typeof action.id !== \"string\") {\n      throw new Error(\"Invalid id\");\n    }\n    if (!action.displayName || typeof action.displayName !== \"function\") {\n      throw new Error(\"Invalid displayName function\");\n    }\n    if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n      throw new Error(\"Invalid iconSvgInline function\");\n    }\n    if (\"order\" in action && typeof action.order !== \"number\") {\n      throw new Error(\"Invalid order\");\n    }\n    if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n      throw new Error(\"Invalid enabled function\");\n    }\n    if (!action.exec || typeof action.exec !== \"function\") {\n      throw new Error(\"Invalid exec function\");\n    }\n  }\n}\nconst registerFileListAction = (action) => {\n  if (typeof window._nc_filelistactions === \"undefined\") {\n    window._nc_filelistactions = [];\n  }\n  if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n    logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n    return;\n  }\n  window._nc_filelistactions.push(action);\n};\nconst getFileListActions = () => {\n  if (typeof window._nc_filelistactions === \"undefined\") {\n    window._nc_filelistactions = [];\n  }\n  return window._nc_filelistactions;\n};\nclass Header {\n  _header;\n  constructor(header) {\n    this.validateHeader(header);\n    this._header = header;\n  }\n  get id() {\n    return this._header.id;\n  }\n  get order() {\n    return this._header.order;\n  }\n  get enabled() {\n    return this._header.enabled;\n  }\n  get render() {\n    return this._header.render;\n  }\n  get updated() {\n    return this._header.updated;\n  }\n  validateHeader(header) {\n    if (!header.id || !header.render || !header.updated) {\n      throw new Error(\"Invalid header: id, render and updated are required\");\n    }\n    if (typeof header.id !== \"string\") {\n      throw new Error(\"Invalid id property\");\n    }\n    if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n      throw new Error(\"Invalid enabled property\");\n    }\n    if (header.render && typeof header.render !== \"function\") {\n      throw new Error(\"Invalid render property\");\n    }\n    if (header.updated && typeof header.updated !== \"function\") {\n      throw new Error(\"Invalid updated property\");\n    }\n  }\n}\nconst registerFileListHeaders = function(header) {\n  if (typeof window._nc_filelistheader === \"undefined\") {\n    window._nc_filelistheader = [];\n    logger.debug(\"FileListHeaders initialized\");\n  }\n  if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n    logger.error(`Header ${header.id} already registered`, { header });\n    return;\n  }\n  window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n  if (typeof window._nc_filelistheader === \"undefined\") {\n    window._nc_filelistheader = [];\n    logger.debug(\"FileListHeaders initialized\");\n  }\n  return window._nc_filelistheader;\n};\nvar InvalidFilenameErrorReason = /* @__PURE__ */ ((InvalidFilenameErrorReason2) => {\n  InvalidFilenameErrorReason2[\"ReservedName\"] = \"reserved name\";\n  InvalidFilenameErrorReason2[\"Character\"] = \"character\";\n  InvalidFilenameErrorReason2[\"Extension\"] = \"extension\";\n  return InvalidFilenameErrorReason2;\n})(InvalidFilenameErrorReason || {});\nclass InvalidFilenameError extends Error {\n  constructor(options) {\n    super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n  }\n  /**\n   * The filename that was validated\n   */\n  get filename() {\n    return this.cause.filename;\n  }\n  /**\n   * Reason why the validation failed\n   */\n  get reason() {\n    return this.cause.reason;\n  }\n  /**\n   * Part of the filename that caused this error\n   */\n  get segment() {\n    return this.cause.segment;\n  }\n}\nfunction validateFilename(filename) {\n  const capabilities = getCapabilities().files;\n  const forbiddenCharacters = capabilities.forbidden_filename_characters ?? window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\n  for (const character of forbiddenCharacters) {\n    if (filename.includes(character)) {\n      throw new InvalidFilenameError({ segment: character, reason: \"character\", filename });\n    }\n  }\n  filename = filename.toLocaleLowerCase();\n  const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n  if (forbiddenFilenames.includes(filename)) {\n    throw new InvalidFilenameError({\n      filename,\n      segment: filename,\n      reason: \"reserved name\"\n      /* ReservedName */\n    });\n  }\n  const endOfBasename = filename.indexOf(\".\", 1);\n  const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n  const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n  if (forbiddenFilenameBasenames.includes(basename2)) {\n    throw new InvalidFilenameError({\n      filename,\n      segment: basename2,\n      reason: \"reserved name\"\n      /* ReservedName */\n    });\n  }\n  const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [\".part\", \".filepart\"];\n  for (const extension of forbiddenFilenameExtensions) {\n    if (filename.length > extension.length && filename.endsWith(extension)) {\n      throw new InvalidFilenameError({ segment: extension, reason: \"extension\", filename });\n    }\n  }\n}\nfunction isFilenameValid(filename) {\n  try {\n    validateFilename(filename);\n    return true;\n  } catch (error) {\n    if (error instanceof InvalidFilenameError) {\n      return false;\n    }\n    throw error;\n  }\n}\nfunction getUniqueName(name, otherNames, options) {\n  const opts = {\n    suffix: (n2) => `(${n2})`,\n    ignoreFileExtension: false,\n    ...options\n  };\n  let newName = name;\n  let i2 = 1;\n  while (otherNames.includes(newName)) {\n    const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n    const base = basename(name, ext);\n    newName = `${base} ${opts.suffix(i2++)}${ext}`;\n  }\n  return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n  binaryPrefixes = binaryPrefixes && !base1000;\n  if (typeof size === \"string\") {\n    size = Number(size);\n  }\n  let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n  order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n  const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n  let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n  if (skipSmallSizes === true && order === 0) {\n    return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n  }\n  if (order < 2) {\n    relativeSize = parseFloat(relativeSize).toFixed(0);\n  } else {\n    relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n  }\n  return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n  try {\n    value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n  } catch (e2) {\n    return null;\n  }\n  const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n  if (match === null || match[1] === \".\" || match[1] === \"\") {\n    return null;\n  }\n  const bytesArray = {\n    \"\": 0,\n    k: 1,\n    m: 2,\n    g: 3,\n    t: 4,\n    p: 5,\n    e: 6\n  };\n  const decimalString = `${match[1]}`;\n  const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n  return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n  if (value instanceof Date) {\n    return value.toISOString();\n  }\n  return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n  identifiers2 = identifiers2 ?? [(value) => value];\n  orders = orders ?? [];\n  const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n  const collator = Intl.Collator(\n    [getLanguage(), getCanonicalLocale()],\n    {\n      // handle 10 as ten and not as one-zero\n      numeric: true,\n      usage: \"sort\"\n    }\n  );\n  return [...collection].sort((a2, b2) => {\n    for (const [index, identifier] of identifiers2.entries()) {\n      const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n      if (value !== 0) {\n        return value * sorting[index];\n      }\n    }\n    return 0;\n  });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n  FilesSortingMode2[\"Name\"] = \"basename\";\n  FilesSortingMode2[\"Modified\"] = \"mtime\";\n  FilesSortingMode2[\"Size\"] = \"size\";\n  return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n  const sortingOptions = {\n    // Default to sort by name\n    sortingMode: \"basename\",\n    // Default to sort ascending\n    sortingOrder: \"asc\",\n    ...options\n  };\n  const basename2 = (name) => name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n  const identifiers2 = [\n    // 1: Sort favorites first if enabled\n    ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n    // 2: Sort folders first if sorting by name\n    ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n    // 3: Use sorting mode if NOT basename (to be able to use display name too)\n    ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode]] : [],\n    // 4: Use display name if available, fallback to name\n    (v) => basename2(v.displayname || v.attributes?.displayname || v.basename),\n    // 5: Finally, use basename if all previous sorting methods failed\n    (v) => v.basename\n  ];\n  const orders = [\n    // (for 1): always sort favorites before normal files\n    ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n    // (for 2): always sort folders before files\n    ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n    // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n    ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n    // (also for 3 so make sure not to conflict with 2 and 3)\n    ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n    // for 4: use configured sorting direction\n    sortingOptions.sortingOrder,\n    // for 5: use configured sorting direction\n    sortingOptions.sortingOrder\n  ];\n  return orderBy(nodes, identifiers2, orders);\n}\nclass Navigation extends TypedEventTarget {\n  _views = [];\n  _currentView = null;\n  /**\n   * Register a new view on the navigation\n   * @param view The view to register\n   * @throws `Error` is thrown if a view with the same id is already registered\n   */\n  register(view) {\n    if (this._views.find((search) => search.id === view.id)) {\n      throw new Error(`View id ${view.id} is already registered`);\n    }\n    this._views.push(view);\n    this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n  }\n  /**\n   * Remove a registered view\n   * @param id The id of the view to remove\n   */\n  remove(id) {\n    const index = this._views.findIndex((view) => view.id === id);\n    if (index !== -1) {\n      this._views.splice(index, 1);\n      this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n    }\n  }\n  /**\n   * Set the currently active view\n   * @fires UpdateActiveViewEvent\n   * @param view New active view\n   */\n  setActive(view) {\n    this._currentView = view;\n    const event = new CustomEvent(\"updateActive\", { detail: view });\n    this.dispatchTypedEvent(\"updateActive\", event);\n  }\n  /**\n   * The currently active files view\n   */\n  get active() {\n    return this._currentView;\n  }\n  /**\n   * All registered views\n   */\n  get views() {\n    return this._views;\n  }\n}\nconst getNavigation = function() {\n  if (typeof window._nc_navigation === \"undefined\") {\n    window._nc_navigation = new Navigation();\n    logger.debug(\"Navigation service initialized\");\n  }\n  return window._nc_navigation;\n};\nclass Column {\n  _column;\n  constructor(column) {\n    isValidColumn(column);\n    this._column = column;\n  }\n  get id() {\n    return this._column.id;\n  }\n  get title() {\n    return this._column.title;\n  }\n  get render() {\n    return this._column.render;\n  }\n  get sort() {\n    return this._column.sort;\n  }\n  get summary() {\n    return this._column.summary;\n  }\n}\nconst isValidColumn = function(column) {\n  if (!column.id || typeof column.id !== \"string\") {\n    throw new Error(\"A column id is required\");\n  }\n  if (!column.title || typeof column.title !== \"string\") {\n    throw new Error(\"A column title is required\");\n  }\n  if (!column.render || typeof column.render !== \"function\") {\n    throw new Error(\"A render function is required\");\n  }\n  if (column.sort && typeof column.sort !== \"function\") {\n    throw new Error(\"Column sortFunction must be a function\");\n  }\n  if (column.summary && typeof column.summary !== \"function\") {\n    throw new Error(\"Column summary must be a function\");\n  }\n  return true;\n};\nfunction getDefaultExportFromCjs(x) {\n  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar validator = {};\nvar util = {};\nvar hasRequiredUtil;\nfunction requireUtil() {\n  if (hasRequiredUtil) return util;\n  hasRequiredUtil = 1;\n  (function(exports) {\n    const nameStartChar = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n    const nameChar = nameStartChar + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n    const nameRegexp = \"[\" + nameStartChar + \"][\" + nameChar + \"]*\";\n    const regexName = new RegExp(\"^\" + nameRegexp + \"$\");\n    const getAllMatches = function(string, regex) {\n      const matches = [];\n      let match = regex.exec(string);\n      while (match) {\n        const allmatches = [];\n        allmatches.startIndex = regex.lastIndex - match[0].length;\n        const len = match.length;\n        for (let index = 0; index < len; index++) {\n          allmatches.push(match[index]);\n        }\n        matches.push(allmatches);\n        match = regex.exec(string);\n      }\n      return matches;\n    };\n    const isName = function(string) {\n      const match = regexName.exec(string);\n      return !(match === null || typeof match === \"undefined\");\n    };\n    exports.isExist = function(v) {\n      return typeof v !== \"undefined\";\n    };\n    exports.isEmptyObject = function(obj) {\n      return Object.keys(obj).length === 0;\n    };\n    exports.merge = function(target, a2, arrayMode) {\n      if (a2) {\n        const keys = Object.keys(a2);\n        const len = keys.length;\n        for (let i2 = 0; i2 < len; i2++) {\n          if (arrayMode === \"strict\") {\n            target[keys[i2]] = [a2[keys[i2]]];\n          } else {\n            target[keys[i2]] = a2[keys[i2]];\n          }\n        }\n      }\n    };\n    exports.getValue = function(v) {\n      if (exports.isExist(v)) {\n        return v;\n      } else {\n        return \"\";\n      }\n    };\n    exports.isName = isName;\n    exports.getAllMatches = getAllMatches;\n    exports.nameRegexp = nameRegexp;\n  })(util);\n  return util;\n}\nvar hasRequiredValidator;\nfunction requireValidator() {\n  if (hasRequiredValidator) return validator;\n  hasRequiredValidator = 1;\n  const util2 = requireUtil();\n  const defaultOptions = {\n    allowBooleanAttributes: false,\n    //A tag can have attributes without any value\n    unpairedTags: []\n  };\n  validator.validate = function(xmlData, options) {\n    options = Object.assign({}, defaultOptions, options);\n    const tags = [];\n    let tagFound = false;\n    let reachedRoot = false;\n    if (xmlData[0] === \"\\uFEFF\") {\n      xmlData = xmlData.substr(1);\n    }\n    for (let i2 = 0; i2 < xmlData.length; i2++) {\n      if (xmlData[i2] === \"<\" && xmlData[i2 + 1] === \"?\") {\n        i2 += 2;\n        i2 = readPI(xmlData, i2);\n        if (i2.err) return i2;\n      } else if (xmlData[i2] === \"<\") {\n        let tagStartPos = i2;\n        i2++;\n        if (xmlData[i2] === \"!\") {\n          i2 = readCommentAndCDATA(xmlData, i2);\n          continue;\n        } else {\n          let closingTag = false;\n          if (xmlData[i2] === \"/\") {\n            closingTag = true;\n            i2++;\n          }\n          let tagName = \"\";\n          for (; i2 < xmlData.length && xmlData[i2] !== \">\" && xmlData[i2] !== \" \" && xmlData[i2] !== \"\t\" && xmlData[i2] !== \"\\n\" && xmlData[i2] !== \"\\r\"; i2++) {\n            tagName += xmlData[i2];\n          }\n          tagName = tagName.trim();\n          if (tagName[tagName.length - 1] === \"/\") {\n            tagName = tagName.substring(0, tagName.length - 1);\n            i2--;\n          }\n          if (!validateTagName(tagName)) {\n            let msg;\n            if (tagName.trim().length === 0) {\n              msg = \"Invalid space after '<'.\";\n            } else {\n              msg = \"Tag '\" + tagName + \"' is an invalid name.\";\n            }\n            return getErrorObject(\"InvalidTag\", msg, getLineNumberForPosition(xmlData, i2));\n          }\n          const result = readAttributeStr(xmlData, i2);\n          if (result === false) {\n            return getErrorObject(\"InvalidAttr\", \"Attributes for '\" + tagName + \"' have open quote.\", getLineNumberForPosition(xmlData, i2));\n          }\n          let attrStr = result.value;\n          i2 = result.index;\n          if (attrStr[attrStr.length - 1] === \"/\") {\n            const attrStrStart = i2 - attrStr.length;\n            attrStr = attrStr.substring(0, attrStr.length - 1);\n            const isValid = validateAttributeString(attrStr, options);\n            if (isValid === true) {\n              tagFound = true;\n            } else {\n              return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n            }\n          } else if (closingTag) {\n            if (!result.tagClosed) {\n              return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i2));\n            } else if (attrStr.trim().length > 0) {\n              return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n            } else if (tags.length === 0) {\n              return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n            } else {\n              const otg = tags.pop();\n              if (tagName !== otg.tagName) {\n                let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n                return getErrorObject(\n                  \"InvalidTag\",\n                  \"Expected closing tag '\" + otg.tagName + \"' (opened in line \" + openPos.line + \", col \" + openPos.col + \") instead of closing tag '\" + tagName + \"'.\",\n                  getLineNumberForPosition(xmlData, tagStartPos)\n                );\n              }\n              if (tags.length == 0) {\n                reachedRoot = true;\n              }\n            }\n          } else {\n            const isValid = validateAttributeString(attrStr, options);\n            if (isValid !== true) {\n              return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i2 - attrStr.length + isValid.err.line));\n            }\n            if (reachedRoot === true) {\n              return getErrorObject(\"InvalidXml\", \"Multiple possible root nodes found.\", getLineNumberForPosition(xmlData, i2));\n            } else if (options.unpairedTags.indexOf(tagName) !== -1) ;\n            else {\n              tags.push({ tagName, tagStartPos });\n            }\n            tagFound = true;\n          }\n          for (i2++; i2 < xmlData.length; i2++) {\n            if (xmlData[i2] === \"<\") {\n              if (xmlData[i2 + 1] === \"!\") {\n                i2++;\n                i2 = readCommentAndCDATA(xmlData, i2);\n                continue;\n              } else if (xmlData[i2 + 1] === \"?\") {\n                i2 = readPI(xmlData, ++i2);\n                if (i2.err) return i2;\n              } else {\n                break;\n              }\n            } else if (xmlData[i2] === \"&\") {\n              const afterAmp = validateAmpersand(xmlData, i2);\n              if (afterAmp == -1)\n                return getErrorObject(\"InvalidChar\", \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i2));\n              i2 = afterAmp;\n            } else {\n              if (reachedRoot === true && !isWhiteSpace(xmlData[i2])) {\n                return getErrorObject(\"InvalidXml\", \"Extra text at the end\", getLineNumberForPosition(xmlData, i2));\n              }\n            }\n          }\n          if (xmlData[i2] === \"<\") {\n            i2--;\n          }\n        }\n      } else {\n        if (isWhiteSpace(xmlData[i2])) {\n          continue;\n        }\n        return getErrorObject(\"InvalidChar\", \"char '\" + xmlData[i2] + \"' is not expected.\", getLineNumberForPosition(xmlData, i2));\n      }\n    }\n    if (!tagFound) {\n      return getErrorObject(\"InvalidXml\", \"Start tag expected.\", 1);\n    } else if (tags.length == 1) {\n      return getErrorObject(\"InvalidTag\", \"Unclosed tag '\" + tags[0].tagName + \"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n    } else if (tags.length > 0) {\n      return getErrorObject(\"InvalidXml\", \"Invalid '\" + JSON.stringify(tags.map((t2) => t2.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n    }\n    return true;\n  };\n  function isWhiteSpace(char) {\n    return char === \" \" || char === \"\t\" || char === \"\\n\" || char === \"\\r\";\n  }\n  function readPI(xmlData, i2) {\n    const start = i2;\n    for (; i2 < xmlData.length; i2++) {\n      if (xmlData[i2] == \"?\" || xmlData[i2] == \" \") {\n        const tagname = xmlData.substr(start, i2 - start);\n        if (i2 > 5 && tagname === \"xml\") {\n          return getErrorObject(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", getLineNumberForPosition(xmlData, i2));\n        } else if (xmlData[i2] == \"?\" && xmlData[i2 + 1] == \">\") {\n          i2++;\n          break;\n        } else {\n          continue;\n        }\n      }\n    }\n    return i2;\n  }\n  function readCommentAndCDATA(xmlData, i2) {\n    if (xmlData.length > i2 + 5 && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \"-\") {\n      for (i2 += 3; i2 < xmlData.length; i2++) {\n        if (xmlData[i2] === \"-\" && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \">\") {\n          i2 += 2;\n          break;\n        }\n      }\n    } else if (xmlData.length > i2 + 8 && xmlData[i2 + 1] === \"D\" && xmlData[i2 + 2] === \"O\" && xmlData[i2 + 3] === \"C\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"Y\" && xmlData[i2 + 6] === \"P\" && xmlData[i2 + 7] === \"E\") {\n      let angleBracketsCount = 1;\n      for (i2 += 8; i2 < xmlData.length; i2++) {\n        if (xmlData[i2] === \"<\") {\n          angleBracketsCount++;\n        } else if (xmlData[i2] === \">\") {\n          angleBracketsCount--;\n          if (angleBracketsCount === 0) {\n            break;\n          }\n        }\n      }\n    } else if (xmlData.length > i2 + 9 && xmlData[i2 + 1] === \"[\" && xmlData[i2 + 2] === \"C\" && xmlData[i2 + 3] === \"D\" && xmlData[i2 + 4] === \"A\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"A\" && xmlData[i2 + 7] === \"[\") {\n      for (i2 += 8; i2 < xmlData.length; i2++) {\n        if (xmlData[i2] === \"]\" && xmlData[i2 + 1] === \"]\" && xmlData[i2 + 2] === \">\") {\n          i2 += 2;\n          break;\n        }\n      }\n    }\n    return i2;\n  }\n  const doubleQuote = '\"';\n  const singleQuote = \"'\";\n  function readAttributeStr(xmlData, i2) {\n    let attrStr = \"\";\n    let startChar = \"\";\n    let tagClosed = false;\n    for (; i2 < xmlData.length; i2++) {\n      if (xmlData[i2] === doubleQuote || xmlData[i2] === singleQuote) {\n        if (startChar === \"\") {\n          startChar = xmlData[i2];\n        } else if (startChar !== xmlData[i2]) ;\n        else {\n          startChar = \"\";\n        }\n      } else if (xmlData[i2] === \">\") {\n        if (startChar === \"\") {\n          tagClosed = true;\n          break;\n        }\n      }\n      attrStr += xmlData[i2];\n    }\n    if (startChar !== \"\") {\n      return false;\n    }\n    return {\n      value: attrStr,\n      index: i2,\n      tagClosed\n    };\n  }\n  const validAttrStrRegxp = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\n  function validateAttributeString(attrStr, options) {\n    const matches = util2.getAllMatches(attrStr, validAttrStrRegxp);\n    const attrNames = {};\n    for (let i2 = 0; i2 < matches.length; i2++) {\n      if (matches[i2][1].length === 0) {\n        return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' has no space in starting.\", getPositionFromMatch(matches[i2]));\n      } else if (matches[i2][3] !== void 0 && matches[i2][4] === void 0) {\n        return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' is without value.\", getPositionFromMatch(matches[i2]));\n      } else if (matches[i2][3] === void 0 && !options.allowBooleanAttributes) {\n        return getErrorObject(\"InvalidAttr\", \"boolean attribute '\" + matches[i2][2] + \"' is not allowed.\", getPositionFromMatch(matches[i2]));\n      }\n      const attrName = matches[i2][2];\n      if (!validateAttrName(attrName)) {\n        return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is an invalid name.\", getPositionFromMatch(matches[i2]));\n      }\n      if (!attrNames.hasOwnProperty(attrName)) {\n        attrNames[attrName] = 1;\n      } else {\n        return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is repeated.\", getPositionFromMatch(matches[i2]));\n      }\n    }\n    return true;\n  }\n  function validateNumberAmpersand(xmlData, i2) {\n    let re2 = /\\d/;\n    if (xmlData[i2] === \"x\") {\n      i2++;\n      re2 = /[\\da-fA-F]/;\n    }\n    for (; i2 < xmlData.length; i2++) {\n      if (xmlData[i2] === \";\")\n        return i2;\n      if (!xmlData[i2].match(re2))\n        break;\n    }\n    return -1;\n  }\n  function validateAmpersand(xmlData, i2) {\n    i2++;\n    if (xmlData[i2] === \";\")\n      return -1;\n    if (xmlData[i2] === \"#\") {\n      i2++;\n      return validateNumberAmpersand(xmlData, i2);\n    }\n    let count = 0;\n    for (; i2 < xmlData.length; i2++, count++) {\n      if (xmlData[i2].match(/\\w/) && count < 20)\n        continue;\n      if (xmlData[i2] === \";\")\n        break;\n      return -1;\n    }\n    return i2;\n  }\n  function getErrorObject(code, message, lineNumber) {\n    return {\n      err: {\n        code,\n        msg: message,\n        line: lineNumber.line || lineNumber,\n        col: lineNumber.col\n      }\n    };\n  }\n  function validateAttrName(attrName) {\n    return util2.isName(attrName);\n  }\n  function validateTagName(tagname) {\n    return util2.isName(tagname);\n  }\n  function getLineNumberForPosition(xmlData, index) {\n    const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n    return {\n      line: lines.length,\n      // column number is last line's length + 1, because column numbering starts at 1:\n      col: lines[lines.length - 1].length + 1\n    };\n  }\n  function getPositionFromMatch(match) {\n    return match.startIndex + match[1].length;\n  }\n  return validator;\n}\nvar OptionsBuilder = {};\nvar hasRequiredOptionsBuilder;\nfunction requireOptionsBuilder() {\n  if (hasRequiredOptionsBuilder) return OptionsBuilder;\n  hasRequiredOptionsBuilder = 1;\n  const defaultOptions = {\n    preserveOrder: false,\n    attributeNamePrefix: \"@_\",\n    attributesGroupName: false,\n    textNodeName: \"#text\",\n    ignoreAttributes: true,\n    removeNSPrefix: false,\n    // remove NS from tag name or attribute name if true\n    allowBooleanAttributes: false,\n    //a tag can have attributes without any value\n    //ignoreRootElement : false,\n    parseTagValue: true,\n    parseAttributeValue: false,\n    trimValues: true,\n    //Trim string values of tag and attributes\n    cdataPropName: false,\n    numberParseOptions: {\n      hex: true,\n      leadingZeros: true,\n      eNotation: true\n    },\n    tagValueProcessor: function(tagName, val) {\n      return val;\n    },\n    attributeValueProcessor: function(attrName, val) {\n      return val;\n    },\n    stopNodes: [],\n    //nested tags will not be parsed even for errors\n    alwaysCreateTextNode: false,\n    isArray: () => false,\n    commentPropName: false,\n    unpairedTags: [],\n    processEntities: true,\n    htmlEntities: false,\n    ignoreDeclaration: false,\n    ignorePiTags: false,\n    transformTagName: false,\n    transformAttributeName: false,\n    updateTag: function(tagName, jPath, attrs) {\n      return tagName;\n    }\n    // skipEmptyListItem: false\n  };\n  const buildOptions = function(options) {\n    return Object.assign({}, defaultOptions, options);\n  };\n  OptionsBuilder.buildOptions = buildOptions;\n  OptionsBuilder.defaultOptions = defaultOptions;\n  return OptionsBuilder;\n}\nvar xmlNode;\nvar hasRequiredXmlNode;\nfunction requireXmlNode() {\n  if (hasRequiredXmlNode) return xmlNode;\n  hasRequiredXmlNode = 1;\n  class XmlNode {\n    constructor(tagname) {\n      this.tagname = tagname;\n      this.child = [];\n      this[\":@\"] = {};\n    }\n    add(key, val) {\n      if (key === \"__proto__\") key = \"#__proto__\";\n      this.child.push({ [key]: val });\n    }\n    addChild(node) {\n      if (node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n      if (node[\":@\"] && Object.keys(node[\":@\"]).length > 0) {\n        this.child.push({ [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n      } else {\n        this.child.push({ [node.tagname]: node.child });\n      }\n    }\n  }\n  xmlNode = XmlNode;\n  return xmlNode;\n}\nvar DocTypeReader;\nvar hasRequiredDocTypeReader;\nfunction requireDocTypeReader() {\n  if (hasRequiredDocTypeReader) return DocTypeReader;\n  hasRequiredDocTypeReader = 1;\n  const util2 = requireUtil();\n  function readDocType(xmlData, i2) {\n    const entities = {};\n    if (xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"C\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"Y\" && xmlData[i2 + 7] === \"P\" && xmlData[i2 + 8] === \"E\") {\n      i2 = i2 + 9;\n      let angleBracketsCount = 1;\n      let hasBody = false, comment = false;\n      let exp = \"\";\n      for (; i2 < xmlData.length; i2++) {\n        if (xmlData[i2] === \"<\" && !comment) {\n          if (hasBody && isEntity(xmlData, i2)) {\n            i2 += 7;\n            let entityName, val;\n            [entityName, val, i2] = readEntityExp(xmlData, i2 + 1);\n            if (val.indexOf(\"&\") === -1)\n              entities[validateEntityName(entityName)] = {\n                regx: RegExp(`&${entityName};`, \"g\"),\n                val\n              };\n          } else if (hasBody && isElement(xmlData, i2)) i2 += 8;\n          else if (hasBody && isAttlist(xmlData, i2)) i2 += 8;\n          else if (hasBody && isNotation(xmlData, i2)) i2 += 9;\n          else comment = true;\n          angleBracketsCount++;\n          exp = \"\";\n        } else if (xmlData[i2] === \">\") {\n          if (comment) {\n            if (xmlData[i2 - 1] === \"-\" && xmlData[i2 - 2] === \"-\") {\n              comment = false;\n              angleBracketsCount--;\n            }\n          } else {\n            angleBracketsCount--;\n          }\n          if (angleBracketsCount === 0) {\n            break;\n          }\n        } else if (xmlData[i2] === \"[\") {\n          hasBody = true;\n        } else {\n          exp += xmlData[i2];\n        }\n      }\n      if (angleBracketsCount !== 0) {\n        throw new Error(`Unclosed DOCTYPE`);\n      }\n    } else {\n      throw new Error(`Invalid Tag instead of DOCTYPE`);\n    }\n    return { entities, i: i2 };\n  }\n  function readEntityExp(xmlData, i2) {\n    let entityName = \"\";\n    for (; i2 < xmlData.length && (xmlData[i2] !== \"'\" && xmlData[i2] !== '\"'); i2++) {\n      entityName += xmlData[i2];\n    }\n    entityName = entityName.trim();\n    if (entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n    const startChar = xmlData[i2++];\n    let val = \"\";\n    for (; i2 < xmlData.length && xmlData[i2] !== startChar; i2++) {\n      val += xmlData[i2];\n    }\n    return [entityName, val, i2];\n  }\n  function isEntity(xmlData, i2) {\n    if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"N\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"I\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"Y\") return true;\n    return false;\n  }\n  function isElement(xmlData, i2) {\n    if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"L\" && xmlData[i2 + 4] === \"E\" && xmlData[i2 + 5] === \"M\" && xmlData[i2 + 6] === \"E\" && xmlData[i2 + 7] === \"N\" && xmlData[i2 + 8] === \"T\") return true;\n    return false;\n  }\n  function isAttlist(xmlData, i2) {\n    if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"A\" && xmlData[i2 + 3] === \"T\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"L\" && xmlData[i2 + 6] === \"I\" && xmlData[i2 + 7] === \"S\" && xmlData[i2 + 8] === \"T\") return true;\n    return false;\n  }\n  function isNotation(xmlData, i2) {\n    if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"N\" && xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"A\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"I\" && xmlData[i2 + 8] === \"O\" && xmlData[i2 + 9] === \"N\") return true;\n    return false;\n  }\n  function validateEntityName(name) {\n    if (util2.isName(name))\n      return name;\n    else\n      throw new Error(`Invalid entity name ${name}`);\n  }\n  DocTypeReader = readDocType;\n  return DocTypeReader;\n}\nvar strnum;\nvar hasRequiredStrnum;\nfunction requireStrnum() {\n  if (hasRequiredStrnum) return strnum;\n  hasRequiredStrnum = 1;\n  const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\n  const numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n  if (!Number.parseInt && window.parseInt) {\n    Number.parseInt = window.parseInt;\n  }\n  if (!Number.parseFloat && window.parseFloat) {\n    Number.parseFloat = window.parseFloat;\n  }\n  const consider = {\n    hex: true,\n    leadingZeros: true,\n    decimalPoint: \".\",\n    eNotation: true\n    //skipLike: /regex/\n  };\n  function toNumber(str, options = {}) {\n    options = Object.assign({}, consider, options);\n    if (!str || typeof str !== \"string\") return str;\n    let trimmedStr = str.trim();\n    if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr)) return str;\n    else if (options.hex && hexRegex.test(trimmedStr)) {\n      return Number.parseInt(trimmedStr, 16);\n    } else {\n      const match = numRegex.exec(trimmedStr);\n      if (match) {\n        const sign = match[1];\n        const leadingZeros = match[2];\n        let numTrimmedByZeros = trimZeros(match[3]);\n        const eNotation = match[4] || match[6];\n        if (!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str;\n        else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str;\n        else {\n          const num = Number(trimmedStr);\n          const numStr = \"\" + num;\n          if (numStr.search(/[eE]/) !== -1) {\n            if (options.eNotation) return num;\n            else return str;\n          } else if (eNotation) {\n            if (options.eNotation) return num;\n            else return str;\n          } else if (trimmedStr.indexOf(\".\") !== -1) {\n            if (numStr === \"0\" && numTrimmedByZeros === \"\") return num;\n            else if (numStr === numTrimmedByZeros) return num;\n            else if (sign && numStr === \"-\" + numTrimmedByZeros) return num;\n            else return str;\n          }\n          if (leadingZeros) {\n            if (numTrimmedByZeros === numStr) return num;\n            else if (sign + numTrimmedByZeros === numStr) return num;\n            else return str;\n          }\n          if (trimmedStr === numStr) return num;\n          else if (trimmedStr === sign + numStr) return num;\n          return str;\n        }\n      } else {\n        return str;\n      }\n    }\n  }\n  function trimZeros(numStr) {\n    if (numStr && numStr.indexOf(\".\") !== -1) {\n      numStr = numStr.replace(/0+$/, \"\");\n      if (numStr === \".\") numStr = \"0\";\n      else if (numStr[0] === \".\") numStr = \"0\" + numStr;\n      else if (numStr[numStr.length - 1] === \".\") numStr = numStr.substr(0, numStr.length - 1);\n      return numStr;\n    }\n    return numStr;\n  }\n  strnum = toNumber;\n  return strnum;\n}\nvar ignoreAttributes;\nvar hasRequiredIgnoreAttributes;\nfunction requireIgnoreAttributes() {\n  if (hasRequiredIgnoreAttributes) return ignoreAttributes;\n  hasRequiredIgnoreAttributes = 1;\n  function getIgnoreAttributesFn(ignoreAttributes2) {\n    if (typeof ignoreAttributes2 === \"function\") {\n      return ignoreAttributes2;\n    }\n    if (Array.isArray(ignoreAttributes2)) {\n      return (attrName) => {\n        for (const pattern of ignoreAttributes2) {\n          if (typeof pattern === \"string\" && attrName === pattern) {\n            return true;\n          }\n          if (pattern instanceof RegExp && pattern.test(attrName)) {\n            return true;\n          }\n        }\n      };\n    }\n    return () => false;\n  }\n  ignoreAttributes = getIgnoreAttributesFn;\n  return ignoreAttributes;\n}\nvar OrderedObjParser_1;\nvar hasRequiredOrderedObjParser;\nfunction requireOrderedObjParser() {\n  if (hasRequiredOrderedObjParser) return OrderedObjParser_1;\n  hasRequiredOrderedObjParser = 1;\n  const util2 = requireUtil();\n  const xmlNode2 = requireXmlNode();\n  const readDocType = requireDocTypeReader();\n  const toNumber = requireStrnum();\n  const getIgnoreAttributesFn = requireIgnoreAttributes();\n  class OrderedObjParser {\n    constructor(options) {\n      this.options = options;\n      this.currentNode = null;\n      this.tagsNodeStack = [];\n      this.docTypeEntities = {};\n      this.lastEntities = {\n        \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n        \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n        \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n        \"quot\": { regex: /&(quot|#34|#x22);/g, val: '\"' }\n      };\n      this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n      this.htmlEntities = {\n        \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n        // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n        // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n        // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n        // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n        // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n        \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n        \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n        \"yen\": { regex: /&(yen|#165);/g, val: \"¥\" },\n        \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n        \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n        \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n        \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n        \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n        \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 16)) }\n      };\n      this.addExternalEntities = addExternalEntities;\n      this.parseXml = parseXml;\n      this.parseTextData = parseTextData;\n      this.resolveNameSpace = resolveNameSpace;\n      this.buildAttributesMap = buildAttributesMap;\n      this.isItStopNode = isItStopNode;\n      this.replaceEntitiesValue = replaceEntitiesValue;\n      this.readStopNodeData = readStopNodeData;\n      this.saveTextToParentTag = saveTextToParentTag;\n      this.addChild = addChild;\n      this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n    }\n  }\n  function addExternalEntities(externalEntities) {\n    const entKeys = Object.keys(externalEntities);\n    for (let i2 = 0; i2 < entKeys.length; i2++) {\n      const ent = entKeys[i2];\n      this.lastEntities[ent] = {\n        regex: new RegExp(\"&\" + ent + \";\", \"g\"),\n        val: externalEntities[ent]\n      };\n    }\n  }\n  function parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n    if (val !== void 0) {\n      if (this.options.trimValues && !dontTrim) {\n        val = val.trim();\n      }\n      if (val.length > 0) {\n        if (!escapeEntities) val = this.replaceEntitiesValue(val);\n        const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n        if (newval === null || newval === void 0) {\n          return val;\n        } else if (typeof newval !== typeof val || newval !== val) {\n          return newval;\n        } else if (this.options.trimValues) {\n          return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n        } else {\n          const trimmedVal = val.trim();\n          if (trimmedVal === val) {\n            return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n          } else {\n            return val;\n          }\n        }\n      }\n    }\n  }\n  function resolveNameSpace(tagname) {\n    if (this.options.removeNSPrefix) {\n      const tags = tagname.split(\":\");\n      const prefix = tagname.charAt(0) === \"/\" ? \"/\" : \"\";\n      if (tags[0] === \"xmlns\") {\n        return \"\";\n      }\n      if (tags.length === 2) {\n        tagname = prefix + tags[1];\n      }\n    }\n    return tagname;\n  }\n  const attrsRegx = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\n  function buildAttributesMap(attrStr, jPath, tagName) {\n    if (this.options.ignoreAttributes !== true && typeof attrStr === \"string\") {\n      const matches = util2.getAllMatches(attrStr, attrsRegx);\n      const len = matches.length;\n      const attrs = {};\n      for (let i2 = 0; i2 < len; i2++) {\n        const attrName = this.resolveNameSpace(matches[i2][1]);\n        if (this.ignoreAttributesFn(attrName, jPath)) {\n          continue;\n        }\n        let oldVal = matches[i2][4];\n        let aName = this.options.attributeNamePrefix + attrName;\n        if (attrName.length) {\n          if (this.options.transformAttributeName) {\n            aName = this.options.transformAttributeName(aName);\n          }\n          if (aName === \"__proto__\") aName = \"#__proto__\";\n          if (oldVal !== void 0) {\n            if (this.options.trimValues) {\n              oldVal = oldVal.trim();\n            }\n            oldVal = this.replaceEntitiesValue(oldVal);\n            const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n            if (newVal === null || newVal === void 0) {\n              attrs[aName] = oldVal;\n            } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n              attrs[aName] = newVal;\n            } else {\n              attrs[aName] = parseValue(\n                oldVal,\n                this.options.parseAttributeValue,\n                this.options.numberParseOptions\n              );\n            }\n          } else if (this.options.allowBooleanAttributes) {\n            attrs[aName] = true;\n          }\n        }\n      }\n      if (!Object.keys(attrs).length) {\n        return;\n      }\n      if (this.options.attributesGroupName) {\n        const attrCollection = {};\n        attrCollection[this.options.attributesGroupName] = attrs;\n        return attrCollection;\n      }\n      return attrs;\n    }\n  }\n  const parseXml = function(xmlData) {\n    xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n    const xmlObj = new xmlNode2(\"!xml\");\n    let currentNode = xmlObj;\n    let textData = \"\";\n    let jPath = \"\";\n    for (let i2 = 0; i2 < xmlData.length; i2++) {\n      const ch = xmlData[i2];\n      if (ch === \"<\") {\n        if (xmlData[i2 + 1] === \"/\") {\n          const closeIndex = findClosingIndex(xmlData, \">\", i2, \"Closing Tag is not closed.\");\n          let tagName = xmlData.substring(i2 + 2, closeIndex).trim();\n          if (this.options.removeNSPrefix) {\n            const colonIndex = tagName.indexOf(\":\");\n            if (colonIndex !== -1) {\n              tagName = tagName.substr(colonIndex + 1);\n            }\n          }\n          if (this.options.transformTagName) {\n            tagName = this.options.transformTagName(tagName);\n          }\n          if (currentNode) {\n            textData = this.saveTextToParentTag(textData, currentNode, jPath);\n          }\n          const lastTagName = jPath.substring(jPath.lastIndexOf(\".\") + 1);\n          if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n            throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n          }\n          let propIndex = 0;\n          if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n            propIndex = jPath.lastIndexOf(\".\", jPath.lastIndexOf(\".\") - 1);\n            this.tagsNodeStack.pop();\n          } else {\n            propIndex = jPath.lastIndexOf(\".\");\n          }\n          jPath = jPath.substring(0, propIndex);\n          currentNode = this.tagsNodeStack.pop();\n          textData = \"\";\n          i2 = closeIndex;\n        } else if (xmlData[i2 + 1] === \"?\") {\n          let tagData = readTagExp(xmlData, i2, false, \"?>\");\n          if (!tagData) throw new Error(\"Pi Tag is not closed.\");\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n          if (this.options.ignoreDeclaration && tagData.tagName === \"?xml\" || this.options.ignorePiTags) ;\n          else {\n            const childNode = new xmlNode2(tagData.tagName);\n            childNode.add(this.options.textNodeName, \"\");\n            if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n              childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n            }\n            this.addChild(currentNode, childNode, jPath);\n          }\n          i2 = tagData.closeIndex + 1;\n        } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n          const endIndex = findClosingIndex(xmlData, \"-->\", i2 + 4, \"Comment is not closed.\");\n          if (this.options.commentPropName) {\n            const comment = xmlData.substring(i2 + 4, endIndex - 2);\n            textData = this.saveTextToParentTag(textData, currentNode, jPath);\n            currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n          }\n          i2 = endIndex;\n        } else if (xmlData.substr(i2 + 1, 2) === \"!D\") {\n          const result = readDocType(xmlData, i2);\n          this.docTypeEntities = result.entities;\n          i2 = result.i;\n        } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n          const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"CDATA is not closed.\") - 2;\n          const tagExp = xmlData.substring(i2 + 9, closeIndex);\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n          let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n          if (val == void 0) val = \"\";\n          if (this.options.cdataPropName) {\n            currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n          } else {\n            currentNode.add(this.options.textNodeName, val);\n          }\n          i2 = closeIndex + 2;\n        } else {\n          let result = readTagExp(xmlData, i2, this.options.removeNSPrefix);\n          let tagName = result.tagName;\n          const rawTagName = result.rawTagName;\n          let tagExp = result.tagExp;\n          let attrExpPresent = result.attrExpPresent;\n          let closeIndex = result.closeIndex;\n          if (this.options.transformTagName) {\n            tagName = this.options.transformTagName(tagName);\n          }\n          if (currentNode && textData) {\n            if (currentNode.tagname !== \"!xml\") {\n              textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n            }\n          }\n          const lastTag = currentNode;\n          if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n            currentNode = this.tagsNodeStack.pop();\n            jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n          }\n          if (tagName !== xmlObj.tagname) {\n            jPath += jPath ? \".\" + tagName : tagName;\n          }\n          if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n            let tagContent = \"\";\n            if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n              if (tagName[tagName.length - 1] === \"/\") {\n                tagName = tagName.substr(0, tagName.length - 1);\n                jPath = jPath.substr(0, jPath.length - 1);\n                tagExp = tagName;\n              } else {\n                tagExp = tagExp.substr(0, tagExp.length - 1);\n              }\n              i2 = result.closeIndex;\n            } else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n              i2 = result.closeIndex;\n            } else {\n              const result2 = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n              if (!result2) throw new Error(`Unexpected end of ${rawTagName}`);\n              i2 = result2.i;\n              tagContent = result2.tagContent;\n            }\n            const childNode = new xmlNode2(tagName);\n            if (tagName !== tagExp && attrExpPresent) {\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            if (tagContent) {\n              tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n            }\n            jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n            childNode.add(this.options.textNodeName, tagContent);\n            this.addChild(currentNode, childNode, jPath);\n          } else {\n            if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n              if (tagName[tagName.length - 1] === \"/\") {\n                tagName = tagName.substr(0, tagName.length - 1);\n                jPath = jPath.substr(0, jPath.length - 1);\n                tagExp = tagName;\n              } else {\n                tagExp = tagExp.substr(0, tagExp.length - 1);\n              }\n              if (this.options.transformTagName) {\n                tagName = this.options.transformTagName(tagName);\n              }\n              const childNode = new xmlNode2(tagName);\n              if (tagName !== tagExp && attrExpPresent) {\n                childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n              }\n              this.addChild(currentNode, childNode, jPath);\n              jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n            } else {\n              const childNode = new xmlNode2(tagName);\n              this.tagsNodeStack.push(currentNode);\n              if (tagName !== tagExp && attrExpPresent) {\n                childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n              }\n              this.addChild(currentNode, childNode, jPath);\n              currentNode = childNode;\n            }\n            textData = \"\";\n            i2 = closeIndex;\n          }\n        }\n      } else {\n        textData += xmlData[i2];\n      }\n    }\n    return xmlObj.child;\n  };\n  function addChild(currentNode, childNode, jPath) {\n    const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"]);\n    if (result === false) ;\n    else if (typeof result === \"string\") {\n      childNode.tagname = result;\n      currentNode.addChild(childNode);\n    } else {\n      currentNode.addChild(childNode);\n    }\n  }\n  const replaceEntitiesValue = function(val) {\n    if (this.options.processEntities) {\n      for (let entityName in this.docTypeEntities) {\n        const entity = this.docTypeEntities[entityName];\n        val = val.replace(entity.regx, entity.val);\n      }\n      for (let entityName in this.lastEntities) {\n        const entity = this.lastEntities[entityName];\n        val = val.replace(entity.regex, entity.val);\n      }\n      if (this.options.htmlEntities) {\n        for (let entityName in this.htmlEntities) {\n          const entity = this.htmlEntities[entityName];\n          val = val.replace(entity.regex, entity.val);\n        }\n      }\n      val = val.replace(this.ampEntity.regex, this.ampEntity.val);\n    }\n    return val;\n  };\n  function saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n    if (textData) {\n      if (isLeafNode === void 0) isLeafNode = Object.keys(currentNode.child).length === 0;\n      textData = this.parseTextData(\n        textData,\n        currentNode.tagname,\n        jPath,\n        false,\n        currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n        isLeafNode\n      );\n      if (textData !== void 0 && textData !== \"\")\n        currentNode.add(this.options.textNodeName, textData);\n      textData = \"\";\n    }\n    return textData;\n  }\n  function isItStopNode(stopNodes, jPath, currentTagName) {\n    const allNodesExp = \"*.\" + currentTagName;\n    for (const stopNodePath in stopNodes) {\n      const stopNodeExp = stopNodes[stopNodePath];\n      if (allNodesExp === stopNodeExp || jPath === stopNodeExp) return true;\n    }\n    return false;\n  }\n  function tagExpWithClosingIndex(xmlData, i2, closingChar = \">\") {\n    let attrBoundary;\n    let tagExp = \"\";\n    for (let index = i2; index < xmlData.length; index++) {\n      let ch = xmlData[index];\n      if (attrBoundary) {\n        if (ch === attrBoundary) attrBoundary = \"\";\n      } else if (ch === '\"' || ch === \"'\") {\n        attrBoundary = ch;\n      } else if (ch === closingChar[0]) {\n        if (closingChar[1]) {\n          if (xmlData[index + 1] === closingChar[1]) {\n            return {\n              data: tagExp,\n              index\n            };\n          }\n        } else {\n          return {\n            data: tagExp,\n            index\n          };\n        }\n      } else if (ch === \"\t\") {\n        ch = \" \";\n      }\n      tagExp += ch;\n    }\n  }\n  function findClosingIndex(xmlData, str, i2, errMsg) {\n    const closingIndex = xmlData.indexOf(str, i2);\n    if (closingIndex === -1) {\n      throw new Error(errMsg);\n    } else {\n      return closingIndex + str.length - 1;\n    }\n  }\n  function readTagExp(xmlData, i2, removeNSPrefix, closingChar = \">\") {\n    const result = tagExpWithClosingIndex(xmlData, i2 + 1, closingChar);\n    if (!result) return;\n    let tagExp = result.data;\n    const closeIndex = result.index;\n    const separatorIndex = tagExp.search(/\\s/);\n    let tagName = tagExp;\n    let attrExpPresent = true;\n    if (separatorIndex !== -1) {\n      tagName = tagExp.substring(0, separatorIndex);\n      tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n    }\n    const rawTagName = tagName;\n    if (removeNSPrefix) {\n      const colonIndex = tagName.indexOf(\":\");\n      if (colonIndex !== -1) {\n        tagName = tagName.substr(colonIndex + 1);\n        attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n      }\n    }\n    return {\n      tagName,\n      tagExp,\n      closeIndex,\n      attrExpPresent,\n      rawTagName\n    };\n  }\n  function readStopNodeData(xmlData, tagName, i2) {\n    const startIndex = i2;\n    let openTagCount = 1;\n    for (; i2 < xmlData.length; i2++) {\n      if (xmlData[i2] === \"<\") {\n        if (xmlData[i2 + 1] === \"/\") {\n          const closeIndex = findClosingIndex(xmlData, \">\", i2, `${tagName} is not closed`);\n          let closeTagName = xmlData.substring(i2 + 2, closeIndex).trim();\n          if (closeTagName === tagName) {\n            openTagCount--;\n            if (openTagCount === 0) {\n              return {\n                tagContent: xmlData.substring(startIndex, i2),\n                i: closeIndex\n              };\n            }\n          }\n          i2 = closeIndex;\n        } else if (xmlData[i2 + 1] === \"?\") {\n          const closeIndex = findClosingIndex(xmlData, \"?>\", i2 + 1, \"StopNode is not closed.\");\n          i2 = closeIndex;\n        } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n          const closeIndex = findClosingIndex(xmlData, \"-->\", i2 + 3, \"StopNode is not closed.\");\n          i2 = closeIndex;\n        } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n          const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"StopNode is not closed.\") - 2;\n          i2 = closeIndex;\n        } else {\n          const tagData = readTagExp(xmlData, i2, \">\");\n          if (tagData) {\n            const openTagName = tagData && tagData.tagName;\n            if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n              openTagCount++;\n            }\n            i2 = tagData.closeIndex;\n          }\n        }\n      }\n    }\n  }\n  function parseValue(val, shouldParse, options) {\n    if (shouldParse && typeof val === \"string\") {\n      const newval = val.trim();\n      if (newval === \"true\") return true;\n      else if (newval === \"false\") return false;\n      else return toNumber(val, options);\n    } else {\n      if (util2.isExist(val)) {\n        return val;\n      } else {\n        return \"\";\n      }\n    }\n  }\n  OrderedObjParser_1 = OrderedObjParser;\n  return OrderedObjParser_1;\n}\nvar node2json = {};\nvar hasRequiredNode2json;\nfunction requireNode2json() {\n  if (hasRequiredNode2json) return node2json;\n  hasRequiredNode2json = 1;\n  function prettify(node, options) {\n    return compress(node, options);\n  }\n  function compress(arr, options, jPath) {\n    let text;\n    const compressedObj = {};\n    for (let i2 = 0; i2 < arr.length; i2++) {\n      const tagObj = arr[i2];\n      const property = propName(tagObj);\n      let newJpath = \"\";\n      if (jPath === void 0) newJpath = property;\n      else newJpath = jPath + \".\" + property;\n      if (property === options.textNodeName) {\n        if (text === void 0) text = tagObj[property];\n        else text += \"\" + tagObj[property];\n      } else if (property === void 0) {\n        continue;\n      } else if (tagObj[property]) {\n        let val = compress(tagObj[property], options, newJpath);\n        const isLeaf = isLeafTag(val, options);\n        if (tagObj[\":@\"]) {\n          assignAttributes(val, tagObj[\":@\"], newJpath, options);\n        } else if (Object.keys(val).length === 1 && val[options.textNodeName] !== void 0 && !options.alwaysCreateTextNode) {\n          val = val[options.textNodeName];\n        } else if (Object.keys(val).length === 0) {\n          if (options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n          else val = \"\";\n        }\n        if (compressedObj[property] !== void 0 && compressedObj.hasOwnProperty(property)) {\n          if (!Array.isArray(compressedObj[property])) {\n            compressedObj[property] = [compressedObj[property]];\n          }\n          compressedObj[property].push(val);\n        } else {\n          if (options.isArray(property, newJpath, isLeaf)) {\n            compressedObj[property] = [val];\n          } else {\n            compressedObj[property] = val;\n          }\n        }\n      }\n    }\n    if (typeof text === \"string\") {\n      if (text.length > 0) compressedObj[options.textNodeName] = text;\n    } else if (text !== void 0) compressedObj[options.textNodeName] = text;\n    return compressedObj;\n  }\n  function propName(obj) {\n    const keys = Object.keys(obj);\n    for (let i2 = 0; i2 < keys.length; i2++) {\n      const key = keys[i2];\n      if (key !== \":@\") return key;\n    }\n  }\n  function assignAttributes(obj, attrMap, jpath, options) {\n    if (attrMap) {\n      const keys = Object.keys(attrMap);\n      const len = keys.length;\n      for (let i2 = 0; i2 < len; i2++) {\n        const atrrName = keys[i2];\n        if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n          obj[atrrName] = [attrMap[atrrName]];\n        } else {\n          obj[atrrName] = attrMap[atrrName];\n        }\n      }\n    }\n  }\n  function isLeafTag(obj, options) {\n    const { textNodeName } = options;\n    const propCount = Object.keys(obj).length;\n    if (propCount === 0) {\n      return true;\n    }\n    if (propCount === 1 && (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)) {\n      return true;\n    }\n    return false;\n  }\n  node2json.prettify = prettify;\n  return node2json;\n}\nvar XMLParser_1;\nvar hasRequiredXMLParser;\nfunction requireXMLParser() {\n  if (hasRequiredXMLParser) return XMLParser_1;\n  hasRequiredXMLParser = 1;\n  const { buildOptions } = requireOptionsBuilder();\n  const OrderedObjParser = requireOrderedObjParser();\n  const { prettify } = requireNode2json();\n  const validator2 = requireValidator();\n  class XMLParser {\n    constructor(options) {\n      this.externalEntities = {};\n      this.options = buildOptions(options);\n    }\n    /**\n     * Parse XML dats to JS object \n     * @param {string|Buffer} xmlData \n     * @param {boolean|Object} validationOption \n     */\n    parse(xmlData, validationOption) {\n      if (typeof xmlData === \"string\") ;\n      else if (xmlData.toString) {\n        xmlData = xmlData.toString();\n      } else {\n        throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n      }\n      if (validationOption) {\n        if (validationOption === true) validationOption = {};\n        const result = validator2.validate(xmlData, validationOption);\n        if (result !== true) {\n          throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`);\n        }\n      }\n      const orderedObjParser = new OrderedObjParser(this.options);\n      orderedObjParser.addExternalEntities(this.externalEntities);\n      const orderedResult = orderedObjParser.parseXml(xmlData);\n      if (this.options.preserveOrder || orderedResult === void 0) return orderedResult;\n      else return prettify(orderedResult, this.options);\n    }\n    /**\n     * Add Entity which is not by default supported by this library\n     * @param {string} key \n     * @param {string} value \n     */\n    addEntity(key, value) {\n      if (value.indexOf(\"&\") !== -1) {\n        throw new Error(\"Entity value can't have '&'\");\n      } else if (key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1) {\n        throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\");\n      } else if (value === \"&\") {\n        throw new Error(\"An entity with value '&' is not permitted\");\n      } else {\n        this.externalEntities[key] = value;\n      }\n    }\n  }\n  XMLParser_1 = XMLParser;\n  return XMLParser_1;\n}\nvar orderedJs2Xml;\nvar hasRequiredOrderedJs2Xml;\nfunction requireOrderedJs2Xml() {\n  if (hasRequiredOrderedJs2Xml) return orderedJs2Xml;\n  hasRequiredOrderedJs2Xml = 1;\n  const EOL = \"\\n\";\n  function toXml(jArray, options) {\n    let indentation = \"\";\n    if (options.format && options.indentBy.length > 0) {\n      indentation = EOL;\n    }\n    return arrToStr(jArray, options, \"\", indentation);\n  }\n  function arrToStr(arr, options, jPath, indentation) {\n    let xmlStr = \"\";\n    let isPreviousElementTag = false;\n    for (let i2 = 0; i2 < arr.length; i2++) {\n      const tagObj = arr[i2];\n      const tagName = propName(tagObj);\n      if (tagName === void 0) continue;\n      let newJPath = \"\";\n      if (jPath.length === 0) newJPath = tagName;\n      else newJPath = `${jPath}.${tagName}`;\n      if (tagName === options.textNodeName) {\n        let tagText = tagObj[tagName];\n        if (!isStopNode(newJPath, options)) {\n          tagText = options.tagValueProcessor(tagName, tagText);\n          tagText = replaceEntitiesValue(tagText, options);\n        }\n        if (isPreviousElementTag) {\n          xmlStr += indentation;\n        }\n        xmlStr += tagText;\n        isPreviousElementTag = false;\n        continue;\n      } else if (tagName === options.cdataPropName) {\n        if (isPreviousElementTag) {\n          xmlStr += indentation;\n        }\n        xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n        isPreviousElementTag = false;\n        continue;\n      } else if (tagName === options.commentPropName) {\n        xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n        isPreviousElementTag = true;\n        continue;\n      } else if (tagName[0] === \"?\") {\n        const attStr2 = attr_to_str(tagObj[\":@\"], options);\n        const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n        let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n        piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\";\n        xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr2}?>`;\n        isPreviousElementTag = true;\n        continue;\n      }\n      let newIdentation = indentation;\n      if (newIdentation !== \"\") {\n        newIdentation += options.indentBy;\n      }\n      const attStr = attr_to_str(tagObj[\":@\"], options);\n      const tagStart = indentation + `<${tagName}${attStr}`;\n      const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n      if (options.unpairedTags.indexOf(tagName) !== -1) {\n        if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n        else xmlStr += tagStart + \"/>\";\n      } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n        xmlStr += tagStart + \"/>\";\n      } else if (tagValue && tagValue.endsWith(\">\")) {\n        xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n      } else {\n        xmlStr += tagStart + \">\";\n        if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n          xmlStr += indentation + options.indentBy + tagValue + indentation;\n        } else {\n          xmlStr += tagValue;\n        }\n        xmlStr += `</${tagName}>`;\n      }\n      isPreviousElementTag = true;\n    }\n    return xmlStr;\n  }\n  function propName(obj) {\n    const keys = Object.keys(obj);\n    for (let i2 = 0; i2 < keys.length; i2++) {\n      const key = keys[i2];\n      if (!obj.hasOwnProperty(key)) continue;\n      if (key !== \":@\") return key;\n    }\n  }\n  function attr_to_str(attrMap, options) {\n    let attrStr = \"\";\n    if (attrMap && !options.ignoreAttributes) {\n      for (let attr in attrMap) {\n        if (!attrMap.hasOwnProperty(attr)) continue;\n        let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n        attrVal = replaceEntitiesValue(attrVal, options);\n        if (attrVal === true && options.suppressBooleanAttributes) {\n          attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n        } else {\n          attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n        }\n      }\n    }\n    return attrStr;\n  }\n  function isStopNode(jPath, options) {\n    jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n    let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n    for (let index in options.stopNodes) {\n      if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n    }\n    return false;\n  }\n  function replaceEntitiesValue(textValue, options) {\n    if (textValue && textValue.length > 0 && options.processEntities) {\n      for (let i2 = 0; i2 < options.entities.length; i2++) {\n        const entity = options.entities[i2];\n        textValue = textValue.replace(entity.regex, entity.val);\n      }\n    }\n    return textValue;\n  }\n  orderedJs2Xml = toXml;\n  return orderedJs2Xml;\n}\nvar json2xml;\nvar hasRequiredJson2xml;\nfunction requireJson2xml() {\n  if (hasRequiredJson2xml) return json2xml;\n  hasRequiredJson2xml = 1;\n  const buildFromOrderedJs = requireOrderedJs2Xml();\n  const getIgnoreAttributesFn = requireIgnoreAttributes();\n  const defaultOptions = {\n    attributeNamePrefix: \"@_\",\n    attributesGroupName: false,\n    textNodeName: \"#text\",\n    ignoreAttributes: true,\n    cdataPropName: false,\n    format: false,\n    indentBy: \"  \",\n    suppressEmptyNode: false,\n    suppressUnpairedNode: true,\n    suppressBooleanAttributes: true,\n    tagValueProcessor: function(key, a2) {\n      return a2;\n    },\n    attributeValueProcessor: function(attrName, a2) {\n      return a2;\n    },\n    preserveOrder: false,\n    commentPropName: false,\n    unpairedTags: [],\n    entities: [\n      { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },\n      //it must be on top\n      { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n      { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n      { regex: new RegExp(\"'\", \"g\"), val: \"&apos;\" },\n      { regex: new RegExp('\"', \"g\"), val: \"&quot;\" }\n    ],\n    processEntities: true,\n    stopNodes: [],\n    // transformTagName: false,\n    // transformAttributeName: false,\n    oneListGroup: false\n  };\n  function Builder(options) {\n    this.options = Object.assign({}, defaultOptions, options);\n    if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n      this.isAttribute = function() {\n        return false;\n      };\n    } else {\n      this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n      this.attrPrefixLen = this.options.attributeNamePrefix.length;\n      this.isAttribute = isAttribute;\n    }\n    this.processTextOrObjNode = processTextOrObjNode;\n    if (this.options.format) {\n      this.indentate = indentate;\n      this.tagEndChar = \">\\n\";\n      this.newLine = \"\\n\";\n    } else {\n      this.indentate = function() {\n        return \"\";\n      };\n      this.tagEndChar = \">\";\n      this.newLine = \"\";\n    }\n  }\n  Builder.prototype.build = function(jObj) {\n    if (this.options.preserveOrder) {\n      return buildFromOrderedJs(jObj, this.options);\n    } else {\n      if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) {\n        jObj = {\n          [this.options.arrayNodeName]: jObj\n        };\n      }\n      return this.j2x(jObj, 0, []).val;\n    }\n  };\n  Builder.prototype.j2x = function(jObj, level, ajPath) {\n    let attrStr = \"\";\n    let val = \"\";\n    const jPath = ajPath.join(\".\");\n    for (let key in jObj) {\n      if (!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n      if (typeof jObj[key] === \"undefined\") {\n        if (this.isAttribute(key)) {\n          val += \"\";\n        }\n      } else if (jObj[key] === null) {\n        if (this.isAttribute(key)) {\n          val += \"\";\n        } else if (key[0] === \"?\") {\n          val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n        } else {\n          val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n        }\n      } else if (jObj[key] instanceof Date) {\n        val += this.buildTextValNode(jObj[key], key, \"\", level);\n      } else if (typeof jObj[key] !== \"object\") {\n        const attr = this.isAttribute(key);\n        if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n          attrStr += this.buildAttrPairStr(attr, \"\" + jObj[key]);\n        } else if (!attr) {\n          if (key === this.options.textNodeName) {\n            let newval = this.options.tagValueProcessor(key, \"\" + jObj[key]);\n            val += this.replaceEntitiesValue(newval);\n          } else {\n            val += this.buildTextValNode(jObj[key], key, \"\", level);\n          }\n        }\n      } else if (Array.isArray(jObj[key])) {\n        const arrLen = jObj[key].length;\n        let listTagVal = \"\";\n        let listTagAttr = \"\";\n        for (let j2 = 0; j2 < arrLen; j2++) {\n          const item = jObj[key][j2];\n          if (typeof item === \"undefined\") ;\n          else if (item === null) {\n            if (key[0] === \"?\") val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n            else val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n          } else if (typeof item === \"object\") {\n            if (this.options.oneListGroup) {\n              const result = this.j2x(item, level + 1, ajPath.concat(key));\n              listTagVal += result.val;\n              if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n                listTagAttr += result.attrStr;\n              }\n            } else {\n              listTagVal += this.processTextOrObjNode(item, key, level, ajPath);\n            }\n          } else {\n            if (this.options.oneListGroup) {\n              let textValue = this.options.tagValueProcessor(key, item);\n              textValue = this.replaceEntitiesValue(textValue);\n              listTagVal += textValue;\n            } else {\n              listTagVal += this.buildTextValNode(item, key, \"\", level);\n            }\n          }\n        }\n        if (this.options.oneListGroup) {\n          listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n        }\n        val += listTagVal;\n      } else {\n        if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n          const Ks = Object.keys(jObj[key]);\n          const L = Ks.length;\n          for (let j2 = 0; j2 < L; j2++) {\n            attrStr += this.buildAttrPairStr(Ks[j2], \"\" + jObj[key][Ks[j2]]);\n          }\n        } else {\n          val += this.processTextOrObjNode(jObj[key], key, level, ajPath);\n        }\n      }\n    }\n    return { attrStr, val };\n  };\n  Builder.prototype.buildAttrPairStr = function(attrName, val) {\n    val = this.options.attributeValueProcessor(attrName, \"\" + val);\n    val = this.replaceEntitiesValue(val);\n    if (this.options.suppressBooleanAttributes && val === \"true\") {\n      return \" \" + attrName;\n    } else return \" \" + attrName + '=\"' + val + '\"';\n  };\n  function processTextOrObjNode(object, key, level, ajPath) {\n    const result = this.j2x(object, level + 1, ajPath.concat(key));\n    if (object[this.options.textNodeName] !== void 0 && Object.keys(object).length === 1) {\n      return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n    } else {\n      return this.buildObjectNode(result.val, key, result.attrStr, level);\n    }\n  }\n  Builder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n    if (val === \"\") {\n      if (key[0] === \"?\") return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n      else {\n        return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n      }\n    } else {\n      let tagEndExp = \"</\" + key + this.tagEndChar;\n      let piClosingChar = \"\";\n      if (key[0] === \"?\") {\n        piClosingChar = \"?\";\n        tagEndExp = \"\";\n      }\n      if ((attrStr || attrStr === \"\") && val.indexOf(\"<\") === -1) {\n        return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + \">\" + val + tagEndExp;\n      } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n        return this.indentate(level) + `<!--${val}-->` + this.newLine;\n      } else {\n        return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + this.tagEndChar + val + this.indentate(level) + tagEndExp;\n      }\n    }\n  };\n  Builder.prototype.closeTag = function(key) {\n    let closeTag = \"\";\n    if (this.options.unpairedTags.indexOf(key) !== -1) {\n      if (!this.options.suppressUnpairedNode) closeTag = \"/\";\n    } else if (this.options.suppressEmptyNode) {\n      closeTag = \"/\";\n    } else {\n      closeTag = `></${key}`;\n    }\n    return closeTag;\n  };\n  Builder.prototype.buildTextValNode = function(val, key, attrStr, level) {\n    if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n      return this.indentate(level) + `<![CDATA[${val}]]>` + this.newLine;\n    } else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n      return this.indentate(level) + `<!--${val}-->` + this.newLine;\n    } else if (key[0] === \"?\") {\n      return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n    } else {\n      let textValue = this.options.tagValueProcessor(key, val);\n      textValue = this.replaceEntitiesValue(textValue);\n      if (textValue === \"\") {\n        return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n      } else {\n        return this.indentate(level) + \"<\" + key + attrStr + \">\" + textValue + \"</\" + key + this.tagEndChar;\n      }\n    }\n  };\n  Builder.prototype.replaceEntitiesValue = function(textValue) {\n    if (textValue && textValue.length > 0 && this.options.processEntities) {\n      for (let i2 = 0; i2 < this.options.entities.length; i2++) {\n        const entity = this.options.entities[i2];\n        textValue = textValue.replace(entity.regex, entity.val);\n      }\n    }\n    return textValue;\n  };\n  function indentate(level) {\n    return this.options.indentBy.repeat(level);\n  }\n  function isAttribute(name) {\n    if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n      return name.substr(this.attrPrefixLen);\n    } else {\n      return false;\n    }\n  }\n  json2xml = Builder;\n  return json2xml;\n}\nvar fxp;\nvar hasRequiredFxp;\nfunction requireFxp() {\n  if (hasRequiredFxp) return fxp;\n  hasRequiredFxp = 1;\n  const validator2 = requireValidator();\n  const XMLParser = requireXMLParser();\n  const XMLBuilder = requireJson2xml();\n  fxp = {\n    XMLParser,\n    XMLValidator: validator2,\n    XMLBuilder\n  };\n  return fxp;\n}\nvar fxpExports = requireFxp();\nfunction isSvg(string) {\n  if (typeof string !== \"string\") {\n    throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n  }\n  string = string.trim();\n  if (string.length === 0) {\n    return false;\n  }\n  if (fxpExports.XMLValidator.validate(string) !== true) {\n    return false;\n  }\n  let jsonObject;\n  const parser = new fxpExports.XMLParser();\n  try {\n    jsonObject = parser.parse(string);\n  } catch {\n    return false;\n  }\n  if (!jsonObject) {\n    return false;\n  }\n  if (!Object.keys(jsonObject).some((x) => x.toLowerCase() === \"svg\")) {\n    return false;\n  }\n  return true;\n}\nclass View {\n  _view;\n  constructor(view) {\n    isValidView(view);\n    this._view = view;\n  }\n  get id() {\n    return this._view.id;\n  }\n  get name() {\n    return this._view.name;\n  }\n  get caption() {\n    return this._view.caption;\n  }\n  get emptyTitle() {\n    return this._view.emptyTitle;\n  }\n  get emptyCaption() {\n    return this._view.emptyCaption;\n  }\n  get getContents() {\n    return this._view.getContents;\n  }\n  get icon() {\n    return this._view.icon;\n  }\n  set icon(icon) {\n    this._view.icon = icon;\n  }\n  get order() {\n    return this._view.order;\n  }\n  set order(order) {\n    this._view.order = order;\n  }\n  get params() {\n    return this._view.params;\n  }\n  set params(params) {\n    this._view.params = params;\n  }\n  get columns() {\n    return this._view.columns;\n  }\n  get emptyView() {\n    return this._view.emptyView;\n  }\n  get parent() {\n    return this._view.parent;\n  }\n  get sticky() {\n    return this._view.sticky;\n  }\n  get expanded() {\n    return this._view.expanded;\n  }\n  set expanded(expanded) {\n    this._view.expanded = expanded;\n  }\n  get defaultSortKey() {\n    return this._view.defaultSortKey;\n  }\n  get loadChildViews() {\n    return this._view.loadChildViews;\n  }\n}\nconst isValidView = function(view) {\n  if (!view.id || typeof view.id !== \"string\") {\n    throw new Error(\"View id is required and must be a string\");\n  }\n  if (!view.name || typeof view.name !== \"string\") {\n    throw new Error(\"View name is required and must be a string\");\n  }\n  if (\"caption\" in view && typeof view.caption !== \"string\") {\n    throw new Error(\"View caption must be a string\");\n  }\n  if (!view.getContents || typeof view.getContents !== \"function\") {\n    throw new Error(\"View getContents is required and must be a function\");\n  }\n  if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n    throw new Error(\"View icon is required and must be a valid svg string\");\n  }\n  if (\"order\" in view && typeof view.order !== \"number\") {\n    throw new Error(\"View order must be a number\");\n  }\n  if (view.columns) {\n    view.columns.forEach((column) => {\n      if (!(column instanceof Column)) {\n        throw new Error(\"View columns must be an array of Column. Invalid column found\");\n      }\n    });\n  }\n  if (view.emptyView && typeof view.emptyView !== \"function\") {\n    throw new Error(\"View emptyView must be a function\");\n  }\n  if (view.parent && typeof view.parent !== \"string\") {\n    throw new Error(\"View parent must be a string\");\n  }\n  if (\"sticky\" in view && typeof view.sticky !== \"boolean\") {\n    throw new Error(\"View sticky must be a boolean\");\n  }\n  if (\"expanded\" in view && typeof view.expanded !== \"boolean\") {\n    throw new Error(\"View expanded must be a boolean\");\n  }\n  if (view.defaultSortKey && typeof view.defaultSortKey !== \"string\") {\n    throw new Error(\"View defaultSortKey must be a string\");\n  }\n  if (view.loadChildViews && typeof view.loadChildViews !== \"function\") {\n    throw new Error(\"View loadChildViews must be a function\");\n  }\n  return true;\n};\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n  if (hasRequiredDebug) return debug_1;\n  hasRequiredDebug = 1;\n  const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n  };\n  debug_1 = debug;\n  return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n  if (hasRequiredConstants) return constants;\n  hasRequiredConstants = 1;\n  const SEMVER_SPEC_VERSION = \"2.0.0\";\n  const MAX_LENGTH = 256;\n  const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n  9007199254740991;\n  const MAX_SAFE_COMPONENT_LENGTH = 16;\n  const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n  const RELEASE_TYPES = [\n    \"major\",\n    \"premajor\",\n    \"minor\",\n    \"preminor\",\n    \"patch\",\n    \"prepatch\",\n    \"prerelease\"\n  ];\n  constants = {\n    MAX_LENGTH,\n    MAX_SAFE_COMPONENT_LENGTH,\n    MAX_SAFE_BUILD_LENGTH,\n    MAX_SAFE_INTEGER,\n    RELEASE_TYPES,\n    SEMVER_SPEC_VERSION,\n    FLAG_INCLUDE_PRERELEASE: 1,\n    FLAG_LOOSE: 2\n  };\n  return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n  if (hasRequiredRe) return re.exports;\n  hasRequiredRe = 1;\n  (function(module, exports) {\n    const {\n      MAX_SAFE_COMPONENT_LENGTH,\n      MAX_SAFE_BUILD_LENGTH,\n      MAX_LENGTH\n    } = requireConstants();\n    const debug = requireDebug();\n    exports = module.exports = {};\n    const re2 = exports.re = [];\n    const safeRe = exports.safeRe = [];\n    const src = exports.src = [];\n    const t2 = exports.t = {};\n    let R = 0;\n    const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n    const safeRegexReplacements = [\n      [\"\\\\s\", 1],\n      [\"\\\\d\", MAX_LENGTH],\n      [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n    ];\n    const makeSafeRegex = (value) => {\n      for (const [token, max] of safeRegexReplacements) {\n        value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n      }\n      return value;\n    };\n    const createToken = (name, value, isGlobal) => {\n      const safe = makeSafeRegex(value);\n      const index = R++;\n      debug(name, index, value);\n      t2[name] = index;\n      src[index] = value;\n      re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n      safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n    };\n    createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n    createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n    createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n    createToken(\"MAINVERSION\", `(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})`);\n    createToken(\"MAINVERSIONLOOSE\", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n    createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t2.NUMERICIDENTIFIER]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n    createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t2.NUMERICIDENTIFIERLOOSE]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n    createToken(\"PRERELEASE\", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIER]})*))`);\n    createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`);\n    createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n    createToken(\"BUILD\", `(?:\\\\+(${src[t2.BUILDIDENTIFIER]}(?:\\\\.${src[t2.BUILDIDENTIFIER]})*))`);\n    createToken(\"FULLPLAIN\", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`);\n    createToken(\"FULL\", `^${src[t2.FULLPLAIN]}$`);\n    createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`);\n    createToken(\"LOOSE\", `^${src[t2.LOOSEPLAIN]}$`);\n    createToken(\"GTLT\", \"((?:<|>)?=?)\");\n    createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n    createToken(\"XRANGEIDENTIFIER\", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n    createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`);\n    createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`);\n    createToken(\"XRANGE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAIN]}$`);\n    createToken(\"XRANGELOOSE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAINLOOSE]}$`);\n    createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n    createToken(\"COERCE\", `${src[t2.COERCEPLAIN]}(?:$|[^\\\\d])`);\n    createToken(\"COERCEFULL\", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\\\d])`);\n    createToken(\"COERCERTL\", src[t2.COERCE], true);\n    createToken(\"COERCERTLFULL\", src[t2.COERCEFULL], true);\n    createToken(\"LONETILDE\", \"(?:~>?)\");\n    createToken(\"TILDETRIM\", `(\\\\s*)${src[t2.LONETILDE]}\\\\s+`, true);\n    exports.tildeTrimReplace = \"$1~\";\n    createToken(\"TILDE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`);\n    createToken(\"TILDELOOSE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`);\n    createToken(\"LONECARET\", \"(?:\\\\^)\");\n    createToken(\"CARETTRIM\", `(\\\\s*)${src[t2.LONECARET]}\\\\s+`, true);\n    exports.caretTrimReplace = \"$1^\";\n    createToken(\"CARET\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`);\n    createToken(\"CARETLOOSE\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`);\n    createToken(\"COMPARATORLOOSE\", `^${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]})$|^$`);\n    createToken(\"COMPARATOR\", `^${src[t2.GTLT]}\\\\s*(${src[t2.FULLPLAIN]})$|^$`);\n    createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true);\n    exports.comparatorTrimReplace = \"$1$2$3\";\n    createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t2.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAIN]})\\\\s*$`);\n    createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t2.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAINLOOSE]})\\\\s*$`);\n    createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n    createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n    createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n  })(re, re.exports);\n  return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n  if (hasRequiredParseOptions) return parseOptions_1;\n  hasRequiredParseOptions = 1;\n  const looseOption = Object.freeze({ loose: true });\n  const emptyOpts = Object.freeze({});\n  const parseOptions = (options) => {\n    if (!options) {\n      return emptyOpts;\n    }\n    if (typeof options !== \"object\") {\n      return looseOption;\n    }\n    return options;\n  };\n  parseOptions_1 = parseOptions;\n  return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n  if (hasRequiredIdentifiers) return identifiers;\n  hasRequiredIdentifiers = 1;\n  const numeric = /^[0-9]+$/;\n  const compareIdentifiers = (a2, b2) => {\n    const anum = numeric.test(a2);\n    const bnum = numeric.test(b2);\n    if (anum && bnum) {\n      a2 = +a2;\n      b2 = +b2;\n    }\n    return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n  };\n  const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n  identifiers = {\n    compareIdentifiers,\n    rcompareIdentifiers\n  };\n  return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n  if (hasRequiredSemver) return semver;\n  hasRequiredSemver = 1;\n  const debug = requireDebug();\n  const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n  const { safeRe: re2, t: t2 } = requireRe();\n  const parseOptions = requireParseOptions();\n  const { compareIdentifiers } = requireIdentifiers();\n  class SemVer {\n    constructor(version, options) {\n      options = parseOptions(options);\n      if (version instanceof SemVer) {\n        if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n          return version;\n        } else {\n          version = version.version;\n        }\n      } else if (typeof version !== \"string\") {\n        throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n      }\n      if (version.length > MAX_LENGTH) {\n        throw new TypeError(\n          `version is longer than ${MAX_LENGTH} characters`\n        );\n      }\n      debug(\"SemVer\", version, options);\n      this.options = options;\n      this.loose = !!options.loose;\n      this.includePrerelease = !!options.includePrerelease;\n      const m2 = version.trim().match(options.loose ? re2[t2.LOOSE] : re2[t2.FULL]);\n      if (!m2) {\n        throw new TypeError(`Invalid Version: ${version}`);\n      }\n      this.raw = version;\n      this.major = +m2[1];\n      this.minor = +m2[2];\n      this.patch = +m2[3];\n      if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n        throw new TypeError(\"Invalid major version\");\n      }\n      if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n        throw new TypeError(\"Invalid minor version\");\n      }\n      if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n        throw new TypeError(\"Invalid patch version\");\n      }\n      if (!m2[4]) {\n        this.prerelease = [];\n      } else {\n        this.prerelease = m2[4].split(\".\").map((id) => {\n          if (/^[0-9]+$/.test(id)) {\n            const num = +id;\n            if (num >= 0 && num < MAX_SAFE_INTEGER) {\n              return num;\n            }\n          }\n          return id;\n        });\n      }\n      this.build = m2[5] ? m2[5].split(\".\") : [];\n      this.format();\n    }\n    format() {\n      this.version = `${this.major}.${this.minor}.${this.patch}`;\n      if (this.prerelease.length) {\n        this.version += `-${this.prerelease.join(\".\")}`;\n      }\n      return this.version;\n    }\n    toString() {\n      return this.version;\n    }\n    compare(other) {\n      debug(\"SemVer.compare\", this.version, this.options, other);\n      if (!(other instanceof SemVer)) {\n        if (typeof other === \"string\" && other === this.version) {\n          return 0;\n        }\n        other = new SemVer(other, this.options);\n      }\n      if (other.version === this.version) {\n        return 0;\n      }\n      return this.compareMain(other) || this.comparePre(other);\n    }\n    compareMain(other) {\n      if (!(other instanceof SemVer)) {\n        other = new SemVer(other, this.options);\n      }\n      return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n    }\n    comparePre(other) {\n      if (!(other instanceof SemVer)) {\n        other = new SemVer(other, this.options);\n      }\n      if (this.prerelease.length && !other.prerelease.length) {\n        return -1;\n      } else if (!this.prerelease.length && other.prerelease.length) {\n        return 1;\n      } else if (!this.prerelease.length && !other.prerelease.length) {\n        return 0;\n      }\n      let i2 = 0;\n      do {\n        const a2 = this.prerelease[i2];\n        const b2 = other.prerelease[i2];\n        debug(\"prerelease compare\", i2, a2, b2);\n        if (a2 === void 0 && b2 === void 0) {\n          return 0;\n        } else if (b2 === void 0) {\n          return 1;\n        } else if (a2 === void 0) {\n          return -1;\n        } else if (a2 === b2) {\n          continue;\n        } else {\n          return compareIdentifiers(a2, b2);\n        }\n      } while (++i2);\n    }\n    compareBuild(other) {\n      if (!(other instanceof SemVer)) {\n        other = new SemVer(other, this.options);\n      }\n      let i2 = 0;\n      do {\n        const a2 = this.build[i2];\n        const b2 = other.build[i2];\n        debug(\"build compare\", i2, a2, b2);\n        if (a2 === void 0 && b2 === void 0) {\n          return 0;\n        } else if (b2 === void 0) {\n          return 1;\n        } else if (a2 === void 0) {\n          return -1;\n        } else if (a2 === b2) {\n          continue;\n        } else {\n          return compareIdentifiers(a2, b2);\n        }\n      } while (++i2);\n    }\n    // preminor will bump the version up to the next minor release, and immediately\n    // down to pre-release. premajor and prepatch work the same way.\n    inc(release, identifier, identifierBase) {\n      switch (release) {\n        case \"premajor\":\n          this.prerelease.length = 0;\n          this.patch = 0;\n          this.minor = 0;\n          this.major++;\n          this.inc(\"pre\", identifier, identifierBase);\n          break;\n        case \"preminor\":\n          this.prerelease.length = 0;\n          this.patch = 0;\n          this.minor++;\n          this.inc(\"pre\", identifier, identifierBase);\n          break;\n        case \"prepatch\":\n          this.prerelease.length = 0;\n          this.inc(\"patch\", identifier, identifierBase);\n          this.inc(\"pre\", identifier, identifierBase);\n          break;\n        // If the input is a non-prerelease version, this acts the same as\n        // prepatch.\n        case \"prerelease\":\n          if (this.prerelease.length === 0) {\n            this.inc(\"patch\", identifier, identifierBase);\n          }\n          this.inc(\"pre\", identifier, identifierBase);\n          break;\n        case \"major\":\n          if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n            this.major++;\n          }\n          this.minor = 0;\n          this.patch = 0;\n          this.prerelease = [];\n          break;\n        case \"minor\":\n          if (this.patch !== 0 || this.prerelease.length === 0) {\n            this.minor++;\n          }\n          this.patch = 0;\n          this.prerelease = [];\n          break;\n        case \"patch\":\n          if (this.prerelease.length === 0) {\n            this.patch++;\n          }\n          this.prerelease = [];\n          break;\n        // This probably shouldn't be used publicly.\n        // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n        case \"pre\": {\n          const base = Number(identifierBase) ? 1 : 0;\n          if (!identifier && identifierBase === false) {\n            throw new Error(\"invalid increment argument: identifier is empty\");\n          }\n          if (this.prerelease.length === 0) {\n            this.prerelease = [base];\n          } else {\n            let i2 = this.prerelease.length;\n            while (--i2 >= 0) {\n              if (typeof this.prerelease[i2] === \"number\") {\n                this.prerelease[i2]++;\n                i2 = -2;\n              }\n            }\n            if (i2 === -1) {\n              if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n                throw new Error(\"invalid increment argument: identifier already exists\");\n              }\n              this.prerelease.push(base);\n            }\n          }\n          if (identifier) {\n            let prerelease = [identifier, base];\n            if (identifierBase === false) {\n              prerelease = [identifier];\n            }\n            if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n              if (isNaN(this.prerelease[1])) {\n                this.prerelease = prerelease;\n              }\n            } else {\n              this.prerelease = prerelease;\n            }\n          }\n          break;\n        }\n        default:\n          throw new Error(`invalid increment argument: ${release}`);\n      }\n      this.raw = this.format();\n      if (this.build.length) {\n        this.raw += `+${this.build.join(\".\")}`;\n      }\n      return this;\n    }\n  }\n  semver = SemVer;\n  return semver;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n  if (hasRequiredParse) return parse_1;\n  hasRequiredParse = 1;\n  const SemVer = requireSemver();\n  const parse = (version, options, throwErrors = false) => {\n    if (version instanceof SemVer) {\n      return version;\n    }\n    try {\n      return new SemVer(version, options);\n    } catch (er) {\n      if (!throwErrors) {\n        return null;\n      }\n      throw er;\n    }\n  };\n  parse_1 = parse;\n  return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n  if (hasRequiredValid) return valid_1;\n  hasRequiredValid = 1;\n  const parse = requireParse();\n  const valid2 = (version, options) => {\n    const v = parse(version, options);\n    return v ? v.version : null;\n  };\n  valid_1 = valid2;\n  return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n  if (hasRequiredMajor) return major_1;\n  hasRequiredMajor = 1;\n  const SemVer = requireSemver();\n  const major2 = (a2, loose) => new SemVer(a2, loose).major;\n  major_1 = major2;\n  return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nclass ProxyBus {\n  bus;\n  constructor(bus2) {\n    if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n      console.warn(\"Proxying an event bus with an unknown or invalid version\");\n    } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n      console.warn(\n        \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n      );\n    }\n    this.bus = bus2;\n  }\n  getVersion() {\n    return \"3.3.1\";\n  }\n  subscribe(name, handler) {\n    this.bus.subscribe(name, handler);\n  }\n  unsubscribe(name, handler) {\n    this.bus.unsubscribe(name, handler);\n  }\n  emit(name, event) {\n    this.bus.emit(name, event);\n  }\n}\nclass SimpleBus {\n  handlers = /* @__PURE__ */ new Map();\n  getVersion() {\n    return \"3.3.1\";\n  }\n  subscribe(name, handler) {\n    this.handlers.set(\n      name,\n      (this.handlers.get(name) || []).concat(\n        handler\n      )\n    );\n  }\n  unsubscribe(name, handler) {\n    this.handlers.set(\n      name,\n      (this.handlers.get(name) || []).filter((h2) => h2 !== handler)\n    );\n  }\n  emit(name, event) {\n    (this.handlers.get(name) || []).forEach((h2) => {\n      try {\n        h2(event);\n      } catch (e2) {\n        console.error(\"could not invoke event listener\", e2);\n      }\n    });\n  }\n}\nlet bus = null;\nfunction getBus() {\n  if (bus !== null) {\n    return bus;\n  }\n  if (typeof window === \"undefined\") {\n    return new Proxy({}, {\n      get: () => {\n        return () => console.error(\n          \"Window not available, EventBus can not be established!\"\n        );\n      }\n    });\n  }\n  if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n    console.warn(\n      \"found old event bus instance at OC._eventBus. Update your version!\"\n    );\n    window._nc_event_bus = window.OC._eventBus;\n  }\n  if (typeof window?._nc_event_bus !== \"undefined\") {\n    bus = new ProxyBus(window._nc_event_bus);\n  } else {\n    bus = window._nc_event_bus = new SimpleBus();\n  }\n  return bus;\n}\nfunction emit(name, event) {\n  getBus().emit(name, event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n  id;\n  order;\n  constructor(id, order = 100) {\n    super();\n    this.id = id;\n    this.order = order;\n  }\n  filter(nodes) {\n    throw new Error(\"Not implemented\");\n  }\n  updateChips(chips) {\n    this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n  }\n  filterUpdated() {\n    this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n  }\n}\nfunction registerFileListFilter(filter) {\n  if (!window._nc_filelist_filters) {\n    window._nc_filelist_filters = /* @__PURE__ */ new Map();\n  }\n  if (window._nc_filelist_filters.has(filter.id)) {\n    throw new Error(`File list filter \"${filter.id}\" already registered`);\n  }\n  window._nc_filelist_filters.set(filter.id, filter);\n  emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n  if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n    window._nc_filelist_filters.delete(filterId);\n    emit(\"files:filter:removed\", filterId);\n  }\n}\nfunction getFileListFilters() {\n  if (!window._nc_filelist_filters) {\n    return [];\n  }\n  return [...window._nc_filelist_filters.values()];\n}\nconst addNewFileMenuEntry = function(entry) {\n  const newFileMenu = getNewFileMenu();\n  return newFileMenu.registerEntry(entry);\n};\nconst removeNewFileMenuEntry = function(entry) {\n  const newFileMenu = getNewFileMenu();\n  return newFileMenu.unregisterEntry(entry);\n};\nconst getNewFileMenuEntries = function(context) {\n  const newFileMenu = getNewFileMenu();\n  return newFileMenu.getEntries(context).sort((a2, b2) => {\n    if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n      return a2.order - b2.order;\n    }\n    return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n  });\n};\nexport {\n  Column,\n  DefaultType,\n  q as File,\n  FileAction,\n  FileListAction,\n  FileListFilter,\n  F as FileType,\n  FilesSortingMode,\n  s as Folder,\n  Header,\n  InvalidFilenameError,\n  InvalidFilenameErrorReason,\n  Navigation,\n  NewMenuEntryCategory,\n  N as Node,\n  t as NodeStatus,\n  P as Permission,\n  View,\n  addNewFileMenuEntry,\n  c as davGetClient,\n  l as davGetDefaultPropfind,\n  m as davGetFavoritesReport,\n  n as davGetRecentSearch,\n  a as davGetRemoteURL,\n  g as davGetRootPath,\n  p as davParsePermissions,\n  b as davRemoteURL,\n  r as davResultToNode,\n  d as davRootPath,\n  h as defaultDavNamespaces,\n  f as defaultDavProperties,\n  formatFileSize,\n  k as getDavNameSpaces,\n  j as getDavProperties,\n  e as getFavoriteNodes,\n  getFileActions,\n  getFileListActions,\n  getFileListFilters,\n  getFileListHeaders,\n  getNavigation,\n  getNewFileMenuEntries,\n  getUniqueName,\n  isFilenameValid,\n  orderBy,\n  parseFileSize,\n  i as registerDavProperty,\n  registerFileAction,\n  registerFileListAction,\n  registerFileListFilter,\n  registerFileListHeaders,\n  removeNewFileMenuEntry,\n  sortNodes,\n  unregisterFileListFilter,\n  validateFilename\n};\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, `.widget-file[data-v-f5ca5316]{display:flex;flex-grow:1;color:var(--color-main-text) !important;text-decoration:none !important;padding:0 !important}.widget-file__image[data-v-f5ca5316]{width:30%;min-width:160px;max-width:320px;background-position:center;background-size:cover;background-repeat:no-repeat}.widget-file__image--icon[data-v-f5ca5316]{min-width:88px;max-width:88px;padding:12px;padding-inline-end:0;display:flex;align-items:center;justify-content:center}.widget-file__title[data-v-f5ca5316]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:bold}.widget-file__details[data-v-f5ca5316]{padding:12px;flex-grow:1;display:flex;flex-direction:column}.widget-file__details p[data-v-f5ca5316]{margin:0;padding:0}.widget-file__description[data-v-f5ca5316]{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}.widget-file--link[data-v-f5ca5316]{color:var(--color-text-maxcontrast)}.widget-file--interactive[data-v-f5ca5316]{position:relative;height:400px;max-height:50vh;margin:0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/ReferenceFileWidget.vue\"],\"names\":[],\"mappings\":\"AACA,8BACC,YAAA,CACA,WAAA,CACA,uCAAA,CACA,+BAAA,CACA,oBAAA,CAEA,qCACC,SAAA,CACA,eAAA,CACA,eAAA,CACA,0BAAA,CACA,qBAAA,CACA,2BAAA,CAEA,2CACC,cAAA,CACA,cAAA,CACA,YAAA,CACA,oBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAIF,qCACC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,gBAAA,CAGD,uCACC,YAAA,CACA,WAAA,CACA,YAAA,CACA,qBAAA,CAEA,yCACC,QAAA,CACA,SAAA,CAIF,2CACC,eAAA,CACA,sBAAA,CACA,mBAAA,CACA,oBAAA,CACA,YAAA,CACA,2BAAA,CAID,oCACC,mCAAA,CAGD,2CACC,iBAAA,CACA,YAAA,CACA,eAAA,CACA,QAAA\",\"sourcesContent\":[\"\\n.widget-file {\\n\\tdisplay: flex;\\n\\tflex-grow: 1;\\n\\tcolor: var(--color-main-text) !important;\\n\\ttext-decoration: none !important;\\n\\tpadding: 0 !important;\\n\\n\\t&__image {\\n\\t\\twidth: 30%;\\n\\t\\tmin-width: 160px;\\n\\t\\tmax-width: 320px;\\n\\t\\tbackground-position: center;\\n\\t\\tbackground-size: cover;\\n\\t\\tbackground-repeat: no-repeat;\\n\\n\\t\\t&--icon {\\n\\t\\t\\tmin-width: 88px;\\n\\t\\t\\tmax-width: 88px;\\n\\t\\t\\tpadding: 12px;\\n\\t\\t\\tpadding-inline-end: 0;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t}\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\twhite-space: nowrap;\\n\\t\\tfont-weight: bold;\\n\\t}\\n\\n\\t&__details {\\n\\t\\tpadding: 12px;\\n\\t\\tflex-grow: 1;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\n\\t\\tp {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&__description {\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tdisplay: -webkit-box;\\n\\t\\t-webkit-line-clamp: 3;\\n\\t\\tline-clamp: 3;\\n\\t\\t-webkit-box-orient: vertical;\\n\\t}\\n\\n\\t// No preview, standard link to ressource\\n\\t&--link {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&--interactive {\\n\\t\\tposition: relative;\\n\\t\\theight: 400px;\\n\\t\\tmax-height: 50vh;\\n\\t\\tmargin: 0;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { defineAsyncComponent } from \"vue\";\nconst FilePickerVue = defineAsyncComponent(() => import(\"./FilePicker-CsU6FfAP.mjs\"));\nexport {\n  FilePickerVue\n};\n//# sourceMappingURL=index-BC-7VPxC.mjs.map\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_vm.accessible)?_c('div',{staticClass:\"widget-file widget-file--no-access\"},[_c('span',{staticClass:\"widget-file__image widget-file__image--icon\"},[(_vm.isFolder)?_c('FolderIcon',{attrs:{\"size\":88}}):_c('FileIcon',{attrs:{\"size\":88}})],1),_vm._v(\" \"),_c('span',{staticClass:\"widget-file__details\"},[_c('p',{staticClass:\"widget-file__title\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'File cannot be accessed'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('p',{staticClass:\"widget-file__description\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'The file could not be found or you do not have permissions to view it. Ask the sender to share it.'))+\"\\n\\t\\t\")])])]):(_vm.interactive && _vm.viewerHandler && !_vm.failedViewer)?_c(_vm.viewerHandler.component,_vm._b({tag:\"component\",staticClass:\"widget-file widget-file--interactive\",attrs:{\"active\":false /* prevent video from autoplaying */,\"can-swipe\":false,\"can-zoom\":false,\"is-embedded\":true,\"file-list\":[_vm.viewerFile],\"is-full-screen\":false,\"is-sidebar-shown\":false},on:{\"error\":function($event){_vm.failedViewer = true}}},'component',_vm.viewerFile,false)):_c('a',{staticClass:\"widget-file widget-file--link\",attrs:{\"href\":_vm.richObject.link,\"target\":\"_blank\"},on:{\"click\":_vm.navigate}},[_c('span',{staticClass:\"widget-file__image\",class:_vm.filePreviewClass,style:(_vm.filePreviewStyle)},[(!_vm.previewUrl)?[(_vm.isFolder)?_c('FolderIcon',{attrs:{\"size\":88,\"fill-color\":\"var(--color-primary-element)\"}}):_c('FileIcon',{attrs:{\"size\":88}})]:_vm._e()],2),_vm._v(\" \"),_c('span',{staticClass:\"widget-file__details\"},[_c('p',{staticClass:\"widget-file__title\"},[_vm._v(_vm._s(_vm.richObject.name))]),_vm._v(\" \"),_c('p',{staticClass:\"widget-file__description\"},[_vm._v(_vm._s(_vm.fileSize)),_c('br'),_vm._v(_vm._s(_vm.fileMtime))]),_vm._v(\" \"),_c('p',{staticClass:\"widget-file__link\"},[_vm._v(_vm._s(_vm.filePath))])])])\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!./ReferenceFileWidget.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!./ReferenceFileWidget.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!./ReferenceFileWidget.vue?vue&type=style&index=0&id=f5ca5316&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!./ReferenceFileWidget.vue?vue&type=style&index=0&id=f5ca5316&prod&lang=scss&scoped=true\";\n       export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ReferenceFileWidget.vue?vue&type=template&id=f5ca5316&scoped=true\"\nimport script from \"./ReferenceFileWidget.vue?vue&type=script&lang=ts\"\nexport * from \"./ReferenceFileWidget.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ReferenceFileWidget.vue?vue&type=style&index=0&id=f5ca5316&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  \"f5ca5316\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{attrs:{\"id\":_vm.containerId}},[_c('FilePicker',_vm._b({on:{\"close\":_vm.onClose}},'FilePicker',_vm.filepickerOptions,false))],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!./FileReferencePickerElement.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!./FileReferencePickerElement.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileReferencePickerElement.vue?vue&type=template&id=444a075a\"\nimport script from \"./FileReferencePickerElement.vue?vue&type=script&lang=ts\"\nexport * from \"./FileReferencePickerElement.vue?vue&type=script&lang=ts\"\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  null,\n  null\n  \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport Vue from 'vue';\nimport { t } from '@nextcloud/l10n';\nimport { registerWidget, registerCustomPickerElement, NcCustomPickerRenderResult } from '@nextcloud/vue/components/NcRichText';\nimport FileWidget from './views/ReferenceFileWidget.vue';\nimport FileReferencePickerElement from './views/FileReferencePickerElement.vue';\nVue.mixin({\n    methods: {\n        t,\n    },\n});\nregisterWidget('file', (el, { richObjectType, richObject, accessible, interactive }) => {\n    const Widget = Vue.extend(FileWidget);\n    new Widget({\n        propsData: {\n            richObjectType,\n            richObject,\n            accessible,\n            interactive,\n        },\n    }).$mount(el);\n}, () => { }, { hasInteractiveView: true });\nregisterCustomPickerElement('files', (el, { providerId, accessible }) => {\n    const Element = Vue.extend(FileReferencePickerElement);\n    const vueElement = new Element({\n        propsData: {\n            providerId,\n            accessible,\n        },\n    }).$mount(el);\n    return new NcCustomPickerRenderResult(vueElement.$el, vueElement);\n}, (el, renderResult) => {\n    renderResult.object.$destroy();\n});\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\":\"8dfb2392d7107957a510\",\"5862\":\"142cd48ca8ec32e57725\",\"7432\":\"126e4e5eedf7af9a92fc\"}[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 = 54;","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\t54: 0,\n\t640: 0,\n\t5810: 0,\n\t9697: 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__(75673)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","r","_sfc_main$8","name","components","NcButton","props","reference","type","Object","required","interactive","Boolean","default","interactiveOptIn","setup","isVisible","widgetRoot","width","entry","value","isIntersecting","data","showInteractive","rendered","idleTimeout","computed","isInteractive","this","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","target","watch","handler","val","clearTimeout","renderWidget","setTimeout","destroyWidget","immediate","beforeDestroy","methods","t","enableInteractive","$refs","customWidget","innerHTML","widget","document","createElement","style","appendChild","$nextTick","$el","_sfc_render$8","_vm","_c","_self","ref","class","staticClass","_b","tag","attrs","thumb","_e","_v","_s","description","on","_sfc_staticRenderFns$8","NcReferenceWidget","n","exports","_sfc_main$7","provider","emits","isRegistered","id","renderResult","mounted","renderElement","domElement","renderFunctionResult","providerId","Promise","resolve","then","result","object","_isVue","$on","onSubmit","onCancel","element","addEventListener","e","detail","$emit","_sfc_render$7","_sfc_staticRenderFns$7","NcCustomPickerElement","anyLinkProvider","title","icon_url","searchProvider","query","limit","providers","window","_vue_richtext_reference_providers","filter","p","keep","search_providers_ids","length","console","debug","escapedQuery","replace","regexp","RegExp","filteredSortedProviders","providerList","timestamps","_vue_richtext_reference_provider_timestamps","sort","a","b","order","ta","tb","sortProviders","match","searchResult","slice","push","mytimer","delay","callback","ms","context","args","arguments","apply","isUrl","str","URL","error","_sfc_main$6","String","fillColor","size","Number","_sfc_render$6","$event","$attrs","_sfc_staticRenderFns$6","LinkVariantIcon","_sfc_main$5","NcSelect","NcHighlight","NcEmptyContent","selectedProvider","multiselectPlaceholder","providerIconAlt","options","isLink","focus","querySelector","onProviderSelected","onSearch","loading","_sfc_render$5","scopedSlots","_u","key","fn","option","model","$$v","expression","proxy","_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","nativeOn","indexOf","_k","keyCode","_sfc_staticRenderFns$4","NcRawLinkInput","_sfc_main$3","_sfc_render$3","icon","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","index","isPaginated","isMore","isLoading","resetResults","cancelSearchRequests","onSearchInput","updateSearch","onSelectResultSelected","item","searchMoreOf","searchProviderId","searchProviders","searchPromises","searchOneProvider","cursor","allSettled","promises","find","status","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","stopPropagation","preventDefault","_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","_l","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","assign","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","constructor","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","module","importRehypeHighlightLibrary","nestedNode","inputNode","labelParts","nestedNodeIndex","inputComponent","N","disabled","placeholder","processSync","render","InvalidFilenameErrorReason","InvalidFilenameErrorReason2","InvalidFilenameError","super","segment","filename","cause","validateFilename","capabilities","files","forbiddenCharacters","forbidden_filename_characters","_oc_config","forbidden_filenames_characters","toLocaleLowerCase","forbidden_filenames","endOfBasename","basename2","forbidden_filename_basenames","forbiddenFilenameExtensions","forbidden_filename_extensions","endsWith","humanList","humanListBinary","formatFileSize","skipSmallSizes","binaryPrefixes","base1000","log","readableFormat","relativeSize","pow","toFixed","parseFloat","toLocaleString","stringify","toISOString","sortNodes","sortingOptions","sortingMode","sortingOrder","collection","identifiers2","orders","sorting","collator","Intl","Collator","numeric","usage","a2","b2","compare","orderBy","sortFavoritesFirst","v","attributes","favorite","sortFoldersFirst","displayname","basename","hasRequiredUtil","hasRequiredValidator","validator","util","requireUtil","nameStartChar","nameRegexp","regexName","isExist","isEmptyObject","obj","keys","merge","arrayMode","len","i2","getValue","isName","getAllMatches","allmatches","startIndex","requireValidator","util2","defaultOptions","allowBooleanAttributes","unpairedTags","isWhiteSpace","char","readPI","xmlData","tagname","substr","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","tags","tagFound","reachedRoot","err","tagStartPos","closingTag","msg","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","tagClosed","otg","openPos","col","afterAmp","validateAmpersand","JSON","t2","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re2","validateNumberAmpersand","message","lineNumber","hasRequiredOptionsBuilder","xmlNode","hasRequiredXmlNode","DocTypeReader","hasRequiredDocTypeReader","strnum","hasRequiredStrnum","ignoreAttributes","hasRequiredIgnoreAttributes","OrderedObjParser_1","hasRequiredOrderedObjParser","OptionsBuilder","requireIgnoreAttributes","ignoreAttributes2","hasRequiredNode2json","XMLParser_1","hasRequiredXMLParser","orderedJs2Xml","hasRequiredOrderedJs2Xml","json2xml","hasRequiredJson2xml","fxp","hasRequiredFxp","debug_1","hasRequiredDebug","constants","hasRequiredConstants","node2json","requireNode2json","compress","arr","jPath","compressedObj","tagObj","property","propName","newJpath","textNodeName","isLeaf","isLeafTag","assignAttributes","alwaysCreateTextNode","attrMap","jpath","atrrName","propCount","prettify","requireXMLParser","buildOptions","preserveOrder","attributeNamePrefix","attributesGroupName","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","requireOptionsBuilder","OrderedObjParser","xmlNode2","addChild","readDocType","readEntityExp","entityName","isEntity","isElement","isAttlist","isNotation","validateEntityName","entities","hasBody","comment","exp","regx","requireDocTypeReader","toNumber","hexRegex","numRegex","parseInt","consider","decimalPoint","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","num","search","requireStrnum","getIgnoreAttributesFn","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","replaceEntitiesValue","newval","parseValue","resolveNameSpace","charAt","attrsRegx","buildAttributesMap","ignoreAttributesFn","oldVal","aName","newVal","attrCollection","parseXml","xmlObj","currentNode","textData","closeIndex","findClosingIndex","colonIndex","saveTextToParentTag","lastTagName","propIndex","tagsNodeStack","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","docTypeEntities","rawTagName","lastTag","isItStopNode","tagContent","result2","readStopNodeData","entity","ampEntity","currentTagName","allNodesExp","stopNodePath","stopNodeExp","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","requireOrderedObjParser","validator2","parse","validationOption","orderedObjParser","orderedResult","addEntity","requireOrderedJs2Xml","arrToStr","indentation","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","attr","attrVal","suppressBooleanAttributes","textValue","jArray","format","requireDebug","process","env","NODE_DEBUG","requireConstants","MAX_SAFE_INTEGER","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","XMLParser","XMLBuilder","buildFromOrderedJs","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","level","ajPath","j2x","buildTextValNode","buildObjectNode","prototype","build","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","listTagAttr","j2","Ks","L","closeTag","tagEndExp","piClosingChar","requireJson2xml","XMLValidator","requireFxp","hasRequiredRe","parseOptions_1","hasRequiredParseOptions","identifiers","hasRequiredIdentifiers","semver","hasRequiredSemver","parse_1","hasRequiredParse","valid_1","hasRequiredValid","major_1","hasRequiredMajor","re","requireSemver","safeRe","src","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","parseOptions","looseOption","freeze","loose","emptyOpts","requireParseOptions","compareIdentifiers","anum","bnum","rcompareIdentifiers","requireIdentifiers","SemVer","version","includePrerelease","m2","LOOSE","FULL","major","minor","patch","prerelease","other","compareMain","comparePre","compareBuild","inc","release","identifierBase","base","isNaN","throwErrors","er","requireParse","requireValid","requireMajor","___CSS_LOADER_EXPORT___","FilePickerVue","defineComponent","FolderIcon","FileIcon","richObject","previewUrl","failedViewer","availableViewerHandlers","OCA","Viewer","availableHandlers","viewerHandler","mimes","mimetype","viewerFile","davSource","generateRemoteUrl","getCurrentUser","uid","lastmod","mtime","mime","fileid","failed","loaded","davPath","fileSize","OC","Util","humanFileSize","fileMtime","relativeModifiedDate","filePath","filePreviewStyle","backgroundImage","filePreviewClass","isFolder","generateUrl","fileId","img","Image","onload","onerror","navigate","openFilePicker","mimetypes","file","getFilePickerBuilder","allowDirectories","setMultiSelect","addButton","disableNavigation","startAt","pick","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","FilePicker","containerId","random","filepickerOptions","allowPickDirectory","buttons","buttonFactory","container","multiselect","selected","onClose","undefined","location","pathname","Vue","mixin","registerWidget","el","_ref","extend","FileWidget","propsData","$mount","registerCustomPickerElement","_ref2","vueElement","FileReferencePickerElement","NcCustomPickerRenderResult","$destroy","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","fulfilled","j","every","getter","__esModule","o","enumerable","f","chunkId","reduce","globalThis","Function","prop","l","done","script","needAttach","scripts","s","getAttribute","charset","timeout","nc","setAttribute","onScriptComplete","prev","doneFns","parentNode","removeChild","bind","Symbol","toStringTag","nmd","paths","scriptUrl","importScripts","currentScript","baseURI","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}