{"version":3,"file":"717-717.js?v=c7b61937e31b7fb31d87","mappings":"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","sources":["webpack:///nextcloud/node_modules/@nextcloud/password-confirmation/node_modules/eventemitter3/index.js","webpack:///nextcloud/node_modules/@nextcloud/password-confirmation/node_modules/@vueuse/shared/index.mjs","webpack:///nextcloud/node_modules/@nextcloud/password-confirmation/node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.mjs","webpack:///nextcloud/node_modules/@nextcloud/password-confirmation/node_modules/p-timeout/index.js","webpack:///nextcloud/node_modules/@nextcloud/password-confirmation/node_modules/p-queue/dist/priority-queue.js","webpack:///nextcloud/node_modules/@nextcloud/password-confirmation/node_modules/p-queue/dist/lower-bound.js","webpack:///nextcloud/node_modules/@nextcloud/password-confirmation/node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-CSmrMOEO.mjs","webpack:///nextcloud/node_modules/@nextcloud/password-confirmation/node_modules/p-queue/dist/index.js","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/index.mjs"],"sourcesContent":["'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, inject, provide, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get(v);\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n const defaultValue = options == null ? void 0 : options.defaultValue;\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key, defaultValue);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!scope) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?\\d+\\.?\\d*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n if (stop)\n stop();\n else\n nextTick(() => stop == null ? void 0 : stop());\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n if (stop)\n stop();\n else\n nextTick(() => stop == null ? void 0 : stop());\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, typeof args[0] === \"function\" ? toValue(args[0]()) : toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n if (isActive.value)\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n const stop = watch(\n source,\n (v, ov, onInvalidate) => {\n if (v) {\n if (options == null ? void 0 : options.once)\n nextTick(() => stop());\n cb(v, ov, onInvalidate);\n }\n },\n {\n ...options,\n once: false\n }\n );\n return stop;\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import Vue from 'vue'\nimport { getCurrentInstance } from 'vue'\n\nvar isVue2 = true\nvar isVue3 = false\nvar Vue2 = Vue\nvar warn = Vue.util.warn\n\nfunction install() {}\n\n// createApp polyfill\nexport function createApp(rootComponent, rootProps) {\n var vm\n var provide = {}\n var app = {\n config: Vue.config,\n use: Vue.use.bind(Vue),\n mixin: Vue.mixin.bind(Vue),\n component: Vue.component.bind(Vue),\n provide: function (key, value) {\n provide[key] = value\n return this\n },\n directive: function (name, dir) {\n if (dir) {\n Vue.directive(name, dir)\n return app\n } else {\n return Vue.directive(name)\n }\n },\n mount: function (el, hydrating) {\n if (!vm) {\n vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))\n vm.$mount(el, hydrating)\n return vm\n } else {\n return vm\n }\n },\n unmount: function () {\n if (vm) {\n vm.$destroy()\n vm = undefined\n }\n },\n }\n return app\n}\n\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n warn\n}\n\n// Vue 3 components mock\nfunction createMockComponent(name) {\n return {\n setup() {\n throw new Error('[vue-demi] ' + name + ' is not supported in Vue 2. It\\'s provided to avoid compiler errors.')\n }\n }\n}\nexport var Fragment = /*#__PURE__*/ createMockComponent('Fragment')\nexport var Transition = /*#__PURE__*/ createMockComponent('Transition')\nexport var TransitionGroup = /*#__PURE__*/ createMockComponent('TransitionGroup')\nexport var Teleport = /*#__PURE__*/ createMockComponent('Teleport')\nexport var Suspense = /*#__PURE__*/ createMockComponent('Suspense')\nexport var KeepAlive = /*#__PURE__*/ createMockComponent('KeepAlive')\n\nexport * from 'vue'\n\n// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()\nexport function hasInjectionContext() {\n return !!getCurrentInstance()\n}\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined\n\t? new AbortError(errorMessage)\n\t: new DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined\n\t\t? getDOMException('This operation was aborted.')\n\t\t: signal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t} = options;\n\n\tlet timer;\n\tlet abortHandler;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tabortHandler = () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t};\n\n\t\t\tsignal.addEventListener('abort', abortHandler, {once: true});\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tpromise.then(resolve, reject);\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t})();\n\t});\n\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t\tif (abortHandler && options.signal) {\n\t\t\toptions.signal.removeEventListener('abort', abortHandler);\n\t\t}\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","import lowerBound from './lower-bound.js';\nexport default class PriorityQueue {\n #queue = [];\n enqueue(run, options) {\n options = {\n priority: 0,\n ...options,\n };\n const element = {\n priority: options.priority,\n id: options.id,\n run,\n };\n if (this.size === 0 || this.#queue[this.size - 1].priority >= options.priority) {\n this.#queue.push(element);\n return;\n }\n const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n this.#queue.splice(index, 0, element);\n }\n setPriority(id, priority) {\n const index = this.#queue.findIndex((element) => element.id === id);\n if (index === -1) {\n throw new ReferenceError(`No promise function with the id \"${id}\" exists in the queue.`);\n }\n const [item] = this.#queue.splice(index, 1);\n this.enqueue(item.run, { priority, id });\n }\n dequeue() {\n const item = this.#queue.shift();\n return item?.run;\n }\n filter(options) {\n return this.#queue.filter((element) => element.priority === options.priority).map((element) => element.run);\n }\n get size() {\n return this.#queue.length;\n }\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\n","import { ref, onMounted, computed, defineComponent, watchEffect, toRef, onUnmounted, nextTick, shallowRef, watch } from \"vue\";\nimport { a as normalizeComponent, l as showError, t } from \"./_plugin-vue2_normalizer--qmvqNVe.mjs\";\nimport { FileType, formatFileSize, sortNodes, davGetRecentSearch, davResultToNode, davRootPath, davGetDefaultPropfind, davGetClient, getFavoriteNodes } from \"@nextcloud/files\";\nimport { NcCheckboxRadioSwitch, NcDateTime, NcButton, NcActions, NcActionInput, NcBreadcrumbs, NcBreadcrumb, NcIconSvgWrapper, NcSelect, NcTextField, NcDialog, NcEmptyContent } from \"@nextcloud/vue\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { generateUrl } from \"@nextcloud/router\";\nimport { isPublicShare } from \"@nextcloud/sharing/public\";\nimport { toValue } from \"@vueuse/core\";\nimport axios from \"@nextcloud/axios\";\nimport PQueue from \"p-queue\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport { Fragment } from \"vue-frag\";\nimport { mdiFolder, mdiClock, mdiStar } from \"@mdi/js\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { CancelablePromise } from \"cancelable-promise\";\nimport { join } from \"path\";\nconst _sfc_main$k = {\n name: \"FileIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$k = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon file-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$k = [];\nvar __component__$k = /* @__PURE__ */ normalizeComponent(\n _sfc_main$k,\n _sfc_render$k,\n _sfc_staticRenderFns$k,\n false,\n null,\n null\n);\nconst IconFile = __component__$k.exports;\nconst useFilesSettings = () => {\n const filesUserState = loadState(\"files\", \"config\", null);\n const showHiddenFiles = ref(filesUserState?.show_hidden ?? true);\n const sortFavoritesFirst = ref(filesUserState?.sort_favorites_first ?? true);\n const cropImagePreviews = ref(filesUserState?.crop_image_previews ?? true);\n onMounted(async () => {\n if (!isPublicShare()) {\n try {\n const { data } = await axios.get(generateUrl(\"/apps/files/api/v1/configs\"));\n showHiddenFiles.value = data?.data?.show_hidden ?? false;\n sortFavoritesFirst.value = data?.data?.sort_favorites_first ?? true;\n cropImagePreviews.value = data?.data?.crop_image_previews ?? true;\n } catch (error) {\n console.error(\"Could not load files settings\", error);\n showError(t(\"Could not load files settings\"));\n }\n } else {\n console.debug(\"Skip loading files settings - currently on public share\");\n }\n });\n return {\n showHiddenFiles,\n sortFavoritesFirst,\n cropImagePreviews\n };\n};\nconst useFilesViews = (currentView) => {\n const convertOrder = (order2) => order2 === \"asc\" ? \"ascending\" : order2 === \"desc\" ? \"descending\" : \"none\";\n const filesViewsState = loadState(\"files\", \"viewConfigs\", null);\n const filesViewConfig = ref({\n sortBy: filesViewsState?.files?.sorting_mode ?? \"basename\",\n order: convertOrder(filesViewsState?.files?.sorting_direction ?? \"asc\")\n });\n const recentViewConfig = ref({\n sortBy: filesViewsState?.recent?.sorting_mode ?? \"basename\",\n order: convertOrder(filesViewsState?.recent?.sorting_direction ?? \"asc\")\n });\n const favoritesViewConfig = ref({\n sortBy: filesViewsState?.favorites?.sorting_mode ?? \"basename\",\n order: convertOrder(filesViewsState?.favorites?.sorting_direction ?? \"asc\")\n });\n onMounted(async () => {\n if (!isPublicShare()) {\n try {\n const { data } = await axios.get(generateUrl(\"/apps/files/api/v1/views\"));\n filesViewConfig.value = {\n sortBy: data?.data?.files?.sorting_mode ?? \"basename\",\n order: convertOrder(data?.data?.files?.sorting_direction)\n };\n favoritesViewConfig.value = {\n sortBy: data?.data?.favorites?.sorting_mode ?? \"basename\",\n order: convertOrder(data?.data?.favorites?.sorting_direction)\n };\n recentViewConfig.value = {\n sortBy: data?.data?.recent?.sorting_mode ?? \"basename\",\n order: convertOrder(data?.data?.recent?.sorting_direction)\n };\n } catch (error) {\n console.error(\"Could not load files views\", error);\n showError(t(\"Could not load files views\"));\n }\n } else {\n console.debug(\"Skip loading files views - currently on public share\");\n }\n });\n const currentConfig = computed(() => toValue(currentView || \"files\") === \"files\" ? filesViewConfig.value : toValue(currentView) === \"recent\" ? recentViewConfig.value : favoritesViewConfig.value);\n const sortBy = computed(() => currentConfig.value.sortBy);\n const order = computed(() => currentConfig.value.order);\n return {\n filesViewConfig,\n favoritesViewConfig,\n recentViewConfig,\n currentConfig,\n sortBy,\n order\n };\n};\nconst _sfc_main$j = {\n name: \"MenuUpIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$j = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon menu-up-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M7,15L12,10L17,15H7Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$j = [];\nvar __component__$j = /* @__PURE__ */ normalizeComponent(\n _sfc_main$j,\n _sfc_render$j,\n _sfc_staticRenderFns$j,\n false,\n null,\n null\n);\nconst IconSortAscending = __component__$j.exports;\nconst _sfc_main$i = {\n name: \"MenuDownIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$i = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon menu-down-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M7,10L12,15L17,10H7Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$i = [];\nvar __component__$i = /* @__PURE__ */ normalizeComponent(\n _sfc_main$i,\n _sfc_render$i,\n _sfc_staticRenderFns$i,\n false,\n null,\n null\n);\nconst IconSortDescending = __component__$i.exports;\nconst fileListIconStylesModule = {\n \"file-picker__file-icon\": \"_file-picker__file-icon_19mjt_9\"\n};\nconst _sfc_main$h = /* @__PURE__ */ defineComponent({\n __name: \"LoadingTableRow\",\n props: {\n showCheckbox: { type: Boolean }\n },\n setup(__props) {\n return { __sfc: true, fileListIconStyles: fileListIconStylesModule };\n }\n});\nvar _sfc_render$h = function render4() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(\"tr\", { staticClass: \"file-picker__row loading-row\", attrs: { \"aria-hidden\": \"true\" } }, [_vm.showCheckbox ? _c(\"td\", { staticClass: \"row-checkbox\" }, [_c(\"span\")]) : _vm._e(), _c(\"td\", { staticClass: \"row-name\" }, [_c(\"div\", { staticClass: \"row-wrapper\" }, [_c(\"span\", { class: _setup.fileListIconStyles[\"file-picker__file-icon\"] }), _c(\"span\")])]), _vm._m(0), _vm._m(1)]);\n};\nvar _sfc_staticRenderFns$h = [function() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"td\", { staticClass: \"row-size\" }, [_c(\"span\")]);\n}, function() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"td\", { staticClass: \"row-modified\" }, [_c(\"span\")]);\n}];\nvar __component__$h = /* @__PURE__ */ normalizeComponent(\n _sfc_main$h,\n _sfc_render$h,\n _sfc_staticRenderFns$h,\n false,\n null,\n \"15187afc\"\n);\nconst LoadingTableRow = __component__$h.exports;\nconst queue = new PQueue({ concurrency: 5 });\nfunction preloadImage(url) {\n const { resolve, promise } = Promise.withResolvers();\n queue.add(() => {\n const image = new Image();\n image.onerror = () => resolve(false);\n image.onload = () => resolve(true);\n image.src = url;\n return promise;\n });\n return promise;\n}\nfunction getPreviewURL(node, options = {}) {\n options = { size: 32, cropPreview: false, mimeFallback: true, ...options };\n try {\n const previewUrl = node.attributes?.previewUrl || generateUrl(\"/core/preview?fileId={fileid}\", {\n fileid: node.fileid\n });\n let url;\n try {\n url = new URL(previewUrl);\n } catch (e) {\n url = new URL(previewUrl, window.location.origin);\n }\n url.searchParams.set(\"x\", `${options.size}`);\n url.searchParams.set(\"y\", `${options.size}`);\n url.searchParams.set(\"mimeFallback\", `${options.mimeFallback}`);\n url.searchParams.set(\"a\", options.cropPreview === true ? \"0\" : \"1\");\n url.searchParams.set(\"c\", `${node.attributes.etag}`);\n return url;\n } catch (e) {\n return null;\n }\n}\nconst usePreviewURL = (node, options) => {\n const previewURL = ref(null);\n const previewLoaded = ref(false);\n watchEffect(() => {\n previewLoaded.value = false;\n previewURL.value = getPreviewURL(toValue(node), toValue(options || {}));\n if (previewURL.value) {\n preloadImage(previewURL.value.href).then((success) => {\n previewLoaded.value = success;\n });\n }\n });\n return {\n previewURL,\n previewLoaded\n };\n};\nconst _sfc_main$g = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$g = function render5() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon folder-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$g = [];\nvar __component__$g = /* @__PURE__ */ normalizeComponent(\n _sfc_main$g,\n _sfc_render$g,\n _sfc_staticRenderFns$g,\n false,\n null,\n null\n);\nconst IconFolder = __component__$g.exports;\nconst _sfc_main$f = {\n name: \"LockIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$f = function render6() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon lock-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$f = [];\nvar __component__$f = /* @__PURE__ */ normalizeComponent(\n _sfc_main$f,\n _sfc_render$f,\n _sfc_staticRenderFns$f,\n false,\n null,\n null\n);\nconst LockIcon = __component__$f.exports;\nconst _sfc_main$e = {\n name: \"TagIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$e = function render7() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon tag-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$e = [];\nvar __component__$e = /* @__PURE__ */ normalizeComponent(\n _sfc_main$e,\n _sfc_render$e,\n _sfc_staticRenderFns$e,\n false,\n null,\n null\n);\nconst TagIcon = __component__$e.exports;\nconst _sfc_main$d = {\n name: \"LinkIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$d = function render8() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon link-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M3.9,12C3.9,10.29 5.29,8.9 7,8.9H11V7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H11V15.1H7C5.29,15.1 3.9,13.71 3.9,12M8,13H16V11H8V13M17,7H13V8.9H17C18.71,8.9 20.1,10.29 20.1,12C20.1,13.71 18.71,15.1 17,15.1H13V17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$d = [];\nvar __component__$d = /* @__PURE__ */ normalizeComponent(\n _sfc_main$d,\n _sfc_render$d,\n _sfc_staticRenderFns$d,\n false,\n null,\n null\n);\nconst LinkIcon = __component__$d.exports;\nconst _sfc_main$c = {\n name: \"AccountPlusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$c = function render9() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon account-plus-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$c = [];\nvar __component__$c = /* @__PURE__ */ normalizeComponent(\n _sfc_main$c,\n _sfc_render$c,\n _sfc_staticRenderFns$c,\n false,\n null,\n null\n);\nconst AccountPlusIcon = __component__$c.exports;\nconst _sfc_main$b = {\n name: \"NetworkIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$b = function render10() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon network-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$b = [];\nvar __component__$b = /* @__PURE__ */ normalizeComponent(\n _sfc_main$b,\n _sfc_render$b,\n _sfc_staticRenderFns$b,\n false,\n null,\n null\n);\nconst NetworkIcon = __component__$b.exports;\nconst _sfc_main$a = {\n name: \"AccountGroupIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$a = function render11() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon account-group-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$a = [];\nvar __component__$a = /* @__PURE__ */ normalizeComponent(\n _sfc_main$a,\n _sfc_render$a,\n _sfc_staticRenderFns$a,\n false,\n null,\n null\n);\nconst AccountGroupIcon = __component__$a.exports;\nconst __default__$1 = {\n name: \"FilePreview\"\n};\nconst _sfc_main$9 = /* @__PURE__ */ defineComponent({\n ...__default__$1,\n props: {\n node: null,\n cropImagePreviews: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const fileListIconStyles = ref(fileListIconStylesModule);\n const {\n previewURL,\n previewLoaded\n } = usePreviewURL(toRef(props, \"node\"), computed(() => ({ cropPreview: props.cropImagePreviews })));\n const isFile = computed(() => props.node.type === FileType.File);\n const folderDecorationIcon = computed(() => {\n if (props.node.type !== FileType.Folder) {\n return null;\n }\n if (props.node.attributes?.[\"is-encrypted\"] === 1) {\n return LockIcon;\n }\n if (props.node.attributes?.[\"is-tag\"]) {\n return TagIcon;\n }\n const shareTypes = Object.values(props.node.attributes?.[\"share-types\"] || {}).flat();\n if (shareTypes.some((type) => type === ShareType.Link || type === ShareType.Email)) {\n return LinkIcon;\n }\n if (shareTypes.length > 0) {\n return AccountPlusIcon;\n }\n switch (props.node.attributes?.[\"mount-type\"]) {\n case \"external\":\n case \"external-session\":\n return NetworkIcon;\n case \"group\":\n return AccountGroupIcon;\n case \"shared\":\n return AccountPlusIcon;\n }\n return null;\n });\n return { __sfc: true, fileListIconStyles, props, previewURL, previewLoaded, isFile, folderDecorationIcon, IconFile, IconFolder };\n }\n});\nvar _sfc_render$9 = function render12() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(\"div\", { class: _setup.fileListIconStyles[\"file-picker__file-icon\"], style: _setup.previewLoaded ? { backgroundImage: `url(${_setup.previewURL})` } : void 0 }, [!_setup.previewLoaded ? [_setup.isFile ? _c(_setup.IconFile, { attrs: { \"size\": 20 } }) : _setup.folderDecorationIcon ? _c(_setup.folderDecorationIcon, { tag: \"component\" }) : _c(_setup.IconFolder, { attrs: { \"size\": 20 } })] : _vm._e()], 2);\n};\nvar _sfc_staticRenderFns$9 = [];\nvar __component__$9 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$9,\n _sfc_render$9,\n _sfc_staticRenderFns$9,\n false,\n null,\n null\n);\nconst FilePreview = __component__$9.exports;\nconst _sfc_main$8 = /* @__PURE__ */ defineComponent({\n __name: \"FileListRow\",\n props: {\n allowPickDirectory: { type: Boolean },\n selected: { type: Boolean },\n showCheckbox: { type: Boolean },\n canPick: { type: Boolean },\n node: null,\n cropImagePreviews: { type: Boolean }\n },\n emits: [\"update:selected\", \"enter-directory\"],\n setup(__props, { emit: emit2 }) {\n const props = __props;\n const displayName = computed(() => props.node.attributes?.displayName || props.node.basename.slice(0, props.node.extension ? -props.node.extension.length : void 0));\n const fileExtension = computed(() => props.node.extension);\n const isDirectory = computed(() => props.node.type === FileType.Folder);\n const isPickable = computed(() => props.canPick && (props.allowPickDirectory || !isDirectory.value));\n function toggleSelected() {\n emit2(\"update:selected\", !props.selected);\n }\n function handleClick() {\n if (isDirectory.value) {\n emit2(\"enter-directory\", props.node);\n } else {\n toggleSelected();\n }\n }\n function handleKeyDown(event) {\n if (event.key === \"Enter\") {\n handleClick();\n }\n }\n return { __sfc: true, props, emit: emit2, displayName, fileExtension, isDirectory, isPickable, toggleSelected, handleClick, handleKeyDown, formatFileSize, NcCheckboxRadioSwitch, NcDateTime, t, FilePreview };\n }\n});\nvar _sfc_render$8 = function render13() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(\"tr\", _vm._g({ class: [\"file-picker__row\", {\n \"file-picker__row--selected\": _vm.selected && !_vm.showCheckbox\n }], attrs: { \"tabindex\": _vm.showCheckbox && !_setup.isDirectory ? void 0 : 0, \"aria-selected\": !_setup.isPickable ? void 0 : _vm.selected, \"data-filename\": _vm.node.basename, \"data-testid\": \"file-list-row\" } }, {\n click: _setup.handleClick,\n /* same as tabindex -> if we hide the checkbox or this is a directory we need keyboard access to enter the directory or select the node */\n ...!_vm.showCheckbox || _setup.isDirectory ? { keydown: _setup.handleKeyDown } : {}\n }), [_vm.showCheckbox ? _c(\"td\", { staticClass: \"row-checkbox\", on: { \"click\": function($event) {\n $event.stopPropagation();\n return (() => {\n }).apply(null, arguments);\n } } }, [_c(_setup.NcCheckboxRadioSwitch, { attrs: { \"aria-label\": _setup.t(\"Select the row for {nodename}\", { nodename: _setup.displayName }), \"checked\": _vm.selected, \"disabled\": !_setup.isPickable, \"data-testid\": \"row-checkbox\" }, on: { \"update:checked\": _setup.toggleSelected } })], 1) : _vm._e(), _c(\"td\", { staticClass: \"row-name\" }, [_c(\"div\", { staticClass: \"file-picker__name-container\", attrs: { \"data-testid\": \"row-name\" } }, [_c(_setup.FilePreview, { attrs: { \"node\": _vm.node, \"crop-image-previews\": _vm.cropImagePreviews } }), _c(\"div\", { staticClass: \"file-picker__file-name\", attrs: { \"title\": _setup.displayName }, domProps: { \"textContent\": _vm._s(_setup.displayName) } }), _c(\"div\", { staticClass: \"file-picker__file-extension\", domProps: { \"textContent\": _vm._s(_setup.fileExtension) } })], 1)]), _c(\"td\", { staticClass: \"row-size\" }, [_vm._v(\" \" + _vm._s(_setup.formatFileSize(_vm.node.size || 0)) + \" \")]), _c(\"td\", { staticClass: \"row-modified\" }, [_c(_setup.NcDateTime, { attrs: { \"timestamp\": _vm.node.mtime, \"ignore-seconds\": true } })], 1)]);\n};\nvar _sfc_staticRenderFns$8 = [];\nvar __component__$8 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$8,\n _sfc_render$8,\n _sfc_staticRenderFns$8,\n false,\n null,\n \"cb12dccb\"\n);\nconst FileListRow = __component__$8.exports;\nconst _sfc_main$7 = /* @__PURE__ */ defineComponent({\n __name: \"FileList\",\n props: {\n currentView: null,\n multiselect: { type: Boolean },\n allowPickDirectory: { type: Boolean },\n loading: { type: Boolean },\n files: null,\n selectedFiles: null,\n path: null\n },\n emits: [\"update:path\", \"update:selectedFiles\"],\n setup(__props, { emit: emit2 }) {\n const props = __props;\n const customSortingConfig = ref();\n const { currentConfig: filesAppSorting } = useFilesViews(props.currentView);\n const sortingConfig = computed(() => customSortingConfig.value ?? filesAppSorting.value);\n const sortByName = computed(() => sortingConfig.value.sortBy === \"basename\" ? sortingConfig.value.order === \"none\" ? void 0 : sortingConfig.value.order : void 0);\n const sortBySize = computed(() => sortingConfig.value.sortBy === \"size\" ? sortingConfig.value.order === \"none\" ? void 0 : sortingConfig.value.order : void 0);\n const sortByModified = computed(() => sortingConfig.value.sortBy === \"mtime\" ? sortingConfig.value.order === \"none\" ? void 0 : sortingConfig.value.order : void 0);\n const toggleSorting = (sortBy) => {\n if (sortingConfig.value.sortBy === sortBy) {\n if (sortingConfig.value.order === \"ascending\") {\n customSortingConfig.value = { sortBy: sortingConfig.value.sortBy, order: \"descending\" };\n } else {\n customSortingConfig.value = { sortBy: sortingConfig.value.sortBy, order: \"ascending\" };\n }\n } else {\n customSortingConfig.value = { sortBy, order: \"ascending\" };\n }\n };\n const { sortFavoritesFirst, cropImagePreviews } = useFilesSettings();\n const sortedFiles = computed(() => {\n return sortNodes(props.files, {\n sortFoldersFirst: true,\n sortFavoritesFirst: sortFavoritesFirst.value,\n sortingOrder: sortingConfig.value.order === \"descending\" ? \"desc\" : \"asc\",\n sortingMode: sortingConfig.value.sortBy\n });\n });\n const selectableFiles = computed(() => props.files.filter((file) => props.allowPickDirectory || file.type !== FileType.Folder));\n const allSelected = computed(() => !props.loading && props.selectedFiles.length > 0 && props.selectedFiles.length >= selectableFiles.value.length);\n function onSelectAll() {\n if (props.selectedFiles.length < selectableFiles.value.length) {\n emit2(\"update:selectedFiles\", selectableFiles.value);\n } else {\n emit2(\"update:selectedFiles\", []);\n }\n }\n function onNodeSelected(file) {\n if (props.selectedFiles.includes(file)) {\n emit2(\"update:selectedFiles\", props.selectedFiles.filter((f) => f.path !== file.path));\n } else {\n if (props.multiselect) {\n emit2(\"update:selectedFiles\", [...props.selectedFiles, file]);\n } else {\n emit2(\"update:selectedFiles\", [file]);\n }\n }\n }\n function onChangeDirectory(dir) {\n emit2(\"update:path\", dir.path);\n }\n const skeletonNumber = ref(4);\n const fileContainer = ref();\n {\n const resize = () => nextTick(() => {\n const nodes = fileContainer.value?.parentElement?.children || [];\n let height = fileContainer.value?.parentElement?.clientHeight || 450;\n for (let index = 0; index < nodes.length; index++) {\n if (!fileContainer.value?.isSameNode(nodes[index])) {\n height -= nodes[index].clientHeight;\n }\n }\n skeletonNumber.value = Math.max(1, Math.floor((height - 50) / 50));\n });\n onMounted(() => {\n window.addEventListener(\"resize\", resize);\n resize();\n });\n onUnmounted(() => {\n window.removeEventListener(\"resize\", resize);\n });\n }\n return { __sfc: true, props, emit: emit2, customSortingConfig, filesAppSorting, sortingConfig, sortByName, sortBySize, sortByModified, toggleSorting, sortFavoritesFirst, cropImagePreviews, sortedFiles, selectableFiles, allSelected, onSelectAll, onNodeSelected, onChangeDirectory, skeletonNumber, fileContainer, NcButton, NcCheckboxRadioSwitch, t, IconSortAscending, IconSortDescending, LoadingTableRow, FileListRow };\n }\n});\nvar _sfc_render$7 = function render14() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(\"div\", { ref: \"fileContainer\", staticClass: \"file-picker__files\" }, [_c(\"table\", [_c(\"thead\", [_c(\"tr\", [_vm.multiselect ? _c(\"th\", { staticClass: \"row-checkbox\" }, [_c(\"span\", { staticClass: \"hidden-visually\" }, [_vm._v(\" \" + _vm._s(_setup.t(\"Select entry\")) + \" \")]), _vm.multiselect ? _c(_setup.NcCheckboxRadioSwitch, { attrs: { \"aria-label\": _setup.t(\"Select all entries\"), \"checked\": _setup.allSelected, \"data-testid\": \"select-all-checkbox\" }, on: { \"update:checked\": _setup.onSelectAll } }) : _vm._e()], 1) : _vm._e(), _c(\"th\", { staticClass: \"row-name\", attrs: { \"aria-sort\": _setup.sortByName } }, [_c(\"div\", { staticClass: \"header-wrapper\" }, [_c(\"span\", { staticClass: \"file-picker__header-preview\" }), _c(_setup.NcButton, { attrs: { \"wide\": true, \"type\": \"tertiary\", \"data-test\": \"file-picker_sort-name\" }, on: { \"click\": function($event) {\n return _setup.toggleSorting(\"basename\");\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_setup.sortByName === \"ascending\" ? _c(_setup.IconSortAscending, { attrs: { \"size\": 20 } }) : _setup.sortByName === \"descending\" ? _c(_setup.IconSortDescending, { attrs: { \"size\": 20 } }) : _c(\"span\", { staticStyle: { \"width\": \"44px\" } })];\n }, proxy: true }]) }, [_vm._v(\" \" + _vm._s(_setup.t(\"Name\")) + \" \")])], 1)]), _c(\"th\", { staticClass: \"row-size\", attrs: { \"aria-sort\": _setup.sortBySize } }, [_c(_setup.NcButton, { attrs: { \"wide\": true, \"type\": \"tertiary\" }, on: { \"click\": function($event) {\n return _setup.toggleSorting(\"size\");\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_setup.sortBySize === \"ascending\" ? _c(_setup.IconSortAscending, { attrs: { \"size\": 20 } }) : _setup.sortBySize === \"descending\" ? _c(_setup.IconSortDescending, { attrs: { \"size\": 20 } }) : _c(\"span\", { staticStyle: { \"width\": \"44px\" } })];\n }, proxy: true }]) }, [_vm._v(\" \" + _vm._s(_setup.t(\"Size\")) + \" \")])], 1), _c(\"th\", { staticClass: \"row-modified\", attrs: { \"aria-sort\": _setup.sortByModified } }, [_c(_setup.NcButton, { attrs: { \"wide\": true, \"type\": \"tertiary\" }, on: { \"click\": function($event) {\n return _setup.toggleSorting(\"mtime\");\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_setup.sortByModified === \"ascending\" ? _c(_setup.IconSortAscending, { attrs: { \"size\": 20 } }) : _setup.sortByModified === \"descending\" ? _c(_setup.IconSortDescending, { attrs: { \"size\": 20 } }) : _c(\"span\", { staticStyle: { \"width\": \"44px\" } })];\n }, proxy: true }]) }, [_vm._v(\" \" + _vm._s(_setup.t(\"Modified\")) + \" \")])], 1)])]), _c(\"tbody\", [_vm.loading ? _vm._l(_setup.skeletonNumber, function(index) {\n return _c(_setup.LoadingTableRow, { key: index, attrs: { \"show-checkbox\": _vm.multiselect } });\n }) : _vm._l(_setup.sortedFiles, function(file) {\n return _c(_setup.FileListRow, { key: file.fileid || file.path, attrs: { \"allow-pick-directory\": _vm.allowPickDirectory, \"show-checkbox\": _vm.multiselect, \"can-pick\": _vm.multiselect || _vm.selectedFiles.length === 0 || _vm.selectedFiles.includes(file), \"selected\": _vm.selectedFiles.includes(file), \"node\": file, \"crop-image-previews\": _setup.cropImagePreviews }, on: { \"update:selected\": function($event) {\n return _setup.onNodeSelected(file);\n }, \"enter-directory\": _setup.onChangeDirectory } });\n })], 2)])]);\n};\nvar _sfc_staticRenderFns$7 = [];\nvar __component__$7 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$7,\n _sfc_render$7,\n _sfc_staticRenderFns$7,\n false,\n null,\n \"006fdbd0\"\n);\nconst FileList = __component__$7.exports;\nconst _sfc_main$6 = {\n name: \"HomeIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$6 = function render15() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon home-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$6 = [];\nvar __component__$6 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$6,\n _sfc_render$6,\n _sfc_staticRenderFns$6,\n false,\n null,\n null\n);\nconst IconHome = __component__$6.exports;\nconst _sfc_main$5 = {\n name: \"PlusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$5 = function render16() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon plus-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$5 = [];\nvar __component__$5 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$5,\n _sfc_render$5,\n _sfc_staticRenderFns$5,\n false,\n null,\n null\n);\nconst IconPlus = __component__$5.exports;\nconst _sfc_main$4 = /* @__PURE__ */ defineComponent({\n __name: \"FilePickerBreadcrumbs\",\n props: {\n path: null,\n showMenu: { type: Boolean }\n },\n emits: [\"update:path\", \"create-node\"],\n setup(__props, { emit: emit2 }) {\n const props = __props;\n const actionsOpen = ref(false);\n const newNodeName = ref(\"\");\n const nameInput = ref();\n function validateInput() {\n const name = newNodeName.value.trim();\n const input = nameInput.value?.$el?.querySelector(\"input\");\n let validity = \"\";\n if (name.length === 0) {\n validity = t(\"Folder name cannot be empty.\");\n } else if (name.includes(\"/\")) {\n validity = t('\"/\" is not allowed inside a folder name.');\n } else if ([\"..\", \".\"].includes(name)) {\n validity = t('\"{name}\" is an invalid folder name.', { name });\n } else if (window.OC.config?.blacklist_files_regex && name.match(window.OC.config?.blacklist_files_regex)) {\n validity = t('\"{name}\" is not an allowed folder name', { name });\n }\n if (input) {\n input.setCustomValidity(validity);\n }\n return validity === \"\";\n }\n const onSubmit = function() {\n const name = newNodeName.value.trim();\n if (validateInput()) {\n actionsOpen.value = false;\n emit2(\"create-node\", name);\n newNodeName.value = \"\";\n }\n };\n const pathElements = computed(\n () => props.path.split(\"/\").filter((v) => v !== \"\").map((v, i, elements) => ({\n name: v,\n path: \"/\" + elements.slice(0, i + 1).join(\"/\")\n }))\n );\n return { __sfc: true, props, emit: emit2, actionsOpen, newNodeName, nameInput, validateInput, onSubmit, pathElements, IconFolder, IconHome, IconPlus, NcActions, NcActionInput, NcBreadcrumbs, NcBreadcrumb, t };\n }\n});\nvar _sfc_render$4 = function render17() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(_setup.NcBreadcrumbs, { staticClass: \"file-picker__breadcrumbs\", scopedSlots: _vm._u([{ key: \"default\", fn: function() {\n return [_c(_setup.NcBreadcrumb, { attrs: { \"name\": _setup.t(\"All files\"), \"title\": _setup.t(\"Home\") }, on: { \"click\": function($event) {\n return _setup.emit(\"update:path\", \"/\");\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(_setup.IconHome, { attrs: { \"size\": 20 } })];\n }, proxy: true }]) }), _vm._l(_setup.pathElements, function(dir) {\n return _c(_setup.NcBreadcrumb, { key: dir.path, attrs: { \"name\": dir.name, \"title\": dir.path }, on: { \"click\": function($event) {\n return _setup.emit(\"update:path\", dir.path);\n } } });\n })];\n }, proxy: true }, _vm.showMenu ? { key: \"actions\", fn: function() {\n return [_c(_setup.NcActions, { attrs: { \"aria-label\": _setup.t(\"Create directory\"), \"force-menu\": true, \"force-name\": true, \"menu-name\": _setup.t(\"New\"), \"open\": _setup.actionsOpen, \"type\": \"secondary\" }, on: { \"update:open\": function($event) {\n _setup.actionsOpen = $event;\n }, \"close\": function($event) {\n _setup.newNodeName = \"\";\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(_setup.IconPlus, { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 2971667417) }, [_c(_setup.NcActionInput, { ref: \"nameInput\", attrs: { \"value\": _setup.newNodeName, \"label\": _setup.t(\"New folder\"), \"placeholder\": _setup.t(\"New folder name\") }, on: { \"update:value\": function($event) {\n _setup.newNodeName = $event;\n }, \"submit\": _setup.onSubmit, \"input\": _setup.validateInput }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(_setup.IconFolder, { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1614167509) })], 1)];\n }, proxy: true } : null], null, true) });\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n \"b357227a\"\n);\nconst FilePickerBreadcrumbs = __component__$4.exports;\nconst _sfc_main$3 = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$3 = function render18() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon close-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n null\n);\nconst IconClose = __component__$3.exports;\nconst _sfc_main$2 = {\n name: \"MagnifyIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$2 = function render19() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon magnify-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n null\n);\nconst IconMagnify = __component__$2.exports;\nconst useViews = (isAnonymous) => {\n const allViews = [\n {\n id: \"files\",\n label: t(\"All files\"),\n icon: mdiFolder\n },\n {\n id: \"recent\",\n label: t(\"Recent\"),\n icon: mdiClock\n },\n {\n id: \"favorites\",\n label: t(\"Favorites\"),\n icon: mdiStar\n }\n ];\n const availableViews = isAnonymous.value ? allViews.filter(({ id }) => id === \"files\") : allViews;\n return {\n allViews,\n availableViews\n };\n};\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"FilePickerNavigation\",\n props: {\n currentView: null,\n filterString: null,\n isCollapsed: { type: Boolean },\n disabledNavigation: { type: Boolean }\n },\n emits: [\"update:currentView\", \"update:filterString\"],\n setup(__props, { emit: emit2 }) {\n const props = __props;\n const { availableViews } = useViews(ref(getCurrentUser() === null));\n const currentViewObject = computed(() => availableViews.filter((v) => v.id === props.currentView)[0] ?? availableViews[0]);\n const updateFilterValue = (value) => emit2(\"update:filterString\", value);\n return { __sfc: true, props, emit: emit2, availableViews, currentViewObject, updateFilterValue, IconClose, IconMagnify, NcButton, NcIconSvgWrapper, NcSelect, NcTextField, Fragment, t };\n }\n});\nvar _sfc_render$1 = function render20() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(_setup.Fragment, [_c(_setup.NcTextField, { staticClass: \"file-picker__filter-input\", attrs: { \"value\": _vm.filterString, \"label\": _setup.t(\"Filter file list\"), \"show-trailing-button\": !!_vm.filterString }, on: { \"update:value\": _setup.updateFilterValue, \"trailing-button-click\": function($event) {\n return _setup.updateFilterValue(\"\");\n } }, scopedSlots: _vm._u([{ key: \"trailing-button-icon\", fn: function() {\n return [_c(_setup.IconClose, { attrs: { \"size\": 16 } })];\n }, proxy: true }]) }, [_c(_setup.IconMagnify, { attrs: { \"size\": 16 } })], 1), _setup.availableViews.length > 1 && !_vm.disabledNavigation ? [!_vm.isCollapsed ? _c(\"ul\", { staticClass: \"file-picker__side\" }, _vm._l(_setup.availableViews, function(view) {\n return _c(\"li\", { key: view.id }, [_c(_setup.NcButton, { attrs: { \"type\": _vm.currentView === view.id ? \"primary\" : \"tertiary\", \"wide\": true }, on: { \"click\": function($event) {\n return _vm.$emit(\"update:currentView\", view.id);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(_setup.NcIconSvgWrapper, { attrs: { \"path\": view.icon, \"size\": 20 } })];\n }, proxy: true }], null, true) }, [_vm._v(\" \" + _vm._s(view.label) + \" \")])], 1);\n }), 0) : _c(_setup.NcSelect, { attrs: { \"aria-label\": _setup.t(\"Current view selector\"), \"clearable\": false, \"searchable\": false, \"options\": _setup.availableViews, \"value\": _setup.currentViewObject }, on: { \"input\": (v) => _setup.emit(\"update:currentView\", v.id) } })] : _vm._e()], 2);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"b42054b8\"\n);\nconst FilePickerNavigation = __component__$1.exports;\nfunction getRecentNodes(client) {\n const controller = new AbortController();\n const lastTwoWeek = Math.round(Date.now() / 1e3) - 60 * 60 * 24 * 14;\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const { data } = await client.search(\"/\", {\n signal: controller.signal,\n details: true,\n data: davGetRecentSearch(lastTwoWeek)\n });\n const nodes = data.results.map((result) => davResultToNode(result));\n resolve(nodes);\n } catch (error) {\n reject(error);\n }\n });\n}\nfunction getNodes(client, directoryPath) {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const results = await client.getDirectoryContents(join(davRootPath, directoryPath), {\n signal: controller.signal,\n details: true,\n includeSelf: true,\n data: davGetDefaultPropfind()\n });\n const nodes = results.data.map((result) => davResultToNode(result));\n resolve({\n contents: nodes.filter(({ path }) => path !== directoryPath),\n folder: nodes.find(({ path }) => path === directoryPath)\n });\n } catch (error) {\n reject(error);\n }\n });\n}\nasync function getFile(client, path) {\n const { data } = await client.stat(join(davRootPath, path), {\n details: true,\n data: davGetDefaultPropfind()\n });\n return davResultToNode(data);\n}\nconst useDAVFiles = function(currentView, currentPath) {\n const client = davGetClient();\n const files = shallowRef([]);\n const folder = shallowRef(null);\n const isLoading = ref(true);\n const promise = ref(null);\n async function createDirectory(name) {\n const path = join(currentPath.value, name);\n await client.createDirectory(join(davRootPath, path));\n const directory = await getFile(client, path);\n files.value = [...files.value, directory];\n return directory;\n }\n async function loadDAVFiles() {\n if (promise.value) {\n promise.value.cancel();\n }\n isLoading.value = true;\n if (currentView.value === \"favorites\") {\n promise.value = getFavoriteNodes(client, currentPath.value);\n } else if (currentView.value === \"recent\") {\n promise.value = getRecentNodes(client);\n } else {\n promise.value = getNodes(client, currentPath.value);\n }\n const content = await promise.value;\n if (\"folder\" in content) {\n folder.value = content.folder;\n files.value = content.contents;\n } else {\n folder.value = null;\n files.value = content;\n }\n promise.value = null;\n isLoading.value = false;\n }\n watch([currentView, currentPath], () => loadDAVFiles());\n onMounted(() => loadDAVFiles());\n return {\n isLoading,\n files,\n folder,\n loadFiles: loadDAVFiles,\n createDirectory\n };\n};\nconst useMimeFilter = function(allowedMIMETypes) {\n const splittedTypes = computed(() => allowedMIMETypes.value.map((filter) => filter.split(\"/\")));\n const isSupportedMimeType = (mime) => {\n const mimeTypeArray = mime.split(\"/\");\n return splittedTypes.value.some(\n ([type, subtype]) => (\n // check mime type matches or is wildcard\n (mimeTypeArray[0] === type || type === \"*\") && (mimeTypeArray[1] === subtype || subtype === \"*\")\n )\n );\n };\n return {\n isSupportedMimeType\n };\n};\nconst __default__ = {\n name: \"FilePicker\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: {\n buttons: null,\n name: null,\n allowPickDirectory: { type: Boolean, default: false },\n disabledNavigation: { type: Boolean, default: false },\n container: { default: \"body\" },\n filterFn: { default: void 0 },\n mimetypeFilter: { default: () => [] },\n multiselect: { type: Boolean, default: true },\n path: { default: void 0 }\n },\n emits: [\"close\"],\n setup(__props, { emit: emit$1 }) {\n const props = __props;\n const isOpen = ref(true);\n const dialogButtons = computed(() => {\n const nodes = selectedFiles.value.length === 0 && props.allowPickDirectory && currentFolder.value ? [currentFolder.value] : selectedFiles.value;\n const buttons = typeof props.buttons === \"function\" ? props.buttons(nodes, currentPath.value, currentView.value) : props.buttons;\n return buttons.map((button) => ({\n ...button,\n disabled: button.disabled || isLoading.value,\n callback: () => {\n isHandlingCallback = true;\n handleButtonClick(button.callback, nodes);\n }\n }));\n });\n let isHandlingCallback = false;\n const handleButtonClick = async (callback, nodes) => {\n callback(nodes);\n emit$1(\"close\", nodes);\n isHandlingCallback = false;\n };\n const currentView = ref(\"files\");\n const viewHeadline = computed(() => currentView.value === \"favorites\" ? t(\"Favorites\") : currentView.value === \"recent\" ? t(\"Recent\") : \"\");\n const selectedFiles = shallowRef([]);\n const savedPath = ref(window?.sessionStorage.getItem(\"NC.FilePicker.LastPath\") || \"/\");\n const navigatedPath = ref(\"\");\n watch([navigatedPath], () => {\n if (props.path === void 0 && navigatedPath.value) {\n window.sessionStorage.setItem(\"NC.FilePicker.LastPath\", navigatedPath.value);\n }\n selectedFiles.value = [];\n });\n const currentPath = computed({\n get: () => {\n return currentView.value === \"files\" ? navigatedPath.value || props.path || savedPath.value : \"/\";\n },\n set: (path) => {\n navigatedPath.value = path;\n }\n });\n const filterString = ref(\"\");\n const { isSupportedMimeType } = useMimeFilter(toRef(props, \"mimetypeFilter\"));\n const {\n files,\n folder: currentFolder,\n isLoading,\n loadFiles,\n createDirectory\n } = useDAVFiles(currentView, currentPath);\n onMounted(() => loadFiles());\n const { showHiddenFiles } = useFilesSettings();\n const filteredFiles = computed(() => {\n let filtered = files.value;\n if (!showHiddenFiles.value) {\n filtered = filtered.filter((file) => !file.basename.startsWith(\".\"));\n }\n if (props.mimetypeFilter.length > 0) {\n filtered = filtered.filter((file) => file.type === \"folder\" || file.mime && isSupportedMimeType(file.mime));\n }\n if (filterString.value) {\n filtered = filtered.filter((file) => file.basename.toLowerCase().includes(filterString.value.toLowerCase()));\n }\n if (props.filterFn) {\n filtered = filtered.filter((f) => props.filterFn(f));\n }\n return filtered;\n });\n const noFilesDescription = computed(() => {\n if (currentView.value === \"files\") {\n return t(\"Upload some content or sync with your devices!\");\n } else if (currentView.value === \"recent\") {\n return t(\"Files and folders you recently modified will show up here.\");\n } else {\n return t(\"Files and folders you mark as favorite will show up here.\");\n }\n });\n const onCreateFolder = async (name) => {\n try {\n const folder = await createDirectory(name);\n navigatedPath.value = folder.path;\n emit(\"files:node:created\", files.value.filter((file) => file.basename === name)[0]);\n } catch (error) {\n console.warn(\"Could not create new folder\", { name, error });\n showError(t(\"Could not create the new folder\"));\n }\n };\n const handleClose = (open) => {\n if (!open && !isHandlingCallback) {\n emit$1(\"close\");\n }\n };\n return { __sfc: true, props, emit: emit$1, isOpen, dialogButtons, isHandlingCallback, handleButtonClick, currentView, viewHeadline, selectedFiles, savedPath, navigatedPath, currentPath, filterString, isSupportedMimeType, files, currentFolder, isLoading, loadFiles, createDirectory, showHiddenFiles, filteredFiles, noFilesDescription, onCreateFolder, handleClose, IconFile, FileList, FilePickerBreadcrumbs, FilePickerNavigation, NcDialog, NcEmptyContent, t };\n }\n});\nvar _sfc_render = function render21() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(_setup.NcDialog, { attrs: { \"container\": _vm.container, \"buttons\": _setup.dialogButtons, \"name\": _vm.name, \"size\": \"large\", \"content-classes\": \"file-picker__content\", \"dialog-classes\": \"file-picker\", \"navigation-classes\": \"file-picker__navigation\", \"open\": _setup.isOpen }, on: { \"update:open\": [function($event) {\n _setup.isOpen = $event;\n }, _setup.handleClose] }, scopedSlots: _vm._u([{ key: \"navigation\", fn: function({ isCollapsed }) {\n return [_c(_setup.FilePickerNavigation, { attrs: { \"is-collapsed\": isCollapsed, \"current-view\": _setup.currentView, \"filter-string\": _setup.filterString, \"disabled-navigation\": _vm.disabledNavigation }, on: { \"update:currentView\": function($event) {\n _setup.currentView = $event;\n }, \"update:current-view\": function($event) {\n _setup.currentView = $event;\n }, \"update:filterString\": function($event) {\n _setup.filterString = $event;\n }, \"update:filter-string\": function($event) {\n _setup.filterString = $event;\n } } })];\n } }]) }, [_c(\"div\", { staticClass: \"file-picker__main\" }, [_setup.currentView === \"files\" ? _c(_setup.FilePickerBreadcrumbs, { attrs: { \"path\": _setup.currentPath, \"show-menu\": _vm.allowPickDirectory }, on: { \"update:path\": function($event) {\n _setup.currentPath = $event;\n }, \"create-node\": _setup.onCreateFolder } }) : _c(\"div\", { staticClass: \"file-picker__view\" }, [_c(\"h3\", [_vm._v(_vm._s(_setup.viewHeadline))])]), _setup.isLoading || _setup.filteredFiles.length > 0 ? _c(_setup.FileList, { attrs: { \"allow-pick-directory\": _vm.allowPickDirectory, \"current-view\": _setup.currentView, \"files\": _setup.filteredFiles, \"multiselect\": _vm.multiselect, \"loading\": _setup.isLoading, \"path\": _setup.currentPath, \"selected-files\": _setup.selectedFiles, \"name\": _setup.viewHeadline }, on: { \"update:path\": [function($event) {\n _setup.currentPath = $event;\n }, function($event) {\n _setup.currentView = \"files\";\n }], \"update:selectedFiles\": function($event) {\n _setup.selectedFiles = $event;\n }, \"update:selected-files\": function($event) {\n _setup.selectedFiles = $event;\n } } }) : _setup.filterString ? _c(_setup.NcEmptyContent, { attrs: { \"name\": _setup.t(\"No matching files\"), \"description\": _setup.t(\"No files matching your filter were found.\") }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(_setup.IconFile)];\n }, proxy: true }]) }) : _c(_setup.NcEmptyContent, { attrs: { \"name\": _setup.t(\"No files in here\"), \"description\": _setup.noFilesDescription }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(_setup.IconFile)];\n }, proxy: true }]) })], 1)]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"20b719ba\"\n);\nconst FilePicker = __component__.exports;\nexport {\n FilePicker as default\n};\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout, { TimeoutError } from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n #carryoverConcurrencyCount;\n #isIntervalIgnored;\n #intervalCount = 0;\n #intervalCap;\n #interval;\n #intervalEnd = 0;\n #intervalId;\n #timeoutId;\n #queue;\n #queueClass;\n #pending = 0;\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n #concurrency;\n #isPaused;\n #throwOnTimeout;\n // Use to assign a unique identifier to a promise function, if not explicitly specified\n #idAssigner = 1n;\n /**\n Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.\n\n Applies to each future operation.\n */\n timeout;\n // TODO: The `throwOnTimeout` option should affect the return types of `add()` and `addAll()`\n constructor(options) {\n super();\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverConcurrencyCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n }\n this.#carryoverConcurrencyCount = options.carryoverConcurrencyCount;\n this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n this.#intervalCap = options.intervalCap;\n this.#interval = options.interval;\n this.#queue = new options.queueClass();\n this.#queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n this.timeout = options.timeout;\n this.#throwOnTimeout = options.throwOnTimeout === true;\n this.#isPaused = options.autoStart === false;\n }\n get #doesIntervalAllowAnother() {\n return this.#isIntervalIgnored || this.#intervalCount < this.#intervalCap;\n }\n get #doesConcurrentAllowAnother() {\n return this.#pending < this.#concurrency;\n }\n #next() {\n this.#pending--;\n this.#tryToStartAnother();\n this.emit('next');\n }\n #onResumeInterval() {\n this.#onInterval();\n this.#initializeIntervalIfNeeded();\n this.#timeoutId = undefined;\n }\n get #isIntervalPaused() {\n const now = Date.now();\n if (this.#intervalId === undefined) {\n const delay = this.#intervalEnd - now;\n if (delay < 0) {\n // Act as the interval was done\n // We don't need to resume it here because it will be resumed on line 160\n this.#intervalCount = (this.#carryoverConcurrencyCount) ? this.#pending : 0;\n }\n else {\n // Act as the interval is pending\n if (this.#timeoutId === undefined) {\n this.#timeoutId = setTimeout(() => {\n this.#onResumeInterval();\n }, delay);\n }\n return true;\n }\n }\n return false;\n }\n #tryToStartAnother() {\n if (this.#queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n if (this.#intervalId) {\n clearInterval(this.#intervalId);\n }\n this.#intervalId = undefined;\n this.emit('empty');\n if (this.#pending === 0) {\n this.emit('idle');\n }\n return false;\n }\n if (!this.#isPaused) {\n const canInitializeInterval = !this.#isIntervalPaused;\n if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n const job = this.#queue.dequeue();\n if (!job) {\n return false;\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this.#initializeIntervalIfNeeded();\n }\n return true;\n }\n }\n return false;\n }\n #initializeIntervalIfNeeded() {\n if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n return;\n }\n this.#intervalId = setInterval(() => {\n this.#onInterval();\n }, this.#interval);\n this.#intervalEnd = Date.now() + this.#interval;\n }\n #onInterval() {\n if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n clearInterval(this.#intervalId);\n this.#intervalId = undefined;\n }\n this.#intervalCount = this.#carryoverConcurrencyCount ? this.#pending : 0;\n this.#processQueue();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n #processQueue() {\n // eslint-disable-next-line no-empty\n while (this.#tryToStartAnother()) { }\n }\n get concurrency() {\n return this.#concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this.#concurrency = newConcurrency;\n this.#processQueue();\n }\n async #throwOnAbort(signal) {\n return new Promise((_resolve, reject) => {\n signal.addEventListener('abort', () => {\n reject(signal.reason);\n }, { once: true });\n });\n }\n /**\n Updates the priority of a promise function by its id, affecting its execution order. Requires a defined concurrency limit to take effect.\n\n For example, this can be used to prioritize a promise function to run earlier.\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 0, id: '🦀'});\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦄', {priority: 1});\n\n queue.setPriority('🦀', 2);\n ```\n\n In this case, the promise function with `id: '🦀'` runs second.\n\n You can also deprioritize a promise function to delay its execution:\n\n ```js\n import PQueue from 'p-queue';\n\n const queue = new PQueue({concurrency: 1});\n\n queue.add(async () => '🦄', {priority: 1});\n queue.add(async () => '🦀', {priority: 1, id: '🦀'});\n queue.add(async () => '🦄');\n queue.add(async () => '🦄', {priority: 0});\n\n queue.setPriority('🦀', -1);\n ```\n Here, the promise function with `id: '🦀'` executes last.\n */\n setPriority(id, priority) {\n this.#queue.setPriority(id, priority);\n }\n async add(function_, options = {}) {\n // In case `id` is not defined.\n options.id ??= (this.#idAssigner++).toString();\n options = {\n timeout: this.timeout,\n throwOnTimeout: this.#throwOnTimeout,\n ...options,\n };\n return new Promise((resolve, reject) => {\n this.#queue.enqueue(async () => {\n this.#pending++;\n this.#intervalCount++;\n try {\n options.signal?.throwIfAborted();\n let operation = function_({ signal: options.signal });\n if (options.timeout) {\n operation = pTimeout(Promise.resolve(operation), { milliseconds: options.timeout });\n }\n if (options.signal) {\n operation = Promise.race([operation, this.#throwOnAbort(options.signal)]);\n }\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n if (error instanceof TimeoutError && !options.throwOnTimeout) {\n resolve();\n return;\n }\n reject(error);\n this.emit('error', error);\n }\n finally {\n this.#next();\n }\n }, options);\n this.emit('add');\n this.#tryToStartAnother();\n });\n }\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this.#isPaused) {\n return this;\n }\n this.#isPaused = false;\n this.#processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this.#isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this.#queue = new this.#queueClass();\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (this.#queue.size < limit) {\n return;\n }\n await this.#onEvent('next', () => this.#queue.size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.#pending === 0 && this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('idle');\n }\n async #onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return this.#queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return this.#queue.filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return this.#pending;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this.#isPaused;\n }\n}\n","import './assets/NcRichText-DqDAPQPD.css';\nimport NcActionButton from \"./Components/NcActionButton.mjs\";\nimport { N as NcActionButtonGroup } from \"./chunks/NcActionButtonGroup-Bd37MbKW.mjs\";\nimport NcActionCaption from \"./Components/NcActionCaption.mjs\";\nimport NcActionCheckbox from \"./Components/NcActionCheckbox.mjs\";\nimport { N as NcActionInput } from \"./chunks/NcActionInput-Cih0zYV4.mjs\";\nimport NcActionLink from \"./Components/NcActionLink.mjs\";\nimport NcActionRadio from \"./Components/NcActionRadio.mjs\";\nimport NcActionRouter from \"./Components/NcActionRouter.mjs\";\nimport { N as NcActions } from \"./chunks/NcActions-D77YAhAy.mjs\";\nimport NcActionSeparator from \"./Components/NcActionSeparator.mjs\";\nimport NcActionText from \"./Components/NcActionText.mjs\";\nimport NcActionTextEditable from \"./Components/NcActionTextEditable.mjs\";\nimport { N as NcAppContent } from \"./chunks/NcAppContent-4BxMQ7Xt.mjs\";\nimport NcAppContentDetails from \"./Components/NcAppContentDetails.mjs\";\nimport NcAppContentList from \"./Components/NcAppContentList.mjs\";\nimport { N as NcAppNavigation } from \"./chunks/NcAppNavigation-BDbJ4m0b.mjs\";\nimport { N as NcAppNavigationCaption } from \"./chunks/NcAppNavigationCaption-DPUdrh1W.mjs\";\nimport NcAppNavigationIconBullet from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as NcAppNavigationItem } from \"./chunks/NcAppNavigationItem-DFd3T8cM.mjs\";\nimport NcAppNavigationList from \"./Components/NcAppNavigationList.mjs\";\nimport NcAppNavigationNew from \"./Components/NcAppNavigationNew.mjs\";\nimport { N as NcAppNavigationNewItem } from \"./chunks/NcAppNavigationNewItem-C3feTWit.mjs\";\nimport { N as NcAppNavigationSearch } from \"./chunks/NcAppNavigationSearch-BjFk5Svv.mjs\";\nimport { N as NcAppNavigationSettings } from \"./chunks/NcAppNavigationSettings-BbdXmZxA.mjs\";\nimport NcAppNavigationSpacer from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as NcAppSettingsDialog } from \"./chunks/NcAppSettingsDialog-4B3lv0WQ.mjs\";\nimport NcAppSettingsSection from \"./Components/NcAppSettingsSection.mjs\";\nimport { N as NcAppSidebar } from \"./chunks/NcAppSidebar-DZb0qhUN.mjs\";\nimport NcAppSidebarTab from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as NcAvatar } from \"./chunks/NcAvatar-BFV6oZYX.mjs\";\nimport { u } from \"./chunks/NcAvatar-BFV6oZYX.mjs\";\nimport { N as NcBreadcrumb } from \"./chunks/NcBreadcrumb-B5L1PSLJ.mjs\";\nimport { N as NcBreadcrumbs } from \"./chunks/NcBreadcrumbs-Di8TiK0J.mjs\";\nimport NcButton from \"./Components/NcButton.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./chunks/NcCheckboxRadioSwitch-D1Iu7jy1.mjs\";\nimport { N as NcCollectionList } from \"./chunks/NcCollectionList-BxSwb-Gx.mjs\";\nimport { N as NcColorPicker } from \"./chunks/NcColorPicker-B3WnrXPa.mjs\";\nimport { N as NcContent } from \"./chunks/NcContent-YmMP5qXT.mjs\";\nimport { N as NcCounterBubble } from \"./chunks/NcCounterBubble-D1QC3eP1.mjs\";\nimport { N as NcDashboardWidget } from \"./chunks/NcDashboardWidget-DOSAwzd2.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./chunks/NcDashboardWidgetItem-DSaANTMY.mjs\";\nimport { N as NcDateTime } from \"./chunks/NcDateTime-3T3J08Bd.mjs\";\nimport { u as u2 } from \"./chunks/NcDateTime-3T3J08Bd.mjs\";\nimport NcDateTimePicker from \"./Components/NcDateTimePicker.mjs\";\nimport NcDateTimePickerNative from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as NcDialog } from \"./chunks/NcDialog-DXRkgfxf.mjs\";\nimport { N as NcDialogButton } from \"./chunks/NcDialogButton-DzPzSBzz.mjs\";\nimport NcEllipsisedOption from \"./Components/NcEllipsisedOption.mjs\";\nimport { N as NcEmojiPicker } from \"./chunks/NcEmojiPicker-CjeoGVH7.mjs\";\nimport NcEmptyContent from \"./Components/NcEmptyContent.mjs\";\nimport NcGuestContent from \"./Components/NcGuestContent.mjs\";\nimport { N as NcHeaderMenu } from \"./chunks/NcHeaderMenu-CeU4L29l.mjs\";\nimport { N as NcHighlight } from \"./chunks/index-Bz6q9mZw.mjs\";\nimport { N as NcIconSvgWrapper } from \"./chunks/NcIconSvgWrapper-DjrkBUkC.mjs\";\nimport NcInputField from \"./Components/NcInputField.mjs\";\nimport { N as NcListItem } from \"./chunks/NcListItem-79bJNkOw.mjs\";\nimport { N as NcListItemIcon } from \"./chunks/NcListItemIcon-Bo4o5oVB.mjs\";\nimport NcLoadingIcon from \"./Components/NcLoadingIcon.mjs\";\nimport NcModal from \"./Components/NcModal.mjs\";\nimport NcNoteCard from \"./Components/NcNoteCard.mjs\";\nimport { N as NcPasswordField } from \"./chunks/NcPasswordField-BbbShH-t.mjs\";\nimport { N as NcPopover } from \"./chunks/NcPopover-DbeCmze0.mjs\";\nimport { N as NcProgressBar } from \"./chunks/NcProgressBar-D_6Z7U5w.mjs\";\nimport { N as NcRelatedResourcesPanel } from \"./chunks/NcRelatedResourcesPanel-DxC7FIlo.mjs\";\nimport { N as NcMentionBubble } from \"./chunks/index-CMZdBcqP.mjs\";\nimport { r } from \"./chunks/index-CMZdBcqP.mjs\";\nimport { N as NcAutoCompleteResult, a as NcRichContenteditable } from \"./chunks/NcRichContenteditable-CZOXY-O9.mjs\";\nimport { N as NcRichText } from \"./chunks/NcRichText-BX80Ezvi.mjs\";\nimport { N, h, d, i, b, r as r2, c, a } from \"./chunks/index-BwyQ2N-M.mjs\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport { a as a2, g, b as b2, c as c2, d as d2, s } from \"./chunks/referencePickerModal-DW9uLKIZ.mjs\";\nimport \"unist-util-visit\";\nimport \"unist-builder\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/sharing/public\";\nimport \"@nextcloud/auth\";\n/* empty css */\nimport { N as NcSelect } from \"./chunks/NcSelect-kmuffooC.mjs\";\nimport { N as NcTextField } from \"./chunks/NcTextField-DWfgnCsS.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as NcSavingIndicatorIcon } from \"./chunks/NcSavingIndicatorIcon-nv1147dk.mjs\";\nimport { N as NcSelectTags } from \"./chunks/NcSelectTags-Bppbqmvs.mjs\";\nimport { N as NcSettingsInputText } from \"./chunks/NcSettingsInputText-hAlIWx1R.mjs\";\nimport { N as NcSettingsSection } from \"./chunks/NcSettingsSection-BT-d36B9.mjs\";\nimport { N as NcSettingsSelectGroup } from \"./chunks/NcSettingsSelectGroup-OkPHjjsK.mjs\";\nimport NcTextArea from \"./Components/NcTextArea.mjs\";\nimport { N as NcTimezonePicker } from \"./chunks/NcTimezonePicker-DdVLB1Bv.mjs\";\nimport { N as NcUserBubble } from \"./chunks/NcUserBubble-CuLF1XDp.mjs\";\nimport { N as NcUserStatusIcon } from \"./chunks/NcUserStatusIcon-CCCrTIIn.mjs\";\nimport NcVNodes from \"./Components/NcVNodes.mjs\";\nimport { isFullscreenState, useIsFullscreen } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT, MOBILE_SMALL_BREAKPOINT, isMobileState, useIsMobile, useIsSmallMobile } from \"./Composables/useIsMobile.mjs\";\nimport { useHotKey } from \"./Composables/useHotKey.mjs\";\nimport { isA11yActivation } from \"./Functions/a11y.mjs\";\nimport { E, a as a3, e, g as g2, s as s2 } from \"./chunks/emoji-V6ytyzoR.mjs\";\nimport { u as u3 } from \"./chunks/usernameToColor-DivFGAn4.mjs\";\nimport { directive } from \"./Directives/Focus.mjs\";\nimport { directive as directive$1 } from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as default2 } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as default3 } from \"./Mixins/isFullscreen.mjs\";\nimport { default as default4 } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip } from \"floating-vue\";\nimport { VTooltip as VTooltip2 } from \"floating-vue\";\nconst NcComponents = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSidebar,\n NcAppSidebarTab,\n NcAutoCompleteResult,\n NcAvatar,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcGuestContent,\n NcHeaderMenu,\n NcHighlight,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NcDirectives = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: directive,\n Linkify: directive$1,\n Tooltip: VTooltip\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NextcloudVuePlugin = {\n install(Vue) {\n Object.entries(NcComponents).forEach(([name, component]) => {\n Vue.component(component.name || name, component);\n });\n Object.entries(NcDirectives).forEach(([name, directive2]) => {\n Vue.directive(name, directive2);\n });\n }\n};\nexport {\n E as EmojiSkinTone,\n directive as Focus,\n directive$1 as Linkify,\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSidebar,\n NcAppSidebarTab,\n NcAutoCompleteResult,\n NcAvatar,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n N as NcCustomPickerRenderResult,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcGuestContent,\n NcHeaderMenu,\n NcHighlight,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes,\n NextcloudVuePlugin,\n VTooltip2 as Tooltip,\n a2 as anyLinkProviderId,\n default2 as clickOutsideOptions,\n a3 as emojiAddRecent,\n e as emojiSearch,\n g2 as getCurrentSkinTone,\n g as getLinkWithPicker,\n b2 as getProvider,\n c2 as getProviders,\n h as hasInteractiveView,\n isA11yActivation,\n d as isCustomPickerElementRegistered,\n default3 as isFullscreen,\n isFullscreenState,\n default4 as isMobile,\n isMobileState,\n i as isWidgetRegistered,\n b as registerCustomPickerElement,\n r2 as registerWidget,\n c as renderCustomPickerElement,\n a as renderWidget,\n r as richEditor,\n d2 as searchProvider,\n s2 as setCurrentSkinTone,\n s as sortProviders,\n u2 as useFormatDateTime,\n useHotKey,\n useIsFullscreen,\n useIsMobile,\n useIsSmallMobile,\n u as userStatus,\n u3 as usernameToColor\n};\n"],"names":["has","Object","prototype","hasOwnProperty","prefix","Events","EE","fn","context","once","this","addListener","emitter","event","TypeError","listener","evt","_events","push","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","name","names","call","slice","getOwnPropertySymbols","concat","listeners","handlers","i","l","length","ee","Array","listenerCount","emit","a1","a2","a3","a4","a5","args","len","arguments","removeListener","undefined","apply","j","on","removeAllListeners","off","prefixed","module","exports","toValue","r","cacheStringFunction","cache","str","util","warn","WorkerGlobalScope","globalThis","toString","hyphenateRE","camelizeRE","replace","toLowerCase","_","c","toUpperCase","TimeoutError","Error","constructor","message","super","AbortError","getDOMException","errorMessage","DOMException","getAbortedReason","signal","reason","PriorityQueue","enqueue","run","options","element","priority","id","size","index","array","value","comparator","first","count","step","Math","trunc","it","a","lowerBound","splice","setPriority","findIndex","ReferenceError","item","dequeue","shift","filter","map","_sfc_main$k","emits","props","title","type","String","fillColor","default","Number","_sfc_render$k","_vm","_c","_self","_b","staticClass","attrs","$event","$emit","$attrs","_v","_s","_e","_sfc_staticRenderFns$k","IconFile","useFilesSettings","filesUserState","showHiddenFiles","show_hidden","sortFavoritesFirst","sort_favorites_first","cropImagePreviews","crop_image_previews","async","debug","data","get","error","t","_sfc_main$j","_sfc_render$j","_sfc_staticRenderFns$j","IconSortAscending","_sfc_main$i","_sfc_render$i","_sfc_staticRenderFns$i","IconSortDescending","fileListIconStylesModule","_sfc_main$h","__name","showCheckbox","Boolean","setup","__props","__sfc","fileListIconStyles","_sfc_render$h","_setup","_setupProxy","class","_m","_sfc_staticRenderFns$h","LoadingTableRow","queue","timeout","carryoverConcurrencyCount","intervalCap","POSITIVE_INFINITY","interval","concurrency","autoStart","queueClass","isFinite","throwOnTimeout","now","Date","delay","setTimeout","clearInterval","canInitializeInterval","job","setInterval","newConcurrency","Promise","_resolve","reject","addEventListener","add","function_","resolve","throwIfAborted","operation","promise","milliseconds","fallback","customTimers","clearTimeout","timer","abortHandler","cancelablePromise","sign","aborted","then","timeoutError","cancel","finally","clear","removeEventListener","pTimeout","race","result","addAll","functions","all","start","pause","onEmpty","onSizeLessThan","limit","onIdle","sizeBy","pending","isPaused","_sfc_main$g","_sfc_render$g","_sfc_staticRenderFns$g","IconFolder","_sfc_main$f","_sfc_render$f","_sfc_staticRenderFns$f","LockIcon","_sfc_main$e","_sfc_render$e","_sfc_staticRenderFns$e","TagIcon","_sfc_main$d","_sfc_render$d","_sfc_staticRenderFns$d","LinkIcon","_sfc_main$c","_sfc_render$c","_sfc_staticRenderFns$c","AccountPlusIcon","_sfc_main$b","_sfc_render$b","_sfc_staticRenderFns$b","NetworkIcon","_sfc_main$a","_sfc_render$a","_sfc_staticRenderFns$a","AccountGroupIcon","_sfc_main$9","node","previewURL","previewLoaded","cropPreview","mimeFallback","previewUrl","attributes","fileid","url","URL","e","window","location","origin","searchParams","set","etag","getPreviewURL","withResolvers","image","Image","onerror","onload","src","preloadImage","href","success","usePreviewURL","isFile","File","folderDecorationIcon","Folder","shareTypes","values","flat","some","ShareType","Link","Email","_sfc_render$9","style","backgroundImage","tag","_sfc_staticRenderFns$9","FilePreview","_sfc_main$8","allowPickDirectory","selected","canPick","emit2","displayName","basename","extension","fileExtension","isDirectory","isPickable","toggleSelected","handleClick","handleKeyDown","key","formatFileSize","_sfc_render$8","_g","click","keydown","stopPropagation","NcCheckboxRadioSwitch","nodename","domProps","NcDateTime","mtime","_sfc_staticRenderFns$8","FileListRow","_sfc_main$7","currentView","multiselect","loading","files","selectedFiles","path","customSortingConfig","currentConfig","filesAppSorting","convertOrder","order2","filesViewsState","filesViewConfig","sortBy","sorting_mode","order","sorting_direction","recentViewConfig","recent","favoritesViewConfig","favorites","useFilesViews","sortingConfig","sortByName","sortBySize","sortByModified","sortedFiles","sortFoldersFirst","sortingOrder","sortingMode","selectableFiles","file","allSelected","skeletonNumber","fileContainer","resize","nodes","parentElement","children","height","clientHeight","isSameNode","max","floor","toggleSorting","onSelectAll","onNodeSelected","includes","f","onChangeDirectory","dir","NcButton","_sfc_render$7","ref","scopedSlots","_u","staticStyle","proxy","_l","_sfc_staticRenderFns$7","FileList","_sfc_main$6","_sfc_render$6","_sfc_staticRenderFns$6","IconHome","_sfc_main$5","_sfc_render$5","_sfc_staticRenderFns$5","IconPlus","_sfc_main$4","showMenu","actionsOpen","newNodeName","nameInput","validateInput","trim","input","$el","querySelector","validity","OC","config","blacklist_files_regex","match","setCustomValidity","pathElements","split","v","elements","join","onSubmit","NcActions","_sfc_render$4","NcBreadcrumbs","NcBreadcrumb","NcActionInput","_sfc_staticRenderFns$4","FilePickerBreadcrumbs","_sfc_main$3","_sfc_render$3","_sfc_staticRenderFns$3","IconClose","_sfc_main$2","_sfc_render$2","_sfc_staticRenderFns$2","IconMagnify","_sfc_main$1","filterString","isCollapsed","disabledNavigation","availableViews","isAnonymous","allViews","label","icon","mdi","useViews","currentViewObject","updateFilterValue","_sfc_render$1","Fragment","NcTextField","NcSelect","view","NcIconSvgWrapper","_sfc_staticRenderFns$1","FilePickerNavigation","_sfc_main","buttons","container","filterFn","mimetypeFilter","emit$1","isOpen","dialogButtons","currentFolder","currentPath","button","disabled","isLoading","callback","isHandlingCallback","handleButtonClick","viewHeadline","savedPath","sessionStorage","getItem","navigatedPath","setItem","isSupportedMimeType","allowedMIMETypes","splittedTypes","mime","mimeTypeArray","subtype","useMimeFilter","folder","loadFiles","createDirectory","client","loadDAVFiles","controller","AbortController","lastTwoWeek","round","CancelablePromise","onCancel","abort","search","details","results","getRecentNodes","directoryPath","getDirectoryContents","includeSelf","contents","find","getNodes","content","directory","stat","getFile","useDAVFiles","filteredFiles","filtered","startsWith","noFilesDescription","onCreateFolder","handleClose","open","NcDialog","_sfc_render","NcEmptyContent","_sfc_staticRenderFns","FilePicker","Symbol","toStringTag"],"sourceRoot":""}