diff options
Diffstat (limited to 'dist/systemtags-init.js.map')
-rw-r--r-- | dist/systemtags-init.js.map | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/dist/systemtags-init.js.map b/dist/systemtags-init.js.map index 347d17566e6..cfca87713db 100644 --- a/dist/systemtags-init.js.map +++ b/dist/systemtags-init.js.map @@ -1 +1 @@ -{"version":3,"file":"systemtags-init.js?v=19b4130c00f49a140966","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack://nextcloud/./apps/systemtags/src/css/fileEntryInlineSystemTags.scss?0a01","webpack:///nextcloud/apps/systemtags/src/actions/inlineSystemTagsAction.ts","webpack:///nextcloud/apps/systemtags/src/services/davClient.ts","webpack:///nextcloud/apps/systemtags/src/utils.ts","webpack:///nextcloud/apps/systemtags/src/logger.ts","webpack:///nextcloud/node_modules/@buttercup/fetch/dist/index.browser.js","webpack:///nextcloud/node_modules/hot-patcher/dist/patcher.js","webpack:///nextcloud/node_modules/hot-patcher/dist/functions.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/patcher.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/digest.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/crypto.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/merge.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/headers.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/arrayBuffer.js","webpack:///nextcloud/node_modules/webdav/dist/node/request.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/body.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/buffer.js","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/logger.js","webpack:///nextcloud/apps/files/src/services/Files.ts","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/systemtags/src/services/systemtags.ts","webpack:///nextcloud/apps/systemtags/src/init.ts","webpack:///nextcloud/apps/systemtags/src/services/api.ts","webpack:///nextcloud/node_modules/builtin-status-codes/browser.js","webpack:///nextcloud/node_modules/cancelable-promise/umd/CancelablePromise.js","webpack:///nextcloud/apps/systemtags/src/css/fileEntryInlineSystemTags.scss","webpack:///nextcloud/node_modules/https-browserify/index.js","webpack:///nextcloud/node_modules/readable-stream/readable-browser.js","webpack:///nextcloud/node_modules/stream-http/index.js","webpack:///nextcloud/node_modules/stream-http/lib/capability.js","webpack:///nextcloud/node_modules/stream-http/lib/request.js","webpack:///nextcloud/node_modules/stream-http/lib/response.js","webpack:///nextcloud/node_modules/xtend/immutable.js","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/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/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};","import { getCurrentUser as A, onRequestTokenUpdate as ue, getRequestToken as de } from \"@nextcloud/auth\";\nimport { getLoggerBuilder as q } from \"@nextcloud/logger\";\nimport { getCanonicalLocale as ae } from \"@nextcloud/l10n\";\nimport { join as le, basename as fe, extname as ce, dirname as I } from \"path\";\nimport { encodePath as he } from \"@nextcloud/paths\";\nimport { generateRemoteUrl as pe } from \"@nextcloud/router\";\nimport { createClient as ge, getPatcher as we } from \"webdav\";\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst me = (e) => e === null ? q().setApp(\"files\").build() : q().setApp(\"files\").setUid(e.uid).build(), m = me(A());\n/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Ne {\n _entries = [];\n registerEntry(t) {\n this.validateEntry(t), this._entries.push(t);\n }\n unregisterEntry(t) {\n const r = typeof t == \"string\" ? this.getEntryIndex(t) : this.getEntryIndex(t.id);\n if (r === -1) {\n m.warn(\"Entry not found, nothing removed\", { entry: t, entries: this.getEntries() });\n return;\n }\n this._entries.splice(r, 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(t) {\n return t ? this._entries.filter((r) => typeof r.enabled == \"function\" ? r.enabled(t) : !0) : this._entries;\n }\n getEntryIndex(t) {\n return this._entries.findIndex((r) => r.id === t);\n }\n validateEntry(t) {\n if (!t.id || !t.displayName || !(t.iconSvgInline || t.iconClass) || !t.handler)\n throw new Error(\"Invalid entry\");\n if (typeof t.id != \"string\" || typeof t.displayName != \"string\")\n throw new Error(\"Invalid id or displayName property\");\n if (t.iconClass && typeof t.iconClass != \"string\" || t.iconSvgInline && typeof t.iconSvgInline != \"string\")\n throw new Error(\"Invalid icon provided\");\n if (t.enabled !== void 0 && typeof t.enabled != \"function\")\n throw new Error(\"Invalid enabled property\");\n if (typeof t.handler != \"function\")\n throw new Error(\"Invalid handler property\");\n if (\"order\" in t && typeof t.order != \"number\")\n throw new Error(\"Invalid order property\");\n if (this.getEntryIndex(t.id) !== -1)\n throw new Error(\"Duplicate entry\");\n }\n}\nconst F = function() {\n return typeof window._nc_newfilemenu > \"u\" && (window._nc_newfilemenu = new Ne(), m.debug(\"NewFileMenu initialized\")), window._nc_newfilemenu;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst C = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"], P = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction Yt(e, t = !1, r = !1, s = !1) {\n r = r && !s, typeof e == \"string\" && (e = Number(e));\n let n = e > 0 ? Math.floor(Math.log(e) / Math.log(s ? 1e3 : 1024)) : 0;\n n = Math.min((r ? P.length : C.length) - 1, n);\n const i = r ? P[n] : C[n];\n let d = (e / Math.pow(s ? 1e3 : 1024, n)).toFixed(1);\n return t === !0 && n === 0 ? (d !== \"0.0\" ? \"< 1 \" : \"0 \") + (r ? P[1] : C[1]) : (n < 2 ? d = parseFloat(d).toFixed(0) : d = parseFloat(d).toLocaleString(ae()), d + \" \" + i);\n}\nfunction Jt(e, t = !1) {\n try {\n e = `${e}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch {\n return null;\n }\n const r = e.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (r === null || r[1] === \".\" || r[1] === \"\")\n return null;\n const s = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n }, n = `${r[1]}`, i = r[4] === \"i\" || t ? 1024 : 1e3;\n return Math.round(Number.parseFloat(n) * i ** s[r[3]]);\n}\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar Z = /* @__PURE__ */ ((e) => (e.DEFAULT = \"default\", e.HIDDEN = \"hidden\", e))(Z || {});\nclass Qt {\n _action;\n constructor(t) {\n this.validateAction(t), this._action = t;\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 inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(t) {\n if (!t.id || typeof t.id != \"string\")\n throw new Error(\"Invalid id\");\n if (!t.displayName || typeof t.displayName != \"function\")\n throw new Error(\"Invalid displayName function\");\n if (\"title\" in t && typeof t.title != \"function\")\n throw new Error(\"Invalid title function\");\n if (!t.iconSvgInline || typeof t.iconSvgInline != \"function\")\n throw new Error(\"Invalid iconSvgInline function\");\n if (!t.exec || typeof t.exec != \"function\")\n throw new Error(\"Invalid exec function\");\n if (\"enabled\" in t && typeof t.enabled != \"function\")\n throw new Error(\"Invalid enabled function\");\n if (\"execBatch\" in t && typeof t.execBatch != \"function\")\n throw new Error(\"Invalid execBatch function\");\n if (\"order\" in t && typeof t.order != \"number\")\n throw new Error(\"Invalid order\");\n if (\"parent\" in t && typeof t.parent != \"string\")\n throw new Error(\"Invalid parent\");\n if (t.default && !Object.values(Z).includes(t.default))\n throw new Error(\"Invalid default\");\n if (\"inline\" in t && typeof t.inline != \"function\")\n throw new Error(\"Invalid inline function\");\n if (\"renderInline\" in t && typeof t.renderInline != \"function\")\n throw new Error(\"Invalid renderInline function\");\n }\n}\nconst Dt = function(e) {\n if (typeof window._nc_fileactions > \"u\" && (window._nc_fileactions = [], m.debug(\"FileActions initialized\")), window._nc_fileactions.find((t) => t.id === e.id)) {\n m.error(`FileAction ${e.id} already registered`, { action: e });\n return;\n }\n window._nc_fileactions.push(e);\n}, er = function() {\n return typeof window._nc_fileactions > \"u\" && (window._nc_fileactions = [], m.debug(\"FileActions initialized\")), window._nc_fileactions;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass tr {\n _header;\n constructor(t) {\n this.validateHeader(t), this._header = t;\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(t) {\n if (!t.id || !t.render || !t.updated)\n throw new Error(\"Invalid header: id, render and updated are required\");\n if (typeof t.id != \"string\")\n throw new Error(\"Invalid id property\");\n if (t.enabled !== void 0 && typeof t.enabled != \"function\")\n throw new Error(\"Invalid enabled property\");\n if (t.render && typeof t.render != \"function\")\n throw new Error(\"Invalid render property\");\n if (t.updated && typeof t.updated != \"function\")\n throw new Error(\"Invalid updated property\");\n }\n}\nconst rr = function(e) {\n if (typeof window._nc_filelistheader > \"u\" && (window._nc_filelistheader = [], m.debug(\"FileListHeaders initialized\")), window._nc_filelistheader.find((t) => t.id === e.id)) {\n m.error(`Header ${e.id} already registered`, { header: e });\n return;\n }\n window._nc_filelistheader.push(e);\n}, nr = function() {\n return typeof window._nc_filelistheader > \"u\" && (window._nc_filelistheader = [], m.debug(\"FileListHeaders initialized\")), window._nc_filelistheader;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar N = /* @__PURE__ */ ((e) => (e[e.NONE = 0] = \"NONE\", e[e.CREATE = 4] = \"CREATE\", e[e.READ = 1] = \"READ\", e[e.UPDATE = 2] = \"UPDATE\", e[e.DELETE = 8] = \"DELETE\", e[e.SHARE = 16] = \"SHARE\", e[e.ALL = 31] = \"ALL\", e))(N || {});\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst j = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"nc:share-attributes\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:share-types\",\n \"oc:size\",\n \"ocs:share-permissions\"\n], Y = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n}, ir = function(e, t = { nc: \"http://nextcloud.org/ns\" }) {\n typeof window._nc_dav_properties > \"u\" && (window._nc_dav_properties = [...j], window._nc_dav_namespaces = { ...Y });\n const r = { ...window._nc_dav_namespaces, ...t };\n if (window._nc_dav_properties.find((n) => n === e))\n return m.error(`${e} already registered`, { prop: e }), !1;\n if (e.startsWith(\"<\") || e.split(\":\").length !== 2)\n return m.error(`${e} is not valid. See example: 'oc:fileid'`, { prop: e }), !1;\n const s = e.split(\":\")[0];\n return r[s] ? (window._nc_dav_properties.push(e), window._nc_dav_namespaces = r, !0) : (m.error(`${e} namespace unknown`, { prop: e, namespaces: r }), !1);\n}, V = function() {\n return typeof window._nc_dav_properties > \"u\" && (window._nc_dav_properties = [...j]), window._nc_dav_properties.map((e) => `<${e} />`).join(\" \");\n}, L = function() {\n return typeof window._nc_dav_namespaces > \"u\" && (window._nc_dav_namespaces = { ...Y }), Object.keys(window._nc_dav_namespaces).map((e) => `xmlns:${e}=\"${window._nc_dav_namespaces?.[e]}\"`).join(\" \");\n}, sr = function() {\n return `<?xml version=\"1.0\"?>\n\t\t<d:propfind ${L()}>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`;\n}, Ee = function() {\n return `<?xml version=\"1.0\"?>\n\t\t<oc:filter-files ${L()}>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`;\n}, or = function(e) {\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<d:searchrequest ${L()}\n\txmlns:ns=\"https://github.com/icewind1991/SearchDAV/ns\">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${A()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${e}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst be = function(e = \"\") {\n let t = N.NONE;\n return e && ((e.includes(\"C\") || e.includes(\"K\")) && (t |= N.CREATE), e.includes(\"G\") && (t |= N.READ), (e.includes(\"W\") || e.includes(\"N\") || e.includes(\"V\")) && (t |= N.UPDATE), e.includes(\"D\") && (t |= N.DELETE), e.includes(\"R\") && (t |= N.SHARE)), t;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar R = /* @__PURE__ */ ((e) => (e.Folder = \"folder\", e.File = \"file\", e))(R || {});\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst J = function(e, t) {\n return e.match(t) !== null;\n}, X = (e, t) => {\n if (e.id && typeof e.id != \"number\")\n throw new Error(\"Invalid id type of value\");\n if (!e.source)\n throw new Error(\"Missing mandatory source\");\n try {\n new URL(e.source);\n } catch {\n throw new Error(\"Invalid source format, source must be a valid URL\");\n }\n if (!e.source.startsWith(\"http\"))\n throw new Error(\"Invalid source format, only http(s) is supported\");\n if (e.mtime && !(e.mtime instanceof Date))\n throw new Error(\"Invalid mtime type\");\n if (e.crtime && !(e.crtime instanceof Date))\n throw new Error(\"Invalid crtime type\");\n if (!e.mime || typeof e.mime != \"string\" || !e.mime.match(/^[-\\w.]+\\/[-+\\w.]+$/gi))\n throw new Error(\"Missing or invalid mandatory mime\");\n if (\"size\" in e && typeof e.size != \"number\" && e.size !== void 0)\n throw new Error(\"Invalid size type\");\n if (\"permissions\" in e && e.permissions !== void 0 && !(typeof e.permissions == \"number\" && e.permissions >= N.NONE && e.permissions <= N.ALL))\n throw new Error(\"Invalid permissions\");\n if (e.owner && e.owner !== null && typeof e.owner != \"string\")\n throw new Error(\"Invalid owner type\");\n if (e.attributes && typeof e.attributes != \"object\")\n throw new Error(\"Invalid attributes type\");\n if (e.root && typeof e.root != \"string\")\n throw new Error(\"Invalid root type\");\n if (e.root && !e.root.startsWith(\"/\"))\n throw new Error(\"Root must start with a leading slash\");\n if (e.root && !e.source.includes(e.root))\n throw new Error(\"Root must be part of the source\");\n if (e.root && J(e.source, t)) {\n const r = e.source.match(t)[0];\n if (!e.source.includes(le(r, e.root)))\n throw new Error(\"The root must be relative to the service. e.g /files/emma\");\n }\n if (e.status && !Object.values(Q).includes(e.status))\n throw new Error(\"Status must be a valid NodeStatus\");\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar Q = /* @__PURE__ */ ((e) => (e.NEW = \"new\", e.FAILED = \"failed\", e.LOADING = \"loading\", e.LOCKED = \"locked\", e))(Q || {});\nclass D {\n _data;\n _attributes;\n _knownDavService = /(remote|public)\\.php\\/(web)?dav/i;\n constructor(t, r) {\n X(t, r || this._knownDavService), this._data = t;\n const s = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set: (n, i, d) => (this.updateMtime(), Reflect.set(n, i, d)),\n deleteProperty: (n, i) => (this.updateMtime(), Reflect.deleteProperty(n, i))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n };\n this._attributes = new Proxy(t.attributes || {}, s), delete this._data.attributes, r && (this._knownDavService = r);\n }\n /**\n * Get the source url to this object\n */\n get source() {\n return this._data.source.replace(/\\/$/i, \"\");\n }\n /**\n * Get the encoded source url to this object for requests purposes\n */\n get encodedSource() {\n const { origin: t } = new URL(this.source);\n return t + he(this.source.slice(t.length));\n }\n /**\n * Get this object name\n */\n get basename() {\n return fe(this.source);\n }\n /**\n * Get this object's extension\n */\n get extension() {\n return ce(this.source);\n }\n /**\n * Get the directory path leading to this object\n * Will use the relative path to root if available\n */\n get dirname() {\n if (this.root) {\n let r = this.source;\n this.isDavRessource && (r = r.split(this._knownDavService).pop());\n const s = r.indexOf(this.root), n = this.root.replace(/\\/$/, \"\");\n return I(r.slice(s + n.length) || \"/\");\n }\n const t = new URL(this.source);\n return I(t.pathname);\n }\n /**\n * Get the file mime\n */\n get mime() {\n return this._data.mime;\n }\n /**\n * Get the file modification time\n */\n get mtime() {\n return this._data.mtime;\n }\n /**\n * Get the file creation time\n */\n get crtime() {\n return this._data.crtime;\n }\n /**\n * Get the file size\n */\n get size() {\n return this._data.size;\n }\n /**\n * Get the file attribute\n */\n get attributes() {\n return this._attributes;\n }\n /**\n * Get the file permissions\n */\n get permissions() {\n return this.owner === null && !this.isDavRessource ? N.READ : this._data.permissions !== void 0 ? this._data.permissions : N.NONE;\n }\n /**\n * Get the file owner\n */\n get owner() {\n return this.isDavRessource ? this._data.owner : null;\n }\n /**\n * Is this a dav-related ressource ?\n */\n get isDavRessource() {\n return J(this.source, this._knownDavService);\n }\n /**\n * Get the dav root of this object\n */\n get root() {\n return this._data.root ? this._data.root.replace(/^(.+)\\/$/, \"$1\") : this.isDavRessource && I(this.source).split(this._knownDavService).pop() || null;\n }\n /**\n * Get the absolute path of this object relative to the root\n */\n get path() {\n if (this.root) {\n let t = this.source;\n this.isDavRessource && (t = t.split(this._knownDavService).pop());\n const r = t.indexOf(this.root), s = this.root.replace(/\\/$/, \"\");\n return t.slice(r + s.length) || \"/\";\n }\n return (this.dirname + \"/\" + this.basename).replace(/\\/\\//g, \"/\");\n }\n /**\n * Get the node id if defined.\n * Will look for the fileid in attributes if undefined.\n */\n get fileid() {\n return this._data?.id || this.attributes?.fileid;\n }\n /**\n * Get the node status.\n */\n get status() {\n return this._data?.status;\n }\n /**\n * Set the node status.\n */\n set status(t) {\n this._data.status = t;\n }\n /**\n * Move the node to a new destination\n *\n * @param {string} destination the new source.\n * e.g. https://cloud.domain.com/remote.php/dav/files/emma/Photos/picture.jpg\n */\n move(t) {\n X({ ...this._data, source: t }, this._knownDavService), this._data.source = t, this.updateMtime();\n }\n /**\n * Rename the node\n * This aliases the move method for easier usage\n *\n * @param basename The new name of the node\n */\n rename(t) {\n if (t.includes(\"/\"))\n throw new Error(\"Invalid basename\");\n this.move(I(this.source) + \"/\" + t);\n }\n /**\n * Update the mtime if exists.\n */\n updateMtime() {\n this._data.mtime && (this._data.mtime = /* @__PURE__ */ new Date());\n }\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass ye extends D {\n get type() {\n return R.File;\n }\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass _e extends D {\n constructor(t) {\n super({\n ...t,\n mime: \"httpd/unix-directory\"\n });\n }\n get type() {\n return R.Folder;\n }\n get extension() {\n return null;\n }\n get mime() {\n return \"httpd/unix-directory\";\n }\n}\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst ee = `/files/${A()?.uid}`, te = pe(\"dav\"), ur = function(e = te, t = {}) {\n const r = ge(e, { headers: t });\n function s(i) {\n r.setHeaders({\n ...t,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: i ?? \"\"\n });\n }\n return ue(s), s(de()), we().patch(\"fetch\", (i, d) => {\n const u = d.headers;\n return u?.method && (d.method = u.method, delete u.method), fetch(i, d);\n }), r;\n}, dr = async (e, t = \"/\", r = ee) => (await e.getDirectoryContents(`${r}${t}`, {\n details: !0,\n data: Ee(),\n headers: {\n // see davGetClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: !0\n})).data.filter((n) => n.filename !== t).map((n) => ve(n, r)), ve = function(e, t = ee, r = te) {\n const s = e.props, n = be(s?.permissions), i = s?.[\"owner-id\"] || A()?.uid, d = {\n id: s?.fileid || 0,\n source: `${r}${e.filename}`,\n mtime: new Date(Date.parse(e.lastmod)),\n mime: e.mime,\n size: s?.size || Number.parseInt(s.getcontentlength || \"0\"),\n permissions: n,\n owner: i,\n root: t,\n attributes: {\n ...e,\n ...s,\n hasPreview: s?.[\"has-preview\"]\n }\n };\n return delete d.attributes?.props, e.type === \"file\" ? new ye(d) : new _e(d);\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Te {\n _views = [];\n _currentView = null;\n register(t) {\n if (this._views.find((r) => r.id === t.id))\n throw new Error(`View id ${t.id} is already registered`);\n this._views.push(t);\n }\n remove(t) {\n const r = this._views.findIndex((s) => s.id === t);\n r !== -1 && this._views.splice(r, 1);\n }\n get views() {\n return this._views;\n }\n setActive(t) {\n this._currentView = t;\n }\n get active() {\n return this._currentView;\n }\n}\nconst ar = function() {\n return typeof window._nc_navigation > \"u\" && (window._nc_navigation = new Te(), m.debug(\"Navigation service initialized\")), window._nc_navigation;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Ie {\n _column;\n constructor(t) {\n Ae(t), this._column = t;\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 Ae = function(e) {\n if (!e.id || typeof e.id != \"string\")\n throw new Error(\"A column id is required\");\n if (!e.title || typeof e.title != \"string\")\n throw new Error(\"A column title is required\");\n if (!e.render || typeof e.render != \"function\")\n throw new Error(\"A render function is required\");\n if (e.sort && typeof e.sort != \"function\")\n throw new Error(\"Column sortFunction must be a function\");\n if (e.summary && typeof e.summary != \"function\")\n throw new Error(\"Column summary must be a function\");\n return !0;\n};\nvar S = {}, O = {};\n(function(e) {\n const t = \":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\", r = t + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\", s = \"[\" + t + \"][\" + r + \"]*\", n = new RegExp(\"^\" + s + \"$\"), i = function(u, o) {\n const a = [];\n let l = o.exec(u);\n for (; l; ) {\n const f = [];\n f.startIndex = o.lastIndex - l[0].length;\n const c = l.length;\n for (let g = 0; g < c; g++)\n f.push(l[g]);\n a.push(f), l = o.exec(u);\n }\n return a;\n }, d = function(u) {\n const o = n.exec(u);\n return !(o === null || typeof o > \"u\");\n };\n e.isExist = function(u) {\n return typeof u < \"u\";\n }, e.isEmptyObject = function(u) {\n return Object.keys(u).length === 0;\n }, e.merge = function(u, o, a) {\n if (o) {\n const l = Object.keys(o), f = l.length;\n for (let c = 0; c < f; c++)\n a === \"strict\" ? u[l[c]] = [o[l[c]]] : u[l[c]] = o[l[c]];\n }\n }, e.getValue = function(u) {\n return e.isExist(u) ? u : \"\";\n }, e.isName = d, e.getAllMatches = i, e.nameRegexp = s;\n})(O);\nconst M = O, Oe = {\n allowBooleanAttributes: !1,\n //A tag can have attributes without any value\n unpairedTags: []\n};\nS.validate = function(e, t) {\n t = Object.assign({}, Oe, t);\n const r = [];\n let s = !1, n = !1;\n e[0] === \"\\uFEFF\" && (e = e.substr(1));\n for (let i = 0; i < e.length; i++)\n if (e[i] === \"<\" && e[i + 1] === \"?\") {\n if (i += 2, i = G(e, i), i.err)\n return i;\n } else if (e[i] === \"<\") {\n let d = i;\n if (i++, e[i] === \"!\") {\n i = z(e, i);\n continue;\n } else {\n let u = !1;\n e[i] === \"/\" && (u = !0, i++);\n let o = \"\";\n for (; i < e.length && e[i] !== \">\" && e[i] !== \" \" && e[i] !== \"\t\" && e[i] !== `\n` && e[i] !== \"\\r\"; i++)\n o += e[i];\n if (o = o.trim(), o[o.length - 1] === \"/\" && (o = o.substring(0, o.length - 1), i--), !Re(o)) {\n let f;\n return o.trim().length === 0 ? f = \"Invalid space after '<'.\" : f = \"Tag '\" + o + \"' is an invalid name.\", p(\"InvalidTag\", f, w(e, i));\n }\n const a = xe(e, i);\n if (a === !1)\n return p(\"InvalidAttr\", \"Attributes for '\" + o + \"' have open quote.\", w(e, i));\n let l = a.value;\n if (i = a.index, l[l.length - 1] === \"/\") {\n const f = i - l.length;\n l = l.substring(0, l.length - 1);\n const c = H(l, t);\n if (c === !0)\n s = !0;\n else\n return p(c.err.code, c.err.msg, w(e, f + c.err.line));\n } else if (u)\n if (a.tagClosed) {\n if (l.trim().length > 0)\n return p(\"InvalidTag\", \"Closing tag '\" + o + \"' can't have attributes or invalid starting.\", w(e, d));\n {\n const f = r.pop();\n if (o !== f.tagName) {\n let c = w(e, f.tagStartPos);\n return p(\n \"InvalidTag\",\n \"Expected closing tag '\" + f.tagName + \"' (opened in line \" + c.line + \", col \" + c.col + \") instead of closing tag '\" + o + \"'.\",\n w(e, d)\n );\n }\n r.length == 0 && (n = !0);\n }\n } else\n return p(\"InvalidTag\", \"Closing tag '\" + o + \"' doesn't have proper closing.\", w(e, i));\n else {\n const f = H(l, t);\n if (f !== !0)\n return p(f.err.code, f.err.msg, w(e, i - l.length + f.err.line));\n if (n === !0)\n return p(\"InvalidXml\", \"Multiple possible root nodes found.\", w(e, i));\n t.unpairedTags.indexOf(o) !== -1 || r.push({ tagName: o, tagStartPos: d }), s = !0;\n }\n for (i++; i < e.length; i++)\n if (e[i] === \"<\")\n if (e[i + 1] === \"!\") {\n i++, i = z(e, i);\n continue;\n } else if (e[i + 1] === \"?\") {\n if (i = G(e, ++i), i.err)\n return i;\n } else\n break;\n else if (e[i] === \"&\") {\n const f = Ve(e, i);\n if (f == -1)\n return p(\"InvalidChar\", \"char '&' is not expected.\", w(e, i));\n i = f;\n } else if (n === !0 && !U(e[i]))\n return p(\"InvalidXml\", \"Extra text at the end\", w(e, i));\n e[i] === \"<\" && i--;\n }\n } else {\n if (U(e[i]))\n continue;\n return p(\"InvalidChar\", \"char '\" + e[i] + \"' is not expected.\", w(e, i));\n }\n if (s) {\n if (r.length == 1)\n return p(\"InvalidTag\", \"Unclosed tag '\" + r[0].tagName + \"'.\", w(e, r[0].tagStartPos));\n if (r.length > 0)\n return p(\"InvalidXml\", \"Invalid '\" + JSON.stringify(r.map((i) => i.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n } else\n return p(\"InvalidXml\", \"Start tag expected.\", 1);\n return !0;\n};\nfunction U(e) {\n return e === \" \" || e === \"\t\" || e === `\n` || e === \"\\r\";\n}\nfunction G(e, t) {\n const r = t;\n for (; t < e.length; t++)\n if (e[t] == \"?\" || e[t] == \" \") {\n const s = e.substr(r, t - r);\n if (t > 5 && s === \"xml\")\n return p(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", w(e, t));\n if (e[t] == \"?\" && e[t + 1] == \">\") {\n t++;\n break;\n } else\n continue;\n }\n return t;\n}\nfunction z(e, t) {\n if (e.length > t + 5 && e[t + 1] === \"-\" && e[t + 2] === \"-\") {\n for (t += 3; t < e.length; t++)\n if (e[t] === \"-\" && e[t + 1] === \"-\" && e[t + 2] === \">\") {\n t += 2;\n break;\n }\n } else if (e.length > t + 8 && e[t + 1] === \"D\" && e[t + 2] === \"O\" && e[t + 3] === \"C\" && e[t + 4] === \"T\" && e[t + 5] === \"Y\" && e[t + 6] === \"P\" && e[t + 7] === \"E\") {\n let r = 1;\n for (t += 8; t < e.length; t++)\n if (e[t] === \"<\")\n r++;\n else if (e[t] === \">\" && (r--, r === 0))\n break;\n } else if (e.length > t + 9 && e[t + 1] === \"[\" && e[t + 2] === \"C\" && e[t + 3] === \"D\" && e[t + 4] === \"A\" && e[t + 5] === \"T\" && e[t + 6] === \"A\" && e[t + 7] === \"[\") {\n for (t += 8; t < e.length; t++)\n if (e[t] === \"]\" && e[t + 1] === \"]\" && e[t + 2] === \">\") {\n t += 2;\n break;\n }\n }\n return t;\n}\nconst Ce = '\"', Pe = \"'\";\nfunction xe(e, t) {\n let r = \"\", s = \"\", n = !1;\n for (; t < e.length; t++) {\n if (e[t] === Ce || e[t] === Pe)\n s === \"\" ? s = e[t] : s !== e[t] || (s = \"\");\n else if (e[t] === \">\" && s === \"\") {\n n = !0;\n break;\n }\n r += e[t];\n }\n return s !== \"\" ? !1 : {\n value: r,\n index: t,\n tagClosed: n\n };\n}\nconst $e = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\nfunction H(e, t) {\n const r = M.getAllMatches(e, $e), s = {};\n for (let n = 0; n < r.length; n++) {\n if (r[n][1].length === 0)\n return p(\"InvalidAttr\", \"Attribute '\" + r[n][2] + \"' has no space in starting.\", v(r[n]));\n if (r[n][3] !== void 0 && r[n][4] === void 0)\n return p(\"InvalidAttr\", \"Attribute '\" + r[n][2] + \"' is without value.\", v(r[n]));\n if (r[n][3] === void 0 && !t.allowBooleanAttributes)\n return p(\"InvalidAttr\", \"boolean attribute '\" + r[n][2] + \"' is not allowed.\", v(r[n]));\n const i = r[n][2];\n if (!Le(i))\n return p(\"InvalidAttr\", \"Attribute '\" + i + \"' is an invalid name.\", v(r[n]));\n if (!s.hasOwnProperty(i))\n s[i] = 1;\n else\n return p(\"InvalidAttr\", \"Attribute '\" + i + \"' is repeated.\", v(r[n]));\n }\n return !0;\n}\nfunction Fe(e, t) {\n let r = /\\d/;\n for (e[t] === \"x\" && (t++, r = /[\\da-fA-F]/); t < e.length; t++) {\n if (e[t] === \";\")\n return t;\n if (!e[t].match(r))\n break;\n }\n return -1;\n}\nfunction Ve(e, t) {\n if (t++, e[t] === \";\")\n return -1;\n if (e[t] === \"#\")\n return t++, Fe(e, t);\n let r = 0;\n for (; t < e.length; t++, r++)\n if (!(e[t].match(/\\w/) && r < 20)) {\n if (e[t] === \";\")\n break;\n return -1;\n }\n return t;\n}\nfunction p(e, t, r) {\n return {\n err: {\n code: e,\n msg: t,\n line: r.line || r,\n col: r.col\n }\n };\n}\nfunction Le(e) {\n return M.isName(e);\n}\nfunction Re(e) {\n return M.isName(e);\n}\nfunction w(e, t) {\n const r = e.substring(0, t).split(/\\r?\\n/);\n return {\n line: r.length,\n // column number is last line's length + 1, because column numbering starts at 1:\n col: r[r.length - 1].length + 1\n };\n}\nfunction v(e) {\n return e.startIndex + e[1].length;\n}\nvar k = {};\nconst re = {\n preserveOrder: !1,\n attributeNamePrefix: \"@_\",\n attributesGroupName: !1,\n textNodeName: \"#text\",\n ignoreAttributes: !0,\n removeNSPrefix: !1,\n // remove NS from tag name or attribute name if true\n allowBooleanAttributes: !1,\n //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: !0,\n parseAttributeValue: !1,\n trimValues: !0,\n //Trim string values of tag and attributes\n cdataPropName: !1,\n numberParseOptions: {\n hex: !0,\n leadingZeros: !0,\n eNotation: !0\n },\n tagValueProcessor: function(e, t) {\n return t;\n },\n attributeValueProcessor: function(e, t) {\n return t;\n },\n stopNodes: [],\n //nested tags will not be parsed even for errors\n alwaysCreateTextNode: !1,\n isArray: () => !1,\n commentPropName: !1,\n unpairedTags: [],\n processEntities: !0,\n htmlEntities: !1,\n ignoreDeclaration: !1,\n ignorePiTags: !1,\n transformTagName: !1,\n transformAttributeName: !1,\n updateTag: function(e, t, r) {\n return e;\n }\n // skipEmptyListItem: false\n}, Se = function(e) {\n return Object.assign({}, re, e);\n};\nk.buildOptions = Se;\nk.defaultOptions = re;\nclass Me {\n constructor(t) {\n this.tagname = t, this.child = [], this[\":@\"] = {};\n }\n add(t, r) {\n t === \"__proto__\" && (t = \"#__proto__\"), this.child.push({ [t]: r });\n }\n addChild(t) {\n t.tagname === \"__proto__\" && (t.tagname = \"#__proto__\"), t[\":@\"] && Object.keys(t[\":@\"]).length > 0 ? this.child.push({ [t.tagname]: t.child, \":@\": t[\":@\"] }) : this.child.push({ [t.tagname]: t.child });\n }\n}\nvar ke = Me;\nconst Be = O;\nfunction qe(e, t) {\n const r = {};\n if (e[t + 3] === \"O\" && e[t + 4] === \"C\" && e[t + 5] === \"T\" && e[t + 6] === \"Y\" && e[t + 7] === \"P\" && e[t + 8] === \"E\") {\n t = t + 9;\n let s = 1, n = !1, i = !1, d = \"\";\n for (; t < e.length; t++)\n if (e[t] === \"<\" && !i) {\n if (n && Ge(e, t))\n t += 7, [entityName, val, t] = Xe(e, t + 1), val.indexOf(\"&\") === -1 && (r[We(entityName)] = {\n regx: RegExp(`&${entityName};`, \"g\"),\n val\n });\n else if (n && ze(e, t))\n t += 8;\n else if (n && He(e, t))\n t += 8;\n else if (n && Ke(e, t))\n t += 9;\n else if (Ue)\n i = !0;\n else\n throw new Error(\"Invalid DOCTYPE\");\n s++, d = \"\";\n } else if (e[t] === \">\") {\n if (i ? e[t - 1] === \"-\" && e[t - 2] === \"-\" && (i = !1, s--) : s--, s === 0)\n break;\n } else\n e[t] === \"[\" ? n = !0 : d += e[t];\n if (s !== 0)\n throw new Error(\"Unclosed DOCTYPE\");\n } else\n throw new Error(\"Invalid Tag instead of DOCTYPE\");\n return { entities: r, i: t };\n}\nfunction Xe(e, t) {\n let r = \"\";\n for (; t < e.length && e[t] !== \"'\" && e[t] !== '\"'; t++)\n r += e[t];\n if (r = r.trim(), r.indexOf(\" \") !== -1)\n throw new Error(\"External entites are not supported\");\n const s = e[t++];\n let n = \"\";\n for (; t < e.length && e[t] !== s; t++)\n n += e[t];\n return [r, n, t];\n}\nfunction Ue(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"-\" && e[t + 3] === \"-\";\n}\nfunction Ge(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"E\" && e[t + 3] === \"N\" && e[t + 4] === \"T\" && e[t + 5] === \"I\" && e[t + 6] === \"T\" && e[t + 7] === \"Y\";\n}\nfunction ze(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"E\" && e[t + 3] === \"L\" && e[t + 4] === \"E\" && e[t + 5] === \"M\" && e[t + 6] === \"E\" && e[t + 7] === \"N\" && e[t + 8] === \"T\";\n}\nfunction He(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"A\" && e[t + 3] === \"T\" && e[t + 4] === \"T\" && e[t + 5] === \"L\" && e[t + 6] === \"I\" && e[t + 7] === \"S\" && e[t + 8] === \"T\";\n}\nfunction Ke(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"N\" && e[t + 3] === \"O\" && e[t + 4] === \"T\" && e[t + 5] === \"A\" && e[t + 6] === \"T\" && e[t + 7] === \"I\" && e[t + 8] === \"O\" && e[t + 9] === \"N\";\n}\nfunction We(e) {\n if (Be.isName(e))\n return e;\n throw new Error(`Invalid entity name ${e}`);\n}\nvar Ze = qe;\nconst je = /^[-+]?0x[a-fA-F0-9]+$/, Ye = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n!Number.parseInt && window.parseInt && (Number.parseInt = window.parseInt);\n!Number.parseFloat && window.parseFloat && (Number.parseFloat = window.parseFloat);\nconst Je = {\n hex: !0,\n leadingZeros: !0,\n decimalPoint: \".\",\n eNotation: !0\n //skipLike: /regex/\n};\nfunction Qe(e, t = {}) {\n if (t = Object.assign({}, Je, t), !e || typeof e != \"string\")\n return e;\n let r = e.trim();\n if (t.skipLike !== void 0 && t.skipLike.test(r))\n return e;\n if (t.hex && je.test(r))\n return Number.parseInt(r, 16);\n {\n const s = Ye.exec(r);\n if (s) {\n const n = s[1], i = s[2];\n let d = De(s[3]);\n const u = s[4] || s[6];\n if (!t.leadingZeros && i.length > 0 && n && r[2] !== \".\")\n return e;\n if (!t.leadingZeros && i.length > 0 && !n && r[1] !== \".\")\n return e;\n {\n const o = Number(r), a = \"\" + o;\n return a.search(/[eE]/) !== -1 || u ? t.eNotation ? o : e : r.indexOf(\".\") !== -1 ? a === \"0\" && d === \"\" || a === d || n && a === \"-\" + d ? o : e : i ? d === a || n + d === a ? o : e : r === a || r === n + a ? o : e;\n }\n } else\n return e;\n }\n}\nfunction De(e) {\n return e && e.indexOf(\".\") !== -1 && (e = e.replace(/0+$/, \"\"), e === \".\" ? e = \"0\" : e[0] === \".\" ? e = \"0\" + e : e[e.length - 1] === \".\" && (e = e.substr(0, e.length - 1))), e;\n}\nvar et = Qe;\nconst B = O, T = ke, tt = Ze, rt = et;\n\"<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)\".replace(/NAME/g, B.nameRegexp);\nlet nt = class {\n constructor(t) {\n this.options = t, this.currentNode = null, this.tagsNodeStack = [], this.docTypeEntities = {}, 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 }, this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" }, 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 }, this.addExternalEntities = it, this.parseXml = at, this.parseTextData = st, this.resolveNameSpace = ot, this.buildAttributesMap = dt, this.isItStopNode = ht, this.replaceEntitiesValue = ft, this.readStopNodeData = gt, this.saveTextToParentTag = ct, this.addChild = lt;\n }\n};\nfunction it(e) {\n const t = Object.keys(e);\n for (let r = 0; r < t.length; r++) {\n const s = t[r];\n this.lastEntities[s] = {\n regex: new RegExp(\"&\" + s + \";\", \"g\"),\n val: e[s]\n };\n }\n}\nfunction st(e, t, r, s, n, i, d) {\n if (e !== void 0 && (this.options.trimValues && !s && (e = e.trim()), e.length > 0)) {\n d || (e = this.replaceEntitiesValue(e));\n const u = this.options.tagValueProcessor(t, e, r, n, i);\n return u == null ? e : typeof u != typeof e || u !== e ? u : this.options.trimValues ? $(e, this.options.parseTagValue, this.options.numberParseOptions) : e.trim() === e ? $(e, this.options.parseTagValue, this.options.numberParseOptions) : e;\n }\n}\nfunction ot(e) {\n if (this.options.removeNSPrefix) {\n const t = e.split(\":\"), r = e.charAt(0) === \"/\" ? \"/\" : \"\";\n if (t[0] === \"xmlns\")\n return \"\";\n t.length === 2 && (e = r + t[1]);\n }\n return e;\n}\nconst ut = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\nfunction dt(e, t, r) {\n if (!this.options.ignoreAttributes && typeof e == \"string\") {\n const s = B.getAllMatches(e, ut), n = s.length, i = {};\n for (let d = 0; d < n; d++) {\n const u = this.resolveNameSpace(s[d][1]);\n let o = s[d][4], a = this.options.attributeNamePrefix + u;\n if (u.length)\n if (this.options.transformAttributeName && (a = this.options.transformAttributeName(a)), a === \"__proto__\" && (a = \"#__proto__\"), o !== void 0) {\n this.options.trimValues && (o = o.trim()), o = this.replaceEntitiesValue(o);\n const l = this.options.attributeValueProcessor(u, o, t);\n l == null ? i[a] = o : typeof l != typeof o || l !== o ? i[a] = l : i[a] = $(\n o,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n } else\n this.options.allowBooleanAttributes && (i[a] = !0);\n }\n if (!Object.keys(i).length)\n return;\n if (this.options.attributesGroupName) {\n const d = {};\n return d[this.options.attributesGroupName] = i, d;\n }\n return i;\n }\n}\nconst at = function(e) {\n e = e.replace(/\\r\\n?/g, `\n`);\n const t = new T(\"!xml\");\n let r = t, s = \"\", n = \"\";\n for (let i = 0; i < e.length; i++)\n if (e[i] === \"<\")\n if (e[i + 1] === \"/\") {\n const u = y(e, \">\", i, \"Closing Tag is not closed.\");\n let o = e.substring(i + 2, u).trim();\n if (this.options.removeNSPrefix) {\n const f = o.indexOf(\":\");\n f !== -1 && (o = o.substr(f + 1));\n }\n this.options.transformTagName && (o = this.options.transformTagName(o)), r && (s = this.saveTextToParentTag(s, r, n));\n const a = n.substring(n.lastIndexOf(\".\") + 1);\n if (o && this.options.unpairedTags.indexOf(o) !== -1)\n throw new Error(`Unpaired tag can not be used as closing tag: </${o}>`);\n let l = 0;\n a && this.options.unpairedTags.indexOf(a) !== -1 ? (l = n.lastIndexOf(\".\", n.lastIndexOf(\".\") - 1), this.tagsNodeStack.pop()) : l = n.lastIndexOf(\".\"), n = n.substring(0, l), r = this.tagsNodeStack.pop(), s = \"\", i = u;\n } else if (e[i + 1] === \"?\") {\n let u = x(e, i, !1, \"?>\");\n if (!u)\n throw new Error(\"Pi Tag is not closed.\");\n if (s = this.saveTextToParentTag(s, r, n), !(this.options.ignoreDeclaration && u.tagName === \"?xml\" || this.options.ignorePiTags)) {\n const o = new T(u.tagName);\n o.add(this.options.textNodeName, \"\"), u.tagName !== u.tagExp && u.attrExpPresent && (o[\":@\"] = this.buildAttributesMap(u.tagExp, n, u.tagName)), this.addChild(r, o, n);\n }\n i = u.closeIndex + 1;\n } else if (e.substr(i + 1, 3) === \"!--\") {\n const u = y(e, \"-->\", i + 4, \"Comment is not closed.\");\n if (this.options.commentPropName) {\n const o = e.substring(i + 4, u - 2);\n s = this.saveTextToParentTag(s, r, n), r.add(this.options.commentPropName, [{ [this.options.textNodeName]: o }]);\n }\n i = u;\n } else if (e.substr(i + 1, 2) === \"!D\") {\n const u = tt(e, i);\n this.docTypeEntities = u.entities, i = u.i;\n } else if (e.substr(i + 1, 2) === \"![\") {\n const u = y(e, \"]]>\", i, \"CDATA is not closed.\") - 2, o = e.substring(i + 9, u);\n if (s = this.saveTextToParentTag(s, r, n), this.options.cdataPropName)\n r.add(this.options.cdataPropName, [{ [this.options.textNodeName]: o }]);\n else {\n let a = this.parseTextData(o, r.tagname, n, !0, !1, !0);\n a == null && (a = \"\"), r.add(this.options.textNodeName, a);\n }\n i = u + 2;\n } else {\n let u = x(e, i, this.options.removeNSPrefix), o = u.tagName;\n const a = u.rawTagName;\n let l = u.tagExp, f = u.attrExpPresent, c = u.closeIndex;\n this.options.transformTagName && (o = this.options.transformTagName(o)), r && s && r.tagname !== \"!xml\" && (s = this.saveTextToParentTag(s, r, n, !1));\n const g = r;\n if (g && this.options.unpairedTags.indexOf(g.tagname) !== -1 && (r = this.tagsNodeStack.pop(), n = n.substring(0, n.lastIndexOf(\".\"))), o !== t.tagname && (n += n ? \".\" + o : o), this.isItStopNode(this.options.stopNodes, n, o)) {\n let h = \"\";\n if (l.length > 0 && l.lastIndexOf(\"/\") === l.length - 1)\n i = u.closeIndex;\n else if (this.options.unpairedTags.indexOf(o) !== -1)\n i = u.closeIndex;\n else {\n const E = this.readStopNodeData(e, a, c + 1);\n if (!E)\n throw new Error(`Unexpected end of ${a}`);\n i = E.i, h = E.tagContent;\n }\n const _ = new T(o);\n o !== l && f && (_[\":@\"] = this.buildAttributesMap(l, n, o)), h && (h = this.parseTextData(h, o, n, !0, f, !0, !0)), n = n.substr(0, n.lastIndexOf(\".\")), _.add(this.options.textNodeName, h), this.addChild(r, _, n);\n } else {\n if (l.length > 0 && l.lastIndexOf(\"/\") === l.length - 1) {\n o[o.length - 1] === \"/\" ? (o = o.substr(0, o.length - 1), n = n.substr(0, n.length - 1), l = o) : l = l.substr(0, l.length - 1), this.options.transformTagName && (o = this.options.transformTagName(o));\n const h = new T(o);\n o !== l && f && (h[\":@\"] = this.buildAttributesMap(l, n, o)), this.addChild(r, h, n), n = n.substr(0, n.lastIndexOf(\".\"));\n } else {\n const h = new T(o);\n this.tagsNodeStack.push(r), o !== l && f && (h[\":@\"] = this.buildAttributesMap(l, n, o)), this.addChild(r, h, n), r = h;\n }\n s = \"\", i = c;\n }\n }\n else\n s += e[i];\n return t.child;\n};\nfunction lt(e, t, r) {\n const s = this.options.updateTag(t.tagname, r, t[\":@\"]);\n s === !1 || (typeof s == \"string\" && (t.tagname = s), e.addChild(t));\n}\nconst ft = function(e) {\n if (this.options.processEntities) {\n for (let t in this.docTypeEntities) {\n const r = this.docTypeEntities[t];\n e = e.replace(r.regx, r.val);\n }\n for (let t in this.lastEntities) {\n const r = this.lastEntities[t];\n e = e.replace(r.regex, r.val);\n }\n if (this.options.htmlEntities)\n for (let t in this.htmlEntities) {\n const r = this.htmlEntities[t];\n e = e.replace(r.regex, r.val);\n }\n e = e.replace(this.ampEntity.regex, this.ampEntity.val);\n }\n return e;\n};\nfunction ct(e, t, r, s) {\n return e && (s === void 0 && (s = Object.keys(t.child).length === 0), e = this.parseTextData(\n e,\n t.tagname,\n r,\n !1,\n t[\":@\"] ? Object.keys(t[\":@\"]).length !== 0 : !1,\n s\n ), e !== void 0 && e !== \"\" && t.add(this.options.textNodeName, e), e = \"\"), e;\n}\nfunction ht(e, t, r) {\n const s = \"*.\" + r;\n for (const n in e) {\n const i = e[n];\n if (s === i || t === i)\n return !0;\n }\n return !1;\n}\nfunction pt(e, t, r = \">\") {\n let s, n = \"\";\n for (let i = t; i < e.length; i++) {\n let d = e[i];\n if (s)\n d === s && (s = \"\");\n else if (d === '\"' || d === \"'\")\n s = d;\n else if (d === r[0])\n if (r[1]) {\n if (e[i + 1] === r[1])\n return {\n data: n,\n index: i\n };\n } else\n return {\n data: n,\n index: i\n };\n else\n d === \"\t\" && (d = \" \");\n n += d;\n }\n}\nfunction y(e, t, r, s) {\n const n = e.indexOf(t, r);\n if (n === -1)\n throw new Error(s);\n return n + t.length - 1;\n}\nfunction x(e, t, r, s = \">\") {\n const n = pt(e, t + 1, s);\n if (!n)\n return;\n let i = n.data;\n const d = n.index, u = i.search(/\\s/);\n let o = i, a = !0;\n u !== -1 && (o = i.substr(0, u).replace(/\\s\\s*$/, \"\"), i = i.substr(u + 1));\n const l = o;\n if (r) {\n const f = o.indexOf(\":\");\n f !== -1 && (o = o.substr(f + 1), a = o !== n.data.substr(f + 1));\n }\n return {\n tagName: o,\n tagExp: i,\n closeIndex: d,\n attrExpPresent: a,\n rawTagName: l\n };\n}\nfunction gt(e, t, r) {\n const s = r;\n let n = 1;\n for (; r < e.length; r++)\n if (e[r] === \"<\")\n if (e[r + 1] === \"/\") {\n const i = y(e, \">\", r, `${t} is not closed`);\n if (e.substring(r + 2, i).trim() === t && (n--, n === 0))\n return {\n tagContent: e.substring(s, r),\n i\n };\n r = i;\n } else if (e[r + 1] === \"?\")\n r = y(e, \"?>\", r + 1, \"StopNode is not closed.\");\n else if (e.substr(r + 1, 3) === \"!--\")\n r = y(e, \"-->\", r + 3, \"StopNode is not closed.\");\n else if (e.substr(r + 1, 2) === \"![\")\n r = y(e, \"]]>\", r, \"StopNode is not closed.\") - 2;\n else {\n const i = x(e, r, \">\");\n i && ((i && i.tagName) === t && i.tagExp[i.tagExp.length - 1] !== \"/\" && n++, r = i.closeIndex);\n }\n}\nfunction $(e, t, r) {\n if (t && typeof e == \"string\") {\n const s = e.trim();\n return s === \"true\" ? !0 : s === \"false\" ? !1 : rt(e, r);\n } else\n return B.isExist(e) ? e : \"\";\n}\nvar wt = nt, ne = {};\nfunction mt(e, t) {\n return ie(e, t);\n}\nfunction ie(e, t, r) {\n let s;\n const n = {};\n for (let i = 0; i < e.length; i++) {\n const d = e[i], u = Nt(d);\n let o = \"\";\n if (r === void 0 ? o = u : o = r + \".\" + u, u === t.textNodeName)\n s === void 0 ? s = d[u] : s += \"\" + d[u];\n else {\n if (u === void 0)\n continue;\n if (d[u]) {\n let a = ie(d[u], t, o);\n const l = bt(a, t);\n d[\":@\"] ? Et(a, d[\":@\"], o, t) : Object.keys(a).length === 1 && a[t.textNodeName] !== void 0 && !t.alwaysCreateTextNode ? a = a[t.textNodeName] : Object.keys(a).length === 0 && (t.alwaysCreateTextNode ? a[t.textNodeName] = \"\" : a = \"\"), n[u] !== void 0 && n.hasOwnProperty(u) ? (Array.isArray(n[u]) || (n[u] = [n[u]]), n[u].push(a)) : t.isArray(u, o, l) ? n[u] = [a] : n[u] = a;\n }\n }\n }\n return typeof s == \"string\" ? s.length > 0 && (n[t.textNodeName] = s) : s !== void 0 && (n[t.textNodeName] = s), n;\n}\nfunction Nt(e) {\n const t = Object.keys(e);\n for (let r = 0; r < t.length; r++) {\n const s = t[r];\n if (s !== \":@\")\n return s;\n }\n}\nfunction Et(e, t, r, s) {\n if (t) {\n const n = Object.keys(t), i = n.length;\n for (let d = 0; d < i; d++) {\n const u = n[d];\n s.isArray(u, r + \".\" + u, !0, !0) ? e[u] = [t[u]] : e[u] = t[u];\n }\n }\n}\nfunction bt(e, t) {\n const { textNodeName: r } = t, s = Object.keys(e).length;\n return !!(s === 0 || s === 1 && (e[r] || typeof e[r] == \"boolean\" || e[r] === 0));\n}\nne.prettify = mt;\nconst { buildOptions: yt } = k, _t = wt, { prettify: vt } = ne, Tt = S;\nlet It = class {\n constructor(t) {\n this.externalEntities = {}, this.options = yt(t);\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(t, r) {\n if (typeof t != \"string\")\n if (t.toString)\n t = t.toString();\n else\n throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n if (r) {\n r === !0 && (r = {});\n const i = Tt.validate(t, r);\n if (i !== !0)\n throw Error(`${i.err.msg}:${i.err.line}:${i.err.col}`);\n }\n const s = new _t(this.options);\n s.addExternalEntities(this.externalEntities);\n const n = s.parseXml(t);\n return this.options.preserveOrder || n === void 0 ? n : vt(n, 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(t, r) {\n if (r.indexOf(\"&\") !== -1)\n throw new Error(\"Entity value can't have '&'\");\n if (t.indexOf(\"&\") !== -1 || t.indexOf(\";\") !== -1)\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '
'\");\n if (r === \"&\")\n throw new Error(\"An entity with value '&' is not permitted\");\n this.externalEntities[t] = r;\n }\n};\nvar At = It;\nconst Ot = `\n`;\nfunction Ct(e, t) {\n let r = \"\";\n return t.format && t.indentBy.length > 0 && (r = Ot), se(e, t, \"\", r);\n}\nfunction se(e, t, r, s) {\n let n = \"\", i = !1;\n for (let d = 0; d < e.length; d++) {\n const u = e[d], o = Pt(u);\n if (o === void 0)\n continue;\n let a = \"\";\n if (r.length === 0 ? a = o : a = `${r}.${o}`, o === t.textNodeName) {\n let h = u[o];\n xt(a, t) || (h = t.tagValueProcessor(o, h), h = oe(h, t)), i && (n += s), n += h, i = !1;\n continue;\n } else if (o === t.cdataPropName) {\n i && (n += s), n += `<![CDATA[${u[o][0][t.textNodeName]}]]>`, i = !1;\n continue;\n } else if (o === t.commentPropName) {\n n += s + `<!--${u[o][0][t.textNodeName]}-->`, i = !0;\n continue;\n } else if (o[0] === \"?\") {\n const h = K(u[\":@\"], t), _ = o === \"?xml\" ? \"\" : s;\n let E = u[o][0][t.textNodeName];\n E = E.length !== 0 ? \" \" + E : \"\", n += _ + `<${o}${E}${h}?>`, i = !0;\n continue;\n }\n let l = s;\n l !== \"\" && (l += t.indentBy);\n const f = K(u[\":@\"], t), c = s + `<${o}${f}`, g = se(u[o], t, a, l);\n t.unpairedTags.indexOf(o) !== -1 ? t.suppressUnpairedNode ? n += c + \">\" : n += c + \"/>\" : (!g || g.length === 0) && t.suppressEmptyNode ? n += c + \"/>\" : g && g.endsWith(\">\") ? n += c + `>${g}${s}</${o}>` : (n += c + \">\", g && s !== \"\" && (g.includes(\"/>\") || g.includes(\"</\")) ? n += s + t.indentBy + g + s : n += g, n += `</${o}>`), i = !0;\n }\n return n;\n}\nfunction Pt(e) {\n const t = Object.keys(e);\n for (let r = 0; r < t.length; r++) {\n const s = t[r];\n if (e.hasOwnProperty(s) && s !== \":@\")\n return s;\n }\n}\nfunction K(e, t) {\n let r = \"\";\n if (e && !t.ignoreAttributes)\n for (let s in e) {\n if (!e.hasOwnProperty(s))\n continue;\n let n = t.attributeValueProcessor(s, e[s]);\n n = oe(n, t), n === !0 && t.suppressBooleanAttributes ? r += ` ${s.substr(t.attributeNamePrefix.length)}` : r += ` ${s.substr(t.attributeNamePrefix.length)}=\"${n}\"`;\n }\n return r;\n}\nfunction xt(e, t) {\n e = e.substr(0, e.length - t.textNodeName.length - 1);\n let r = e.substr(e.lastIndexOf(\".\") + 1);\n for (let s in t.stopNodes)\n if (t.stopNodes[s] === e || t.stopNodes[s] === \"*.\" + r)\n return !0;\n return !1;\n}\nfunction oe(e, t) {\n if (e && e.length > 0 && t.processEntities)\n for (let r = 0; r < t.entities.length; r++) {\n const s = t.entities[r];\n e = e.replace(s.regex, s.val);\n }\n return e;\n}\nvar $t = Ct;\nconst Ft = $t, Vt = {\n attributeNamePrefix: \"@_\",\n attributesGroupName: !1,\n textNodeName: \"#text\",\n ignoreAttributes: !0,\n cdataPropName: !1,\n format: !1,\n indentBy: \" \",\n suppressEmptyNode: !1,\n suppressUnpairedNode: !0,\n suppressBooleanAttributes: !0,\n tagValueProcessor: function(e, t) {\n return t;\n },\n attributeValueProcessor: function(e, t) {\n return t;\n },\n preserveOrder: !1,\n commentPropName: !1,\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: !0,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: !1\n};\nfunction b(e) {\n this.options = Object.assign({}, Vt, e), this.options.ignoreAttributes || this.options.attributesGroupName ? this.isAttribute = function() {\n return !1;\n } : (this.attrPrefixLen = this.options.attributeNamePrefix.length, this.isAttribute = St), this.processTextOrObjNode = Lt, this.options.format ? (this.indentate = Rt, this.tagEndChar = `>\n`, this.newLine = `\n`) : (this.indentate = function() {\n return \"\";\n }, this.tagEndChar = \">\", this.newLine = \"\");\n}\nb.prototype.build = function(e) {\n return this.options.preserveOrder ? Ft(e, this.options) : (Array.isArray(e) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1 && (e = {\n [this.options.arrayNodeName]: e\n }), this.j2x(e, 0).val);\n};\nb.prototype.j2x = function(e, t) {\n let r = \"\", s = \"\";\n for (let n in e)\n if (Object.prototype.hasOwnProperty.call(e, n))\n if (typeof e[n] > \"u\")\n this.isAttribute(n) && (s += \"\");\n else if (e[n] === null)\n this.isAttribute(n) ? s += \"\" : n[0] === \"?\" ? s += this.indentate(t) + \"<\" + n + \"?\" + this.tagEndChar : s += this.indentate(t) + \"<\" + n + \"/\" + this.tagEndChar;\n else if (e[n] instanceof Date)\n s += this.buildTextValNode(e[n], n, \"\", t);\n else if (typeof e[n] != \"object\") {\n const i = this.isAttribute(n);\n if (i)\n r += this.buildAttrPairStr(i, \"\" + e[n]);\n else if (n === this.options.textNodeName) {\n let d = this.options.tagValueProcessor(n, \"\" + e[n]);\n s += this.replaceEntitiesValue(d);\n } else\n s += this.buildTextValNode(e[n], n, \"\", t);\n } else if (Array.isArray(e[n])) {\n const i = e[n].length;\n let d = \"\";\n for (let u = 0; u < i; u++) {\n const o = e[n][u];\n typeof o > \"u\" || (o === null ? n[0] === \"?\" ? s += this.indentate(t) + \"<\" + n + \"?\" + this.tagEndChar : s += this.indentate(t) + \"<\" + n + \"/\" + this.tagEndChar : typeof o == \"object\" ? this.options.oneListGroup ? d += this.j2x(o, t + 1).val : d += this.processTextOrObjNode(o, n, t) : d += this.buildTextValNode(o, n, \"\", t));\n }\n this.options.oneListGroup && (d = this.buildObjectNode(d, n, \"\", t)), s += d;\n } else if (this.options.attributesGroupName && n === this.options.attributesGroupName) {\n const i = Object.keys(e[n]), d = i.length;\n for (let u = 0; u < d; u++)\n r += this.buildAttrPairStr(i[u], \"\" + e[n][i[u]]);\n } else\n s += this.processTextOrObjNode(e[n], n, t);\n return { attrStr: r, val: s };\n};\nb.prototype.buildAttrPairStr = function(e, t) {\n return t = this.options.attributeValueProcessor(e, \"\" + t), t = this.replaceEntitiesValue(t), this.options.suppressBooleanAttributes && t === \"true\" ? \" \" + e : \" \" + e + '=\"' + t + '\"';\n};\nfunction Lt(e, t, r) {\n const s = this.j2x(e, r + 1);\n return e[this.options.textNodeName] !== void 0 && Object.keys(e).length === 1 ? this.buildTextValNode(e[this.options.textNodeName], t, s.attrStr, r) : this.buildObjectNode(s.val, t, s.attrStr, r);\n}\nb.prototype.buildObjectNode = function(e, t, r, s) {\n if (e === \"\")\n return t[0] === \"?\" ? this.indentate(s) + \"<\" + t + r + \"?\" + this.tagEndChar : this.indentate(s) + \"<\" + t + r + this.closeTag(t) + this.tagEndChar;\n {\n let n = \"</\" + t + this.tagEndChar, i = \"\";\n return t[0] === \"?\" && (i = \"?\", n = \"\"), (r || r === \"\") && e.indexOf(\"<\") === -1 ? this.indentate(s) + \"<\" + t + r + i + \">\" + e + n : this.options.commentPropName !== !1 && t === this.options.commentPropName && i.length === 0 ? this.indentate(s) + `<!--${e}-->` + this.newLine : this.indentate(s) + \"<\" + t + r + i + this.tagEndChar + e + this.indentate(s) + n;\n }\n};\nb.prototype.closeTag = function(e) {\n let t = \"\";\n return this.options.unpairedTags.indexOf(e) !== -1 ? this.options.suppressUnpairedNode || (t = \"/\") : this.options.suppressEmptyNode ? t = \"/\" : t = `></${e}`, t;\n};\nb.prototype.buildTextValNode = function(e, t, r, s) {\n if (this.options.cdataPropName !== !1 && t === this.options.cdataPropName)\n return this.indentate(s) + `<![CDATA[${e}]]>` + this.newLine;\n if (this.options.commentPropName !== !1 && t === this.options.commentPropName)\n return this.indentate(s) + `<!--${e}-->` + this.newLine;\n if (t[0] === \"?\")\n return this.indentate(s) + \"<\" + t + r + \"?\" + this.tagEndChar;\n {\n let n = this.options.tagValueProcessor(t, e);\n return n = this.replaceEntitiesValue(n), n === \"\" ? this.indentate(s) + \"<\" + t + r + this.closeTag(t) + this.tagEndChar : this.indentate(s) + \"<\" + t + r + \">\" + n + \"</\" + t + this.tagEndChar;\n }\n};\nb.prototype.replaceEntitiesValue = function(e) {\n if (e && e.length > 0 && this.options.processEntities)\n for (let t = 0; t < this.options.entities.length; t++) {\n const r = this.options.entities[t];\n e = e.replace(r.regex, r.val);\n }\n return e;\n};\nfunction Rt(e) {\n return this.options.indentBy.repeat(e);\n}\nfunction St(e) {\n return e.startsWith(this.options.attributeNamePrefix) && e !== this.options.textNodeName ? e.substr(this.attrPrefixLen) : !1;\n}\nvar Mt = b;\nconst kt = S, Bt = At, qt = Mt;\nvar W = {\n XMLParser: Bt,\n XMLValidator: kt,\n XMLBuilder: qt\n};\nfunction Xt(e) {\n if (typeof e != \"string\")\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof e}\\``);\n if (e = e.trim(), e.length === 0 || W.XMLValidator.validate(e) !== !0)\n return !1;\n let t;\n const r = new W.XMLParser();\n try {\n t = r.parse(e);\n } catch {\n return !1;\n }\n return !(!t || !(\"svg\" in t));\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass cr {\n _view;\n constructor(t) {\n Ut(t), this._view = t;\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(t) {\n this._view.icon = t;\n }\n get order() {\n return this._view.order;\n }\n set order(t) {\n this._view.order = t;\n }\n get params() {\n return this._view.params;\n }\n set params(t) {\n this._view.params = t;\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(t) {\n this._view.expanded = t;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n}\nconst Ut = function(e) {\n if (!e.id || typeof e.id != \"string\")\n throw new Error(\"View id is required and must be a string\");\n if (!e.name || typeof e.name != \"string\")\n throw new Error(\"View name is required and must be a string\");\n if (e.columns && e.columns.length > 0 && (!e.caption || typeof e.caption != \"string\"))\n throw new Error(\"View caption is required for top-level views and must be a string\");\n if (!e.getContents || typeof e.getContents != \"function\")\n throw new Error(\"View getContents is required and must be a function\");\n if (!e.icon || typeof e.icon != \"string\" || !Xt(e.icon))\n throw new Error(\"View icon is required and must be a valid svg string\");\n if (!(\"order\" in e) || typeof e.order != \"number\")\n throw new Error(\"View order is required and must be a number\");\n if (e.columns && e.columns.forEach((t) => {\n if (!(t instanceof Ie))\n throw new Error(\"View columns must be an array of Column. Invalid column found\");\n }), e.emptyView && typeof e.emptyView != \"function\")\n throw new Error(\"View emptyView must be a function\");\n if (e.parent && typeof e.parent != \"string\")\n throw new Error(\"View parent must be a string\");\n if (\"sticky\" in e && typeof e.sticky != \"boolean\")\n throw new Error(\"View sticky must be a boolean\");\n if (\"expanded\" in e && typeof e.expanded != \"boolean\")\n throw new Error(\"View expanded must be a boolean\");\n if (e.defaultSortKey && typeof e.defaultSortKey != \"string\")\n throw new Error(\"View defaultSortKey must be a string\");\n return !0;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst hr = function(e) {\n return F().registerEntry(e);\n}, pr = function(e) {\n return F().unregisterEntry(e);\n}, gr = function(e) {\n return F().getEntries(e).sort((r, s) => r.order !== void 0 && s.order !== void 0 && r.order !== s.order ? r.order - s.order : r.displayName.localeCompare(s.displayName, void 0, { numeric: !0, sensitivity: \"base\" }));\n};\nexport {\n Ie as Column,\n Z as DefaultType,\n ye as File,\n Qt as FileAction,\n R as FileType,\n _e as Folder,\n tr as Header,\n Te as Navigation,\n D as Node,\n Q as NodeStatus,\n N as Permission,\n cr as View,\n hr as addNewFileMenuEntry,\n ur as davGetClient,\n sr as davGetDefaultPropfind,\n Ee as davGetFavoritesReport,\n or as davGetRecentSearch,\n be as davParsePermissions,\n te as davRemoteURL,\n ve as davResultToNode,\n ee as davRootPath,\n Y as defaultDavNamespaces,\n j as defaultDavProperties,\n Yt as formatFileSize,\n L as getDavNameSpaces,\n V as getDavProperties,\n dr as getFavoriteNodes,\n er as getFileActions,\n nr as getFileListHeaders,\n ar as getNavigation,\n gr as getNewFileMenuEntries,\n Jt as parseFileSize,\n ir as registerDavProperty,\n Dt as registerFileAction,\n rr as registerFileListHeaders,\n pr as removeNewFileMenuEntry\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./fileEntryInlineSystemTags.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./fileEntryInlineSystemTags.scss\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * @copyright Copyright (c) 2023 Lucas Azevedo <lhs_azevedo@hotmail.com>\n *\n * @author Lucas Azevedo <lhs_azevedo@hotmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { FileAction, Node, registerDavProperty, registerFileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport '../css/fileEntryInlineSystemTags.scss';\nconst getNodeSystemTags = function (node) {\n const tags = node.attributes?.['system-tags']?.['system-tag'];\n if (tags === undefined) {\n return [];\n }\n return [tags].flat();\n};\nconst renderTag = function (tag, isMore = false) {\n const tagElement = document.createElement('li');\n tagElement.classList.add('files-list__system-tag');\n tagElement.textContent = tag;\n if (isMore) {\n tagElement.classList.add('files-list__system-tag--more');\n }\n return tagElement;\n};\nexport const action = new FileAction({\n id: 'system-tags',\n displayName: () => '',\n iconSvgInline: () => '',\n enabled(nodes) {\n // Only show the action on single nodes\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes[0];\n const tags = getNodeSystemTags(node);\n // Only show the action if the node has system tags\n if (tags.length === 0) {\n return false;\n }\n return true;\n },\n exec: async () => null,\n async renderInline(node) {\n // Ensure we have the system tags as an array\n const tags = getNodeSystemTags(node);\n if (tags.length === 0) {\n return null;\n }\n const systemTagsElement = document.createElement('ul');\n systemTagsElement.classList.add('files-list__system-tags');\n if (tags.length === 1) {\n systemTagsElement.setAttribute('aria-label', t('files', 'This file has the tag {tag}', { tag: tags[0] }));\n }\n else {\n const firstTags = tags.slice(0, -1).join(', ');\n const lastTag = tags[tags.length - 1];\n systemTagsElement.setAttribute('aria-label', t('files', 'This file has the tags {firstTags} and {lastTag}', { firstTags, lastTag }));\n }\n systemTagsElement.append(renderTag(tags[0]));\n // More tags than the one we're showing\n if (tags.length > 1) {\n const moreTagElement = renderTag('+' + (tags.length - 1), true);\n moreTagElement.setAttribute('title', tags.slice(1).join(', '));\n systemTagsElement.append(moreTagElement);\n }\n return systemTagsElement;\n },\n order: 0,\n});\nregisterDavProperty('nc:system-tags');\nregisterFileAction(action);\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { createClient } from 'webdav';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getRequestToken } from '@nextcloud/auth';\nconst rootUrl = generateRemoteUrl('dav');\nexport const davClient = createClient(rootUrl, {\n headers: {\n requesttoken: getRequestToken() ?? '',\n },\n});\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport camelCase from 'camelcase';\nexport const defaultBaseTag = {\n userVisible: true,\n userAssignable: true,\n canAssign: true,\n};\nexport const parseTags = (tags) => {\n return tags.map(({ props }) => Object.fromEntries(Object.entries(props)\n .map(([key, value]) => [camelCase(key), camelCase(key) === 'displayName' ? String(value) : value])));\n};\n/**\n * Parse id from `Content-Location` header\n * @param url URL to parse\n */\nexport const parseIdFromLocation = (url) => {\n const queryPos = url.indexOf('?');\n if (queryPos > 0) {\n url = url.substring(0, queryPos);\n }\n const parts = url.split('/');\n let result;\n do {\n result = parts[parts.length - 1];\n parts.pop();\n // note: first result can be empty when there is a trailing slash,\n // so we take the part before that\n } while (!result && parts.length > 0);\n return Number(result);\n};\nexport const formatTag = (initialTag) => {\n const tag = { ...initialTag };\n if (tag.name && !tag.displayName) {\n return tag;\n }\n tag.name = tag.displayName;\n delete tag.displayName;\n return tag;\n};\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport const logger = getLoggerBuilder()\n .setApp('systemtags')\n .detectUser()\n .build();\n","const inWebWorker = typeof WorkerGlobalScope !== \"undefined\" &&\n self instanceof WorkerGlobalScope;\nconst root = inWebWorker\n ? self\n : typeof window !== \"undefined\"\n ? window\n : globalThis;\nexport const fetch = root.fetch.bind(root);\nexport const Headers = root.Headers;\nexport const Request = root.Request;\nexport const Response = root.Response;\n","import { sequence } from \"./functions.js\";\nconst HOT_PATCHER_TYPE = \"@@HOTPATCHER\";\nconst NOOP = () => { };\nfunction createNewItem(method) {\n return {\n original: method,\n methods: [method],\n final: false\n };\n}\n/**\n * Hot patching manager class\n */\nexport class HotPatcher {\n constructor() {\n this._configuration = {\n registry: {},\n getEmptyAction: \"null\"\n };\n this.__type__ = HOT_PATCHER_TYPE;\n }\n /**\n * Configuration object reference\n * @readonly\n */\n get configuration() {\n return this._configuration;\n }\n /**\n * The action to take when a non-set method is requested\n * Possible values: null/throw\n */\n get getEmptyAction() {\n return this.configuration.getEmptyAction;\n }\n set getEmptyAction(newAction) {\n this.configuration.getEmptyAction = newAction;\n }\n /**\n * Control another hot-patcher instance\n * Force the remote instance to use patched methods from calling instance\n * @param target The target instance to control\n * @param allowTargetOverrides Allow the target to override patched methods on\n * the controller (default is false)\n * @returns Returns self\n * @throws {Error} Throws if the target is invalid\n */\n control(target, allowTargetOverrides = false) {\n if (!target || target.__type__ !== HOT_PATCHER_TYPE) {\n throw new Error(\"Failed taking control of target HotPatcher instance: Invalid type or object\");\n }\n Object.keys(target.configuration.registry).forEach(foreignKey => {\n if (this.configuration.registry.hasOwnProperty(foreignKey)) {\n if (allowTargetOverrides) {\n this.configuration.registry[foreignKey] = Object.assign({}, target.configuration.registry[foreignKey]);\n }\n }\n else {\n this.configuration.registry[foreignKey] = Object.assign({}, target.configuration.registry[foreignKey]);\n }\n });\n target._configuration = this.configuration;\n return this;\n }\n /**\n * Execute a patched method\n * @param key The method key\n * @param args Arguments to pass to the method (optional)\n * @see HotPatcher#get\n * @returns The output of the called method\n */\n execute(key, ...args) {\n const method = this.get(key) || NOOP;\n return method(...args);\n }\n /**\n * Get a method for a key\n * @param key The method key\n * @returns Returns the requested function or null if the function\n * does not exist and the host is configured to return null (and not throw)\n * @throws {Error} Throws if the configuration specifies to throw and the method\n * does not exist\n * @throws {Error} Throws if the `getEmptyAction` value is invalid\n */\n get(key) {\n const item = this.configuration.registry[key];\n if (!item) {\n switch (this.getEmptyAction) {\n case \"null\":\n return null;\n case \"throw\":\n throw new Error(`Failed handling method request: No method provided for override: ${key}`);\n default:\n throw new Error(`Failed handling request which resulted in an empty method: Invalid empty-action specified: ${this.getEmptyAction}`);\n }\n }\n return sequence(...item.methods);\n }\n /**\n * Check if a method has been patched\n * @param key The function key\n * @returns True if already patched\n */\n isPatched(key) {\n return !!this.configuration.registry[key];\n }\n /**\n * Patch a method name\n * @param key The method key to patch\n * @param method The function to set\n * @param opts Patch options\n * @returns Returns self\n */\n patch(key, method, opts = {}) {\n const { chain = false } = opts;\n if (this.configuration.registry[key] && this.configuration.registry[key].final) {\n throw new Error(`Failed patching '${key}': Method marked as being final`);\n }\n if (typeof method !== \"function\") {\n throw new Error(`Failed patching '${key}': Provided method is not a function`);\n }\n if (chain) {\n // Add new method to the chain\n if (!this.configuration.registry[key]) {\n // New key, create item\n this.configuration.registry[key] = createNewItem(method);\n }\n else {\n // Existing, push the method\n this.configuration.registry[key].methods.push(method);\n }\n }\n else {\n // Replace the original\n if (this.isPatched(key)) {\n const { original } = this.configuration.registry[key];\n this.configuration.registry[key] = Object.assign(createNewItem(method), {\n original\n });\n }\n else {\n this.configuration.registry[key] = createNewItem(method);\n }\n }\n return this;\n }\n /**\n * Patch a method inline, execute it and return the value\n * Used for patching contents of functions. This method will not apply a patched\n * function if it has already been patched, allowing for external overrides to\n * function. It also means that the function is cached so that it is not\n * instantiated every time the outer function is invoked.\n * @param key The function key to use\n * @param method The function to patch (once, only if not patched)\n * @param args Arguments to pass to the function\n * @returns The output of the patched function\n * @example\n * function mySpecialFunction(a, b) {\n * return hotPatcher.patchInline(\"func\", (a, b) => {\n * return a + b;\n * }, a, b);\n * }\n */\n patchInline(key, method, ...args) {\n if (!this.isPatched(key)) {\n this.patch(key, method);\n }\n return this.execute(key, ...args);\n }\n /**\n * Patch a method (or methods) in sequential-mode\n * See `patch()` with the option `chain: true`\n * @see patch\n * @param key The key to patch\n * @param methods The methods to patch\n * @returns Returns self\n */\n plugin(key, ...methods) {\n methods.forEach(method => {\n this.patch(key, method, { chain: true });\n });\n return this;\n }\n /**\n * Restore a patched method if it has been overridden\n * @param key The method key\n * @returns Returns self\n */\n restore(key) {\n if (!this.isPatched(key)) {\n throw new Error(`Failed restoring method: No method present for key: ${key}`);\n }\n else if (typeof this.configuration.registry[key].original !== \"function\") {\n throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${key}`);\n }\n this.configuration.registry[key].methods = [this.configuration.registry[key].original];\n return this;\n }\n /**\n * Set a method as being final\n * This sets a method as having been finally overridden. Attempts at overriding\n * again will fail with an error.\n * @param key The key to make final\n * @returns Returns self\n */\n setFinal(key) {\n if (!this.configuration.registry.hasOwnProperty(key)) {\n throw new Error(`Failed marking '${key}' as final: No method found for key`);\n }\n this.configuration.registry[key].final = true;\n return this;\n }\n}\n","export function sequence(...methods) {\n if (methods.length === 0) {\n throw new Error(\"Failed creating sequence: No functions provided\");\n }\n return function __executeSequence(...args) {\n let result = args;\n const _this = this;\n while (methods.length > 0) {\n const method = methods.shift();\n result = [method.apply(_this, result)];\n }\n return result[0];\n };\n}\n","import { HotPatcher } from \"hot-patcher\";\nlet __patcher = null;\nexport function getPatcher() {\n if (!__patcher) {\n __patcher = new HotPatcher();\n }\n return __patcher;\n}\n","import md5 from \"md5\";\nimport { ha1Compute } from \"../tools/crypto.js\";\nconst NONCE_CHARS = \"abcdef0123456789\";\nconst NONCE_SIZE = 32;\nexport function createDigestContext(username, password, ha1) {\n return { username, password, ha1, nc: 0, algorithm: \"md5\", hasDigestAuth: false };\n}\nexport function generateDigestAuthHeader(options, digest) {\n const url = options.url.replace(\"//\", \"\");\n const uri = url.indexOf(\"/\") == -1 ? \"/\" : url.slice(url.indexOf(\"/\"));\n const method = options.method ? options.method.toUpperCase() : \"GET\";\n const qop = /(^|,)\\s*auth\\s*($|,)/.test(digest.qop) ? \"auth\" : false;\n const ncString = `00000000${digest.nc}`.slice(-8);\n const ha1 = ha1Compute(digest.algorithm, digest.username, digest.realm, digest.password, digest.nonce, digest.cnonce, digest.ha1);\n const ha2 = md5(`${method}:${uri}`);\n const digestResponse = qop\n ? md5(`${ha1}:${digest.nonce}:${ncString}:${digest.cnonce}:${qop}:${ha2}`)\n : md5(`${ha1}:${digest.nonce}:${ha2}`);\n const authValues = {\n username: digest.username,\n realm: digest.realm,\n nonce: digest.nonce,\n uri,\n qop,\n response: digestResponse,\n nc: ncString,\n cnonce: digest.cnonce,\n algorithm: digest.algorithm,\n opaque: digest.opaque\n };\n const authHeader = [];\n for (const k in authValues) {\n if (authValues[k]) {\n if (k === \"qop\" || k === \"nc\" || k === \"algorithm\") {\n authHeader.push(`${k}=${authValues[k]}`);\n }\n else {\n authHeader.push(`${k}=\"${authValues[k]}\"`);\n }\n }\n }\n return `Digest ${authHeader.join(\", \")}`;\n}\nfunction makeNonce() {\n let uid = \"\";\n for (let i = 0; i < NONCE_SIZE; ++i) {\n uid = `${uid}${NONCE_CHARS[Math.floor(Math.random() * NONCE_CHARS.length)]}`;\n }\n return uid;\n}\nexport function parseDigestAuth(response, _digest) {\n const authHeader = (response.headers && response.headers.get(\"www-authenticate\")) || \"\";\n if (authHeader.split(/\\s/)[0].toLowerCase() !== \"digest\") {\n return false;\n }\n const re = /([a-z0-9_-]+)=(?:\"([^\"]+)\"|([a-z0-9_-]+))/gi;\n for (;;) {\n const match = re.exec(authHeader);\n if (!match) {\n break;\n }\n _digest[match[1]] = match[2] || match[3];\n }\n _digest.nc += 1;\n _digest.cnonce = makeNonce();\n return true;\n}\n","import md5 from \"md5\";\nexport function ha1Compute(algorithm, user, realm, pass, nonce, cnonce, ha1) {\n const ha1Hash = ha1 || md5(`${user}:${realm}:${pass}`);\n if (algorithm && algorithm.toLowerCase() === \"md5-sess\") {\n return md5(`${ha1Hash}:${nonce}:${cnonce}`);\n }\n return ha1Hash;\n}\n","export function cloneShallow(obj) {\n return isPlainObject(obj)\n ? Object.assign({}, obj)\n : Object.setPrototypeOf(Object.assign({}, obj), Object.getPrototypeOf(obj));\n}\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" ||\n obj === null ||\n Object.prototype.toString.call(obj) != \"[object Object]\") {\n // Not an object\n return false;\n }\n if (Object.getPrototypeOf(obj) === null) {\n return true;\n }\n let proto = obj;\n // Find the prototype\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto;\n}\nexport function merge(...args) {\n let output = null, items = [...args];\n while (items.length > 0) {\n const nextItem = items.shift();\n if (!output) {\n output = cloneShallow(nextItem);\n }\n else {\n output = mergeObjects(output, nextItem);\n }\n }\n return output;\n}\nfunction mergeObjects(obj1, obj2) {\n const output = cloneShallow(obj1);\n Object.keys(obj2).forEach(key => {\n if (!output.hasOwnProperty(key)) {\n output[key] = obj2[key];\n return;\n }\n if (Array.isArray(obj2[key])) {\n output[key] = Array.isArray(output[key])\n ? [...output[key], ...obj2[key]]\n : [...obj2[key]];\n }\n else if (typeof obj2[key] === \"object\" && !!obj2[key]) {\n output[key] =\n typeof output[key] === \"object\" && !!output[key]\n ? mergeObjects(output[key], obj2[key])\n : cloneShallow(obj2[key]);\n }\n else {\n output[key] = obj2[key];\n }\n });\n return output;\n}\n","export function convertResponseHeaders(headers) {\n const output = {};\n for (const key of headers.keys()) {\n output[key] = headers.get(key);\n }\n return output;\n}\nexport function mergeHeaders(...headerPayloads) {\n if (headerPayloads.length === 0)\n return {};\n const headerKeys = {};\n return headerPayloads.reduce((output, headers) => {\n Object.keys(headers).forEach(header => {\n const lowerHeader = header.toLowerCase();\n if (headerKeys.hasOwnProperty(lowerHeader)) {\n output[headerKeys[lowerHeader]] = headers[header];\n }\n else {\n headerKeys[lowerHeader] = header;\n output[header] = headers[header];\n }\n });\n return output;\n }, {});\n}\n","const hasArrayBuffer = typeof ArrayBuffer === \"function\";\nconst { toString: objToString } = Object.prototype;\n// Taken from: https://github.com/fengyuanchen/is-array-buffer/blob/master/src/index.js\nexport function isArrayBuffer(value) {\n return (hasArrayBuffer &&\n (value instanceof ArrayBuffer || objToString.call(value) === \"[object ArrayBuffer]\"));\n}\n","import { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { fetch } from \"@buttercup/fetch\";\nimport { getPatcher } from \"./compat/patcher.js\";\nimport { isWeb } from \"./compat/env.js\";\nimport { generateDigestAuthHeader, parseDigestAuth } from \"./auth/digest.js\";\nimport { cloneShallow, merge } from \"./tools/merge.js\";\nimport { mergeHeaders } from \"./tools/headers.js\";\nimport { requestDataToFetchBody } from \"./tools/body.js\";\nfunction _request(requestOptions) {\n const patcher = getPatcher();\n return patcher.patchInline(\"request\", (options) => patcher.patchInline(\"fetch\", fetch, options.url, getFetchOptions(options)), requestOptions);\n}\nfunction getFetchOptions(requestOptions) {\n let headers = {};\n // Handle standard options\n const opts = {\n method: requestOptions.method\n };\n if (requestOptions.headers) {\n headers = mergeHeaders(headers, requestOptions.headers);\n }\n if (typeof requestOptions.data !== \"undefined\") {\n const [body, newHeaders] = requestDataToFetchBody(requestOptions.data);\n opts.body = body;\n headers = mergeHeaders(headers, newHeaders);\n }\n if (requestOptions.signal) {\n opts.signal = requestOptions.signal;\n }\n if (requestOptions.withCredentials) {\n opts.credentials = \"include\";\n }\n // Check for node-specific options\n if (!isWeb()) {\n if (requestOptions.httpAgent || requestOptions.httpsAgent) {\n opts.agent = (parsedURL) => {\n if (parsedURL.protocol === \"http:\") {\n return requestOptions.httpAgent || new HTTPAgent();\n }\n return requestOptions.httpsAgent || new HTTPSAgent();\n };\n }\n }\n // Attach headers\n opts.headers = headers;\n return opts;\n}\nexport function prepareRequestOptions(requestOptions, context, userOptions) {\n const finalOptions = cloneShallow(requestOptions);\n finalOptions.headers = mergeHeaders(context.headers, finalOptions.headers || {}, userOptions.headers || {});\n if (typeof userOptions.data !== \"undefined\") {\n finalOptions.data = userOptions.data;\n }\n if (userOptions.signal) {\n finalOptions.signal = userOptions.signal;\n }\n if (context.httpAgent) {\n finalOptions.httpAgent = context.httpAgent;\n }\n if (context.httpsAgent) {\n finalOptions.httpsAgent = context.httpsAgent;\n }\n if (context.digest) {\n finalOptions._digest = context.digest;\n }\n if (typeof context.withCredentials === \"boolean\") {\n finalOptions.withCredentials = context.withCredentials;\n }\n return finalOptions;\n}\nexport async function request(requestOptions) {\n // Client not configured for digest authentication\n if (!requestOptions._digest) {\n return _request(requestOptions);\n }\n // Remove client's digest authentication object from request options\n const _digest = requestOptions._digest;\n delete requestOptions._digest;\n // If client is already using digest authentication, include the digest authorization header\n if (_digest.hasDigestAuth) {\n requestOptions = merge(requestOptions, {\n headers: {\n Authorization: generateDigestAuthHeader(requestOptions, _digest)\n }\n });\n }\n // Perform digest request + check\n const response = await _request(requestOptions);\n if (response.status == 401) {\n _digest.hasDigestAuth = parseDigestAuth(response, _digest);\n if (_digest.hasDigestAuth) {\n requestOptions = merge(requestOptions, {\n headers: {\n Authorization: generateDigestAuthHeader(requestOptions, _digest)\n }\n });\n const response2 = await _request(requestOptions);\n if (response2.status == 401) {\n _digest.hasDigestAuth = false;\n }\n else {\n _digest.nc++;\n }\n return response2;\n }\n }\n else {\n _digest.nc++;\n }\n return response;\n}\n","import Stream from \"stream\";\nimport { isArrayBuffer } from \"../compat/arrayBuffer.js\";\nimport { isBuffer } from \"../compat/buffer.js\";\nimport { isWeb } from \"../compat/env.js\";\nexport function requestDataToFetchBody(data) {\n if (!isWeb() && data instanceof Stream.Readable) {\n // @ts-ignore\n return [data, {}];\n }\n if (typeof data === \"string\") {\n return [data, {}];\n }\n else if (isBuffer(data)) {\n return [data, {}];\n }\n else if (isArrayBuffer(data)) {\n return [data, {}];\n }\n else if (data && typeof data === \"object\") {\n return [\n JSON.stringify(data),\n {\n \"content-type\": \"application/json\"\n }\n ];\n }\n throw new Error(`Unable to convert request body: Unexpected body type: ${typeof data}`);\n}\n","export function isBuffer(value) {\n return (value != null &&\n value.constructor != null &&\n typeof value.constructor.isBuffer === \"function\" &&\n value.constructor.isBuffer(value));\n}\n","import { createClient, getPatcher } from 'webdav';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser, getRequestToken } from '@nextcloud/auth';\nimport { request } from 'webdav/dist/node/request.js';\nexport const rootPath = `/files/${getCurrentUser()?.uid}`;\nexport const defaultRootUrl = generateRemoteUrl('dav' + rootPath);\nexport const getClient = (rootUrl = defaultRootUrl) => {\n const client = createClient(rootUrl, {\n headers: {\n requesttoken: getRequestToken() || '',\n },\n });\n /**\n * Allow to override the METHOD to support dav REPORT\n *\n * @see https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/request.ts\n */\n const patcher = getPatcher();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // https://github.com/perry-mitchell/hot-patcher/issues/6\n patcher.patch('request', (options) => {\n if (options.headers?.method) {\n options.method = options.headers.method;\n delete options.headers.method;\n }\n return request(options);\n });\n return client;\n};\n","/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files')\n\t.detectUser()\n\t.build()\n","import { CancelablePromise } from 'cancelable-promise';\nimport { File, Folder, davParsePermissions, davGetDefaultPropfind } from '@nextcloud/files';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getClient, rootPath } from './WebdavClient';\nimport { hashCode } from '../utils/hashUtils';\nimport logger from '../logger';\nconst client = getClient();\nexport const resultToNode = function (node) {\n const props = node.props;\n const permissions = davParsePermissions(props?.permissions);\n const owner = (props['owner-id'] || getCurrentUser()?.uid);\n const source = generateRemoteUrl('dav' + rootPath + node.filename);\n const id = props?.fileid < 0\n ? hashCode(source)\n : props?.fileid || 0;\n const nodeData = {\n id,\n source,\n mtime: new Date(node.lastmod),\n mime: node.mime,\n size: props?.size || 0,\n permissions,\n owner,\n root: rootPath,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.['has-preview'],\n failed: props?.fileid < 0,\n },\n };\n delete nodeData.attributes.props;\n return node.type === 'file'\n ? new File(nodeData)\n : new Folder(nodeData);\n};\nexport const getContents = (path = '/') => {\n const controller = new AbortController();\n const propfindPayload = davGetDefaultPropfind();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data: propfindPayload,\n includeSelf: true,\n signal: controller.signal,\n });\n const root = contentsResponse.data[0];\n const contents = contentsResponse.data.slice(1);\n if (root.filename !== path) {\n throw new Error('Root node does not match requested path');\n }\n resolve({\n folder: resultToNode(root),\n contents: contents.map(result => {\n try {\n return resultToNode(result);\n }\n catch (error) {\n logger.error(`Invalid node detected '${result.basename}'`, { error });\n return null;\n }\n }).filter(Boolean),\n });\n }\n catch (error) {\n reject(error);\n }\n });\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nexport const hashCode = function (str) {\n return str.split('').reduce(function (a, b) {\n a = ((a << 5) - a) + b.charCodeAt(0);\n return a & a;\n }, 0);\n};\n","import { Folder, Permission, getDavNameSpaces, getDavProperties } from '@nextcloud/files';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { fetchTags } from './api';\nimport { getClient } from '../../../files/src/services/WebdavClient';\nimport { resultToNode } from '../../../files/src/services/Files';\nconst formatReportPayload = (tagId) => `<?xml version=\"1.0\"?>\n<oc:filter-files ${getDavNameSpaces()}>\n\t<d:prop>\n\t\t${getDavProperties()}\n\t</d:prop>\n <oc:filter-rules>\n <oc:systemtag>${tagId}</oc:systemtag>\n </oc:filter-rules>\n</oc:filter-files>`;\nconst tagToNode = function (tag) {\n return new Folder({\n id: tag.id,\n source: generateRemoteUrl('dav/systemtags/' + tag.id),\n owner: getCurrentUser()?.uid,\n root: '/systemtags',\n permissions: Permission.READ,\n attributes: {\n ...tag,\n 'is-tag': true,\n },\n });\n};\nexport const getContents = async (path = '/') => {\n // List tags in the root\n const tagsCache = (await fetchTags()).filter(tag => tag.userVisible);\n if (path === '/') {\n return {\n folder: new Folder({\n id: 0,\n source: generateRemoteUrl('dav/systemtags'),\n owner: getCurrentUser()?.uid,\n root: '/systemtags',\n permissions: Permission.NONE,\n }),\n contents: tagsCache.map(tagToNode),\n };\n }\n const tagId = parseInt(path.replace('/', ''), 10);\n const tag = tagsCache.find(tag => tag.id === tagId);\n if (!tag) {\n throw new Error('Tag not found');\n }\n const folder = tagToNode(tag);\n const contentsResponse = await getClient().getDirectoryContents('/', {\n details: true,\n // Only filter favorites if we're at the root\n data: formatReportPayload(tagId),\n headers: {\n // Patched in WebdavClient.ts\n method: 'REPORT',\n },\n });\n return {\n folder,\n contents: contentsResponse.data.map(resultToNode),\n };\n};\n","/**\n * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport './actions/inlineSystemTagsAction.js';\nimport { translate as t } from '@nextcloud/l10n';\nimport { View, getNavigation } from '@nextcloud/files';\nimport TagMultipleSvg from '@mdi/svg/svg/tag-multiple.svg?raw';\nimport { getContents } from './services/systemtags.js';\nconst Navigation = getNavigation();\nNavigation.register(new View({\n id: 'tags',\n name: t('systemtags', 'Tags'),\n caption: t('systemtags', 'List of tags and their associated files and folders.'),\n emptyTitle: t('systemtags', 'No tags found'),\n emptyCaption: t('systemtags', 'Tags you have created will show up here.'),\n icon: TagMultipleSvg,\n order: 25,\n getContents,\n}));\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport axios from '@nextcloud/axios';\nimport { generateUrl } from '@nextcloud/router';\nimport { translate as t } from '@nextcloud/l10n';\nimport { davClient } from './davClient.js';\nimport { formatTag, parseIdFromLocation, parseTags } from '../utils';\nimport { logger } from '../logger.js';\nexport const fetchTagsPayload = `<?xml version=\"1.0\"?>\n<d:propfind xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t<d:prop>\n\t\t<oc:id />\n\t\t<oc:display-name />\n\t\t<oc:user-visible />\n\t\t<oc:user-assignable />\n\t\t<oc:can-assign />\n\t</d:prop>\n</d:propfind>`;\nexport const fetchTags = async () => {\n const path = '/systemtags';\n try {\n const { data: tags } = await davClient.getDirectoryContents(path, {\n data: fetchTagsPayload,\n details: true,\n glob: '/systemtags/*', // Filter out first empty tag\n });\n return parseTags(tags);\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to load tags'), { error });\n throw new Error(t('systemtags', 'Failed to load tags'));\n }\n};\nexport const fetchLastUsedTagIds = async () => {\n const url = generateUrl('/apps/systemtags/lastused');\n try {\n const { data: lastUsedTagIds } = await axios.get(url);\n return lastUsedTagIds.map(Number);\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to load last used tags'), { error });\n throw new Error(t('systemtags', 'Failed to load last used tags'));\n }\n};\n/**\n * @return created tag id\n */\nexport const createTag = async (tag) => {\n const path = '/systemtags';\n const tagToPost = formatTag(tag);\n try {\n const { headers } = await davClient.customRequest(path, {\n method: 'POST',\n data: tagToPost,\n });\n const contentLocation = headers.get('content-location');\n if (contentLocation) {\n return parseIdFromLocation(contentLocation);\n }\n logger.error(t('systemtags', 'Missing \"Content-Location\" header'));\n throw new Error(t('systemtags', 'Missing \"Content-Location\" header'));\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to create tag'), { error });\n throw new Error(t('systemtags', 'Failed to create tag'));\n }\n};\nexport const updateTag = async (tag) => {\n const path = '/systemtags/' + tag.id;\n const data = `<?xml version=\"1.0\"?>\n\t<d:propertyupdate xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t\t<d:set>\n\t\t\t<d:prop>\n\t\t\t\t<oc:display-name>${tag.displayName}</oc:display-name>\n\t\t\t\t<oc:user-visible>${tag.userVisible}</oc:user-visible>\n\t\t\t\t<oc:user-assignable>${tag.userAssignable}</oc:user-assignable>\n\t\t\t</d:prop>\n\t\t</d:set>\n\t</d:propertyupdate>`;\n try {\n await davClient.customRequest(path, {\n method: 'PROPPATCH',\n data,\n });\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to update tag'), { error });\n throw new Error(t('systemtags', 'Failed to update tag'));\n }\n};\nexport const deleteTag = async (tag) => {\n const path = '/systemtags/' + tag.id;\n try {\n await davClient.deleteFile(path);\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to delete tag'), { error });\n throw new Error(t('systemtags', 'Failed to delete tag'));\n }\n};\n","module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports);\n global.CancelablePromise = mod.exports;\n }\n})(typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : this, function (_exports) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.CancelablePromise = void 0;\n _exports.cancelable = cancelable;\n _exports.default = void 0;\n _exports.isCancelablePromise = isCancelablePromise;\n\n function _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\n function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\n function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\n function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\n function _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\n function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\n function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\n function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\n function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\n function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\n function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\n function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\n function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\n function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\n var toStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : '@@toStringTag';\n\n var _internals = /*#__PURE__*/new WeakMap();\n\n var _promise = /*#__PURE__*/new WeakMap();\n\n var CancelablePromiseInternal = /*#__PURE__*/function () {\n function CancelablePromiseInternal(_ref) {\n var _ref$executor = _ref.executor,\n executor = _ref$executor === void 0 ? function () {} : _ref$executor,\n _ref$internals = _ref.internals,\n internals = _ref$internals === void 0 ? defaultInternals() : _ref$internals,\n _ref$promise = _ref.promise,\n promise = _ref$promise === void 0 ? new Promise(function (resolve, reject) {\n return executor(resolve, reject, function (onCancel) {\n internals.onCancelList.push(onCancel);\n });\n }) : _ref$promise;\n\n _classCallCheck(this, CancelablePromiseInternal);\n\n _classPrivateFieldInitSpec(this, _internals, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldInitSpec(this, _promise, {\n writable: true,\n value: void 0\n });\n\n _defineProperty(this, toStringTag, 'CancelablePromise');\n\n this.cancel = this.cancel.bind(this);\n\n _classPrivateFieldSet(this, _internals, internals);\n\n _classPrivateFieldSet(this, _promise, promise || new Promise(function (resolve, reject) {\n return executor(resolve, reject, function (onCancel) {\n internals.onCancelList.push(onCancel);\n });\n }));\n }\n\n _createClass(CancelablePromiseInternal, [{\n key: \"then\",\n value: function then(onfulfilled, onrejected) {\n return makeCancelable(_classPrivateFieldGet(this, _promise).then(createCallback(onfulfilled, _classPrivateFieldGet(this, _internals)), createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n }, {\n key: \"catch\",\n value: function _catch(onrejected) {\n return makeCancelable(_classPrivateFieldGet(this, _promise).catch(createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n }, {\n key: \"finally\",\n value: function _finally(onfinally, runWhenCanceled) {\n var _this = this;\n\n if (runWhenCanceled) {\n _classPrivateFieldGet(this, _internals).onCancelList.push(onfinally);\n }\n\n return makeCancelable(_classPrivateFieldGet(this, _promise).finally(createCallback(function () {\n if (onfinally) {\n if (runWhenCanceled) {\n _classPrivateFieldGet(_this, _internals).onCancelList = _classPrivateFieldGet(_this, _internals).onCancelList.filter(function (callback) {\n return callback !== onfinally;\n });\n }\n\n return onfinally();\n }\n }, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n _classPrivateFieldGet(this, _internals).isCanceled = true;\n\n var callbacks = _classPrivateFieldGet(this, _internals).onCancelList;\n\n _classPrivateFieldGet(this, _internals).onCancelList = [];\n\n var _iterator = _createForOfIteratorHelper(callbacks),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var callback = _step.value;\n\n if (typeof callback === 'function') {\n try {\n callback();\n } catch (err) {\n console.error(err);\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"isCanceled\",\n value: function isCanceled() {\n return _classPrivateFieldGet(this, _internals).isCanceled === true;\n }\n }]);\n\n return CancelablePromiseInternal;\n }();\n\n var CancelablePromise = /*#__PURE__*/function (_CancelablePromiseInt) {\n _inherits(CancelablePromise, _CancelablePromiseInt);\n\n var _super = _createSuper(CancelablePromise);\n\n function CancelablePromise(executor) {\n _classCallCheck(this, CancelablePromise);\n\n return _super.call(this, {\n executor: executor\n });\n }\n\n return _createClass(CancelablePromise);\n }(CancelablePromiseInternal);\n\n _exports.CancelablePromise = CancelablePromise;\n\n _defineProperty(CancelablePromise, \"all\", function all(iterable) {\n return makeAllCancelable(iterable, Promise.all(iterable));\n });\n\n _defineProperty(CancelablePromise, \"allSettled\", function allSettled(iterable) {\n return makeAllCancelable(iterable, Promise.allSettled(iterable));\n });\n\n _defineProperty(CancelablePromise, \"any\", function any(iterable) {\n return makeAllCancelable(iterable, Promise.any(iterable));\n });\n\n _defineProperty(CancelablePromise, \"race\", function race(iterable) {\n return makeAllCancelable(iterable, Promise.race(iterable));\n });\n\n _defineProperty(CancelablePromise, \"resolve\", function resolve(value) {\n return cancelable(Promise.resolve(value));\n });\n\n _defineProperty(CancelablePromise, \"reject\", function reject(reason) {\n return cancelable(Promise.reject(reason));\n });\n\n _defineProperty(CancelablePromise, \"isCancelable\", isCancelablePromise);\n\n var _default = CancelablePromise;\n _exports.default = _default;\n\n function cancelable(promise) {\n return makeCancelable(promise, defaultInternals());\n }\n\n function isCancelablePromise(promise) {\n return promise instanceof CancelablePromise || promise instanceof CancelablePromiseInternal;\n }\n\n function createCallback(onResult, internals) {\n if (onResult) {\n return function (arg) {\n if (!internals.isCanceled) {\n var result = onResult(arg);\n\n if (isCancelablePromise(result)) {\n internals.onCancelList.push(result.cancel);\n }\n\n return result;\n }\n\n return arg;\n };\n }\n }\n\n function makeCancelable(promise, internals) {\n return new CancelablePromiseInternal({\n internals: internals,\n promise: promise\n });\n }\n\n function makeAllCancelable(iterable, promise) {\n var internals = defaultInternals();\n internals.onCancelList.push(function () {\n var _iterator2 = _createForOfIteratorHelper(iterable),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var resolvable = _step2.value;\n\n if (isCancelablePromise(resolvable)) {\n resolvable.cancel();\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n });\n return new CancelablePromiseInternal({\n internals: internals,\n promise: promise\n });\n }\n\n function defaultInternals() {\n return {\n isCanceled: false,\n onCancelList: []\n };\n }\n});\n//# sourceMappingURL=CancelablePromise.js.map","// 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, `.files-list__system-tags{--min-size: 32px;display:none;justify-content:center;align-items:center;min-width:calc(var(--min-size)*2);max-width:300px}.files-list__system-tag{padding:5px 10px;border:1px solid;border-radius:var(--border-radius-pill);border-color:var(--color-border);color:var(--color-text-maxcontrast);height:var(--min-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:22px;text-align:center}.files-list__system-tag--more{overflow:visible;text-overflow:initial}.files-list__system-tag+.files-list__system-tag{margin-left:5px}@media(min-width: 512px){.files-list__system-tags{display:flex}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/systemtags/src/css/fileEntryInlineSystemTags.scss\"],\"names\":[],\"mappings\":\"AAsBA,yBACC,gBAAA,CACA,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,iCAAA,CACA,eAAA,CAGD,wBACC,gBAAA,CACA,gBAAA,CACA,uCAAA,CACA,gCAAA,CACA,mCAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,gBAAA,CACA,iBAAA,CAEA,8BACC,gBAAA,CACA,qBAAA,CAID,gDACC,eAAA,CAIF,yBACC,yBACC,YAAA,CAAA\",\"sourcesContent\":[\"/**\\n * @copyright Copyright (c) 2023 Lucas Azevedo <lhs_azevedo@hotmail.com>\\n *\\n * @author Lucas Azevedo <lhs_azevedo@hotmail.com>\\n *\\n * @license AGPL-3.0-or-later\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n.files-list__system-tags {\\n\\t--min-size: 32px;\\n\\tdisplay: none;\\n\\tjustify-content: center;\\n\\talign-items: center;\\n\\tmin-width: calc(var(--min-size) * 2);\\n\\tmax-width: 300px;\\n}\\n\\n.files-list__system-tag {\\n\\tpadding: 5px 10px;\\n\\tborder: 1px solid;\\n\\tborder-radius: var(--border-radius-pill);\\n\\tborder-color: var(--color-border);\\n\\tcolor: var(--color-text-maxcontrast);\\n\\theight: var(--min-size);\\n\\twhite-space: nowrap;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\tline-height: 22px; // min-size - 2 * 5px padding\\n\\ttext-align: center;\\n\\n\\t&--more {\\n\\t\\toverflow: visible;\\n\\t\\ttext-overflow: initial;\\n\\t}\\n\\n\\t// Proper spacing if multiple shown\\n\\t& + .files-list__system-tag {\\n\\t\\tmargin-left: 5px;\\n\\t}\\n}\\n\\n@media (min-width: 512px) {\\n\\t.files-list__system-tags {\\n\\t\\tdisplay: flex;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n params = validateParams(params)\n return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n params = validateParams(params)\n return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n if (typeof params === 'string') {\n params = url.parse(params)\n }\n if (!params.protocol) {\n params.protocol = 'https:'\n }\n if (params.protocol !== 'https:') {\n throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n }\n return params\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || checkTypeSupport('arraybuffer')\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && checkTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + Buffer.from(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\tself._socketTimeout = null\n\tself._socketTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tif ('timeout' in opts && opts.timeout !== 0) {\n\t\tself.setTimeout(opts.timeout)\n\t}\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n body = new Blob(self._body, {\n type: (headersObj['content-type'] || {}).value || ''\n });\n }\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._resetTimers(false)\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tself._resetTimers(true)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself._resetTimers(true)\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tself._resetTimers(false)\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress(self._resetTimers.bind(self))\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._resetTimers.bind(self))\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype._resetTimers = function (done) {\n\tvar self = this\n\n\tglobal.clearTimeout(self._socketTimer)\n\tself._socketTimer = null\n\n\tif (done) {\n\t\tglobal.clearTimeout(self._fetchTimer)\n\t\tself._fetchTimer = null\n\t} else if (self._socketTimeout) {\n\t\tself._socketTimer = global.setTimeout(function () {\n\t\t\tself.emit('timeout')\n\t\t}, self._socketTimeout)\n\t}\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function (err) {\n\tvar self = this\n\tself._destroyed = true\n\tself._resetTimers(true)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n\n\tif (err)\n\t\tself.emit('error', err)\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.setTimeout = function (timeout, cb) {\n\tvar self = this\n\n\tif (cb)\n\t\tself.once('timeout', cb)\n\n\tself._socketTimeout = timeout\n\tself._resetTimers(false)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, resetTimers) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\tresetTimers(false)\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(Buffer.from(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tresetTimers(result.done)\n\t\t\t\tif (result.done) {\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(Buffer.from(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tresetTimers(true)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function (resetTimers) {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text':\n\t\t\tresponse = xhr.responseText\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = Buffer.alloc(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tresetTimers(true)\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tresetTimers(true)\n\t\tself.push(null)\n\t}\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__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 = 5191;","__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\t5191: 0\n};\n\n// no chunk on demand loading\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, [7874], () => (__webpack_require__(11057)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","m","e","setApp","build","setUid","uid","Z","DEFAULT","HIDDEN","N","NONE","CREATE","READ","UPDATE","DELETE","SHARE","ALL","j","Y","d","nc","oc","ocs","R","Folder","File","J","t","match","X","id","Error","source","URL","startsWith","mtime","Date","crtime","mime","size","permissions","owner","attributes","root","includes","r","status","Object","values","Q","NEW","FAILED","LOADING","LOCKED","D","_data","_attributes","_knownDavService","constructor","this","s","set","n","i","updateMtime","Reflect","deleteProperty","Proxy","replace","encodedSource","origin","slice","length","basename","extension","dirname","isDavRessource","split","pop","indexOf","pathname","path","fileid","move","rename","ye","type","_e","super","Ie","_column","Ae","title","render","sort","summary","S","O","RegExp","isExist","u","isEmptyObject","keys","merge","o","a","l","f","c","getValue","isName","exec","getAllMatches","startIndex","lastIndex","g","push","nameRegexp","M","Oe","allowBooleanAttributes","unpairedTags","U","G","substr","p","w","z","validate","assign","err","trim","substring","Re","xe","value","index","H","code","msg","line","tagClosed","tagName","tagStartPos","col","Ve","JSON","stringify","map","Ce","Pe","$e","v","Le","hasOwnProperty","Fe","k","re","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","alwaysCreateTextNode","isArray","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","buildOptions","defaultOptions","Be","Xe","Ue","Ge","ze","He","Ke","We","je","Ye","Number","parseInt","window","parseFloat","Je","decimalPoint","B","T","tagname","child","add","addChild","tt","entityName","val","regx","entities","rt","skipLike","test","De","search","it","lastEntities","regex","st","options","replaceEntitiesValue","$","ot","charAt","ut","dt","resolveNameSpace","at","y","saveTextToParentTag","lastIndexOf","tagsNodeStack","x","tagExp","attrExpPresent","buildAttributesMap","closeIndex","docTypeEntities","parseTextData","rawTagName","isItStopNode","h","E","readStopNodeData","tagContent","_","lt","ft","ampEntity","ct","ht","data","pt","gt","ne","ie","Nt","bt","Et","Array","prettify","yt","_t","currentNode","apos","quot","space","cent","pound","yen","euro","copyright","reg","inr","addExternalEntities","parseXml","vt","Tt","se","Pt","xt","oe","K","indentBy","suppressUnpairedNode","suppressEmptyNode","endsWith","suppressBooleanAttributes","Ft","format","Vt","oneListGroup","b","isAttribute","attrPrefixLen","St","processTextOrObjNode","Lt","indentate","Rt","tagEndChar","newLine","j2x","buildTextValNode","attrStr","buildObjectNode","repeat","prototype","arrayNodeName","call","buildAttrPairStr","closeTag","W","XMLParser","externalEntities","parse","toString","addEntity","XMLValidator","XMLBuilder","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","getNodeSystemTags","node","tags","undefined","flat","renderTag","tag","isMore","arguments","tagElement","document","createElement","classList","textContent","action","_action","validateAction","displayName","iconSvgInline","enabled","execBatch","order","parent","default","inline","renderInline","nodes","async","systemTagsElement","setAttribute","firstTags","join","lastTag","append","moreTagElement","_nc_dav_properties","_nc_dav_namespaces","find","error","prop","namespaces","registerDavProperty","_nc_fileactions","debug","registerFileAction","rootUrl","generateRemoteUrl","davClient","createClient","headers","requesttoken","getRequestToken","logger","getLoggerBuilder","detectUser","WorkerGlobalScope","self","globalThis","fetch","bind","Headers","Request","Response","HOT_PATCHER_TYPE","NOOP","createNewItem","method","original","methods","final","HotPatcher","_configuration","registry","getEmptyAction","__type__","configuration","newAction","control","target","allowTargetOverrides","forEach","foreignKey","execute","key","args","get","item","result","_this","shift","apply","sequence","isPatched","patch","opts","chain","patchInline","plugin","restore","setFinal","__patcher","NONCE_CHARS","generateDigestAuthHeader","digest","url","uri","toUpperCase","qop","ncString","ha1","algorithm","user","realm","pass","nonce","cnonce","ha1Hash","md5","toLowerCase","ha1Compute","username","password","ha2","digestResponse","authValues","response","opaque","authHeader","obj","getPrototypeOf","proto","isPlainObject","setPrototypeOf","output","items","nextItem","mergeObjects","obj1","obj2","headerPayloads","headerKeys","reduce","header","lowerHeader","hasArrayBuffer","ArrayBuffer","objToString","_request","requestOptions","patcher","body","newHeaders","isBuffer","isArrayBuffer","requestDataToFetchBody","signal","withCredentials","credentials","httpAgent","httpsAgent","agent","parsedURL","protocol","getFetchOptions","rootPath","getCurrentUser","defaultRootUrl","getClient","client","getPatcher","_digest","hasDigestAuth","Authorization","Math","floor","random","makeNonce","parseDigestAuth","response2","request","resultToNode","props","davParsePermissions","filename","charCodeAt","nodeData","lastmod","hasPreview","failed","formatReportPayload","tagId","tagToNode","Permission","_nc_navigation","_views","_currentView","register","remove","findIndex","splice","views","setActive","active","_view","name","columns","caption","getContents","icon","TypeError","Xt","emptyView","sticky","expanded","defaultSortKey","Ut","emptyTitle","emptyCaption","params","tagsCache","getDirectoryContents","details","glob","_ref","fromEntries","entries","_ref2","camelCase","String","parseTags","fetchTags","filter","userVisible","folder","contents","module","exports","_typeof","Symbol","iterator","_exports","_setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Boolean","valueOf","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_createForOfIteratorHelper","allowArrayLike","minLen","_arrayLikeToArray","from","_unsupportedIterableToArray","F","done","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","_defineProperty","_classPrivateFieldInitSpec","privateMap","privateCollection","has","_checkPrivateRedeclaration","_classPrivateFieldGet","receiver","_classApplyDescriptorGet","_classExtractFieldDescriptor","_classPrivateFieldSet","_classApplyDescriptorSet","CancelablePromise","cancelable","isCancelablePromise","toStringTag","_internals","WeakMap","_promise","CancelablePromiseInternal","_ref$executor","executor","_ref$internals","internals","isCanceled","onCancelList","_ref$promise","promise","Promise","resolve","reject","onCancel","cancel","onfulfilled","onrejected","makeCancelable","then","createCallback","catch","onfinally","runWhenCanceled","finally","callback","callbacks","_step","_iterator","console","_CancelablePromiseInt","subClass","superClass","create","_inherits","_super","iterable","makeAllCancelable","all","allSettled","any","race","reason","_default","onResult","arg","_step2","_iterator2","resolvable","___CSS_LOADER_EXPORT___","http","https","validateParams","cb","Stream","Readable","Writable","Duplex","Transform","PassThrough","finished","pipeline","ClientRequest","extend","statusCodes","defaultProtocol","location","host","hostname","port","req","on","end","IncomingMessage","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","xhr","getXHR","XMLHttpRequest","open","XDomainRequest","checkTypeSupport","responseType","isFunction","ReadableStream","writableStream","WritableStream","abortController","AbortController","arraybuffer","msstream","mozchunkedarraybuffer","overrideMimeType","capability","inherits","stream","rStates","readyStates","preferBinary","_opts","_body","_headers","auth","setHeader","Buffer","useFetch","mode","_mode","decideMode","_fetchTimer","_socketTimeout","_socketTimer","_onFinish","lowerName","unsafeHeaders","getHeader","removeHeader","_destroyed","timeout","setTimeout","headersObj","Blob","headersList","keyName","controller","_fetchAbortController","requestTimeout","emit","abort","_fetchResponse","_resetTimers","_connect","_xhr","process","nextTick","ontimeout","setRequestHeader","_response","onreadystatechange","readyState","DONE","_onXHRProgress","onprogress","onerror","send","statusValid","_write","chunk","encoding","clearTimeout","destroy","once","flushHeaders","setNoDelay","setSocketKeepAlive","UNSENT","OPENED","HEADERS_RECEIVED","resetTimers","rawHeaders","trailers","rawTrailers","statusCode","statusMessage","statusText","write","_resumeFetch","close","pipeTo","reader","getReader","read","_pos","responseURL","getAllResponseHeaders","matches","_charset","mimeType","charsetMatch","_read","responseText","newData","buffer","alloc","Uint8Array","MSStreamReader","byteLength","onload","readAsArrayBuffer","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","getter","__esModule","definition","Function","nmd","paths","children","baseURI","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"systemtags-init.js?v=72766f3404938fd0f72c","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/systemtags/src/services/davClient.ts","webpack:///nextcloud/apps/systemtags/src/utils.ts","webpack:///nextcloud/apps/systemtags/src/logger.ts","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/apps/systemtags/src/files_actions/bulkSystemTagsAction.ts","webpack:///nextcloud/apps/files/src/logger.ts","webpack:///nextcloud/apps/files/src/store/active.ts","webpack:///nextcloud/apps/systemtags/src/services/systemtags.ts","webpack:///nextcloud/apps/systemtags/src/files_views/systemtagsView.ts","webpack://nextcloud/./apps/systemtags/src/css/fileEntryInlineSystemTags.scss?0a01","webpack:///nextcloud/apps/systemtags/src/files_actions/inlineSystemTagsAction.ts","webpack:///nextcloud/apps/systemtags/src/files_actions/openInFilesAction.ts","webpack:///nextcloud/apps/systemtags/src/init.ts","webpack:///nextcloud/apps/systemtags/src/services/HotKeysService.ts","webpack:///nextcloud/apps/files/src/utils/actionUtils.ts","webpack:///nextcloud/apps/files/src/store/index.ts","webpack:///nextcloud/node_modules/color-string/node_modules/color-name/index.js","webpack:///nextcloud/node_modules/color-string/index.js","webpack:///nextcloud/node_modules/color/node_modules/color-name/index.js","webpack:///nextcloud/node_modules/color/node_modules/color-convert/conversions.js","webpack:///nextcloud/node_modules/color/node_modules/color-convert/route.js","webpack:///nextcloud/node_modules/color/node_modules/color-convert/index.js","webpack:///nextcloud/node_modules/color/index.js","webpack:///nextcloud/apps/systemtags/src/utils/colorUtils.ts","webpack:///nextcloud/apps/systemtags/src/css/fileEntryInlineSystemTags.scss","webpack:///nextcloud/apps/systemtags/src/services/api.ts","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createClient } from 'webdav';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth';\n// init webdav client\nconst rootUrl = generateRemoteUrl('dav');\nexport const davClient = createClient(rootUrl);\n// set CSRF token header\nconst setHeaders = (token) => {\n davClient.setHeaders({\n // Add this so the server knows it is an request from the browser\n 'X-Requested-With': 'XMLHttpRequest',\n // Inject user auth\n requesttoken: token ?? '',\n });\n};\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders);\nsetHeaders(getRequestToken());\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport camelCase from 'camelcase';\nimport Vue from 'vue';\nexport const defaultBaseTag = {\n userVisible: true,\n userAssignable: true,\n canAssign: true,\n};\nexport const parseTags = (tags) => {\n return tags.map(({ props }) => Object.fromEntries(Object.entries(props)\n .map(([key, value]) => [camelCase(key), camelCase(key) === 'displayName' ? String(value) : value])));\n};\n/**\n * Parse id from `Content-Location` header\n * @param url URL to parse\n */\nexport const parseIdFromLocation = (url) => {\n const queryPos = url.indexOf('?');\n if (queryPos > 0) {\n url = url.substring(0, queryPos);\n }\n const parts = url.split('/');\n let result;\n do {\n result = parts[parts.length - 1];\n parts.pop();\n // note: first result can be empty when there is a trailing slash,\n // so we take the part before that\n } while (!result && parts.length > 0);\n return Number(result);\n};\nexport const formatTag = (initialTag) => {\n if ('name' in initialTag && !('displayName' in initialTag)) {\n return { ...initialTag };\n }\n const tag = { ...initialTag };\n tag.name = tag.displayName;\n delete tag.displayName;\n return tag;\n};\nexport const getNodeSystemTags = function (node) {\n const attribute = node.attributes?.['system-tags']?.['system-tag'];\n if (attribute === undefined) {\n return [];\n }\n // if there is only one tag it is a single string or prop object\n // if there are multiple then its an array - so we flatten it to be always an array of string or prop objects\n return [attribute]\n .flat()\n .map((tag) => (typeof tag === 'string'\n // its a plain text prop (the tag name) without prop attributes\n ? tag\n // its a prop object with attributes, the tag name is in the 'text' attribute\n : tag.text));\n};\nexport const setNodeSystemTags = function (node, tags) {\n Vue.set(node.attributes, 'system-tags', {\n 'system-tag': tags,\n });\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('systemtags')\n .detectUser()\n .build();\n","import { o as logger } from \"./chunks/dav-CQDyL7M_.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-CQDyL7M_.mjs\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport require$$1 from \"string_decoder\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"path\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\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 hotkey() {\n return this._action.hotkey;\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 if (\"hotkey\" in action && action.hotkey !== void 0) {\n if (typeof action.hotkey !== \"object\") {\n throw new Error(\"Invalid hotkey configuration\");\n }\n if (typeof action.hotkey.key !== \"string\" || !action.hotkey.key) {\n throw new Error(\"Missing or invalid hotkey key\");\n }\n if (typeof action.hotkey.description !== \"string\" || !action.hotkey.description) {\n throw new Error(\"Missing or invalid hotkey description\");\n }\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};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\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.2\";\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.2\";\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 const handlers = this.handlers.get(name) || [];\n handlers.forEach((h2) => {\n try {\n ;\n h2(event[0]);\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}\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};\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};\nvar sax$1 = {};\nvar hasRequiredSax;\nfunction requireSax() {\n if (hasRequiredSax) return sax$1;\n hasRequiredSax = 1;\n (function(exports) {\n (function(sax2) {\n sax2.parser = function(strict, opt) {\n return new SAXParser(strict, opt);\n };\n sax2.SAXParser = SAXParser;\n sax2.SAXStream = SAXStream;\n sax2.createStream = createStream;\n sax2.MAX_BUFFER_LENGTH = 64 * 1024;\n var buffers = [\n \"comment\",\n \"sgmlDecl\",\n \"textNode\",\n \"tagName\",\n \"doctype\",\n \"procInstName\",\n \"procInstBody\",\n \"entity\",\n \"attribName\",\n \"attribValue\",\n \"cdata\",\n \"script\"\n ];\n sax2.EVENTS = [\n \"text\",\n \"processinginstruction\",\n \"sgmldeclaration\",\n \"doctype\",\n \"comment\",\n \"opentagstart\",\n \"attribute\",\n \"opentag\",\n \"closetag\",\n \"opencdata\",\n \"cdata\",\n \"closecdata\",\n \"error\",\n \"end\",\n \"ready\",\n \"script\",\n \"opennamespace\",\n \"closenamespace\"\n ];\n function SAXParser(strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt);\n }\n var parser = this;\n clearBuffers(parser);\n parser.q = parser.c = \"\";\n parser.bufferCheckPosition = sax2.MAX_BUFFER_LENGTH;\n parser.opt = opt || {};\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags;\n parser.looseCase = parser.opt.lowercase ? \"toLowerCase\" : \"toUpperCase\";\n parser.tags = [];\n parser.closed = parser.closedRoot = parser.sawRoot = false;\n parser.tag = parser.error = null;\n parser.strict = !!strict;\n parser.noscript = !!(strict || parser.opt.noscript);\n parser.state = S.BEGIN;\n parser.strictEntities = parser.opt.strictEntities;\n parser.ENTITIES = parser.strictEntities ? Object.create(sax2.XML_ENTITIES) : Object.create(sax2.ENTITIES);\n parser.attribList = [];\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS);\n }\n if (parser.opt.unquotedAttributeValues === void 0) {\n parser.opt.unquotedAttributeValues = !strict;\n }\n parser.trackPosition = parser.opt.position !== false;\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0;\n }\n emit2(parser, \"onready\");\n }\n if (!Object.create) {\n Object.create = function(o) {\n function F2() {\n }\n F2.prototype = o;\n var newf = new F2();\n return newf;\n };\n }\n if (!Object.keys) {\n Object.keys = function(o) {\n var a2 = [];\n for (var i2 in o) if (o.hasOwnProperty(i2)) a2.push(i2);\n return a2;\n };\n }\n function checkBufferLength(parser) {\n var maxAllowed = Math.max(sax2.MAX_BUFFER_LENGTH, 10);\n var maxActual = 0;\n for (var i2 = 0, l2 = buffers.length; i2 < l2; i2++) {\n var len = parser[buffers[i2]].length;\n if (len > maxAllowed) {\n switch (buffers[i2]) {\n case \"textNode\":\n closeText(parser);\n break;\n case \"cdata\":\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n break;\n case \"script\":\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n break;\n default:\n error(parser, \"Max buffer length exceeded: \" + buffers[i2]);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n var m2 = sax2.MAX_BUFFER_LENGTH - maxActual;\n parser.bufferCheckPosition = m2 + parser.position;\n }\n function clearBuffers(parser) {\n for (var i2 = 0, l2 = buffers.length; i2 < l2; i2++) {\n parser[buffers[i2]] = \"\";\n }\n }\n function flushBuffers(parser) {\n closeText(parser);\n if (parser.cdata !== \"\") {\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n }\n if (parser.script !== \"\") {\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n }\n }\n SAXParser.prototype = {\n end: function() {\n end(this);\n },\n write,\n resume: function() {\n this.error = null;\n return this;\n },\n close: function() {\n return this.write(null);\n },\n flush: function() {\n flushBuffers(this);\n }\n };\n var Stream;\n try {\n Stream = require(\"stream\").Stream;\n } catch (ex) {\n Stream = function() {\n };\n }\n if (!Stream) Stream = function() {\n };\n var streamWraps = sax2.EVENTS.filter(function(ev) {\n return ev !== \"error\" && ev !== \"end\";\n });\n function createStream(strict, opt) {\n return new SAXStream(strict, opt);\n }\n function SAXStream(strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt);\n }\n Stream.apply(this);\n this._parser = new SAXParser(strict, opt);\n this.writable = true;\n this.readable = true;\n var me = this;\n this._parser.onend = function() {\n me.emit(\"end\");\n };\n this._parser.onerror = function(er) {\n me.emit(\"error\", er);\n me._parser.error = null;\n };\n this._decoder = null;\n streamWraps.forEach(function(ev) {\n Object.defineProperty(me, \"on\" + ev, {\n get: function() {\n return me._parser[\"on\" + ev];\n },\n set: function(h2) {\n if (!h2) {\n me.removeAllListeners(ev);\n me._parser[\"on\" + ev] = h2;\n return h2;\n }\n me.on(ev, h2);\n },\n enumerable: true,\n configurable: false\n });\n });\n }\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n });\n SAXStream.prototype.write = function(data) {\n if (typeof Buffer === \"function\" && typeof Buffer.isBuffer === \"function\" && Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require$$1.StringDecoder;\n this._decoder = new SD(\"utf8\");\n }\n data = this._decoder.write(data);\n }\n this._parser.write(data.toString());\n this.emit(\"data\", data);\n return true;\n };\n SAXStream.prototype.end = function(chunk) {\n if (chunk && chunk.length) {\n this.write(chunk);\n }\n this._parser.end();\n return true;\n };\n SAXStream.prototype.on = function(ev, handler) {\n var me = this;\n if (!me._parser[\"on\" + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser[\"on\" + ev] = function() {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments);\n args.splice(0, 0, ev);\n me.emit.apply(me, args);\n };\n }\n return Stream.prototype.on.call(me, ev, handler);\n };\n var CDATA = \"[CDATA[\";\n var DOCTYPE = \"DOCTYPE\";\n var XML_NAMESPACE = \"http://www.w3.org/XML/1998/namespace\";\n var XMLNS_NAMESPACE = \"http://www.w3.org/2000/xmlns/\";\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE };\n var nameStart = /[:_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 var nameBody = /[:_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\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n var entityStart = /[#:_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 var entityBody = /[#:_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\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n function isWhitespace(c2) {\n return c2 === \" \" || c2 === \"\\n\" || c2 === \"\\r\" || c2 === \"\t\";\n }\n function isQuote(c2) {\n return c2 === '\"' || c2 === \"'\";\n }\n function isAttribEnd(c2) {\n return c2 === \">\" || isWhitespace(c2);\n }\n function isMatch(regex, c2) {\n return regex.test(c2);\n }\n function notMatch(regex, c2) {\n return !isMatch(regex, c2);\n }\n var S = 0;\n sax2.STATE = {\n BEGIN: S++,\n // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++,\n // leading whitespace\n TEXT: S++,\n // general stuff\n TEXT_ENTITY: S++,\n // & and such.\n OPEN_WAKA: S++,\n // <\n SGML_DECL: S++,\n // <!BLARG\n SGML_DECL_QUOTED: S++,\n // <!BLARG foo \"bar\n DOCTYPE: S++,\n // <!DOCTYPE\n DOCTYPE_QUOTED: S++,\n // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++,\n // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++,\n // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++,\n // <!-\n COMMENT: S++,\n // <!--\n COMMENT_ENDING: S++,\n // <!-- blah -\n COMMENT_ENDED: S++,\n // <!-- blah --\n CDATA: S++,\n // <![CDATA[ something\n CDATA_ENDING: S++,\n // ]\n CDATA_ENDING_2: S++,\n // ]]\n PROC_INST: S++,\n // <?hi\n PROC_INST_BODY: S++,\n // <?hi there\n PROC_INST_ENDING: S++,\n // <?hi \"there\" ?\n OPEN_TAG: S++,\n // <strong\n OPEN_TAG_SLASH: S++,\n // <strong /\n ATTRIB: S++,\n // <a\n ATTRIB_NAME: S++,\n // <a foo\n ATTRIB_NAME_SAW_WHITE: S++,\n // <a foo _\n ATTRIB_VALUE: S++,\n // <a foo=\n ATTRIB_VALUE_QUOTED: S++,\n // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++,\n // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++,\n // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++,\n // <foo bar=\""\"\n ATTRIB_VALUE_ENTITY_U: S++,\n // <foo bar="\n CLOSE_TAG: S++,\n // </a\n CLOSE_TAG_SAW_WHITE: S++,\n // </a >\n SCRIPT: S++,\n // <script> ...\n SCRIPT_ENDING: S++\n // <script> ... <\n };\n sax2.XML_ENTITIES = {\n \"amp\": \"&\",\n \"gt\": \">\",\n \"lt\": \"<\",\n \"quot\": '\"',\n \"apos\": \"'\"\n };\n sax2.ENTITIES = {\n \"amp\": \"&\",\n \"gt\": \">\",\n \"lt\": \"<\",\n \"quot\": '\"',\n \"apos\": \"'\",\n \"AElig\": 198,\n \"Aacute\": 193,\n \"Acirc\": 194,\n \"Agrave\": 192,\n \"Aring\": 197,\n \"Atilde\": 195,\n \"Auml\": 196,\n \"Ccedil\": 199,\n \"ETH\": 208,\n \"Eacute\": 201,\n \"Ecirc\": 202,\n \"Egrave\": 200,\n \"Euml\": 203,\n \"Iacute\": 205,\n \"Icirc\": 206,\n \"Igrave\": 204,\n \"Iuml\": 207,\n \"Ntilde\": 209,\n \"Oacute\": 211,\n \"Ocirc\": 212,\n \"Ograve\": 210,\n \"Oslash\": 216,\n \"Otilde\": 213,\n \"Ouml\": 214,\n \"THORN\": 222,\n \"Uacute\": 218,\n \"Ucirc\": 219,\n \"Ugrave\": 217,\n \"Uuml\": 220,\n \"Yacute\": 221,\n \"aacute\": 225,\n \"acirc\": 226,\n \"aelig\": 230,\n \"agrave\": 224,\n \"aring\": 229,\n \"atilde\": 227,\n \"auml\": 228,\n \"ccedil\": 231,\n \"eacute\": 233,\n \"ecirc\": 234,\n \"egrave\": 232,\n \"eth\": 240,\n \"euml\": 235,\n \"iacute\": 237,\n \"icirc\": 238,\n \"igrave\": 236,\n \"iuml\": 239,\n \"ntilde\": 241,\n \"oacute\": 243,\n \"ocirc\": 244,\n \"ograve\": 242,\n \"oslash\": 248,\n \"otilde\": 245,\n \"ouml\": 246,\n \"szlig\": 223,\n \"thorn\": 254,\n \"uacute\": 250,\n \"ucirc\": 251,\n \"ugrave\": 249,\n \"uuml\": 252,\n \"yacute\": 253,\n \"yuml\": 255,\n \"copy\": 169,\n \"reg\": 174,\n \"nbsp\": 160,\n \"iexcl\": 161,\n \"cent\": 162,\n \"pound\": 163,\n \"curren\": 164,\n \"yen\": 165,\n \"brvbar\": 166,\n \"sect\": 167,\n \"uml\": 168,\n \"ordf\": 170,\n \"laquo\": 171,\n \"not\": 172,\n \"shy\": 173,\n \"macr\": 175,\n \"deg\": 176,\n \"plusmn\": 177,\n \"sup1\": 185,\n \"sup2\": 178,\n \"sup3\": 179,\n \"acute\": 180,\n \"micro\": 181,\n \"para\": 182,\n \"middot\": 183,\n \"cedil\": 184,\n \"ordm\": 186,\n \"raquo\": 187,\n \"frac14\": 188,\n \"frac12\": 189,\n \"frac34\": 190,\n \"iquest\": 191,\n \"times\": 215,\n \"divide\": 247,\n \"OElig\": 338,\n \"oelig\": 339,\n \"Scaron\": 352,\n \"scaron\": 353,\n \"Yuml\": 376,\n \"fnof\": 402,\n \"circ\": 710,\n \"tilde\": 732,\n \"Alpha\": 913,\n \"Beta\": 914,\n \"Gamma\": 915,\n \"Delta\": 916,\n \"Epsilon\": 917,\n \"Zeta\": 918,\n \"Eta\": 919,\n \"Theta\": 920,\n \"Iota\": 921,\n \"Kappa\": 922,\n \"Lambda\": 923,\n \"Mu\": 924,\n \"Nu\": 925,\n \"Xi\": 926,\n \"Omicron\": 927,\n \"Pi\": 928,\n \"Rho\": 929,\n \"Sigma\": 931,\n \"Tau\": 932,\n \"Upsilon\": 933,\n \"Phi\": 934,\n \"Chi\": 935,\n \"Psi\": 936,\n \"Omega\": 937,\n \"alpha\": 945,\n \"beta\": 946,\n \"gamma\": 947,\n \"delta\": 948,\n \"epsilon\": 949,\n \"zeta\": 950,\n \"eta\": 951,\n \"theta\": 952,\n \"iota\": 953,\n \"kappa\": 954,\n \"lambda\": 955,\n \"mu\": 956,\n \"nu\": 957,\n \"xi\": 958,\n \"omicron\": 959,\n \"pi\": 960,\n \"rho\": 961,\n \"sigmaf\": 962,\n \"sigma\": 963,\n \"tau\": 964,\n \"upsilon\": 965,\n \"phi\": 966,\n \"chi\": 967,\n \"psi\": 968,\n \"omega\": 969,\n \"thetasym\": 977,\n \"upsih\": 978,\n \"piv\": 982,\n \"ensp\": 8194,\n \"emsp\": 8195,\n \"thinsp\": 8201,\n \"zwnj\": 8204,\n \"zwj\": 8205,\n \"lrm\": 8206,\n \"rlm\": 8207,\n \"ndash\": 8211,\n \"mdash\": 8212,\n \"lsquo\": 8216,\n \"rsquo\": 8217,\n \"sbquo\": 8218,\n \"ldquo\": 8220,\n \"rdquo\": 8221,\n \"bdquo\": 8222,\n \"dagger\": 8224,\n \"Dagger\": 8225,\n \"bull\": 8226,\n \"hellip\": 8230,\n \"permil\": 8240,\n \"prime\": 8242,\n \"Prime\": 8243,\n \"lsaquo\": 8249,\n \"rsaquo\": 8250,\n \"oline\": 8254,\n \"frasl\": 8260,\n \"euro\": 8364,\n \"image\": 8465,\n \"weierp\": 8472,\n \"real\": 8476,\n \"trade\": 8482,\n \"alefsym\": 8501,\n \"larr\": 8592,\n \"uarr\": 8593,\n \"rarr\": 8594,\n \"darr\": 8595,\n \"harr\": 8596,\n \"crarr\": 8629,\n \"lArr\": 8656,\n \"uArr\": 8657,\n \"rArr\": 8658,\n \"dArr\": 8659,\n \"hArr\": 8660,\n \"forall\": 8704,\n \"part\": 8706,\n \"exist\": 8707,\n \"empty\": 8709,\n \"nabla\": 8711,\n \"isin\": 8712,\n \"notin\": 8713,\n \"ni\": 8715,\n \"prod\": 8719,\n \"sum\": 8721,\n \"minus\": 8722,\n \"lowast\": 8727,\n \"radic\": 8730,\n \"prop\": 8733,\n \"infin\": 8734,\n \"ang\": 8736,\n \"and\": 8743,\n \"or\": 8744,\n \"cap\": 8745,\n \"cup\": 8746,\n \"int\": 8747,\n \"there4\": 8756,\n \"sim\": 8764,\n \"cong\": 8773,\n \"asymp\": 8776,\n \"ne\": 8800,\n \"equiv\": 8801,\n \"le\": 8804,\n \"ge\": 8805,\n \"sub\": 8834,\n \"sup\": 8835,\n \"nsub\": 8836,\n \"sube\": 8838,\n \"supe\": 8839,\n \"oplus\": 8853,\n \"otimes\": 8855,\n \"perp\": 8869,\n \"sdot\": 8901,\n \"lceil\": 8968,\n \"rceil\": 8969,\n \"lfloor\": 8970,\n \"rfloor\": 8971,\n \"lang\": 9001,\n \"rang\": 9002,\n \"loz\": 9674,\n \"spades\": 9824,\n \"clubs\": 9827,\n \"hearts\": 9829,\n \"diams\": 9830\n };\n Object.keys(sax2.ENTITIES).forEach(function(key) {\n var e2 = sax2.ENTITIES[key];\n var s3 = typeof e2 === \"number\" ? String.fromCharCode(e2) : e2;\n sax2.ENTITIES[key] = s3;\n });\n for (var s2 in sax2.STATE) {\n sax2.STATE[sax2.STATE[s2]] = s2;\n }\n S = sax2.STATE;\n function emit2(parser, event, data) {\n parser[event] && parser[event](data);\n }\n function emitNode(parser, nodeType, data) {\n if (parser.textNode) closeText(parser);\n emit2(parser, nodeType, data);\n }\n function closeText(parser) {\n parser.textNode = textopts(parser.opt, parser.textNode);\n if (parser.textNode) emit2(parser, \"ontext\", parser.textNode);\n parser.textNode = \"\";\n }\n function textopts(opt, text) {\n if (opt.trim) text = text.trim();\n if (opt.normalize) text = text.replace(/\\s+/g, \" \");\n return text;\n }\n function error(parser, er) {\n closeText(parser);\n if (parser.trackPosition) {\n er += \"\\nLine: \" + parser.line + \"\\nColumn: \" + parser.column + \"\\nChar: \" + parser.c;\n }\n er = new Error(er);\n parser.error = er;\n emit2(parser, \"onerror\", er);\n return parser;\n }\n function end(parser) {\n if (parser.sawRoot && !parser.closedRoot) strictFail(parser, \"Unclosed root tag\");\n if (parser.state !== S.BEGIN && parser.state !== S.BEGIN_WHITESPACE && parser.state !== S.TEXT) {\n error(parser, \"Unexpected end\");\n }\n closeText(parser);\n parser.c = \"\";\n parser.closed = true;\n emit2(parser, \"onend\");\n SAXParser.call(parser, parser.strict, parser.opt);\n return parser;\n }\n function strictFail(parser, message) {\n if (typeof parser !== \"object\" || !(parser instanceof SAXParser)) {\n throw new Error(\"bad call to strictFail\");\n }\n if (parser.strict) {\n error(parser, message);\n }\n }\n function newTag(parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]();\n var parent = parser.tags[parser.tags.length - 1] || parser;\n var tag = parser.tag = { name: parser.tagName, attributes: {} };\n if (parser.opt.xmlns) {\n tag.ns = parent.ns;\n }\n parser.attribList.length = 0;\n emitNode(parser, \"onopentagstart\", tag);\n }\n function qname(name, attribute) {\n var i2 = name.indexOf(\":\");\n var qualName = i2 < 0 ? [\"\", name] : name.split(\":\");\n var prefix = qualName[0];\n var local = qualName[1];\n if (attribute && name === \"xmlns\") {\n prefix = \"xmlns\";\n local = \"\";\n }\n return { prefix, local };\n }\n function attrib(parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]();\n }\n if (parser.attribList.indexOf(parser.attribName) !== -1 || parser.tag.attributes.hasOwnProperty(parser.attribName)) {\n parser.attribName = parser.attribValue = \"\";\n return;\n }\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true);\n var prefix = qn.prefix;\n var local = qn.local;\n if (prefix === \"xmlns\") {\n if (local === \"xml\" && parser.attribValue !== XML_NAMESPACE) {\n strictFail(\n parser,\n \"xml: prefix must be bound to \" + XML_NAMESPACE + \"\\nActual: \" + parser.attribValue\n );\n } else if (local === \"xmlns\" && parser.attribValue !== XMLNS_NAMESPACE) {\n strictFail(\n parser,\n \"xmlns: prefix must be bound to \" + XMLNS_NAMESPACE + \"\\nActual: \" + parser.attribValue\n );\n } else {\n var tag = parser.tag;\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns);\n }\n tag.ns[local] = parser.attribValue;\n }\n }\n parser.attribList.push([parser.attribName, parser.attribValue]);\n } else {\n parser.tag.attributes[parser.attribName] = parser.attribValue;\n emitNode(parser, \"onattribute\", {\n name: parser.attribName,\n value: parser.attribValue\n });\n }\n parser.attribName = parser.attribValue = \"\";\n }\n function openTag(parser, selfClosing) {\n if (parser.opt.xmlns) {\n var tag = parser.tag;\n var qn = qname(parser.tagName);\n tag.prefix = qn.prefix;\n tag.local = qn.local;\n tag.uri = tag.ns[qn.prefix] || \"\";\n if (tag.prefix && !tag.uri) {\n strictFail(parser, \"Unbound namespace prefix: \" + JSON.stringify(parser.tagName));\n tag.uri = qn.prefix;\n }\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function(p2) {\n emitNode(parser, \"onopennamespace\", {\n prefix: p2,\n uri: tag.ns[p2]\n });\n });\n }\n for (var i2 = 0, l2 = parser.attribList.length; i2 < l2; i2++) {\n var nv = parser.attribList[i2];\n var name = nv[0];\n var value = nv[1];\n var qualName = qname(name, true);\n var prefix = qualName.prefix;\n var local = qualName.local;\n var uri = prefix === \"\" ? \"\" : tag.ns[prefix] || \"\";\n var a2 = {\n name,\n value,\n prefix,\n local,\n uri\n };\n if (prefix && prefix !== \"xmlns\" && !uri) {\n strictFail(parser, \"Unbound namespace prefix: \" + JSON.stringify(prefix));\n a2.uri = prefix;\n }\n parser.tag.attributes[name] = a2;\n emitNode(parser, \"onattribute\", a2);\n }\n parser.attribList.length = 0;\n }\n parser.tag.isSelfClosing = !!selfClosing;\n parser.sawRoot = true;\n parser.tags.push(parser.tag);\n emitNode(parser, \"onopentag\", parser.tag);\n if (!selfClosing) {\n if (!parser.noscript && parser.tagName.toLowerCase() === \"script\") {\n parser.state = S.SCRIPT;\n } else {\n parser.state = S.TEXT;\n }\n parser.tag = null;\n parser.tagName = \"\";\n }\n parser.attribName = parser.attribValue = \"\";\n parser.attribList.length = 0;\n }\n function closeTag(parser) {\n if (!parser.tagName) {\n strictFail(parser, \"Weird empty close tag.\");\n parser.textNode += \"</>\";\n parser.state = S.TEXT;\n return;\n }\n if (parser.script) {\n if (parser.tagName !== \"script\") {\n parser.script += \"</\" + parser.tagName + \">\";\n parser.tagName = \"\";\n parser.state = S.SCRIPT;\n return;\n }\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n }\n var t2 = parser.tags.length;\n var tagName = parser.tagName;\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]();\n }\n var closeTo = tagName;\n while (t2--) {\n var close = parser.tags[t2];\n if (close.name !== closeTo) {\n strictFail(parser, \"Unexpected close tag\");\n } else {\n break;\n }\n }\n if (t2 < 0) {\n strictFail(parser, \"Unmatched closing tag: \" + parser.tagName);\n parser.textNode += \"</\" + parser.tagName + \">\";\n parser.state = S.TEXT;\n return;\n }\n parser.tagName = tagName;\n var s3 = parser.tags.length;\n while (s3-- > t2) {\n var tag = parser.tag = parser.tags.pop();\n parser.tagName = parser.tag.name;\n emitNode(parser, \"onclosetag\", parser.tagName);\n var x = {};\n for (var i2 in tag.ns) {\n x[i2] = tag.ns[i2];\n }\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n Object.keys(tag.ns).forEach(function(p2) {\n var n2 = tag.ns[p2];\n emitNode(parser, \"onclosenamespace\", { prefix: p2, uri: n2 });\n });\n }\n }\n if (t2 === 0) parser.closedRoot = true;\n parser.tagName = parser.attribValue = parser.attribName = \"\";\n parser.attribList.length = 0;\n parser.state = S.TEXT;\n }\n function parseEntity(parser) {\n var entity = parser.entity;\n var entityLC = entity.toLowerCase();\n var num;\n var numStr = \"\";\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity];\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC];\n }\n entity = entityLC;\n if (entity.charAt(0) === \"#\") {\n if (entity.charAt(1) === \"x\") {\n entity = entity.slice(2);\n num = parseInt(entity, 16);\n numStr = num.toString(16);\n } else {\n entity = entity.slice(1);\n num = parseInt(entity, 10);\n numStr = num.toString(10);\n }\n }\n entity = entity.replace(/^0+/, \"\");\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, \"Invalid character entity\");\n return \"&\" + parser.entity + \";\";\n }\n return String.fromCodePoint(num);\n }\n function beginWhiteSpace(parser, c2) {\n if (c2 === \"<\") {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else if (!isWhitespace(c2)) {\n strictFail(parser, \"Non-whitespace before first tag.\");\n parser.textNode = c2;\n parser.state = S.TEXT;\n }\n }\n function charAt(chunk, i2) {\n var result = \"\";\n if (i2 < chunk.length) {\n result = chunk.charAt(i2);\n }\n return result;\n }\n function write(chunk) {\n var parser = this;\n if (this.error) {\n throw this.error;\n }\n if (parser.closed) {\n return error(\n parser,\n \"Cannot write after close. Assign an onready handler.\"\n );\n }\n if (chunk === null) {\n return end(parser);\n }\n if (typeof chunk === \"object\") {\n chunk = chunk.toString();\n }\n var i2 = 0;\n var c2 = \"\";\n while (true) {\n c2 = charAt(chunk, i2++);\n parser.c = c2;\n if (!c2) {\n break;\n }\n if (parser.trackPosition) {\n parser.position++;\n if (c2 === \"\\n\") {\n parser.line++;\n parser.column = 0;\n } else {\n parser.column++;\n }\n }\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE;\n if (c2 === \"\\uFEFF\") {\n continue;\n }\n beginWhiteSpace(parser, c2);\n continue;\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c2);\n continue;\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i2 - 1;\n while (c2 && c2 !== \"<\" && c2 !== \"&\") {\n c2 = charAt(chunk, i2++);\n if (c2 && parser.trackPosition) {\n parser.position++;\n if (c2 === \"\\n\") {\n parser.line++;\n parser.column = 0;\n } else {\n parser.column++;\n }\n }\n }\n parser.textNode += chunk.substring(starti, i2 - 1);\n }\n if (c2 === \"<\" && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else {\n if (!isWhitespace(c2) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, \"Text data outside of root node.\");\n }\n if (c2 === \"&\") {\n parser.state = S.TEXT_ENTITY;\n } else {\n parser.textNode += c2;\n }\n }\n continue;\n case S.SCRIPT:\n if (c2 === \"<\") {\n parser.state = S.SCRIPT_ENDING;\n } else {\n parser.script += c2;\n }\n continue;\n case S.SCRIPT_ENDING:\n if (c2 === \"/\") {\n parser.state = S.CLOSE_TAG;\n } else {\n parser.script += \"<\" + c2;\n parser.state = S.SCRIPT;\n }\n continue;\n case S.OPEN_WAKA:\n if (c2 === \"!\") {\n parser.state = S.SGML_DECL;\n parser.sgmlDecl = \"\";\n } else if (isWhitespace(c2)) ;\n else if (isMatch(nameStart, c2)) {\n parser.state = S.OPEN_TAG;\n parser.tagName = c2;\n } else if (c2 === \"/\") {\n parser.state = S.CLOSE_TAG;\n parser.tagName = \"\";\n } else if (c2 === \"?\") {\n parser.state = S.PROC_INST;\n parser.procInstName = parser.procInstBody = \"\";\n } else {\n strictFail(parser, \"Unencoded <\");\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition;\n c2 = new Array(pad).join(\" \") + c2;\n }\n parser.textNode += \"<\" + c2;\n parser.state = S.TEXT;\n }\n continue;\n case S.SGML_DECL:\n if (parser.sgmlDecl + c2 === \"--\") {\n parser.state = S.COMMENT;\n parser.comment = \"\";\n parser.sgmlDecl = \"\";\n continue;\n }\n if (parser.doctype && parser.doctype !== true && parser.sgmlDecl) {\n parser.state = S.DOCTYPE_DTD;\n parser.doctype += \"<!\" + parser.sgmlDecl + c2;\n parser.sgmlDecl = \"\";\n } else if ((parser.sgmlDecl + c2).toUpperCase() === CDATA) {\n emitNode(parser, \"onopencdata\");\n parser.state = S.CDATA;\n parser.sgmlDecl = \"\";\n parser.cdata = \"\";\n } else if ((parser.sgmlDecl + c2).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE;\n if (parser.doctype || parser.sawRoot) {\n strictFail(\n parser,\n \"Inappropriately located doctype declaration\"\n );\n }\n parser.doctype = \"\";\n parser.sgmlDecl = \"\";\n } else if (c2 === \">\") {\n emitNode(parser, \"onsgmldeclaration\", parser.sgmlDecl);\n parser.sgmlDecl = \"\";\n parser.state = S.TEXT;\n } else if (isQuote(c2)) {\n parser.state = S.SGML_DECL_QUOTED;\n parser.sgmlDecl += c2;\n } else {\n parser.sgmlDecl += c2;\n }\n continue;\n case S.SGML_DECL_QUOTED:\n if (c2 === parser.q) {\n parser.state = S.SGML_DECL;\n parser.q = \"\";\n }\n parser.sgmlDecl += c2;\n continue;\n case S.DOCTYPE:\n if (c2 === \">\") {\n parser.state = S.TEXT;\n emitNode(parser, \"ondoctype\", parser.doctype);\n parser.doctype = true;\n } else {\n parser.doctype += c2;\n if (c2 === \"[\") {\n parser.state = S.DOCTYPE_DTD;\n } else if (isQuote(c2)) {\n parser.state = S.DOCTYPE_QUOTED;\n parser.q = c2;\n }\n }\n continue;\n case S.DOCTYPE_QUOTED:\n parser.doctype += c2;\n if (c2 === parser.q) {\n parser.q = \"\";\n parser.state = S.DOCTYPE;\n }\n continue;\n case S.DOCTYPE_DTD:\n if (c2 === \"]\") {\n parser.doctype += c2;\n parser.state = S.DOCTYPE;\n } else if (c2 === \"<\") {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else if (isQuote(c2)) {\n parser.doctype += c2;\n parser.state = S.DOCTYPE_DTD_QUOTED;\n parser.q = c2;\n } else {\n parser.doctype += c2;\n }\n continue;\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c2;\n if (c2 === parser.q) {\n parser.state = S.DOCTYPE_DTD;\n parser.q = \"\";\n }\n continue;\n case S.COMMENT:\n if (c2 === \"-\") {\n parser.state = S.COMMENT_ENDING;\n } else {\n parser.comment += c2;\n }\n continue;\n case S.COMMENT_ENDING:\n if (c2 === \"-\") {\n parser.state = S.COMMENT_ENDED;\n parser.comment = textopts(parser.opt, parser.comment);\n if (parser.comment) {\n emitNode(parser, \"oncomment\", parser.comment);\n }\n parser.comment = \"\";\n } else {\n parser.comment += \"-\" + c2;\n parser.state = S.COMMENT;\n }\n continue;\n case S.COMMENT_ENDED:\n if (c2 !== \">\") {\n strictFail(parser, \"Malformed comment\");\n parser.comment += \"--\" + c2;\n parser.state = S.COMMENT;\n } else if (parser.doctype && parser.doctype !== true) {\n parser.state = S.DOCTYPE_DTD;\n } else {\n parser.state = S.TEXT;\n }\n continue;\n case S.CDATA:\n if (c2 === \"]\") {\n parser.state = S.CDATA_ENDING;\n } else {\n parser.cdata += c2;\n }\n continue;\n case S.CDATA_ENDING:\n if (c2 === \"]\") {\n parser.state = S.CDATA_ENDING_2;\n } else {\n parser.cdata += \"]\" + c2;\n parser.state = S.CDATA;\n }\n continue;\n case S.CDATA_ENDING_2:\n if (c2 === \">\") {\n if (parser.cdata) {\n emitNode(parser, \"oncdata\", parser.cdata);\n }\n emitNode(parser, \"onclosecdata\");\n parser.cdata = \"\";\n parser.state = S.TEXT;\n } else if (c2 === \"]\") {\n parser.cdata += \"]\";\n } else {\n parser.cdata += \"]]\" + c2;\n parser.state = S.CDATA;\n }\n continue;\n case S.PROC_INST:\n if (c2 === \"?\") {\n parser.state = S.PROC_INST_ENDING;\n } else if (isWhitespace(c2)) {\n parser.state = S.PROC_INST_BODY;\n } else {\n parser.procInstName += c2;\n }\n continue;\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c2)) {\n continue;\n } else if (c2 === \"?\") {\n parser.state = S.PROC_INST_ENDING;\n } else {\n parser.procInstBody += c2;\n }\n continue;\n case S.PROC_INST_ENDING:\n if (c2 === \">\") {\n emitNode(parser, \"onprocessinginstruction\", {\n name: parser.procInstName,\n body: parser.procInstBody\n });\n parser.procInstName = parser.procInstBody = \"\";\n parser.state = S.TEXT;\n } else {\n parser.procInstBody += \"?\" + c2;\n parser.state = S.PROC_INST_BODY;\n }\n continue;\n case S.OPEN_TAG:\n if (isMatch(nameBody, c2)) {\n parser.tagName += c2;\n } else {\n newTag(parser);\n if (c2 === \">\") {\n openTag(parser);\n } else if (c2 === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else {\n if (!isWhitespace(c2)) {\n strictFail(parser, \"Invalid character in tag name\");\n }\n parser.state = S.ATTRIB;\n }\n }\n continue;\n case S.OPEN_TAG_SLASH:\n if (c2 === \">\") {\n openTag(parser, true);\n closeTag(parser);\n } else {\n strictFail(parser, \"Forward-slash in opening tag not followed by >\");\n parser.state = S.ATTRIB;\n }\n continue;\n case S.ATTRIB:\n if (isWhitespace(c2)) {\n continue;\n } else if (c2 === \">\") {\n openTag(parser);\n } else if (c2 === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else if (isMatch(nameStart, c2)) {\n parser.attribName = c2;\n parser.attribValue = \"\";\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n case S.ATTRIB_NAME:\n if (c2 === \"=\") {\n parser.state = S.ATTRIB_VALUE;\n } else if (c2 === \">\") {\n strictFail(parser, \"Attribute without value\");\n parser.attribValue = parser.attribName;\n attrib(parser);\n openTag(parser);\n } else if (isWhitespace(c2)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE;\n } else if (isMatch(nameBody, c2)) {\n parser.attribName += c2;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c2 === \"=\") {\n parser.state = S.ATTRIB_VALUE;\n } else if (isWhitespace(c2)) {\n continue;\n } else {\n strictFail(parser, \"Attribute without value\");\n parser.tag.attributes[parser.attribName] = \"\";\n parser.attribValue = \"\";\n emitNode(parser, \"onattribute\", {\n name: parser.attribName,\n value: \"\"\n });\n parser.attribName = \"\";\n if (c2 === \">\") {\n openTag(parser);\n } else if (isMatch(nameStart, c2)) {\n parser.attribName = c2;\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n parser.state = S.ATTRIB;\n }\n }\n continue;\n case S.ATTRIB_VALUE:\n if (isWhitespace(c2)) {\n continue;\n } else if (isQuote(c2)) {\n parser.q = c2;\n parser.state = S.ATTRIB_VALUE_QUOTED;\n } else {\n if (!parser.opt.unquotedAttributeValues) {\n error(parser, \"Unquoted attribute value\");\n }\n parser.state = S.ATTRIB_VALUE_UNQUOTED;\n parser.attribValue = c2;\n }\n continue;\n case S.ATTRIB_VALUE_QUOTED:\n if (c2 !== parser.q) {\n if (c2 === \"&\") {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q;\n } else {\n parser.attribValue += c2;\n }\n continue;\n }\n attrib(parser);\n parser.q = \"\";\n parser.state = S.ATTRIB_VALUE_CLOSED;\n continue;\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c2)) {\n parser.state = S.ATTRIB;\n } else if (c2 === \">\") {\n openTag(parser);\n } else if (c2 === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else if (isMatch(nameStart, c2)) {\n strictFail(parser, \"No whitespace between attributes\");\n parser.attribName = c2;\n parser.attribValue = \"\";\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c2)) {\n if (c2 === \"&\") {\n parser.state = S.ATTRIB_VALUE_ENTITY_U;\n } else {\n parser.attribValue += c2;\n }\n continue;\n }\n attrib(parser);\n if (c2 === \">\") {\n openTag(parser);\n } else {\n parser.state = S.ATTRIB;\n }\n continue;\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c2)) {\n continue;\n } else if (notMatch(nameStart, c2)) {\n if (parser.script) {\n parser.script += \"</\" + c2;\n parser.state = S.SCRIPT;\n } else {\n strictFail(parser, \"Invalid tagname in closing tag.\");\n }\n } else {\n parser.tagName = c2;\n }\n } else if (c2 === \">\") {\n closeTag(parser);\n } else if (isMatch(nameBody, c2)) {\n parser.tagName += c2;\n } else if (parser.script) {\n parser.script += \"</\" + parser.tagName;\n parser.tagName = \"\";\n parser.state = S.SCRIPT;\n } else {\n if (!isWhitespace(c2)) {\n strictFail(parser, \"Invalid tagname in closing tag\");\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE;\n }\n continue;\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c2)) {\n continue;\n }\n if (c2 === \">\") {\n closeTag(parser);\n } else {\n strictFail(parser, \"Invalid characters in closing tag\");\n }\n continue;\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState;\n var buffer;\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT;\n buffer = \"textNode\";\n break;\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED;\n buffer = \"attribValue\";\n break;\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED;\n buffer = \"attribValue\";\n break;\n }\n if (c2 === \";\") {\n var parsedEntity = parseEntity(parser);\n if (parser.opt.unparsedEntities && !Object.values(sax2.XML_ENTITIES).includes(parsedEntity)) {\n parser.entity = \"\";\n parser.state = returnState;\n parser.write(parsedEntity);\n } else {\n parser[buffer] += parsedEntity;\n parser.entity = \"\";\n parser.state = returnState;\n }\n } else if (isMatch(parser.entity.length ? entityBody : entityStart, c2)) {\n parser.entity += c2;\n } else {\n strictFail(parser, \"Invalid character in entity name\");\n parser[buffer] += \"&\" + parser.entity + c2;\n parser.entity = \"\";\n parser.state = returnState;\n }\n continue;\n default: {\n throw new Error(parser, \"Unknown state: \" + parser.state);\n }\n }\n }\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser);\n }\n return parser;\n }\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n if (!String.fromCodePoint) {\n (function() {\n var stringFromCharCode = String.fromCharCode;\n var floor = Math.floor;\n var fromCodePoint = function() {\n var MAX_SIZE = 16384;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = arguments.length;\n if (!length) {\n return \"\";\n }\n var result = \"\";\n while (++index < length) {\n var codePoint = Number(arguments[index]);\n if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 1114111 || // not a valid Unicode code point\n floor(codePoint) !== codePoint) {\n throw RangeError(\"Invalid code point: \" + codePoint);\n }\n if (codePoint <= 65535) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 65536;\n highSurrogate = (codePoint >> 10) + 55296;\n lowSurrogate = codePoint % 1024 + 56320;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n if (Object.defineProperty) {\n Object.defineProperty(String, \"fromCodePoint\", {\n value: fromCodePoint,\n configurable: true,\n writable: true\n });\n } else {\n String.fromCodePoint = fromCodePoint;\n }\n })();\n }\n })(exports);\n })(sax$1);\n return sax$1;\n}\nvar saxExports = requireSax();\nconst sax = /* @__PURE__ */ getDefaultExportFromCjs(saxExports);\nconst namespaceMapping = {\n \"http://www.w3.org/2000/svg\": {\n ext: \"svg\",\n mime: \"image/svg+xml\"\n },\n \"http://www.w3.org/1999/xhtml\": {\n ext: \"xhtml\",\n mime: \"application/xhtml+xml\"\n },\n \"http://www.opengis.net/kml/2.2\": {\n ext: \"kml\",\n mime: \"application/vnd.google-earth.kml+xml\"\n },\n \"http://www.opengis.net/gml\": {\n ext: \"gml\",\n mime: \"application/gml+xml\"\n }\n};\nconst rootNameMapping = {\n rss: {\n ext: \"rss\",\n mime: \"application/rss+xml\"\n },\n \"score-partwise\": {\n ext: \"musicxml\",\n mime: \"application/vnd.recordare.musicxml+xml\"\n },\n svg: {\n ext: \"svg\",\n mime: \"image/svg+xml\"\n }\n};\nclass XmlTextDetector {\n constructor(options) {\n this.options = options ?? {};\n this.firstTag = true;\n this.onEnd = false;\n this.parser = sax.parser(true, { xmlns: true });\n this.nesting = 0;\n this.parser.onerror = (e2) => {\n if (e2.message.startsWith(\"Invalid character entity\")) {\n return;\n }\n this.fileType = void 0;\n this.onEnd = true;\n };\n this.parser.onopentag = (node) => {\n ++this.nesting;\n if (!this.firstTag || this.onEnd) {\n return;\n }\n this.firstTag = false;\n if (node.uri) {\n this.fileType = namespaceMapping[node.uri];\n } else if (node.name) {\n this.fileType = rootNameMapping[node.name.toLowerCase()];\n }\n if (this.fileType && !this.options.fullScan) {\n this.onEnd = true;\n }\n };\n this.parser.onclosetag = () => {\n --this.nesting;\n };\n }\n write(text) {\n this.parser.write(text);\n }\n close() {\n this.parser.close();\n this.onEnd = true;\n }\n isValid() {\n return this.nesting === 0;\n }\n}\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 const xmlTextDetector = new XmlTextDetector();\n xmlTextDetector.write(string);\n return xmlTextDetector.isValid() && xmlTextDetector.fileType?.ext === \"svg\";\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 hidden() {\n return this._view.hidden;\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 (\"hidden\" in view && typeof view.hidden !== \"boolean\") {\n throw new Error(\"View hidden must be a boolean\");\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 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 NewMenu {\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}\nfunction getNewFileMenu() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n}\nfunction addNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n}\nfunction removeNewFileMenuEntry(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n}\nfunction getNewFileMenuEntries(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}\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] ?? v.attributes[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}\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 getNewFileMenu,\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//# sourceMappingURL=index.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission } from '@nextcloud/files';\nimport { defineAsyncComponent } from 'vue';\nimport { FileAction } from '@nextcloud/files';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport { spawnDialog } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport TagMultipleSvg from '@mdi/svg/svg/tag-multiple-outline.svg?raw';\n/**\n * Spawn a dialog to add or remove tags from multiple nodes.\n * @param nodes Nodes to modify tags for\n */\nasync function execBatch(nodes) {\n const response = await new Promise((resolve) => {\n spawnDialog(defineAsyncComponent(() => import('../components/SystemTagPicker.vue')), {\n nodes,\n }, (status) => {\n resolve(status);\n });\n });\n return Array(nodes.length).fill(response);\n}\nexport const action = new FileAction({\n id: 'systemtags:bulk',\n displayName: () => t('systemtags', 'Manage tags'),\n iconSvgInline: () => TagMultipleSvg,\n // If the app is disabled, the action is not available anyway\n enabled(nodes) {\n if (isPublicShare()) {\n return false;\n }\n if (nodes.length === 0) {\n return false;\n }\n // Disabled for non dav resources\n if (nodes.some((node) => !node.isDavResource)) {\n return false;\n }\n // We need to have the update permission on all nodes\n return !nodes.some((node) => (node.permissions & Permission.UPDATE) === 0);\n },\n async exec(node) {\n return execBatch([node])[0];\n },\n execBatch,\n});\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('files')\n .detectUser()\n .build();\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { subscribe } from '@nextcloud/event-bus';\nimport { getNavigation } from '@nextcloud/files';\nimport { defineStore } from 'pinia';\nimport { ref } from 'vue';\nimport logger from '../logger.ts';\nexport const useActiveStore = defineStore('active', () => {\n /**\n * The currently active action\n */\n const activeAction = ref();\n /**\n * The currently active folder\n */\n const activeFolder = ref();\n /**\n * The current active node within the folder\n */\n const activeNode = ref();\n /**\n * The current active view\n */\n const activeView = ref();\n initialize();\n /**\n * Unset the active node if deleted\n *\n * @param node - The node thats deleted\n * @private\n */\n function onDeletedNode(node) {\n if (activeNode.value && activeNode.value.source === node.source) {\n activeNode.value = undefined;\n }\n }\n /**\n * Callback to update the current active view\n *\n * @param view - The new active view\n * @private\n */\n function onChangedView(view = null) {\n logger.debug('Setting active view', { view });\n activeView.value = view ?? undefined;\n activeNode.value = undefined;\n }\n /**\n * Initalize the store - connect all event listeners.\n * @private\n */\n function initialize() {\n const navigation = getNavigation();\n // Make sure we only register the listeners once\n subscribe('files:node:deleted', onDeletedNode);\n onChangedView(navigation.active);\n // Or you can react to changes of the current active view\n navigation.addEventListener('updateActive', (event) => {\n onChangedView(event.detail);\n });\n }\n return {\n activeAction,\n activeFolder,\n activeNode,\n activeView,\n };\n});\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { Folder, Permission, getDavNameSpaces, getDavProperties, davGetClient, davResultToNode, davRemoteURL, davRootPath } from '@nextcloud/files';\nimport { fetchTags } from './api';\nconst rootPath = '/systemtags';\nconst client = davGetClient();\nconst resultToNode = (node) => davResultToNode(node);\nconst formatReportPayload = (tagId) => `<?xml version=\"1.0\"?>\n<oc:filter-files ${getDavNameSpaces()}>\n\t<d:prop>\n\t\t${getDavProperties()}\n\t</d:prop>\n\t<oc:filter-rules>\n\t\t<oc:systemtag>${tagId}</oc:systemtag>\n\t</oc:filter-rules>\n</oc:filter-files>`;\nconst tagToNode = function (tag) {\n return new Folder({\n id: tag.id,\n source: `${davRemoteURL}${rootPath}/${tag.id}`,\n owner: String(getCurrentUser()?.uid ?? 'anonymous'),\n root: rootPath,\n displayname: tag.displayName,\n permissions: Permission.READ,\n attributes: {\n ...tag,\n 'is-tag': true,\n },\n });\n};\nexport const getContents = async (path = '/') => {\n // List tags in the root\n const tagsCache = (await fetchTags()).filter(tag => tag.userVisible);\n if (path === '/') {\n return {\n folder: new Folder({\n id: 0,\n source: `${davRemoteURL}${rootPath}`,\n owner: getCurrentUser()?.uid,\n root: rootPath,\n permissions: Permission.NONE,\n }),\n contents: tagsCache.map(tagToNode),\n };\n }\n const tagId = parseInt(path.split('/', 2)[1]);\n const tag = tagsCache.find(tag => tag.id === tagId);\n if (!tag) {\n throw new Error('Tag not found');\n }\n const folder = tagToNode(tag);\n const contentsResponse = await client.getDirectoryContents(davRootPath, {\n details: true,\n // Only filter favorites if we're at the root\n data: formatReportPayload(tagId),\n headers: {\n // Patched in WebdavClient.ts\n method: 'REPORT',\n },\n });\n return {\n folder,\n contents: contentsResponse.data.map(resultToNode),\n };\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport { View, getNavigation } from '@nextcloud/files';\nimport { getContents } from '../services/systemtags.js';\nimport svgTagMultiple from '@mdi/svg/svg/tag-multiple-outline.svg?raw';\nexport const systemTagsViewId = 'tags';\n/**\n * Register the system tags files view\n */\nexport function registerSystemTagsView() {\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: systemTagsViewId,\n name: t('systemtags', 'Tags'),\n caption: t('systemtags', 'List of tags and their associated files and folders.'),\n emptyTitle: t('systemtags', 'No tags found'),\n emptyCaption: t('systemtags', 'Tags you have created will show up here.'),\n icon: svgTagMultiple,\n order: 25,\n getContents,\n }));\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./fileEntryInlineSystemTags.scss\";\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/sass-loader/dist/cjs.js!./fileEntryInlineSystemTags.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { FileAction } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport { t } from '@nextcloud/l10n';\nimport '../css/fileEntryInlineSystemTags.scss';\nimport { elementColor, isDarkModeEnabled } from '../utils/colorUtils';\nimport { fetchTags } from '../services/api';\nimport { getNodeSystemTags } from '../utils';\nimport logger from '../logger.ts';\n// Init tag cache\nconst cache = [];\nconst renderTag = function (tag, isMore = false) {\n const tagElement = document.createElement('li');\n tagElement.classList.add('files-list__system-tag');\n tagElement.setAttribute('data-systemtag-name', tag);\n tagElement.textContent = tag;\n // Set the color if it exists\n const cachedTag = cache.find((t) => t.displayName === tag);\n if (cachedTag?.color) {\n // Make sure contrast is good and follow WCAG guidelines\n const mainBackgroundColor = getComputedStyle(document.body)\n .getPropertyValue('--color-main-background')\n .replace('#', '') || (isDarkModeEnabled() ? '000000' : 'ffffff');\n const primaryElement = elementColor(`#${cachedTag.color}`, `#${mainBackgroundColor}`);\n tagElement.style.setProperty('--systemtag-color', primaryElement);\n tagElement.setAttribute('data-systemtag-color', 'true');\n }\n if (isMore) {\n tagElement.classList.add('files-list__system-tag--more');\n }\n return tagElement;\n};\nconst renderInline = async function (node) {\n // Ensure we have the system tags as an array\n const tags = getNodeSystemTags(node);\n const systemTagsElement = document.createElement('ul');\n systemTagsElement.classList.add('files-list__system-tags');\n systemTagsElement.setAttribute('aria-label', t('files', 'Assigned collaborative tags'));\n systemTagsElement.setAttribute('data-systemtags-fileid', node.fileid?.toString() || '');\n if (tags.length === 0) {\n return systemTagsElement;\n }\n // Fetch the tags if the cache is empty\n if (cache.length === 0) {\n try {\n // Best would be to support attributes from webdav,\n // but currently the library does not support it\n cache.push(...await fetchTags());\n }\n catch (error) {\n logger.error('Failed to fetch tags', { error });\n }\n }\n systemTagsElement.append(renderTag(tags[0]));\n if (tags.length === 2) {\n // Special case only two tags:\n // the overflow fake tag would take the same space as this, so render it\n systemTagsElement.append(renderTag(tags[1]));\n }\n else if (tags.length > 1) {\n // More tags than the one we're showing\n // So we add a overflow element indicating there are more tags\n const moreTagElement = renderTag('+' + (tags.length - 1), true);\n moreTagElement.setAttribute('title', tags.slice(1).join(', '));\n // because the title is not accessible we hide this element for screen readers (see alternative below)\n moreTagElement.setAttribute('aria-hidden', 'true');\n moreTagElement.setAttribute('role', 'presentation');\n systemTagsElement.append(moreTagElement);\n // For accessibility the tags are listed, as the title is not accessible\n // but those tags are visually hidden\n for (const tag of tags.slice(1)) {\n const tagElement = renderTag(tag);\n tagElement.classList.add('hidden-visually');\n systemTagsElement.append(tagElement);\n }\n }\n return systemTagsElement;\n};\nexport const action = new FileAction({\n id: 'system-tags',\n displayName: () => '',\n iconSvgInline: () => '',\n enabled(nodes) {\n // Only show the action on single nodes\n if (nodes.length !== 1) {\n return false;\n }\n // Always show the action, even if there are no tags\n // This will render an empty tag list and allow events to update it\n return true;\n },\n exec: async () => null,\n renderInline,\n order: 0,\n});\n// Update the system tags html when the node is updated\nconst updateSystemTagsHtml = function (node) {\n renderInline(node).then((systemTagsHtml) => {\n document.querySelectorAll(`[data-systemtags-fileid=\"${node.fileid}\"]`).forEach((element) => {\n element.replaceWith(systemTagsHtml);\n });\n });\n};\n// Add and remove tags from the cache\nconst addTag = function (tag) {\n cache.push(tag);\n};\nconst removeTag = function (tag) {\n cache.splice(cache.findIndex((t) => t.id === tag.id), 1);\n};\nconst updateTag = function (tag) {\n const index = cache.findIndex((t) => t.id === tag.id);\n if (index !== -1) {\n cache[index] = tag;\n }\n updateSystemTagsColorAttribute(tag);\n};\n// Update the color attribute of the system tags\nconst updateSystemTagsColorAttribute = function (tag) {\n document.querySelectorAll(`[data-systemtag-name=\"${tag.displayName}\"]`).forEach((element) => {\n element.style.setProperty('--systemtag-color', `#${tag.color}`);\n });\n};\n// Subscribe to the events\nsubscribe('systemtags:node:updated', updateSystemTagsHtml);\nsubscribe('systemtags:tag:created', addTag);\nsubscribe('systemtags:tag:deleted', removeTag);\nsubscribe('systemtags:tag:updated', updateTag);\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport {} from '@nextcloud/files';\nimport { FileType, FileAction, DefaultType } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { systemTagsViewId } from '../files_views/systemtagsView';\nexport const action = new FileAction({\n id: 'systemtags:open-in-files',\n displayName: () => t('systemtags', 'Open in Files'),\n iconSvgInline: () => '',\n enabled(nodes, view) {\n // Only for the system tags view\n if (view.id !== systemTagsViewId) {\n return false;\n }\n // Only for single nodes\n if (nodes.length !== 1) {\n return false;\n }\n // Do not open tags (keep the default action) and only open folders\n return nodes[0].attributes['is-tag'] !== true\n && nodes[0].type === FileType.Folder;\n },\n async exec(node) {\n let dir = node.dirname;\n if (node.type === FileType.Folder) {\n dir = node.path;\n }\n window.OCP.Files.Router.goToRoute(null, // use default route\n { view: 'files', fileid: String(node.fileid) }, { dir, openfile: 'true' });\n return null;\n },\n // Before openFolderAction\n order: -1000,\n default: DefaultType.HIDDEN,\n});\n","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { registerDavProperty, registerFileAction } from '@nextcloud/files';\nimport { registerHotkeys } from './services/HotKeysService';\nimport { registerSystemTagsView } from './files_views/systemtagsView';\nimport { action as bulkSystemTagsAction } from './files_actions/bulkSystemTagsAction';\nimport { action as inlineSystemTagsAction } from './files_actions/inlineSystemTagsAction';\nimport { action as openInFilesAction } from './files_actions/openInFilesAction';\nregisterDavProperty('nc:system-tags');\nregisterFileAction(bulkSystemTagsAction);\nregisterFileAction(inlineSystemTagsAction);\nregisterFileAction(openInFilesAction);\nregisterSystemTagsView();\ndocument.addEventListener('DOMContentLoaded', () => {\n registerHotkeys();\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { useHotKey } from '@nextcloud/vue/composables/useHotKey';\nimport { action as manageTagAction } from '../files_actions/bulkSystemTagsAction.ts';\nimport { executeAction } from '../../../files/src/utils/actionUtils.ts';\nimport logger from '../logger.ts';\n/**\n * This register the hotkeys for the Files app.\n * As much as possible, we try to have all the hotkeys in one place.\n * Please make sure to add tests for the hotkeys after adding a new one.\n */\nexport const registerHotkeys = function () {\n // t opens the tag management dialog\n useHotKey('t', () => executeAction(manageTagAction), {\n stop: true,\n prevent: true,\n });\n logger.debug('Hotkeys registered');\n};\n","import { NodeStatus } from '@nextcloud/files';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { getPinia } from '../store';\nimport { useActiveStore } from '../store/active';\nimport logger from '../logger';\n/**\n * Execute an action on the current active node\n *\n * @param action The action to execute\n */\nexport const executeAction = async (action) => {\n const activeStore = useActiveStore(getPinia());\n const currentDir = (window?.OCP?.Files?.Router?.query?.dir || '/');\n const currentNode = activeStore.activeNode;\n const currentView = activeStore.activeView;\n if (!currentNode || !currentView) {\n logger.error('No active node or view', { node: currentNode, view: currentView });\n return;\n }\n if (currentNode.status === NodeStatus.LOADING) {\n logger.debug('Node is already loading', { node: currentNode });\n return;\n }\n if (!action.enabled([currentNode], currentView)) {\n logger.debug('Action is not not available for the current context', { action, node: currentNode, view: currentView });\n return;\n }\n let displayName = action.id;\n try {\n displayName = action.displayName([currentNode], currentView);\n }\n catch (error) {\n logger.error('Error while getting action display name', { action, error });\n }\n try {\n // Set the loading marker\n Vue.set(currentNode, 'status', NodeStatus.LOADING);\n activeStore.activeAction = action;\n const success = await action.exec(currentNode, currentView, currentDir);\n // If the action returns null, we stay silent\n if (success === null || success === undefined) {\n return;\n }\n if (success) {\n showSuccess(t('files', '{displayName}: done', { displayName }));\n return;\n }\n showError(t('files', '{displayName}: failed', { displayName }));\n }\n catch (error) {\n logger.error('Error while executing action', { action, error });\n showError(t('files', '{displayName}: failed', { displayName }));\n }\n finally {\n // Reset the loading marker\n Vue.set(currentNode, 'status', undefined);\n activeStore.activeAction = undefined;\n }\n};\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createPinia } from 'pinia';\nexport const getPinia = () => {\n if (window._nc_files_pinia) {\n return window._nc_files_pinia;\n }\n window._nc_files_pinia = createPinia();\n return window._nc_files_pinia;\n};\n","export default {\n\taliceblue: [240, 248, 255],\n\tantiquewhite: [250, 235, 215],\n\taqua: [0, 255, 255],\n\taquamarine: [127, 255, 212],\n\tazure: [240, 255, 255],\n\tbeige: [245, 245, 220],\n\tbisque: [255, 228, 196],\n\tblack: [0, 0, 0],\n\tblanchedalmond: [255, 235, 205],\n\tblue: [0, 0, 255],\n\tblueviolet: [138, 43, 226],\n\tbrown: [165, 42, 42],\n\tburlywood: [222, 184, 135],\n\tcadetblue: [95, 158, 160],\n\tchartreuse: [127, 255, 0],\n\tchocolate: [210, 105, 30],\n\tcoral: [255, 127, 80],\n\tcornflowerblue: [100, 149, 237],\n\tcornsilk: [255, 248, 220],\n\tcrimson: [220, 20, 60],\n\tcyan: [0, 255, 255],\n\tdarkblue: [0, 0, 139],\n\tdarkcyan: [0, 139, 139],\n\tdarkgoldenrod: [184, 134, 11],\n\tdarkgray: [169, 169, 169],\n\tdarkgreen: [0, 100, 0],\n\tdarkgrey: [169, 169, 169],\n\tdarkkhaki: [189, 183, 107],\n\tdarkmagenta: [139, 0, 139],\n\tdarkolivegreen: [85, 107, 47],\n\tdarkorange: [255, 140, 0],\n\tdarkorchid: [153, 50, 204],\n\tdarkred: [139, 0, 0],\n\tdarksalmon: [233, 150, 122],\n\tdarkseagreen: [143, 188, 143],\n\tdarkslateblue: [72, 61, 139],\n\tdarkslategray: [47, 79, 79],\n\tdarkslategrey: [47, 79, 79],\n\tdarkturquoise: [0, 206, 209],\n\tdarkviolet: [148, 0, 211],\n\tdeeppink: [255, 20, 147],\n\tdeepskyblue: [0, 191, 255],\n\tdimgray: [105, 105, 105],\n\tdimgrey: [105, 105, 105],\n\tdodgerblue: [30, 144, 255],\n\tfirebrick: [178, 34, 34],\n\tfloralwhite: [255, 250, 240],\n\tforestgreen: [34, 139, 34],\n\tfuchsia: [255, 0, 255],\n\tgainsboro: [220, 220, 220],\n\tghostwhite: [248, 248, 255],\n\tgold: [255, 215, 0],\n\tgoldenrod: [218, 165, 32],\n\tgray: [128, 128, 128],\n\tgreen: [0, 128, 0],\n\tgreenyellow: [173, 255, 47],\n\tgrey: [128, 128, 128],\n\thoneydew: [240, 255, 240],\n\thotpink: [255, 105, 180],\n\tindianred: [205, 92, 92],\n\tindigo: [75, 0, 130],\n\tivory: [255, 255, 240],\n\tkhaki: [240, 230, 140],\n\tlavender: [230, 230, 250],\n\tlavenderblush: [255, 240, 245],\n\tlawngreen: [124, 252, 0],\n\tlemonchiffon: [255, 250, 205],\n\tlightblue: [173, 216, 230],\n\tlightcoral: [240, 128, 128],\n\tlightcyan: [224, 255, 255],\n\tlightgoldenrodyellow: [250, 250, 210],\n\tlightgray: [211, 211, 211],\n\tlightgreen: [144, 238, 144],\n\tlightgrey: [211, 211, 211],\n\tlightpink: [255, 182, 193],\n\tlightsalmon: [255, 160, 122],\n\tlightseagreen: [32, 178, 170],\n\tlightskyblue: [135, 206, 250],\n\tlightslategray: [119, 136, 153],\n\tlightslategrey: [119, 136, 153],\n\tlightsteelblue: [176, 196, 222],\n\tlightyellow: [255, 255, 224],\n\tlime: [0, 255, 0],\n\tlimegreen: [50, 205, 50],\n\tlinen: [250, 240, 230],\n\tmagenta: [255, 0, 255],\n\tmaroon: [128, 0, 0],\n\tmediumaquamarine: [102, 205, 170],\n\tmediumblue: [0, 0, 205],\n\tmediumorchid: [186, 85, 211],\n\tmediumpurple: [147, 112, 219],\n\tmediumseagreen: [60, 179, 113],\n\tmediumslateblue: [123, 104, 238],\n\tmediumspringgreen: [0, 250, 154],\n\tmediumturquoise: [72, 209, 204],\n\tmediumvioletred: [199, 21, 133],\n\tmidnightblue: [25, 25, 112],\n\tmintcream: [245, 255, 250],\n\tmistyrose: [255, 228, 225],\n\tmoccasin: [255, 228, 181],\n\tnavajowhite: [255, 222, 173],\n\tnavy: [0, 0, 128],\n\toldlace: [253, 245, 230],\n\tolive: [128, 128, 0],\n\tolivedrab: [107, 142, 35],\n\torange: [255, 165, 0],\n\torangered: [255, 69, 0],\n\torchid: [218, 112, 214],\n\tpalegoldenrod: [238, 232, 170],\n\tpalegreen: [152, 251, 152],\n\tpaleturquoise: [175, 238, 238],\n\tpalevioletred: [219, 112, 147],\n\tpapayawhip: [255, 239, 213],\n\tpeachpuff: [255, 218, 185],\n\tperu: [205, 133, 63],\n\tpink: [255, 192, 203],\n\tplum: [221, 160, 221],\n\tpowderblue: [176, 224, 230],\n\tpurple: [128, 0, 128],\n\trebeccapurple: [102, 51, 153],\n\tred: [255, 0, 0],\n\trosybrown: [188, 143, 143],\n\troyalblue: [65, 105, 225],\n\tsaddlebrown: [139, 69, 19],\n\tsalmon: [250, 128, 114],\n\tsandybrown: [244, 164, 96],\n\tseagreen: [46, 139, 87],\n\tseashell: [255, 245, 238],\n\tsienna: [160, 82, 45],\n\tsilver: [192, 192, 192],\n\tskyblue: [135, 206, 235],\n\tslateblue: [106, 90, 205],\n\tslategray: [112, 128, 144],\n\tslategrey: [112, 128, 144],\n\tsnow: [255, 250, 250],\n\tspringgreen: [0, 255, 127],\n\tsteelblue: [70, 130, 180],\n\ttan: [210, 180, 140],\n\tteal: [0, 128, 128],\n\tthistle: [216, 191, 216],\n\ttomato: [255, 99, 71],\n\tturquoise: [64, 224, 208],\n\tviolet: [238, 130, 238],\n\twheat: [245, 222, 179],\n\twhite: [255, 255, 255],\n\twhitesmoke: [245, 245, 245],\n\tyellow: [255, 255, 0],\n\tyellowgreen: [154, 205, 50]\n}\n","import colorNames from 'color-name';\n\nconst reverseNames = Object.create(null);\n\n// Create a list of reverse color names\nfor (const name in colorNames) {\n\tif (Object.hasOwn(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nconst cs = {\n\tto: {},\n\tget: {},\n};\n\ncs.get = function (string) {\n\tconst prefix = string.slice(0, 3).toLowerCase();\n\tlet value;\n\tlet model;\n\tswitch (prefix) {\n\t\tcase 'hsl': {\n\t\t\tvalue = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'hwb': {\n\t\t\tvalue = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tvalue = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!value) {\n\t\treturn null;\n\t}\n\n\treturn {model, value};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst abbr = /^#([a-f\\d]{3,4})$/i;\n\tconst hex = /^#([a-f\\d]{6})([a-f\\d]{2})?$/i;\n\tconst rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|/]\\s*([+-]?[\\d.]+)(%?)\\s*)?\\)$/;\n\tconst per = /^rgba?\\(\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[,|/]\\s*([+-]?[\\d.]+)(%?)\\s*)?\\)$/;\n\tconst keyword = /^(\\w+)$/;\n\n\tlet rgb = [0, 0, 0, 1];\n\tlet match;\n\tlet i;\n\tlet hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tconst i2 = i * 2;\n\t\t\trgb[i] = Number.parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Number.parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Number.parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Number.parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Number.parseInt(match[i + 1], 10);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(Number.parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!Object.hasOwn(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[,|/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tconst match = string.match(hsl);\n\n\tif (match) {\n\t\tconst alpha = Number.parseFloat(match[4]);\n\t\tconst h = ((Number.parseFloat(match[1]) % 360) + 360) % 360;\n\t\tconst s = clamp(Number.parseFloat(match[2]), 0, 100);\n\t\tconst l = clamp(Number.parseFloat(match[3]), 0, 100);\n\t\tconst a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d.]+)%\\s*,\\s*([+-]?[\\d.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tconst match = string.match(hwb);\n\n\tif (match) {\n\t\tconst alpha = Number.parseFloat(match[4]);\n\t\tconst h = ((Number.parseFloat(match[1]) % 360) + 360) % 360;\n\t\tconst w = clamp(Number.parseFloat(match[2]), 0, 100);\n\t\tconst b = clamp(Number.parseFloat(match[3]), 0, 100);\n\t\tconst a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function (...rgba) {\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function (...rgba) {\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function (...rgba) {\n\tconst r = Math.round(rgba[0] / 255 * 100);\n\tconst g = Math.round(rgba[1] / 255 * 100);\n\tconst b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function (...hsla) {\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// Hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function (...hwba) {\n\tlet a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (...rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// Helpers\nfunction clamp(number_, min, max) {\n\treturn Math.min(Math.max(min, number_), max);\n}\n\nfunction hexDouble(number_) {\n\tconst string_ = Math.round(number_).toString(16).toUpperCase();\n\treturn (string_.length < 2) ? '0' + string_ : string_;\n}\n\nexport default cs;\n","export default {\n\taliceblue: [240, 248, 255],\n\tantiquewhite: [250, 235, 215],\n\taqua: [0, 255, 255],\n\taquamarine: [127, 255, 212],\n\tazure: [240, 255, 255],\n\tbeige: [245, 245, 220],\n\tbisque: [255, 228, 196],\n\tblack: [0, 0, 0],\n\tblanchedalmond: [255, 235, 205],\n\tblue: [0, 0, 255],\n\tblueviolet: [138, 43, 226],\n\tbrown: [165, 42, 42],\n\tburlywood: [222, 184, 135],\n\tcadetblue: [95, 158, 160],\n\tchartreuse: [127, 255, 0],\n\tchocolate: [210, 105, 30],\n\tcoral: [255, 127, 80],\n\tcornflowerblue: [100, 149, 237],\n\tcornsilk: [255, 248, 220],\n\tcrimson: [220, 20, 60],\n\tcyan: [0, 255, 255],\n\tdarkblue: [0, 0, 139],\n\tdarkcyan: [0, 139, 139],\n\tdarkgoldenrod: [184, 134, 11],\n\tdarkgray: [169, 169, 169],\n\tdarkgreen: [0, 100, 0],\n\tdarkgrey: [169, 169, 169],\n\tdarkkhaki: [189, 183, 107],\n\tdarkmagenta: [139, 0, 139],\n\tdarkolivegreen: [85, 107, 47],\n\tdarkorange: [255, 140, 0],\n\tdarkorchid: [153, 50, 204],\n\tdarkred: [139, 0, 0],\n\tdarksalmon: [233, 150, 122],\n\tdarkseagreen: [143, 188, 143],\n\tdarkslateblue: [72, 61, 139],\n\tdarkslategray: [47, 79, 79],\n\tdarkslategrey: [47, 79, 79],\n\tdarkturquoise: [0, 206, 209],\n\tdarkviolet: [148, 0, 211],\n\tdeeppink: [255, 20, 147],\n\tdeepskyblue: [0, 191, 255],\n\tdimgray: [105, 105, 105],\n\tdimgrey: [105, 105, 105],\n\tdodgerblue: [30, 144, 255],\n\tfirebrick: [178, 34, 34],\n\tfloralwhite: [255, 250, 240],\n\tforestgreen: [34, 139, 34],\n\tfuchsia: [255, 0, 255],\n\tgainsboro: [220, 220, 220],\n\tghostwhite: [248, 248, 255],\n\tgold: [255, 215, 0],\n\tgoldenrod: [218, 165, 32],\n\tgray: [128, 128, 128],\n\tgreen: [0, 128, 0],\n\tgreenyellow: [173, 255, 47],\n\tgrey: [128, 128, 128],\n\thoneydew: [240, 255, 240],\n\thotpink: [255, 105, 180],\n\tindianred: [205, 92, 92],\n\tindigo: [75, 0, 130],\n\tivory: [255, 255, 240],\n\tkhaki: [240, 230, 140],\n\tlavender: [230, 230, 250],\n\tlavenderblush: [255, 240, 245],\n\tlawngreen: [124, 252, 0],\n\tlemonchiffon: [255, 250, 205],\n\tlightblue: [173, 216, 230],\n\tlightcoral: [240, 128, 128],\n\tlightcyan: [224, 255, 255],\n\tlightgoldenrodyellow: [250, 250, 210],\n\tlightgray: [211, 211, 211],\n\tlightgreen: [144, 238, 144],\n\tlightgrey: [211, 211, 211],\n\tlightpink: [255, 182, 193],\n\tlightsalmon: [255, 160, 122],\n\tlightseagreen: [32, 178, 170],\n\tlightskyblue: [135, 206, 250],\n\tlightslategray: [119, 136, 153],\n\tlightslategrey: [119, 136, 153],\n\tlightsteelblue: [176, 196, 222],\n\tlightyellow: [255, 255, 224],\n\tlime: [0, 255, 0],\n\tlimegreen: [50, 205, 50],\n\tlinen: [250, 240, 230],\n\tmagenta: [255, 0, 255],\n\tmaroon: [128, 0, 0],\n\tmediumaquamarine: [102, 205, 170],\n\tmediumblue: [0, 0, 205],\n\tmediumorchid: [186, 85, 211],\n\tmediumpurple: [147, 112, 219],\n\tmediumseagreen: [60, 179, 113],\n\tmediumslateblue: [123, 104, 238],\n\tmediumspringgreen: [0, 250, 154],\n\tmediumturquoise: [72, 209, 204],\n\tmediumvioletred: [199, 21, 133],\n\tmidnightblue: [25, 25, 112],\n\tmintcream: [245, 255, 250],\n\tmistyrose: [255, 228, 225],\n\tmoccasin: [255, 228, 181],\n\tnavajowhite: [255, 222, 173],\n\tnavy: [0, 0, 128],\n\toldlace: [253, 245, 230],\n\tolive: [128, 128, 0],\n\tolivedrab: [107, 142, 35],\n\torange: [255, 165, 0],\n\torangered: [255, 69, 0],\n\torchid: [218, 112, 214],\n\tpalegoldenrod: [238, 232, 170],\n\tpalegreen: [152, 251, 152],\n\tpaleturquoise: [175, 238, 238],\n\tpalevioletred: [219, 112, 147],\n\tpapayawhip: [255, 239, 213],\n\tpeachpuff: [255, 218, 185],\n\tperu: [205, 133, 63],\n\tpink: [255, 192, 203],\n\tplum: [221, 160, 221],\n\tpowderblue: [176, 224, 230],\n\tpurple: [128, 0, 128],\n\trebeccapurple: [102, 51, 153],\n\tred: [255, 0, 0],\n\trosybrown: [188, 143, 143],\n\troyalblue: [65, 105, 225],\n\tsaddlebrown: [139, 69, 19],\n\tsalmon: [250, 128, 114],\n\tsandybrown: [244, 164, 96],\n\tseagreen: [46, 139, 87],\n\tseashell: [255, 245, 238],\n\tsienna: [160, 82, 45],\n\tsilver: [192, 192, 192],\n\tskyblue: [135, 206, 235],\n\tslateblue: [106, 90, 205],\n\tslategray: [112, 128, 144],\n\tslategrey: [112, 128, 144],\n\tsnow: [255, 250, 250],\n\tspringgreen: [0, 255, 127],\n\tsteelblue: [70, 130, 180],\n\ttan: [210, 180, 140],\n\tteal: [0, 128, 128],\n\tthistle: [216, 191, 216],\n\ttomato: [255, 99, 71],\n\tturquoise: [64, 224, 208],\n\tviolet: [238, 130, 238],\n\twheat: [245, 222, 179],\n\twhite: [255, 255, 255],\n\twhitesmoke: [245, 245, 245],\n\tyellow: [255, 255, 0],\n\tyellowgreen: [154, 205, 50]\n}\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nimport cssKeywords from 'color-name';\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']},\n};\n\nexport default convert;\n\n// LAB f(t) constant\nconst LAB_FT = (6 / 29) ** 3;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tswitch (max) {\n\t\tcase min: {\n\t\t\th = 0;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase r: {\n\t\t\th = (g - b) / delta;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase g: {\n\t\t\th = 2 + (b - r) / delta;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase b: {\n\t\t\th = 4 + (r - g) / delta;\n\n\t\t\tbreak;\n\t\t}\n\t// No default\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tswitch (v) {\n\t\t\tcase r: {\n\t\t\t\th = bdif - gdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase g: {\n\t\t\t\th = (1 / 3) + rdif - bdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase b: {\n\t\t\t\th = (2 / 3) + gdif - rdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t// No default\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100,\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Number.POSITIVE_INFINITY;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.040_45 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.040_45 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.040_45 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.412_456_4) + (g * 0.357_576_1) + (b * 0.180_437_5);\n\tconst y = (r * 0.212_672_9) + (g * 0.715_152_2) + (b * 0.072_175);\n\tconst z = (r * 0.019_333_9) + (g * 0.119_192) + (b * 0.950_304_1);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > LAB_FT ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > LAB_FT ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > LAB_FT ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t3;\n\tlet value;\n\n\tif (s === 0) {\n\t\tvalue = l * 255;\n\t\treturn [value, value, value];\n\t}\n\n\tconst t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tvalue = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tvalue = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tvalue = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tvalue = t1;\n\t\t}\n\n\t\trgb[i] = value * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0: {\n\t\t\treturn [v, t, p];\n\t\t}\n\n\t\tcase 1: {\n\t\t\treturn [q, v, p];\n\t\t}\n\n\t\tcase 2: {\n\t\t\treturn [p, v, t];\n\t\t}\n\n\t\tcase 3: {\n\t\t\treturn [p, q, v];\n\t\t}\n\n\t\tcase 4: {\n\t\t\treturn [t, p, v];\n\t\t}\n\n\t\tcase 5: {\n\t\t\treturn [v, p, q];\n\t\t}\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\t// eslint-disable-next-line no-bitwise\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces, default-case-last */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: { r = v; g = n; b = wh; break;\n\t\t}\n\n\t\tcase 1: { r = n; g = v; b = wh; break;\n\t\t}\n\n\t\tcase 2: { r = wh; g = v; b = n; break;\n\t\t}\n\n\t\tcase 3: { r = wh; g = n; b = v; break;\n\t\t}\n\n\t\tcase 4: { r = n; g = wh; b = v; break;\n\t\t}\n\n\t\tcase 5: { r = v; g = wh; b = n; break;\n\t\t}\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces, default-case-last */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.240_454_2) + (y * -1.537_138_5) + (z * -0.498_531_4);\n\tg = (x * -0.969_266) + (y * 1.876_010_8) + (z * 0.041_556);\n\tb = (x * 0.055_643_4) + (y * -0.204_025_9) + (z * 1.057_225_2);\n\n\t// Assume sRGB\n\tr = r > 0.003_130_8\n\t\t? ((1.055 * (r ** (1 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.003_130_8\n\t\t? ((1.055 * (g ** (1 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.003_130_8\n\t\t? ((1.055 * (b ** (1 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > LAB_FT ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > LAB_FT ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > LAB_FT ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > LAB_FT ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > LAB_FT ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > LAB_FT ? z2 : (z - 16 / 116) / 7.787;\n\n\t// Illuminant D65 XYZ Tristrimulus Values\n\t// https://en.wikipedia.org/wiki/CIE_1931_color_space\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t/* eslint-disable no-bitwise */\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\t\t/* eslint-enable no-bitwise */\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\t// eslint-disable-next-line no-bitwise\n\tif (r >> 4 === g >> 4 && g >> 4 === b >> 4) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\targs = args[0];\n\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (Math.trunc(args > 50) + 1) * 0.5;\n\t/* eslint-disable no-bitwise */\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\t/* eslint-enable no-bitwise */\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\targs = args[0];\n\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\t/* eslint-disable no-bitwise */\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\t/* eslint-enable no-bitwise */\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.slice(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f\\d]{6}|[a-f\\d]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = [...colorString].map(char => char + char).join('');\n\t}\n\n\tconst integer = Number.parseInt(colorString, 16);\n\t/* eslint-disable no-bitwise */\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\t/* eslint-enable no-bitwise */\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet hue;\n\n\tconst grayscale = chroma < 1 ? min / (1 - chroma) : 0;\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else if (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else if (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2 * s * l) : (2 * s * (1 - l));\n\n\tlet f = 0;\n\tif (c < 1) {\n\t\tf = (l - 0.5 * c) / (1 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0: {\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\t}\n\n\t\tcase 1: {\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\t}\n\n\t\tcase 2: {\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\t}\n\n\t\tcase 3: {\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\t}\n\n\t\tcase 4: {\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\t}\n\n\t\tdefault: {\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t\t}\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255,\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1 - c);\n\tlet f = 0;\n\n\tif (v > 0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else if (l >= 0.5 && l < 1) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65_535) * 255, (apple[1] / 65_535) * 255, (apple[2] / 65_535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65_535, (rgb[1] / 255) * 65_535, (rgb[2] / 255) * 65_535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\t/* eslint-disable no-bitwise */\n\tconst value = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (value << 16) + (value << 8) + value;\n\t/* eslint-enable no-bitwise */\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.slice(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst value = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [value / 255 * 100];\n};\n","import conversions from './conversions.js';\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let {length} = models, i = 0; i < length; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null,\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length > 0) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let {length} = adjacents, i = 0; i < length; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nfunction route(fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let {length} = models, i = 0; i < length; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n}\n\nexport default route;\n","import conversions from './conversions.js';\nimport route from './route.js';\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let {length} = result, i = 0; i < length; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfor (const fromModel of models) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\tfor (const toModel of routeModels) {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t}\n}\n\nexport default convert;\n","import colorString from 'color-string';\nimport convert from 'color-convert';\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](...arguments_);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(...arguments_);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(...this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(...rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_colour_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...arguments_) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments_.length > 0) {\n\t\t\treturn new Color(arguments_, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...arguments_) {\n\t\tlet color = arguments_[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(arguments_, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] ||= [])[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nexport default Color;\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport Color from 'color';\n/**\n * Is the current theme dark?\n */\nexport function isDarkModeEnabled() {\n const darkModePreference = window?.matchMedia?.('(prefers-color-scheme: dark)')?.matches;\n const darkModeSetting = document.body.getAttribute('data-themes')?.includes('dark');\n return darkModeSetting || darkModePreference || false;\n}\n/**\n * Is the current theme high contrast?\n */\nexport function isHighContrastModeEnabled() {\n const highContrastPreference = window?.matchMedia?.('(forced-colors: active)')?.matches;\n const highContrastSetting = document.body.getAttribute('data-themes')?.includes('highcontrast');\n return highContrastSetting || highContrastPreference || false;\n}\n/**\n * Should we invert the text on this background color?\n * @param color RGB color value as a hex string\n * @return boolean\n */\nexport function invertTextColor(color) {\n return colorContrast(color, '#ffffff') < 4.5;\n}\n/**\n * Is this color too bright?\n * @param color RGB color value as a hex string\n * @return boolean\n */\nexport function isBrightColor(color) {\n return calculateLuma(color) > 0.6;\n}\n/**\n * Get color for on-page elements\n * theme color by default, grey if theme color is too bright.\n * @param color the color to contrast against, e.g. #ffffff\n * @param backgroundColor the background color to contrast against, e.g. #000000\n */\nexport function elementColor(color, backgroundColor) {\n const brightBackground = isBrightColor(backgroundColor);\n const blurredBackground = mix(backgroundColor, brightBackground ? color : '#ffffff', 66);\n let contrast = colorContrast(color, blurredBackground);\n const minContrast = isHighContrastModeEnabled() ? 5.6 : 3.2;\n let iteration = 0;\n let result = color;\n const epsilon = (brightBackground ? -100 : 100) / 255;\n while (contrast < minContrast && iteration++ < 100) {\n const hsl = hexToHSL(result);\n const l = Math.max(0, Math.min(255, hsl.l + epsilon));\n result = hslToHex({ h: hsl.h, s: hsl.s, l });\n contrast = colorContrast(result, blurredBackground);\n }\n return result;\n}\n/**\n * Get color for on-page text:\n * black if background is bright, white if background is dark.\n * @param color1 the color to contrast against, e.g. #ffffff\n * @param color2 the background color to contrast against, e.g. #000000\n * @param factor the factor to mix the colors between -100 and 100, e.g. 66\n */\nexport function mix(color1, color2, factor) {\n if (factor < -100 || factor > 100) {\n throw new RangeError('Factor must be between -100 and 100');\n }\n return new Color(color2).mix(new Color(color1), (factor + 100) / 200).hex();\n}\n/**\n * Lighten a color by a factor\n * @param color the color to lighten, e.g. #000000\n * @param factor the factor to lighten the color by between -100 and 100, e.g. -41\n */\nexport function lighten(color, factor) {\n if (factor < -100 || factor > 100) {\n throw new RangeError('Factor must be between -100 and 100');\n }\n return new Color(color).lighten((factor + 100) / 200).hex();\n}\n/**\n * Darken a color by a factor\n * @param color the color to darken, e.g. #ffffff\n * @param factor the factor to darken the color by between -100 and 100, e.g. 32\n */\nexport function darken(color, factor) {\n if (factor < -100 || factor > 100) {\n throw new RangeError('Factor must be between -100 and 100');\n }\n return new Color(color).darken((factor + 100) / 200).hex();\n}\n/**\n * Calculate the luminance of a color\n * @param color the color to calculate the luminance of, e.g. #ffffff\n */\nexport function calculateLuminance(color) {\n return hexToHSL(color).l;\n}\n/**\n * Calculate the luma of a color\n * @param color the color to calculate the luma of, e.g. #ffffff\n */\nexport function calculateLuma(color) {\n const rgb = hexToRGB(color).map((value) => {\n value /= 255;\n return value <= 0.03928\n ? value / 12.92\n : Math.pow((value + 0.055) / 1.055, 2.4);\n });\n const [red, green, blue] = rgb;\n return 0.2126 * red + 0.7152 * green + 0.0722 * blue;\n}\n/**\n * Calculate the contrast between two colors\n * @param color1 the first color to calculate the contrast of, e.g. #ffffff\n * @param color2 the second color to calculate the contrast of, e.g. #000000\n */\nexport function colorContrast(color1, color2) {\n const luminance1 = calculateLuma(color1) + 0.05;\n const luminance2 = calculateLuma(color2) + 0.05;\n return Math.max(luminance1, luminance2) / Math.min(luminance1, luminance2);\n}\n/**\n * Convert hex color to RGB\n * @param color RGB color value as a hex string\n */\nexport function hexToRGB(color) {\n return new Color(color).rgb().array();\n}\n/**\n * Convert RGB color to hex\n * @param color RGB color value as a hex string\n */\nexport function hexToHSL(color) {\n const hsl = new Color(color).hsl();\n return { h: hsl.color[0], s: hsl.color[1], l: hsl.color[2] };\n}\n/**\n * Convert HSL color to hex\n * @param hsl HSL color value as an object\n * @param hsl.h hue\n * @param hsl.s saturation\n * @param hsl.l lightness\n */\nexport function hslToHex(hsl) {\n return new Color(hsl).hex();\n}\n/**\n * Convert RGB color to hex\n * @param r red\n * @param g green\n * @param b blue\n */\nexport function rgbToHex(r, g, b) {\n const hex = ((1 << 24) | (r << 16) | (g << 8) | b).toString(16).slice(1);\n return `#${hex}`;\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, `.files-list__system-tags{--min-size: 32px;display:none;justify-content:center;align-items:center;min-width:calc(var(--min-size)*2);max-width:300px}.files-list__system-tag{padding:5px 10px;border:1px solid;border-radius:var(--border-radius-pill);border-color:var(--color-border);color:var(--color-text-maxcontrast);height:var(--min-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px;text-align:center}.files-list__system-tag--more{overflow:visible;text-overflow:initial}.files-list__system-tag+.files-list__system-tag{margin-inline-start:5px}.files-list__system-tag[data-systemtag-color]{border-color:var(--systemtag-color);color:var(--systemtag-color);border-width:2px;line-height:18px}@media(min-width: 512px){.files-list__system-tags{display:flex}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/systemtags/src/css/fileEntryInlineSystemTags.scss\"],\"names\":[],\"mappings\":\"AAKA,yBACC,gBAAA,CACA,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,iCAAA,CACA,eAAA,CAGD,wBACC,gBAAA,CACA,gBAAA,CACA,uCAAA,CACA,gCAAA,CACA,mCAAA,CACA,sBAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CACA,gBAAA,CACA,iBAAA,CAEA,8BACC,gBAAA,CACA,qBAAA,CAID,gDACC,uBAAA,CAID,8CACC,mCAAA,CACA,4BAAA,CACA,gBAAA,CACA,gBAAA,CAIF,yBACC,yBACC,YAAA,CAAA\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n.files-list__system-tags {\\n\\t--min-size: 32px;\\n\\tdisplay: none;\\n\\tjustify-content: center;\\n\\talign-items: center;\\n\\tmin-width: calc(var(--min-size) * 2);\\n\\tmax-width: 300px;\\n}\\n\\n.files-list__system-tag {\\n\\tpadding: 5px 10px;\\n\\tborder: 1px solid;\\n\\tborder-radius: var(--border-radius-pill);\\n\\tborder-color: var(--color-border);\\n\\tcolor: var(--color-text-maxcontrast);\\n\\theight: var(--min-size);\\n\\twhite-space: nowrap;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\tline-height: 20px; // min-size - 2 * 5px padding - 2 * 1px border\\n\\ttext-align: center;\\n\\n\\t&--more {\\n\\t\\toverflow: visible;\\n\\t\\ttext-overflow: initial;\\n\\t}\\n\\n\\t// Proper spacing if multiple shown\\n\\t& + .files-list__system-tag {\\n\\t\\tmargin-inline-start: 5px;\\n\\t}\\n\\n\\t// With color\\n\\t&[data-systemtag-color] {\\n\\t\\tborder-color: var(--systemtag-color);\\n\\t\\tcolor: var(--systemtag-color);\\n\\t\\tborder-width: 2px;\\n\\t\\tline-height: 18px; // min-size - 2 * 5px padding - 2 * 2px border\\n\\t}\\n}\\n\\n@media (min-width: 512px) {\\n\\t.files-list__system-tags {\\n\\t\\tdisplay: flex;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateUrl, generateOcsUrl } from '@nextcloud/router';\nimport { t } from '@nextcloud/l10n';\nimport { davClient } from './davClient.js';\nimport { formatTag, parseIdFromLocation, parseTags } from '../utils';\nimport logger from '../logger.ts';\nimport { emit } from '@nextcloud/event-bus';\nimport { confirmPassword } from '@nextcloud/password-confirmation';\nexport const fetchTagsPayload = `<?xml version=\"1.0\"?>\n<d:propfind xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\" xmlns:nc=\"http://nextcloud.org/ns\">\n\t<d:prop>\n\t\t<oc:id />\n\t\t<oc:display-name />\n\t\t<oc:user-visible />\n\t\t<oc:user-assignable />\n\t\t<oc:can-assign />\n\t\t<d:getetag />\n\t\t<nc:color />\n\t</d:prop>\n</d:propfind>`;\nexport const fetchTags = async () => {\n const path = '/systemtags';\n try {\n const { data: tags } = await davClient.getDirectoryContents(path, {\n data: fetchTagsPayload,\n details: true,\n glob: '/systemtags/*', // Filter out first empty tag\n });\n return parseTags(tags);\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to load tags'), { error });\n throw new Error(t('systemtags', 'Failed to load tags'));\n }\n};\nexport const fetchTag = async (tagId) => {\n const path = '/systemtags/' + tagId;\n try {\n const { data: tag } = await davClient.stat(path, {\n data: fetchTagsPayload,\n details: true,\n });\n return parseTags([tag])[0];\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to load tag'), { error });\n throw new Error(t('systemtags', 'Failed to load tag'));\n }\n};\nexport const fetchLastUsedTagIds = async () => {\n const url = generateUrl('/apps/systemtags/lastused');\n try {\n const { data: lastUsedTagIds } = await axios.get(url);\n return lastUsedTagIds.map(Number);\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to load last used tags'), { error });\n throw new Error(t('systemtags', 'Failed to load last used tags'));\n }\n};\n/**\n * Create a tag and return the Id of the newly created tag.\n *\n * @param tag The tag to create\n */\nexport const createTag = async (tag) => {\n const path = '/systemtags';\n const tagToPost = formatTag(tag);\n try {\n const { headers } = await davClient.customRequest(path, {\n method: 'POST',\n data: tagToPost,\n });\n const contentLocation = headers.get('content-location');\n if (contentLocation) {\n emit('systemtags:tag:created', tag);\n return parseIdFromLocation(contentLocation);\n }\n logger.error(t('systemtags', 'Missing \"Content-Location\" header'));\n throw new Error(t('systemtags', 'Missing \"Content-Location\" header'));\n }\n catch (error) {\n if (error?.response?.status === 409) {\n logger.error(t('systemtags', 'A tag with the same name already exists'), { error });\n throw new Error(t('systemtags', 'A tag with the same name already exists'));\n }\n logger.error(t('systemtags', 'Failed to create tag'), { error });\n throw new Error(t('systemtags', 'Failed to create tag'));\n }\n};\nexport const updateTag = async (tag) => {\n const path = '/systemtags/' + tag.id;\n const data = `<?xml version=\"1.0\"?>\n\t<d:propertyupdate xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\" xmlns:nc=\"http://nextcloud.org/ns\">\n\t\t<d:set>\n\t\t\t<d:prop>\n\t\t\t\t<oc:display-name>${tag.displayName}</oc:display-name>\n\t\t\t\t<oc:user-visible>${tag.userVisible}</oc:user-visible>\n\t\t\t\t<oc:user-assignable>${tag.userAssignable}</oc:user-assignable>\n\t\t\t\t<nc:color>${tag?.color || null}</nc:color>\n\t\t\t</d:prop>\n\t\t</d:set>\n\t</d:propertyupdate>`;\n try {\n await davClient.customRequest(path, {\n method: 'PROPPATCH',\n data,\n });\n emit('systemtags:tag:updated', tag);\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to update tag'), { error });\n throw new Error(t('systemtags', 'Failed to update tag'));\n }\n};\nexport const deleteTag = async (tag) => {\n const path = '/systemtags/' + tag.id;\n try {\n await davClient.deleteFile(path);\n emit('systemtags:tag:deleted', tag);\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to delete tag'), { error });\n throw new Error(t('systemtags', 'Failed to delete tag'));\n }\n};\nexport const getTagObjects = async function (tag, type) {\n const path = `/systemtags/${tag.id}/${type}`;\n const data = `<?xml version=\"1.0\"?>\n\t<d:propfind xmlns:d=\"DAV:\" xmlns:nc=\"http://nextcloud.org/ns\">\n\t\t<d:prop>\n\t\t\t<nc:object-ids />\n\t\t\t<d:getetag />\n\t\t</d:prop>\n\t</d:propfind>`;\n const response = await davClient.stat(path, { data, details: true });\n const etag = response?.data?.props?.getetag || '\"\"';\n const objects = Object.values(response?.data?.props?.['object-ids'] || []).flat();\n return {\n etag,\n objects,\n };\n};\n/**\n * Set the objects for a tag.\n * Warning: This will overwrite the existing objects.\n * @param tag The tag to set the objects for\n * @param type The type of the objects\n * @param objectIds The objects to set\n * @param etag Strongly recommended to avoid conflict and data loss.\n */\nexport const setTagObjects = async function (tag, type, objectIds, etag = '') {\n const path = `/systemtags/${tag.id}/${type}`;\n let data = `<?xml version=\"1.0\"?>\n\t<d:propertyupdate xmlns:d=\"DAV:\" xmlns:nc=\"http://nextcloud.org/ns\">\n\t\t<d:set>\n\t\t\t<d:prop>\n\t\t\t\t<nc:object-ids>${objectIds.map(({ id, type }) => `<nc:object-id><nc:id>${id}</nc:id><nc:type>${type}</nc:type></nc:object-id>`).join('')}</nc:object-ids>\n\t\t\t</d:prop>\n\t\t</d:set>\n\t</d:propertyupdate>`;\n if (objectIds.length === 0) {\n data = `<?xml version=\"1.0\"?>\n\t\t<d:propertyupdate xmlns:d=\"DAV:\" xmlns:nc=\"http://nextcloud.org/ns\">\n\t\t\t<d:remove>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<nc:object-ids />\n\t\t\t\t</d:prop>\n\t\t\t</d:remove>\n\t\t</d:propertyupdate>`;\n }\n await davClient.customRequest(path, {\n method: 'PROPPATCH',\n data,\n headers: {\n 'if-match': etag,\n },\n });\n};\nexport const updateSystemTagsAdminRestriction = async (isAllowed) => {\n // Convert to string for compatibility\n const isAllowedString = isAllowed ? '1' : '0';\n const url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n appId: 'systemtags',\n key: 'restrict_creation_to_admin',\n });\n await confirmPassword();\n const res = await axios.post(url, {\n value: isAllowedString,\n });\n return res.data;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"427\":\"500e166ace81684ac0f7\",\"640\":\"ce8e671e5f815db1f8e8\",\"3580\":\"6c010e0aed50d3c00035\",\"5771\":\"a4e2a98efcfb7393c5bd\",\"5810\":\"e0ecfcd31fb108c51bfd\"}[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 = 2766;","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\t2766: 0,\n\t5810: 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__(45218)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","rootUrl","generateRemoteUrl","davClient","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","parseTags","tags","map","_ref","props","Object","fromEntries","entries","_ref2","key","value","camelCase","String","parseIdFromLocation","url","queryPos","indexOf","substring","parts","split","result","length","pop","Number","formatTag","initialTag","tag","name","displayName","getNodeSystemTags","node","attribute","attributes","undefined","flat","text","setNodeSystemTags","Vue","getLoggerBuilder","setApp","detectUser","build","DefaultType","DefaultType2","FileAction","_action","constructor","action","this","validateAction","id","title","iconSvgInline","enabled","exec","execBatch","hotkey","order","parent","default","destructive","inline","renderInline","Error","values","includes","description","registerFileAction","window","_nc_fileactions","debug","find","search","error","push","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","debug_1","hasRequiredDebug","constants","hasRequiredConstants","requireDebug","process","env","NODE_DEBUG","test","args","console","requireConstants","MAX_SAFE_INTEGER","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","hasRequiredRe","parseOptions_1","hasRequiredParseOptions","identifiers","hasRequiredIdentifiers","semver","hasRequiredSemver","parse_1","hasRequiredParse","valid_1","hasRequiredValid","major_1","hasRequiredMajor","re","exports","requireSemver","safeRe","re2","t","t2","module","src","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","max","join","makeSafeRegex","index","RegExp","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","options","requireParseOptions","compareIdentifiers","numeric","a2","b2","anum","bnum","rcompareIdentifiers","requireIdentifiers","SemVer","version","includePrerelease","TypeError","m2","trim","match","LOOSE","FULL","raw","major","minor","patch","prerelease","num","format","toString","compare","other","compareMain","comparePre","i2","compareBuild","inc","release","identifier","identifierBase","base","isNaN","parse","throwErrors","er","requireParse","v","requireValid","requireMajor","Navigation","_views","_currentView","register","view","dispatchTypedEvent","CustomEvent","remove","findIndex","splice","setActive","event","detail","active","views","getNavigation","_nc_navigation","Column","_column","column","isValidColumn","render","sort","summary","hasRequiredSax","sax$1","sax","sax2","parser","strict","opt","SAXParser","SAXStream","createStream","MAX_BUFFER_LENGTH","Stream","buffers","l2","clearBuffers","q","c","bufferCheckPosition","lowercase","lowercasetags","looseCase","closed","closedRoot","sawRoot","noscript","state","S","BEGIN","strictEntities","ENTITIES","create","XML_ENTITIES","attribList","xmlns","ns","rootNS","unquotedAttributeValues","trackPosition","position","line","emit2","EVENTS","o","F2","keys","end","write","chunk","c2","charAt","BEGIN_WHITESPACE","beginWhiteSpace","TEXT","starti","textNode","isWhitespace","strictFail","TEXT_ENTITY","OPEN_WAKA","startTagPosition","SCRIPT","SCRIPT_ENDING","script","CLOSE_TAG","SGML_DECL","sgmlDecl","isMatch","nameStart","OPEN_TAG","tagName","PROC_INST","procInstName","procInstBody","pad","Array","COMMENT","comment","doctype","DOCTYPE_DTD","toUpperCase","CDATA","emitNode","cdata","DOCTYPE","isQuote","SGML_DECL_QUOTED","DOCTYPE_QUOTED","DOCTYPE_DTD_QUOTED","COMMENT_ENDING","COMMENT_ENDED","textopts","CDATA_ENDING","CDATA_ENDING_2","PROC_INST_ENDING","PROC_INST_BODY","body","nameBody","newTag","openTag","OPEN_TAG_SLASH","ATTRIB","closeTag","attribName","attribValue","ATTRIB_NAME","ATTRIB_VALUE","attrib","ATTRIB_NAME_SAW_WHITE","ATTRIB_VALUE_QUOTED","ATTRIB_VALUE_UNQUOTED","ATTRIB_VALUE_ENTITY_Q","ATTRIB_VALUE_CLOSED","isAttribEnd","ATTRIB_VALUE_ENTITY_U","CLOSE_TAG_SAW_WHITE","notMatch","returnState","buffer","parsedEntity","parseEntity","unparsedEntities","entity","entityBody","entityStart","maxAllowed","Math","maxActual","len","closeText","checkBufferLength","resume","close","flush","require","ex","streamWraps","filter","ev","apply","_parser","writable","readable","me","onend","emit","onerror","_decoder","forEach","defineProperty","get","set","h2","removeAllListeners","on","enumerable","configurable","data","Buffer","isBuffer","SD","handler","arguments","XML_NAMESPACE","XMLNS_NAMESPACE","xml","regex","stringFromCharCode","floor","fromCodePoint","s2","STATE","COMMENT_STARTING","e2","s3","fromCharCode","nodeType","normalize","replace","message","qname","qualName","prefix","local","qn","selfClosing","uri","JSON","stringify","p2","nv","isSelfClosing","toLowerCase","closeTo","n2","entityLC","numStr","slice","parseInt","highSurrogate","lowSurrogate","codeUnits","codePoint","isFinite","RangeError","namespaceMapping","ext","mime","rootNameMapping","rss","svg","XmlTextDetector","firstTag","onEnd","nesting","startsWith","fileType","onopentag","fullScan","onclosetag","isValid","View","_view","isValidView","caption","emptyTitle","emptyCaption","getContents","hidden","icon","params","columns","emptyView","sticky","expanded","defaultSortKey","loadChildViews","string","xmlTextDetector","isSvg","InvalidFilenameErrorReason","InvalidFilenameErrorReason2","InvalidFilenameError","super","reason","segment","filename","cause","validateFilename","capabilities","files","forbiddenCharacters","forbidden_filename_characters","_oc_config","forbidden_filenames_characters","character","toLocaleLowerCase","forbidden_filenames","endOfBasename","basename2","forbidden_filename_basenames","forbiddenFilenameExtensions","forbidden_filename_extensions","extension","endsWith","humanList","humanListBinary","formatFileSize","size","skipSmallSizes","binaryPrefixes","base1000","log","min","readableFormat","relativeSize","pow","toFixed","parseFloat","toLocaleString","Date","toISOString","sortNodes","nodes","sortingOptions","sortingMode","sortingOrder","collection","identifiers2","orders","sorting","_","collator","Intl","Collator","usage","orderBy","sortFavoritesFirst","favorite","sortFoldersFirst","type","displayname","basename","lastIndexOf","async","response","Promise","resolve","spawnDialog","defineAsyncComponent","status","fill","TagMultipleSvg","isPublicShare","some","isDavResource","permissions","Permission","UPDATE","useActiveStore","defineStore","activeAction","ref","activeFolder","activeNode","activeView","onDeletedNode","source","onChangedView","logger","navigation","subscribe","addEventListener","initialize","rootPath","client","davGetClient","resultToNode","davResultToNode","formatReportPayload","tagId","getDavNameSpaces","getDavProperties","tagToNode","Folder","davRemoteURL","owner","getCurrentUser","uid","root","READ","systemTagsViewId","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","cache","renderTag","isMore","tagElement","document","createElement","classList","add","setAttribute","textContent","cachedTag","color","mainBackgroundColor","getComputedStyle","getPropertyValue","isDarkModeEnabled","primaryElement","elementColor","style","setProperty","systemTagsElement","fileid","fetchTags","append","moreTagElement","then","systemTagsHtml","querySelectorAll","element","replaceWith","updateSystemTagsColorAttribute","FileType","dir","dirname","path","OCP","Files","Router","goToRoute","openfile","HIDDEN","registerDavProperty","bulkSystemTagsAction","inlineSystemTagsAction","openInFilesAction","svgTagMultiple","tagsCache","userVisible","folder","NONE","contents","getDirectoryContents","davRootPath","details","headers","method","useHotKey","activeStore","_nc_files_pinia","createPinia","currentDir","query","currentNode","currentView","NodeStatus","LOADING","success","showSuccess","showError","executeAction","manageTagAction","stop","prevent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","reverseNames","hasOwn","cs","to","clamp","number_","hexDouble","string_","round","model","hsl","hwb","rgb","i","hexAlpha","alpha","hex","rgba","percent","r","g","b","hsla","hwba","a","keyword","reverseKeywords","convert","channels","labels","hsv","cmyk","xyz","lab","lch","ansi16","ansi256","hcg","apple","LAB_FT","from","wrapConversion","toModel","graph","fn","conversions","cur","unshift","conversion","delta","h","s","l","rdif","gdif","bdif","diff","diffc","w","k","reversed","currentClosestKeyword","currentClosestDistance","POSITIVE_INFINITY","distance","y","z","t3","t1","smin","lmin","hi","f","p","vmin","sl","wh","bl","ratio","n","m","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","saturation","ansi","mult","trunc","rem","colorString","char","integer","chroma","hue","pure","mg","fromModel","models","buildGraph","queue","current","adjacents","adjacent","deriveBFS","wrapRaw","wrappedFn","arg0","wrapRounded","routes","routeModels","skippedModels","hashedModelKeys","limiters","object","valpha","newArray","zeroArray","hashedKeys","limit","toJSON","places","self","arguments_","percentString","array","unitArray","unitObject","roundToPlace","getset","maxfn","saturationl","lightness","saturationv","wblack","hexa","rgbArray","alphaHex","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","isDark","isLight","negate","lighten","darken","saturate","desaturate","whiten","blacken","grayscale","fade","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","isArray","number","roundTo","channel","modifier","darkModePreference","matchMedia","matches","darkModeSetting","getAttribute","invertTextColor","colorContrast","backgroundColor","brightBackground","calculateLuma","isBrightColor","blurredBackground","Color","minContrast","highContrastPreference","highContrastSetting","isHighContrastModeEnabled","iteration","epsilon","hexToHSL","hslToHex","hexToRGB","luminance1","luminance2","___CSS_LOADER_EXPORT___","fetchTagsPayload","glob","fetchTag","stat","createTag","tagToPost","customRequest","contentLocation","updateTag","userAssignable","getTagObjects","etag","getetag","objects","setTagObjects","objectIds","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","getter","d","definition","e","chunkId","all","reduce","promises","u","globalThis","Function","obj","prop","done","needAttach","scripts","getElementsByTagName","charset","timeout","nc","onScriptComplete","prev","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","baseURI","href","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file |