{"version":3,"file":"files-reference-files.js?v=24b891c979e71484c3fb","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","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/node_modules/@nextcloud/vue/dist/chunks/NcRichText-Br5t5ga_.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-DN7C4An4.mjs","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","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: `);\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 ' '\");\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 += ``;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + ``;\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}`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"`;\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: \"&\" },\n //it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"'\", \"g\"), val: \"'\" },\n { regex: new RegExp('\"', \"g\"), val: \""\" }\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 = \"\" + val + tagEndExp;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `` + 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 = `>` + this.newLine;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `` + 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 + \" 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","import '../assets/NcRichText-CzCM9V1U.css';\nimport { ref } from \"vue\";\nimport { N as NcReferenceWidget } from \"./referencePickerModal-DN7C4An4.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-Di9rSADK.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 remark2rehype from \"remark-rehype\";\nimport rehype2react from \"rehype-react\";\nimport rehypeExternalLinks from \"rehype-external-links\";\nimport { RouterLink } from \"vue-router\";\nconst _sfc_main$1 = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget\n },\n props: {\n text: {\n type: String,\n default: \"\"\n },\n referenceData: {\n type: Array,\n default: null\n },\n limit: {\n type: Number,\n default: 1\n },\n displayFallback: {\n type: Boolean,\n default: false\n },\n interactive: {\n type: Boolean,\n default: true\n },\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n references: null,\n loading: true\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences.length !== 0;\n },\n values() {\n if (this.referenceData) {\n return this.referenceData;\n }\n if (this.displayFallback && !this.loading && !this.references) {\n return [this.fallbackReference];\n }\n return this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n return this.values[0] ?? null;\n },\n displayedReferences() {\n return this.values.slice(0, this.limit);\n },\n fallbackReference() {\n return {\n accessible: true,\n openGraphObject: {\n id: this.text,\n link: this.text,\n name: this.text\n },\n richObjectType: \"open-graph\"\n };\n }\n },\n watch: {\n text: \"fetch\"\n },\n mounted() {\n this.fetch();\n },\n methods: {\n fetch() {\n this.loading = true;\n if (this.referenceData) {\n this.references = null;\n this.loading = false;\n return;\n }\n if (!new RegExp(URL_PATTERN).exec(this.text)) {\n this.references = null;\n this.loading = false;\n return;\n }\n this.resolve().then((response) => {\n this.references = response.data.ocs.data.references;\n this.loading = false;\n this.$emit(\"loaded\");\n }).catch((error) => {\n console.error(\"Failed to extract references\", error);\n this.loading = false;\n this.$emit(\"loaded\");\n });\n },\n resolve() {\n const match = new RegExp(URL_PATTERN).exec(this.text.trim());\n const isPublic = getCurrentUser() === null;\n if (this.limit === 1 && match) {\n return isPublic ? axios.get(generateOcsUrl(\"references/resolvePublic\") + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) : axios.get(generateOcsUrl(\"references/resolve\") + `?reference=${encodeURIComponent(match[0])}`);\n }\n return isPublic ? axios.post(generateOcsUrl(\"references/extractPublic\"), {\n text: this.text,\n resolve: true,\n limit: this.limit,\n sharingToken: getSharingToken()\n }) : axios.post(generateOcsUrl(\"references/extract\"), {\n text: this.text,\n resolve: true,\n limit: this.limit\n });\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _vm.isVisible ? _c(\"div\", { staticClass: \"widgets--list\", class: { \"icon-loading\": _vm.loading } }, _vm._l(_vm.displayedReferences, function(reference) {\n return _c(\"NcReferenceWidget\", { key: reference?.openGraphObject?.id, attrs: { \"reference\": reference, \"interactive\": _vm.interactive, \"interactive-opt-in\": _vm.interactiveOptIn } });\n }), 1) : _vm._e();\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"ffdba753\"\n);\nconst NcReferenceList = __component__$1.exports;\nconst remarkPlaceholder = function() {\n return function(ast) {\n visit(ast, (node2) => node2.type === \"text\", visitor);\n function visitor(node2, index, parent) {\n const placeholders = node2.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry, index2, list2) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return u(\"text\", entry);\n }\n const [, component] = matches;\n return u(\"element\", {\n tagName: `#${component}`\n });\n });\n parent.children.splice(index, 1, ...placeholders);\n }\n };\n};\nconst prepareTextNode = ({ h, context }, text2) => {\n if (context.autolink) {\n text2 = parseUrl(text2);\n }\n if (Array.isArray(text2)) {\n return text2.map((entry) => {\n if (typeof entry === \"string\") {\n return entry;\n }\n const { component, props } = entry;\n const componentClass = component.name === \"NcLink\" ? void 0 : \"rich-text--component\";\n return h(component, {\n props,\n class: componentClass\n });\n });\n }\n return text2;\n};\nconst remarkUnescape = function() {\n return function(tree) {\n visit(\n tree,\n (node2) => [\"text\", \"code\", \"inlineCode\"].includes(node2.type),\n (node2, index, parent) => {\n parent.children.splice(index, 1, {\n ...node2,\n value: node2.value.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n });\n return [SKIP$1, index + 1];\n }\n );\n };\n};\nfunction ccount(value, character) {\n const source = String(value);\n if (typeof character !== \"string\") {\n throw new TypeError(\"Expected character\");\n }\n let count = 0;\n let index = source.indexOf(character);\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n return count;\n}\nfunction ok$1() {\n}\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nfunction asciiControl(code2) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code2 !== null && (code2 < 32 || code2 === 127)\n );\n}\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\"));\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && code2 > -1 && regex.test(String.fromCharCode(code2));\n }\n}\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\nconst convert = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\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} */\n check\n );\n return castFactory(all2);\n function all2(node2) {\n const nodeAsRecord = (\n /** @type {Record} */\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} */\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} */\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 // \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} 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} 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} 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} */\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 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(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(/\")\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 \"d7087beb\"\n);\nconst NcRichText = __component__.exports;\nexport {\n NcRichText as N,\n NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText-Br5t5ga_.mjs.map\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-Dt0m9Fxw.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-DVUm4oCe.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-DRANdaIf.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-DN7C4An4.mjs.map\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"640\":\"c4d4943f2c00c1f8a515\",\"5862\":\"142cd48ca8ec32e57725\",\"7432\":\"bf453467840969b202ee\",\"9279\":\"460048c8db22e016b900\"}[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\t6408: 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","Error","humanList","humanListBinary","formatFileSize","size","skipSmallSizes","binaryPrefixes","base1000","Number","order","Math","floor","log","min","length","readableFormat","relativeSize","pow","toFixed","parseFloat","toLocaleString","stringify","value","Date","toISOString","String","sortNodes","nodes","options","sortingOptions","sortingMode","sortingOrder","collection","identifiers2","orders","sorting","map","_","index","collator","Intl","Collator","numeric","usage","sort","a2","b2","identifier","entries","compare","orderBy","sortFavoritesFirst","v","attributes","favorite","sortFoldersFirst","type","basename2","name","displayname","basename","lastIndexOf","slice","hasRequiredUtil","hasRequiredValidator","validator","util","requireUtil","exports","nameStartChar","nameRegexp","regexName","RegExp","isExist","isEmptyObject","obj","Object","keys","merge","target","arrayMode","len","i2","getValue","isName","string","exec","getAllMatches","regex","matches","match","allmatches","startIndex","lastIndex","push","requireValidator","util2","defaultOptions","allowBooleanAttributes","unpairedTags","isWhiteSpace","char","readPI","xmlData","start","tagname","substr","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","assign","tags","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","trim","substring","msg","result","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","pop","openPos","col","indexOf","afterAmp","validateAmpersand","JSON","t2","replace","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","hasOwnProperty","re2","validateNumberAmpersand","count","message","lineNumber","lines","split","hasRequiredOptionsBuilder","xmlNode","hasRequiredXmlNode","DocTypeReader","hasRequiredDocTypeReader","strnum","hasRequiredStrnum","ignoreAttributes","hasRequiredIgnoreAttributes","OrderedObjParser_1","hasRequiredOrderedObjParser","OptionsBuilder","requireIgnoreAttributes","ignoreAttributes2","Array","isArray","pattern","test","hasRequiredNode2json","XMLParser_1","hasRequiredXMLParser","orderedJs2Xml","hasRequiredOrderedJs2Xml","json2xml","hasRequiredJson2xml","fxp","hasRequiredFxp","debug_1","hasRequiredDebug","constants","hasRequiredConstants","node2json","requireNode2json","compress","arr","jPath","text","compressedObj","tagObj","property","propName","newJpath","textNodeName","val","isLeaf","isLeafTag","assignAttributes","alwaysCreateTextNode","key","attrMap","jpath","atrrName","propCount","prettify","node","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","attrs","requireOptionsBuilder","OrderedObjParser","xmlNode2","constructor","this","child","add","addChild","readDocType","readEntityExp","entityName","isEntity","isElement","isAttlist","isNotation","validateEntityName","entities","hasBody","comment","exp","regx","i","requireDocTypeReader","toNumber","hexRegex","numRegex","parseInt","window","consider","decimalPoint","str","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","num","search","requireStrnum","getIgnoreAttributesFn","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","replaceEntitiesValue","newval","parseValue","resolveNameSpace","prefix","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","data","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","fromCharCode","requireOrderedObjParser","validator2","parse","validationOption","toString","orderedObjParser","orderedResult","addEntity","requireOrderedJs2Xml","arrToStr","indentation","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","endsWith","includes","attr","attrVal","suppressBooleanAttributes","textValue","jArray","format","requireDebug","debug","process","env","NODE_DEBUG","args","console","error","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","object","level","ajPath","j2x","concat","buildTextValNode","buildObjectNode","repeat","startsWith","prototype","build","jObj","arrayNodeName","join","call","buildAttrPairStr","arrLen","listTagVal","listTagAttr","j2","item","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","t","module","src","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","token","max","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","TypeError","m2","LOOSE","FULL","raw","major","minor","patch","prerelease","id","other","compareMain","comparePre","compareBuild","inc","release","identifierBase","base","isNaN","throwErrors","er","requireParse","requireValid","requireMajor","___CSS_LOADER_EXPORT___","FilePickerVue","defineComponent","components","FolderIcon","FileIcon","props","richObject","required","accessible","Boolean","default","interactive","previewUrl","failedViewer","computed","availableViewerHandlers","OCA","Viewer","availableHandlers","viewerHandler","find","handler","mimes","mimetype","viewerFile","davSource","generateRemoteUrl","getCurrentUser","uid","path","filename","lastmod","mtime","mime","fileid","failed","loaded","davPath","source","fileSize","OC","Util","humanFileSize","fileMtime","relativeModifiedDate","filePath","filePreviewStyle","backgroundImage","filePreviewClass","isFolder","mounted","generateUrl","fileId","img","Image","onload","onerror","methods","navigate","event","stopPropagation","preventDefault","openFilePicker","mimetypes","file","open","getFilePickerBuilder","allowDirectories","setMultiSelect","addButton","label","callback","disableNavigation","startAt","pick","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","_c","_self","_setupProxy","component","_b","tag","staticClass","on","$event","link","class","style","_e","_v","_s","FilePicker","providerId","containerId","random","filepickerOptions","allowPickDirectory","buttons","buttonFactory","container","multiselect","selected","at","onClose","undefined","$emit","onSubmit","url","URL","location","href","pathname","Vue","mixin","registerWidget","el","_ref","richObjectType","extend","FileWidget","propsData","$mount","hasInteractiveView","registerCustomPickerElement","_ref2","vueElement","FileReferencePickerElement","NcCustomPickerRenderResult","$el","renderResult","$destroy","_sfc_main$1","NcReferenceWidget","referenceData","limit","displayFallback","interactiveOptIn","references","loading","isVisible","displayedReferences","values","fallbackReference","firstReference","openGraphObject","watch","fetch","U","resolve","then","response","ocs","catch","isPublic","get","encodeURIComponent","post","sharingToken","_sfc_render$1","_l","reference","_sfc_staticRenderFns$1","NcReferenceList","n","remarkPlaceholder","ast","node2","parent","placeholders","entry","index2","list2","u","children","splice","remarkUnescape","tree","ccount","character","asciiAlpha","regexCheck","asciiAlphanumeric","markdownLineEnding","code2","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","convert","ok","castFactory","tests","checks","parameters","apply","anyFactory","check","checkAsRecord","nodeAsRecord","propsFactory","testFunction","looksLikeANode","empty","CONTINUE","EXIT","SKIP","visitParents","visitor","reverse","is","factory","parents","defineProperty","visit2","subresult","offset","grandparents","toResult","nodeAsParent","toFunction","replace2","inConstruct","notInConstruct","enterLiteralAutolink","enter","title","enterLiteralAutolinkValue","config","autolinkProtocol","exitLiteralAutolinkHttp","exit","exitLiteralAutolinkWww","stack","sliceSerialize","exitLiteralAutolinkEmail","autolinkEmail","exitLiteralAutolink","transformGfmAutolinkLiterals","ignored","ignore","pairs","tupleOrList","tuple","escapeStringRegexp","toPairs","pairIndex","grandparent","siblings","change","position","matchObject","input","global","findAndReplace","findUrl","findEmail","protocol","domain2","path2","previous","parts","isCorrectDomain","trailExec","trail2","closingParenIndex","openingParens","closingParens","splitUrl","atext","email","charCodeAt","normalizeIdentifier","toLowerCase","toUpperCase","enterFootnoteDefinition","enterFootnoteDefinitionLabelString","buffer","exitFootnoteDefinitionLabelString","resume","exitFootnoteDefinition","enterFootnoteCall","enterFootnoteCallString","exitFootnoteCallString","exitFootnoteCall","footnoteReference","state","info","tracker","createTracker","move","exit2","subexit","associationId","current","before","after","footnoteDefinition","shift","indentLines","containerFlow","map$2","blank","peek","constructsWithoutStrikethrough","enterStrikethrough","exitStrikethrough","handleDelete","containerPhrasing","defaultStringLength","toAlignment","codePointAt","map$1","listInScope","none","hardBreak","_1","unsafe","checkQuote","marker","quote","emphasis","checkEmphasis","emptyOptions$1","settings","one","includeImageAlt","includeHtml","alt","all","html","image","suffix","imageReference","referenceType","inlineCode","sequence","expression","compilePattern","atBreak","formatLinkAsAutolink","resourceLink","value2","linkReference","text2","checkBullet","bullet","checkRule","rule","phrasing","strong","checkStrong","handle","blockquote","break","fence","checkFence","fences","lang","formatCodeAsIndented","exit3","expected","longestStreak","encode","meta","definition","heading","rank","depth","literalWithBreak","node3","setext","formatHeadingAsSetext","subexit2","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","delimiterStart","delimiterEnd","markdownTable","exitCheck","checked","exitParagraphWithTaskListItem","head","firstParaghraph","sibling","column","listItemWithTaskListItem","checkable","checkbox","remove","items","end","chunkStart","from","unshift","syntaxExtension","all2","extension","hook","left","right","constructs","existing","wwwPrefix","tokenize","effects","ok2","nok","wwwPrefixInside","consume","wwwPrefixAfter","partial","domain","underscoreInLastSegment","underscoreInLastLastSegment","seen","domainInside","trail","domainAfter","domainAtPunctuation","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","context","called","factorySpace","POSITIVE_INFINITY","blankLine","indent","tail","tokenizePotentialGfmFootnoteCall","defined","parser","gfmFootnotes","labelStart","now","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","strikethrough","nextEvents","insideSpan","null","attentionMarkers","EditMap","editMap","addImpl","a","b","vecs","gfmTableAlign","inDelimiterRow","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","document","continuation","resolveTo","flow","gfm","transforms","literalAutolink","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","gfmFootnoteDefinition","gfmFootnoteDefinitionLabelString","gfmFootnoteCall","gfmFootnoteCallString","canContainEols","tableData","tableHeader","codeText","taskListCheckValueChecked","taskListCheckValueUnchecked","delete","gfmToMarkdown","rehypeHighlight","_sfc_main","arguments","referenceLimit","referenceInteractive","referenceInteractiveOptIn","useMarkdown","useExtendedMarkdown","autolink","emits","parentId","G","renderPlaintext","h","p","componentClass","prepareTextNode","argumentId","argument","flat","renderMarkdown","renderedMarkdown","use","r","toHast","rel","createElement","async","importRehypeHighlightLibrary","nestedNode","inputNode","labelParts","nestedNodeIndex","findIndex","inputComponent","N","disabled","route","g","$router","to","placeholder","processSync","render","_sfc_main$8","NcButton","setup","widgetRoot","width","isIntersecting","showInteractive","rendered","idleTimeout","isInteractive","hasFullWidth","hasCustomWidget","noAccess","descriptionStyle","numberOfLines","display","lineClamp","webkitLineClamp","Infinity","compactLink","referenceWidgetLinkComponent","referenceWidgetLinkProps","clearTimeout","renderWidget","setTimeout","destroyWidget","immediate","beforeDestroy","enableInteractive","$refs","customWidget","innerHTML","widget","appendChild","$nextTick","_sfc_render$8","ref","thumb","description","_sfc_staticRenderFns$8","_sfc_main$7","provider","isRegistered","renderElement","domElement","renderFunctionResult","Promise","_isVue","$on","onCancel","element","addEventListener","e","detail","_sfc_render$7","_sfc_staticRenderFns$7","NcCustomPickerElement","anyLinkProvider","icon_url","searchProvider","query","providers","_vue_richtext_reference_providers","filter","keep","search_providers_ids","escapedQuery","regexp","filteredSortedProviders","providerList","timestamps","_vue_richtext_reference_provider_timestamps","ta","tb","sortProviders","searchResult","mytimer","delay","ms","isUrl","_sfc_main$6","fillColor","_sfc_render$6","$attrs","_sfc_staticRenderFns$6","LinkVariantIcon","_sfc_main$5","NcSelect","NcHighlight","NcEmptyContent","selectedProvider","multiselectPlaceholder","providerIconAlt","isLink","focus","querySelector","onProviderSelected","onSearch","_sfc_render$5","scopedSlots","_u","fn","option","model","$$v","proxy","_sfc_staticRenderFns$5","NcProviderList","_sfc_main$4","NcLoadingIcon","NcTextField","inputValue","abortController","inputPlaceholder","isLinkValid","getElementsByTagName","onClear","onInput","abort","updateReference","AbortController","signal","_sfc_render$4","nativeOn","_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","isCustomGroupTitle","providerEntriesWithId","isPaginated","isMore","isLoading","resetResults","cancelSearchRequests","onSearchInput","updateSearch","onSelectResultSelected","searchMoreOf","searchProviderId","searchProviders","searchPromises","searchOneProvider","cursor","allSettled","promises","status","reason","term","_sfc_render$2","_sfc_staticRenderFns$2","NcSearch","MODES","standardLinkInput","searchInput","customElement","initialProvider","focusOnCreate","mode","pickerWrapperStyle","onEscapePressed","deselectProvider","cancelProviderSelection","cancelCustomElement","cancelSearch","cancelRawLinkInput","submitLink","timestamp","params","put","touchProvider","NcReferencePicker","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","__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":""}