diff --git a/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue b/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue index 473ad15e8ea86..07a422d47dc6e 100644 --- a/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue +++ b/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue @@ -39,10 +39,7 @@ import IconPencil from 'vue-material-design-icons/PencilOutline.vue' import IconFileUpload from 'vue-material-design-icons/TrayArrowUp.vue' import DropdownIcon from 'vue-material-design-icons/TriangleSmallDown.vue' import IconTune from 'vue-material-design-icons/Tune.vue' -import { - ATOMIC_PERMISSIONS, - getBundledPermissions, -} from '../lib/SharePermissionsToolBox.js' +import { getBundledPermissions } from '../lib/SharePermissionsToolBox.js' import ShareDetails from '../mixins/ShareDetails.js' import SharesMixin from '../mixins/SharesMixin.js' @@ -98,18 +95,17 @@ export default { }, preSelectedOption() { - // We remove the share permission for the comparison as it is not relevant for bundled permissions. - const permissionsWithoutShare = this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE - const basePermissions = getBundledPermissions(true) - if (permissionsWithoutShare === basePermissions.READ_ONLY) { - return this.canViewText - } else if (permissionsWithoutShare === basePermissions.ALL || permissionsWithoutShare === basePermissions.ALL_FILE) { - return this.canEditText - } else if (permissionsWithoutShare === basePermissions.FILE_DROP) { - return this.fileDropText + switch (this.permissionsBundle) { + case 'READ_ONLY': + return this.canViewText + case 'ALL': + case 'ALL_FILE': + return this.canEditText + case 'FILE_DROP': + return this.fileDropText + default: + return this.customPermissionsText } - - return this.customPermissionsText }, options() { diff --git a/apps/files_sharing/src/lib/SharePermissionsToolBox.js b/apps/files_sharing/src/lib/SharePermissionsToolBox.js index 3638d94f5f607..6462874637fd7 100644 --- a/apps/files_sharing/src/lib/SharePermissionsToolBox.js +++ b/apps/files_sharing/src/lib/SharePermissionsToolBox.js @@ -122,3 +122,33 @@ export function togglePermissions(initialPermissionSet, permissionsToToggle) { export function canTogglePermissions(permissionSet, permissionsToToggle) { return permissionsSetIsValid(togglePermissions(permissionSet, permissionsToToggle)) } + +/** + * The permission bundles the share editor offers, in the order they are matched. + * + * @type {string[]} + */ +const EDITOR_BUNDLES = ['READ_ONLY', 'ALL', 'ALL_FILE', 'FILE_DROP'] + +/** + * Find the permission bundle a share's permissions correspond to. + * + * Link and email shares carry the SHARE permission whenever federation on + * public shares is enabled: the server adds it on top of whatever bundle was + * picked, so it must be ignored when matching those shares against a bundle. + * + * @param {number} permissions - the share permissions. + * @param {object} [options] - matching options. + * @param {boolean} [options.isPublicShare] - whether the share is a link or email share. + * @param {boolean} [options.excludeReshareFromEdit] - whether SHARE is excluded from the editing bundles. + * + * @return {string|null} the name of the matching bundle, or `null` for custom permissions. + */ +export function matchBundledPermissions(permissions, { isPublicShare = false, excludeReshareFromEdit = false } = {}) { + const bundles = getBundledPermissions(isPublicShare || excludeReshareFromEdit) + const comparablePermissions = isPublicShare + ? subtractPermissions(permissions, ATOMIC_PERMISSIONS.SHARE) + : permissions + + return EDITOR_BUNDLES.find((bundle) => bundles[bundle] === comparablePermissions) ?? null +} diff --git a/apps/files_sharing/src/lib/SharePermissionsToolBox.spec.js b/apps/files_sharing/src/lib/SharePermissionsToolBox.spec.js index 14ac7bfbbbb74..f8f04d29edd41 100644 --- a/apps/files_sharing/src/lib/SharePermissionsToolBox.spec.js +++ b/apps/files_sharing/src/lib/SharePermissionsToolBox.spec.js @@ -9,6 +9,7 @@ import { canTogglePermissions, getBundledPermissions, hasPermissions, + matchBundledPermissions, permissionsSetIsValid, subtractPermissions, togglePermissions, @@ -144,4 +145,51 @@ describe('SharePermissionsToolBox', () => { // BUNDLED_PERMISSIONS.ALL_FILE already includes SHARE expect(BUNDLED_PERMISSIONS.ALL_FILE).toBe(permissionsWithShare.ALL_FILE) }) + + describe('Matching bundled permissions', () => { + const { READ, UPDATE, CREATE, DELETE, SHARE } = ATOMIC_PERMISSIONS + + test('matches the bundles of an internal share', () => { + expect(matchBundledPermissions(READ)).toBe('READ_ONLY') + expect(matchBundledPermissions(CREATE)).toBe('FILE_DROP') + expect(matchBundledPermissions(READ | UPDATE | CREATE | DELETE | SHARE)).toBe('ALL') + expect(matchBundledPermissions(READ | UPDATE | SHARE)).toBe('ALL_FILE') + }) + + test('reports permissions outside of a bundle as custom', () => { + expect(matchBundledPermissions(READ | UPDATE)).toBe(null) + expect(matchBundledPermissions(READ | CREATE)).toBe(null) + expect(matchBundledPermissions(ATOMIC_PERMISSIONS.NONE)).toBe(null) + }) + + test('matches the editing bundle without SHARE when resharing is excluded from editing', () => { + const options = { excludeReshareFromEdit: true } + expect(matchBundledPermissions(READ | UPDATE | CREATE | DELETE, options)).toBe('ALL') + expect(matchBundledPermissions(READ | UPDATE, options)).toBe('ALL_FILE') + // With resharing excluded, a share that grants it is no longer the editing bundle + expect(matchBundledPermissions(READ | UPDATE | CREATE | DELETE | SHARE, options)).toBe(null) + }) + + test('ignores the SHARE permission the server adds to public shares', () => { + const options = { isPublicShare: true } + // Link and email shares carry SHARE for federation, whatever bundle was picked + expect(matchBundledPermissions(READ | SHARE, options)).toBe('READ_ONLY') + expect(matchBundledPermissions(CREATE | SHARE, options)).toBe('FILE_DROP') + expect(matchBundledPermissions(READ | UPDATE | CREATE | DELETE | SHARE, options)).toBe('ALL') + expect(matchBundledPermissions(READ | UPDATE | SHARE, options)).toBe('ALL_FILE') + }) + + test('matches public shares the same way with resharing excluded from editing', () => { + const options = { isPublicShare: true, excludeReshareFromEdit: true } + expect(matchBundledPermissions(READ | SHARE, options)).toBe('READ_ONLY') + expect(matchBundledPermissions(READ | UPDATE | CREATE | DELETE | SHARE, options)).toBe('ALL') + expect(matchBundledPermissions(READ | UPDATE | CREATE | DELETE, options)).toBe('ALL') + }) + + test('still reports custom permissions on a public share', () => { + const options = { isPublicShare: true } + expect(matchBundledPermissions(READ | CREATE | SHARE, options)).toBe(null) + expect(matchBundledPermissions(READ | UPDATE | DELETE | SHARE, options)).toBe(null) + }) + }) }) diff --git a/apps/files_sharing/src/mixins/SharesMixin.js b/apps/files_sharing/src/mixins/SharesMixin.js index 40b46033500d3..aedd5c5d2f85b 100644 --- a/apps/files_sharing/src/mixins/SharesMixin.js +++ b/apps/files_sharing/src/mixins/SharesMixin.js @@ -10,10 +10,7 @@ import { ShareType } from '@nextcloud/sharing' import debounce from 'debounce' import PQueue from 'p-queue' import { fetchNode } from '../../../files/src/services/WebdavClient.ts' -import { - ATOMIC_PERMISSIONS, - getBundledPermissions, -} from '../lib/SharePermissionsToolBox.js' +import { matchBundledPermissions } from '../lib/SharePermissionsToolBox.js' import Share from '../models/Share.ts' import Config from '../services/ConfigService.ts' import logger from '../services/logger.ts' @@ -137,16 +134,14 @@ export default { } return this.config.isDefaultInternalExpireDateEnforced }, + permissionsBundle() { + return matchBundledPermissions(this.share.permissions, { + isPublicShare: this.isPublicShare, + excludeReshareFromEdit: this.config.excludeReshareFromEdit, + }) + }, hasCustomPermissions() { - const basePermissions = getBundledPermissions(true) - const bundledPermissions = [ - basePermissions.ALL, - basePermissions.ALL_FILE, - basePermissions.READ_ONLY, - basePermissions.FILE_DROP, - ] - const permissionsWithoutShare = this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE - return !bundledPermissions.includes(permissionsWithoutShare) + return this.permissionsBundle === null }, maxExpirationDateEnforced() { if (this.isExpiryDateEnforced) { diff --git a/apps/files_sharing/src/views/SharingDetailsTab.vue b/apps/files_sharing/src/views/SharingDetailsTab.vue index a156bcfbf3e6f..fda6583ac9a51 100644 --- a/apps/files_sharing/src/views/SharingDetailsTab.vue +++ b/apps/files_sharing/src/views/SharingDetailsTab.vue @@ -1051,12 +1051,14 @@ export default { handleDefaultPermissions() { if (this.isNewShare) { const defaultPermissions = this.config.defaultPermissions - const permissionsWithoutShare = defaultPermissions & ~ATOMIC_PERMISSIONS.SHARE - const basePermissions = getBundledPermissions(true) - if (permissionsWithoutShare === basePermissions.READ_ONLY - || permissionsWithoutShare === basePermissions.ALL - || permissionsWithoutShare === basePermissions.ALL_FILE) { - this.sharingPermission = permissionsWithoutShare.toString() + const basePermissions = this.bundledPermissions + if (defaultPermissions === basePermissions.READ_ONLY) { + this.sharingPermission = basePermissions.READ_ONLY.toString() + } else if (defaultPermissions === basePermissions.ALL + || defaultPermissions === basePermissions.ALL_FILE) { + this.sharingPermission = this.allPermissions + } else if (defaultPermissions === basePermissions.FILE_DROP) { + this.sharingPermission = basePermissions.FILE_DROP.toString() } else { this.sharingPermission = 'custom' this.share.permissions = defaultPermissions diff --git a/dist/1691-1691.js b/dist/1691-1691.js new file mode 100644 index 0000000000000..696d266185dea --- /dev/null +++ b/dist/1691-1691.js @@ -0,0 +1,2 @@ +"use strict";(globalThis.webpackChunknextcloud_ui_legacy||=[]).push([[451,1691],{41998(e,t,n){n.d(t,{BA:()=>Re,C4:()=>k,EW:()=>Ue,Gc:()=>me,IG:()=>Be,IJ:()=>Te,KR:()=>Ne,Kh:()=>ge,Pr:()=>Me,QW:()=>$e,R1:()=>ze,Tm:()=>we,X2:()=>u,bl:()=>B,fE:()=>xe,g8:()=>ye,hV:()=>Qe,hZ:()=>M,i9:()=>Pe,jr:()=>c,ju:()=>Ee,lW:()=>He,nD:()=>Ce,o5:()=>l,qA:()=>G,rY:()=>Ge,tB:()=>be,u4:()=>F,uY:()=>s,ux:()=>ke,wB:()=>Ze,yC:()=>r});var a=n(90033);let i,o;class r{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&i&&(i.active?(this.parent=i,this.index=(i.scopes||(i.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes){const n=this.scopes.slice();for(e=0,t=n.length;e0&&0===--this._on){if(i===this)i=this.prevScope;else{let e=i;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){let t,n;for(this._active=!1,t=0,n=this.effects.length;t0)return;if(A){let e=A;for(A=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;p;){let t=p;for(p=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}function m(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function b(e){let t,n=e.depsTail,a=n;for(;a;){const e=a.prevDep;-1===a.version?(a===n&&(n=e),y(a),w(a)):t=a,a.dep.activeLink=a.prevActiveLink,a.prevActiveLink=void 0,a=e}e.deps=t,e.depsTail=n}function C(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(_(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function _(e){if(4&e.flags&&!(16&e.flags))return;if(e.flags&=-17,e.globalVersion===D)return;if(e.globalVersion=D,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!C(e)))return;e.flags|=2;const t=e.dep,n=o,i=x;o=e,x=!0;try{m(e);const n=e.fn(e._value);(0===t.version||(0,a.$H)(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{o=n,x=i,b(e),e.flags&=-3}}function y(e,t=!1){const{dep:n,prevSub:a,nextSub:i}=e;if(a&&(a.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=a,e.nextSub=void 0),n.subs===e&&(n.subs=a,!a&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)y(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}function w(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let x=!0;const E=[];function k(){E.push(x),x=!1}function B(){const e=E.pop();x=void 0===e||e}function S(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const e=o;o=void 0;try{t()}finally{o=e}}}let D=0;class P{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class N{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!o||!x||o===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==o)t=this.activeLink=new P(o,this),o.deps?(t.prevDep=o.depsTail,o.depsTail.nextDep=t,o.depsTail=t):o.deps=o.depsTail=t,T(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){const e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=o.depsTail,t.nextDep=void 0,o.depsTail.nextDep=t,o.depsTail=t,o.deps===t&&(o.deps=e)}return t}trigger(e){this.version++,D++,this.notify(e)}notify(e){f();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{g()}}}function T(e){if(e.dep.sc++,4&e.sub.flags){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let e=t.deps;e;e=e.nextDep)T(e)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const L=new WeakMap,I=Symbol(""),z=Symbol(""),R=Symbol("");function F(e,t,n){if(x&&o){let t=L.get(e);t||L.set(e,t=new Map);let a=t.get(n);a||(t.set(n,a=new N),a.map=t,a.key=n),a.track()}}function M(e,t,n,i,o,r){const s=L.get(e);if(!s)return void D++;const l=e=>{e&&e.trigger()};if(f(),"clear"===t)s.forEach(l);else{const o=(0,a.cy)(e),r=o&&(0,a.yI)(n);if(o&&"length"===n){const e=Number(i);s.forEach((t,n)=>{("length"===n||n===R||!(0,a.Bm)(n)&&n>=e)&&l(t)})}else switch((void 0!==n||s.has(void 0))&&l(s.get(n)),r&&l(s.get(R)),t){case"add":o?r&&l(s.get("length")):(l(s.get(I)),(0,a.CE)(e)&&l(s.get(z)));break;case"delete":o||(l(s.get(I)),(0,a.CE)(e)&&l(s.get(z)));break;case"set":(0,a.CE)(e)&&l(s.get(I))}}g()}function O(e){const t=ke(e);return t===e?t:(F(t,0,R),xe(e)?t:t.map(Se))}function G(e){return F(e=ke(e),0,R),e}function $(e,t){return we(e)?ye(e)?De(Se(t)):De(t):Se(t)}const V={__proto__:null,[Symbol.iterator](){return W(this,Symbol.iterator,e=>$(this,e))},concat(...e){return O(this).concat(...e.map(e=>(0,a.cy)(e)?O(e):e))},entries(){return W(this,"entries",e=>(e[1]=$(this,e[1]),e))},every(e,t){return j(this,"every",e,t,void 0,arguments)},filter(e,t){return j(this,"filter",e,t,e=>e.map(e=>$(this,e)),arguments)},find(e,t){return j(this,"find",e,t,e=>$(this,e),arguments)},findIndex(e,t){return j(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return j(this,"findLast",e,t,e=>$(this,e),arguments)},findLastIndex(e,t){return j(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return j(this,"forEach",e,t,void 0,arguments)},includes(...e){return U(this,"includes",e)},indexOf(...e){return U(this,"indexOf",e)},join(e){return O(this).join(e)},lastIndexOf(...e){return U(this,"lastIndexOf",e)},map(e,t){return j(this,"map",e,t,void 0,arguments)},pop(){return q(this,"pop")},push(...e){return q(this,"push",e)},reduce(e,...t){return X(this,"reduce",e,t)},reduceRight(e,...t){return X(this,"reduceRight",e,t)},shift(){return q(this,"shift")},some(e,t){return j(this,"some",e,t,void 0,arguments)},splice(...e){return q(this,"splice",e)},toReversed(){return O(this).toReversed()},toSorted(e){return O(this).toSorted(e)},toSpliced(...e){return O(this).toSpliced(...e)},unshift(...e){return q(this,"unshift",e)},values(){return W(this,"values",e=>$(this,e))}};function W(e,t,n){const a=G(e),i=a[t]();return a===e||xe(e)||(i._next=i.next,i.next=()=>{const e=i._next();return e.done||(e.value=n(e.value)),e}),i}const H=Array.prototype;function j(e,t,n,a,i,o){const r=G(e),s=r!==e&&!xe(e),l=r[t];if(l!==H[t]){const t=l.apply(e,o);return s?Se(t):t}let c=n;r!==e&&(s?c=function(t,a){return n.call(this,$(e,t),a,e)}:n.length>2&&(c=function(t,a){return n.call(this,t,a,e)}));const d=l.call(r,c,a);return s&&i?i(d):d}function X(e,t,n,a){const i=G(e),o=i!==e&&!xe(e);let r=n,s=!1;i!==e&&(o?(s=0===a.length,r=function(t,a,i){return s&&(s=!1,t=$(e,t)),n.call(this,t,$(e,a),i,e)}):n.length>3&&(r=function(t,a,i){return n.call(this,t,a,i,e)}));const l=i[t](r,...a);return s?$(e,l):l}function U(e,t,n){const a=ke(e);F(a,0,R);const i=a[t](...n);return-1!==i&&!1!==i||!Ee(n[0])?i:(n[0]=ke(n[0]),a[t](...n))}function q(e,t,n=[]){k(),f();const a=ke(e)[t].apply(e,n);return g(),B(),a}const Y=(0,a.pD)("__proto__,__v_isRef,__isVue"),K=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(a.Bm));function Z(e){(0,a.Bm)(e)||(e=String(e));const t=ke(this);return F(t,0,e),t.hasOwnProperty(e)}class Q{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;const i=this._isReadonly,o=this._isShallow;if("__v_isReactive"===t)return!i;if("__v_isReadonly"===t)return i;if("__v_isShallow"===t)return o;if("__v_raw"===t)return n===(i?o?fe:ve:o?he:Ae).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const r=(0,a.cy)(e);if(!i){let e;if(r&&(e=V[t]))return e;if("hasOwnProperty"===t)return Z}const s=Reflect.get(e,t,Pe(e)?e:n);if((0,a.Bm)(t)?K.has(t):Y(t))return s;if(i||F(e,0,t),o)return s;if(Pe(s)){const e=r&&(0,a.yI)(t)?s:s.value;return i&&(0,a.Gv)(e)?be(e):e}return(0,a.Gv)(s)?i?be(s):ge(s):s}}class J extends Q{constructor(e=!1){super(!1,e)}set(e,t,n,i){let o=e[t];const r=(0,a.cy)(e)&&(0,a.yI)(t);if(!this._isShallow){const e=we(o);if(xe(n)||we(n)||(o=ke(o),n=ke(n)),!r&&Pe(o)&&!Pe(n))return e||(o.value=n),!0}const s=r?Number(t)e,re=e=>Reflect.getPrototypeOf(e);function se(e){return function(...t){return"delete"!==e&&("clear"===e?void 0:this)}}function le(e,t){const n=function(e,t){const n={get(n){const i=this.__v_raw,o=ke(i),r=ke(n);e||((0,a.$H)(n,r)&&F(o,0,n),F(o,0,r));const{has:s}=re(o),l=t?oe:e?De:Se;return s.call(o,n)?l(i.get(n)):s.call(o,r)?l(i.get(r)):void(i!==o&&i.get(n))},get size(){const t=this.__v_raw;return!e&&F(ke(t),0,I),t.size},has(t){const n=this.__v_raw,i=ke(n),o=ke(t);return e||((0,a.$H)(t,o)&&F(i,0,t),F(i,0,o)),t===o?n.has(t):n.has(t)||n.has(o)},forEach(n,a){const i=this,o=i.__v_raw,r=ke(o),s=t?oe:e?De:Se;return!e&&F(r,0,I),o.forEach((e,t)=>n.call(a,s(e),s(t),i))}};return(0,a.X$)(n,e?{add:se("add"),set:se("set"),delete:se("delete"),clear:se("clear")}:{add(e){const n=ke(this),i=re(n),o=ke(e),r=t||xe(e)||we(e)?e:o;return i.has.call(n,r)||(0,a.$H)(e,r)&&i.has.call(n,e)||(0,a.$H)(o,r)&&i.has.call(n,o)||(n.add(r),M(n,"add",r,r)),this},set(e,n){t||xe(n)||we(n)||(n=ke(n));const i=ke(this),{has:o,get:r}=re(i);let s=o.call(i,e);s||(e=ke(e),s=o.call(i,e));const l=r.call(i,e);return i.set(e,n),s?(0,a.$H)(n,l)&&M(i,"set",e,n):M(i,"add",e,n),this},delete(e){const t=ke(this),{has:n,get:a}=re(t);let i=n.call(t,e);i||(e=ke(e),i=n.call(t,e)),a&&a.call(t,e);const o=t.delete(e);return i&&M(t,"delete",e,void 0),o},clear(){const e=ke(this),t=0!==e.size,n=e.clear();return t&&M(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(i=>{n[i]=function(e,t,n){return function(...i){const o=this.__v_raw,r=ke(o),s=(0,a.CE)(r),l="entries"===e||e===Symbol.iterator&&s,c="keys"===e&&s,d=o[e](...i),u=n?oe:t?De:Se;return!t&&F(r,0,c?z:I),(0,a.X$)(Object.create(d),{next(){const{value:e,done:t}=d.next();return t?{value:e,done:t}:{value:l?[u(e[0]),u(e[1])]:u(e),done:t}}})}}(i,e,t)}),n}(e,t);return(t,i,o)=>"__v_isReactive"===i?!e:"__v_isReadonly"===i?e:"__v_raw"===i?t:Reflect.get((0,a.$3)(n,i)&&i in t?n:t,i,o)}const ce={get:le(!1,!1)},de={get:le(!1,!0)},ue={get:le(!0,!1)},pe={get:le(!0,!0)},Ae=new WeakMap,he=new WeakMap,ve=new WeakMap,fe=new WeakMap;function ge(e){return we(e)?e:_e(e,!1,te,ce,Ae)}function me(e){return _e(e,!1,ae,de,he)}function be(e){return _e(e,!0,ne,ue,ve)}function Ce(e){return _e(e,!0,ie,pe,fe)}function _e(e,t,n,i,o){if(!(0,a.Gv)(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;if(e.__v_skip||!Object.isExtensible(e))return e;const r=o.get(e);if(r)return r;const s=function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((0,a.Zf)(e));if(0===s)return e;const l=new Proxy(e,2===s?i:n);return o.set(e,l),l}function ye(e){return we(e)?ye(e.__v_raw):!(!e||!e.__v_isReactive)}function we(e){return!(!e||!e.__v_isReadonly)}function xe(e){return!(!e||!e.__v_isShallow)}function Ee(e){return!!e&&!!e.__v_raw}function ke(e){const t=e&&e.__v_raw;return t?ke(t):e}function Be(e){return!(0,a.$3)(e,"__v_skip")&&Object.isExtensible(e)&&(0,a.yQ)(e,"__v_skip",!0),e}const Se=e=>(0,a.Gv)(e)?ge(e):e,De=e=>(0,a.Gv)(e)?be(e):e;function Pe(e){return!!e&&!0===e.__v_isRef}function Ne(e){return Le(e,!1)}function Te(e){return Le(e,!0)}function Le(e,t){return Pe(e)?e:new Ie(e,t)}class Ie{constructor(e,t){this.dep=new N,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:ke(e),this._value=t?e:Se(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,n=this.__v_isShallow||xe(e)||we(e);e=n?e:ke(e),(0,a.$H)(e,t)&&(this._rawValue=e,this._value=n?e:Se(e),this.dep.trigger())}}function ze(e){return Pe(e)?e.value:e}function Re(e){return(0,a.Tn)(e)?e():ze(e)}const Fe={get:(e,t,n)=>"__v_raw"===t?e:ze(Reflect.get(e,t,n)),set:(e,t,n,a)=>{const i=e[t];return Pe(i)&&!Pe(n)?(i.value=n,!0):Reflect.set(e,t,n,a)}};function Me(e){return ye(e)?e:new Proxy(e,Fe)}class Oe{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new N,{get:n,set:a}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=a}get value(){return this._value=this._get()}set value(e){this._set(e)}}function Ge(e){return new Oe(e)}function $e(e){const t=(0,a.cy)(e)?new Array(e.length):{};for(const n in e)t[n]=je(e,n);return t}class Ve{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=(0,a.Bm)(t)?t:String(t),this._raw=ke(e);let i=!0,o=e;if(!(0,a.cy)(e)||(0,a.Bm)(this._key)||!(0,a.yI)(this._key))do{i=!Ee(o)||xe(o)}while(i&&(o=o.__v_raw));this._shallow=i}get value(){let e=this._object[this._key];return this._shallow&&(e=ze(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&Pe(this._raw[this._key])){const t=this._object[this._key];if(Pe(t))return void(t.value=e)}this._object[this._key]=e}get dep(){return function(e,t){const n=L.get(e);return n&&n.get(t)}(this._raw,this._key)}}class We{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function He(e,t,n){return Pe(e)?e:(0,a.Tn)(e)?new We(e):(0,a.Gv)(e)&&arguments.length>1?je(e,t,n):Ne(e)}function je(e,t,n){return new Ve(e,t,n)}class Xe{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new N(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=D-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags||o===this))return v(this,!0),!0}get value(){const e=this.dep.track();return _(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function Ue(e,t,n=!1){let i,o;return(0,a.Tn)(e)?i=e:(i=e.get,o=e.set),new Xe(i,o,n)}const qe={},Ye=new WeakMap;let Ke;function Ze(e,t,n=a.MZ){const{immediate:i,deep:o,once:r,scheduler:s,augmentJob:c,call:d}=n,p=e=>o?e:xe(e)||!1===o||0===o?Qe(e,1):Qe(e);let A,h,v,f,g=!1,m=!1;if(Pe(e)?(h=()=>e.value,g=xe(e)):ye(e)?(h=()=>p(e),g=!0):(0,a.cy)(e)?(m=!0,g=e.some(e=>ye(e)||xe(e)),h=()=>e.map(e=>Pe(e)?e.value:ye(e)?p(e):(0,a.Tn)(e)?d?d(e,2):e():void 0)):h=(0,a.Tn)(e)?t?d?()=>d(e,2):e:()=>{if(v){k();try{v()}finally{B()}}const t=Ke;Ke=A;try{return d?d(e,3,[f]):e(f)}finally{Ke=t}}:a.tE,t&&o){const e=h,t=!0===o?1/0:o;h=()=>Qe(e(),t)}const b=l(),C=()=>{A.stop(),b&&b.active&&(0,a.TF)(b.effects,A)};if(r&&t){const e=t;t=(...t)=>{const n=e(...t);return C(),n}}let _=m?new Array(e.length).fill(qe):qe;const y=e=>{if(1&A.flags&&(A.dirty||e))if(t){const n=A.run();if(e||o||g||(m?n.some((e,t)=>(0,a.$H)(e,_[t])):(0,a.$H)(n,_))){v&&v();const e=Ke;Ke=A;try{const e=[n,_===qe?void 0:m&&_[0]===qe?[]:_,f];_=n,d?d(t,3,e):t(...e)}finally{Ke=e}}}else A.run()};return c&&c(y),A=new u(h),A.scheduler=s?()=>s(y,!1):y,f=e=>function(e,t=!1,n=Ke){if(n){let t=Ye.get(n);t||Ye.set(n,t=[]),t.push(e)}}(e,!1,A),v=A.onStop=()=>{const e=Ye.get(A);if(e){if(d)d(e,4);else for(const t of e)t();Ye.delete(A)}},t?i?y(!0):_=A.run():s?s(y.bind(null,!0),!0):A.run(),C.pause=A.pause.bind(A),C.resume=A.resume.bind(A),C.stop=C,C}function Qe(e,t=1/0,n){if(t<=0||!(0,a.Gv)(e)||e.__v_skip)return e;if(((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,Pe(e))Qe(e.value,t,n);else if((0,a.cy)(e))for(let a=0;a{Qe(e,t,n)});else if((0,a.Qd)(e)){for(const a in e)Qe(e[a],t,n);for(const a of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,a)&&Qe(e[a],t,n)}return e}n.d(t,["a1",0,De,"lJ",0,Se])},67166(e,t,n){n.d(t,{$V:()=>Se,$y:()=>Ke,CE:()=>_n,Dl:()=>m,Gt:()=>G,Ht:()=>ct,K9:()=>tn,Lk:()=>Bn,Ng:()=>Dn,OA:()=>dt,PS:()=>V,Q3:()=>Tn,Qi:()=>z,RG:()=>nt,Tb:()=>it,WQ:()=>$,Wv:()=>yn,bo:()=>M,dY:()=>v,eW:()=>Nn,eX:()=>tt,fn:()=>Dt,g2:()=>qe,gN:()=>Ze,h:()=>ea,jt:()=>R,k6:()=>F,nT:()=>H,pI:()=>et,pM:()=>be,qL:()=>r,rk:()=>_e,uX:()=>fn,v6:()=>Rn,wB:()=>j,zz:()=>At});var a=n(41998),i=n(90033);function o(e,t,n,a){try{return a?e(...a):e()}catch(e){s(e,t,n)}}function r(e,t,n,a){if((0,i.Tn)(e)){const r=o(e,t,n,a);return r&&(0,i.yL)(r)&&r.catch(e=>{s(e,t,n)}),r}if((0,i.cy)(e)){const i=[];for(let o=0;o=_(n)?l.push(e):l.splice(function(e){let t=c+1,n=l.length;for(;t>>1,i=l[a],o=_(i);o_(e)-_(t));if(d.length=0,u){for(let t=0;tnull==e.id?2&e.flags?-1:1/0:e.id;function y(e){i.tE;try{for(c=0;cw.emit(e,...t)),x=[]):"undefined"!=typeof window&&window.HTMLElement&&!(null==(a=null==(n=window.navigator)?void 0:n.userAgent)?void 0:a.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(e=>{B(e,t)}),setTimeout(()=>{w||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,E=!0,x=[])},3e3)):(E=!0,x=[])}const S=N("component:added"),D=N("component:updated"),P=N("component:removed");function N(e){return t=>{k(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}let T=null,L=null;function I(e){const t=T;return T=e,L=e&&e.type.__scopeId||null,t}function z(e){L=e}function R(){L=null}function F(e,t=T,n){if(!t)return e;if(e._n)return e;const a=(...n)=>{a._d&&bn(-1);const i=I(t),o=hn.length;let r;try{r=e(...n)}finally{for(let e=hn.length;e>o;e--)gn();I(i),a._d&&bn(1)}return __VUE_PROD_DEVTOOLS__&&D(t),r};return a._n=!0,a._c=!0,a._d=!0,a}function M(e,t){if(null===T)return e;const n=Qn(T),o=e.dirs||(e.dirs=[]);for(let e=0;e1)return n&&(0,i.Tn)(t)?t.call(a&&a.proxy):t}}function V(){return!(!$n()&&!St)}const W=Symbol.for("v-scx");function H(e,t){return X(e,null,t)}function j(e,t,n){return X(e,t,n)}function X(e,t,n=i.MZ){const{immediate:o,deep:s,flush:l,once:c}=n,d=(0,i.X$)({},n),u=t&&o||!t&&"post"!==l;let p;if(Un)if("sync"===l){const e=$(W);p=e.__watcherHandles||(e.__watcherHandles=[])}else if(!u){const e=()=>{};return e.stop=i.tE,e.resume=i.tE,e.pause=i.tE,e}const A=Gn;d.call=(e,t,n)=>r(e,A,t,n);let h=!1;"post"===l?d.scheduler=e=>{en(e,A&&A.suspense)}:"sync"!==l&&(h=!0,d.scheduler=(e,t)=>{t?e():f(e)}),d.augmentJob=e=>{t&&(e.flags|=4),h&&(e.flags|=2,A&&(e.id=A.uid,e.i=A))};const v=(0,a.wB)(e,t,d);return Un&&(p?p.push(v):u&&v()),v}function U(e,t,n){const a=this.proxy,o=(0,i.Kg)(e)?e.includes(".")?q(a,e):()=>a[e]:e.bind(a,a);let r;(0,i.Tn)(t)?r=t:(r=t.handler,n=t);const s=Hn(this),l=X(o,r.bind(a),n);return s(),l}function q(e,t){const n=t.split(".");return()=>{let t=e;for(let e=0;ee.__isTeleport,Q=e=>e&&(e.disabled||""===e.disabled),J=e=>"undefined"!=typeof SVGElement&&e instanceof SVGElement,ee=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,te=(e,t)=>{const n=e&&e.to;return(0,i.Kg)(n)?t?t(n):null:n};function ne(e,t,n,{o:{insert:a},m:i},o=2){0===o&&a(e.targetAnchor,t,n);const{el:r,anchor:s,shapeFlag:l,children:c,props:d}=e,u=2===o;if(u&&a(r,t,n),!Y.has(e)&&(!u||Q(d))&&16&l)for(let e=0;e{16&e.shapeFlag&&d(e.children,t,n,i,o,r,s,l)},_=(e=t)=>{const n=Q(e.props),a=e.target=te(e.props,h),o=oe(a,e,v,A);a&&("svg"!==r&&J(a)?r="svg":"mathml"!==r&&ee(a)&&(r="mathml"),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(a),n||(C(e,a,o),ie(e,!1)))},y=e=>{const t=()=>{if(Y.get(e)===t){if(Y.delete(e),Q(e.props)){const t=g(e.el)||n;C(e,t,e.anchor),ie(e,!0)}_(e)}};Y.set(e,t),en(t,o)};if(null==e){const e=t.el=v(""),i=t.anchor=v("");if(A(e,n,a),A(i,n,a),(w=t.props)&&(w.defer||""===w.defer)||o&&o.pendingBranch)return void y(t);m&&(C(t,n,i),ie(t,!0)),_()}else{t.el=e.el;const a=t.anchor=e.anchor,d=Y.get(e);if(d)return d.flags|=8,Y.delete(e),void y(t);t.targetStart=e.targetStart;const A=t.target=e.target,v=t.targetAnchor=e.targetAnchor,f=Q(e.props),g=f?n:A,C=f?a:v;if("svg"===r||J(A)?r="svg":("mathml"===r||ee(A))&&(r="mathml"),b?(p(e.dynamicChildren,b,g,i,o,r,s),on(e,t,!0)):l||u(e,t,g,C,i,o,r,s,!1),m)f?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):ne(t,n,a,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const e=te(t.props,h);e&&(t.target=e,ne(t,e,null,c,0))}else f&&ne(t,A,v,c,1);ie(t,m)}var w},remove(e,t,n,{um:a,o:{remove:i}},o){const{shapeFlag:r,children:s,anchor:l,targetStart:c,targetAnchor:d,target:u,props:p}=e,A=Q(p),h=o||!A,v=Y.get(e);if(v&&(v.flags|=8,Y.delete(e)),u&&(i(c),i(d)),o&&i(l),!v&&(A||u)&&16&r)for(let e=0;e{const t=e.subTree;return t.component?de(t.component):t};function ue(e){let t=e[0];if(e.length>1){let n=!1;for(const a of e)if(a.type!==pn){t=a,n=!0;break}}return t}const pe={name:"BaseTransition",props:ce,setup(e,{slots:t}){const n=$n(),i=function(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Me(()=>{e.isMounted=!0}),$e(()=>{e.isUnmounting=!0}),e}();return()=>{const o=t.default&&me(t.default(),!0),r=o&&o.length?ue(o):n.subTree?Tn():void 0;if(!r)return;const s=(0,a.ux)(e),{mode:l}=s;if(i.isLeaving)return ve(r);const c=fe(r);if(!c)return ve(r);let d=he(c,s,i,n,e=>d=e);c.type!==pn&&ge(c,d);let u=n.subTree&&fe(n.subTree);if(u&&u.type!==pn&&!xn(u,c)&&de(n).type!==pn){let e=he(u,s,i,n);if(ge(u,e),"out-in"===l&&c.type!==pn)return i.isLeaving=!0,e.afterLeave=()=>{i.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},ve(r);"in-out"===l&&c.type!==pn?e.delayLeave=(e,t,n)=>{Ae(i,u)[String(u.key)]=u,e[re]=()=>{t(),e[re]=void 0,delete d.delayedLeave,u=void 0},d.delayedLeave=()=>{n(),delete d.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return r}}};function Ae(e,t){const{leavingVNodes:n}=e;let a=n.get(t.type);return a||(a=Object.create(null),n.set(t.type,a)),a}function he(e,t,n,a,o){const{appear:s,mode:l,persisted:c=!1,onBeforeEnter:d,onEnter:u,onAfterEnter:p,onEnterCancelled:A,onBeforeLeave:h,onLeave:v,onAfterLeave:f,onLeaveCancelled:g,onBeforeAppear:m,onAppear:b,onAfterAppear:C,onAppearCancelled:_}=t,y=String(e.key),w=Ae(n,e),x=(e,t)=>{e&&r(e,a,9,t)},E=(e,t)=>{const n=t[1];x(e,t),(0,i.cy)(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},k={mode:l,persisted:c,beforeEnter(t){let a=d;if(!n.isMounted){if(!s)return;a=m||d}t[re]&&t[re](!0);const i=w[y];i&&xn(e,i)&&i.el[re]&&i.el[re](),x(a,[t])},enter(t){if(w[y]===e)return;let a=u,i=p,o=A;if(!n.isMounted){if(!s)return;a=b||u,i=C||p,o=_||A}let r=!1;t[se]=e=>{r||(r=!0,x(e?o:i,[t]),k.delayedLeave&&k.delayedLeave(),t[se]=void 0)};const l=t[se].bind(null,!1);a?E(a,[t,l]):l()},leave(t,a){const i=String(e.key);if(t[se]&&t[se](!0),n.isUnmounting)return a();x(h,[t]);let o=!1;t[re]=n=>{o||(o=!0,a(),x(n?g:f,[t]),t[re]=void 0,w[i]===e&&delete w[i])};const r=t[re].bind(null,!1);w[i]=e,v?E(v,[t,r]):r()},clone(e){const i=he(e,t,n,a,o);return o&&o(i),i}};return k}function ve(e){if(Pe(e))return(e=Pn(e)).children=null,e}function fe(e){if(!Pe(e))return Z(e.type)&&e.children?ue(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&(0,i.Tn)(n.default))return n.default()}}function ge(e,t){if(6&e.shapeFlag&&e.component){e.transition=t;const n=e.component.subTree;ge(Z(n.type)&&fe(n)||n,t)}else 128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function me(e,t=!1,n){let a=[],i=0;for(let o=0;o1)for(let e=0;e(0,i.X$)({name:e.name},t,{setup:e}))():e}function Ce(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function _e(e){const t=$n(),n=(0,a.IJ)(null);if(t){const a=t.refs===i.MZ?t.refs={}:t.refs;Object.defineProperty(a,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e})}return n}function ye(e,t){let n;return!(!(n=Object.getOwnPropertyDescriptor(e,t))||n.configurable)}const we=new WeakMap;function xe(e,t,n,r,s=!1){if((0,i.cy)(e))return void e.forEach((e,a)=>xe(e,t&&((0,i.cy)(t)?t[a]:t),n,r,s));if(Be(r)&&!s)return void(512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&xe(e,t,n,r.component.subTree));const l=4&r.shapeFlag?Qn(r.component):r.el,c=s?null:l,{i:d,r:u}=e,p=t&&t.r,A=d.refs===i.MZ?d.refs={}:d.refs,h=d.setupState,v=(0,a.ux)(h),f=h===i.MZ?i.NO:e=>!ye(A,e)&&(0,i.$3)(v,e),g=(e,t)=>!t||!ye(A,t);if(null!=p&&p!==u)if(Ee(t),(0,i.Kg)(p))A[p]=null,f(p)&&(h[p]=null);else if((0,a.i9)(p)){const e=t;g(0,e.k)&&(p.value=null),e.k&&(A[e.k]=null)}if((0,i.Tn)(u))o(u,d,12,[c,A]);else{const t=(0,i.Kg)(u),o=(0,a.i9)(u);if(t||o){const a=()=>{if(e.f){const n=t?f(u)?h[u]:A[u]:g()||!e.k?u.value:A[e.k];if(s)(0,i.cy)(n)&&(0,i.TF)(n,l);else if((0,i.cy)(n))n.includes(l)||n.push(l);else if(t)A[u]=[l],f(u)&&(h[u]=A[u]);else{const t=[l];g(0,e.k)&&(u.value=t),e.k&&(A[e.k]=t)}}else t?(A[u]=c,f(u)&&(h[u]=c)):o&&(g(0,e.k)&&(u.value=c),e.k&&(A[e.k]=c))};if(c){const t=()=>{a(),we.delete(e)};t.id=-1,we.set(e,t),en(t,n)}else Ee(e),a()}}}function Ee(e){const t=we.get(e);t&&(t.flags|=8,we.delete(e))}const ke=e=>8===e.nodeType;(0,i.We)().requestIdleCallback,(0,i.We)().cancelIdleCallback;const Be=e=>!!e.type.__asyncLoader;function Se(e){(0,i.Tn)(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:r=200,hydrate:l,timeout:c,suspensible:d=!0,onError:u}=e;let p,A=null,h=0;const v=()=>{let e;return A||(e=A=t().catch(e=>{if(e=e instanceof Error?e:new Error(String(e)),u)return new Promise((t,n)=>{u(e,()=>t((h++,A=null,v())),()=>n(e),h+1)});throw e}).then(t=>e!==A&&A?A:(t&&(t.__esModule||"Module"===t[Symbol.toStringTag])&&(t=t.default),p=t,t)))};return be({name:"AsyncComponentWrapper",__asyncLoader:v,__asyncHydrate(e,t,n){const a=e.isConnected;let i=!1;(t.bu||(t.bu=[])).push(()=>i=!0);const o=()=>{i||!e.parentNode||a&&!e.isConnected||n()},r=l?()=>{const n=l(o,t=>function(e,t){if(ke(e)&&"["===e.data){let n=1,a=e.nextSibling;for(;a;){if(1===a.nodeType){if(!1===t(a))break}else if(ke(a))if("]"===a.data){if(0===--n)break}else"["===a.data&&n++;a=a.nextSibling}}else t(e)}(e,t));n&&(t.bum||(t.bum=[])).push(n)}:o;p?r():v().then(()=>!t.isUnmounted&&r())},get __asyncResolved(){return p},setup(){const e=Gn;if(Ce(e),p)return()=>De(p,e);const t=t=>{A=null,s(t,e,13,!o)};if(d&&e.suspense||Un)return v().then(t=>()=>De(t,e)).catch(e=>(t(e),()=>o?Sn(o,{error:e}):null));const i=(0,a.KR)(!1),l=(0,a.KR)(),u=(0,a.KR)(!!r);let h,f;return Ve(()=>{null!=h&&clearTimeout(h),null!=f&&clearTimeout(f)}),r&&(f=setTimeout(()=>{e.isUnmounted||(u.value=!1)},r)),null!=c&&(h=setTimeout(()=>{if(!e.isUnmounted&&!i.value&&!l.value){const e=new Error(`Async component timed out after ${c}ms.`);t(e),l.value=e}},c)),v().then(()=>{e.isUnmounted||(i.value=!0,e.parent&&Pe(e.parent.vnode)&&e.parent.update())}).catch(n=>{e.isUnmounted?A=null:(t(n),l.value=n)}),()=>i.value&&p?De(p,e):l.value&&o?Sn(o,{error:l.value}):n&&!u.value?De(n,e):void 0}})}function De(e,t){const{ref:n,props:a,children:i,ce:o}=t.vnode,r=Sn(e,a,i);return r.ref=n,r.ce=o,delete t.vnode.ce,r}const Pe=e=>e.type.__isKeepAlive;function Ne(e,t){Le(e,"a",t)}function Te(e,t){Le(e,"da",t)}function Le(e,t,n=Gn){const a=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(ze(t,a,n),n){let e=n.parent;for(;e&&e.parent;)Pe(e.parent.vnode)&&Ie(a,t,n,e),e=e.parent}}function Ie(e,t,n,a){const o=ze(t,e,a,!0);Ve(()=>{(0,i.TF)(a[t],o)},n)}function ze(e,t,n=Gn,i=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{(0,a.C4)();const o=Hn(n),s=r(t,n,e,i);return o(),(0,a.bl)(),s});return i?o.unshift(s):o.push(s),s}}const Re=e=>(t,n=Gn)=>{Un&&"sp"!==e||ze(e,(...e)=>t(...e),n)},Fe=Re("bm"),Me=Re("m"),Oe=Re("bu"),Ge=Re("u"),$e=Re("bum"),Ve=Re("um"),We=Re("sp"),He=Re("rtg"),je=Re("rtc");function Xe(e,t=Gn){ze("ec",e,t)}const Ue="components";function qe(e,t){return Qe(Ue,e,!0,t)||e}const Ye=Symbol.for("v-ndc");function Ke(e){return(0,i.Kg)(e)?Qe(Ue,e,!1)||e:e||Ye}function Ze(e){return Qe("directives",e)}function Qe(e,t,n=!0,a=!1){const o=T||Gn;if(o){const n=o.type;if(e===Ue){const e=function(e,t=!0){return(0,i.Tn)(e)?e.displayName||e.name:e.name||t&&e.__name}(n,!1);if(e&&(e===t||e===(0,i.PT)(t)||e===(0,i.ZH)((0,i.PT)(t))))return n}const r=Je(o[e]||n[e],t)||Je(o.appContext[e],t);return!r&&a?n:r}}function Je(e,t){return e&&(e[t]||e[(0,i.PT)(t)]||e[(0,i.ZH)((0,i.PT)(t))])}function et(e,t,n,o){let r;const s=n&&n[o],l=(0,i.cy)(e);if(l||(0,i.Kg)(e)){let n=!1,i=!1;l&&(0,a.g8)(e)&&(n=!(0,a.fE)(e),i=(0,a.Tm)(e),e=(0,a.qA)(e)),r=new Array(e.length);for(let o=0,l=e.length;ot(e,n,void 0,s&&s[n]));else{const n=Object.keys(e);r=new Array(n.length);for(let a=0,i=n.length;a{const t=a.fn(...e);return t&&(t.key=a.key),t}:a.fn)}return e}function nt(e,t,n,a,o,r){if(null==n&&(n={}),T.ce||T.parent&&Be(T.parent)&&T.parent.ce){const e=null!=r&&null==n.key?(0,i.X$)({},n,{key:r}):n,o=Object.keys(e).length>0;return"default"!==t&&(e.name=t),fn(),yn(dn,null,[Sn("slot",e,a&&a())],o?-2:64)}let s=e[t];s&&s._c&&(s._d=!1);const l=hn.length;let c;fn();try{const o=s&&at(s(n)),l=n.key||r||o&&o.key;c=yn(dn,{key:(l&&!(0,i.Bm)(l)?l:`_${t}`)+(!o&&a?"_fb":"")},o||(a?a():[]),o&&1===e._?64:-2)}catch(e){for(let e=hn.length;e>l;e--)gn();throw e}finally{s&&s._c&&(s._d=!0)}return!o&&c.scopeId&&(c.slotScopeIds=[c.scopeId+"-s"]),c}function at(e){return e.some(e=>!wn(e)||e.type!==pn&&!(e.type===dn&&!at(e.children)))?e:null}function it(e,t){const n={};for(const a in e)n[t&&/[A-Z]/.test(a)?`on:${a}`:(0,i.rU)(a)]=e[a];return n}const ot=e=>e?Xn(e)?Qn(e):ot(e.parent):null,rt=(0,i.X$)(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ot(e.parent),$root:e=>ot(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>__VUE_OPTIONS_API__?gt(e):e.type,$forceUpdate:e=>e.f||(e.f=()=>{f(e.update)}),$nextTick:e=>e.n||(e.n=v.bind(e.proxy)),$watch:e=>__VUE_OPTIONS_API__?U.bind(e):i.tE}),st=(e,t)=>e!==i.MZ&&!e.__isScriptSetup&&(0,i.$3)(e,t),lt={get({_:e},t){if("__v_skip"===t)return!0;const{ctx:n,setupState:o,data:r,props:s,accessCache:l,type:c,appContext:d}=e;if("$"!==t[0]){const e=l[t];if(void 0!==e)switch(e){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return s[t]}else{if(st(o,t))return l[t]=1,o[t];if(__VUE_OPTIONS_API__&&r!==i.MZ&&(0,i.$3)(r,t))return l[t]=2,r[t];if((0,i.$3)(s,t))return l[t]=3,s[t];if(n!==i.MZ&&(0,i.$3)(n,t))return l[t]=4,n[t];__VUE_OPTIONS_API__&&!ht||(l[t]=0)}}const u=rt[t];let p,A;return u?("$attrs"===t&&(0,a.u4)(e.attrs,"get",""),u(e)):(p=c.__cssModules)&&(p=p[t])?p:n!==i.MZ&&(0,i.$3)(n,t)?(l[t]=4,n[t]):(A=d.config.globalProperties,(0,i.$3)(A,t)?A[t]:void 0)},set({_:e},t,n){const{data:a,setupState:o,ctx:r}=e;return st(o,t)?(o[t]=n,!0):__VUE_OPTIONS_API__&&a!==i.MZ&&(0,i.$3)(a,t)?(a[t]=n,!0):!((0,i.$3)(e.props,t)||"$"===t[0]&&t.slice(1)in e||(r[t]=n,0))},has({_:{data:e,setupState:t,accessCache:n,ctx:a,appContext:o,props:r,type:s}},l){let c;return!!(n[l]||__VUE_OPTIONS_API__&&e!==i.MZ&&"$"!==l[0]&&(0,i.$3)(e,l)||st(t,l)||(0,i.$3)(r,l)||(0,i.$3)(a,l)||(0,i.$3)(rt,l)||(0,i.$3)(o.config.globalProperties,l)||(c=s.__cssModules)&&c[l])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:(0,i.$3)(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ct(){return ut().slots}function dt(){return ut().attrs}function ut(e){const t=$n();return t.setupContext||(t.setupContext=Zn(t))}function pt(e){return(0,i.cy)(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}function At(e,t){return e&&t?(0,i.cy)(e)&&(0,i.cy)(t)?e.concat(t):(0,i.X$)({},pt(e),pt(t)):e||t}let ht=!0;function vt(e,t,n){r((0,i.cy)(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function ft(e,t,n,a){let o=a.includes(".")?q(n,a):()=>n[a];if((0,i.Kg)(e)){const n=t[e];(0,i.Tn)(n)&&j(o,n)}else if((0,i.Tn)(e))j(o,e.bind(n));else if((0,i.Gv)(e))if((0,i.cy)(e))e.forEach(e=>ft(e,t,n,a));else{const a=(0,i.Tn)(e.handler)?e.handler.bind(n):t[e.handler];(0,i.Tn)(a)&&j(o,a,e)}}function gt(e){const t=e.type,{mixins:n,extends:a}=t,{mixins:o,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,l=r.get(t);let c;return l?c=l:o.length||n||a?(c={},o.length&&o.forEach(e=>mt(c,e,s,!0)),mt(c,t,s)):c=t,(0,i.Gv)(t)&&r.set(t,c),c}function mt(e,t,n,a=!1){const{mixins:i,extends:o}=t;o&&mt(e,o,n,!0),i&&i.forEach(t=>mt(e,t,n,!0));for(const i in t)if(a&&"expose"===i);else{const a=bt[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const bt={data:Ct,props:xt,emits:xt,methods:wt,computed:wt,beforeCreate:yt,created:yt,beforeMount:yt,mounted:yt,beforeUpdate:yt,updated:yt,beforeDestroy:yt,beforeUnmount:yt,destroyed:yt,unmounted:yt,activated:yt,deactivated:yt,errorCaptured:yt,serverPrefetch:yt,components:wt,directives:wt,watch:function(e,t){if(!e)return t;if(!t)return e;const n=(0,i.X$)(Object.create(null),e);for(const a in t)n[a]=yt(e[a],t[a]);return n},provide:Ct,inject:function(e,t){return wt(_t(e),_t(t))}};function Ct(e,t){return t?e?function(){return(0,i.X$)((0,i.Tn)(e)?e.call(this,this):e,(0,i.Tn)(t)?t.call(this,this):t)}:t:e}function _t(e){if((0,i.cy)(e)){const t={};for(let n=0;n(s.has(e)||(e&&(0,i.Tn)(e.install)?(s.add(e),e.install(d,...t)):(0,i.Tn)(e)&&(s.add(e),e(d,...t))),d),mixin:e=>(__VUE_OPTIONS_API__&&(o.mixins.includes(e)||o.mixins.push(e)),d),component:(e,t)=>t?(o.components[e]=t,d):o.components[e],directive:(e,t)=>t?(o.directives[e]=t,d):o.directives[e],mount(i,r,s){if(!c){const l=d._ceVNode||Sn(n,a);return l.appContext=o,!0===s?s="svg":!1===s&&(s=void 0),r&&t?t(l,i):e(l,i,s),c=!0,d._container=i,i.__vue_app__=d,__VUE_PROD_DEVTOOLS__&&(d._instance=l.component,function(e,t){k("app:init",e,t,{Fragment:dn,Text:un,Comment:pn,Static:An})}(d,ta)),Qn(l.component)}},onUnmount(e){l.push(e)},unmount(){c&&(r(l,d._instance,16),e(null,d._container),__VUE_PROD_DEVTOOLS__&&(d._instance=null,function(e){k("app:unmount",e)}(d)),delete d._container.__vue_app__)},provide:(e,t)=>(o.provides[e]=t,d),runWithContext(e){const t=St;St=d;try{return e()}finally{St=t}}};return d}}let St=null;function Dt(e,t,n=i.MZ){const o=$n(),r=(0,i.PT)(t),s=(0,i.Tg)(t),l=Pt(e,r),c=(0,a.rY)((a,l)=>{let c,d,u=i.MZ;return X(()=>{const t=e[r];(0,i.$H)(c,t)&&(c=t,l())},null,{flush:"sync"}),{get:()=>(a(),n.get?n.get(c):c),set(e){const a=n.set?n.set(e):e;if(!((0,i.$H)(a,c)||u!==i.MZ&&(0,i.$H)(e,u)))return;const p=o.vnode.props,A=!!(p&&(t in p||r in p||s in p)&&(`onUpdate:${t}`in p||`onUpdate:${r}`in p||`onUpdate:${s}`in p));A||(c=e,l()),o.emit(`update:${t}`,a),(0,i.$H)(e,u)&&((0,i.$H)(e,a)&&!(0,i.$H)(a,d)||A&&u!==i.MZ&&!(0,i.$H)(a,c))&&l(),u=e,d=a}}});return c[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?l||i.MZ:c,done:!1}:{done:!0}}},c}const Pt=(e,t)=>"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${(0,i.PT)(t)}Modifiers`]||e[`${(0,i.Tg)(t)}Modifiers`];function Nt(e,t,...n){if(e.isUnmounted)return;const a=e.vnode.props||i.MZ;let o=n;const s=t.startsWith("update:"),l=s&&Pt(a,t.slice(7));let c;l&&(l.trim&&(o=n.map(e=>(0,i.Kg)(e)?e.trim():e)),l.number&&(o=o.map(i.bB))),__VUE_PROD_DEVTOOLS__&&function(e,t,n){k("component:emit",e.appContext.app,e,t,n)}(e,t,o);let d=a[c=(0,i.rU)(t)]||a[c=(0,i.rU)((0,i.PT)(t))];!d&&s&&(d=a[c=(0,i.rU)((0,i.Tg)(t))]),d&&r(d,e,6,o);const u=a[c+"Once"];if(u){if(e.emitted){if(e.emitted[c])return}else e.emitted={};e.emitted[c]=!0,r(u,e,6,o)}}const Tt=new WeakMap;function Lt(e,t,n=!1){const a=__VUE_OPTIONS_API__&&n?Tt:t.emitsCache,o=a.get(e);if(void 0!==o)return o;const r=e.emits;let s={},l=!1;if(__VUE_OPTIONS_API__&&!(0,i.Tn)(e)){const a=e=>{const n=Lt(e,t,!0);n&&(l=!0,(0,i.X$)(s,n))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return r||l?((0,i.cy)(r)?r.forEach(e=>s[e]=null):(0,i.X$)(s,r),(0,i.Gv)(e)&&a.set(e,s),s):((0,i.Gv)(e)&&a.set(e,null),null)}function It(e,t){return!(!e||!(0,i.Mp)(t))&&(t="Once"===(t=t.slice(2))?t:t.replace(/Once$/,""),(0,i.$3)(e,t[0].toLowerCase()+t.slice(1))||(0,i.$3)(e,(0,i.Tg)(t))||(0,i.$3)(e,t))}function zt(e){const{type:t,vnode:n,proxy:a,withProxy:o,propsOptions:[r],slots:l,attrs:c,emit:d,render:u,renderCache:p,props:A,data:h,setupState:v,ctx:f,inheritAttrs:g}=e,m=I(e);let b,C;try{if(4&n.shapeFlag){const e=o||a,t=e;b=Ln(u.call(t,e,p,A,v,h,f)),C=c}else{const e=t;b=Ln(e.length>1?e(A,{attrs:c,slots:l,emit:d}):e(A,null)),C=t.props?c:Rt(c)}}catch(t){hn.length=0,s(t,e,1),b=Sn(pn)}let _=b;if(C&&!1!==g){const e=Object.keys(C),{shapeFlag:t}=_;e.length&&7&t&&(r&&e.some(i.CP)&&(C=Ft(C,r)),_=Pn(_,C,!1,!0))}return n.dirs&&(_=Pn(_,null,!1,!0),_.dirs=_.dirs?_.dirs.concat(n.dirs):n.dirs),n.transition&&ge(Z(_.type)&&fe(_)||_,n.transition),b=_,I(m),b}const Rt=e=>{let t;for(const n in e)("class"===n||"style"===n||(0,i.Mp)(n))&&((t||(t={}))[n]=e[n]);return t},Ft=(e,t)=>{const n={};for(const a in e)(0,i.CP)(a)&&a.slice(9)in t||(n[a]=e[a]);return n};function Mt(e,t,n){const a=Object.keys(t);if(a.length!==Object.keys(e).length)return!0;for(let i=0;iObject.create(Gt),Vt=e=>Object.getPrototypeOf(e)===Gt;function Wt(e,t,n,o){const[r,s]=e.propsOptions;let l,c=!1;if(t)for(let a in t){if((0,i.SU)(a))continue;const d=t[a];let u;r&&(0,i.$3)(r,u=(0,i.PT)(a))?s&&s.includes(u)?(l||(l={}))[u]=d:n[u]=d:It(e.emitsOptions,a)||a in o&&d===o[a]||(o[a]=d,c=!0)}if(s){const t=(0,a.ux)(n),o=l||i.MZ;for(let a=0;a{c=!0;const[n,a]=Xt(e,t,!0);(0,i.X$)(s,n),a&&l.push(...a)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!r&&!c)return(0,i.Gv)(e)&&a.set(e,i.Oj),i.Oj;if((0,i.cy)(r))for(let e=0;e"_"===e||"_ctx"===e||"$stable"===e,Yt=e=>(0,i.cy)(e)?e.map(Ln):[Ln(e)],Kt=(e,t,n)=>{if(t._n)return t;const a=F((...e)=>Yt(t(...e)),n);return a._c=!1,a},Zt=(e,t,n)=>{const a=e._ctx;for(const n in e){if(qt(n))continue;const o=e[n];if((0,i.Tn)(o))t[n]=Kt(0,o,a);else if(null!=o){const e=Yt(o);t[n]=()=>e}}},Qt=(e,t)=>{const n=Yt(t);e.slots.default=()=>n},Jt=(e,t,n)=>{for(const a in t)!n&&qt(a)||(e[a]=t[a])},en=function(e,t){t&&t.pendingBranch?(0,i.cy)(e)?t.effects.push(...e):t.effects.push(e):m(e)};function tn(e){return function(e,t){"boolean"!=typeof __VUE_OPTIONS_API__&&((0,i.We)().__VUE_OPTIONS_API__=!0),"boolean"!=typeof __VUE_PROD_DEVTOOLS__&&((0,i.We)().__VUE_PROD_DEVTOOLS__=!1),"boolean"!=typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&((0,i.We)().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__=!1);const n=(0,i.We)();n.__VUE__=!0,__VUE_PROD_DEVTOOLS__&&B(n.__VUE_DEVTOOLS_GLOBAL_HOOK__,n);const{insert:r,remove:l,patchProp:c,createElement:d,createText:u,createComment:p,setText:A,setElementText:h,parentNode:v,nextSibling:g,setScopeId:m=i.tE,insertStaticContent:_}=e,y=(e,t,n,a=null,i=null,o=null,r=void 0,s=null,l=!!t.dynamicChildren)=>{if(e===t)return;e&&!xn(e,t)&&(a=ne(e),Z(e,i,o,!0),e=null),-2===t.patchFlag&&(l=!1,t.dynamicChildren=null);const{type:c,ref:d,shapeFlag:u}=t;switch(c){case un:x(e,t,n,a);break;case pn:E(e,t,n,a);break;case An:null==e&&k(t,n,a,r);break;case dn:G(e,t,n,a,i,o,r,s,l);break;default:1&u?T(e,t,n,a,i,o,r,s,l):6&u?$(e,t,n,a,i,o,r,s,l):(64&u||128&u)&&c.process(e,t,n,a,i,o,r,s,l,oe)}null!=d&&i?xe(d,e&&e.ref,o,t||e,!t):null==d&&e&&null!=e.ref&&xe(e.ref,null,o,e,!0)},x=(e,t,n,a)=>{if(null==e)r(t.el=u(t.children),n,a);else{const n=t.el=e.el;t.children!==e.children&&A(n,t.children)}},E=(e,t,n,a)=>{null==e?r(t.el=p(t.children||""),n,a):t.el=e.el},k=(e,t,n,a)=>{[e.el,e.anchor]=_(e.children,t,n,a,e.el,e.anchor)},N=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=g(e),l(e),e=n;l(t)},T=(e,t,n,a,i,o,r,s,l)=>{if("svg"===t.type?r="svg":"math"===t.type&&(r="mathml"),null==e)L(t,n,a,i,o,r,s,l);else{const n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),R(e,t,i,o,r,s,l)}finally{n&&n._endPatch()}}},L=(e,t,n,a,o,s,l,u)=>{let p,A;const{props:v,shapeFlag:f,transition:g,dirs:m}=e;if(p=e.el=d(e.type,s,v&&v.is,v),8&f?h(p,e.children):16&f&&z(e.children,p,null,a,o,nn(e,s),l,u),m&&O(e,null,a,"created"),I(p,e,e.scopeId,l,a),v){for(const e in v)"value"===e||(0,i.SU)(e)||c(p,e,null,v[e],s,a);"value"in v&&c(p,"value",null,v.value,s),(A=v.onVnodeBeforeMount)&&Fn(A,a,e)}__VUE_PROD_DEVTOOLS__&&((0,i.yQ)(p,"__vnode",e,!0),(0,i.yQ)(p,"__vueParentComponent",a,!0)),m&&O(e,null,a,"beforeMount");const b=function(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}(o,g);b&&g.beforeEnter(p),r(p,t,n),((A=v&&v.onVnodeMounted)||b||m)&&en(()=>{try{A&&Fn(A,a,e),b&&g.enter(p),m&&O(e,null,a,"mounted")}finally{}},o)},I=(e,t,n,a,i)=>{if(n&&m(e,n),a)for(let t=0;t{for(let c=l;c{const l=t.el=e.el;__VUE_PROD_DEVTOOLS__&&(l.__vnode=t);let{patchFlag:d,dynamicChildren:u,dirs:p}=t;d|=16&e.patchFlag;const A=e.props||i.MZ,v=t.props||i.MZ;let f;if(n&&an(n,!1),(f=v.onVnodeBeforeUpdate)&&Fn(f,n,t,e),p&&O(t,e,n,"beforeUpdate"),n&&an(n,!0),!u||e.dynamicChildren&&e.dynamicChildren.length===u.length||(d=0,s=!1,u=null),(A.innerHTML&&null==v.innerHTML||A.textContent&&null==v.textContent)&&h(l,""),u?F(e.dynamicChildren,u,l,n,a,nn(t,o),r):s||X(e,t,l,null,n,a,nn(t,o),r,!1),d>0){if(16&d)M(l,A,v,n,o);else if(2&d&&A.class!==v.class&&c(l,"class",null,v.class,o),4&d&&c(l,"style",A.style,v.style,o),8&d){const e=t.dynamicProps;for(let t=0;t{f&&Fn(f,n,t,e),p&&O(t,e,n,"updated")},a)},F=(e,t,n,a,i,o,r)=>{for(let s=0;s{if(t!==n){if(t!==i.MZ)for(const r in t)(0,i.SU)(r)||r in n||c(e,r,t[r],null,o,a);for(const r in n){if((0,i.SU)(r))continue;const s=n[r],l=t[r];s!==l&&"value"!==r&&c(e,r,l,s,o,a)}"value"in n&&c(e,"value",t.value,n.value,o)}},G=(e,t,n,a,i,o,s,l,c)=>{const d=t.el=e?e.el:u(""),p=t.anchor=e?e.anchor:u("");let{patchFlag:A,dynamicChildren:h,slotScopeIds:v}=t;v&&(l=l?l.concat(v):v),null==e?(r(d,n,a),r(p,n,a),z(t.children||[],n,p,i,o,s,l,c)):A>0&&64&A&&h&&e.dynamicChildren&&e.dynamicChildren.length===h.length?(F(e.dynamicChildren,h,n,i,o,s,l),(null!=t.key||i&&t===i.subTree)&&on(e,t,!0)):X(e,t,n,p,i,o,s,l,c)},$=(e,t,n,a,i,o,r,s,l)=>{t.slotScopeIds=s,null==e?512&t.shapeFlag?i.ctx.activate(t,n,a,r,l):V(t,n,a,i,o,r,l):W(e,t,l)},V=(e,t,n,r,l,c,d)=>{const u=e.component=function(e,t,n){const o=e.type,r=(t?t.appContext:e.appContext)||Mn,s={uid:On++,vnode:e,type:o,parent:t,appContext:r,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new a.yC(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(r.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Xt(o,r),emitsOptions:Lt(o,r),emit:null,emitted:null,propsDefaults:i.MZ,inheritAttrs:o.inheritAttrs,ctx:i.MZ,data:i.MZ,props:i.MZ,attrs:i.MZ,slots:i.MZ,refs:i.MZ,setupState:i.MZ,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return s.ctx={_:s},s.root=t?t.root:s,s.emit=Nt.bind(null,s),e.ce&&e.ce(s),s}(e,r,l);if(Pe(e)&&(u.ctx.renderer=oe),function(e,t=!1,n=!1){t&&Wn(t);const{props:r,children:l}=e.vnode,c=Xn(e);!function(e,t,n,i=!1){const o={},r=$t();e.propsDefaults=Object.create(null),Wt(e,t,o,r);for(const t in e.propsOptions[0])t in o||(o[t]=void 0);n?e.props=i?o:(0,a.Gc)(o):e.type.props?e.props=o:e.props=r,e.attrs=r}(e,r,c,t),((e,t,n)=>{const a=e.slots=$t();if(32&e.vnode.shapeFlag){const e=t._;e?(Jt(a,t,n),n&&(0,i.yQ)(a,"_",e,!0)):Zt(t,a)}else t&&Qt(e,t)})(e,l,n||t);const d=c?function(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,lt);const{setup:r}=n;if(r){(0,a.C4)();const n=e.setupContext=r.length>1?Zn(e):null,l=Hn(e),c=o(r,e,0,[e.props,n]),d=(0,i.yL)(c);if((0,a.bl)(),l(),!d&&!e.sp||Be(e)||Ce(e),d){if(c.then(jn,jn),t)return c.then(n=>{Wn(!0);try{qn(e,n,t)}finally{Wn(!1)}}).catch(t=>{s(t,e,0)});e.asyncDep=c}else qn(e,c,t)}else Yn(e,t)}(e,t):void 0;t&&Wn(!1)}(u,!1,d),u.asyncDep){if(l&&l.registerDep(u,H,d),!e.el){const a=u.subTree=Sn(pn);E(null,a,t,n),e.placeholder=a.el}}else H(u,e,t,n,l,c,d)},W=(e,t,n)=>{const a=t.component=e.component;if(function(e,t,n){const{props:a,children:i,component:o}=e,{props:r,children:s,patchFlag:l}=t,c=o.emitsOptions;if(t.dirs||t.transition)return!0;if(!(n&&l>=0))return!(!i&&!s||s&&s.$stable)||a!==r&&(a?!r||Mt(a,r,c):!!r);if(1024&l)return!0;if(16&l)return a?Mt(a,r,c):!!r;if(8&l){const e=t.dynamicProps;for(let t=0;t{e.scope.on();const c=e.effect=new a.X2(()=>{if(e.isMounted){let{next:t,bu:n,u:a,parent:o,vnode:c}=e;{const n=rn(e);if(n)return t&&(t.el=c.el,j(e,t,l)),void n.asyncDep.then(()=>{en(()=>{e.isUnmounted||d()},r)})}let u,p=t;an(e,!1),t?(t.el=c.el,j(e,t,l)):t=c,n&&(0,i.DY)(n),(u=t.props&&t.props.onVnodeBeforeUpdate)&&Fn(u,o,t,c),an(e,!0);const A=zt(e),h=e.subTree;e.subTree=A,y(h,A,v(h.el),ne(h),e,r,s),t.el=A.el,null===p&&function({vnode:e,parent:t,suspense:n},a){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.suspense.vnode.el=n.el=a,e=n),n!==e)break;(e=t.vnode).el=a,t=t.parent}n&&n.activeBranch===e&&(n.vnode.el=a)}(e,A.el),a&&en(a,r),(u=t.props&&t.props.onVnodeUpdated)&&en(()=>Fn(u,o,t,c),r),__VUE_PROD_DEVTOOLS__&&D(e)}else{let a;const{el:l,props:c}=t,{bm:d,m:u,parent:p,root:A,type:h}=e,v=Be(t);if(an(e,!1),d&&(0,i.DY)(d),!v&&(a=c&&c.onVnodeBeforeMount)&&Fn(a,p,t),an(e,!0),l&&le){const t=()=>{e.subTree=zt(e),le(l,e.subTree,e,r,null)};v&&h.__asyncHydrate?h.__asyncHydrate(l,e,t):t()}else{A.ce&&A.ce._hasShadowRoot()&&A.ce._injectChildStyle(h,e.parent?e.parent.type:void 0);const a=e.subTree=zt(e);y(null,a,n,o,e,r,s),t.el=a.el}if(u&&en(u,r),!v&&(a=c&&c.onVnodeMounted)){const e=t;en(()=>Fn(a,p,e),r)}(256&t.shapeFlag||p&&Be(p.vnode)&&256&p.vnode.shapeFlag)&&e.a&&en(e.a,r),e.isMounted=!0,__VUE_PROD_DEVTOOLS__&&S(e),t=n=o=null}});e.scope.off();const d=e.update=c.run.bind(c),u=e.job=c.runIfDirty.bind(c);u.i=e,u.id=e.uid,c.scheduler=()=>f(u),an(e,!0),d()},j=(e,t,n)=>{t.component=e;const o=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,o){const{props:r,attrs:s,vnode:{patchFlag:l}}=e,c=(0,a.ux)(r),[d]=e.propsOptions;let u=!1;if(!(o||l>0)||16&l){let a;Wt(e,t,r,s)&&(u=!0);for(const o in c)t&&((0,i.$3)(t,o)||(a=(0,i.Tg)(o))!==o&&(0,i.$3)(t,a))||(d?!n||void 0===n[o]&&void 0===n[a]||(r[o]=Ht(d,c,o,void 0,e,!0)):delete r[o]);if(s!==c)for(const e in s)t&&(0,i.$3)(t,e)||(delete s[e],u=!0)}else if(8&l){const n=e.vnode.dynamicProps;for(let a=0;a{const{vnode:a,slots:o}=e;let r=!0,s=i.MZ;if(32&a.shapeFlag){const e=t._;e?n&&1===e?r=!1:Jt(o,t,n):(r=!t.$stable,Zt(t,o)),s=t}else t&&(Qt(e,t),s={default:1});if(r)for(const e in o)qt(e)||null!=s[e]||delete o[e]})(e,t.children,n),(0,a.C4)(),b(e),(0,a.bl)()},X=(e,t,n,a,i,o,r,s,l=!1)=>{const c=e&&e.children,d=e?e.shapeFlag:0,u=t.children,{patchFlag:p,shapeFlag:A}=t;if(p>0){if(128&p)return void q(c,u,n,a,i,o,r,s,l);if(256&p)return void U(c,u,n,a,i,o,r,s,l)}8&A?(16&d&&te(c,i,o),u!==c&&h(n,u)):16&d?16&A?q(c,u,n,a,i,o,r,s,l):te(c,i,o,!0):(8&d&&h(n,""),16&A&&z(u,n,a,i,o,r,s,l))},U=(e,t,n,a,o,r,s,l,c)=>{e=e||i.Oj,t=t||i.Oj;const d=e.length,u=t.length,p=Math.min(d,u);let A;for(A=0;Au?te(e,o,r,!0,!1,p):z(t,n,a,o,r,s,l,c,p)},q=(e,t,n,a,o,r,s,l,c)=>{let d=0;const u=t.length;let p=e.length-1,A=u-1;for(;d<=p&&d<=A;){const a=e[d],i=t[d]=c?In(t[d]):Ln(t[d]);if(!xn(a,i))break;y(a,i,n,null,o,r,s,l,c),d++}for(;d<=p&&d<=A;){const a=e[p],i=t[A]=c?In(t[A]):Ln(t[A]);if(!xn(a,i))break;y(a,i,n,null,o,r,s,l,c),p--,A--}if(d>p){if(d<=A){const e=A+1,i=eA)for(;d<=p;)Z(e[d],o,r,!0),d++;else{const h=d,v=d,f=new Map;for(d=v;d<=A;d++){const e=t[d]=c?In(t[d]):Ln(t[d]);null!=e.key&&f.set(e.key,d)}let g,m=0;const b=A-v+1;let C=!1,_=0;const w=new Array(b);for(d=0;d=b){Z(a,o,r,!0);continue}let i;if(null!=a.key)i=f.get(a.key);else for(g=v;g<=A;g++)if(0===w[g-v]&&xn(a,t[g])){i=g;break}void 0===i?Z(a,o,r,!0):(w[i-v]=d+1,i>=_?_=i:C=!0,y(a,t[i],n,null,o,r,s,l,c),m++)}const x=C?function(e){const t=e.slice(),n=[0];let a,i,o,r,s;const l=e.length;for(a=0;a>1,e[n[s]]0&&(t[a]=n[o-1]),n[o]=a)}}for(o=n.length,r=n[o-1];o-- >0;)n[o]=r,r=t[r];return n}(w):i.Oj;for(g=x.length-1,d=b-1;d>=0;d--){const e=v+d,i=t[e],p=t[e+1],A=e+1{const{el:o,type:s,transition:c,children:d,shapeFlag:u}=e;if(6&u)Y(e.component.subTree,t,n,a);else if(128&u)e.suspense.move(t,n,a);else if(64&u)s.move(e,t,n,oe);else if(s!==dn)if(s!==An)if(2!==a&&1&u&&c)if(0===a)c.persisted&&!o[re]?r(o,t,n):(c.beforeEnter(o),r(o,t,n),en(()=>c.enter(o),i));else{const{leave:a,delayLeave:i,afterLeave:s}=c,d=()=>{e.ctx.isUnmounted?l(o):r(o,t,n)},u=()=>{const e=o._isLeaving||!!o[re];o._isLeaving&&o[re](!0),c.persisted&&!e?d():a(o,()=>{d(),s&&s()})};i?i(o,d,u):u()}else r(o,t,n);else(({el:e,anchor:t},n,a)=>{let i;for(;e&&e!==t;)i=g(e),r(e,n,a),e=i;r(t,n,a)})(e,t,n);else{r(o,t,n);for(let e=0;e{const{type:r,props:s,ref:l,children:c,dynamicChildren:d,shapeFlag:u,patchFlag:p,dirs:A,cacheIndex:h,memo:v}=e;if(-2===p&&(o=!1),null!=l&&((0,a.C4)(),xe(l,null,n,e,!0),(0,a.bl)()),null!=h&&(t.renderCache[h]=void 0),256&u)return void t.ctx.deactivate(e);const f=1&u&&A,g=!Be(e);let m;if(g&&(m=s&&s.onVnodeBeforeUnmount)&&Fn(m,t,e),6&u)ee(e.component,n,i);else{if(128&u)return void e.suspense.unmount(n,i);f&&O(e,null,t,"beforeUnmount"),64&u?e.type.remove(e,t,n,oe,i):d&&!d.hasOnce&&(r!==dn||p>0&&64&p)?te(d,t,n,!1,!0):(r===dn&&384&p||!o&&16&u)&&te(c,t,n),i&&Q(e)}const b=null!=v&&null==h;(g&&(m=s&&s.onVnodeUnmounted)||f||b)&&en(()=>{m&&Fn(m,t,e),f&&O(e,null,t,"unmounted"),b&&(e.el=null)},n)},Q=e=>{const{type:t,el:n,anchor:a,transition:i}=e;if(t===dn)return void J(n,a);if(t===An)return void N(e);const o=()=>{l(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){const{leave:t,delayLeave:a}=i,r=()=>t(n,o);a?a(e.el,o,r):r()}else o()},J=(e,t)=>{let n;for(;e!==t;)n=g(e),l(e),e=n;l(t)},ee=(e,t,n)=>{const{bum:a,scope:o,job:r,subTree:s,um:l,m:c,a:d}=e;var u;sn(c),sn(d),a&&(0,i.DY)(a),o.stop(),r&&(r.flags|=8,Z(s,e,t,n)),l&&en(l,t),en(()=>{e.isUnmounted=!0},t),__VUE_PROD_DEVTOOLS__&&(u=e,w&&"function"==typeof w.cleanupBuffer&&!w.cleanupBuffer(u)&&P(u))},te=(e,t,n,a=!1,i=!1,o=0)=>{for(let r=o;r{if(6&e.shapeFlag)return ne(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();const t=g(e.anchor||e.el),n=t&&t[K];return n?g(n):t};let ae=!1;const ie=(e,t,n)=>{let a;null==e?t._vnode&&(Z(t._vnode,null,null,!0),a=t._vnode.component):y(t._vnode||null,e,t,null,null,null,n),t._vnode=e,ae||(ae=!0,b(a),C(),ae=!1)},oe={p:y,um:Z,m:Y,r:Q,mt:V,mc:z,pc:X,pbc:F,n:ne,o:e};let se,le;return t&&([se,le]=t(oe)),{render:ie,hydrate:se,createApp:Bt(ie,se)}}(e)}function nn({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function an({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function on(e,t,n=!1){const a=e.children,o=t.children;if((0,i.cy)(a)&&(0,i.cy)(o))for(let e=0;ee.__isSuspense;const dn=Symbol.for("v-fgt"),un=Symbol.for("v-txt"),pn=Symbol.for("v-cmt"),An=Symbol.for("v-stc"),hn=[];let vn=null;function fn(e=!1){hn.push(vn=e?null:[])}function gn(){hn.pop(),vn=hn[hn.length-1]||null}let mn=1;function bn(e,t=!1){mn+=e,e<0&&vn&&t&&(vn.hasOnce=!0)}function Cn(e){return e.dynamicChildren=mn>0?vn||i.Oj:null,gn(),mn>0&&vn&&vn.push(e),e}function _n(e,t,n,a,i,o){return Cn(Bn(e,t,n,a,i,o,!0))}function yn(e,t,n,a,i){return Cn(Sn(e,t,n,a,i,!0))}function wn(e){return!!e&&!0===e.__v_isVNode}function xn(e,t){return e.type===t.type&&e.key===t.key}const En=({key:e})=>null!=e?e:null,kn=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?(0,i.Kg)(e)||(0,a.i9)(e)||(0,i.Tn)(e)?{i:T,r:e,k:t,f:!!n}:e:null);function Bn(e,t=null,n=null,a=0,o=null,r=(e===dn?0:1),s=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&En(t),ref:t&&kn(t),scopeId:L,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:a,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:T};return l?(zn(c,n),128&r&&e.normalize(c)):n&&(c.shapeFlag|=(0,i.Kg)(n)?8:16),mn>0&&!s&&vn&&(c.patchFlag>0||6&r)&&32!==c.patchFlag&&vn.push(c),c}const Sn=function(e,t=null,n=null,o=0,r=null,s=!1){if(e&&e!==Ye||(e=pn),wn(e)){const a=Pn(e,t,!0);return n&&zn(a,n),mn>0&&!s&&vn&&(6&a.shapeFlag?vn[vn.indexOf(e)]=a:vn.push(a)),a.patchFlag=-2,a}if(l=e,(0,i.Tn)(l)&&"__vccOpts"in l&&(e=e.__vccOpts),t){t=Dn(t);let{class:e,style:n}=t;e&&!(0,i.Kg)(e)&&(t.class=(0,i.C4)(e)),(0,i.Gv)(n)&&((0,a.ju)(n)&&!(0,i.cy)(n)&&(n=(0,i.X$)({},n)),t.style=(0,i.Tr)(n))}var l;return Bn(e,t,n,o,r,(0,i.Kg)(e)?1:cn(e)?128:Z(e)?64:(0,i.Gv)(e)?4:(0,i.Tn)(e)?2:0,s,!0)};function Dn(e){return e?(0,a.ju)(e)||Vt(e)?(0,i.X$)({},e):e:null}function Pn(e,t,n=!1,a=!1){const{props:o,ref:r,patchFlag:s,children:l,transition:c}=e,d=t?Rn(o||{},t):o,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&En(d),ref:t&&t.ref?n&&r?(0,i.cy)(r)?r.concat(kn(t)):[r,kn(t)]:kn(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==dn?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Pn(e.ssContent),ssFallback:e.ssFallback&&Pn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&a&&ge(u,c.clone(u)),u}function Nn(e=" ",t=0){return Sn(un,null,e,t)}function Tn(e="",t=!1){return t?(fn(),yn(pn,null,e)):Sn(pn,null,e)}function Ln(e){return null==e||"boolean"==typeof e?Sn(pn):(0,i.cy)(e)?Sn(dn,null,e.slice()):wn(e)?In(e):Sn(un,null,String(e))}function In(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:Pn(e)}function zn(e,t){let n=0;const{shapeFlag:a}=e;if(null==t)t=null;else if((0,i.cy)(t))n=16;else if("object"==typeof t){if(65&a){const n=t.default;return void(n&&(n._c&&(n._d=!1),zn(e,n()),n._c&&(n._d=!0)))}{n=32;const a=t._;a||Vt(t)?3===a&&T&&(1===T.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=T}}else if((0,i.Tn)(t)){if(65&a)return void zn(e,{default:t});t={default:t,_ctx:T},n=32}else t=String(t),64&a?(n=16,t=[Nn(t)]):n=8;e.children=t,e.shapeFlag|=n}function Rn(...e){const t={};for(let n=0;nGn||T;let Vn,Wn;{const e=(0,i.We)(),t=(t,n)=>{let a;return(a=e[t])||(a=e[t]=[]),a.push(n),e=>{a.length>1?a.forEach(t=>t(e)):a[0](e)}};Vn=t("__VUE_INSTANCE_SETTERS__",e=>Gn=e),Wn=t("__VUE_SSR_SETTERS__",e=>Un=e)}const Hn=e=>{const t=Gn;return Vn(e),e.scope.on(),()=>{e.scope.off(),Vn(t)}},jn=()=>{Gn&&Gn.scope.off(),Vn(null)};function Xn(e){return 4&e.vnode.shapeFlag}let Un=!1;function qn(e,t,n){(0,i.Tn)(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:(0,i.Gv)(t)&&(__VUE_PROD_DEVTOOLS__&&(e.devtoolsRawSetupState=t),e.setupState=(0,a.Pr)(t)),Yn(e,n)}function Yn(e,t,n){const o=e.type;if(e.render||(e.render=o.render||i.tE),__VUE_OPTIONS_API__){const t=Hn(e);(0,a.C4)();try{!function(e){const t=gt(e),n=e.proxy,o=e.ctx;ht=!1,t.beforeCreate&&vt(t.beforeCreate,e,"bc");const{data:r,computed:s,methods:l,watch:c,provide:d,inject:u,created:p,beforeMount:A,mounted:h,beforeUpdate:v,updated:f,activated:g,deactivated:m,beforeDestroy:b,beforeUnmount:C,destroyed:_,unmounted:y,render:w,renderTracked:x,renderTriggered:E,errorCaptured:k,serverPrefetch:B,expose:S,inheritAttrs:D,components:P,directives:N,filters:T}=t;if(u&&function(e,t){(0,i.cy)(e)&&(e=_t(e));for(const n in e){const o=e[n];let r;r=(0,i.Gv)(o)?"default"in o?$(o.from||n,o.default,!0):$(o.from||n):$(o),(0,a.i9)(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(u,o),l)for(const e in l){const t=l[e];(0,i.Tn)(t)&&(o[e]=t.bind(n))}if(r){const t=r.call(n,n);(0,i.Gv)(t)&&(e.data=(0,a.Kh)(t))}if(ht=!0,s)for(const e in s){const t=s[e],a=(0,i.Tn)(t)?t.bind(n,n):(0,i.Tn)(t.get)?t.get.bind(n,n):i.tE,r=!(0,i.Tn)(t)&&(0,i.Tn)(t.set)?t.set.bind(n):i.tE,l=Jn({get:a,set:r});Object.defineProperty(o,e,{enumerable:!0,configurable:!0,get:()=>l.value,set:e=>l.value=e})}if(c)for(const e in c)ft(c[e],o,n,e);if(d){const e=(0,i.Tn)(d)?d.call(n):d;Reflect.ownKeys(e).forEach(t=>{G(t,e[t])})}function L(e,t){(0,i.cy)(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(p&&vt(p,e,"c"),L(Fe,A),L(Me,h),L(Oe,v),L(Ge,f),L(Ne,g),L(Te,m),L(Xe,k),L(je,x),L(He,E),L($e,C),L(Ve,y),L(We,B),(0,i.cy)(S))if(S.length){const t=e.exposed||(e.exposed={});S.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});w&&e.render===i.tE&&(e.render=w),null!=D&&(e.inheritAttrs=D),P&&(e.components=P),N&&(e.directives=N),B&&Ce(e)}(e)}finally{(0,a.bl)(),t()}}}const Kn={get:(e,t)=>((0,a.u4)(e,"get",""),e[t])};function Zn(e){return{attrs:new Proxy(e.attrs,Kn),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function Qn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy((0,a.Pr)((0,a.IG)(e.exposed)),{get:(t,n)=>n in t?t[n]:n in rt?rt[n](e):void 0,has:(e,t)=>t in e||t in rt})):e.proxy}const Jn=(e,t)=>(0,a.EW)(e,t,Un);function ea(e,t,n){try{bn(-1);const a=arguments.length;return 2===a?(0,i.Gv)(t)&&!(0,i.cy)(t)?wn(t)?Sn(e,null,[t]):Sn(e,t):Sn(e,null,t):(a>3?n=Array.prototype.slice.call(arguments,2):3===a&&wn(n)&&(n=[n]),Sn(e,t,n))}finally{bn(1)}}const ta="3.5.42",na=i.tE;n.d(t,["EW",0,Jn,"EY",0,un,"FK",0,dn,"Ic",0,Oe,"Im",0,ae,"Mw",0,pn,"QP",0,ce,"R8",0,na,"YY",0,e=>F,"bF",0,Sn,"hi",0,Ve,"jC",0,An,"nI",0,$n,"pR",0,pe,"sV",0,Me,"xo",0,$e])},99760(e,t,n){n.d(t,{$9:()=>L,D:()=>Q});var a=n(67166),i=(n(41998),n(90033));let o;const r="undefined"!=typeof window&&window.trustedTypes;if(r)try{o=r.createPolicy("vue",{createHTML:e=>e})}catch(e){}const s=o?e=>o.createHTML(e):e=>e,l="undefined"!=typeof document?document:null,c=l&&l.createElement("template"),d={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,a)=>{const i="svg"===t?l.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?l.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?l.createElement(e,{is:n}):l.createElement(e);return"select"===e&&a&&null!=a.multiple&&i.setAttribute("multiple",a.multiple),i},createText:e=>l.createTextNode(e),createComment:e=>l.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>l.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,a,i,o){const r=n?n.previousSibling:t.lastChild;if(i&&(i===o||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==o&&(i=i.nextSibling););else{c.innerHTML=s("svg"===a?`${e}`:"mathml"===a?`${e}`:e);const i=c.content;if("svg"===a||"mathml"===a){const e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[r?r.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},u="transition",p="animation",A=Symbol("_vtc"),h={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},v=(0,i.X$)({},a.QP,h),f=(e=>(e.displayName="Transition",e.props=v,e))((e,{slots:t})=>(0,a.h)(a.pR,function(e){const t={};for(const n in e)n in h||(t[n]=e[n]);if(!1===e.css)return t;const{name:n="v",type:a,duration:o,enterFromClass:r=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=r,appearActiveClass:d=s,appearToClass:u=l,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:A=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,f=function(e){if(null==e)return null;if((0,i.Gv)(e))return[b(e.enter),b(e.leave)];{const t=b(e);return[t,t]}}(o),w=f&&f[0],E=f&&f[1],{onBeforeEnter:k,onEnter:S,onEnterCancelled:D,onLeave:P,onLeaveCancelled:N,onBeforeAppear:T=k,onAppear:L=S,onAppearCancelled:I=D}=t,z=(e,t,n,a)=>{e._enterCancelled=a,_(e,t?u:l),_(e,t?d:s),n&&n()},R=(e,t)=>{e._isLeaving=!1,_(e,p),_(e,v),_(e,A),t&&t()},F=e=>(t,n)=>{const i=e?L:S,o=()=>z(t,e,n);g(i,[t,o]),y(()=>{_(t,e?c:r),C(t,e?u:l),m(i)||x(t,a,w,o)})};return(0,i.X$)(t,{onBeforeEnter(e){g(k,[e]),C(e,r),C(e,s)},onBeforeAppear(e){g(T,[e]),C(e,c),C(e,d)},onEnter:F(!1),onAppear:F(!0),onLeave(e,t){e._isLeaving=!0;const n=()=>R(e,t);C(e,p),e._enterCancelled?(C(e,A),B(e)):(B(e),C(e,A)),y(()=>{e._isLeaving&&(_(e,p),C(e,v),m(P)||x(e,a,E,n))}),g(P,[e,n])},onEnterCancelled(e){z(e,!1,void 0,!0),g(D,[e])},onAppearCancelled(e){z(e,!0,void 0,!0),g(I,[e])},onLeaveCancelled(e){R(e),g(N,[e])}})}(e),t)),g=(e,t=[])=>{(0,i.cy)(e)?e.forEach(e=>e(...t)):e&&e(...t)},m=e=>!!e&&((0,i.cy)(e)?e.some(e=>e.length>1):e.length>1);function b(e){return(0,i.Ro)(e)}function C(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[A]||(e[A]=new Set)).add(t)}function _(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));const n=e[A];n&&(n.delete(t),n.size||(e[A]=void 0))}function y(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let w=0;function x(e,t,n,a){const i=e._endId=++w,o=()=>{i===e._endId&&a()};if(null!=n)return setTimeout(o,n);const{type:r,timeout:s,propCount:l}=function(e,t){const n=window.getComputedStyle(e),a=e=>(n[e]||"").split(", "),i=a(`${u}Delay`),o=a(`${u}Duration`),r=E(i,o),s=a(`${p}Delay`),l=a(`${p}Duration`),c=E(s,l);let d=null,A=0,h=0;return t===u?r>0&&(d=u,A=r,h=o.length):t===p?c>0&&(d=p,A=c,h=l.length):(A=Math.max(r,c),d=A>0?r>c?u:p:null,h=d?d===u?o.length:l.length:0),{type:d,timeout:A,propCount:h,hasTransform:d===u&&/\b(?:transform|all)(?:,|$)/.test(a(`${u}Property`).toString())}}(e,t);if(!r)return a();const c=r+"end";let d=0;const A=()=>{e.removeEventListener(c,h),o()},h=t=>{t.target===e&&++d>=l&&A()};setTimeout(()=>{dk(t)+k(e[n])))}function k(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function B(e){return(e?e.ownerDocument:document).body.offsetHeight}const S=Symbol("_vod"),D=Symbol("_vsh"),P={name:"show",beforeMount(e,{value:t},{transition:n}){e[S]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):N(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:a}){!t!=!n&&(a?t?(a.beforeEnter(e),N(e,!0),a.enter(e)):a.leave(e,()=>{N(e,!1)}):N(e,t))},beforeUnmount(e,{value:t}){N(e,t)}};function N(e,t){e.style.display=t?e[S]:"none",e[D]=!t}const T=Symbol("");function L(e){const t=(0,a.nI)();if(!t)return;const n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>z(e,n))},o=()=>{const a=e(t.proxy);t.ce?z(t.ce,a):I(t.subTree,a),n(a)};(0,a.Ic)(()=>{(0,a.Dl)(o)}),(0,a.sV)(()=>{(0,a.wB)(o,i.tE,{flush:"post"});const e=new MutationObserver(o);e.observe(t.subTree.el.parentNode,{childList:!0}),(0,a.hi)(()=>e.disconnect())})}function I(e,t){if(128&e.shapeFlag){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{I(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(1&e.shapeFlag&&e.el)z(e.el,t);else if(e.type===a.FK)e.children.forEach(e=>I(e,t));else if(e.type===a.jC){let{el:n,anchor:a}=e;for(;n&&(z(n,t),n!==a);)n=n.nextSibling}}function z(e,t){if(1===e.nodeType){const n=e.style;let a="";for(const e in t){const o=(0,i.pU)(t[e]);n.setProperty(`--${e}`,o),a+=`--${e}: ${o};`}n[T]=a}}const R=/(?:^|;)\s*display\s*:/,F=/\s*!important$/;function M(e,t,n){if((0,i.cy)(n))n.forEach(n=>M(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))F.test(n)?e.setProperty(t,n.replace(F,""),"important"):e.setProperty(t,n);else{const a=function(e,t){const n=G[t];if(n)return n;let a=(0,i.PT)(t);if("filter"!==a&&a in e)return G[t]=a;a=(0,i.ZH)(a);for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123;function Q(e="$style"){{const t=(0,a.nI)();if(!t)return i.MZ;const n=t.type.__cssModules;if(!n)return i.MZ;return n[e]||i.MZ}}"undefined"!=typeof HTMLElement&&HTMLElement;const J=e=>{const t=e.props["onUpdate:modelValue"]||!1;return(0,i.cy)(t)?e=>(0,i.DY)(t,e):t},ee=Symbol("_assign"),te={deep:!0,created(e,t,n){e[ee]=J(n),j(e,"change",()=>{const t=e._modelValue,n=function(e){return"_value"in e?e._value:e.value}(e),a=e.checked,o=e[ee];if((0,i.cy)(t)){const e=(0,i.u3)(t,n),r=-1!==e;if(a&&!r)o(t.concat(n));else if(!a&&r){const n=[...t];n.splice(e,1),o(n)}}else if((0,i.vM)(t)){const e=new Set(t);a?e.add(n):e.delete(n),o(e)}else o(ae(e,a))})},mounted:ne,beforeUpdate(e,t,n){e[ee]=J(n),ne(e,t,n)}};function ne(e,{value:t,oldValue:n},a){let o;if(e._modelValue=t,(0,i.cy)(t))o=(0,i.u3)(t,a.props.value)>-1;else if((0,i.vM)(t))o=t.has(a.props.value);else{if(t===n)return;o=(0,i.BX)(t,ae(e,!0))}e.checked!==o&&(e.checked=o)}function ae(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const ie=["ctrl","shift","alt","meta"],oe={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>ie.some(n=>e[`${n}Key`]&&!t.includes(n))},re={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},se=(0,i.X$)({patchProp:(e,t,n,o,r,s)=>{const l="svg"===r;"class"===t?function(e,t,n){const a=e[A];a&&(t=(t?[t,...a]:[...a]).join(" ")),null==t?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}(e,o,l):"style"===t?function(e,t,n){const a=e.style,o=(0,i.Kg)(n);let r=!1;if(n&&!o){if(t)if((0,i.Kg)(t))for(const e of t.split(";")){const t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&M(a,t,"")}else for(const e in t)null==n[e]&&M(a,e,"");for(const o in n){"display"===o&&(r=!0);const s=n[o];null!=s?$(e,o,!(0,i.Kg)(t)&&t?t[o]:void 0,s)||M(a,o,s):M(a,o,"")}}else if(o){if(t!==n){const e=a[T];e&&(n+=";"+e),a.cssText=n,r=R.test(n)}}else t&&e.removeAttribute("style");S in e&&(e[S]=r?a.display:"",e[D]&&(a.display="none"))}(e,n,o):(0,i.Mp)(t)?(0,i.CP)(t)||function(e,t,n,o,r=null){const s=e[X]||(e[X]={}),l=s[t];if(o&&l)l.value=o;else{const[n,c]=function(e){let t,n;for(;(n=e.match(U))&&!q.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[":"===e[2]?e.slice(3):(0,i.Tg)(e.slice(2)),t]}(t);if(o){const l=s[t]=function(e,t){const n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();const o=n.value;if((0,i.cy)(o)){const n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};const i=o.slice(),r=[e];for(let n=0;nY=0),Y=Date.now()),n}(o,r);j(e,n,l,c)}else l&&(function(e,t,n,a){e.removeEventListener(t,n,a)}(e,n,l,c),s[t]=void 0)}}(e,t,0,o,s):("."===t[0]?(t=t.slice(1),1):"^"===t[0]?(t=t.slice(1),0):function(e,t,n,a){if(a)return"innerHTML"===t||"textContent"===t||!!(t in e&&Z(t)&&(0,i.Tn)(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t)return!1;if("sandbox"===t&&"IFRAME"===e.tagName)return!1;if("form"===t)return!1;if("list"===t&&"INPUT"===e.tagName)return!1;if("type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){const t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return(!Z(t)||!(0,i.Kg)(n))&&t in e}(e,t,o,l))?(H(e,t,o),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||W(e,t,o,l,0,"value"!==t)):e._isVueCE&&(function(e,t){const n=e._def.props;if(!n)return!1;const a=(0,i.PT)(t);return Array.isArray(n)?n.some(e=>(0,i.PT)(e)===a):Object.keys(n).some(e=>(0,i.PT)(e)===a)}(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!(0,i.Kg)(o)))?H(e,(0,i.PT)(t),o,0,t):("true-value"===t?e._trueValue=o:"false-value"===t&&(e._falseValue=o),W(e,t,o,l))}},d);let le;n.d(t,["D$",0,(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),a=t.join(".");return n[a]||(n[a]=(n,...a)=>{for(let e=0;e{const t=(le||(le=(0,a.K9)(se))).createApp(...e),{mount:n}=t;return t.mount=e=>{const a=function(e){if((0,i.Kg)(e))return document.querySelector(e);return e}(e);if(!a)return;const o=t._component;(0,i.Tn)(o)||o.render||o.template||(o.template=a.innerHTML),1===a.nodeType&&(a.textContent="");const r=n(a,!1,function(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t},"aG",0,P,"eB",0,f,"jR",0,(e,t)=>{const n=e._withKeys||(e._withKeys={}),a=t.join(".");return n[a]||(n[a]=n=>{if(!("key"in n))return;const a=(0,i.Tg)(n.key);return t.some(e=>e===a||re[e]===a)?e(n):void 0})},"lH",0,te])},90033(e,t,n){function a(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return e=>e in t}n.d(t,{BX:()=>R,C4:()=>N,Tr:()=>k,Y2:()=>I,_B:()=>T,pD:()=>a,pU:()=>V,u3:()=>F});const i=Object.assign,o=Object.prototype.hasOwnProperty,r=Array.isArray,s=e=>"[object Map]"===v(e),l=e=>"[object Set]"===v(e),c=e=>"[object Date]"===v(e),d=e=>"function"==typeof e,u=e=>"string"==typeof e,p=e=>"symbol"==typeof e,A=e=>null!==e&&"object"==typeof e,h=Object.prototype.toString,v=e=>h.call(e),f=e=>"[object Object]"===v(e),g=a(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),m=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},b=/-\w/g,C=m(e=>e.replace(b,e=>e.slice(1).toUpperCase())),_=/\B([A-Z])/g,y=m(e=>e.replace(_,"-$1").toLowerCase()),w=m(e=>e.charAt(0).toUpperCase()+e.slice(1)),x=m(e=>e?`on${w(e)}`:"");let E;function k(e){if(r(e)){const t={};for(let n=0;n{if(e){const n=e.split(S);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function N(e){let t="";if(u(e))t=e;else if(r(e))for(let n=0;nR(e,t))}const M=e=>!(!e||!0!==e.__v_isRef),O=e=>u(e)?e:null==e?"":r(e)||A(e)&&(e.toString===h||!d(e.toString))?M(e)?O(e.value):JSON.stringify(e,G,2):String(e),G=(e,t)=>M(t)?G(e,t.value):s(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],a)=>(e[$(t,a)+" =>"]=n,e),{})}:l(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>$(e))}:p(t)?$(t):!A(t)||r(t)||f(t)?t:String(t),$=(e,t="")=>{var n;return p(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};function V(e){return null==e?"initial":"string"==typeof e?""===e?" ":e:("number"==typeof e&&Number.isFinite(e),String(e))}n.d(t,["$3",0,(e,t)=>o.call(e,t),"$H",0,(e,t)=>!Object.is(e,t),"Bm",0,p,"CE",0,s,"CP",0,e=>e.startsWith("onUpdate:"),"DY",0,(e,...t)=>{for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),"NO",0,()=>!1,"Oj",0,[],"PT",0,C,"Qd",0,f,"Ro",0,e=>{const t=u(e)?Number(e):NaN;return isNaN(t)?e:t},"SU",0,g,"TF",0,(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},"Tg",0,y,"Tn",0,d,"We",0,()=>E||(E="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}),"X$",0,i,"ZH",0,w,"Zf",0,e=>v(e).slice(8,-1),"bB",0,e=>{const t=parseFloat(e);return isNaN(t)?e:t},"cy",0,r,"rU",0,x,"tE",0,()=>{},"vM",0,l,"v_",0,O,"yI",0,e=>u(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,"yL",0,e=>(A(e)||d(e))&&d(e.then)&&d(e.catch),"yQ",0,(e,t,n,a=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:a,value:n})}])},20852(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,'.share-confirmation[data-v-618e5df5] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: calc(var(--default-grid-baseline) * 3);\n padding-block-end: calc(var(--default-grid-baseline) * 3);\n}\n.share-confirmation__header[data-v-618e5df5] {\n margin: 0 !important;\n padding-block: calc(var(--default-grid-baseline) * 2) 0;\n}\n.share-confirmation__icon[data-v-618e5df5] {\n color: var(--color-success-text, var(--color-success));\n}\n.share-confirmation__link-input[data-v-618e5df5] {\n width: 100%;\n}\n.share-confirmation__qr[data-v-618e5df5] {\n background-color: #fff;\n padding: var(--default-grid-baseline);\n border-radius: var(--border-radius-element);\n}\n.share-confirmation__done[data-v-618e5df5] {\n align-self: flex-end;\n}.inline-toggle-field[data-v-615c2917] {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--default-grid-baseline);\n}\n.inline-toggle-field__slot[data-v-615c2917] {\n flex: 1 1 100%;\n width: 100%;\n}\n.inline-toggle-field__slot--inactive[data-v-615c2917] {\n cursor: pointer;\n}\n.inline-toggle-field__slot--inactive[data-v-615c2917] > * {\n pointer-events: none;\n}\n.inline-toggle-field__toggle[data-v-615c2917] {\n height: var(--default-clickable-area);\n}.permission-editor[data-v-1bf5e74e] {\n display: flex;\n flex-direction: column;\n gap: calc(var(--default-grid-baseline) * 3);\n}\n.permission-editor__permissions[data-v-1bf5e74e] {\n display: grid;\n grid-template-rows: 1fr;\n}\n.permission-editor__permissions-inner[data-v-1bf5e74e] {\n overflow: hidden;\n}\n.expand-enter-active[data-v-1bf5e74e],\n.expand-leave-active[data-v-1bf5e74e] {\n transition: grid-template-rows 0.2s ease-in-out;\n}\n.expand-enter-from[data-v-1bf5e74e],\n.expand-leave-to[data-v-1bf5e74e] {\n grid-template-rows: 0fr;\n}\n@media (prefers-reduced-motion: reduce) {\n.expand-enter-active[data-v-1bf5e74e],\n .expand-leave-active[data-v-1bf5e74e] {\n transition: none;\n}\n}.property-field[data-v-778b01f7] {\n position: relative;\n}\n.property-field__hint[data-v-778b01f7] {\n display: flex;\n align-items: flex-start;\n gap: var(--default-grid-baseline);\n margin-block: calc(var(--default-grid-baseline) / 2) 0;\n padding-inline: var(--border-radius-element);\n color: var(--color-text-maxcontrast);\n font-size: var(--font-size-small, 13px);\n line-height: 1.4;\n}\n.property-field__hint[data-v-778b01f7] .icon-vue {\n flex: 0 0 auto;\n margin-block-start: 1px;\n}.recipient-row[data-v-c8aa1ccb] {\n display: flex;\n align-items: center;\n gap: calc(var(--default-grid-baseline) * 2);\n min-height: 44px;\n}\n.recipient-row__desc[data-v-c8aa1ccb] {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-width: 0;\n line-height: 1.2em;\n}\n.recipient-row__name[data-v-c8aa1ccb], .recipient-row__subtitle[data-v-c8aa1ccb] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.recipient-row__subtitle[data-v-c8aa1ccb] {\n color: var(--color-text-maxcontrast);\n}\n.recipient-row__actions[data-v-c8aa1ccb] {\n flex: 0 0 auto;\n}\n.recipient-row__editor[data-v-c8aa1ccb] {\n margin-block: calc(var(--default-grid-baseline) * 2);\n}.recipient-list[data-v-05f6af35] {\n display: flex;\n flex-direction: column;\n gap: calc(var(--default-grid-baseline) * 3);\n padding-inline-start: calc(var(--default-grid-baseline) * 2);\n}form.share-panel[data-v-28d9c7d0] {\n display: flex;\n flex-direction: column;\n gap: calc(var(--default-grid-baseline) * 3);\n}\nform.share-panel[data-v-28d9c7d0] > * {\n flex-shrink: 0;\n min-width: 0;\n}\n.share-panel__link-actions[data-v-28d9c7d0],\n.share-panel__settings-actions[data-v-28d9c7d0] {\n position: sticky;\n bottom: 0;\n z-index: 2;\n background-color: var(--color-main-background);\n border-block-start: 1px solid var(--color-border);\n padding-block: calc(var(--default-grid-baseline) * 3);\n margin-block-start: auto;\n margin-block-end: calc(var(--default-grid-baseline) * -3);\n}\n.share-panel__settings-actions[data-v-28d9c7d0] {\n display: flex;\n justify-content: flex-end;\n}\n.share-panel__link-actions[data-v-28d9c7d0] {\n display: flex;\n gap: calc(var(--default-grid-baseline) * 3);\n}\n.share-panel__link-actions > button[data-v-28d9c7d0] {\n flex: 1 1 50%;\n}.sharing-dialog[data-v-147aec3d] .dialog__name {\n display: none;\n}\n.sharing-dialog[data-v-147aec3d] .dialog__content {\n display: flex;\n flex-direction: column;\n gap: calc(var(--default-grid-baseline) * 3);\n}\n.sharing-dialog[data-v-147aec3d] .share-panel {\n min-height: min(320px, 50vh);\n}\n.sharing-dialog__loading[data-v-147aec3d], .sharing-dialog__error[data-v-147aec3d] {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: calc(var(--default-grid-baseline) * 12);\n}\n.sharing-dialog .sharing-dialog__settings-toggle[data-v-147aec3d] {\n z-index: 1;\n position: absolute !important;\n top: var(--default-grid-baseline);\n inset-inline-end: var(--default-grid-baseline);\n margin-inline-end: calc(var(--button-size) + var(--default-grid-baseline));\n}\n.sharing-dialog .sharing-dialog__settings-toggle--warning[data-v-147aec3d]::after {\n content: "";\n position: absolute;\n top: 2px;\n inset-inline-end: 2px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n border: 2px solid var(--color-main-background);\n background-color: var(--color-warning);\n pointer-events: none;\n}\n.sharing-dialog .sharing-dialog__header[data-v-147aec3d] {\n position: sticky;\n top: 0;\n z-index: 3;\n background-color: var(--color-main-background);\n display: flex;\n align-items: center;\n gap: calc(var(--default-grid-baseline) * 2);\n height: calc(var(--default-clickable-area) * 2);\n padding-inline-end: calc(var(--default-clickable-area) * 2);\n}\n.sharing-dialog .dialog__titles[data-v-147aec3d] {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.sharing-dialog .dialog__titles h2.sharing-dialog__title[data-v-147aec3d],\n.sharing-dialog .dialog__titles h3.sharing-dialog__subtitle[data-v-147aec3d] {\n margin-top: 2px;\n margin-bottom: 2px;\n line-height: 1.1em;\n font-size: 21px;\n}\n.sharing-dialog .dialog__titles h2.sharing-dialog__title[data-v-147aec3d] {\n word-break: break-all;\n}\n.sharing-dialog .dialog__titles h3.sharing-dialog__subtitle[data-v-147aec3d] {\n color: var(--color-text-maxcontrast);\n font-size: 1em;\n font-weight: normal;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}',"",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/dist/assets/dialog.css"],names:[],mappings:"AAAA;EACE,aAAa;EACb,sBAAsB;EACtB,mBAAmB;EACnB,2CAA2C;EAC3C,yDAAyD;AAC3D;AACA;EACE,oBAAoB;EACpB,uDAAuD;AACzD;AACA;EACE,sDAAsD;AACxD;AACA;EACE,WAAW;AACb;AACA;EACE,sBAAsB;EACtB,qCAAqC;EACrC,2CAA2C;AAC7C;AACA;EACE,oBAAoB;AACtB,CAAC;EACC,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,iCAAiC;AACnC;AACA;EACE,cAAc;EACd,WAAW;AACb;AACA;EACE,eAAe;AACjB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,qCAAqC;AACvC,CAAC;EACC,aAAa;EACb,sBAAsB;EACtB,2CAA2C;AAC7C;AACA;EACE,aAAa;EACb,uBAAuB;AACzB;AACA;EACE,gBAAgB;AAClB;AACA;;EAEE,+CAA+C;AACjD;AACA;;EAEE,uBAAuB;AACzB;AACA;AACA;;IAEI,gBAAgB;AACpB;AACA,CAAC;EACC,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,iCAAiC;EACjC,sDAAsD;EACtD,4CAA4C;EAC5C,oCAAoC;EACpC,uCAAuC;EACvC,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,uBAAuB;AACzB,CAAC;EACC,aAAa;EACb,mBAAmB;EACnB,2CAA2C;EAC3C,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,cAAc;EACd,YAAY;EACZ,kBAAkB;AACpB;AACA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,oCAAoC;AACtC;AACA;EACE,cAAc;AAChB;AACA;EACE,oDAAoD;AACtD,CAAC;EACC,aAAa;EACb,sBAAsB;EACtB,2CAA2C;EAC3C,4DAA4D;AAC9D,CAAC;EACC,aAAa;EACb,sBAAsB;EACtB,2CAA2C;AAC7C;AACA;EACE,cAAc;EACd,YAAY;AACd;AACA;;EAEE,gBAAgB;EAChB,SAAS;EACT,UAAU;EACV,8CAA8C;EAC9C,iDAAiD;EACjD,qDAAqD;EACrD,wBAAwB;EACxB,yDAAyD;AAC3D;AACA;EACE,aAAa;EACb,yBAAyB;AAC3B;AACA;EACE,aAAa;EACb,2CAA2C;AAC7C;AACA;EACE,aAAa;AACf,CAAC;EACC,aAAa;AACf;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,2CAA2C;AAC7C;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,gDAAgD;AAClD;AACA;EACE,UAAU;EACV,6BAA6B;EAC7B,iCAAiC;EACjC,8CAA8C;EAC9C,0EAA0E;AAC5E;AACA;EACE,WAAW;EACX,kBAAkB;EAClB,QAAQ;EACR,qBAAqB;EACrB,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,8CAA8C;EAC9C,sCAAsC;EACtC,oBAAoB;AACtB;AACA;EACE,gBAAgB;EAChB,MAAM;EACN,UAAU;EACV,8CAA8C;EAC9C,aAAa;EACb,mBAAmB;EACnB,2CAA2C;EAC3C,+CAA+C;EAC/C,2DAA2D;AAC7D;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;;EAEE,eAAe;EACf,kBAAkB;EAClB,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,oCAAoC;EACpC,cAAc;EACd,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB",sourcesContent:['.share-confirmation[data-v-618e5df5] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: calc(var(--default-grid-baseline) * 3);\n padding-block-end: calc(var(--default-grid-baseline) * 3);\n}\n.share-confirmation__header[data-v-618e5df5] {\n margin: 0 !important;\n padding-block: calc(var(--default-grid-baseline) * 2) 0;\n}\n.share-confirmation__icon[data-v-618e5df5] {\n color: var(--color-success-text, var(--color-success));\n}\n.share-confirmation__link-input[data-v-618e5df5] {\n width: 100%;\n}\n.share-confirmation__qr[data-v-618e5df5] {\n background-color: #fff;\n padding: var(--default-grid-baseline);\n border-radius: var(--border-radius-element);\n}\n.share-confirmation__done[data-v-618e5df5] {\n align-self: flex-end;\n}.inline-toggle-field[data-v-615c2917] {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--default-grid-baseline);\n}\n.inline-toggle-field__slot[data-v-615c2917] {\n flex: 1 1 100%;\n width: 100%;\n}\n.inline-toggle-field__slot--inactive[data-v-615c2917] {\n cursor: pointer;\n}\n.inline-toggle-field__slot--inactive[data-v-615c2917] > * {\n pointer-events: none;\n}\n.inline-toggle-field__toggle[data-v-615c2917] {\n height: var(--default-clickable-area);\n}.permission-editor[data-v-1bf5e74e] {\n display: flex;\n flex-direction: column;\n gap: calc(var(--default-grid-baseline) * 3);\n}\n.permission-editor__permissions[data-v-1bf5e74e] {\n display: grid;\n grid-template-rows: 1fr;\n}\n.permission-editor__permissions-inner[data-v-1bf5e74e] {\n overflow: hidden;\n}\n.expand-enter-active[data-v-1bf5e74e],\n.expand-leave-active[data-v-1bf5e74e] {\n transition: grid-template-rows 0.2s ease-in-out;\n}\n.expand-enter-from[data-v-1bf5e74e],\n.expand-leave-to[data-v-1bf5e74e] {\n grid-template-rows: 0fr;\n}\n@media (prefers-reduced-motion: reduce) {\n.expand-enter-active[data-v-1bf5e74e],\n .expand-leave-active[data-v-1bf5e74e] {\n transition: none;\n}\n}.property-field[data-v-778b01f7] {\n position: relative;\n}\n.property-field__hint[data-v-778b01f7] {\n display: flex;\n align-items: flex-start;\n gap: var(--default-grid-baseline);\n margin-block: calc(var(--default-grid-baseline) / 2) 0;\n padding-inline: var(--border-radius-element);\n color: var(--color-text-maxcontrast);\n font-size: var(--font-size-small, 13px);\n line-height: 1.4;\n}\n.property-field__hint[data-v-778b01f7] .icon-vue {\n flex: 0 0 auto;\n margin-block-start: 1px;\n}.recipient-row[data-v-c8aa1ccb] {\n display: flex;\n align-items: center;\n gap: calc(var(--default-grid-baseline) * 2);\n min-height: 44px;\n}\n.recipient-row__desc[data-v-c8aa1ccb] {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-width: 0;\n line-height: 1.2em;\n}\n.recipient-row__name[data-v-c8aa1ccb], .recipient-row__subtitle[data-v-c8aa1ccb] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.recipient-row__subtitle[data-v-c8aa1ccb] {\n color: var(--color-text-maxcontrast);\n}\n.recipient-row__actions[data-v-c8aa1ccb] {\n flex: 0 0 auto;\n}\n.recipient-row__editor[data-v-c8aa1ccb] {\n margin-block: calc(var(--default-grid-baseline) * 2);\n}.recipient-list[data-v-05f6af35] {\n display: flex;\n flex-direction: column;\n gap: calc(var(--default-grid-baseline) * 3);\n padding-inline-start: calc(var(--default-grid-baseline) * 2);\n}form.share-panel[data-v-28d9c7d0] {\n display: flex;\n flex-direction: column;\n gap: calc(var(--default-grid-baseline) * 3);\n}\nform.share-panel[data-v-28d9c7d0] > * {\n flex-shrink: 0;\n min-width: 0;\n}\n.share-panel__link-actions[data-v-28d9c7d0],\n.share-panel__settings-actions[data-v-28d9c7d0] {\n position: sticky;\n bottom: 0;\n z-index: 2;\n background-color: var(--color-main-background);\n border-block-start: 1px solid var(--color-border);\n padding-block: calc(var(--default-grid-baseline) * 3);\n margin-block-start: auto;\n margin-block-end: calc(var(--default-grid-baseline) * -3);\n}\n.share-panel__settings-actions[data-v-28d9c7d0] {\n display: flex;\n justify-content: flex-end;\n}\n.share-panel__link-actions[data-v-28d9c7d0] {\n display: flex;\n gap: calc(var(--default-grid-baseline) * 3);\n}\n.share-panel__link-actions > button[data-v-28d9c7d0] {\n flex: 1 1 50%;\n}.sharing-dialog[data-v-147aec3d] .dialog__name {\n display: none;\n}\n.sharing-dialog[data-v-147aec3d] .dialog__content {\n display: flex;\n flex-direction: column;\n gap: calc(var(--default-grid-baseline) * 3);\n}\n.sharing-dialog[data-v-147aec3d] .share-panel {\n min-height: min(320px, 50vh);\n}\n.sharing-dialog__loading[data-v-147aec3d], .sharing-dialog__error[data-v-147aec3d] {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: calc(var(--default-grid-baseline) * 12);\n}\n.sharing-dialog .sharing-dialog__settings-toggle[data-v-147aec3d] {\n z-index: 1;\n position: absolute !important;\n top: var(--default-grid-baseline);\n inset-inline-end: var(--default-grid-baseline);\n margin-inline-end: calc(var(--button-size) + var(--default-grid-baseline));\n}\n.sharing-dialog .sharing-dialog__settings-toggle--warning[data-v-147aec3d]::after {\n content: "";\n position: absolute;\n top: 2px;\n inset-inline-end: 2px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n border: 2px solid var(--color-main-background);\n background-color: var(--color-warning);\n pointer-events: none;\n}\n.sharing-dialog .sharing-dialog__header[data-v-147aec3d] {\n position: sticky;\n top: 0;\n z-index: 3;\n background-color: var(--color-main-background);\n display: flex;\n align-items: center;\n gap: calc(var(--default-grid-baseline) * 2);\n height: calc(var(--default-clickable-area) * 2);\n padding-inline-end: calc(var(--default-clickable-area) * 2);\n}\n.sharing-dialog .dialog__titles[data-v-147aec3d] {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.sharing-dialog .dialog__titles h2.sharing-dialog__title[data-v-147aec3d],\n.sharing-dialog .dialog__titles h3.sharing-dialog__subtitle[data-v-147aec3d] {\n margin-top: 2px;\n margin-bottom: 2px;\n line-height: 1.1em;\n font-size: 21px;\n}\n.sharing-dialog .dialog__titles h2.sharing-dialog__title[data-v-147aec3d] {\n word-break: break-all;\n}\n.sharing-dialog .dialog__titles h3.sharing-dialog__subtitle[data-v-147aec3d] {\n color: var(--color-text-maxcontrast);\n font-size: 1em;\n font-weight: normal;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}'],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},23768(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,":root{--vs-colors--lightest:rgba(60,60,60,.26);--vs-colors--light:rgba(60,60,60,.5);--vs-colors--dark:#333;--vs-colors--darkest:rgba(0,0,0,.15);--vs-search-input-color:inherit;--vs-search-input-bg:#fff;--vs-search-input-placeholder-color:inherit;--vs-font-size:1rem;--vs-line-height:1.4;--vs-state-disabled-bg:#f8f8f8;--vs-state-disabled-color:var(--vs-colors--light);--vs-state-disabled-controls-color:var(--vs-colors--light);--vs-state-disabled-cursor:not-allowed;--vs-border-color:var(--vs-colors--lightest);--vs-border-width:1px;--vs-border-style:solid;--vs-border-radius:4px;--vs-actions-padding:4px 6px 0 3px;--vs-controls-color:var(--vs-colors--light);--vs-controls-size:1;--vs-controls--deselect-text-shadow:0 1px 0 #fff;--vs-selected-bg:#f0f0f0;--vs-selected-color:var(--vs-colors--dark);--vs-selected-border-color:var(--vs-border-color);--vs-selected-border-style:var(--vs-border-style);--vs-selected-border-width:var(--vs-border-width);--vs-dropdown-bg:#fff;--vs-dropdown-color:inherit;--vs-dropdown-z-index:1000;--vs-dropdown-min-width:160px;--vs-dropdown-max-height:350px;--vs-dropdown-box-shadow:0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg:#000;--vs-dropdown-option-color:var(--vs-dropdown-color);--vs-dropdown-option-padding:3px 20px;--vs-dropdown-option--active-bg:#136cfb;--vs-dropdown-option--active-color:#fff;--vs-dropdown-option--kb-focus-box-shadow:inset 0px 0px 0px 2px #949494;--vs-dropdown-option--deselect-bg:#fb5858;--vs-dropdown-option--deselect-color:#fff;--vs-transition-timing-function:cubic-bezier(1,-0.115,0.975,0.855);--vs-transition-duration:150ms}.v-select{font-family:inherit;position:relative}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function:cubic-bezier(1,0.5,0.8,1);--vs-transition-duration:0.15s}@keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg:var(--vs-state-disabled-bg);--vs-disabled-color:var(--vs-state-disabled-color);--vs-disabled-cursor:var(--vs-state-disabled-cursor)}.vs--disabled{.vs__clear,.vs__dropdown-toggle,.vs__open-indicator,.vs__open-indicator-button,.vs__search,.vs__selected{background-color:var(--vs-disabled-bg);cursor:var(--vs-disabled-cursor)}}.v-select[dir=rtl]{.vs__actions{padding:0 3px 0 6px}.vs__clear{margin-left:6px;margin-right:0}.vs__deselect{margin-left:0;margin-right:2px}.vs__dropdown-menu{text-align:right}}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vs-search-input-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);display:flex;padding:0 0 4px;white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;min-width:0;padding:0 2px;position:relative}.vs__actions{align-items:center;display:flex;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator-button{background-color:transparent;border:0;cursor:pointer;padding:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{background-color:transparent;border:0;cursor:pointer;fill:var(--vs-controls-color);margin-right:8px;padding:0}.vs__dropdown-menu{background:var(--vs-dropdown-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-style:none;box-shadow:var(--vs-dropdown-box-shadow);box-sizing:border-box;color:var(--vs-dropdown-color);display:block;left:0;list-style:none;margin:0;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;padding:5px 0;position:absolute;text-align:left;top:calc(100% - var(--vs-border-width));width:100%;z-index:var(--vs-dropdown-z-index)}.vs__no-options{text-align:center}.vs__dropdown-option{clear:both;color:var(--vs-dropdown-option-color);cursor:pointer;display:block;line-height:1.42857143;padding:var(--vs-dropdown-option-padding);white-space:nowrap}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--kb-focus{box-shadow:var(--vs-dropdown-option--kb-focus-box-shadow)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);display:flex;line-height:var(--vs-line-height);margin:4px 2px 0;min-width:0;padding:0 .25em;z-index:0}.vs__deselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-flex;fill:var(--vs-controls-color);margin-left:4px;padding:0;text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single{.vs__selected{background-color:transparent;border-color:transparent}&.vs--loading .vs__selected,&.vs--open .vs__selected{max-width:100%;opacity:.4;position:absolute}&.vs--searching .vs__selected{display:none}}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-ms-clear,.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration{display:none}.vs__search,.vs__search:focus{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-left:none;box-shadow:none;color:var(--vs-search-input-color);flex-grow:1;font-size:var(--vs-font-size);line-height:var(--vs-line-height);margin:4px 0 0;max-width:100%;outline:none;padding:0 7px;width:0;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable{.vs__search{opacity:1}&:not(.vs--disabled) .vs__search{cursor:pointer}}.vs--single.vs--searching:not(.vs--open):not(.vs--loading){.vs__search{opacity:.2}}.vs__spinner{align-self:center;animation:vSelectSpinner 1.1s linear infinite;border:.9em solid hsla(0,0%,39.2%,.1);border-left-color:rgba(60,60,60,.45);font-size:5px;opacity:0;overflow:hidden;text-indent:-9999em;transform:translateZ(0) scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;height:5em;transform:scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));width:5em}.vs--loading .vs__spinner{opacity:1}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue-select/dist/assets/index-DuYzGG0a.css"],names:[],mappings:"AAAA,MAAM,wCAAwC,CAAC,oCAAoC,CAAC,sBAAsB,CAAC,oCAAoC,CAAC,+BAA+B,CAAC,yBAAyB,CAAC,2CAA2C,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,8BAA8B,CAAC,iDAAiD,CAAC,0DAA0D,CAAC,sCAAsC,CAAC,4CAA4C,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,2CAA2C,CAAC,oBAAoB,CAAC,gDAAgD,CAAC,wBAAwB,CAAC,0CAA0C,CAAC,iDAAiD,CAAC,iDAAiD,CAAC,iDAAiD,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,0BAA0B,CAAC,6BAA6B,CAAC,8BAA8B,CAAC,kEAAkE,CAAC,4BAA4B,CAAC,mDAAmD,CAAC,qCAAqC,CAAC,uCAAuC,CAAC,uCAAuC,CAAC,uEAAuE,CAAC,yCAAyC,CAAC,yCAAyC,CAAC,kEAAkE,CAAC,8BAA8B,CAAC,UAAU,mBAAmB,CAAC,iBAAiB,CAAC,sBAAsB,qBAAqB,CAAC,MAAM,yDAAyD,CAAC,8BAA8B,CAAC,0BAA0B,GAAG,sBAAsB,CAAC,GAAG,uBAAuB,CAAC,CAAC,8CAA8C,mBAAmB,CAAC,qFAAqF,CAAC,mCAAmC,SAAS,CAAC,MAAM,4CAA4C,CAAC,kDAAkD,CAAC,oDAAoD,CAAC,cAAc,yGAAyG,sCAAsC,CAAC,gCAAgC,CAAC,CAAC,mBAAmB,aAAa,mBAAmB,CAAC,WAAW,eAAe,CAAC,cAAc,CAAC,cAAc,aAAa,CAAC,gBAAgB,CAAC,mBAAmB,gBAAgB,CAAC,CAAC,qBAAqB,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAAC,oCAAoC,CAAC,2EAA2E,CAAC,qCAAqC,CAAC,YAAY,CAAC,eAAe,CAAC,kBAAkB,CAAC,sBAAsB,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,aAAa,kBAAkB,CAAC,YAAY,CAAC,iCAAiC,CAAC,qCAAqC,WAAW,CAAC,uCAAuC,cAAc,CAAC,+BAA+B,+BAA+B,CAAC,2BAA2B,CAAC,4BAA4B,CAAC,2BAA2B,4BAA4B,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,oBAAoB,6BAA6B,CAAC,wCAAwC,CAAC,uFAAuF,CAAC,+DAA+D,CAAC,8BAA8B,uDAAuD,CAAC,iCAAiC,SAAS,CAAC,WAAW,4BAA4B,CAAC,QAAQ,CAAC,cAAc,CAAC,6BAA6B,CAAC,gBAAgB,CAAC,SAAS,CAAC,mBAAmB,gCAAgC,CAAC,2EAA2E,CAAC,iEAAiE,CAAC,qBAAqB,CAAC,wCAAwC,CAAC,qBAAqB,CAAC,8BAA8B,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,wCAAwC,CAAC,sCAAsC,CAAC,eAAe,CAAC,aAAa,CAAC,iBAAiB,CAAC,eAAe,CAAC,uCAAuC,CAAC,UAAU,CAAC,kCAAkC,CAAC,gBAAgB,iBAAiB,CAAC,qBAAqB,UAAU,CAAC,qCAAqC,CAAC,cAAc,CAAC,aAAa,CAAC,sBAAsB,CAAC,yCAAyC,CAAC,kBAAkB,CAAC,gCAAgC,+CAA+C,CAAC,6CAA6C,CAAC,+BAA+B,yDAAyD,CAAC,+BAA+B,iDAAiD,CAAC,+CAA+C,CAAC,+BAA+B,sCAAsC,CAAC,oCAAoC,CAAC,sCAAsC,CAAC,cAAc,kBAAkB,CAAC,sCAAsC,CAAC,sGAAsG,CAAC,qCAAqC,CAAC,8BAA8B,CAAC,YAAY,CAAC,iCAAiC,CAAC,gBAAgB,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,cAAc,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,eAAe,CAAC,SAAS,CAAC,oDAAoD,CAAC,YAAY,cAAc,4BAA4B,CAAC,wBAAwB,CAAC,qDAAqD,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,8BAA8B,YAAY,CAAC,CAAC,0CAA0C,YAAY,CAAC,wJAAwJ,YAAY,CAAC,8BAA8B,uBAAuB,CAAC,oBAAoB,CAAC,eAAe,CAAC,eAAe,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,eAAe,CAAC,kCAAkC,CAAC,WAAW,CAAC,6BAA6B,CAAC,iCAAiC,CAAC,cAAc,CAAC,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,8BAA8B,8CAA8C,CAAC,yBAAyB,8CAA8C,CAAC,kBAAkB,YAAY,SAAS,CAAC,iCAAiC,cAAc,CAAC,CAAC,2DAA2D,YAAY,UAAU,CAAC,CAAC,aAAa,iBAAiB,CAAC,6CAA6C,CAAC,qCAAqC,CAAC,oCAAoC,CAAC,aAAa,CAAC,SAAS,CAAC,eAAe,CAAC,mBAAmB,CAAC,uFAAuF,CAAC,sBAAsB,CAAC,gCAAgC,iBAAiB,CAAC,UAAU,CAAC,yEAAyE,CAAC,SAAS,CAAC,0BAA0B,SAAS",sourcesContent:[":root{--vs-colors--lightest:rgba(60,60,60,.26);--vs-colors--light:rgba(60,60,60,.5);--vs-colors--dark:#333;--vs-colors--darkest:rgba(0,0,0,.15);--vs-search-input-color:inherit;--vs-search-input-bg:#fff;--vs-search-input-placeholder-color:inherit;--vs-font-size:1rem;--vs-line-height:1.4;--vs-state-disabled-bg:#f8f8f8;--vs-state-disabled-color:var(--vs-colors--light);--vs-state-disabled-controls-color:var(--vs-colors--light);--vs-state-disabled-cursor:not-allowed;--vs-border-color:var(--vs-colors--lightest);--vs-border-width:1px;--vs-border-style:solid;--vs-border-radius:4px;--vs-actions-padding:4px 6px 0 3px;--vs-controls-color:var(--vs-colors--light);--vs-controls-size:1;--vs-controls--deselect-text-shadow:0 1px 0 #fff;--vs-selected-bg:#f0f0f0;--vs-selected-color:var(--vs-colors--dark);--vs-selected-border-color:var(--vs-border-color);--vs-selected-border-style:var(--vs-border-style);--vs-selected-border-width:var(--vs-border-width);--vs-dropdown-bg:#fff;--vs-dropdown-color:inherit;--vs-dropdown-z-index:1000;--vs-dropdown-min-width:160px;--vs-dropdown-max-height:350px;--vs-dropdown-box-shadow:0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg:#000;--vs-dropdown-option-color:var(--vs-dropdown-color);--vs-dropdown-option-padding:3px 20px;--vs-dropdown-option--active-bg:#136cfb;--vs-dropdown-option--active-color:#fff;--vs-dropdown-option--kb-focus-box-shadow:inset 0px 0px 0px 2px #949494;--vs-dropdown-option--deselect-bg:#fb5858;--vs-dropdown-option--deselect-color:#fff;--vs-transition-timing-function:cubic-bezier(1,-0.115,0.975,0.855);--vs-transition-duration:150ms}.v-select{font-family:inherit;position:relative}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function:cubic-bezier(1,0.5,0.8,1);--vs-transition-duration:0.15s}@keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg:var(--vs-state-disabled-bg);--vs-disabled-color:var(--vs-state-disabled-color);--vs-disabled-cursor:var(--vs-state-disabled-cursor)}.vs--disabled{.vs__clear,.vs__dropdown-toggle,.vs__open-indicator,.vs__open-indicator-button,.vs__search,.vs__selected{background-color:var(--vs-disabled-bg);cursor:var(--vs-disabled-cursor)}}.v-select[dir=rtl]{.vs__actions{padding:0 3px 0 6px}.vs__clear{margin-left:6px;margin-right:0}.vs__deselect{margin-left:0;margin-right:2px}.vs__dropdown-menu{text-align:right}}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vs-search-input-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);display:flex;padding:0 0 4px;white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;min-width:0;padding:0 2px;position:relative}.vs__actions{align-items:center;display:flex;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator-button{background-color:transparent;border:0;cursor:pointer;padding:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{background-color:transparent;border:0;cursor:pointer;fill:var(--vs-controls-color);margin-right:8px;padding:0}.vs__dropdown-menu{background:var(--vs-dropdown-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-style:none;box-shadow:var(--vs-dropdown-box-shadow);box-sizing:border-box;color:var(--vs-dropdown-color);display:block;left:0;list-style:none;margin:0;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;padding:5px 0;position:absolute;text-align:left;top:calc(100% - var(--vs-border-width));width:100%;z-index:var(--vs-dropdown-z-index)}.vs__no-options{text-align:center}.vs__dropdown-option{clear:both;color:var(--vs-dropdown-option-color);cursor:pointer;display:block;line-height:1.42857143;padding:var(--vs-dropdown-option-padding);white-space:nowrap}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--kb-focus{box-shadow:var(--vs-dropdown-option--kb-focus-box-shadow)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);display:flex;line-height:var(--vs-line-height);margin:4px 2px 0;min-width:0;padding:0 .25em;z-index:0}.vs__deselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-flex;fill:var(--vs-controls-color);margin-left:4px;padding:0;text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single{.vs__selected{background-color:transparent;border-color:transparent}&.vs--loading .vs__selected,&.vs--open .vs__selected{max-width:100%;opacity:.4;position:absolute}&.vs--searching .vs__selected{display:none}}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-ms-clear,.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration{display:none}.vs__search,.vs__search:focus{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-left:none;box-shadow:none;color:var(--vs-search-input-color);flex-grow:1;font-size:var(--vs-font-size);line-height:var(--vs-line-height);margin:4px 0 0;max-width:100%;outline:none;padding:0 7px;width:0;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable{.vs__search{opacity:1}&:not(.vs--disabled) .vs__search{cursor:pointer}}.vs--single.vs--searching:not(.vs--open):not(.vs--loading){.vs__search{opacity:.2}}.vs__spinner{align-self:center;animation:vSelectSpinner 1.1s linear infinite;border:.9em solid hsla(0,0%,39.2%,.1);border-left-color:rgba(60,60,60,.45);font-size:5px;opacity:0;overflow:hidden;text-indent:-9999em;transform:translateZ(0) scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;height:5em;transform:scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));width:5em}.vs--loading .vs__spinner{opacity:1}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},75269(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-6c2daf4e] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action[data-v-6c2daf4e]:hover, li.action.active[data-v-6c2daf4e] {\n border-radius: 6px;\n padding: 0;\n}\nli.action[data-v-6c2daf4e]:hover {\n background-color: var(--color-background-hover);\n}\n.action--disabled[data-v-6c2daf4e] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-6c2daf4e]:hover, .action--disabled[data-v-6c2daf4e]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled[data-v-6c2daf4e] * {\n opacity: 1 !important;\n}\n.action-button[data-v-6c2daf4e] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: var(--font-weight-element, normal);\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-button > span[data-v-6c2daf4e] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-button__icon[data-v-6c2daf4e] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-button[data-v-6c2daf4e] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n align-self: flex-start;\n opacity: 1;\n}\n.action-button[data-v-6c2daf4e] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-button__longtext-wrapper[data-v-6c2daf4e], .action-button__longtext[data-v-6c2daf4e] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: start;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-button__longtext[data-v-6c2daf4e] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-button__name[data-v-6c2daf4e] {\n font-weight: var(--font-weight-heading, bold);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: block;\n}\n.action-button__description[data-v-6c2daf4e] {\n display: block;\n white-space: pre-wrap;\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-default, normal);\n line-height: var(--default-line-height);\n color: var(--color-text-maxcontrast);\n cursor: pointer;\n}\n.action-button__menu-icon[data-v-6c2daf4e] {\n margin-inline: auto calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action-button__pressed-icon[data-v-6c2daf4e] {\n margin-inline: auto calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action-button[data-v-6c2daf4e] * {\n cursor: pointer;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcActionButton.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;EACE,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,+CAA+C;AACjD;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,oEAAoE;EACpE,sBAAsB;EACtB,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,+CAA+C;EAC/C,mCAAmC;EACnC,0CAA0C;AAC5C;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;EACV,4EAA4E;EAC5E,qBAAqB;EACrB,4BAA4B;AAC9B;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,sBAAsB;EACtB,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,4DAA4D;EAC5D,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,eAAe;EACf,gCAAgC;AAClC;AACA;EACE,6CAA6C;EAC7C,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;EACf,cAAc;AAChB;AACA;EACE,cAAc;EACd,qBAAqB;EACrB,iCAAiC;EACjC,+CAA+C;EAC/C,uCAAuC;EACvC,oCAAoC;EACpC,eAAe;AACjB;AACA;EACE,yEAAyE;AAC3E;AACA;EACE,yEAAyE;AAC3E;AACA;EACE,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-6c2daf4e] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action[data-v-6c2daf4e]:hover, li.action.active[data-v-6c2daf4e] {\n border-radius: 6px;\n padding: 0;\n}\nli.action[data-v-6c2daf4e]:hover {\n background-color: var(--color-background-hover);\n}\n.action--disabled[data-v-6c2daf4e] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-6c2daf4e]:hover, .action--disabled[data-v-6c2daf4e]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled[data-v-6c2daf4e] * {\n opacity: 1 !important;\n}\n.action-button[data-v-6c2daf4e] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: var(--font-weight-element, normal);\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-button > span[data-v-6c2daf4e] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-button__icon[data-v-6c2daf4e] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-button[data-v-6c2daf4e] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n align-self: flex-start;\n opacity: 1;\n}\n.action-button[data-v-6c2daf4e] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-button__longtext-wrapper[data-v-6c2daf4e], .action-button__longtext[data-v-6c2daf4e] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: start;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-button__longtext[data-v-6c2daf4e] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-button__name[data-v-6c2daf4e] {\n font-weight: var(--font-weight-heading, bold);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: block;\n}\n.action-button__description[data-v-6c2daf4e] {\n display: block;\n white-space: pre-wrap;\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-default, normal);\n line-height: var(--default-line-height);\n color: var(--color-text-maxcontrast);\n cursor: pointer;\n}\n.action-button__menu-icon[data-v-6c2daf4e] {\n margin-inline: auto calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action-button__pressed-icon[data-v-6c2daf4e] {\n margin-inline: auto calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action-button[data-v-6c2daf4e] * {\n cursor: pointer;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},2194(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-1009e96c] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-caption[data-v-1009e96c] {\n color: var(--color-text-maxcontrast);\n line-height: var(--default-clickable-area);\n white-space: nowrap;\n text-overflow: ellipsis;\n box-shadow: none !important;\n user-select: none;\n pointer-events: none;\n margin-inline-start: 12px;\n padding-inline-end: 14px;\n height: var(--default-clickable-area);\n display: flex;\n align-items: center;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcActionCaption.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,oCAAoC;EACpC,0CAA0C;EAC1C,mBAAmB;EACnB,uBAAuB;EACvB,2BAA2B;EAC3B,iBAAiB;EACjB,oBAAoB;EACpB,yBAAyB;EACzB,wBAAwB;EACxB,qCAAqC;EACrC,aAAa;EACb,mBAAmB;AACrB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-1009e96c] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-caption[data-v-1009e96c] {\n color: var(--color-text-maxcontrast);\n line-height: var(--default-clickable-area);\n white-space: nowrap;\n text-overflow: ellipsis;\n box-shadow: none !important;\n user-select: none;\n pointer-events: none;\n margin-inline-start: 12px;\n padding-inline-end: 14px;\n height: var(--default-clickable-area);\n display: flex;\n align-items: center;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},71174(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-32f01b7a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action[data-v-32f01b7a]:hover, li.action.active[data-v-32f01b7a] {\n border-radius: 6px;\n padding: 0;\n}\nli.action[data-v-32f01b7a]:hover {\n background-color: var(--color-background-hover);\n}\n.action-link[data-v-32f01b7a] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: var(--font-weight-element, normal);\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-link > span[data-v-32f01b7a] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-link__icon[data-v-32f01b7a] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-link[data-v-32f01b7a] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n align-self: flex-start;\n opacity: 1;\n}\n.action-link[data-v-32f01b7a] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-link__longtext-wrapper[data-v-32f01b7a], .action-link__longtext[data-v-32f01b7a] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: start;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-link__longtext[data-v-32f01b7a] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-link__name[data-v-32f01b7a] {\n font-weight: var(--font-weight-heading, bold);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: block;\n}\n.action-link__description[data-v-32f01b7a] {\n display: block;\n white-space: pre-wrap;\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-default, normal);\n line-height: var(--default-line-height);\n color: var(--color-text-maxcontrast);\n cursor: pointer;\n}\n.action-link__menu-icon[data-v-32f01b7a] {\n margin-inline: auto calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcActionLink.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;EACE,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,+CAA+C;AACjD;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,oEAAoE;EACpE,sBAAsB;EACtB,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,+CAA+C;EAC/C,mCAAmC;EACnC,0CAA0C;AAC5C;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;EACV,4EAA4E;EAC5E,qBAAqB;EACrB,4BAA4B;AAC9B;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,sBAAsB;EACtB,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,4DAA4D;EAC5D,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,eAAe;EACf,gCAAgC;AAClC;AACA;EACE,6CAA6C;EAC7C,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;EACf,cAAc;AAChB;AACA;EACE,cAAc;EACd,qBAAqB;EACrB,iCAAiC;EACjC,+CAA+C;EAC/C,uCAAuC;EACvC,oCAAoC;EACpC,eAAe;AACjB;AACA;EACE,yEAAyE;AAC3E",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-32f01b7a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action[data-v-32f01b7a]:hover, li.action.active[data-v-32f01b7a] {\n border-radius: 6px;\n padding: 0;\n}\nli.action[data-v-32f01b7a]:hover {\n background-color: var(--color-background-hover);\n}\n.action-link[data-v-32f01b7a] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: var(--font-weight-element, normal);\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-link > span[data-v-32f01b7a] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-link__icon[data-v-32f01b7a] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-link[data-v-32f01b7a] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n align-self: flex-start;\n opacity: 1;\n}\n.action-link[data-v-32f01b7a] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-link__longtext-wrapper[data-v-32f01b7a], .action-link__longtext[data-v-32f01b7a] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: start;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-link__longtext[data-v-32f01b7a] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-link__name[data-v-32f01b7a] {\n font-weight: var(--font-weight-heading, bold);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: block;\n}\n.action-link__description[data-v-32f01b7a] {\n display: block;\n white-space: pre-wrap;\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-default, normal);\n line-height: var(--default-line-height);\n color: var(--color-text-maxcontrast);\n cursor: pointer;\n}\n.action-link__menu-icon[data-v-32f01b7a] {\n margin-inline: auto calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},83585(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-87267750] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action[data-v-87267750]:hover, li.action.active[data-v-87267750] {\n border-radius: 6px;\n padding: 0;\n}\nli.action[data-v-87267750]:hover {\n background-color: var(--color-background-hover);\n}\n.action-router[data-v-87267750] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: var(--font-weight-element, normal);\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-router > span[data-v-87267750] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-router__icon[data-v-87267750] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-router[data-v-87267750] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n align-self: flex-start;\n opacity: 1;\n}\n.action-router[data-v-87267750] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-router__longtext-wrapper[data-v-87267750], .action-router__longtext[data-v-87267750] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: start;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-router__longtext[data-v-87267750] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-router__name[data-v-87267750] {\n font-weight: var(--font-weight-heading, bold);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: block;\n}\n.action-router__description[data-v-87267750] {\n display: block;\n white-space: pre-wrap;\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-default, normal);\n line-height: var(--default-line-height);\n color: var(--color-text-maxcontrast);\n cursor: pointer;\n}\n.action-router__menu-icon[data-v-87267750] {\n margin-inline: auto calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action--disabled[data-v-87267750] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-87267750]:hover, .action--disabled[data-v-87267750]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled[data-v-87267750] * {\n opacity: 1 !important;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcActionRouter.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;EACE,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,+CAA+C;AACjD;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,oEAAoE;EACpE,sBAAsB;EACtB,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,+CAA+C;EAC/C,mCAAmC;EACnC,0CAA0C;AAC5C;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;EACV,4EAA4E;EAC5E,qBAAqB;EACrB,4BAA4B;AAC9B;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,sBAAsB;EACtB,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,4DAA4D;EAC5D,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,eAAe;EACf,gCAAgC;AAClC;AACA;EACE,6CAA6C;EAC7C,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;EACf,cAAc;AAChB;AACA;EACE,cAAc;EACd,qBAAqB;EACrB,iCAAiC;EACjC,+CAA+C;EAC/C,uCAAuC;EACvC,oCAAoC;EACpC,eAAe;AACjB;AACA;EACE,yEAAyE;AAC3E;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-87267750] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action[data-v-87267750]:hover, li.action.active[data-v-87267750] {\n border-radius: 6px;\n padding: 0;\n}\nli.action[data-v-87267750]:hover {\n background-color: var(--color-background-hover);\n}\n.action-router[data-v-87267750] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: var(--font-weight-element, normal);\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-router > span[data-v-87267750] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-router__icon[data-v-87267750] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-router[data-v-87267750] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n align-self: flex-start;\n opacity: 1;\n}\n.action-router[data-v-87267750] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-router__longtext-wrapper[data-v-87267750], .action-router__longtext[data-v-87267750] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: start;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-router__longtext[data-v-87267750] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-router__name[data-v-87267750] {\n font-weight: var(--font-weight-heading, bold);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: block;\n}\n.action-router__description[data-v-87267750] {\n display: block;\n white-space: pre-wrap;\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-default, normal);\n line-height: var(--default-line-height);\n color: var(--color-text-maxcontrast);\n cursor: pointer;\n}\n.action-router__menu-icon[data-v-87267750] {\n margin-inline: auto calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action--disabled[data-v-87267750] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-87267750]:hover, .action--disabled[data-v-87267750]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled[data-v-87267750] * {\n opacity: 1 !important;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},30729(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3e2324b7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-separator[data-v-3e2324b7] {\n height: 0;\n margin: 5px 10px 5px 15px;\n border-bottom: 1px solid var(--color-border-dark);\n cursor: default;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcActionSeparator.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,SAAS;EACT,yBAAyB;EACzB,iDAAiD;EACjD,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3e2324b7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-separator[data-v-3e2324b7] {\n height: 0;\n margin: 5px 10px 5px 15px;\n border-bottom: 1px solid var(--color-border-dark);\n cursor: default;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},77155(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-fa684b48] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action[data-v-fa684b48]:hover, li.action.active[data-v-fa684b48] {\n border-radius: 6px;\n padding: 0;\n}\nli.action[data-v-fa684b48]:hover {\n background-color: var(--color-background-hover);\n}\n.action-text[data-v-fa684b48] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: var(--font-weight-element, normal);\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-text > span[data-v-fa684b48] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-text__icon[data-v-fa684b48] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-text[data-v-fa684b48] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n align-self: flex-start;\n opacity: 1;\n}\n.action-text[data-v-fa684b48] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-text__longtext-wrapper[data-v-fa684b48], .action-text__longtext[data-v-fa684b48] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: start;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-text__longtext[data-v-fa684b48] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-text__name[data-v-fa684b48] {\n font-weight: var(--font-weight-heading, bold);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: block;\n}\n.action-text__description[data-v-fa684b48] {\n display: block;\n white-space: pre-wrap;\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-default, normal);\n line-height: var(--default-line-height);\n color: var(--color-text-maxcontrast);\n cursor: pointer;\n}\n.action-text__menu-icon[data-v-fa684b48] {\n margin-inline: auto calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action--disabled[data-v-fa684b48] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-fa684b48]:hover, .action--disabled[data-v-fa684b48]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled[data-v-fa684b48] * {\n opacity: 1 !important;\n}\n.action-text[data-v-fa684b48],\n.action-text span[data-v-fa684b48] {\n cursor: default;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcActionText.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;EACE,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,+CAA+C;AACjD;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,oEAAoE;EACpE,sBAAsB;EACtB,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,+CAA+C;EAC/C,mCAAmC;EACnC,0CAA0C;AAC5C;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;EACV,4EAA4E;EAC5E,qBAAqB;EACrB,4BAA4B;AAC9B;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,sBAAsB;EACtB,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,4DAA4D;EAC5D,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,eAAe;EACf,gCAAgC;AAClC;AACA;EACE,6CAA6C;EAC7C,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;EACf,cAAc;AAChB;AACA;EACE,cAAc;EACd,qBAAqB;EACrB,iCAAiC;EACjC,+CAA+C;EAC/C,uCAAuC;EACvC,oCAAoC;EACpC,eAAe;AACjB;AACA;EACE,yEAAyE;AAC3E;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;;EAEE,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-fa684b48] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action[data-v-fa684b48]:hover, li.action.active[data-v-fa684b48] {\n border-radius: 6px;\n padding: 0;\n}\nli.action[data-v-fa684b48]:hover {\n background-color: var(--color-background-hover);\n}\n.action-text[data-v-fa684b48] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: var(--font-weight-element, normal);\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-text > span[data-v-fa684b48] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-text__icon[data-v-fa684b48] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-text[data-v-fa684b48] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n align-self: flex-start;\n opacity: 1;\n}\n.action-text[data-v-fa684b48] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-text__longtext-wrapper[data-v-fa684b48], .action-text__longtext[data-v-fa684b48] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: start;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-text__longtext[data-v-fa684b48] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-text__name[data-v-fa684b48] {\n font-weight: var(--font-weight-heading, bold);\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: block;\n}\n.action-text__description[data-v-fa684b48] {\n display: block;\n white-space: pre-wrap;\n font-size: var(--font-size-small);\n font-weight: var(--font-weight-default, normal);\n line-height: var(--default-line-height);\n color: var(--color-text-maxcontrast);\n cursor: pointer;\n}\n.action-text__menu-icon[data-v-fa684b48] {\n margin-inline: auto calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action--disabled[data-v-fa684b48] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-fa684b48]:hover, .action--disabled[data-v-fa684b48]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled[data-v-fa684b48] * {\n opacity: 1 !important;\n}\n.action-text[data-v-fa684b48],\n.action-text span[data-v-fa684b48] {\n cursor: default;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},17743(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-7206c1f1] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-items[data-v-7206c1f1] {\n display: flex;\n align-items: center;\n gap: calc((var(--default-clickable-area) - 16px) / 2 / 2);\n}\n.action-item[data-v-7206c1f1] {\n --open-background-color: var(--color-background-hover, $action-background-hover);\n position: relative;\n display: inline-block;\n}\n.action-item.action-item--primary[data-v-7206c1f1] {\n --open-background-color: var(--color-primary-element-hover);\n}\n.action-item.action-item--secondary[data-v-7206c1f1] {\n --open-background-color: var(--color-primary-element-light-hover);\n}\n.action-item.action-item--error[data-v-7206c1f1] {\n --open-background-color: var(--color-error-hover);\n}\n.action-item.action-item--warning[data-v-7206c1f1] {\n --open-background-color: var(--color-warning-hover);\n}\n.action-item.action-item--success[data-v-7206c1f1] {\n --open-background-color: var(--color-success-hover);\n}\n.action-item.action-item--tertiary-no-background[data-v-7206c1f1] {\n --open-background-color: transparent;\n}\n.action-item.action-item--open .action-item__menutoggle[data-v-7206c1f1] {\n background-color: var(--open-background-color);\n}\n.action-item.action-item--wide[data-v-7206c1f1] {\n width: 100%;\n}\n.action-item__menutoggle__icon[data-v-7206c1f1] {\n width: 20px;\n height: 20px;\n object-fit: contain;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper {\n border-radius: var(--border-radius-element);\n}\n.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner {\n border-radius: var(--border-radius-element);\n padding: 4px;\n max-height: calc(100vh - var(--header-height));\n overflow: auto;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcActions.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,yDAAyD;AAC3D;AACA;EACE,gFAAgF;EAChF,kBAAkB;EAClB,qBAAqB;AACvB;AACA;EACE,2DAA2D;AAC7D;AACA;EACE,iEAAiE;AACnE;AACA;EACE,iDAAiD;AACnD;AACA;EACE,mDAAmD;AACrD;AACA;EACE,mDAAmD;AACrD;AACA;EACE,oCAAoC;AACtC;AACA;EACE,8CAA8C;AAChD;AACA;EACE,WAAW;AACb;AACA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,2CAA2C;AAC7C;AACA;EACE,2CAA2C;EAC3C,YAAY;EACZ,8CAA8C;EAC9C,cAAc;AAChB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-7206c1f1] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-items[data-v-7206c1f1] {\n display: flex;\n align-items: center;\n gap: calc((var(--default-clickable-area) - 16px) / 2 / 2);\n}\n.action-item[data-v-7206c1f1] {\n --open-background-color: var(--color-background-hover, $action-background-hover);\n position: relative;\n display: inline-block;\n}\n.action-item.action-item--primary[data-v-7206c1f1] {\n --open-background-color: var(--color-primary-element-hover);\n}\n.action-item.action-item--secondary[data-v-7206c1f1] {\n --open-background-color: var(--color-primary-element-light-hover);\n}\n.action-item.action-item--error[data-v-7206c1f1] {\n --open-background-color: var(--color-error-hover);\n}\n.action-item.action-item--warning[data-v-7206c1f1] {\n --open-background-color: var(--color-warning-hover);\n}\n.action-item.action-item--success[data-v-7206c1f1] {\n --open-background-color: var(--color-success-hover);\n}\n.action-item.action-item--tertiary-no-background[data-v-7206c1f1] {\n --open-background-color: transparent;\n}\n.action-item.action-item--open .action-item__menutoggle[data-v-7206c1f1] {\n background-color: var(--open-background-color);\n}\n.action-item.action-item--wide[data-v-7206c1f1] {\n width: 100%;\n}\n.action-item__menutoggle__icon[data-v-7206c1f1] {\n width: 20px;\n height: 20px;\n object-fit: contain;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper {\n border-radius: var(--border-radius-element);\n}\n.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner {\n border-radius: var(--border-radius-element);\n padding: 4px;\n max-height: calc(100vh - var(--header-height));\n overflow: auto;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},54127(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-2b0ca47b] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.avatardiv[data-v-2b0ca47b] {\n position: relative;\n display: inline-block;\n width: var(--avatar-size);\n height: var(--avatar-size);\n}\n.avatardiv--unknown[data-v-2b0ca47b] {\n position: relative;\n background-color: var(--color-main-background);\n white-space: normal;\n}\n.avatardiv[data-v-2b0ca47b]:not(.avatardiv--unknown) {\n background-color: var(--color-main-background) !important;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\n}\n.avatardiv--with-menu[data-v-2b0ca47b] {\n cursor: pointer;\n position: relative;\n}\n.avatardiv--with-legacy-menu .action-item[data-v-2b0ca47b] {\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n}\n.avatardiv--with-legacy-menu[data-v-2b0ca47b] .action-item__menutoggle {\n cursor: pointer;\n opacity: 0;\n}\n.avatardiv--with-legacy-menu[data-v-2b0ca47b]:focus-within .action-item__menutoggle, .avatardiv--with-legacy-menu[data-v-2b0ca47b]:hover .action-item__menutoggle, .avatardiv--with-legacy-menu.avatardiv--with-menu-loading[data-v-2b0ca47b] .action-item__menutoggle {\n opacity: 1;\n}\n.avatardiv--with-legacy-menu:focus-within img[data-v-2b0ca47b], .avatardiv--with-legacy-menu:hover img[data-v-2b0ca47b], .avatardiv--with-legacy-menu.avatardiv--with-menu-loading img[data-v-2b0ca47b] {\n opacity: 0.3;\n}\n.avatardiv--with-legacy-menu[data-v-2b0ca47b] .action-item__menutoggle,\n.avatardiv--with-legacy-menu img[data-v-2b0ca47b] {\n transition: opacity var(--animation-quick);\n}\n.avatardiv--with-legacy-menu[data-v-2b0ca47b] .button-vue,\n.avatardiv--with-legacy-menu[data-v-2b0ca47b] .button-vue__icon {\n height: var(--avatar-size);\n min-height: var(--avatar-size);\n width: var(--avatar-size) !important;\n min-width: var(--avatar-size);\n}\n.avatardiv--with-legacy-menu[data-v-2b0ca47b] > .button-vue, .avatardiv--with-legacy-menu[data-v-2b0ca47b] > .action-item .button-vue {\n --button-radius: calc(var(--avatar-size) / 2);\n}\n.avatardiv .avatar-profile-popover[data-v-2b0ca47b] {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n}\n.avatardiv .avatar-profile-popover__trigger[data-v-2b0ca47b] {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n outline: none;\n}\n.avatardiv .avatardiv__initials-wrapper[data-v-2b0ca47b] {\n display: block;\n height: var(--avatar-size);\n width: var(--avatar-size);\n background-color: var(--color-main-background);\n border-radius: calc(var(--avatar-size) / 2);\n}\n.avatardiv .avatardiv__initials-wrapper .avatardiv__initials[data-v-2b0ca47b] {\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n display: block;\n width: 100%;\n text-align: center;\n font-weight: var(--font-weight-default, normal);\n}\n.avatardiv img[data-v-2b0ca47b] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.avatardiv .material-design-icon[data-v-2b0ca47b] {\n width: var(--avatar-size);\n height: var(--avatar-size);\n}\n.avatardiv .avatardiv__user-status[data-v-2b0ca47b] {\n --avatar-status-size-orbital: calc(var(--avatar-size) * (1 - 1 / sqrt(2)));\n --avatar-status-size-min: var(--font-size-small);\n --avatar-status-size: max(var(--avatar-status-size-orbital), var(--avatar-status-size-min));\n box-sizing: border-box;\n position: absolute;\n inset-inline-end: 0;\n inset-block-end: 0;\n height: var(--avatar-status-size);\n width: var(--avatar-status-size);\n line-height: 1;\n font-size: calc(var(--avatar-status-size) / 1.2);\n background-color: var(--color-main-background);\n background-repeat: no-repeat;\n background-size: var(--avatar-status-size);\n background-position: center;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.acli:hover .avatardiv .avatardiv__user-status[data-v-2b0ca47b] {\n border-color: var(--color-background-hover);\n background-color: var(--color-background-hover);\n}\n.acli.active .avatardiv .avatardiv__user-status[data-v-2b0ca47b] {\n border-color: var(--color-primary-element-light);\n background-color: var(--color-primary-element-light);\n}\n.avatardiv .avatardiv__user-status--icon[data-v-2b0ca47b] {\n border: none;\n background-color: transparent;\n}\n.avatardiv .popovermenu-wrapper[data-v-2b0ca47b] {\n position: relative;\n display: inline-block;\n}\n.avatar-class-icon[data-v-2b0ca47b] {\n display: block;\n border-radius: calc(var(--avatar-size) / 2);\n background-color: var(--color-background-darker);\n height: 100%;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcAvatar.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,yBAAyB;EACzB,0BAA0B;AAC5B;AACA;EACE,kBAAkB;EAClB,8CAA8C;EAC9C,mBAAmB;AACrB;AACA;EACE,yDAAyD;EACzD,6CAA6C;AAC/C;AACA;EACE,eAAe;EACf,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,qBAAqB;AACvB;AACA;EACE,eAAe;EACf,UAAU;AACZ;AACA;EACE,UAAU;AACZ;AACA;EACE,YAAY;AACd;AACA;;EAEE,0CAA0C;AAC5C;AACA;;EAEE,0BAA0B;EAC1B,8BAA8B;EAC9B,oCAAoC;EACpC,6BAA6B;AAC/B;AACA;EACE,6CAA6C;AAC/C;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,WAAW;EACX,YAAY;EACZ,UAAU;AACZ;AACA;EACE,cAAc;EACd,WAAW;EACX,YAAY;EACZ,sBAAsB;EACtB,aAAa;AACf;AACA;EACE,cAAc;EACd,0BAA0B;EAC1B,yBAAyB;EACzB,8CAA8C;EAC9C,2CAA2C;AAC7C;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,qBAAqB;EACrB,cAAc;EACd,WAAW;EACX,kBAAkB;EAClB,+CAA+C;AACjD;AACA;EACE,WAAW;EACX,YAAY;EACZ,iBAAiB;AACnB;AACA;EACE,yBAAyB;EACzB,0BAA0B;AAC5B;AACA;EACE,0EAA0E;EAC1E,gDAAgD;EAChD,2FAA2F;EAC3F,sBAAsB;EACtB,kBAAkB;EAClB,mBAAmB;EACnB,kBAAkB;EAClB,iCAAiC;EACjC,gCAAgC;EAChC,cAAc;EACd,gDAAgD;EAChD,8CAA8C;EAC9C,4BAA4B;EAC5B,0CAA0C;EAC1C,2BAA2B;EAC3B,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,2CAA2C;EAC3C,+CAA+C;AACjD;AACA;EACE,gDAAgD;EAChD,oDAAoD;AACtD;AACA;EACE,YAAY;EACZ,6BAA6B;AAC/B;AACA;EACE,kBAAkB;EAClB,qBAAqB;AACvB;AACA;EACE,cAAc;EACd,2CAA2C;EAC3C,gDAAgD;EAChD,YAAY;AACd",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-2b0ca47b] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.avatardiv[data-v-2b0ca47b] {\n position: relative;\n display: inline-block;\n width: var(--avatar-size);\n height: var(--avatar-size);\n}\n.avatardiv--unknown[data-v-2b0ca47b] {\n position: relative;\n background-color: var(--color-main-background);\n white-space: normal;\n}\n.avatardiv[data-v-2b0ca47b]:not(.avatardiv--unknown) {\n background-color: var(--color-main-background) !important;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\n}\n.avatardiv--with-menu[data-v-2b0ca47b] {\n cursor: pointer;\n position: relative;\n}\n.avatardiv--with-legacy-menu .action-item[data-v-2b0ca47b] {\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n}\n.avatardiv--with-legacy-menu[data-v-2b0ca47b] .action-item__menutoggle {\n cursor: pointer;\n opacity: 0;\n}\n.avatardiv--with-legacy-menu[data-v-2b0ca47b]:focus-within .action-item__menutoggle, .avatardiv--with-legacy-menu[data-v-2b0ca47b]:hover .action-item__menutoggle, .avatardiv--with-legacy-menu.avatardiv--with-menu-loading[data-v-2b0ca47b] .action-item__menutoggle {\n opacity: 1;\n}\n.avatardiv--with-legacy-menu:focus-within img[data-v-2b0ca47b], .avatardiv--with-legacy-menu:hover img[data-v-2b0ca47b], .avatardiv--with-legacy-menu.avatardiv--with-menu-loading img[data-v-2b0ca47b] {\n opacity: 0.3;\n}\n.avatardiv--with-legacy-menu[data-v-2b0ca47b] .action-item__menutoggle,\n.avatardiv--with-legacy-menu img[data-v-2b0ca47b] {\n transition: opacity var(--animation-quick);\n}\n.avatardiv--with-legacy-menu[data-v-2b0ca47b] .button-vue,\n.avatardiv--with-legacy-menu[data-v-2b0ca47b] .button-vue__icon {\n height: var(--avatar-size);\n min-height: var(--avatar-size);\n width: var(--avatar-size) !important;\n min-width: var(--avatar-size);\n}\n.avatardiv--with-legacy-menu[data-v-2b0ca47b] > .button-vue, .avatardiv--with-legacy-menu[data-v-2b0ca47b] > .action-item .button-vue {\n --button-radius: calc(var(--avatar-size) / 2);\n}\n.avatardiv .avatar-profile-popover[data-v-2b0ca47b] {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n}\n.avatardiv .avatar-profile-popover__trigger[data-v-2b0ca47b] {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: inherit;\n outline: none;\n}\n.avatardiv .avatardiv__initials-wrapper[data-v-2b0ca47b] {\n display: block;\n height: var(--avatar-size);\n width: var(--avatar-size);\n background-color: var(--color-main-background);\n border-radius: calc(var(--avatar-size) / 2);\n}\n.avatardiv .avatardiv__initials-wrapper .avatardiv__initials[data-v-2b0ca47b] {\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n display: block;\n width: 100%;\n text-align: center;\n font-weight: var(--font-weight-default, normal);\n}\n.avatardiv img[data-v-2b0ca47b] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.avatardiv .material-design-icon[data-v-2b0ca47b] {\n width: var(--avatar-size);\n height: var(--avatar-size);\n}\n.avatardiv .avatardiv__user-status[data-v-2b0ca47b] {\n --avatar-status-size-orbital: calc(var(--avatar-size) * (1 - 1 / sqrt(2)));\n --avatar-status-size-min: var(--font-size-small);\n --avatar-status-size: max(var(--avatar-status-size-orbital), var(--avatar-status-size-min));\n box-sizing: border-box;\n position: absolute;\n inset-inline-end: 0;\n inset-block-end: 0;\n height: var(--avatar-status-size);\n width: var(--avatar-status-size);\n line-height: 1;\n font-size: calc(var(--avatar-status-size) / 1.2);\n background-color: var(--color-main-background);\n background-repeat: no-repeat;\n background-size: var(--avatar-status-size);\n background-position: center;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.acli:hover .avatardiv .avatardiv__user-status[data-v-2b0ca47b] {\n border-color: var(--color-background-hover);\n background-color: var(--color-background-hover);\n}\n.acli.active .avatardiv .avatardiv__user-status[data-v-2b0ca47b] {\n border-color: var(--color-primary-element-light);\n background-color: var(--color-primary-element-light);\n}\n.avatardiv .avatardiv__user-status--icon[data-v-2b0ca47b] {\n border: none;\n background-color: transparent;\n}\n.avatardiv .popovermenu-wrapper[data-v-2b0ca47b] {\n position: relative;\n display: inline-block;\n}\n.avatar-class-icon[data-v-2b0ca47b] {\n display: block;\n border-radius: calc(var(--avatar-size) / 2);\n background-color: var(--color-background-darker);\n height: 100%;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},91760(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-47ce59a3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.button-vue[data-v-47ce59a3] {\n --button-size: var(--default-clickable-area);\n --button-inner-size: calc(var(--button-size) - 4px);\n --button-radius: var(--border-radius-element);\n --button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));\n --button-padding: var(--default-grid-baseline) var(--button-padding-default);\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light);\n border: 1px solid var(--color-primary-element-light-hover);\n border-bottom-width: 2px;\n border-radius: var(--button-radius);\n box-sizing: border-box;\n position: relative;\n width: fit-content;\n overflow: hidden;\n padding-block: 1px 0;\n padding-inline: var(--button-padding);\n min-height: var(--button-size);\n min-width: var(--button-size);\n display: flex;\n align-items: center;\n justify-content: center;\n will-change: transform;\n transition-property: color, border-color, background-color, transform;\n transition-duration: 0.1s;\n transition-timing-function: linear;\n cursor: pointer;\n font-size: var(--default-font-size);\n font-weight: var(--font-weight-element, bold);\n}\n.button-vue--size-small[data-v-47ce59a3] {\n --button-size: var(--clickable-area-small);\n}\n.button-vue--size-large[data-v-47ce59a3] {\n --button-size: var(--clickable-area-large);\n}\n.button-vue[data-v-47ce59a3] * {\n cursor: pointer;\n}\n.button-vue[data-v-47ce59a3]:focus {\n outline: none;\n}\n.button-vue[data-v-47ce59a3]:disabled {\n filter: saturate(0.7);\n opacity: 0.5;\n cursor: default;\n}\n.button-vue[data-v-47ce59a3]:disabled * {\n cursor: default;\n}\n.button-vue[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue[data-v-47ce59a3]:active:not(:disabled) {\n background-color: var(--color-primary-element-light);\n transform: scale(0.985);\n}\n.button-vue__wrapper[data-v-47ce59a3] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n}\n.button-vue--end .button-vue__wrapper[data-v-47ce59a3] {\n justify-content: end;\n}\n.button-vue--start .button-vue__wrapper[data-v-47ce59a3] {\n justify-content: start;\n}\n.button-vue--reverse .button-vue__wrapper[data-v-47ce59a3] {\n flex-direction: row-reverse;\n}\n.button-vue--reverse[data-v-47ce59a3] {\n --button-padding: var(--button-padding-default) var(--default-grid-baseline);\n}\n.button-vue__icon[data-v-47ce59a3] {\n --default-clickable-area: var(--button-inner-size);\n height: var(--button-inner-size);\n width: var(--button-inner-size);\n min-height: var(--button-inner-size);\n min-width: var(--button-inner-size);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.button-vue__icon[data-v-47ce59a3]:empty {\n display: none;\n}\n.button-vue--size-small .button-vue__icon[data-v-47ce59a3] > * {\n max-height: 16px;\n max-width: 16px;\n}\n.button-vue--size-small .button-vue__icon[data-v-47ce59a3] svg {\n height: 16px;\n width: 16px;\n}\n.button-vue__text[data-v-47ce59a3] {\n font-weight: var(--font-weight-element, bold);\n margin-bottom: 1px;\n padding: 2px 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.button-vue__text[data-v-47ce59a3]:empty {\n display: none;\n}\n.button-vue[data-v-47ce59a3]:has(.button-vue__text:empty):not(.button-vue--wide) {\n --button-padding: var(--button-radius);\n line-height: 1;\n width: var(--button-size) !important;\n}\n.button-vue[data-v-47ce59a3]:has(.button-vue__icon:empty) {\n --button-padding: var(--button-padding-default);\n}\n.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-47ce59a3] {\n padding-inline: var(--default-grid-baseline);\n}\n.button-vue--wide[data-v-47ce59a3] {\n width: 100%;\n}\n.button-vue[data-v-47ce59a3]:focus-visible {\n outline: 2px solid var(--color-main-text) !important;\n box-shadow: 0 0 0 4px var(--color-main-background) !important;\n}\n.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-47ce59a3] {\n outline: 2px solid var(--color-primary-element-text);\n border-radius: var(--border-radius-element);\n background-color: transparent;\n}\n.button-vue--primary[data-v-47ce59a3] {\n background-color: var(--color-primary-element);\n border-color: var(--color-primary-element-hover);\n color: var(--color-primary-element-text);\n}\n.button-vue--primary[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: var(--color-primary-element-hover);\n}\n.button-vue--primary[data-v-47ce59a3]:active {\n background-color: var(--color-primary-element);\n}\n.button-vue--secondary[data-v-47ce59a3] {\n background-color: var(--color-primary-element-light);\n border-color: var(--color-primary-element-light-hover);\n color: var(--color-primary-element-light-text);\n}\n.button-vue--secondary[data-v-47ce59a3]:hover:not(:disabled) {\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue--tertiary[data-v-47ce59a3] {\n background-color: transparent;\n border-color: transparent;\n color: var(--color-main-text);\n}\n.button-vue--tertiary[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: var(--color-background-hover);\n}\n.button-vue--tertiary[data-v-47ce59a3]:not(.button-vue--legacy34):hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--color-primary-element) 8%, transparent);\n}\n.button-vue--tertiary-no-background[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--tertiary-on-primary[data-v-47ce59a3] {\n color: var(--color-primary-element-text);\n}\n.button-vue--tertiary-on-primary[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--success[data-v-47ce59a3] {\n border-color: var(--color-success-hover);\n background-color: var(--color-success);\n color: var(--color-success-text);\n}\n.button-vue--success[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: var(--color-success-hover);\n}\n.button-vue--success[data-v-47ce59a3]:active {\n background-color: var(--color-success);\n}\n.button-vue--warning[data-v-47ce59a3] {\n border-color: var(--color-warning-hover);\n background-color: var(--color-warning);\n color: var(--color-warning-text);\n}\n.button-vue--warning[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: var(--color-warning-hover);\n}\n.button-vue--warning[data-v-47ce59a3]:active {\n background-color: var(--color-warning);\n}\n.button-vue--error[data-v-47ce59a3] {\n border-color: var(--color-error-hover);\n background-color: var(--color-error);\n color: var(--color-error-text);\n}\n.button-vue--error[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: var(--color-error-hover);\n}\n.button-vue--error[data-v-47ce59a3]:active {\n background-color: var(--color-error);\n}\n.button-vue--legacy[data-v-47ce59a3] {\n --button-inner-size: var(--button-size);\n border: none;\n padding-block: 0;\n}\n.button-vue--legacy.button-vue--error[data-v-47ce59a3], .button-vue--legacy.button-vue--success[data-v-47ce59a3], .button-vue--legacy.button-vue--warning[data-v-47ce59a3] {\n color: white;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcButton.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,4CAA4C;EAC5C,mDAAmD;EACnD,6CAA6C;EAC7C,mFAAmF;EACnF,4EAA4E;EAC5E,8CAA8C;EAC9C,oDAAoD;EACpD,0DAA0D;EAC1D,wBAAwB;EACxB,mCAAmC;EACnC,sBAAsB;EACtB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,oBAAoB;EACpB,qCAAqC;EACrC,8BAA8B;EAC9B,6BAA6B;EAC7B,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,sBAAsB;EACtB,qEAAqE;EACrE,yBAAyB;EACzB,kCAAkC;EAClC,eAAe;EACf,mCAAmC;EACnC,6CAA6C;AAC/C;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,YAAY;EACZ,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,oDAAoD;EACpD,uBAAuB;AACzB;AACA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;AACb;AACA;EACE,oBAAoB;AACtB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,4EAA4E;AAC9E;AACA;EACE,kDAAkD;EAClD,gCAAgC;EAChC,+BAA+B;EAC/B,oCAAoC;EACpC,mCAAmC;EACnC,aAAa;EACb,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,gBAAgB;EAChB,eAAe;AACjB;AACA;EACE,YAAY;EACZ,WAAW;AACb;AACA;EACE,6CAA6C;EAC7C,kBAAkB;EAClB,cAAc;EACd,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,sCAAsC;EACtC,cAAc;EACd,oCAAoC;AACtC;AACA;EACE,+CAA+C;AACjD;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,WAAW;AACb;AACA;EACE,oDAAoD;EACpD,6DAA6D;AAC/D;AACA;EACE,oDAAoD;EACpD,2CAA2C;EAC3C,6BAA6B;AAC/B;AACA;EACE,8CAA8C;EAC9C,gDAAgD;EAChD,wCAAwC;AAC1C;AACA;EACE,oDAAoD;AACtD;AACA;EACE,8CAA8C;AAChD;AACA;EACE,oDAAoD;EACpD,sDAAsD;EACtD,8CAA8C;AAChD;AACA;EACE,8CAA8C;EAC9C,0DAA0D;AAC5D;AACA;EACE,6BAA6B;EAC7B,yBAAyB;EACzB,6BAA6B;AAC/B;AACA;EACE,+CAA+C;AACjD;AACA;EACE,kFAAkF;AACpF;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,wCAAwC;AAC1C;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,wCAAwC;EACxC,sCAAsC;EACtC,gCAAgC;AAClC;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,sCAAsC;AACxC;AACA;EACE,wCAAwC;EACxC,sCAAsC;EACtC,gCAAgC;AAClC;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,sCAAsC;AACxC;AACA;EACE,sCAAsC;EACtC,oCAAoC;EACpC,8BAA8B;AAChC;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,oCAAoC;AACtC;AACA;EACE,uCAAuC;EACvC,YAAY;EACZ,gBAAgB;AAClB;AACA;EACE,YAAY;AACd",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-47ce59a3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.button-vue[data-v-47ce59a3] {\n --button-size: var(--default-clickable-area);\n --button-inner-size: calc(var(--button-size) - 4px);\n --button-radius: var(--border-radius-element);\n --button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));\n --button-padding: var(--default-grid-baseline) var(--button-padding-default);\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light);\n border: 1px solid var(--color-primary-element-light-hover);\n border-bottom-width: 2px;\n border-radius: var(--button-radius);\n box-sizing: border-box;\n position: relative;\n width: fit-content;\n overflow: hidden;\n padding-block: 1px 0;\n padding-inline: var(--button-padding);\n min-height: var(--button-size);\n min-width: var(--button-size);\n display: flex;\n align-items: center;\n justify-content: center;\n will-change: transform;\n transition-property: color, border-color, background-color, transform;\n transition-duration: 0.1s;\n transition-timing-function: linear;\n cursor: pointer;\n font-size: var(--default-font-size);\n font-weight: var(--font-weight-element, bold);\n}\n.button-vue--size-small[data-v-47ce59a3] {\n --button-size: var(--clickable-area-small);\n}\n.button-vue--size-large[data-v-47ce59a3] {\n --button-size: var(--clickable-area-large);\n}\n.button-vue[data-v-47ce59a3] * {\n cursor: pointer;\n}\n.button-vue[data-v-47ce59a3]:focus {\n outline: none;\n}\n.button-vue[data-v-47ce59a3]:disabled {\n filter: saturate(0.7);\n opacity: 0.5;\n cursor: default;\n}\n.button-vue[data-v-47ce59a3]:disabled * {\n cursor: default;\n}\n.button-vue[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue[data-v-47ce59a3]:active:not(:disabled) {\n background-color: var(--color-primary-element-light);\n transform: scale(0.985);\n}\n.button-vue__wrapper[data-v-47ce59a3] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n}\n.button-vue--end .button-vue__wrapper[data-v-47ce59a3] {\n justify-content: end;\n}\n.button-vue--start .button-vue__wrapper[data-v-47ce59a3] {\n justify-content: start;\n}\n.button-vue--reverse .button-vue__wrapper[data-v-47ce59a3] {\n flex-direction: row-reverse;\n}\n.button-vue--reverse[data-v-47ce59a3] {\n --button-padding: var(--button-padding-default) var(--default-grid-baseline);\n}\n.button-vue__icon[data-v-47ce59a3] {\n --default-clickable-area: var(--button-inner-size);\n height: var(--button-inner-size);\n width: var(--button-inner-size);\n min-height: var(--button-inner-size);\n min-width: var(--button-inner-size);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.button-vue__icon[data-v-47ce59a3]:empty {\n display: none;\n}\n.button-vue--size-small .button-vue__icon[data-v-47ce59a3] > * {\n max-height: 16px;\n max-width: 16px;\n}\n.button-vue--size-small .button-vue__icon[data-v-47ce59a3] svg {\n height: 16px;\n width: 16px;\n}\n.button-vue__text[data-v-47ce59a3] {\n font-weight: var(--font-weight-element, bold);\n margin-bottom: 1px;\n padding: 2px 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.button-vue__text[data-v-47ce59a3]:empty {\n display: none;\n}\n.button-vue[data-v-47ce59a3]:has(.button-vue__text:empty):not(.button-vue--wide) {\n --button-padding: var(--button-radius);\n line-height: 1;\n width: var(--button-size) !important;\n}\n.button-vue[data-v-47ce59a3]:has(.button-vue__icon:empty) {\n --button-padding: var(--button-padding-default);\n}\n.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-47ce59a3] {\n padding-inline: var(--default-grid-baseline);\n}\n.button-vue--wide[data-v-47ce59a3] {\n width: 100%;\n}\n.button-vue[data-v-47ce59a3]:focus-visible {\n outline: 2px solid var(--color-main-text) !important;\n box-shadow: 0 0 0 4px var(--color-main-background) !important;\n}\n.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-47ce59a3] {\n outline: 2px solid var(--color-primary-element-text);\n border-radius: var(--border-radius-element);\n background-color: transparent;\n}\n.button-vue--primary[data-v-47ce59a3] {\n background-color: var(--color-primary-element);\n border-color: var(--color-primary-element-hover);\n color: var(--color-primary-element-text);\n}\n.button-vue--primary[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: var(--color-primary-element-hover);\n}\n.button-vue--primary[data-v-47ce59a3]:active {\n background-color: var(--color-primary-element);\n}\n.button-vue--secondary[data-v-47ce59a3] {\n background-color: var(--color-primary-element-light);\n border-color: var(--color-primary-element-light-hover);\n color: var(--color-primary-element-light-text);\n}\n.button-vue--secondary[data-v-47ce59a3]:hover:not(:disabled) {\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue--tertiary[data-v-47ce59a3] {\n background-color: transparent;\n border-color: transparent;\n color: var(--color-main-text);\n}\n.button-vue--tertiary[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: var(--color-background-hover);\n}\n.button-vue--tertiary[data-v-47ce59a3]:not(.button-vue--legacy34):hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--color-primary-element) 8%, transparent);\n}\n.button-vue--tertiary-no-background[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--tertiary-on-primary[data-v-47ce59a3] {\n color: var(--color-primary-element-text);\n}\n.button-vue--tertiary-on-primary[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--success[data-v-47ce59a3] {\n border-color: var(--color-success-hover);\n background-color: var(--color-success);\n color: var(--color-success-text);\n}\n.button-vue--success[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: var(--color-success-hover);\n}\n.button-vue--success[data-v-47ce59a3]:active {\n background-color: var(--color-success);\n}\n.button-vue--warning[data-v-47ce59a3] {\n border-color: var(--color-warning-hover);\n background-color: var(--color-warning);\n color: var(--color-warning-text);\n}\n.button-vue--warning[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: var(--color-warning-hover);\n}\n.button-vue--warning[data-v-47ce59a3]:active {\n background-color: var(--color-warning);\n}\n.button-vue--error[data-v-47ce59a3] {\n border-color: var(--color-error-hover);\n background-color: var(--color-error);\n color: var(--color-error-text);\n}\n.button-vue--error[data-v-47ce59a3]:hover:not(:disabled) {\n background-color: var(--color-error-hover);\n}\n.button-vue--error[data-v-47ce59a3]:active {\n background-color: var(--color-error);\n}\n.button-vue--legacy[data-v-47ce59a3] {\n --button-inner-size: var(--button-size);\n border: none;\n padding-block: 0;\n}\n.button-vue--legacy.button-vue--error[data-v-47ce59a3], .button-vue--legacy.button-vue--success[data-v-47ce59a3], .button-vue--legacy.button-vue--warning[data-v-47ce59a3] {\n color: white;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},97390(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-5ca1e30f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.checkbox-content[data-v-5ca1e30f] {\n display: flex;\n align-items: center;\n flex-direction: row;\n gap: var(--default-grid-baseline);\n user-select: none;\n min-height: var(--default-clickable-area);\n border-radius: var(--checkbox-radio-switch--border-radius);\n padding: var(--default-grid-baseline) calc((var(--default-clickable-area) - var(--icon-height)) / 2);\n width: 100%;\n max-width: fit-content;\n}\n.checkbox-content__wrapper[data-v-5ca1e30f] {\n flex: 1 0 0;\n max-width: 100%;\n}\n.checkbox-content__text[data-v-5ca1e30f]:empty {\n display: none;\n}\n.checkbox-content-checkbox:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-5ca1e30f], .checkbox-content-radio:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-5ca1e30f], .checkbox-content-switch:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-5ca1e30f] {\n margin-block: calc((var(--default-clickable-area) - 2 * var(--default-grid-baseline) - var(--icon-height)) / 2) auto;\n line-height: 0;\n}\n.checkbox-content-checkbox:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-5ca1e30f], .checkbox-content-radio:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-5ca1e30f], .checkbox-content-switch:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-5ca1e30f] {\n display: flex;\n align-items: center;\n margin-block-end: 0;\n align-self: start;\n}\n.checkbox-content__icon[data-v-5ca1e30f] > * {\n width: var(--icon-size);\n height: var(--icon-height);\n color: var(--color-primary-element);\n}\n.checkbox-content__description[data-v-5ca1e30f] {\n display: block;\n color: var(--color-text-maxcontrast);\n font-weight: var(--font-weight-default, normal);\n}\n.checkbox-content--button-variant .checkbox-content__icon[data-v-5ca1e30f]:not(.checkbox-content__icon--checked) > * {\n color: var(--color-primary-element);\n}\n.checkbox-content--button-variant .checkbox-content__icon--checked[data-v-5ca1e30f] > * {\n color: var(--color-primary-element-text);\n}\n.checkbox-content--has-text[data-v-5ca1e30f] {\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.checkbox-content[data-v-5ca1e30f], .checkbox-content[data-v-5ca1e30f] * {\n cursor: pointer;\n flex-shrink: 0;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-81045d2a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.checkbox-radio-switch[data-v-81045d2a] {\n --icon-size: var(--f99d0228);\n --icon-height: var(--v69c82152);\n --checkbox-radio-switch--border-radius: var(--border-radius-element);\n --checkbox-radio-switch--border-radius-outer: calc(var(--checkbox-radio-switch--border-radius) + 2px);\n display: flex;\n align-items: center;\n color: var(--color-main-text);\n background-color: transparent;\n font-size: var(--default-font-size);\n font-weight: var(--font-weight-element, normal);\n line-height: var(--default-line-height);\n padding: 0;\n position: relative;\n}\n.checkbox-radio-switch__input[data-v-81045d2a] {\n position: absolute;\n z-index: -1;\n opacity: 0 !important;\n width: var(--icon-size);\n height: var(--icon-size);\n}\n.checkbox-radio-switch__input:focus-visible + .checkbox-radio-switch__content[data-v-81045d2a], .checkbox-radio-switch__input[data-v-81045d2a]:focus-visible {\n outline: 2px solid var(--color-main-text);\n border-color: var(--color-main-background);\n outline-offset: -2px;\n}\n.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-81045d2a] {\n opacity: 0.5;\n}\n.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-81045d2a] .checkbox-radio-switch__icon > * {\n color: var(--color-main-text);\n}\n.checkbox-radio-switch--disabled .checkbox-radio-switch__content.checkbox-content[data-v-81045d2a], .checkbox-radio-switch--disabled .checkbox-radio-switch__content.checkbox-content[data-v-81045d2a] *:not(a) {\n cursor: default !important;\n}\n.checkbox-radio-switch:not(.checkbox-radio-switch--disabled, .checkbox-radio-switch--checked):focus-within .checkbox-radio-switch__content[data-v-81045d2a], .checkbox-radio-switch:not(.checkbox-radio-switch--disabled, .checkbox-radio-switch--checked) .checkbox-radio-switch__content[data-v-81045d2a]:hover {\n background-color: var(--color-background-hover);\n}\n.checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-81045d2a], .checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-81045d2a]:hover {\n background-color: var(--color-primary-element-hover);\n}\n.checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-81045d2a], .checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-81045d2a]:hover {\n background-color: var(--color-primary-element-light-hover);\n}\n.checkbox-radio-switch-switch[data-v-81045d2a]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon > * {\n color: var(--color-text-maxcontrast);\n}\n.checkbox-radio-switch-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked[data-v-81045d2a] .checkbox-radio-switch__icon > * {\n color: var(--color-primary-element-light);\n}\n.checkbox-radio-switch--button-variant.checkbox-radio-switch[data-v-81045d2a] {\n background-color: var(--color-main-background);\n border: 2px solid var(--color-border-maxcontrast);\n overflow: hidden;\n}\n.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked[data-v-81045d2a] {\n font-weight: var(--font-weight-element, bold);\n}\n.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-radio-switch__content[data-v-81045d2a] {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.checkbox-radio-switch--button-variant[data-v-81045d2a] .checkbox-radio-switch__text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n}\n.checkbox-radio-switch--button-variant[data-v-81045d2a]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon > * {\n color: var(--color-main-text);\n}\n.checkbox-radio-switch--button-variant[data-v-81045d2a] .checkbox-radio-switch__icon:empty {\n display: none;\n}\n.checkbox-radio-switch--button-variant[data-v-81045d2a]:not(.checkbox-radio-switch--button-variant-v-grouped):not(.checkbox-radio-switch--button-variant-h-grouped), .checkbox-radio-switch--button-variant .checkbox-radio-switch__content[data-v-81045d2a] {\n border-radius: var(--checkbox-radio-switch--border-radius);\n}\n.checkbox-radio-switch[data-v-81045d2a] {\n /* Special rules for vertical button groups */\n}\n.checkbox-radio-switch--button-variant-v-grouped .checkbox-radio-switch__content[data-v-81045d2a] {\n flex-basis: 100%;\n max-width: unset;\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-81045d2a]:first-of-type {\n border-start-start-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-start-end-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-81045d2a]:last-of-type {\n border-end-start-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-end-end-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-81045d2a]:not(:last-of-type) {\n border-bottom: 0 !important;\n}\n.checkbox-radio-switch--button-variant-v-grouped:not(:last-of-type) .checkbox-radio-switch__content[data-v-81045d2a] {\n margin-bottom: 2px;\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-81045d2a]:not(:first-of-type) {\n border-top: 0 !important;\n}\n.checkbox-radio-switch[data-v-81045d2a] {\n /* Special rules for horizontal button groups */\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-81045d2a]:first-of-type {\n border-start-start-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-end-start-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-81045d2a]:last-of-type {\n border-start-end-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-end-end-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-81045d2a]:not(:last-of-type) {\n border-inline-end: 0 !important;\n}\n.checkbox-radio-switch--button-variant-h-grouped:not(:last-of-type) .checkbox-radio-switch__content[data-v-81045d2a] {\n margin-inline-end: 2px;\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-81045d2a]:not(:first-of-type) {\n border-inline-start: 0 !important;\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-81045d2a] .checkbox-radio-switch__text {\n text-align: center;\n display: flex;\n align-items: center;\n}\n.checkbox-radio-switch--button-variant-h-grouped .checkbox-radio-switch__content[data-v-81045d2a] {\n flex-direction: column;\n justify-content: center;\n width: 100%;\n margin: 0;\n gap: 0;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcCheckboxRadioSwitch.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,iCAAiC;EACjC,iBAAiB;EACjB,yCAAyC;EACzC,0DAA0D;EAC1D,oGAAoG;EACpG,WAAW;EACX,sBAAsB;AACxB;AACA;EACE,WAAW;EACX,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;EACE,oHAAoH;EACpH,cAAc;AAChB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,iBAAiB;AACnB;AACA;EACE,uBAAuB;EACvB,0BAA0B;EAC1B,mCAAmC;AACrC;AACA;EACE,cAAc;EACd,oCAAoC;EACpC,+CAA+C;AACjD;AACA;EACE,mCAAmC;AACrC;AACA;EACE,wCAAwC;AAC1C;AACA;EACE,oEAAoE;AACtE;AACA;EACE,eAAe;EACf,cAAc;AAChB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,4BAA4B;EAC5B,+BAA+B;EAC/B,oEAAoE;EACpE,qGAAqG;EACrG,aAAa;EACb,mBAAmB;EACnB,6BAA6B;EAC7B,6BAA6B;EAC7B,mCAAmC;EACnC,+CAA+C;EAC/C,uCAAuC;EACvC,UAAU;EACV,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,qBAAqB;EACrB,uBAAuB;EACvB,wBAAwB;AAC1B;AACA;EACE,yCAAyC;EACzC,0CAA0C;EAC1C,oBAAoB;AACtB;AACA;EACE,YAAY;AACd;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,+CAA+C;AACjD;AACA;EACE,oDAAoD;AACtD;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,oCAAoC;AACtC;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,8CAA8C;EAC9C,iDAAiD;EACjD,gBAAgB;AAClB;AACA;EACE,6CAA6C;AAC/C;AACA;EACE,8CAA8C;EAC9C,wCAAwC;AAC1C;AACA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;EACnB,WAAW;AACb;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,aAAa;AACf;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,6CAA6C;AAC/C;AACA;EACE,gBAAgB;EAChB,gBAAgB;AAClB;AACA;EACE,4EAA4E;EAC5E,0EAA0E;AAC5E;AACA;EACE,0EAA0E;EAC1E,wEAAwE;AAC1E;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,kBAAkB;AACpB;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,+CAA+C;AACjD;AACA;EACE,4EAA4E;EAC5E,0EAA0E;AAC5E;AACA;EACE,0EAA0E;EAC1E,wEAAwE;AAC1E;AACA;EACE,+BAA+B;AACjC;AACA;EACE,sBAAsB;AACxB;AACA;EACE,iCAAiC;AACnC;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,sBAAsB;EACtB,uBAAuB;EACvB,WAAW;EACX,SAAS;EACT,MAAM;AACR",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-5ca1e30f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.checkbox-content[data-v-5ca1e30f] {\n display: flex;\n align-items: center;\n flex-direction: row;\n gap: var(--default-grid-baseline);\n user-select: none;\n min-height: var(--default-clickable-area);\n border-radius: var(--checkbox-radio-switch--border-radius);\n padding: var(--default-grid-baseline) calc((var(--default-clickable-area) - var(--icon-height)) / 2);\n width: 100%;\n max-width: fit-content;\n}\n.checkbox-content__wrapper[data-v-5ca1e30f] {\n flex: 1 0 0;\n max-width: 100%;\n}\n.checkbox-content__text[data-v-5ca1e30f]:empty {\n display: none;\n}\n.checkbox-content-checkbox:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-5ca1e30f], .checkbox-content-radio:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-5ca1e30f], .checkbox-content-switch:not(.checkbox-content--button-variant) .checkbox-content__icon[data-v-5ca1e30f] {\n margin-block: calc((var(--default-clickable-area) - 2 * var(--default-grid-baseline) - var(--icon-height)) / 2) auto;\n line-height: 0;\n}\n.checkbox-content-checkbox:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-5ca1e30f], .checkbox-content-radio:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-5ca1e30f], .checkbox-content-switch:not(.checkbox-content--button-variant) .checkbox-content__icon--has-description[data-v-5ca1e30f] {\n display: flex;\n align-items: center;\n margin-block-end: 0;\n align-self: start;\n}\n.checkbox-content__icon[data-v-5ca1e30f] > * {\n width: var(--icon-size);\n height: var(--icon-height);\n color: var(--color-primary-element);\n}\n.checkbox-content__description[data-v-5ca1e30f] {\n display: block;\n color: var(--color-text-maxcontrast);\n font-weight: var(--font-weight-default, normal);\n}\n.checkbox-content--button-variant .checkbox-content__icon[data-v-5ca1e30f]:not(.checkbox-content__icon--checked) > * {\n color: var(--color-primary-element);\n}\n.checkbox-content--button-variant .checkbox-content__icon--checked[data-v-5ca1e30f] > * {\n color: var(--color-primary-element-text);\n}\n.checkbox-content--has-text[data-v-5ca1e30f] {\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.checkbox-content[data-v-5ca1e30f], .checkbox-content[data-v-5ca1e30f] * {\n cursor: pointer;\n flex-shrink: 0;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-81045d2a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.checkbox-radio-switch[data-v-81045d2a] {\n --icon-size: var(--f99d0228);\n --icon-height: var(--v69c82152);\n --checkbox-radio-switch--border-radius: var(--border-radius-element);\n --checkbox-radio-switch--border-radius-outer: calc(var(--checkbox-radio-switch--border-radius) + 2px);\n display: flex;\n align-items: center;\n color: var(--color-main-text);\n background-color: transparent;\n font-size: var(--default-font-size);\n font-weight: var(--font-weight-element, normal);\n line-height: var(--default-line-height);\n padding: 0;\n position: relative;\n}\n.checkbox-radio-switch__input[data-v-81045d2a] {\n position: absolute;\n z-index: -1;\n opacity: 0 !important;\n width: var(--icon-size);\n height: var(--icon-size);\n}\n.checkbox-radio-switch__input:focus-visible + .checkbox-radio-switch__content[data-v-81045d2a], .checkbox-radio-switch__input[data-v-81045d2a]:focus-visible {\n outline: 2px solid var(--color-main-text);\n border-color: var(--color-main-background);\n outline-offset: -2px;\n}\n.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-81045d2a] {\n opacity: 0.5;\n}\n.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-81045d2a] .checkbox-radio-switch__icon > * {\n color: var(--color-main-text);\n}\n.checkbox-radio-switch--disabled .checkbox-radio-switch__content.checkbox-content[data-v-81045d2a], .checkbox-radio-switch--disabled .checkbox-radio-switch__content.checkbox-content[data-v-81045d2a] *:not(a) {\n cursor: default !important;\n}\n.checkbox-radio-switch:not(.checkbox-radio-switch--disabled, .checkbox-radio-switch--checked):focus-within .checkbox-radio-switch__content[data-v-81045d2a], .checkbox-radio-switch:not(.checkbox-radio-switch--disabled, .checkbox-radio-switch--checked) .checkbox-radio-switch__content[data-v-81045d2a]:hover {\n background-color: var(--color-background-hover);\n}\n.checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-81045d2a], .checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-81045d2a]:hover {\n background-color: var(--color-primary-element-hover);\n}\n.checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-81045d2a], .checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-81045d2a]:hover {\n background-color: var(--color-primary-element-light-hover);\n}\n.checkbox-radio-switch-switch[data-v-81045d2a]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon > * {\n color: var(--color-text-maxcontrast);\n}\n.checkbox-radio-switch-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked[data-v-81045d2a] .checkbox-radio-switch__icon > * {\n color: var(--color-primary-element-light);\n}\n.checkbox-radio-switch--button-variant.checkbox-radio-switch[data-v-81045d2a] {\n background-color: var(--color-main-background);\n border: 2px solid var(--color-border-maxcontrast);\n overflow: hidden;\n}\n.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked[data-v-81045d2a] {\n font-weight: var(--font-weight-element, bold);\n}\n.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-radio-switch__content[data-v-81045d2a] {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.checkbox-radio-switch--button-variant[data-v-81045d2a] .checkbox-radio-switch__text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n}\n.checkbox-radio-switch--button-variant[data-v-81045d2a]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon > * {\n color: var(--color-main-text);\n}\n.checkbox-radio-switch--button-variant[data-v-81045d2a] .checkbox-radio-switch__icon:empty {\n display: none;\n}\n.checkbox-radio-switch--button-variant[data-v-81045d2a]:not(.checkbox-radio-switch--button-variant-v-grouped):not(.checkbox-radio-switch--button-variant-h-grouped), .checkbox-radio-switch--button-variant .checkbox-radio-switch__content[data-v-81045d2a] {\n border-radius: var(--checkbox-radio-switch--border-radius);\n}\n.checkbox-radio-switch[data-v-81045d2a] {\n /* Special rules for vertical button groups */\n}\n.checkbox-radio-switch--button-variant-v-grouped .checkbox-radio-switch__content[data-v-81045d2a] {\n flex-basis: 100%;\n max-width: unset;\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-81045d2a]:first-of-type {\n border-start-start-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-start-end-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-81045d2a]:last-of-type {\n border-end-start-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-end-end-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-81045d2a]:not(:last-of-type) {\n border-bottom: 0 !important;\n}\n.checkbox-radio-switch--button-variant-v-grouped:not(:last-of-type) .checkbox-radio-switch__content[data-v-81045d2a] {\n margin-bottom: 2px;\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-81045d2a]:not(:first-of-type) {\n border-top: 0 !important;\n}\n.checkbox-radio-switch[data-v-81045d2a] {\n /* Special rules for horizontal button groups */\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-81045d2a]:first-of-type {\n border-start-start-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-end-start-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-81045d2a]:last-of-type {\n border-start-end-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-end-end-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-81045d2a]:not(:last-of-type) {\n border-inline-end: 0 !important;\n}\n.checkbox-radio-switch--button-variant-h-grouped:not(:last-of-type) .checkbox-radio-switch__content[data-v-81045d2a] {\n margin-inline-end: 2px;\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-81045d2a]:not(:first-of-type) {\n border-inline-start: 0 !important;\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-81045d2a] .checkbox-radio-switch__text {\n text-align: center;\n display: flex;\n align-items: center;\n}\n.checkbox-radio-switch--button-variant-h-grouped .checkbox-radio-switch__content[data-v-81045d2a] {\n flex-direction: column;\n justify-content: center;\n width: 100%;\n margin: 0;\n gap: 0;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},1756(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-7639cce1] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n[data-theme-light][data-v-7639cce1] .native-datetime-picker,\n[data-themes*=light][data-v-7639cce1] .native-datetime-picker {\n color-scheme: light;\n}\n[data-theme-dark][data-v-7639cce1] .native-datetime-picker,\n[data-themes*=dark][data-v-7639cce1] .native-datetime-picker {\n color-scheme: dark;\n}\n@media (prefers-color-scheme: light) {\n[data-theme-default][data-v-7639cce1] .native-datetime-picker,\n [data-themes*=default][data-v-7639cce1] .native-datetime-picker {\n color-scheme: light;\n}\n}\n@media (prefers-color-scheme: dark) {\n[data-theme-default][data-v-7639cce1] .native-datetime-picker,\n [data-themes*=default][data-v-7639cce1] .native-datetime-picker {\n color-scheme: dark;\n}\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcDateTimePickerNative.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;EAEE,mBAAmB;AACrB;AACA;;EAEE,kBAAkB;AACpB;AACA;AACA;;IAEI,mBAAmB;AACvB;AACA;AACA;AACA;;IAEI,kBAAkB;AACtB;AACA",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-7639cce1] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n[data-theme-light][data-v-7639cce1] .native-datetime-picker,\n[data-themes*=light][data-v-7639cce1] .native-datetime-picker {\n color-scheme: light;\n}\n[data-theme-dark][data-v-7639cce1] .native-datetime-picker,\n[data-themes*=dark][data-v-7639cce1] .native-datetime-picker {\n color-scheme: dark;\n}\n@media (prefers-color-scheme: light) {\n[data-theme-default][data-v-7639cce1] .native-datetime-picker,\n [data-themes*=default][data-v-7639cce1] .native-datetime-picker {\n color-scheme: light;\n}\n}\n@media (prefers-color-scheme: dark) {\n[data-theme-default][data-v-7639cce1] .native-datetime-picker,\n [data-themes*=default][data-v-7639cce1] .native-datetime-picker {\n color-scheme: dark;\n}\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},17864(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/** When having the small dialog style we override the modal styling so dialogs look more dialog like */\n@media only screen and (max-width: 512px) {\n.dialog__modal .modal-wrapper--small .modal-container {\n width: fit-content;\n height: unset;\n max-height: 90%;\n position: relative;\n top: unset;\n border-radius: var(--border-radius-element);\n}\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-24e91b99] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dialog[data-v-24e91b99] {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow: hidden;\n}\n.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container {\n display: flex !important;\n padding-block: 4px 0;\n padding-inline: 12px 0;\n}\n.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.dialog__wrapper[data-v-24e91b99] {\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n.dialog__wrapper--collapsed[data-v-24e91b99] {\n flex-direction: column;\n}\n.dialog__navigation[data-v-24e91b99] {\n display: flex;\n flex-shrink: 0;\n}\n.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99] {\n flex-direction: column;\n overflow: hidden auto;\n height: 100%;\n min-width: 200px;\n margin-inline-end: 20px;\n}\n.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99] {\n flex-direction: row;\n justify-content: space-between;\n overflow: auto hidden;\n width: 100%;\n min-width: 100%;\n}\n.dialog__name[data-v-24e91b99] {\n font-size: 21px;\n text-align: center;\n height: fit-content;\n min-height: var(--default-clickable-area);\n line-height: var(--default-clickable-area);\n overflow-wrap: break-word;\n margin-block: 0 12px;\n}\n.dialog__content[data-v-24e91b99] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n padding-inline-end: 12px;\n}\n.dialog__text[data-v-24e91b99] {\n padding-block-end: 6px;\n}\n.dialog__actions[data-v-24e91b99] {\n display: flex;\n gap: 6px;\n align-content: center;\n justify-content: end;\n width: 100%;\n max-width: 100%;\n padding-inline: 0 12px;\n margin-inline: 0;\n margin-block: 0;\n}\n.dialog__actions[data-v-24e91b99]:not(:empty) {\n margin-block: 6px 12px;\n}\n@media only screen and (max-width: 512px) {\n.dialog__name[data-v-24e91b99] {\n text-align: start;\n margin-inline-end: var(--default-clickable-area);\n}\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcDialog.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA,uGAAuG;AACvG;AACA;IACI,kBAAkB;IAClB,aAAa;IACb,eAAe;IACf,kBAAkB;IAClB,UAAU;IACV,2CAA2C;AAC/C;AACA,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,YAAY;EACZ,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,8BAA8B;EAC9B,gBAAgB;AAClB;AACA;EACE,wBAAwB;EACxB,oBAAoB;EACpB,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,OAAO;EACP,aAAa;EACb,gBAAgB;AAClB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,cAAc;AAChB;AACA;EACE,sBAAsB;EACtB,qBAAqB;EACrB,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,mBAAmB;EACnB,8BAA8B;EAC9B,qBAAqB;EACrB,WAAW;EACX,eAAe;AACjB;AACA;EACE,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,yCAAyC;EACzC,0CAA0C;EAC1C,yBAAyB;EACzB,oBAAoB;AACtB;AACA;EACE,OAAO;EACP,aAAa;EACb,cAAc;EACd,wBAAwB;AAC1B;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,QAAQ;EACR,qBAAqB;EACrB,oBAAoB;EACpB,WAAW;EACX,eAAe;EACf,sBAAsB;EACtB,gBAAgB;EAChB,eAAe;AACjB;AACA;EACE,sBAAsB;AACxB;AACA;AACA;IACI,iBAAiB;IACjB,gDAAgD;AACpD;AACA",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/** When having the small dialog style we override the modal styling so dialogs look more dialog like */\n@media only screen and (max-width: 512px) {\n.dialog__modal .modal-wrapper--small .modal-container {\n width: fit-content;\n height: unset;\n max-height: 90%;\n position: relative;\n top: unset;\n border-radius: var(--border-radius-element);\n}\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-24e91b99] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dialog[data-v-24e91b99] {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow: hidden;\n}\n.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container {\n display: flex !important;\n padding-block: 4px 0;\n padding-inline: 12px 0;\n}\n.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.dialog__wrapper[data-v-24e91b99] {\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n.dialog__wrapper--collapsed[data-v-24e91b99] {\n flex-direction: column;\n}\n.dialog__navigation[data-v-24e91b99] {\n display: flex;\n flex-shrink: 0;\n}\n.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99] {\n flex-direction: column;\n overflow: hidden auto;\n height: 100%;\n min-width: 200px;\n margin-inline-end: 20px;\n}\n.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99] {\n flex-direction: row;\n justify-content: space-between;\n overflow: auto hidden;\n width: 100%;\n min-width: 100%;\n}\n.dialog__name[data-v-24e91b99] {\n font-size: 21px;\n text-align: center;\n height: fit-content;\n min-height: var(--default-clickable-area);\n line-height: var(--default-clickable-area);\n overflow-wrap: break-word;\n margin-block: 0 12px;\n}\n.dialog__content[data-v-24e91b99] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n padding-inline-end: 12px;\n}\n.dialog__text[data-v-24e91b99] {\n padding-block-end: 6px;\n}\n.dialog__actions[data-v-24e91b99] {\n display: flex;\n gap: 6px;\n align-content: center;\n justify-content: end;\n width: 100%;\n max-width: 100%;\n padding-inline: 0 12px;\n margin-inline: 0;\n margin-block: 0;\n}\n.dialog__actions[data-v-24e91b99]:not(:empty) {\n margin-block: 6px 12px;\n}\n@media only screen and (max-width: 512px) {\n.dialog__name[data-v-24e91b99] {\n text-align: start;\n margin-inline-end: var(--default-clickable-area);\n}\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},43549(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-c843f2cd] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.name-parts[data-v-c843f2cd] {\n display: flex;\n max-width: 100%;\n min-width: 0;\n cursor: inherit;\n}\n.name-parts__first[data-v-c843f2cd] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: pre;\n}\n.name-parts__last[data-v-c843f2cd] {\n flex: 0 0 auto;\n white-space: pre;\n}\n.name-parts__first[data-v-c843f2cd], .name-parts__last[data-v-c843f2cd] {\n cursor: inherit;\n}\n.name-parts__first strong[data-v-c843f2cd], .name-parts__last strong[data-v-c843f2cd] {\n font-weight: bold;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcEllipsisedOption.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,eAAe;EACf,YAAY;EACZ,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,gBAAgB;AAClB;AACA;EACE,eAAe;AACjB;AACA;EACE,iBAAiB;AACnB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-c843f2cd] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.name-parts[data-v-c843f2cd] {\n display: flex;\n max-width: 100%;\n min-width: 0;\n cursor: inherit;\n}\n.name-parts__first[data-v-c843f2cd] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: pre;\n}\n.name-parts__last[data-v-c843f2cd] {\n flex: 0 0 auto;\n white-space: pre;\n}\n.name-parts__first[data-v-c843f2cd], .name-parts__last[data-v-c843f2cd] {\n cursor: inherit;\n}\n.name-parts__first strong[data-v-c843f2cd], .name-parts__last strong[data-v-c843f2cd] {\n font-weight: bold;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},11666(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-8609a4c1] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.empty-content[data-v-8609a4c1] {\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n /* In case of using in a flex container - flex in advance */\n flex-grow: 1;\n padding: var(--default-grid-baseline);\n}\n.modal-wrapper .empty-content[data-v-8609a4c1] {\n margin-top: 5vh;\n margin-bottom: 5vh;\n}\n.empty-content__icon[data-v-8609a4c1] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 64px;\n height: 64px;\n margin: 0 auto 15px;\n opacity: 0.4;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 64px;\n}\n.empty-content__icon[data-v-8609a4c1] svg {\n width: 64px !important;\n height: 64px !important;\n max-width: 64px !important;\n max-height: 64px !important;\n}\n.empty-content__name[data-v-8609a4c1] {\n margin-bottom: 10px;\n text-align: center;\n font-weight: var(--font-weight-heading, bold);\n font-size: 20px;\n line-height: 30px;\n}\n.empty-content__description[data-v-8609a4c1] {\n color: var(--color-text-maxcontrast);\n text-align: center;\n text-wrap-style: balance;\n}\n.empty-content__action[data-v-8609a4c1] {\n margin-top: 8px;\n}\n.modal-wrapper .empty-content__action[data-v-8609a4c1] {\n margin-top: 20px;\n display: flex;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcEmptyContent.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,sBAAsB;EACtB,uBAAuB;EACvB,2DAA2D;EAC3D,YAAY;EACZ,qCAAqC;AACvC;AACA;EACE,eAAe;EACf,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;EAC3B,qBAAqB;AACvB;AACA;EACE,sBAAsB;EACtB,uBAAuB;EACvB,0BAA0B;EAC1B,2BAA2B;AAC7B;AACA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,6CAA6C;EAC7C,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,oCAAoC;EACpC,kBAAkB;EAClB,wBAAwB;AAC1B;AACA;EACE,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,aAAa;AACf",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-8609a4c1] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.empty-content[data-v-8609a4c1] {\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n /* In case of using in a flex container - flex in advance */\n flex-grow: 1;\n padding: var(--default-grid-baseline);\n}\n.modal-wrapper .empty-content[data-v-8609a4c1] {\n margin-top: 5vh;\n margin-bottom: 5vh;\n}\n.empty-content__icon[data-v-8609a4c1] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 64px;\n height: 64px;\n margin: 0 auto 15px;\n opacity: 0.4;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 64px;\n}\n.empty-content__icon[data-v-8609a4c1] svg {\n width: 64px !important;\n height: 64px !important;\n max-width: 64px !important;\n max-height: 64px !important;\n}\n.empty-content__name[data-v-8609a4c1] {\n margin-bottom: 10px;\n text-align: center;\n font-weight: var(--font-weight-heading, bold);\n font-size: 20px;\n line-height: 30px;\n}\n.empty-content__description[data-v-8609a4c1] {\n color: var(--color-text-maxcontrast);\n text-align: center;\n text-wrap-style: balance;\n}\n.empty-content__action[data-v-8609a4c1] {\n margin-top: 8px;\n}\n.modal-wrapper .empty-content__action[data-v-8609a4c1] {\n margin-top: 20px;\n display: flex;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},34787(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_g04W5 {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._ncFormBox_DLj7n {\n display: flex;\n flex-direction: column;\n gap: calc(1 * var(--default-grid-baseline));\n}\n._ncFormBox_DLj7n._ncFormBox_row_Fr1lK {\n flex-direction: row;\n}\n._ncFormBox__item_-SJyo {\n border-radius: var(--border-radius-small) !important;\n}\n._ncFormBox_col_1wgxQ {\n flex-direction: column;\n}\n._ncFormBox_col_1wgxQ ._ncFormBox__item_-SJyo:first-child {\n border-start-start-radius: var(--border-radius-element) !important;\n border-start-end-radius: var(--border-radius-element) !important;\n}\n._ncFormBox_col_1wgxQ ._ncFormBox__item_-SJyo:last-child {\n border-end-start-radius: var(--border-radius-element) !important;\n border-end-end-radius: var(--border-radius-element) !important;\n}\n._ncFormBox_row_Fr1lK {\n flex-direction: row;\n}\n._ncFormBox_row_Fr1lK ._ncFormBox__item_-SJyo {\n flex: 1 1;\n}\n._ncFormBox_row_Fr1lK ._ncFormBox__item_-SJyo:first-child {\n border-start-start-radius: var(--border-radius-element) !important;\n border-end-start-radius: var(--border-radius-element) !important;\n}\n._ncFormBox_row_Fr1lK ._ncFormBox__item_-SJyo:last-child {\n border-end-end-radius: var(--border-radius-element) !important;\n border-start-end-radius: var(--border-radius-element) !important;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcFormBox.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,2CAA2C;AAC7C;AACA;EACE,mBAAmB;AACrB;AACA;EACE,oDAAoD;AACtD;AACA;EACE,sBAAsB;AACxB;AACA;EACE,kEAAkE;EAClE,gEAAgE;AAClE;AACA;EACE,gEAAgE;EAChE,8DAA8D;AAChE;AACA;EACE,mBAAmB;AACrB;AACA;EACE,SAAS;AACX;AACA;EACE,kEAAkE;EAClE,gEAAgE;AAClE;AACA;EACE,8DAA8D;EAC9D,gEAAgE;AAClE",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_g04W5 {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._ncFormBox_DLj7n {\n display: flex;\n flex-direction: column;\n gap: calc(1 * var(--default-grid-baseline));\n}\n._ncFormBox_DLj7n._ncFormBox_row_Fr1lK {\n flex-direction: row;\n}\n._ncFormBox__item_-SJyo {\n border-radius: var(--border-radius-small) !important;\n}\n._ncFormBox_col_1wgxQ {\n flex-direction: column;\n}\n._ncFormBox_col_1wgxQ ._ncFormBox__item_-SJyo:first-child {\n border-start-start-radius: var(--border-radius-element) !important;\n border-start-end-radius: var(--border-radius-element) !important;\n}\n._ncFormBox_col_1wgxQ ._ncFormBox__item_-SJyo:last-child {\n border-end-start-radius: var(--border-radius-element) !important;\n border-end-end-radius: var(--border-radius-element) !important;\n}\n._ncFormBox_row_Fr1lK {\n flex-direction: row;\n}\n._ncFormBox_row_Fr1lK ._ncFormBox__item_-SJyo {\n flex: 1 1;\n}\n._ncFormBox_row_Fr1lK ._ncFormBox__item_-SJyo:first-child {\n border-start-start-radius: var(--border-radius-element) !important;\n border-end-start-radius: var(--border-radius-element) !important;\n}\n._ncFormBox_row_Fr1lK ._ncFormBox__item_-SJyo:last-child {\n border-end-end-radius: var(--border-radius-element) !important;\n border-start-end-radius: var(--border-radius-element) !important;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},11754(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,'/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_oeKe9 {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._formBoxItem_A3svz {\n --nc-form-box-item-border-width: 1px;\n --nc-form-box-item-min-height: 40px;\n --form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n --form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));\n --color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l * 1.045));\n --color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l * 1.045));\n position: relative;\n display: flex;\n align-items: center;\n gap: calc(2 * var(--default-grid-baseline));\n min-height: var(--nc-form-box-item-min-height);\n padding-inline: var(--form-element-label-padding);\n border: 1px solid var(--color-primary-element-extra-light-hover);\n border-bottom-width: 2px;\n border-radius: var(--border-radius-element);\n background-color: var(--color-primary-element-extra-light);\n color: var(--color-main-text);\n font-weight: var(--font-weight-element, normal);\n will-change: transform;\n transition-property: color, border-color, background-color, transform;\n transition-duration: var(--animation-quick);\n transition-timing-function: linear;\n -webkit-user-select: none;\n user-select: none;\n cursor: pointer;\n}\n._formBoxItem_A3svz * {\n cursor: inherit;\n}\n._formBoxItem_A3svz:has(:disabled) {\n cursor: default;\n opacity: 0.5;\n}\n._formBoxItem_A3svz:hover:not(:has(:disabled)) {\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-extra-light-hover);\n}\n._formBoxItem_A3svz:active:not(:disabled) {\n transform: scale(0.985);\n}\n._formBoxItem_A3svz:has(:focus-visible) {\n outline: 2px solid var(--color-main-text);\n box-shadow: 0 0 0 4px var(--color-main-background);\n}\n._formBoxItem__description_s3aoO {\n font-weight: var(--font-weight-default, normal);\n}\n._formBoxItem_A3svz._formBoxItem_legacy_M8oCv {\n --nc-form-box-item-border-width: 0px;\n border: none;\n}\n._formBoxItem_A3svz._formBoxItem_inverted_yQ6cM ._formBoxItem__element_63no0 {\n color: var(--color-text-maxcontrast);\n}\n._formBoxItem_A3svz._formBoxItem_inverted_yQ6cM ._formBoxItem__description_s3aoO {\n color: inherit;\n}\n._formBoxItem__content_plRks {\n flex: 1;\n display: flex;\n flex-direction: column;\n padding-block: calc(2 * var(--default-grid-baseline));\n overflow-wrap: anywhere;\n}\n._formBoxItem__element_63no0::after {\n content: "";\n position: absolute;\n inset: 0;\n}\n._formBoxItem__description_s3aoO {\n color: var(--color-text-maxcontrast);\n}\n._formBoxItem__icon_xzuO7 {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n}',"",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcFormBoxItem.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,oCAAoC;EACpC,mCAAmC;EACnC,8FAA8F;EAC9F,2GAA2G;EAC3G,qGAAqG;EACrG,iHAAiH;EACjH,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,2CAA2C;EAC3C,8CAA8C;EAC9C,iDAAiD;EACjD,gEAAgE;EAChE,wBAAwB;EACxB,2CAA2C;EAC3C,0DAA0D;EAC1D,6BAA6B;EAC7B,+CAA+C;EAC/C,sBAAsB;EACtB,qEAAqE;EACrE,2CAA2C;EAC3C,kCAAkC;EAClC,yBAAyB;EACzB,iBAAiB;EACjB,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,8CAA8C;EAC9C,gEAAgE;AAClE;AACA;EACE,uBAAuB;AACzB;AACA;EACE,yCAAyC;EACzC,kDAAkD;AACpD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,oCAAoC;EACpC,YAAY;AACd;AACA;EACE,oCAAoC;AACtC;AACA;EACE,cAAc;AAChB;AACA;EACE,OAAO;EACP,aAAa;EACb,sBAAsB;EACtB,qDAAqD;EACrD,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,kBAAkB;EAClB,QAAQ;AACV;AACA;EACE,oCAAoC;AACtC;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,yBAAyB;AAC3B",sourcesContent:['/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_oeKe9 {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._formBoxItem_A3svz {\n --nc-form-box-item-border-width: 1px;\n --nc-form-box-item-min-height: 40px;\n --form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n --form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));\n --color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l * 1.045));\n --color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l * 1.045));\n position: relative;\n display: flex;\n align-items: center;\n gap: calc(2 * var(--default-grid-baseline));\n min-height: var(--nc-form-box-item-min-height);\n padding-inline: var(--form-element-label-padding);\n border: 1px solid var(--color-primary-element-extra-light-hover);\n border-bottom-width: 2px;\n border-radius: var(--border-radius-element);\n background-color: var(--color-primary-element-extra-light);\n color: var(--color-main-text);\n font-weight: var(--font-weight-element, normal);\n will-change: transform;\n transition-property: color, border-color, background-color, transform;\n transition-duration: var(--animation-quick);\n transition-timing-function: linear;\n -webkit-user-select: none;\n user-select: none;\n cursor: pointer;\n}\n._formBoxItem_A3svz * {\n cursor: inherit;\n}\n._formBoxItem_A3svz:has(:disabled) {\n cursor: default;\n opacity: 0.5;\n}\n._formBoxItem_A3svz:hover:not(:has(:disabled)) {\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-extra-light-hover);\n}\n._formBoxItem_A3svz:active:not(:disabled) {\n transform: scale(0.985);\n}\n._formBoxItem_A3svz:has(:focus-visible) {\n outline: 2px solid var(--color-main-text);\n box-shadow: 0 0 0 4px var(--color-main-background);\n}\n._formBoxItem__description_s3aoO {\n font-weight: var(--font-weight-default, normal);\n}\n._formBoxItem_A3svz._formBoxItem_legacy_M8oCv {\n --nc-form-box-item-border-width: 0px;\n border: none;\n}\n._formBoxItem_A3svz._formBoxItem_inverted_yQ6cM ._formBoxItem__element_63no0 {\n color: var(--color-text-maxcontrast);\n}\n._formBoxItem_A3svz._formBoxItem_inverted_yQ6cM ._formBoxItem__description_s3aoO {\n color: inherit;\n}\n._formBoxItem__content_plRks {\n flex: 1;\n display: flex;\n flex-direction: column;\n padding-block: calc(2 * var(--default-grid-baseline));\n overflow-wrap: anywhere;\n}\n._formBoxItem__element_63no0::after {\n content: "";\n position: absolute;\n inset: 0;\n}\n._formBoxItem__description_s3aoO {\n color: var(--color-text-maxcontrast);\n}\n._formBoxItem__icon_xzuO7 {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n}'],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},59615(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_5UzOd {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\ninput._formBoxSwitch__input_MIhKf {\n margin: 0;\n width: var(--default-clickable-area);\n /* Keep it visually hidden but on the position of visual switch icon */\n position: absolute;\n inset-block: 0;\n inset-inline-end: var(--form-element-label-offset);\n z-index: -1;\n opacity: 0 !important;\n /* Override server styles */\n height: auto;\n cursor: inherit;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcFormBoxSwitch.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,SAAS;EACT,oCAAoC;EACpC,sEAAsE;EACtE,kBAAkB;EAClB,cAAc;EACd,kDAAkD;EAClD,WAAW;EACX,qBAAqB;EACrB,2BAA2B;EAC3B,YAAY;EACZ,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_5UzOd {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\ninput._formBoxSwitch__input_MIhKf {\n margin: 0;\n width: var(--default-clickable-area);\n /* Keep it visually hidden but on the position of visual switch icon */\n position: absolute;\n inset-block: 0;\n inset-inline-end: var(--form-element-label-offset);\n z-index: -1;\n opacity: 0 !important;\n /* Override server styles */\n height: auto;\n cursor: inherit;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},19389(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_ux73t {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._formGroup_s9Y0Y {\n --form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n --form-group-content-gap: calc(2 * var(--default-grid-baseline));\n}\n._formGroup_s9Y0Y._formGroup_noGap_ni6Ax {\n --form-group-content-gap: 0;\n}\n._formGroup__label_flCX6 {\n padding-inline: var(--form-element-label-offset);\n font-size: var(--font-size);\n font-weight: var(--font-weight-heading, bold);\n}\n._formGroup__description_ettaL {\n padding-inline: var(--form-element-label-offset);\n color: var(--color-text-maxcontrast);\n}\n._formGroup__content_AhX7q {\n display: flex;\n flex-direction: column;\n gap: var(--form-group-content-gap);\n margin-block-start: calc(2.5 * var(--default-grid-baseline));\n}\n._formGroup__content_AhX7q._formGroup__content_only_h-mqW {\n margin-block-start: 0;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcFormGroup.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,8FAA8F;EAC9F,gEAAgE;AAClE;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,gDAAgD;EAChD,2BAA2B;EAC3B,6CAA6C;AAC/C;AACA;EACE,gDAAgD;EAChD,oCAAoC;AACtC;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,kCAAkC;EAClC,4DAA4D;AAC9D;AACA;EACE,qBAAqB;AACvB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_ux73t {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._formGroup_s9Y0Y {\n --form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));\n --form-group-content-gap: calc(2 * var(--default-grid-baseline));\n}\n._formGroup_s9Y0Y._formGroup_noGap_ni6Ax {\n --form-group-content-gap: 0;\n}\n._formGroup__label_flCX6 {\n padding-inline: var(--form-element-label-offset);\n font-size: var(--font-size);\n font-weight: var(--font-weight-heading, bold);\n}\n._formGroup__description_ettaL {\n padding-inline: var(--form-element-label-offset);\n color: var(--color-text-maxcontrast);\n}\n._formGroup__content_AhX7q {\n display: flex;\n flex-direction: column;\n gap: var(--form-group-content-gap);\n margin-block-start: calc(2.5 * var(--default-grid-baseline));\n}\n._formGroup__content_AhX7q._formGroup__content_only_h-mqW {\n margin-block-start: 0;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},27816(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-aaedb1c3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.icon-vue[data-v-aaedb1c3] {\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: var(--default-clickable-area);\n min-height: var(--default-clickable-area);\n opacity: 1;\n}\n.icon-vue.icon-vue--inline[data-v-aaedb1c3] {\n display: inline-flex !important;\n min-width: fit-content;\n min-height: fit-content;\n vertical-align: text-bottom;\n}\n.icon-vue span[data-v-aaedb1c3] {\n line-height: 0;\n}\n.icon-vue[data-v-aaedb1c3] svg {\n fill: currentColor;\n width: var(--fb515064);\n height: var(--fb515064);\n max-width: var(--fb515064);\n max-height: var(--fb515064);\n}\n.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl) {\n transform: scaleX(-1);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcIconSvgWrapper.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,wCAAwC;EACxC,yCAAyC;EACzC,UAAU;AACZ;AACA;EACE,+BAA+B;EAC/B,sBAAsB;EACtB,uBAAuB;EACvB,2BAA2B;AAC7B;AACA;EACE,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,sBAAsB;EACtB,uBAAuB;EACvB,0BAA0B;EAC1B,2BAA2B;AAC7B;AACA;EACE,qBAAqB;AACvB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-aaedb1c3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.icon-vue[data-v-aaedb1c3] {\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: var(--default-clickable-area);\n min-height: var(--default-clickable-area);\n opacity: 1;\n}\n.icon-vue.icon-vue--inline[data-v-aaedb1c3] {\n display: inline-flex !important;\n min-width: fit-content;\n min-height: fit-content;\n vertical-align: text-bottom;\n}\n.icon-vue span[data-v-aaedb1c3] {\n line-height: 0;\n}\n.icon-vue[data-v-aaedb1c3] svg {\n fill: currentColor;\n width: var(--fb515064);\n height: var(--fb515064);\n max-width: var(--fb515064);\n max-height: var(--fb515064);\n}\n.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl) {\n transform: scaleX(-1);\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},80723(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_9yzS5 {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._iconToggleSwitch_ouXRn {\n color: var(--v6bd152af);\n transition: color var(--animation-quick) ease;\n}\n._iconToggleSwitch_ouXRn svg {\n /* Unlike other icons, this icon is not a square */\n height: auto !important;\n}\n._iconToggleSwitch_ouXRn circle {\n cx: var(--v16fd8ca9);\n transition: cx var(--animation-quick) ease;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcIconToggleSwitch.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,uBAAuB;EACvB,6CAA6C;AAC/C;AACA;EACE,kDAAkD;EAClD,uBAAuB;AACzB;AACA;EACE,oBAAoB;EACpB,0CAA0C;AAC5C",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_9yzS5 {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._iconToggleSwitch_ouXRn {\n color: var(--v6bd152af);\n transition: color var(--animation-quick) ease;\n}\n._iconToggleSwitch_ouXRn svg {\n /* Unlike other icons, this icon is not a square */\n height: auto !important;\n}\n._iconToggleSwitch_ouXRn circle {\n cx: var(--v16fd8ca9);\n transition: cx var(--animation-quick) ease;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},37620(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-feb04bef] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Similar as inputBorder but without active styles.\n */\n/**\n * Create a consistent border for an input element.\n * With Nextcloud 32+ there is no real border anymore but we use a box-shadow.\n */\n.input-field[data-v-feb04bef] {\n --input-border-color: var(--color-border-maxcontrast);\n --input-border-radius: var(--border-radius-element);\n --input-padding-start: var(--border-radius-element);\n --input-padding-end: var(--border-radius-element);\n position: relative;\n width: 100%;\n margin-block-start: 6px;\n}\n.input-field--disabled[data-v-feb04bef] {\n opacity: 0.4;\n filter: saturate(0.4);\n}\n.input-field--label-outside[data-v-feb04bef] {\n margin-block-start: 0;\n}\n.input-field--leading-icon[data-v-feb04bef] {\n --input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--trailing-icon[data-v-feb04bef] {\n --input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--pill[data-v-feb04bef] {\n --input-border-radius: var(--border-radius-pill);\n}\n.input-field__main-wrapper[data-v-feb04bef] {\n height: var(--default-clickable-area);\n padding: var(--border-width-input-focused, 2px);\n position: relative;\n}\n.input-field__input[data-v-feb04bef] {\n --input-border-box-shadow-light: 0 -1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow-dark: 0 1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n border: none;\n border-radius: var(--border-radius-element);\n box-shadow: var(--input-border-box-shadow);\n}\n.input-field__input[data-v-feb04bef]:hover:not([disabled]) {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n@media (prefers-color-scheme: dark) {\n.input-field__input .input-field__input[data-v-feb04bef] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n}\n[data-theme-dark] .input-field__input[data-v-feb04bef] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n[data-theme-light] .input-field__input[data-v-feb04bef] {\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n}\n.input-field--legacy .input-field__input[data-v-feb04bef] {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n.input-field--legacy .input-field__input[data-v-feb04bef]:hover:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color);\n}\n.input-field__input[data-v-feb04bef]:focus-within:not([disabled]), .input-field__input[data-v-feb04bef]:active:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color), 0 0 0 4px var(--color-main-background) !important;\n}\n.input-field__input[data-v-feb04bef] {\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n border-radius: var(--input-border-radius);\n cursor: pointer;\n -webkit-appearance: textfield !important;\n -moz-appearance: textfield !important;\n appearance: textfield !important;\n font-size: var(--default-font-size);\n text-overflow: ellipsis;\n padding-block: 0;\n padding-inline: var(--input-padding-start) var(--input-padding-end);\n height: 100% !important;\n min-height: unset;\n width: 100%;\n}\n.input-field__input[data-v-feb04bef]::placeholder {\n color: var(--color-text-maxcontrast);\n}\n.input-field__input[data-v-feb04bef]::-webkit-search-cancel-button {\n display: none;\n}\n.input-field__input[data-v-feb04bef]::-webkit-search-decoration, .input-field__input[data-v-feb04bef]::-webkit-search-results-button, .input-field__input[data-v-feb04bef]::-webkit-search-results-decoration, .input-field__input[data-v-feb04bef]::-ms-clear {\n display: none;\n}\n.input-field__input[data-v-feb04bef]:active:not([disabled]), .input-field__input[data-v-feb04bef]:focus:not([disabled]) {\n --input-border-color: var(--color-main-text);\n}\n.input-field__input:focus + .input-field__label[data-v-feb04bef], .input-field__input:hover:not(:placeholder-shown) + .input-field__label[data-v-feb04bef] {\n color: var(--color-main-text);\n}\n.input-field__input[data-v-feb04bef]:focus {\n cursor: text;\n}\n.input-field__input[data-v-feb04bef]:disabled {\n cursor: default;\n}\n.input-field__input[data-v-feb04bef]:focus-visible {\n box-shadow: unset !important;\n}\n.input-field:not(.input-field--label-outside) .input-field__input[data-v-feb04bef]:not(:focus)::placeholder {\n opacity: 0;\n}\n.input-field__label[data-v-feb04bef] {\n --input-label-font-size: var(--default-font-size);\n font-size: var(--input-label-font-size);\n position: absolute;\n margin-inline: var(--input-padding-start) var(--input-padding-end);\n max-width: fit-content;\n inset-block-start: calc((var(--default-clickable-area) - 1lh) / 2);\n inset-inline: var(--border-width-input-focused, 2px);\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.input-field__input:focus + .input-field__label[data-v-feb04bef], .input-field__input:not(:placeholder-shown) + .input-field__label[data-v-feb04bef] {\n --input-label-font-size: 13px;\n line-height: 1.5;\n inset-block-start: calc(-1.5 * var(--input-label-font-size) / 2);\n font-weight: var(--font-weight-element, 500);\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: var(--default-grid-baseline);\n margin-inline: calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.input-field__icon[data-v-feb04bef] {\n position: absolute;\n height: var(--default-clickable-area);\n width: var(--default-clickable-area);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.7;\n inset-block-end: 0;\n}\n.input-field__icon--leading[data-v-feb04bef] {\n inset-inline-start: 0px;\n}\n.input-field__icon--trailing[data-v-feb04bef] {\n inset-inline-end: 0px;\n}\n.input-field__trailing-button[data-v-feb04bef] {\n --button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;\n --button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px));\n}\n.input-field__trailing-button.button-vue[data-v-feb04bef] {\n position: absolute;\n top: var(--border-width-input-focused, 2px);\n inset-inline-end: var(--border-width-input-focused, 2px);\n}\n.input-field__trailing-button.button-vue[data-v-feb04bef]:focus-visible {\n box-shadow: none !important;\n}\n.input-field__helper-text-message[data-v-feb04bef] {\n padding-block: 4px;\n padding-inline: var(--border-radius-element);\n display: flex;\n align-items: center;\n color: var(--color-text-maxcontrast);\n overflow-wrap: anywhere;\n}\n.input-field__helper-text-message__icon[data-v-feb04bef] {\n margin-inline-end: 8px;\n}\n.input-field--error .input-field__helper-text-message[data-v-feb04bef],\n.input-field--error .input-field__icon--trailing[data-v-feb04bef] {\n color: var(--color-text-error, var(--color-error));\n}\n.input-field--error .input-field__input[data-v-feb04bef], .input-field__input[data-v-feb04bef]:user-invalid {\n --input-border-color: var(--color-border-error, var(--color-error)) !important;\n}\n.input-field--error .input-field__input[data-v-feb04bef]:focus-visible, .input-field__input[data-v-feb04bef]:user-invalid:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field--success .input-field__input[data-v-feb04bef] {\n --input-border-color: var(--color-border-success, var(--color-success)) !important;\n}\n.input-field--success .input-field__input[data-v-feb04bef]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field--success .input-field__helper-text-message__icon[data-v-feb04bef] {\n color: var(--color-border-success, var(--color-success));\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcInputField.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;;EAEE;AACF;;;EAGE;AACF;EACE,qDAAqD;EACrD,mDAAmD;EACnD,mDAAmD;EACnD,iDAAiD;EACjD,kBAAkB;EAClB,WAAW;EACX,uBAAuB;AACzB;AACA;EACE,YAAY;EACZ,qBAAqB;AACvB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,yFAAyF;AAC3F;AACA;EACE,uFAAuF;AACzF;AACA;EACE,gDAAgD;AAClD;AACA;EACE,qCAAqC;EACrC,+CAA+C;EAC/C,kBAAkB;AACpB;AACA;EACE;2EACyE;EACzE;2EACyE;EACzE,+DAA+D;EAC/D,YAAY;EACZ,2CAA2C;EAC3C,0CAA0C;AAC5C;AACA;EACE,+CAA+C;AACjD;AACA;AACA;IACI,8DAA8D;AAClE;AACA;AACA;EACE,8DAA8D;AAChE;AACA;EACE,+DAA+D;AACjE;AACA;EACE,+CAA+C;AACjD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,kGAAkG;AACpG;AACA;EACE,8CAA8C;EAC9C,6BAA6B;EAC7B,yCAAyC;EACzC,eAAe;EACf,wCAAwC;EACxC,qCAAqC;EACrC,gCAAgC;EAChC,mCAAmC;EACnC,uBAAuB;EACvB,gBAAgB;EAChB,mEAAmE;EACnE,uBAAuB;EACvB,iBAAiB;EACjB,WAAW;AACb;AACA;EACE,oCAAoC;AACtC;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,YAAY;AACd;AACA;EACE,eAAe;AACjB;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,UAAU;AACZ;AACA;EACE,iDAAiD;EACjD,uCAAuC;EACvC,kBAAkB;EAClB,kEAAkE;EAClE,sBAAsB;EACtB,kEAAkE;EAClE,oDAAoD;EACpD,oCAAoC;EACpC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,oBAAoB;EACpB,kNAAkN;AACpN;AACA;EACE,6BAA6B;EAC7B,gBAAgB;EAChB,gEAAgE;EAChE,4CAA4C;EAC5C,4EAA4E;EAC5E,8CAA8C;EAC9C,4CAA4C;EAC5C,4IAA4I;EAC5I,mJAAmJ;AACrJ;AACA;EACE,kBAAkB;EAClB,qCAAqC;EACrC,oCAAoC;EACpC,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;EACZ,kBAAkB;AACpB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,0GAA0G;EAC1G,0FAA0F;AAC5F;AACA;EACE,kBAAkB;EAClB,2CAA2C;EAC3C,wDAAwD;AAC1D;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,kBAAkB;EAClB,4CAA4C;EAC5C,aAAa;EACb,mBAAmB;EACnB,oCAAoC;EACpC,uBAAuB;AACzB;AACA;EACE,sBAAsB;AACxB;AACA;;EAEE,kDAAkD;AACpD;AACA;EACE,8EAA8E;AAChF;AACA;EACE,iIAAiI;AACnI;AACA;EACE,kFAAkF;AACpF;AACA;EACE,iIAAiI;AACnI;AACA;EACE,wDAAwD;AAC1D",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-feb04bef] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Similar as inputBorder but without active styles.\n */\n/**\n * Create a consistent border for an input element.\n * With Nextcloud 32+ there is no real border anymore but we use a box-shadow.\n */\n.input-field[data-v-feb04bef] {\n --input-border-color: var(--color-border-maxcontrast);\n --input-border-radius: var(--border-radius-element);\n --input-padding-start: var(--border-radius-element);\n --input-padding-end: var(--border-radius-element);\n position: relative;\n width: 100%;\n margin-block-start: 6px;\n}\n.input-field--disabled[data-v-feb04bef] {\n opacity: 0.4;\n filter: saturate(0.4);\n}\n.input-field--label-outside[data-v-feb04bef] {\n margin-block-start: 0;\n}\n.input-field--leading-icon[data-v-feb04bef] {\n --input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--trailing-icon[data-v-feb04bef] {\n --input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--pill[data-v-feb04bef] {\n --input-border-radius: var(--border-radius-pill);\n}\n.input-field__main-wrapper[data-v-feb04bef] {\n height: var(--default-clickable-area);\n padding: var(--border-width-input-focused, 2px);\n position: relative;\n}\n.input-field__input[data-v-feb04bef] {\n --input-border-box-shadow-light: 0 -1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow-dark: 0 1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n border: none;\n border-radius: var(--border-radius-element);\n box-shadow: var(--input-border-box-shadow);\n}\n.input-field__input[data-v-feb04bef]:hover:not([disabled]) {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n@media (prefers-color-scheme: dark) {\n.input-field__input .input-field__input[data-v-feb04bef] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n}\n[data-theme-dark] .input-field__input[data-v-feb04bef] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n[data-theme-light] .input-field__input[data-v-feb04bef] {\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n}\n.input-field--legacy .input-field__input[data-v-feb04bef] {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n.input-field--legacy .input-field__input[data-v-feb04bef]:hover:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color);\n}\n.input-field__input[data-v-feb04bef]:focus-within:not([disabled]), .input-field__input[data-v-feb04bef]:active:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color), 0 0 0 4px var(--color-main-background) !important;\n}\n.input-field__input[data-v-feb04bef] {\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n border-radius: var(--input-border-radius);\n cursor: pointer;\n -webkit-appearance: textfield !important;\n -moz-appearance: textfield !important;\n appearance: textfield !important;\n font-size: var(--default-font-size);\n text-overflow: ellipsis;\n padding-block: 0;\n padding-inline: var(--input-padding-start) var(--input-padding-end);\n height: 100% !important;\n min-height: unset;\n width: 100%;\n}\n.input-field__input[data-v-feb04bef]::placeholder {\n color: var(--color-text-maxcontrast);\n}\n.input-field__input[data-v-feb04bef]::-webkit-search-cancel-button {\n display: none;\n}\n.input-field__input[data-v-feb04bef]::-webkit-search-decoration, .input-field__input[data-v-feb04bef]::-webkit-search-results-button, .input-field__input[data-v-feb04bef]::-webkit-search-results-decoration, .input-field__input[data-v-feb04bef]::-ms-clear {\n display: none;\n}\n.input-field__input[data-v-feb04bef]:active:not([disabled]), .input-field__input[data-v-feb04bef]:focus:not([disabled]) {\n --input-border-color: var(--color-main-text);\n}\n.input-field__input:focus + .input-field__label[data-v-feb04bef], .input-field__input:hover:not(:placeholder-shown) + .input-field__label[data-v-feb04bef] {\n color: var(--color-main-text);\n}\n.input-field__input[data-v-feb04bef]:focus {\n cursor: text;\n}\n.input-field__input[data-v-feb04bef]:disabled {\n cursor: default;\n}\n.input-field__input[data-v-feb04bef]:focus-visible {\n box-shadow: unset !important;\n}\n.input-field:not(.input-field--label-outside) .input-field__input[data-v-feb04bef]:not(:focus)::placeholder {\n opacity: 0;\n}\n.input-field__label[data-v-feb04bef] {\n --input-label-font-size: var(--default-font-size);\n font-size: var(--input-label-font-size);\n position: absolute;\n margin-inline: var(--input-padding-start) var(--input-padding-end);\n max-width: fit-content;\n inset-block-start: calc((var(--default-clickable-area) - 1lh) / 2);\n inset-inline: var(--border-width-input-focused, 2px);\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.input-field__input:focus + .input-field__label[data-v-feb04bef], .input-field__input:not(:placeholder-shown) + .input-field__label[data-v-feb04bef] {\n --input-label-font-size: 13px;\n line-height: 1.5;\n inset-block-start: calc(-1.5 * var(--input-label-font-size) / 2);\n font-weight: var(--font-weight-element, 500);\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: var(--default-grid-baseline);\n margin-inline: calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.input-field__icon[data-v-feb04bef] {\n position: absolute;\n height: var(--default-clickable-area);\n width: var(--default-clickable-area);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.7;\n inset-block-end: 0;\n}\n.input-field__icon--leading[data-v-feb04bef] {\n inset-inline-start: 0px;\n}\n.input-field__icon--trailing[data-v-feb04bef] {\n inset-inline-end: 0px;\n}\n.input-field__trailing-button[data-v-feb04bef] {\n --button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;\n --button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px));\n}\n.input-field__trailing-button.button-vue[data-v-feb04bef] {\n position: absolute;\n top: var(--border-width-input-focused, 2px);\n inset-inline-end: var(--border-width-input-focused, 2px);\n}\n.input-field__trailing-button.button-vue[data-v-feb04bef]:focus-visible {\n box-shadow: none !important;\n}\n.input-field__helper-text-message[data-v-feb04bef] {\n padding-block: 4px;\n padding-inline: var(--border-radius-element);\n display: flex;\n align-items: center;\n color: var(--color-text-maxcontrast);\n overflow-wrap: anywhere;\n}\n.input-field__helper-text-message__icon[data-v-feb04bef] {\n margin-inline-end: 8px;\n}\n.input-field--error .input-field__helper-text-message[data-v-feb04bef],\n.input-field--error .input-field__icon--trailing[data-v-feb04bef] {\n color: var(--color-text-error, var(--color-error));\n}\n.input-field--error .input-field__input[data-v-feb04bef], .input-field__input[data-v-feb04bef]:user-invalid {\n --input-border-color: var(--color-border-error, var(--color-error)) !important;\n}\n.input-field--error .input-field__input[data-v-feb04bef]:focus-visible, .input-field__input[data-v-feb04bef]:user-invalid:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field--success .input-field__input[data-v-feb04bef] {\n --input-border-color: var(--color-border-success, var(--color-success)) !important;\n}\n.input-field--success .input-field__input[data-v-feb04bef]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field--success .input-field__helper-text-message__icon[data-v-feb04bef] {\n color: var(--color-border-success, var(--color-success));\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},2106(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0ee94269] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.option[data-v-0ee94269] {\n display: flex;\n align-items: center;\n width: 100%;\n height: var(--height);\n cursor: inherit;\n}\n.option__avatar[data-v-0ee94269] {\n margin-inline-end: var(--margin);\n}\n.option__details[data-v-0ee94269] {\n display: flex;\n flex: 1 1;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n}\n.option__lineone[data-v-0ee94269] {\n color: var(--color-main-text);\n}\n.option__linetwo[data-v-0ee94269] {\n color: var(--color-text-maxcontrast);\n}\n.option__lineone[data-v-0ee94269], .option__linetwo[data-v-0ee94269] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.2;\n}\n.option__lineone strong[data-v-0ee94269], .option__linetwo strong[data-v-0ee94269] {\n font-weight: bold;\n}\n.option--compact .option__lineone[data-v-0ee94269] {\n font-size: 14px;\n}\n.option--compact .option__linetwo[data-v-0ee94269] {\n font-size: 11px;\n line-height: 1.5;\n margin-top: -4px;\n}\n.option__icon[data-v-0ee94269] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n color: var(--color-text-maxcontrast);\n}\n.option__icon.icon[data-v-0ee94269] {\n flex: 0 0 var(--default-clickable-area);\n opacity: 0.7;\n background-position: center;\n background-size: 16px;\n}\n.option__details[data-v-0ee94269], .option__lineone[data-v-0ee94269], .option__linetwo[data-v-0ee94269], .option__icon[data-v-0ee94269] {\n cursor: inherit;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcListItemIcon.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,eAAe;AACjB;AACA;EACE,gCAAgC;AAClC;AACA;EACE,aAAa;EACb,SAAS;EACT,sBAAsB;EACtB,uBAAuB;EACvB,YAAY;AACd;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,oCAAoC;AACtC;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AAClB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,oCAAoC;AACtC;AACA;EACE,uCAAuC;EACvC,YAAY;EACZ,2BAA2B;EAC3B,qBAAqB;AACvB;AACA;EACE,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0ee94269] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.option[data-v-0ee94269] {\n display: flex;\n align-items: center;\n width: 100%;\n height: var(--height);\n cursor: inherit;\n}\n.option__avatar[data-v-0ee94269] {\n margin-inline-end: var(--margin);\n}\n.option__details[data-v-0ee94269] {\n display: flex;\n flex: 1 1;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n}\n.option__lineone[data-v-0ee94269] {\n color: var(--color-main-text);\n}\n.option__linetwo[data-v-0ee94269] {\n color: var(--color-text-maxcontrast);\n}\n.option__lineone[data-v-0ee94269], .option__linetwo[data-v-0ee94269] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.2;\n}\n.option__lineone strong[data-v-0ee94269], .option__linetwo strong[data-v-0ee94269] {\n font-weight: bold;\n}\n.option--compact .option__lineone[data-v-0ee94269] {\n font-size: 14px;\n}\n.option--compact .option__linetwo[data-v-0ee94269] {\n font-size: 11px;\n line-height: 1.5;\n margin-top: -4px;\n}\n.option__icon[data-v-0ee94269] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n color: var(--color-text-maxcontrast);\n}\n.option__icon.icon[data-v-0ee94269] {\n flex: 0 0 var(--default-clickable-area);\n opacity: 0.7;\n background-position: center;\n background-size: 16px;\n}\n.option__details[data-v-0ee94269], .option__lineone[data-v-0ee94269], .option__linetwo[data-v-0ee94269], .option__icon[data-v-0ee94269] {\n cursor: inherit;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},28229(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cf399190] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.loading-icon[data-v-cf399190] {\n overflow: hidden;\n}\n.loading-icon svg[data-v-cf399190] {\n animation: rotate var(--animation-duration, 0.8s) linear infinite;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcLoadingIcon.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iEAAiE;AACnE",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cf399190] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.loading-icon[data-v-cf399190] {\n overflow: hidden;\n}\n.loading-icon svg[data-v-cf399190] {\n animation: rotate var(--animation-duration, 0.8s) linear infinite;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},12610(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3c4a673d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.mention-bubble--primary .mention-bubble__content[data-v-3c4a673d] {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.mention-bubble__wrapper[data-v-3c4a673d] {\n position: relative;\n max-width: 150px;\n height: 18px;\n vertical-align: text-bottom;\n display: inline-flex;\n align-items: center;\n}\n.mention-bubble__content[data-v-3c4a673d] {\n display: inline-flex;\n overflow: hidden;\n align-items: center;\n max-width: 100%;\n height: 20px;\n -webkit-user-select: none;\n user-select: none;\n padding-inline: 2px 6px;\n border-radius: 10px;\n background-color: var(--color-background-dark);\n}\n.mention-bubble__icon[data-v-3c4a673d] {\n position: relative;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n background-color: var(--color-background-darker);\n background-repeat: no-repeat;\n background-position: center;\n background-size: 12px;\n}\n.mention-bubble__icon--with-avatar[data-v-3c4a673d] {\n color: inherit;\n background-size: cover;\n}\n.mention-bubble__title[data-v-3c4a673d] {\n overflow: hidden;\n margin-inline-start: 2px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mention-bubble__title[data-v-3c4a673d]::before {\n content: attr(title);\n}\n.mention-bubble__select[data-v-3c4a673d] {\n position: absolute;\n z-index: -1;\n inset-inline-start: -100vw;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcMentionBubble.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,wCAAwC;EACxC,8CAA8C;AAChD;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,YAAY;EACZ,2BAA2B;EAC3B,oBAAoB;EACpB,mBAAmB;AACrB;AACA;EACE,oBAAoB;EACpB,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;EACf,YAAY;EACZ,yBAAyB;EACzB,iBAAiB;EACjB,uBAAuB;EACvB,mBAAmB;EACnB,8CAA8C;AAChD;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,gDAAgD;EAChD,4BAA4B;EAC5B,2BAA2B;EAC3B,qBAAqB;AACvB;AACA;EACE,cAAc;EACd,sBAAsB;AACxB;AACA;EACE,gBAAgB;EAChB,wBAAwB;EACxB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,0BAA0B;EAC1B,UAAU;EACV,WAAW;EACX,gBAAgB;AAClB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3c4a673d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.mention-bubble--primary .mention-bubble__content[data-v-3c4a673d] {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.mention-bubble__wrapper[data-v-3c4a673d] {\n position: relative;\n max-width: 150px;\n height: 18px;\n vertical-align: text-bottom;\n display: inline-flex;\n align-items: center;\n}\n.mention-bubble__content[data-v-3c4a673d] {\n display: inline-flex;\n overflow: hidden;\n align-items: center;\n max-width: 100%;\n height: 20px;\n -webkit-user-select: none;\n user-select: none;\n padding-inline: 2px 6px;\n border-radius: 10px;\n background-color: var(--color-background-dark);\n}\n.mention-bubble__icon[data-v-3c4a673d] {\n position: relative;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n background-color: var(--color-background-darker);\n background-repeat: no-repeat;\n background-position: center;\n background-size: 12px;\n}\n.mention-bubble__icon--with-avatar[data-v-3c4a673d] {\n color: inherit;\n background-size: cover;\n}\n.mention-bubble__title[data-v-3c4a673d] {\n overflow: hidden;\n margin-inline-start: 2px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mention-bubble__title[data-v-3c4a673d]::before {\n content: attr(title);\n}\n.mention-bubble__select[data-v-3c4a673d] {\n position: absolute;\n z-index: -1;\n inset-inline-start: -100vw;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},7821(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3c357e2d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.modal-mask[data-v-3c357e2d] {\n position: fixed;\n z-index: 9998;\n top: 0;\n inset-inline-start: 0;\n display: block;\n width: 100%;\n height: 100%;\n --backdrop-color: 0, 0, 0;\n background-color: rgba(var(--backdrop-color), 0.5);\n}\n.modal-mask[data-v-3c357e2d], .modal-mask[data-v-3c357e2d] * {\n box-sizing: border-box;\n}\n.modal-mask--opaque[data-v-3c357e2d] {\n background-color: rgba(var(--backdrop-color), 0.92);\n}\n.modal-mask--light[data-v-3c357e2d] {\n --backdrop-color: 255, 255, 255;\n}\n.modal-header[data-v-3c357e2d] {\n position: absolute;\n z-index: 10001;\n top: 0;\n inset-inline: 0 0;\n display: flex !important;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: var(--header-height);\n overflow: hidden;\n transition: opacity 250ms, visibility 250ms;\n}\n.modal-header__name[data-v-3c357e2d] {\n overflow-x: hidden;\n width: 100%;\n padding-inline: 12px 0;\n transition: padding ease 100ms;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 16px;\n margin-block: 0;\n}\n@media only screen and (min-width: 1024px) {\n.modal-header__name[data-v-3c357e2d] {\n padding-inline-start: calc(var(--header-height) * var(--v046d2bb2));\n text-align: center;\n}\n}\n.modal-header .icons-menu[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n align-self: flex-end;\n}\n.modal-header .icons-menu .header-close[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: center;\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n padding: 0;\n}\n.modal-header .icons-menu .play-pause-icons[data-v-3c357e2d] {\n position: relative;\n width: var(--header-height);\n height: var(--header-height);\n margin: 0;\n padding: 0;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3c357e2d], .modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3c357e2d] {\n opacity: 1;\n border-radius: calc(var(--default-clickable-area) / 2);\n background-color: rgba(127, 127, 127, 0.25);\n}\n.modal-header .icons-menu .play-pause-icons__icon[data-v-3c357e2d] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n cursor: pointer;\n opacity: 0.7;\n}\n.modal-header .icons-menu[data-v-3c357e2d] .action-item {\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n}\n.modal-header .icons-menu[data-v-3c357e2d] .action-item--single {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n cursor: pointer;\n background-position: center;\n background-size: 22px;\n}\n.modal-header .icons-menu .header-actions[data-v-3c357e2d] button:focus-visible {\n box-shadow: none !important;\n outline: 2px solid #fff !important;\n}\n.modal-wrapper[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n /* Navigation buttons */\n}\n.modal-wrapper .prev[data-v-3c357e2d],\n.modal-wrapper .next[data-v-3c357e2d] {\n z-index: 10000;\n height: 35vh;\n min-height: 300px;\n position: absolute;\n transition: opacity 250ms;\n color: white;\n}\n.modal-wrapper .prev[data-v-3c357e2d]:focus-visible,\n.modal-wrapper .next[data-v-3c357e2d]:focus-visible {\n box-shadow: 0 0 0 2px var(--color-primary-element-text);\n background-color: var(--color-box-shadow);\n}\n.modal-wrapper .prev[data-v-3c357e2d] {\n inset-inline-start: 2px;\n}\n.modal-wrapper .next[data-v-3c357e2d] {\n inset-inline-end: 2px;\n}\n.modal-wrapper[data-v-3c357e2d] {\n /* Content */\n}\n.modal-wrapper .modal-container[data-v-3c357e2d] {\n position: relative;\n display: flex;\n padding: 0;\n transition: transform 300ms ease;\n border-radius: var(--border-radius-container);\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\n overflow: auto;\n}\n.modal-wrapper .modal-container__close[data-v-3c357e2d] {\n z-index: 1;\n position: absolute;\n top: 4px;\n inset-inline-end: var(--default-grid-baseline);\n}\n.modal-wrapper .modal-container__content[data-v-3c357e2d] {\n width: 100%;\n min-height: 52px;\n overflow: auto;\n}\n.modal-wrapper--small > .modal-container[data-v-3c357e2d] {\n width: 400px;\n max-width: 90%;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--normal > .modal-container[data-v-3c357e2d] {\n max-width: 90%;\n width: 600px;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--large > .modal-container[data-v-3c357e2d] {\n max-width: 90%;\n width: 900px;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--full > .modal-container[data-v-3c357e2d] {\n width: 100%;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n@media only screen and ((max-width: 512px) or (max-height: 400px)) {\n.modal-wrapper .modal-container[data-v-3c357e2d] {\n max-width: initial;\n width: 100%;\n max-height: initial;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n}\n\n/* TRANSITIONS */\n.fade-enter-active[data-v-3c357e2d],\n.fade-leave-active[data-v-3c357e2d] {\n transition: opacity 250ms;\n}\n.fade-enter-from[data-v-3c357e2d],\n.fade-leave-to[data-v-3c357e2d] {\n opacity: 0;\n}\n.fade-visibility-enter-from[data-v-3c357e2d],\n.fade-visibility-leave-to[data-v-3c357e2d] {\n visibility: hidden;\n opacity: 0;\n}\n.modal-in-enter-active[data-v-3c357e2d],\n.modal-in-leave-active[data-v-3c357e2d],\n.modal-out-enter-active[data-v-3c357e2d],\n.modal-out-leave-active[data-v-3c357e2d] {\n transition: opacity 250ms;\n}\n.modal-in-enter-from[data-v-3c357e2d],\n.modal-in-leave-to[data-v-3c357e2d],\n.modal-out-enter-from[data-v-3c357e2d],\n.modal-out-leave-to[data-v-3c357e2d] {\n opacity: 0;\n}\n.modal-in-enter .modal-container[data-v-3c357e2d],\n.modal-in-leave-to .modal-container[data-v-3c357e2d] {\n transform: scale(0.9);\n}\n.modal-out-enter .modal-container[data-v-3c357e2d],\n.modal-out-leave-to .modal-container[data-v-3c357e2d] {\n transform: scale(1.1);\n}\n.modal-mask .play-pause-icons .progress-ring[data-v-3c357e2d] {\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n transform: rotate(-90deg);\n}\n.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3c357e2d] {\n transition: 100ms stroke-dashoffset;\n transform-origin: 50% 50%;\n animation: progressring-3c357e2d linear var(--v71f7c020) infinite;\n stroke-linecap: round;\n stroke-dashoffset: 94.2477796077;\n stroke-dasharray: 94.2477796077;\n}\n.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3c357e2d] {\n animation: breath-3c357e2d 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3c357e2d] {\n animation-play-state: paused !important;\n}\n@keyframes progressring-3c357e2d {\nfrom {\n stroke-dashoffset: 94.2477796077;\n}\nto {\n stroke-dashoffset: 0;\n}\n}\n@keyframes breath-3c357e2d {\n0% {\n opacity: 1;\n}\n50% {\n opacity: 0;\n}\n100% {\n opacity: 1;\n}\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcModal.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,eAAe;EACf,aAAa;EACb,MAAM;EACN,qBAAqB;EACrB,cAAc;EACd,WAAW;EACX,YAAY;EACZ,yBAAyB;EACzB,kDAAkD;AACpD;AACA;EACE,sBAAsB;AACxB;AACA;EACE,mDAAmD;AACrD;AACA;EACE,+BAA+B;AACjC;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,MAAM;EACN,iBAAiB;EACjB,wBAAwB;EACxB,mBAAmB;EACnB,8BAA8B;EAC9B,WAAW;EACX,4BAA4B;EAC5B,gBAAgB;EAChB,2CAA2C;AAC7C;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,sBAAsB;EACtB,8BAA8B;EAC9B,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;EACf,eAAe;AACjB;AACA;AACA;IACI,mEAAmE;IACnE,kBAAkB;AACtB;AACA;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,yBAAyB;EACzB,oBAAoB;AACtB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,wEAAwE;EACxE,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;EAC5B,SAAS;EACT,UAAU;EACV,eAAe;EACf,YAAY;EACZ,6BAA6B;AAC/B;AACA;EACE,UAAU;EACV,sDAAsD;EACtD,2CAA2C;AAC7C;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,wEAAwE;EACxE,eAAe;EACf,YAAY;AACd;AACA;EACE,wEAAwE;AAC1E;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,eAAe;EACf,2BAA2B;EAC3B,qBAAqB;AACvB;AACA;EACE,2BAA2B;EAC3B,kCAAkC;AACpC;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,uBAAuB;AACzB;AACA;;EAEE,cAAc;EACd,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,yBAAyB;EACzB,YAAY;AACd;AACA;;EAEE,uDAAuD;EACvD,yCAAyC;AAC3C;AACA;EACE,uBAAuB;AACzB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,UAAU;EACV,gCAAgC;EAChC,6CAA6C;EAC7C,8CAA8C;EAC9C,6BAA6B;EAC7B,uCAAuC;EACvC,cAAc;AAChB;AACA;EACE,UAAU;EACV,kBAAkB;EAClB,QAAQ;EACR,8CAA8C;AAChD;AACA;EACE,WAAW;EACX,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,YAAY;EACZ,cAAc;EACd,wFAAwF;AAC1F;AACA;EACE,cAAc;EACd,YAAY;EACZ,wFAAwF;AAC1F;AACA;EACE,cAAc;EACd,YAAY;EACZ,wFAAwF;AAC1F;AACA;EACE,WAAW;EACX,yCAAyC;EACzC,kBAAkB;EAClB,yBAAyB;EACzB,gBAAgB;AAClB;AACA;AACA;IACI,kBAAkB;IAClB,WAAW;IACX,mBAAmB;IACnB,yCAAyC;IACzC,kBAAkB;IAClB,yBAAyB;IACzB,gBAAgB;AACpB;AACA;;AAEA,gBAAgB;AAChB;;EAEE,yBAAyB;AAC3B;AACA;;EAEE,UAAU;AACZ;AACA;;EAEE,kBAAkB;EAClB,UAAU;AACZ;AACA;;;;EAIE,yBAAyB;AAC3B;AACA;;;;EAIE,UAAU;AACZ;AACA;;EAEE,qBAAqB;AACvB;AACA;;EAEE,qBAAqB;AACvB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,qBAAqB;EACrB,yBAAyB;AAC3B;AACA;EACE,mCAAmC;EACnC,yBAAyB;EACzB,iEAAiE;EACjE,qBAAqB;EACrB,gCAAgC;EAChC,+BAA+B;AACjC;AACA;EACE,mEAAmE;AACrE;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,gCAAgC;AACpC;AACA;IACI,oBAAoB;AACxB;AACA;AACA;AACA;IACI,UAAU;AACd;AACA;IACI,UAAU;AACd;AACA;IACI,UAAU;AACd;AACA",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3c357e2d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.modal-mask[data-v-3c357e2d] {\n position: fixed;\n z-index: 9998;\n top: 0;\n inset-inline-start: 0;\n display: block;\n width: 100%;\n height: 100%;\n --backdrop-color: 0, 0, 0;\n background-color: rgba(var(--backdrop-color), 0.5);\n}\n.modal-mask[data-v-3c357e2d], .modal-mask[data-v-3c357e2d] * {\n box-sizing: border-box;\n}\n.modal-mask--opaque[data-v-3c357e2d] {\n background-color: rgba(var(--backdrop-color), 0.92);\n}\n.modal-mask--light[data-v-3c357e2d] {\n --backdrop-color: 255, 255, 255;\n}\n.modal-header[data-v-3c357e2d] {\n position: absolute;\n z-index: 10001;\n top: 0;\n inset-inline: 0 0;\n display: flex !important;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: var(--header-height);\n overflow: hidden;\n transition: opacity 250ms, visibility 250ms;\n}\n.modal-header__name[data-v-3c357e2d] {\n overflow-x: hidden;\n width: 100%;\n padding-inline: 12px 0;\n transition: padding ease 100ms;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 16px;\n margin-block: 0;\n}\n@media only screen and (min-width: 1024px) {\n.modal-header__name[data-v-3c357e2d] {\n padding-inline-start: calc(var(--header-height) * var(--v046d2bb2));\n text-align: center;\n}\n}\n.modal-header .icons-menu[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n align-self: flex-end;\n}\n.modal-header .icons-menu .header-close[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: center;\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n padding: 0;\n}\n.modal-header .icons-menu .play-pause-icons[data-v-3c357e2d] {\n position: relative;\n width: var(--header-height);\n height: var(--header-height);\n margin: 0;\n padding: 0;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3c357e2d], .modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3c357e2d] {\n opacity: 1;\n border-radius: calc(var(--default-clickable-area) / 2);\n background-color: rgba(127, 127, 127, 0.25);\n}\n.modal-header .icons-menu .play-pause-icons__icon[data-v-3c357e2d] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n cursor: pointer;\n opacity: 0.7;\n}\n.modal-header .icons-menu[data-v-3c357e2d] .action-item {\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n}\n.modal-header .icons-menu[data-v-3c357e2d] .action-item--single {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n cursor: pointer;\n background-position: center;\n background-size: 22px;\n}\n.modal-header .icons-menu .header-actions[data-v-3c357e2d] button:focus-visible {\n box-shadow: none !important;\n outline: 2px solid #fff !important;\n}\n.modal-wrapper[data-v-3c357e2d] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n /* Navigation buttons */\n}\n.modal-wrapper .prev[data-v-3c357e2d],\n.modal-wrapper .next[data-v-3c357e2d] {\n z-index: 10000;\n height: 35vh;\n min-height: 300px;\n position: absolute;\n transition: opacity 250ms;\n color: white;\n}\n.modal-wrapper .prev[data-v-3c357e2d]:focus-visible,\n.modal-wrapper .next[data-v-3c357e2d]:focus-visible {\n box-shadow: 0 0 0 2px var(--color-primary-element-text);\n background-color: var(--color-box-shadow);\n}\n.modal-wrapper .prev[data-v-3c357e2d] {\n inset-inline-start: 2px;\n}\n.modal-wrapper .next[data-v-3c357e2d] {\n inset-inline-end: 2px;\n}\n.modal-wrapper[data-v-3c357e2d] {\n /* Content */\n}\n.modal-wrapper .modal-container[data-v-3c357e2d] {\n position: relative;\n display: flex;\n padding: 0;\n transition: transform 300ms ease;\n border-radius: var(--border-radius-container);\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\n overflow: auto;\n}\n.modal-wrapper .modal-container__close[data-v-3c357e2d] {\n z-index: 1;\n position: absolute;\n top: 4px;\n inset-inline-end: var(--default-grid-baseline);\n}\n.modal-wrapper .modal-container__content[data-v-3c357e2d] {\n width: 100%;\n min-height: 52px;\n overflow: auto;\n}\n.modal-wrapper--small > .modal-container[data-v-3c357e2d] {\n width: 400px;\n max-width: 90%;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--normal > .modal-container[data-v-3c357e2d] {\n max-width: 90%;\n width: 600px;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--large > .modal-container[data-v-3c357e2d] {\n max-width: 90%;\n width: 900px;\n max-height: min(90%, 100% - 2 * var(--header-height) - 2 * var(--body-container-margin));\n}\n.modal-wrapper--full > .modal-container[data-v-3c357e2d] {\n width: 100%;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n@media only screen and ((max-width: 512px) or (max-height: 400px)) {\n.modal-wrapper .modal-container[data-v-3c357e2d] {\n max-width: initial;\n width: 100%;\n max-height: initial;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n}\n\n/* TRANSITIONS */\n.fade-enter-active[data-v-3c357e2d],\n.fade-leave-active[data-v-3c357e2d] {\n transition: opacity 250ms;\n}\n.fade-enter-from[data-v-3c357e2d],\n.fade-leave-to[data-v-3c357e2d] {\n opacity: 0;\n}\n.fade-visibility-enter-from[data-v-3c357e2d],\n.fade-visibility-leave-to[data-v-3c357e2d] {\n visibility: hidden;\n opacity: 0;\n}\n.modal-in-enter-active[data-v-3c357e2d],\n.modal-in-leave-active[data-v-3c357e2d],\n.modal-out-enter-active[data-v-3c357e2d],\n.modal-out-leave-active[data-v-3c357e2d] {\n transition: opacity 250ms;\n}\n.modal-in-enter-from[data-v-3c357e2d],\n.modal-in-leave-to[data-v-3c357e2d],\n.modal-out-enter-from[data-v-3c357e2d],\n.modal-out-leave-to[data-v-3c357e2d] {\n opacity: 0;\n}\n.modal-in-enter .modal-container[data-v-3c357e2d],\n.modal-in-leave-to .modal-container[data-v-3c357e2d] {\n transform: scale(0.9);\n}\n.modal-out-enter .modal-container[data-v-3c357e2d],\n.modal-out-leave-to .modal-container[data-v-3c357e2d] {\n transform: scale(1.1);\n}\n.modal-mask .play-pause-icons .progress-ring[data-v-3c357e2d] {\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n transform: rotate(-90deg);\n}\n.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3c357e2d] {\n transition: 100ms stroke-dashoffset;\n transform-origin: 50% 50%;\n animation: progressring-3c357e2d linear var(--v71f7c020) infinite;\n stroke-linecap: round;\n stroke-dashoffset: 94.2477796077;\n stroke-dasharray: 94.2477796077;\n}\n.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3c357e2d] {\n animation: breath-3c357e2d 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3c357e2d] {\n animation-play-state: paused !important;\n}\n@keyframes progressring-3c357e2d {\nfrom {\n stroke-dashoffset: 94.2477796077;\n}\nto {\n stroke-dashoffset: 0;\n}\n}\n@keyframes breath-3c357e2d {\n0% {\n opacity: 1;\n}\n50% {\n opacity: 0;\n}\n100% {\n opacity: 1;\n}\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},34698(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-6be9fa31] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.notecard[data-v-6be9fa31] {\n --note-card-icon-size: 20px;\n --note-card-padding: calc(2 * var(--default-grid-baseline));\n color: var(--color-main-text) !important;\n background-color: var(--note-background) !important;\n border-inline-start: var(--default-grid-baseline) solid var(--note-theme);\n border-radius: var(--border-radius-small);\n margin: 1rem 0;\n padding: var(--note-card-padding);\n display: flex;\n flex-direction: row;\n gap: var(--note-card-padding);\n}\n.notecard__heading[data-v-6be9fa31] {\n font-size: var(--note-card-icon-size);\n font-weight: var(--font-weight-heading, 600);\n}\n.notecard__icon[data-v-6be9fa31] {\n color: var(--note-theme);\n}\n.notecard__icon--heading[data-v-6be9fa31] {\n font-size: var(--note-card-icon-size);\n margin-block: calc((1lh - 1em) / 2) auto;\n}\n.notecard--success[data-v-6be9fa31] {\n --note-background: var(--color-success);\n --note-theme: var(--color-success-text);\n}\n.notecard--info[data-v-6be9fa31] {\n --note-background: var(--color-info);\n --note-theme: var(--color-info-text);\n}\n.notecard--error[data-v-6be9fa31] {\n --note-background: var(--color-error);\n --note-theme: var(--color-error-text);\n}\n.notecard--warning[data-v-6be9fa31] {\n --note-background: var(--color-warning);\n --note-theme: var(--color-warning-text);\n}\n.notecard--legacy[data-v-6be9fa31] {\n background-color: color-mix(in srgb, var(--note-background), var(--color-main-background) 80%) !important;\n color: var(--color-main-text) !important;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcNoteCard.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,2BAA2B;EAC3B,2DAA2D;EAC3D,wCAAwC;EACxC,mDAAmD;EACnD,yEAAyE;EACzE,yCAAyC;EACzC,cAAc;EACd,iCAAiC;EACjC,aAAa;EACb,mBAAmB;EACnB,6BAA6B;AAC/B;AACA;EACE,qCAAqC;EACrC,4CAA4C;AAC9C;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,qCAAqC;EACrC,wCAAwC;AAC1C;AACA;EACE,uCAAuC;EACvC,uCAAuC;AACzC;AACA;EACE,oCAAoC;EACpC,oCAAoC;AACtC;AACA;EACE,qCAAqC;EACrC,qCAAqC;AACvC;AACA;EACE,uCAAuC;EACvC,uCAAuC;AACzC;AACA;EACE,yGAAyG;EACzG,wCAAwC;AAC1C",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-6be9fa31] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.notecard[data-v-6be9fa31] {\n --note-card-icon-size: 20px;\n --note-card-padding: calc(2 * var(--default-grid-baseline));\n color: var(--color-main-text) !important;\n background-color: var(--note-background) !important;\n border-inline-start: var(--default-grid-baseline) solid var(--note-theme);\n border-radius: var(--border-radius-small);\n margin: 1rem 0;\n padding: var(--note-card-padding);\n display: flex;\n flex-direction: row;\n gap: var(--note-card-padding);\n}\n.notecard__heading[data-v-6be9fa31] {\n font-size: var(--note-card-icon-size);\n font-weight: var(--font-weight-heading, 600);\n}\n.notecard__icon[data-v-6be9fa31] {\n color: var(--note-theme);\n}\n.notecard__icon--heading[data-v-6be9fa31] {\n font-size: var(--note-card-icon-size);\n margin-block: calc((1lh - 1em) / 2) auto;\n}\n.notecard--success[data-v-6be9fa31] {\n --note-background: var(--color-success);\n --note-theme: var(--color-success-text);\n}\n.notecard--info[data-v-6be9fa31] {\n --note-background: var(--color-info);\n --note-theme: var(--color-info-text);\n}\n.notecard--error[data-v-6be9fa31] {\n --note-background: var(--color-error);\n --note-theme: var(--color-error-text);\n}\n.notecard--warning[data-v-6be9fa31] {\n --note-background: var(--color-warning);\n --note-theme: var(--color-warning-text);\n}\n.notecard--legacy[data-v-6be9fa31] {\n background-color: color-mix(in srgb, var(--note-background), var(--color-main-background) 80%) !important;\n color: var(--color-main-text) !important;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},33311(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cb828737] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n[data-v-cb828737] .password-field__input--secure-text {\n -webkit-text-security: disc;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcPasswordField.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,2BAA2B;AAC7B",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cb828737] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n[data-v-cb828737] .password-field__input--secure-text {\n -webkit-text-security: disc;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},92521(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,'/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_NkIOG {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9, ._ncPopover_qgtYg.v-popper--theme-nc-popover-9 * {\n box-sizing: border-box;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9 .resize-observer {\n position: absolute;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9 .resize-observer object {\n display: block;\n position: absolute;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper {\n z-index: 100000;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n display: block !important;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper {\n /*\n * In theory, "filter: drop-shadow" would look better here with arrow shadow.\n * In fact, in results in a blurry popover in Chromium on scaling.\n * The hypothesis is that "filter" creates a new composition layer,\n * and with GPU acceleration requires the previous layers content to be rasterized.\n * In combination with translate3d from floating-vue, it makes Chromium to first render and rasterize the popover\n * and then apply scaling, which results in a blurry popover.\n */\n box-shadow: 0 1px 10px var(--color-box-shadow);\n border-radius: var(--border-radius-element);\n transition: transform var(--animation-quick);\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner {\n padding: 0;\n color: var(--color-main-text);\n border-radius: var(--border-radius-element);\n overflow: hidden;\n background: var(--color-main-background);\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container {\n display: none;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__wrapper {\n transform-origin: bottom center;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__wrapper {\n transform-origin: top center;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__wrapper {\n /* stylelint-disable-next-line csstools/use-logical */ /* transform-origin has no logical keyword */\n transform-origin: left center;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__wrapper {\n /* stylelint-disable-next-line csstools/use-logical */ /* transform-origin has no logical keyword */\n transform-origin: right center;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true] {\n visibility: hidden;\n transition: opacity var(--animation-quick), visibility var(--animation-quick);\n opacity: 0;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true] .v-popper__wrapper {\n transform: scale(0.96);\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false] {\n visibility: visible;\n transition: opacity var(--animation-quick);\n opacity: 1;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false] .v-popper__wrapper {\n transform: scale(1);\n}',"",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcPopover.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,qDAAqD,EAAE,mBAAmB;EAC1E,OAAO;EACP,WAAW;EACX,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,6BAA6B;EAC7B,oBAAoB;EACpB,cAAc;EACd,gBAAgB;EAChB,UAAU;AACZ;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,MAAM;EACN,qDAAqD,EAAE,mBAAmB;EAC1E,OAAO;EACP,YAAY;EACZ,WAAW;EACX,gBAAgB;EAChB,oBAAoB;EACpB,WAAW;AACb;AACA;EACE,eAAe;EACf,MAAM;EACN,qDAAqD,EAAE,mBAAmB;EAC1E,OAAO;EACP,yBAAyB;AAC3B;AACA;EACE;;;;;;;IAOE;EACF,8CAA8C;EAC9C,2CAA2C;EAC3C,4CAA4C;AAC9C;AACA;EACE,UAAU;EACV,6BAA6B;EAC7B,2CAA2C;EAC3C,gBAAgB;EAChB,wCAAwC;AAC1C;AACA;EACE,aAAa;AACf;AACA;EACE,+BAA+B;AACjC;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,qDAAqD,EAAE,4CAA4C;EACnG,6BAA6B;AAC/B;AACA;EACE,qDAAqD,EAAE,4CAA4C;EACnG,8BAA8B;AAChC;AACA;EACE,kBAAkB;EAClB,6EAA6E;EAC7E,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,mBAAmB;EACnB,0CAA0C;EAC1C,UAAU;AACZ;AACA;EACE,mBAAmB;AACrB",sourcesContent:['/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_NkIOG {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9, ._ncPopover_qgtYg.v-popper--theme-nc-popover-9 * {\n box-sizing: border-box;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9 .resize-observer {\n position: absolute;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9 .resize-observer object {\n display: block;\n position: absolute;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper {\n z-index: 100000;\n top: 0;\n /* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n left: 0;\n display: block !important;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper {\n /*\n * In theory, "filter: drop-shadow" would look better here with arrow shadow.\n * In fact, in results in a blurry popover in Chromium on scaling.\n * The hypothesis is that "filter" creates a new composition layer,\n * and with GPU acceleration requires the previous layers content to be rasterized.\n * In combination with translate3d from floating-vue, it makes Chromium to first render and rasterize the popover\n * and then apply scaling, which results in a blurry popover.\n */\n box-shadow: 0 1px 10px var(--color-box-shadow);\n border-radius: var(--border-radius-element);\n transition: transform var(--animation-quick);\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner {\n padding: 0;\n color: var(--color-main-text);\n border-radius: var(--border-radius-element);\n overflow: hidden;\n background: var(--color-main-background);\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container {\n display: none;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__wrapper {\n transform-origin: bottom center;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__wrapper {\n transform-origin: top center;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__wrapper {\n /* stylelint-disable-next-line csstools/use-logical */ /* transform-origin has no logical keyword */\n transform-origin: left center;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__wrapper {\n /* stylelint-disable-next-line csstools/use-logical */ /* transform-origin has no logical keyword */\n transform-origin: right center;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true] {\n visibility: hidden;\n transition: opacity var(--animation-quick), visibility var(--animation-quick);\n opacity: 0;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true] .v-popper__wrapper {\n transform: scale(0.96);\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false] {\n visibility: visible;\n transition: opacity var(--animation-quick);\n opacity: 1;\n}\n._ncPopover_qgtYg.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false] .v-popper__wrapper {\n transform: scale(1);\n}'],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},61994(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_TUacq {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._radioGroup_checkboxRadioContainer_AUPA7 .checkbox-content {\n max-width: unset !important;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcRadioGroup.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,2BAA2B;AAC7B",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_TUacq {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._radioGroup_checkboxRadioContainer_AUPA7 .checkbox-content {\n max-width: unset !important;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},82970(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_L0tBR {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._radioGroupButton_YNoo0 {\n --radio-group-button--border-radius: var(--border-radius-small);\n --radio-group-button--border-width: 1px;\n --radio-group-button--color: var(--color-primary-element-light-text);\n --radio-group-button--background-color: var(--color-primary-element-light);\n --radio-group-button--background-color-hover: var(--color-primary-element-light-hover);\n --radio-group-button--padding: 1px;\n cursor: pointer;\n color: var(--radio-group-button--color);\n background-color: var(--radio-group-button--background-color);\n will-change: transform;\n transition-property: color, background-color, transform;\n transition-duration: var(--animation-quick);\n border: var(--radio-group-button--border-width) solid var(--radio-group-button--background-color-hover);\n border-bottom-width: 2px;\n border-radius: var(--radio-group-button--border-radius);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n text-align: center;\n min-height: var(--default-clickable-area);\n padding-block: var(--radio-group-button--padding) 0;\n padding-inline: var(--radio-group-button--padding);\n}\n._radioGroupButton_YNoo0 * {\n cursor: pointer;\n}\n._radioGroupButton_YNoo0:has(._radioGroupButton__label_8W6-c) {\n padding-inline: calc(var(--radio-group-button--padding) + var(--border-radius-element));\n}\n._radioGroupButton_YNoo0:has(._radioGroupButton__icon_lPjNx) {\n padding-inline-start: var(--radio-group-button--padding);\n}\n._radioGroupButton_YNoo0:hover:not(._radioGroupButton_disabled_8uxSh) {\n background-color: var(--radio-group-button--background-color-hover);\n}\n._radioGroupButton_YNoo0:active:not(._radioGroupButton_disabled_8uxSh) {\n transform: scale(0.985);\n}\n._radioGroupButton_YNoo0:focus-within {\n --radio-group-button--border-width: 2px;\n --radio-group-button--padding: 0px;\n border: var(--radio-group-button--border-width) solid var(--color-main-text) !important;\n outline: calc(var(--default-grid-baseline) / 2) var(--color-main-background);\n}\n._radioGroupButton_active_qTVBh {\n --radio-group-button--color: var(--color-primary-element-text);\n --radio-group-button--background-color: var(--color-primary-element);\n --radio-group-button--background-color-hover: var(--color-primary-element-hover);\n}\n._radioGroupButton__label_8W6-c {\n font-weight: var(--font-weight-element, bold);\n}\n._radioGroupButton_disabled_8uxSh {\n filter: saturate(0.7);\n opacity: 0.5;\n cursor: default;\n}\n._radioGroupButton_disabled_8uxSh * {\n cursor: default;\n}\n._radioGroupButton__icon_lPjNx {\n --radio-group-button--icon-size: calc(var(--default-clickable-area) - 4px);\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: var(--radio-group-button--icon-size);\n}\n._radioGroupButton__icon_lPjNx * {\n --default-clickable-area: var(--radio-group-button--icon-size);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcRadioGroupButton.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,+DAA+D;EAC/D,uCAAuC;EACvC,oEAAoE;EACpE,0EAA0E;EAC1E,sFAAsF;EACtF,kCAAkC;EAClC,eAAe;EACf,uCAAuC;EACvC,6DAA6D;EAC7D,sBAAsB;EACtB,uDAAuD;EACvD,2CAA2C;EAC3C,uGAAuG;EACvG,wBAAwB;EACxB,uDAAuD;EACvD,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;EAClB,yCAAyC;EACzC,mDAAmD;EACnD,kDAAkD;AACpD;AACA;EACE,eAAe;AACjB;AACA;EACE,uFAAuF;AACzF;AACA;EACE,wDAAwD;AAC1D;AACA;EACE,mEAAmE;AACrE;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uCAAuC;EACvC,kCAAkC;EAClC,uFAAuF;EACvF,4EAA4E;AAC9E;AACA;EACE,8DAA8D;EAC9D,oEAAoE;EACpE,gFAAgF;AAClF;AACA;EACE,6CAA6C;AAC/C;AACA;EACE,qBAAqB;EACrB,YAAY;EACZ,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,0EAA0E;EAC1E,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;EACZ,2CAA2C;AAC7C;AACA;EACE,8DAA8D;AAChE",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_L0tBR {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._radioGroupButton_YNoo0 {\n --radio-group-button--border-radius: var(--border-radius-small);\n --radio-group-button--border-width: 1px;\n --radio-group-button--color: var(--color-primary-element-light-text);\n --radio-group-button--background-color: var(--color-primary-element-light);\n --radio-group-button--background-color-hover: var(--color-primary-element-light-hover);\n --radio-group-button--padding: 1px;\n cursor: pointer;\n color: var(--radio-group-button--color);\n background-color: var(--radio-group-button--background-color);\n will-change: transform;\n transition-property: color, background-color, transform;\n transition-duration: var(--animation-quick);\n border: var(--radio-group-button--border-width) solid var(--radio-group-button--background-color-hover);\n border-bottom-width: 2px;\n border-radius: var(--radio-group-button--border-radius);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n text-align: center;\n min-height: var(--default-clickable-area);\n padding-block: var(--radio-group-button--padding) 0;\n padding-inline: var(--radio-group-button--padding);\n}\n._radioGroupButton_YNoo0 * {\n cursor: pointer;\n}\n._radioGroupButton_YNoo0:has(._radioGroupButton__label_8W6-c) {\n padding-inline: calc(var(--radio-group-button--padding) + var(--border-radius-element));\n}\n._radioGroupButton_YNoo0:has(._radioGroupButton__icon_lPjNx) {\n padding-inline-start: var(--radio-group-button--padding);\n}\n._radioGroupButton_YNoo0:hover:not(._radioGroupButton_disabled_8uxSh) {\n background-color: var(--radio-group-button--background-color-hover);\n}\n._radioGroupButton_YNoo0:active:not(._radioGroupButton_disabled_8uxSh) {\n transform: scale(0.985);\n}\n._radioGroupButton_YNoo0:focus-within {\n --radio-group-button--border-width: 2px;\n --radio-group-button--padding: 0px;\n border: var(--radio-group-button--border-width) solid var(--color-main-text) !important;\n outline: calc(var(--default-grid-baseline) / 2) var(--color-main-background);\n}\n._radioGroupButton_active_qTVBh {\n --radio-group-button--color: var(--color-primary-element-text);\n --radio-group-button--background-color: var(--color-primary-element);\n --radio-group-button--background-color-hover: var(--color-primary-element-hover);\n}\n._radioGroupButton__label_8W6-c {\n font-weight: var(--font-weight-element, bold);\n}\n._radioGroupButton_disabled_8uxSh {\n filter: saturate(0.7);\n opacity: 0.5;\n cursor: default;\n}\n._radioGroupButton_disabled_8uxSh * {\n cursor: default;\n}\n._radioGroupButton__icon_lPjNx {\n --radio-group-button--icon-size: calc(var(--default-clickable-area) - 4px);\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: var(--radio-group-button--icon-size);\n}\n._radioGroupButton__icon_lPjNx * {\n --default-clickable-area: var(--radio-group-button--icon-size);\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},40556(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Similar as inputBorder but without active styles.\n */\n/**\n * Create a consistent border for an input element.\n * With Nextcloud 32+ there is no real border anymore but we use a box-shadow.\n */\n.nc-select.v-select.select .select__helper-text {\n display: flex;\n align-items: center;\n margin: 0;\n padding-block: 4px;\n padding-inline: var(--border-radius-element);\n color: var(--color-text-maxcontrast);\n font-size: var(--default-font-size);\n overflow-wrap: anywhere;\n}\n.nc-select.v-select.select .select__helper-text--error {\n color: var(--color-text-error);\n}\n.nc-select.v-select.select .select__helper-text--success {\n color: var(--color-text-success);\n}\n.nc-select.v-select.select .select__helper-text .select__helper-text-icon {\n margin-inline-end: 8px;\n}\n.nc-select.v-select.select {\n /* Custom vue-select CSS variables scoped to NcSelect */\n /* Search Input */\n --vs-search-input-color: var(--color-main-text);\n --vs-search-input-bg: var(--color-main-background);\n --vs-search-input-placeholder-color: var(--color-text-maxcontrast);\n /* Font */\n --vs-font-size: var(--default-font-size);\n --vs-line-height: var(--default-line-height);\n /* Disabled State */\n --vs-state-disabled-bg: var(--color-background-hover);\n --vs-state-disabled-color: var(--color-text-maxcontrast);\n --vs-state-disabled-controls-color: var(--color-text-maxcontrast);\n --vs-state-disabled-cursor: not-allowed;\n --vs-disabled-bg: var(--color-background-hover);\n --vs-disabled-color: var(--color-text-maxcontrast);\n --vs-disabled-cursor: not-allowed;\n /* Borders */\n --vs-border-color: var(--color-border-maxcontrast);\n --vs-border-width: var(--border-width-input, 2px) !important;\n --vs-border-style: solid;\n --vs-border-radius: var(--border-radius-element);\n /* Component Controls: Clear, Open Indicator */\n --vs-controls-color: var(--color-main-text);\n /* Selected */\n --vs-selected-bg: var(--color-background-hover);\n --vs-selected-color: var(--color-main-text);\n --vs-selected-border-color: var(--vs-border-color);\n --vs-selected-border-style: var(--vs-border-style);\n --vs-selected-border-width: var(--vs-border-width);\n /* Dropdown */\n --vs-dropdown-bg: var(--color-main-background);\n --vs-dropdown-color: var(--color-main-text);\n --vs-dropdown-z-index: 9999;\n --vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);\n /* Options */\n --vs-dropdown-option-padding: 8px 20px;\n /* Active State */\n --vs-dropdown-option--active-bg: var(--color-background-hover);\n --vs-dropdown-option--active-color: var(--color-main-text);\n /* Keyboard Focus State */\n --vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);\n /* Deselect State */\n --vs-dropdown-option--deselect-bg: var(--color-error);\n --vs-dropdown-option--deselect-color: #fff;\n /* Transitions */\n --vs-transition-duration: 0ms;\n /* Actions */\n --vs-actions-padding: 0 8px 0 8px;\n /* Override default vue-select styles */\n min-height: calc(var(--default-clickable-area) - 2 * var(--border-width-input, 2px));\n min-width: 260px;\n margin: 6px 0 var(--default-grid-baseline);\n}\n.nc-select.v-select.select.vs--open {\n --vs-border-width: var(--border-width-input-focused, 2px);\n}\n.nc-select.v-select.select .vs__selected {\n min-height: calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));\n min-width: 0;\n max-width: 100%;\n margin: calc(var(--default-grid-baseline) / 2);\n padding-block: 0;\n padding-inline: 12px 8px;\n border-radius: 16px !important;\n background: var(--color-primary-element-light);\n border: none;\n}\n.nc-select.v-select.select .vs__search {\n width: 100%;\n --input-padding-end: calc(var(--default-clickable-area) + var(--default-grid-baseline));\n border: none !important;\n margin: 0 !important;\n padding: 0 !important;\n height: auto !important;\n}\n.nc-select.v-select.select .vs__selected-options:has(.vs__selected) .vs__search .input-field__input + .input-field__label {\n --input-label-font-size: var(--font-size-small, 13px);\n line-height: 1.5;\n inset-block-start: calc(-1.5 * var(--input-label-font-size) / 2);\n font-weight: 500;\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: var(--default-grid-baseline);\n margin-inline: calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.nc-select.v-select.select:not(.vs--multiple) .vs__dropdown-toggle {\n padding: 0;\n overflow: visible;\n border: none !important;\n box-shadow: none !important;\n background: transparent;\n}\n.nc-select.v-select.select .vs__dropdown-toggle {\n position: relative;\n}\n.nc-select.v-select.select .vs__actions {\n position: absolute;\n z-index: 999;\n inset-inline-end: 0;\n top: 50%;\n transform: translateY(-50%);\n height: 100%;\n margin-block-start: 1px;\n display: flex;\n align-items: center;\n}\n.nc-select.v-select.select .vs__clear {\n margin-inline-end: 2px;\n}\n.nc-select.v-select.select.vs--open .vs__search .input-field__input {\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n}\n.nc-select.v-select.select.vs--disabled .vs__clear,\n.nc-select.v-select.select.vs--disabled .vs__dropdown-toggle,\n.nc-select.v-select.select.vs--disabled .vs__open-indicator,\n.nc-select.v-select.select.vs--disabled .vs__open-indicator-button,\n.nc-select.v-select.select.vs--disabled .vs__search,\n.nc-select.v-select.select.vs--disabled .vs__selected {\n background-color: transparent;\n color: var(--color-text-maxcontrast);\n}\n.nc-select.v-select.select.vs--disabled .vs__dropdown-toggle {\n --input-border-box-shadow-light: 0 -1px var(--color-border-dark),\n \t0 0 0 1px color-mix(in srgb, var(--color-border-dark), 65% transparent);\n --input-border-box-shadow-dark: 0 1px var(--color-border-dark),\n \t0 0 0 1px color-mix(in srgb, var(--color-border-dark), 65% transparent);\n}\n.nc-select.v-select.select.vs--disabled .vs__clear,\n.nc-select.v-select.select.vs--disabled .vs__deselect {\n display: none;\n}\n.nc-select.v-select.select--no-wrap .vs__dropdown-toggle {\n overflow: hidden;\n}\n.nc-select.v-select.select--no-wrap .vs__selected-options {\n flex-wrap: nowrap;\n overflow: auto !important;\n min-width: unset;\n}\n.nc-select.v-select.select--no-wrap .vs__selected-options .vs__selected {\n min-width: unset;\n}\n.nc-select.v-select.select--drop-up.vs--open .vs__search .input-field__input {\n border-end-start-radius: var(--border-radius-element) !important;\n border-end-end-radius: var(--border-radius-element) !important;\n}\n.nc-select.v-select.select--drop-up.vs--open.vs--multiple .vs__dropdown-toggle {\n border-end-start-radius: var(--border-radius-element) !important;\n border-end-end-radius: var(--border-radius-element) !important;\n border-block-end-color: var(--color-main-text) !important;\n}\n.nc-select.v-select.select .vs__selected-options {\n min-height: unset;\n}\n.nc-select.v-select.select .vs__selected-options .vs__selected ~ .vs__search:has(.input-field__input[readonly]) {\n position: absolute;\n}\n.nc-select.v-select.select .vs__selected-options {\n padding: 0;\n border: none;\n overflow: visible;\n}\n.nc-select.v-select.select.vs--multiple {\n margin-inline: 1px;\n}\n.nc-select.v-select.select.vs--multiple .vs__dropdown-toggle {\n border: var(--border-width-input-focused, 2px) solid transparent;\n box-shadow: var(--input-border-box-shadow);\n padding-block: calc(var(--default-grid-baseline) * 1.5) 0;\n padding-inline: var(--default-grid-baseline) calc(var(--default-clickable-area) + var(--default-grid-baseline));\n overflow: visible;\n background: var(--color-main-background);\n}\n.nc-select.v-select.select.vs--multiple:has(.vs__clear) .vs__dropdown-toggle {\n padding-inline-end: calc(2 * var(--default-clickable-area));\n}\n.nc-select.v-select.select.vs--multiple.vs--open .vs__dropdown-toggle {\n box-shadow: none !important;\n border-color: var(--color-main-text);\n border-block-end-color: var(--color-border-maxcontrast);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n outline: 2px solid var(--color-main-background);\n}\n.nc-select.v-select.select.vs--multiple .vs__search .input-field__input {\n box-shadow: none !important;\n background: transparent;\n}\n.nc-select.v-select.select.vs--multiple .vs__search {\n width: 0;\n flex-grow: 1;\n min-width: 0;\n}\n.nc-select.v-select.select.vs--multiple.select--no-wrap .vs__dropdown-toggle {\n overflow: hidden;\n}\n.nc-select.v-select.select.vs--multiple.select--no-wrap .vs__actions {\n background: linear-gradient(90deg, transparent, var(--color-main-background) 10%, var(--color-main-background) 100%);\n margin-block: 0px;\n margin-inline-end: 2px;\n border-radius: var(--border-radius-element);\n height: calc(100% - 6px);\n}\n.nc-select.v-select.select.vs--multiple .vs__search .input-field {\n margin-block-start: 0;\n}\n.nc-select.v-select.select.vs--multiple .vs__search .input-field__main-wrapper {\n height: calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));\n margin: calc(var(--default-grid-baseline) / 2) 0;\n}\n.nc-select.v-select.select.vs--multiple .select__label {\n position: absolute;\n z-index: 1;\n inset-inline-start: var(--border-width-input-focused, 2px);\n top: 50%;\n transform: translateY(-50%);\n font-size: var(--default-font-size);\n margin-inline: var(--border-radius-element);\n color: var(--color-text-maxcontrast);\n pointer-events: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: calc(100% - var(--clickable-area-large));\n transition: top var(--animation-quick), transform var(--animation-quick), font-size var(--animation-quick), font-weight var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.nc-select.v-select.select.vs--multiple:has(.vs__selected) .select__label, .nc-select.v-select.select.vs--multiple.vs--open .select__label {\n --input-label-font-size: var(--font-size-small, 13px);\n font-size: var(--input-label-font-size);\n line-height: 1.5;\n top: calc(-1.5 * var(--input-label-font-size) / 2);\n transform: none;\n font-weight: 500;\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: var(--default-grid-baseline);\n margin-inline: calc(var(--border-radius-element) - var(--default-grid-baseline));\n transition: top var(--animation-quick), transform var(--animation-quick), font-size var(--animation-quick), font-weight var(--animation-quick), background-color var(--animation-quick);\n}\n.nc-select.v-select.select.vs--single .vs__selected-options {\n position: relative;\n flex-wrap: nowrap;\n min-height: var(--default-clickable-area);\n}\n.nc-select.v-select.select.vs--single .vs__selected {\n position: absolute;\n inset-block: 6px 0;\n inset-inline-start: 0;\n inset-inline-end: 0;\n margin: 0;\n z-index: 2;\n pointer-events: none;\n display: flex;\n align-items: center;\n padding-block: 0;\n padding-inline: calc(var(--border-radius-element) + var(--border-width-input-focused, 2px)) var(--input-padding-end, calc(var(--default-clickable-area) + var(--default-grid-baseline)));\n background: unset !important;\n border: none;\n border-radius: 0;\n height: unset;\n min-height: unset;\n font-size: var(--default-font-size);\n color: var(--color-main-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.nc-select.v-select.select.vs--single:has(.input-field--label-outside) .vs__selected {\n inset-block-start: 0;\n}\n.nc-select.v-select.select.vs--single:has(.vs__clear) .vs__selected {\n padding-inline-end: calc(2 * var(--default-clickable-area));\n}\n.nc-select.v-select.select.vs--single.vs--loading .vs__selected, .nc-select.v-select.select.vs--single.vs--open .vs__selected {\n opacity: 0.4;\n}\n.nc-select.v-select.select.vs--single.vs--searching .vs__selected {\n display: none;\n}\n.nc-select__dropdown.vs__dropdown-menu {\n --vs-border-color: var(--color-border-maxcontrast);\n --vs-border-style: solid;\n --vs-border-radius: var(--border-radius-element);\n --vs-dropdown-bg: var(--color-main-background);\n --vs-dropdown-color: var(--color-main-text);\n --vs-dropdown-option-padding: 8px 20px;\n --vs-dropdown-option--active-bg: var(--color-background-hover);\n --vs-dropdown-option--active-color: var(--color-main-text);\n --vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--color-border-maxcontrast);\n --vs-dropdown-option--deselect-bg: var(--color-error);\n --vs-dropdown-option--deselect-color: #fff;\n border-width: var(--border-width-input-focused) !important;\n border-color: var(--color-main-text) !important;\n outline: none !important;\n box-shadow: -2px 0 0 var(--color-main-background), 0 2px 0 var(--color-main-background), 2px 0 0 var(--color-main-background), !important;\n padding: 4px !important;\n}\n.nc-select__dropdown.vs__dropdown-menu--floating {\n /* Fallback styles overidden by programmatically set inline styles */\n width: max-content;\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n}\n.nc-select__dropdown.vs__dropdown-menu--floating-placement-top {\n border-radius: var(--vs-border-radius) !important;\n border-top-style: var(--vs-border-style) !important;\n box-shadow: 0 -2px 0 var(--color-main-background), -2px 0 0 var(--color-main-background), 0 2px 0 var(--color-main-background), 2px 0 0 var(--color-main-background), !important;\n}\n.nc-select__dropdown.vs__dropdown-menu .vs__dropdown-option {\n border-radius: 6px !important;\n}\n.nc-select__dropdown.vs__dropdown-menu .vs__no-options {\n color: var(--color-text-maxcontrast) !important;\n}\n.nc-select.v-select.select .vs__dropdown-toggle {\n --input-border-box-shadow-light: 0 -1px var(--vs-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);\n --input-border-box-shadow-dark: 0 -1px var(--vs-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n border: none;\n border-radius: var(--border-radius-element);\n box-shadow: var(--input-border-box-shadow);\n}\n.nc-select.v-select.select:not(.vs--disabled) .vs__dropdown-toggle:hover {\n box-shadow: 0 0 0 1px var(--vs-border-color);\n}\n@media (prefers-color-scheme: dark) {\n.nc-select.v-select.select .vs__dropdown-toggle {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n}\n[data-theme-dark] .nc-select.v-select.select .vs__dropdown-toggle {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n[data-theme-light] .nc-select.v-select.select .vs__dropdown-toggle {\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n}\n.select--legacy.nc-select.v-select.select .vs__dropdown-toggle {\n box-shadow: 0 0 0 1px var(--vs-border-color);\n}\n.select--legacy.nc-select.v-select.select .vs__dropdown-toggle:hover:not([disabled]) {\n box-shadow: 0 0 0 2px var(--vs-border-color);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcSelect.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;;EAEE;AACF;;;EAGE;AACF;EACE,aAAa;EACb,mBAAmB;EACnB,SAAS;EACT,kBAAkB;EAClB,4CAA4C;EAC5C,oCAAoC;EACpC,mCAAmC;EACnC,uBAAuB;AACzB;AACA;EACE,8BAA8B;AAChC;AACA;EACE,gCAAgC;AAClC;AACA;EACE,sBAAsB;AACxB;AACA;EACE,uDAAuD;EACvD,iBAAiB;EACjB,+CAA+C;EAC/C,kDAAkD;EAClD,kEAAkE;EAClE,SAAS;EACT,wCAAwC;EACxC,4CAA4C;EAC5C,mBAAmB;EACnB,qDAAqD;EACrD,wDAAwD;EACxD,iEAAiE;EACjE,uCAAuC;EACvC,+CAA+C;EAC/C,kDAAkD;EAClD,iCAAiC;EACjC,YAAY;EACZ,kDAAkD;EAClD,4DAA4D;EAC5D,wBAAwB;EACxB,gDAAgD;EAChD,8CAA8C;EAC9C,2CAA2C;EAC3C,aAAa;EACb,+CAA+C;EAC/C,2CAA2C;EAC3C,kDAAkD;EAClD,kDAAkD;EAClD,kDAAkD;EAClD,aAAa;EACb,8CAA8C;EAC9C,2CAA2C;EAC3C,2BAA2B;EAC3B,iEAAiE;EACjE,YAAY;EACZ,sCAAsC;EACtC,iBAAiB;EACjB,8DAA8D;EAC9D,0DAA0D;EAC1D,yBAAyB;EACzB,uFAAuF;EACvF,mBAAmB;EACnB,qDAAqD;EACrD,0CAA0C;EAC1C,gBAAgB;EAChB,6BAA6B;EAC7B,YAAY;EACZ,iCAAiC;EACjC,uCAAuC;EACvC,oFAAoF;EACpF,gBAAgB;EAChB,0CAA0C;AAC5C;AACA;EACE,yDAAyD;AAC3D;AACA;EACE,2GAA2G;EAC3G,YAAY;EACZ,eAAe;EACf,8CAA8C;EAC9C,gBAAgB;EAChB,wBAAwB;EACxB,8BAA8B;EAC9B,8CAA8C;EAC9C,YAAY;AACd;AACA;EACE,WAAW;EACX,uFAAuF;EACvF,uBAAuB;EACvB,oBAAoB;EACpB,qBAAqB;EACrB,uBAAuB;AACzB;AACA;EACE,qDAAqD;EACrD,gBAAgB;EAChB,gEAAgE;EAChE,gBAAgB;EAChB,4EAA4E;EAC5E,8CAA8C;EAC9C,4CAA4C;EAC5C,4IAA4I;EAC5I,mJAAmJ;AACrJ;AACA;EACE,UAAU;EACV,iBAAiB;EACjB,uBAAuB;EACvB,2BAA2B;EAC3B,uBAAuB;AACzB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,mBAAmB;EACnB,QAAQ;EACR,2BAA2B;EAC3B,YAAY;EACZ,uBAAuB;EACvB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,qCAAqC;EACrC,mCAAmC;AACrC;AACA;;;;;;EAME,6BAA6B;EAC7B,oCAAoC;AACtC;AACA;EACE;0EACwE;EACxE;0EACwE;AAC1E;AACA;;EAEE,aAAa;AACf;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iBAAiB;EACjB,yBAAyB;EACzB,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gEAAgE;EAChE,8DAA8D;AAChE;AACA;EACE,gEAAgE;EAChE,8DAA8D;EAC9D,yDAAyD;AAC3D;AACA;EACE,iBAAiB;AACnB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,UAAU;EACV,YAAY;EACZ,iBAAiB;AACnB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,gEAAgE;EAChE,0CAA0C;EAC1C,yDAAyD;EACzD,+GAA+G;EAC/G,iBAAiB;EACjB,wCAAwC;AAC1C;AACA;EACE,2DAA2D;AAC7D;AACA;EACE,2BAA2B;EAC3B,oCAAoC;EACpC,uDAAuD;EACvD,0BAA0B;EAC1B,wBAAwB;EACxB,+CAA+C;AACjD;AACA;EACE,2BAA2B;EAC3B,uBAAuB;AACzB;AACA;EACE,QAAQ;EACR,YAAY;EACZ,YAAY;AACd;AACA;EACE,gBAAgB;AAClB;AACA;EACE,oHAAoH;EACpH,iBAAiB;EACjB,sBAAsB;EACtB,2CAA2C;EAC3C,wBAAwB;AAC1B;AACA;EACE,qBAAqB;AACvB;AACA;EACE,uGAAuG;EACvG,gDAAgD;AAClD;AACA;EACE,kBAAkB;EAClB,UAAU;EACV,0DAA0D;EAC1D,QAAQ;EACR,2BAA2B;EAC3B,mCAAmC;EACnC,2CAA2C;EAC3C,oCAAoC;EACpC,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,mDAAmD;EACnD,6MAA6M;AAC/M;AACA;EACE,qDAAqD;EACrD,uCAAuC;EACvC,gBAAgB;EAChB,kDAAkD;EAClD,eAAe;EACf,gBAAgB;EAChB,4EAA4E;EAC5E,8CAA8C;EAC9C,4CAA4C;EAC5C,gFAAgF;EAChF,uLAAuL;AACzL;AACA;EACE,kBAAkB;EAClB,iBAAiB;EACjB,yCAAyC;AAC3C;AACA;EACE,kBAAkB;EAClB,kBAAkB;EAClB,qBAAqB;EACrB,mBAAmB;EACnB,SAAS;EACT,UAAU;EACV,oBAAoB;EACpB,aAAa;EACb,mBAAmB;EACnB,gBAAgB;EAChB,wLAAwL;EACxL,4BAA4B;EAC5B,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,iBAAiB;EACjB,mCAAmC;EACnC,6BAA6B;EAC7B,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,2DAA2D;AAC7D;AACA;EACE,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,kDAAkD;EAClD,wBAAwB;EACxB,gDAAgD;EAChD,8CAA8C;EAC9C,2CAA2C;EAC3C,sCAAsC;EACtC,8DAA8D;EAC9D,0DAA0D;EAC1D,gGAAgG;EAChG,qDAAqD;EACrD,0CAA0C;EAC1C,0DAA0D;EAC1D,+CAA+C;EAC/C,wBAAwB;EACxB,yIAAyI;EACzI,uBAAuB;AACzB;AACA;EACE,oEAAoE;EACpE,kBAAkB;EAClB,kBAAkB;EAClB,MAAM;EACN,qBAAqB;AACvB;AACA;EACE,iDAAiD;EACjD,mDAAmD;EACnD,gLAAgL;AAClL;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,+CAA+C;AACjD;AACA;EACE;wEACsE;EACtE;wEACsE;EACtE,+DAA+D;EAC/D,YAAY;EACZ,2CAA2C;EAC3C,0CAA0C;AAC5C;AACA;EACE,4CAA4C;AAC9C;AACA;AACA;IACI,8DAA8D;AAClE;AACA;AACA;EACE,8DAA8D;AAChE;AACA;EACE,+DAA+D;AACjE;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,4CAA4C;AAC9C",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Similar as inputBorder but without active styles.\n */\n/**\n * Create a consistent border for an input element.\n * With Nextcloud 32+ there is no real border anymore but we use a box-shadow.\n */\n.nc-select.v-select.select .select__helper-text {\n display: flex;\n align-items: center;\n margin: 0;\n padding-block: 4px;\n padding-inline: var(--border-radius-element);\n color: var(--color-text-maxcontrast);\n font-size: var(--default-font-size);\n overflow-wrap: anywhere;\n}\n.nc-select.v-select.select .select__helper-text--error {\n color: var(--color-text-error);\n}\n.nc-select.v-select.select .select__helper-text--success {\n color: var(--color-text-success);\n}\n.nc-select.v-select.select .select__helper-text .select__helper-text-icon {\n margin-inline-end: 8px;\n}\n.nc-select.v-select.select {\n /* Custom vue-select CSS variables scoped to NcSelect */\n /* Search Input */\n --vs-search-input-color: var(--color-main-text);\n --vs-search-input-bg: var(--color-main-background);\n --vs-search-input-placeholder-color: var(--color-text-maxcontrast);\n /* Font */\n --vs-font-size: var(--default-font-size);\n --vs-line-height: var(--default-line-height);\n /* Disabled State */\n --vs-state-disabled-bg: var(--color-background-hover);\n --vs-state-disabled-color: var(--color-text-maxcontrast);\n --vs-state-disabled-controls-color: var(--color-text-maxcontrast);\n --vs-state-disabled-cursor: not-allowed;\n --vs-disabled-bg: var(--color-background-hover);\n --vs-disabled-color: var(--color-text-maxcontrast);\n --vs-disabled-cursor: not-allowed;\n /* Borders */\n --vs-border-color: var(--color-border-maxcontrast);\n --vs-border-width: var(--border-width-input, 2px) !important;\n --vs-border-style: solid;\n --vs-border-radius: var(--border-radius-element);\n /* Component Controls: Clear, Open Indicator */\n --vs-controls-color: var(--color-main-text);\n /* Selected */\n --vs-selected-bg: var(--color-background-hover);\n --vs-selected-color: var(--color-main-text);\n --vs-selected-border-color: var(--vs-border-color);\n --vs-selected-border-style: var(--vs-border-style);\n --vs-selected-border-width: var(--vs-border-width);\n /* Dropdown */\n --vs-dropdown-bg: var(--color-main-background);\n --vs-dropdown-color: var(--color-main-text);\n --vs-dropdown-z-index: 9999;\n --vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);\n /* Options */\n --vs-dropdown-option-padding: 8px 20px;\n /* Active State */\n --vs-dropdown-option--active-bg: var(--color-background-hover);\n --vs-dropdown-option--active-color: var(--color-main-text);\n /* Keyboard Focus State */\n --vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);\n /* Deselect State */\n --vs-dropdown-option--deselect-bg: var(--color-error);\n --vs-dropdown-option--deselect-color: #fff;\n /* Transitions */\n --vs-transition-duration: 0ms;\n /* Actions */\n --vs-actions-padding: 0 8px 0 8px;\n /* Override default vue-select styles */\n min-height: calc(var(--default-clickable-area) - 2 * var(--border-width-input, 2px));\n min-width: 260px;\n margin: 6px 0 var(--default-grid-baseline);\n}\n.nc-select.v-select.select.vs--open {\n --vs-border-width: var(--border-width-input-focused, 2px);\n}\n.nc-select.v-select.select .vs__selected {\n min-height: calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));\n min-width: 0;\n max-width: 100%;\n margin: calc(var(--default-grid-baseline) / 2);\n padding-block: 0;\n padding-inline: 12px 8px;\n border-radius: 16px !important;\n background: var(--color-primary-element-light);\n border: none;\n}\n.nc-select.v-select.select .vs__search {\n width: 100%;\n --input-padding-end: calc(var(--default-clickable-area) + var(--default-grid-baseline));\n border: none !important;\n margin: 0 !important;\n padding: 0 !important;\n height: auto !important;\n}\n.nc-select.v-select.select .vs__selected-options:has(.vs__selected) .vs__search .input-field__input + .input-field__label {\n --input-label-font-size: var(--font-size-small, 13px);\n line-height: 1.5;\n inset-block-start: calc(-1.5 * var(--input-label-font-size) / 2);\n font-weight: 500;\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: var(--default-grid-baseline);\n margin-inline: calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.nc-select.v-select.select:not(.vs--multiple) .vs__dropdown-toggle {\n padding: 0;\n overflow: visible;\n border: none !important;\n box-shadow: none !important;\n background: transparent;\n}\n.nc-select.v-select.select .vs__dropdown-toggle {\n position: relative;\n}\n.nc-select.v-select.select .vs__actions {\n position: absolute;\n z-index: 999;\n inset-inline-end: 0;\n top: 50%;\n transform: translateY(-50%);\n height: 100%;\n margin-block-start: 1px;\n display: flex;\n align-items: center;\n}\n.nc-select.v-select.select .vs__clear {\n margin-inline-end: 2px;\n}\n.nc-select.v-select.select.vs--open .vs__search .input-field__input {\n border-end-start-radius: 0 !important;\n border-end-end-radius: 0 !important;\n}\n.nc-select.v-select.select.vs--disabled .vs__clear,\n.nc-select.v-select.select.vs--disabled .vs__dropdown-toggle,\n.nc-select.v-select.select.vs--disabled .vs__open-indicator,\n.nc-select.v-select.select.vs--disabled .vs__open-indicator-button,\n.nc-select.v-select.select.vs--disabled .vs__search,\n.nc-select.v-select.select.vs--disabled .vs__selected {\n background-color: transparent;\n color: var(--color-text-maxcontrast);\n}\n.nc-select.v-select.select.vs--disabled .vs__dropdown-toggle {\n --input-border-box-shadow-light: 0 -1px var(--color-border-dark),\n \t0 0 0 1px color-mix(in srgb, var(--color-border-dark), 65% transparent);\n --input-border-box-shadow-dark: 0 1px var(--color-border-dark),\n \t0 0 0 1px color-mix(in srgb, var(--color-border-dark), 65% transparent);\n}\n.nc-select.v-select.select.vs--disabled .vs__clear,\n.nc-select.v-select.select.vs--disabled .vs__deselect {\n display: none;\n}\n.nc-select.v-select.select--no-wrap .vs__dropdown-toggle {\n overflow: hidden;\n}\n.nc-select.v-select.select--no-wrap .vs__selected-options {\n flex-wrap: nowrap;\n overflow: auto !important;\n min-width: unset;\n}\n.nc-select.v-select.select--no-wrap .vs__selected-options .vs__selected {\n min-width: unset;\n}\n.nc-select.v-select.select--drop-up.vs--open .vs__search .input-field__input {\n border-end-start-radius: var(--border-radius-element) !important;\n border-end-end-radius: var(--border-radius-element) !important;\n}\n.nc-select.v-select.select--drop-up.vs--open.vs--multiple .vs__dropdown-toggle {\n border-end-start-radius: var(--border-radius-element) !important;\n border-end-end-radius: var(--border-radius-element) !important;\n border-block-end-color: var(--color-main-text) !important;\n}\n.nc-select.v-select.select .vs__selected-options {\n min-height: unset;\n}\n.nc-select.v-select.select .vs__selected-options .vs__selected ~ .vs__search:has(.input-field__input[readonly]) {\n position: absolute;\n}\n.nc-select.v-select.select .vs__selected-options {\n padding: 0;\n border: none;\n overflow: visible;\n}\n.nc-select.v-select.select.vs--multiple {\n margin-inline: 1px;\n}\n.nc-select.v-select.select.vs--multiple .vs__dropdown-toggle {\n border: var(--border-width-input-focused, 2px) solid transparent;\n box-shadow: var(--input-border-box-shadow);\n padding-block: calc(var(--default-grid-baseline) * 1.5) 0;\n padding-inline: var(--default-grid-baseline) calc(var(--default-clickable-area) + var(--default-grid-baseline));\n overflow: visible;\n background: var(--color-main-background);\n}\n.nc-select.v-select.select.vs--multiple:has(.vs__clear) .vs__dropdown-toggle {\n padding-inline-end: calc(2 * var(--default-clickable-area));\n}\n.nc-select.v-select.select.vs--multiple.vs--open .vs__dropdown-toggle {\n box-shadow: none !important;\n border-color: var(--color-main-text);\n border-block-end-color: var(--color-border-maxcontrast);\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n outline: 2px solid var(--color-main-background);\n}\n.nc-select.v-select.select.vs--multiple .vs__search .input-field__input {\n box-shadow: none !important;\n background: transparent;\n}\n.nc-select.v-select.select.vs--multiple .vs__search {\n width: 0;\n flex-grow: 1;\n min-width: 0;\n}\n.nc-select.v-select.select.vs--multiple.select--no-wrap .vs__dropdown-toggle {\n overflow: hidden;\n}\n.nc-select.v-select.select.vs--multiple.select--no-wrap .vs__actions {\n background: linear-gradient(90deg, transparent, var(--color-main-background) 10%, var(--color-main-background) 100%);\n margin-block: 0px;\n margin-inline-end: 2px;\n border-radius: var(--border-radius-element);\n height: calc(100% - 6px);\n}\n.nc-select.v-select.select.vs--multiple .vs__search .input-field {\n margin-block-start: 0;\n}\n.nc-select.v-select.select.vs--multiple .vs__search .input-field__main-wrapper {\n height: calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));\n margin: calc(var(--default-grid-baseline) / 2) 0;\n}\n.nc-select.v-select.select.vs--multiple .select__label {\n position: absolute;\n z-index: 1;\n inset-inline-start: var(--border-width-input-focused, 2px);\n top: 50%;\n transform: translateY(-50%);\n font-size: var(--default-font-size);\n margin-inline: var(--border-radius-element);\n color: var(--color-text-maxcontrast);\n pointer-events: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: calc(100% - var(--clickable-area-large));\n transition: top var(--animation-quick), transform var(--animation-quick), font-size var(--animation-quick), font-weight var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.nc-select.v-select.select.vs--multiple:has(.vs__selected) .select__label, .nc-select.v-select.select.vs--multiple.vs--open .select__label {\n --input-label-font-size: var(--font-size-small, 13px);\n font-size: var(--input-label-font-size);\n line-height: 1.5;\n top: calc(-1.5 * var(--input-label-font-size) / 2);\n transform: none;\n font-weight: 500;\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: var(--default-grid-baseline);\n margin-inline: calc(var(--border-radius-element) - var(--default-grid-baseline));\n transition: top var(--animation-quick), transform var(--animation-quick), font-size var(--animation-quick), font-weight var(--animation-quick), background-color var(--animation-quick);\n}\n.nc-select.v-select.select.vs--single .vs__selected-options {\n position: relative;\n flex-wrap: nowrap;\n min-height: var(--default-clickable-area);\n}\n.nc-select.v-select.select.vs--single .vs__selected {\n position: absolute;\n inset-block: 6px 0;\n inset-inline-start: 0;\n inset-inline-end: 0;\n margin: 0;\n z-index: 2;\n pointer-events: none;\n display: flex;\n align-items: center;\n padding-block: 0;\n padding-inline: calc(var(--border-radius-element) + var(--border-width-input-focused, 2px)) var(--input-padding-end, calc(var(--default-clickable-area) + var(--default-grid-baseline)));\n background: unset !important;\n border: none;\n border-radius: 0;\n height: unset;\n min-height: unset;\n font-size: var(--default-font-size);\n color: var(--color-main-text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.nc-select.v-select.select.vs--single:has(.input-field--label-outside) .vs__selected {\n inset-block-start: 0;\n}\n.nc-select.v-select.select.vs--single:has(.vs__clear) .vs__selected {\n padding-inline-end: calc(2 * var(--default-clickable-area));\n}\n.nc-select.v-select.select.vs--single.vs--loading .vs__selected, .nc-select.v-select.select.vs--single.vs--open .vs__selected {\n opacity: 0.4;\n}\n.nc-select.v-select.select.vs--single.vs--searching .vs__selected {\n display: none;\n}\n.nc-select__dropdown.vs__dropdown-menu {\n --vs-border-color: var(--color-border-maxcontrast);\n --vs-border-style: solid;\n --vs-border-radius: var(--border-radius-element);\n --vs-dropdown-bg: var(--color-main-background);\n --vs-dropdown-color: var(--color-main-text);\n --vs-dropdown-option-padding: 8px 20px;\n --vs-dropdown-option--active-bg: var(--color-background-hover);\n --vs-dropdown-option--active-color: var(--color-main-text);\n --vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--color-border-maxcontrast);\n --vs-dropdown-option--deselect-bg: var(--color-error);\n --vs-dropdown-option--deselect-color: #fff;\n border-width: var(--border-width-input-focused) !important;\n border-color: var(--color-main-text) !important;\n outline: none !important;\n box-shadow: -2px 0 0 var(--color-main-background), 0 2px 0 var(--color-main-background), 2px 0 0 var(--color-main-background), !important;\n padding: 4px !important;\n}\n.nc-select__dropdown.vs__dropdown-menu--floating {\n /* Fallback styles overidden by programmatically set inline styles */\n width: max-content;\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n}\n.nc-select__dropdown.vs__dropdown-menu--floating-placement-top {\n border-radius: var(--vs-border-radius) !important;\n border-top-style: var(--vs-border-style) !important;\n box-shadow: 0 -2px 0 var(--color-main-background), -2px 0 0 var(--color-main-background), 0 2px 0 var(--color-main-background), 2px 0 0 var(--color-main-background), !important;\n}\n.nc-select__dropdown.vs__dropdown-menu .vs__dropdown-option {\n border-radius: 6px !important;\n}\n.nc-select__dropdown.vs__dropdown-menu .vs__no-options {\n color: var(--color-text-maxcontrast) !important;\n}\n.nc-select.v-select.select .vs__dropdown-toggle {\n --input-border-box-shadow-light: 0 -1px var(--vs-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);\n --input-border-box-shadow-dark: 0 -1px var(--vs-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--vs-border-color), 65% transparent);\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n border: none;\n border-radius: var(--border-radius-element);\n box-shadow: var(--input-border-box-shadow);\n}\n.nc-select.v-select.select:not(.vs--disabled) .vs__dropdown-toggle:hover {\n box-shadow: 0 0 0 1px var(--vs-border-color);\n}\n@media (prefers-color-scheme: dark) {\n.nc-select.v-select.select .vs__dropdown-toggle {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n}\n[data-theme-dark] .nc-select.v-select.select .vs__dropdown-toggle {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n[data-theme-light] .nc-select.v-select.select .vs__dropdown-toggle {\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n}\n.select--legacy.nc-select.v-select.select .vs__dropdown-toggle {\n box-shadow: 0 0 0 1px var(--vs-border-color);\n}\n.select--legacy.nc-select.v-select.select .vs__dropdown-toggle:hover:not([disabled]) {\n box-shadow: 0 0 0 2px var(--vs-border-color);\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},89582(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"\n/* Ensure sufficient height for the user avatar and status */\n.nc-select-users.vs--single[data-v-dbcc7078] .input-field__main-wrapper {\n\t--default-clickable-area: 42px;\n\t/* Default clickable area + 2*4px padding of the input */\ninput {\n\t\tpadding-block: 4px !important;\n}\n}\n.nc-select-users.vs--multiple[data-v-dbcc7078] .vs__selected {\n\tpadding-inline: 0 5px !important;\n}\n","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcSelectUsers.css"],names:[],mappings:";AACA,4DAA4D;AAC5D;CACC,8BAA8B;CAC9B,wDAAwD;AACzD;EACE,6BAA6B;AAC/B;AACA;AACA;CACC,gCAAgC;AACjC",sourcesContent:["\n/* Ensure sufficient height for the user avatar and status */\n.nc-select-users.vs--single[data-v-dbcc7078] .input-field__main-wrapper {\n\t--default-clickable-area: 42px;\n\t/* Default clickable area + 2*4px padding of the input */\ninput {\n\t\tpadding-block: 4px !important;\n}\n}\n.nc-select-users.vs--multiple[data-v-dbcc7078] .vs__selected {\n\tpadding-inline: 0 5px !important;\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},49070(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-d327fb49] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Similar as inputBorder but without active styles.\n */\n/**\n * Create a consistent border for an input element.\n * With Nextcloud 32+ there is no real border anymore but we use a box-shadow.\n */\n.textarea[data-v-d327fb49] {\n --input-border-color: var(--color-border-maxcontrast);\n --input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));\n position: relative;\n width: 100%;\n border-radius: var(--border-radius-element);\n margin-block-start: 6px;\n resize: vertical;\n}\n.textarea--disabled[data-v-d327fb49] {\n opacity: 0.7;\n filter: saturate(0.7);\n}\n.textarea__main-wrapper[data-v-d327fb49] {\n padding: var(--border-width-input-focused, 2px);\n position: relative;\n}\n.textarea__input[data-v-d327fb49] {\n margin: 0;\n padding-block: var(--border-radius-element);\n padding-inline: 10px;\n width: 100%;\n font-size: var(--default-font-size);\n text-overflow: ellipsis;\n cursor: pointer;\n min-height: calc(var(--default-clickable-area) * 2);\n min-width: calc(var(--default-clickable-area) * 2);\n max-width: 100%;\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n --input-border-box-shadow-light: 0 -1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow-dark: 0 1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n border: none;\n border-radius: var(--border-radius-element);\n box-shadow: var(--input-border-box-shadow);\n}\n.textarea__input[data-v-d327fb49]:hover:not([disabled]) {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n@media (prefers-color-scheme: dark) {\n.textarea__input .textarea__input[data-v-d327fb49] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n}\n[data-theme-dark] .textarea__input[data-v-d327fb49] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n[data-theme-light] .textarea__input[data-v-d327fb49] {\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n}\n.textarea--legacy .textarea__input[data-v-d327fb49] {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n.textarea--legacy .textarea__input[data-v-d327fb49]:hover:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color);\n}\n.textarea__input[data-v-d327fb49]:focus-within:not([disabled]), .textarea__input[data-v-d327fb49]:active:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color), 0 0 0 4px var(--color-main-background) !important;\n}\n.textarea__input[data-v-d327fb49]:active:not([disabled]), .textarea__input[data-v-d327fb49]:focus:not([disabled]) {\n --input-border-width-offset: 0px;\n --input-border-color: var(--color-main-text);\n}\n.textarea__input[data-v-d327fb49]:not(:focus, .textarea__input--label-outside)::placeholder {\n opacity: 0;\n}\n.textarea__input[data-v-d327fb49]:focus {\n cursor: text;\n}\n.textarea__input[data-v-d327fb49]:disabled {\n cursor: default;\n}\n.textarea__input[data-v-d327fb49]:focus-visible {\n box-shadow: unset !important;\n}\n.textarea__input--success[data-v-d327fb49] {\n --input-border-color: var(--color-border-success, var(--color-success)) !important;\n}\n.textarea__input--success[data-v-d327fb49]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.textarea__input--error[data-v-d327fb49] {\n --input-border-color: var(--color-border-error, var(--color-error)) !important;\n}\n.textarea__input--error[data-v-d327fb49]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.textarea__label[data-v-d327fb49] {\n position: absolute;\n margin-inline: 12px 0;\n max-width: fit-content;\n inset-block-start: 11px;\n inset-inline: 0;\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.textarea__input:focus + .textarea__label[data-v-d327fb49], .textarea__input:not(:placeholder-shown) + .textarea__label[data-v-d327fb49] {\n inset-block-start: -10px;\n line-height: 1.5;\n font-size: 13px;\n font-weight: var(--font-weight-element, 500);\n color: var(--color-main-text);\n background-color: var(--color-main-background);\n padding-inline: 4px;\n margin-inline-start: 8px;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.textarea__helper-text-message[data-v-d327fb49] {\n padding-block: 4px;\n display: flex;\n align-items: center;\n}\n.textarea__helper-text-message__icon[data-v-d327fb49] {\n margin-inline-end: 8px;\n}\n.textarea__helper-text-message--error[data-v-d327fb49] {\n color: var(--color-error-text);\n}\n.textarea__helper-text-message--success[data-v-d327fb49] {\n color: var(--color-success-text);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcTextArea.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;;EAEE;AACF;;;EAGE;AACF;EACE,qDAAqD;EACrD,0GAA0G;EAC1G,kBAAkB;EAClB,WAAW;EACX,2CAA2C;EAC3C,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,YAAY;EACZ,qBAAqB;AACvB;AACA;EACE,+CAA+C;EAC/C,kBAAkB;AACpB;AACA;EACE,SAAS;EACT,2CAA2C;EAC3C,oBAAoB;EACpB,WAAW;EACX,mCAAmC;EACnC,uBAAuB;EACvB,eAAe;EACf,mDAAmD;EACnD,kDAAkD;EAClD,eAAe;EACf,8CAA8C;EAC9C,6BAA6B;EAC7B;2EACyE;EACzE;2EACyE;EACzE,+DAA+D;EAC/D,YAAY;EACZ,2CAA2C;EAC3C,0CAA0C;AAC5C;AACA;EACE,+CAA+C;AACjD;AACA;AACA;IACI,8DAA8D;AAClE;AACA;AACA;EACE,8DAA8D;AAChE;AACA;EACE,+DAA+D;AACjE;AACA;EACE,+CAA+C;AACjD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,kGAAkG;AACpG;AACA;EACE,gCAAgC;EAChC,4CAA4C;AAC9C;AACA;EACE,UAAU;AACZ;AACA;EACE,YAAY;AACd;AACA;EACE,eAAe;AACjB;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,kFAAkF;AACpF;AACA;EACE,iIAAiI;AACnI;AACA;EACE,8EAA8E;AAChF;AACA;EACE,iIAAiI;AACnI;AACA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,sBAAsB;EACtB,uBAAuB;EACvB,eAAe;EACf,oCAAoC;EACpC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,oBAAoB;EACpB,kNAAkN;AACpN;AACA;EACE,wBAAwB;EACxB,gBAAgB;EAChB,eAAe;EACf,4CAA4C;EAC5C,6BAA6B;EAC7B,8CAA8C;EAC9C,mBAAmB;EACnB,wBAAwB;EACxB,mJAAmJ;AACrJ;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,8BAA8B;AAChC;AACA;EACE,gCAAgC;AAClC",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-d327fb49] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Similar as inputBorder but without active styles.\n */\n/**\n * Create a consistent border for an input element.\n * With Nextcloud 32+ there is no real border anymore but we use a box-shadow.\n */\n.textarea[data-v-d327fb49] {\n --input-border-color: var(--color-border-maxcontrast);\n --input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));\n position: relative;\n width: 100%;\n border-radius: var(--border-radius-element);\n margin-block-start: 6px;\n resize: vertical;\n}\n.textarea--disabled[data-v-d327fb49] {\n opacity: 0.7;\n filter: saturate(0.7);\n}\n.textarea__main-wrapper[data-v-d327fb49] {\n padding: var(--border-width-input-focused, 2px);\n position: relative;\n}\n.textarea__input[data-v-d327fb49] {\n margin: 0;\n padding-block: var(--border-radius-element);\n padding-inline: 10px;\n width: 100%;\n font-size: var(--default-font-size);\n text-overflow: ellipsis;\n cursor: pointer;\n min-height: calc(var(--default-clickable-area) * 2);\n min-width: calc(var(--default-clickable-area) * 2);\n max-width: 100%;\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n --input-border-box-shadow-light: 0 -1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow-dark: 0 1px var(--input-border-color),\n \t0 0 0 1px color-mix(in srgb, var(--input-border-color), 65% transparent);\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n border: none;\n border-radius: var(--border-radius-element);\n box-shadow: var(--input-border-box-shadow);\n}\n.textarea__input[data-v-d327fb49]:hover:not([disabled]) {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n@media (prefers-color-scheme: dark) {\n.textarea__input .textarea__input[data-v-d327fb49] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n}\n[data-theme-dark] .textarea__input[data-v-d327fb49] {\n --input-border-box-shadow: var(--input-border-box-shadow-dark);\n}\n[data-theme-light] .textarea__input[data-v-d327fb49] {\n --input-border-box-shadow: var(--input-border-box-shadow-light);\n}\n.textarea--legacy .textarea__input[data-v-d327fb49] {\n box-shadow: 0 0 0 1px var(--input-border-color);\n}\n.textarea--legacy .textarea__input[data-v-d327fb49]:hover:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color);\n}\n.textarea__input[data-v-d327fb49]:focus-within:not([disabled]), .textarea__input[data-v-d327fb49]:active:not([disabled]) {\n box-shadow: 0 0 0 2px var(--input-border-color), 0 0 0 4px var(--color-main-background) !important;\n}\n.textarea__input[data-v-d327fb49]:active:not([disabled]), .textarea__input[data-v-d327fb49]:focus:not([disabled]) {\n --input-border-width-offset: 0px;\n --input-border-color: var(--color-main-text);\n}\n.textarea__input[data-v-d327fb49]:not(:focus, .textarea__input--label-outside)::placeholder {\n opacity: 0;\n}\n.textarea__input[data-v-d327fb49]:focus {\n cursor: text;\n}\n.textarea__input[data-v-d327fb49]:disabled {\n cursor: default;\n}\n.textarea__input[data-v-d327fb49]:focus-visible {\n box-shadow: unset !important;\n}\n.textarea__input--success[data-v-d327fb49] {\n --input-border-color: var(--color-border-success, var(--color-success)) !important;\n}\n.textarea__input--success[data-v-d327fb49]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.textarea__input--error[data-v-d327fb49] {\n --input-border-color: var(--color-border-error, var(--color-error)) !important;\n}\n.textarea__input--error[data-v-d327fb49]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.textarea__label[data-v-d327fb49] {\n position: absolute;\n margin-inline: 12px 0;\n max-width: fit-content;\n inset-block-start: 11px;\n inset-inline: 0;\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.textarea__input:focus + .textarea__label[data-v-d327fb49], .textarea__input:not(:placeholder-shown) + .textarea__label[data-v-d327fb49] {\n inset-block-start: -10px;\n line-height: 1.5;\n font-size: 13px;\n font-weight: var(--font-weight-element, 500);\n color: var(--color-main-text);\n background-color: var(--color-main-background);\n padding-inline: 4px;\n margin-inline-start: 8px;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.textarea__helper-text-message[data-v-d327fb49] {\n padding-block: 4px;\n display: flex;\n align-items: center;\n}\n.textarea__helper-text-message__icon[data-v-d327fb49] {\n margin-inline-end: 8px;\n}\n.textarea__helper-text-message--error[data-v-d327fb49] {\n color: var(--color-error-text);\n}\n.textarea__helper-text-message--success[data-v-d327fb49] {\n color: var(--color-success-text);\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},28940(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-881a79fb] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.user-status-icon[data-v-881a79fb] {\n --user-status-color-online: #2D7B41;\n --user-status-color-busy: #DB0606;\n --user-status-color-away: #C88800;\n --user-status-color-offline: #6B6B6B;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.user-status-icon--invisible[data-v-881a79fb] {\n filter: var(--background-invert-if-dark);\n}\n.user-status-icon[data-v-881a79fb] svg {\n width: 100%;\n height: 100%;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/NcUserStatusIcon.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,mCAAmC;EACnC,iCAAiC;EACjC,iCAAiC;EACjC,oCAAoC;EACpC,aAAa;EACb,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,wCAAwC;AAC1C;AACA;EACE,WAAW;EACX,YAAY;AACd",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-881a79fb] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.user-status-icon[data-v-881a79fb] {\n --user-status-color-online: #2D7B41;\n --user-status-color-busy: #DB0606;\n --user-status-color-away: #C88800;\n --user-status-color-offline: #6B6B6B;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.user-status-icon--invisible[data-v-881a79fb] {\n filter: var(--background-invert-if-dark);\n}\n.user-status-icon[data-v-881a79fb] svg {\n width: 100%;\n height: 100%;\n}"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},75440(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,'@charset "UTF-8";\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_a4wnN {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._externalLink_ePhUZ {\n text-decoration: underline;\n}\n._externalLink_decorated_qJgcV::after {\n content: " ↗";\n}',"",{version:3,sources:["webpack://./node_modules/@nextcloud/sharing/node_modules/@nextcloud/vue/dist/assets/autolink.css"],names:[],mappings:"AAAA,gBAAgB;AAChB;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,aAAa;AACf",sourcesContent:['@charset "UTF-8";\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_a4wnN {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._externalLink_ePhUZ {\n text-decoration: underline;\n}\n._externalLink_decorated_qJgcV::after {\n content: " ↗";\n}'],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},94188(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".avatar-stack[data-v-a2664a5e]{display:flex;align-items:center}.avatar-stack__item[data-v-a2664a5e]{display:flex;border-radius:50%;box-shadow:0 0 0 2px var(--color-main-background);position:relative}.avatar-stack__item[data-v-a2664a5e]:not(:first-child){margin-inline-start:-12px}.avatar-stack__overflow[data-v-a2664a5e]{margin-inline-start:4px;color:var(--color-text-maxcontrast);font-size:12px}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/AvatarStack.vue"],names:[],mappings:"AACA,+BACC,YAAA,CACA,kBAAA,CAGA,qCACC,YAAA,CACA,iBAAA,CAIA,iDAAA,CAGA,iBAAA,CAEA,uDACC,yBAAA,CAIF,yCACC,uBAAA,CACA,mCAAA,CACA,cAAA",sourcesContent:["\n.avatar-stack {\n\tdisplay: flex;\n\talign-items: center;\n\n\t// Wrapper we own, so the ring cannot be overridden by the avatar's own styles.\n\t&__item {\n\t\tdisplay: flex;\n\t\tborder-radius: 50%;\n\t\t// Ring in the main background colour separates overlapping avatars. Using\n\t\t// a box-shadow (not a border) keeps the avatar exactly 32px, matching the\n\t\t// avatars in the other entries.\n\t\tbox-shadow: 0 0 0 2px var(--color-main-background);\n\t\t// Each avatar sits under the previous one (first on top); z-index is set\n\t\t// inline, descending, so the ring overlaps correctly.\n\t\tposition: relative;\n\n\t\t&:not(:first-child) {\n\t\t\tmargin-inline-start: -12px;\n\t\t}\n\t}\n\n\t&__overflow {\n\t\tmargin-inline-start: 4px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tfont-size: 12px;\n\t}\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},28069(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".share-expiry-time[data-v-c9199db0]{display:inline-flex;align-items:center;justify-content:center}.share-expiry-time .hint-icon[data-v-c9199db0]{padding:0;margin:0;width:24px;height:24px}.hint-heading[data-v-c9199db0]{text-align:center;font-size:1rem;margin-top:8px;padding-bottom:8px;margin-bottom:0;border-bottom:1px solid var(--color-border)}.hint-body[data-v-c9199db0]{padding:var(--border-radius-element);max-width:300px}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/ShareExpiryTime.vue"],names:[],mappings:"AACA,oCACI,mBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,+CACI,SAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CAIR,+BACI,iBAAA,CACA,cAAA,CACA,cAAA,CACA,kBAAA,CACA,eAAA,CACA,2CAAA,CAGJ,4BACI,oCAAA,CACA,eAAA",sourcesContent:["\n.share-expiry-time {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n .hint-icon {\n padding: 0;\n margin: 0;\n width: 24px;\n height: 24px;\n }\n}\n\n.hint-heading {\n text-align: center;\n font-size: 1rem;\n margin-top: 8px;\n padding-bottom: 8px;\n margin-bottom: 0;\n border-bottom: 1px solid var(--color-border);\n}\n\n.hint-body {\n padding: var(--border-radius-element);\n max-width: 300px;\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},40749(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".sharing-entry[data-v-fa3f3612]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-fa3f3612]{padding:8px;padding-inline-start:10px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;flex:1 0;min-width:0}.sharing-entry__summary__desc[data-v-fa3f3612]{display:inline-block;padding-bottom:0;line-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sharing-entry__summary__desc p[data-v-fa3f3612],.sharing-entry__summary__desc small[data-v-fa3f3612]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-fa3f3612]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntry.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,sBAAA,CACA,QAAA,CACA,WAAA,CAEA,+CACC,oBAAA,CACA,gBAAA,CACA,iBAAA,CACA,kBAAA,CACA,eAAA,CACA,sBAAA,CAEA,sGAEC,mCAAA,CAGD,sDACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: flex-start;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\n\t\t&__desc {\n\t\t\tdisplay: inline-block;\n\t\t\tpadding-bottom: 0;\n\t\t\tline-height: 1.2em;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\tp,\n\t\t\tsmall {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&-unique {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\t\t}\n\t}\n\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},29199(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".sharing-entry[data-v-731a9650]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-731a9650]{display:flex;flex-direction:column;justify-content:space-between;padding:8px;padding-inline-start:10px;line-height:1.2em}.sharing-entry__desc p[data-v-731a9650]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-731a9650]{margin-inline-start:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryInherited.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,WAAA,CACA,sCACC,YAAA,CACA,qBAAA,CACA,6BAAA,CACA,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,wCACC,mCAAA,CAGF,yCACC,wBAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\theight: 44px;\n\t&__desc {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto;\n\t}\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},76459(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".sharing-entry__internal .avatar-external[data-v-6c4cb23b]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}.sharing-entry__internal .icon-checkmark-color[data-v-6c4cb23b]{opacity:1;color:var(--color-border-success)}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryInternal.vue"],names:[],mappings:"AAEC,2DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA,CAED,gEACC,SAAA,CACA,iCAAA",sourcesContent:["\n.sharing-entry__internal {\n\t.avatar-external {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n\t.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-border-success);\n\t}\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},58356(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".sharing-entry[data-v-11cd6c4c]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-11cd6c4c]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0;align-items:center}.sharing-entry__desc[data-v-11cd6c4c]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-11cd6c4c]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-11cd6c4c]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry__actions[data-v-11cd6c4c]{display:flex;align-items:center;margin-inline-start:auto}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-11cd6c4c]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-11cd6c4c] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-11cd6c4c]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-11cd6c4c]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-11cd6c4c],.sharing-entry .action-item~.sharing-entry__loading[data-v-11cd6c4c]{margin-inline-start:0}.sharing-entry__copy-icon--success[data-v-11cd6c4c]{color:var(--color-border-success)}.qr-code-dialog[data-v-11cd6c4c]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-11cd6c4c]{width:100%;height:auto}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryLink.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAEA,yCACC,WAAA,CACA,yBAAA,CACA,YAAA,CACA,6BAAA,CACA,QAAA,CACA,WAAA,CACA,kBAAA,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAIF,yCACC,YAAA,CACA,kBAAA,CACA,wBAAA,CAID,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,oDACC,iCAAA,CAKF,iCACC,YAAA,CACA,UAAA,CACA,sBAAA,CAEA,sCACC,UAAA,CACA,WAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&__summary {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tflex: 1 0;\n\t\tmin-width: 0;\n\t\talign-items: center;\n\t}\n\n\t\t&__desc {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tline-height: 1.2em;\n\n\t\t\tp {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t}\n\n\t\t\t&__title {\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\t\t}\n\n\t\t&__actions {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmargin-inline-start: auto;\n\t\t}\n\n\t&:not(.sharing-entry--share) &__actions {\n\t\t.new-share-link {\n\t\t\tborder-top: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t:deep(.avatar-link-share) {\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t.sharing-entry__action--public-upload {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__loading {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t\tmargin: 0;\n\t\tpadding: 14px;\n\t\tmargin-inline-start: auto;\n\t}\n\n\t// put menus to the left\n\t// but only the first one\n\t.action-item {\n\n\t\t~.action-item,\n\t\t~.sharing-entry__loading {\n\t\t\tmargin-inline-start: 0;\n\t\t}\n\t}\n\n\t&__copy-icon--success {\n\t\tcolor: var(--color-border-success);\n\t}\n}\n\n// styling for the qr-code container\n.qr-code-dialog {\n\tdisplay: flex;\n\twidth: 100%;\n\tjustify-content: center;\n\n\t&__img {\n\t\twidth: 100%;\n\t\theight: auto;\n\t}\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},20569(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".share-select[data-v-839566a2]{display:block}.share-select[data-v-839566a2] .action-item__menutoggle{color:var(--color-primary-element) !important;font-size:12.5px !important;height:auto !important;min-height:auto !important}.share-select[data-v-839566a2] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-839566a2] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-839566a2] .action-item__menutoggle .button-vue__wrapper{flex-direction:row-reverse !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue"],names:[],mappings:"AACA,+BACC,aAAA,CAIA,wDACC,6CAAA,CACA,2BAAA,CACA,sBAAA,CACA,0BAAA,CAEA,0EACC,6BAAA,CAGD,0EACC,sBAAA,CACA,0BAAA,CACA,qBAAA,CACA,yBAAA,CAGD,6EAEC,qCAAA",sourcesContent:["\n.share-select {\n\tdisplay: block;\n\n\t// TODO: NcActions should have a slot for custom trigger button like NcPopover\n\t// Overrider NcActionms button to make it small\n\t:deep(.action-item__menutoggle) {\n\t\tcolor: var(--color-primary-element) !important;\n\t\tfont-size: 12.5px !important;\n\t\theight: auto !important;\n\t\tmin-height: auto !important;\n\n\t\t.button-vue__text {\n\t\t\tfont-weight: normal !important;\n\t\t}\n\n\t\t.button-vue__icon {\n\t\t\theight: 24px !important;\n\t\t\tmin-height: 24px !important;\n\t\t\twidth: 24px !important;\n\t\t\tmin-width: 24px !important;\n\t\t}\n\n\t\t.button-vue__wrapper {\n\t\t\t// Emulate NcButton's alignment=center-reverse\n\t\t\tflex-direction: row-reverse !important;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},9654(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".sharing-entry[data-v-5032cf1e]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-5032cf1e]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-5032cf1e]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-5032cf1e]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-5032cf1e]{margin-inline-start:auto !important}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingEntrySimple.vue"],names:[],mappings:"AACA,gCACC,YAAA,CACA,kBAAA,CACA,eAAA,CACA,sCACC,WAAA,CACA,yBAAA,CACA,iBAAA,CACA,iBAAA,CACA,QAAA,CACA,WAAA,CACA,wCACC,mCAAA,CAGF,uCACC,kBAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CAED,yCACC,mCAAA",sourcesContent:["\n.sharing-entry {\n\tdisplay: flex;\n\talign-items: center;\n\tmin-height: 44px;\n\t&__desc {\n\t\tpadding: 8px;\n\t\tpadding-inline-start: 10px;\n\t\tline-height: 1.2em;\n\t\tposition: relative;\n\t\tflex: 1 1;\n\t\tmin-width: 0;\n\t\tp {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\t&__title {\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tmax-width: inherit;\n\t}\n\t&__actions {\n\t\tmargin-inline-start: auto !important;\n\t}\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},24992(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".sharing-search{display:flex;flex-direction:column;margin-bottom:4px}.sharing-search label[for=sharing-search-input]{margin-bottom:2px}.sharing-search__input{width:100%;margin:10px 0}.vs__dropdown-menu span[lookup] .avatardiv{background-image:var(--icon-search-white);background-repeat:no-repeat;background-position:center;background-color:var(--color-text-maxcontrast) !important}.vs__dropdown-menu span[lookup] .avatardiv .avatardiv__initials-wrapper{display:none}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SharingInput.vue"],names:[],mappings:"AACA,gBACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,gDACC,iBAAA,CAGD,uBACC,UAAA,CACA,aAAA,CAOA,2CACC,yCAAA,CACA,2BAAA,CACA,0BAAA,CACA,yDAAA,CACA,wEACC,YAAA",sourcesContent:['\n.sharing-search {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: 4px;\n\n\tlabel[for="sharing-search-input"] {\n\t\tmargin-bottom: 2px;\n\t}\n\n\t&__input {\n\t\twidth: 100%;\n\t\tmargin: 10px 0;\n\t}\n}\n\n.vs__dropdown-menu {\n\t// properly style the lookup entry\n\tspan[lookup] {\n\t\t.avatardiv {\n\t\t\tbackground-image: var(--icon-search-white);\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position: center;\n\t\t\tbackground-color: var(--color-text-maxcontrast) !important;\n\t\t\t.avatardiv__initials-wrapper {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},84452(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".unified-share[data-v-34ca7828] .sharing-entry{min-height:52px}.unified-share__recipient[data-v-34ca7828]{padding-inline-start:24px}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/UnifiedShareEntry.vue"],names:[],mappings:"AAGC,+CACC,eAAA,CAGD,2CACC,yBAAA",sourcesContent:["\n.unified-share {\n\t// Unify every share row to 52px.\n\t:deep(.sharing-entry) {\n\t\tmin-height: 52px;\n\t}\n\n\t&__recipient {\n\t\tpadding-inline-start: 24px;\n\t}\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},26429(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".share-skeleton__row[data-v-79cf9383]{display:flex;align-items:center;gap:8px;min-height:52px}.share-skeleton__avatar[data-v-79cf9383]{flex:0 0 auto;width:32px;height:32px;border-radius:50%}.share-skeleton__lines[data-v-79cf9383]{display:flex;flex-direction:column;gap:6px;flex:1 1 auto}.share-skeleton__line[data-v-79cf9383]{height:12px;border-radius:6px}.share-skeleton__line--title[data-v-79cf9383]{width:40%}.share-skeleton__line--subtitle[data-v-79cf9383]{width:25%}.share-skeleton__avatar[data-v-79cf9383],.share-skeleton__line[data-v-79cf9383]{background-color:var(--color-background-dark);animation:share-skeleton-pulse-79cf9383 1.5s ease-in-out infinite}@keyframes share-skeleton-pulse-79cf9383{0%,100%{opacity:1}50%{opacity:.5}}@media(prefers-reduced-motion: reduce){.share-skeleton__avatar[data-v-79cf9383],.share-skeleton__line[data-v-79cf9383]{animation:none}}","",{version:3,sources:["webpack://./apps/files_sharing/src/components/UnifiedShareListSkeleton.vue"],names:[],mappings:"AAEC,sCACC,YAAA,CACA,kBAAA,CACA,OAAA,CACA,eAAA,CAGD,yCACC,aAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CAGD,wCACC,YAAA,CACA,qBAAA,CACA,OAAA,CACA,aAAA,CAGD,uCACC,WAAA,CACA,iBAAA,CAEA,8CACC,SAAA,CAGD,iDACC,SAAA,CAIF,gFAEC,6CAAA,CACA,iEAAA,CAIF,yCACC,QACC,SAAA,CAED,IACC,UAAA,CAAA,CAIF,uCACC,gFAEC,cAAA,CAAA",sourcesContent:["\n.share-skeleton {\n\t&__row {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 8px;\n\t\tmin-height: 52px;\n\t}\n\n\t&__avatar {\n\t\tflex: 0 0 auto;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tborder-radius: 50%;\n\t}\n\n\t&__lines {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 6px;\n\t\tflex: 1 1 auto;\n\t}\n\n\t&__line {\n\t\theight: 12px;\n\t\tborder-radius: 6px;\n\n\t\t&--title {\n\t\t\twidth: 40%;\n\t\t}\n\n\t\t&--subtitle {\n\t\t\twidth: 25%;\n\t\t}\n\t}\n\n\t&__avatar,\n\t&__line {\n\t\tbackground-color: var(--color-background-dark);\n\t\tanimation: share-skeleton-pulse 1.5s ease-in-out infinite;\n\t}\n}\n\n@keyframes share-skeleton-pulse {\n\t0%, 100% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0.5;\n\t}\n}\n\n@media (prefers-reduced-motion: reduce) {\n\t.share-skeleton__avatar,\n\t.share-skeleton__line {\n\t\tanimation: none;\n\t}\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},23716(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".sharingTabDetailsView[data-v-1e0a769c]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-1e0a769c]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-1e0a769c]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-1e0a769c]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-1e0a769c]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-1e0a769c]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-1e0a769c]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-1e0a769c]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-1e0a769c]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-1e0a769c] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-1e0a769c] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-1e0a769c] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-1e0a769c]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-1e0a769c]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-1e0a769c]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-1e0a769c],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-1e0a769c]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-1e0a769c]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-1e0a769c] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-1e0a769c]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-1e0a769c]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-1e0a769c]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-1e0a769c]{width:100%;display:flex;position:sticky;bottom:0;flex-direction:column;justify-content:space-between;align-items:flex-start;background:linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background))}.sharingTabDetailsView__footer .button-group[data-v-1e0a769c]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-1e0a769c]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-1e0a769c]:first-child{margin-inline-start:0}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingDetailsTab.vue"],names:[],mappings:"AACA,wCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,aAAA,CACA,iBAAA,CACA,WAAA,CACA,eAAA,CAEA,gDACC,YAAA,CACA,kBAAA,CACA,qBAAA,CACA,WAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CAEA,wDACC,cAAA,CACA,yBAAA,CAMH,iDACC,iBAAA,CACA,eAAA,CACA,aAAA,CACA,WAAA,CACA,uBAAA,CAGD,2DACC,YAAA,CACA,sBAAA,CACA,UAAA,CACA,aAAA,CACA,eAAA,CAEA,+DACC,UAAA,CAEA,oEACC,UAAA,CAEA,sFACC,kBAAA,CACA,sBAAA,CACA,YAAA,CAGD,+EACC,YAAA,CACA,qBAAA,CAID,4HACC,cAAA,CAEA,qIACC,aAAA,CACA,eAAA,CAQL,0DACC,UAAA,CAEA,iEACC,eAAA,CAKF,kDACC,UAAA,CACA,kBAAA,CACA,gBAAA,CACA,sBAAA,CAIC,+IAEC,UAAA,CAGD,mEACC,WAAA,CACA,QAAA,CAYD,qEACC,iCAAA,CACA,mCAAA,CACA,sBAAA,CAGD,2FACC,0BAAA,CAKH,+CACC,qBAAA,CAIA,mEACC,aAAA,CAIF,gDACC,UAAA,CACA,YAAA,CACA,eAAA,CACA,QAAA,CACA,qBAAA,CACA,6BAAA,CACA,sBAAA,CACA,2FAAA,CAEA,8DACC,YAAA,CACA,6BAAA,CACA,UAAA,CACA,eAAA,CAEA,qEACC,wBAAA,CAEA,iFACC,qBAAA",sourcesContent:["\n.sharingTabDetailsView {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tposition: relative;\n\theight: 100%;\n\toverflow: hidden;\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tbox-sizing: border-box;\n\t\tmargin: 0.2em;\n\n\t\tspan {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\th1 {\n\t\t\t\tfont-size: 15px;\n\t\t\t\tpadding-inline-start: 0.3em;\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__wrapper {\n\t\tposition: relative;\n\t\toverflow: scroll;\n\t\tflex-shrink: 1;\n\t\tpadding: 4px;\n\t\tpadding-inline-end: 12px;\n\t}\n\n\t&__quick-permissions {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t\tmargin: 0 auto;\n\t\tborder-radius: 0;\n\n\t\tdiv {\n\t\t\twidth: 100%;\n\n\t\t\tspan {\n\t\t\t\twidth: 100%;\n\n\t\t\t\tspan:nth-child(1) {\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t\tpadding: 0.1em;\n\t\t\t\t}\n\n\t\t\t\t:deep(label span) {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t}\n\n\t\t\t\t/* Target component based style in NcCheckboxRadioSwitch slot content*/\n\t\t\t\t:deep(span.checkbox-content__text.checkbox-radio-switch__text) {\n\t\t\t\t\tflex-wrap: wrap;\n\n\t\t\t\t\t.subline {\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tflex-basis: 100%;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\t&__advanced-control {\n\t\twidth: 100%;\n\n\t\tbutton {\n\t\t\tmargin-top: 0.5em;\n\t\t}\n\n\t}\n\n\t&__advanced {\n\t\twidth: 100%;\n\t\tmargin-bottom: 0.5em;\n\t\ttext-align: start;\n\t\tpadding-inline-start: 0;\n\n\t\tsection {\n\n\t\t\ttextarea,\n\t\t\tdiv.mx-datepicker {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\ttextarea {\n\t\t\t\theight: 80px;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t The following style is applied out of the component's scope\n\t\t\t to remove padding from the label.checkbox-radio-switch__label,\n\t\t\t which is used to group radio checkbox items. The use of ::v-deep\n\t\t\t ensures that the padding is modified without being affected by\n\t\t\t the component's scoping.\n\t\t\t Without this achieving left alignment for the checkboxes would not\n\t\t\t be possible.\n\t\t\t*/\n\t\t\tspan :deep(label) {\n\t\t\t\tpadding-inline-start: 0 !important;\n\t\t\t\tbackground-color: initial !important;\n\t\t\t\tborder: none !important;\n\t\t\t}\n\n\t\t\tsection.custom-permissions-group {\n\t\t\t\tpadding-inline-start: 1.5em;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__label {\n\t\tpadding-block-end: 6px;\n\t}\n\n\t&__delete {\n\t\t> button:first-child {\n\t\t\tcolor: rgb(223, 7, 7);\n\t\t}\n\t}\n\n\t&__footer {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\tposition: sticky;\n\t\tbottom: 0;\n\t\tflex-direction: column;\n\t\tjustify-content: space-between;\n\t\talign-items: flex-start;\n\t\tbackground: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\n\n\t\t.button-group {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t\twidth: 100%;\n\t\t\tmargin-top: 16px;\n\n\t\t\tbutton {\n\t\t\t\tmargin-inline-start: 16px;\n\n\t\t\t\t&:first-child {\n\t\t\t\t\tmargin-inline-start: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},19353(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".sharing-entry__inherited .avatar-shared[data-v-cedf3238]{width:32px;height:32px;line-height:32px;font-size:18px;background-color:var(--color-text-maxcontrast);border-radius:50%;flex-shrink:0}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingInherited.vue"],names:[],mappings:"AAEC,0DACC,UAAA,CACA,WAAA,CACA,gBAAA,CACA,cAAA,CACA,8CAAA,CACA,iBAAA,CACA,aAAA",sourcesContent:["\n.sharing-entry__inherited {\n\t.avatar-shared {\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tline-height: 32px;\n\t\tfont-size: 18px;\n\t\tbackground-color: var(--color-text-maxcontrast);\n\t\tborder-radius: 50%;\n\t\tflex-shrink: 0;\n\t}\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},64258(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,".emptyContentWithSections[data-v-1d4aa01b]{margin:1rem auto}.sharingTab[data-v-1d4aa01b]{position:relative;height:100%}.sharingTab__content[data-v-1d4aa01b]{padding:0 6px}.sharingTab__content .sharingTab__share-button[data-v-1d4aa01b]{margin-block-end:12px}.sharingTab__content section[data-v-1d4aa01b]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-1d4aa01b]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-1d4aa01b]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-1d4aa01b]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-1d4aa01b]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-1d4aa01b]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-1d4aa01b]{margin:var(--default-clickable-area) 0}.hint-body[data-v-1d4aa01b]{max-width:300px;padding:var(--border-radius-element)}","",{version:3,sources:["webpack://./apps/files_sharing/src/views/SharingTab.vue"],names:[],mappings:"AACA,2CACC,gBAAA,CAGD,6BACC,iBAAA,CACA,WAAA,CAEA,sCACC,aAAA,CAGA,gEACC,qBAAA,CAGD,8CACC,mBAAA,CAEA,8DACC,cAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,iEACC,QAAA,CACA,cAAA,CAGD,+EACC,YAAA,CAGD,yEACC,kCAAA,CAOH,+DACC,2CAAA,CAKF,gDACC,sCAAA,CAIF,4BACC,eAAA,CACA,oCAAA",sourcesContent:["\n.emptyContentWithSections {\n\tmargin: 1rem auto;\n}\n\n.sharingTab {\n\tposition: relative;\n\theight: 100%;\n\n\t&__content {\n\t\tpadding: 0 6px;\n\n\t\t// Space between the big Share button and the list of shares below.\n\t\t.sharingTab__share-button {\n\t\t\tmargin-block-end: 12px;\n\t\t}\n\n\t\tsection {\n\t\t\tpadding-bottom: 16px;\n\n\t\t\t.section-header {\n\t\t\t\tmargin-top: 2px;\n\t\t\t\tmargin-bottom: 2px;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tpadding-bottom: 4px;\n\n\t\t\t\th4 {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\n\t\t\t\t.visually-hidden {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.hint-icon {\n\t\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t& > section:not(:last-child) {\n\t\t\tborder-bottom: 2px solid var(--color-border);\n\t\t}\n\n\t}\n\n\t&__additionalContent {\n\t\tmargin: var(--default-clickable-area) 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n"],sourceRoot:""}]);const s=r;n.d(t,["A",0,s])},28280(e,t,n){var a=n(71354),i=n.n(a),o=n(76314),r=n.n(o)()(i());r.push([e.id,"\n.sharing-tab-external-section-legacy[data-v-67cb6ff2] {\n\twidth: 100%;\n}\n","",{version:3,sources:["webpack://./apps/files_sharing/src/components/SidebarTabExternal/SidebarTabExternalSectionLegacy.vue"],names:[],mappings:";AAiCA;CACA,WAAA;AACA",sourcesContent:['\x3c!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.fileInfo)?_c(_setup.SharingTab,{attrs:{\"file-info\":_setup.fileInfo}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareVariant.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareVariant.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ShareVariant.vue?vue&type=template&id=1f77088e\"\nimport script from \"./ShareVariant.vue?vue&type=script&lang=js\"\nexport * from \"./ShareVariant.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon share-variant-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',[_c('SharingEntrySimple',{ref:\"shareEntrySimple\",staticClass:\"sharing-entry__internal\",attrs:{\"title\":_vm.t('files_sharing', 'Internal link'),\"subtitle\":_vm.internalLinkSubtitle},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-external icon-external-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"title\":_vm.copyLinkTooltip,\"aria-label\":_vm.copyLinkTooltip},on:{\"click\":_vm.copyLink},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.copied && _vm.copySuccess)?_c('CheckIcon',{staticClass:\"icon-checkmark-color\",attrs:{\"size\":20}}):_c('ClipboardIcon',{attrs:{\"size\":20}})]},proxy:true}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ContentCopy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ContentCopy.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ContentCopy.vue?vue&type=template&id=0e8bd3c4\"\nimport script from \"./ContentCopy.vue?vue&type=script&lang=js\"\nexport * from \"./ContentCopy.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon content-copy-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_vm._t(\"avatar\"),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_vm._t(\"action\"),_vm._v(\" \"),(_vm.$slots['default'])?_c('NcActions',{ref:\"actionsComponent\",staticClass:\"sharing-entry__actions\",attrs:{\"menu-align\":\"right\",\"force-menu\":_vm.forceMenu,\"aria-expanded\":_vm.ariaExpandedValue}},[_vm._t(\"default\")],2):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=5032cf1e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=5032cf1e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntrySimple.vue?vue&type=template&id=5032cf1e&scoped=true\"\nimport script from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntrySimple.vue?vue&type=style&index=0&id=5032cf1e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5032cf1e\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { generateUrl, getBaseUrl } from '@nextcloud/router';\n/**\n * @param fileid - The file ID to generate the direct file link for\n */\nexport function generateFileUrl(fileid) {\n const baseURL = getBaseUrl();\n const { globalscale } = getCapabilities();\n if (globalscale?.token) {\n return generateUrl('/gf/{token}/{fileid}', {\n token: globalscale.token,\n fileid,\n }, { baseURL });\n }\n return generateUrl('/f/{fileid}', {\n fileid,\n }, {\n baseURL,\n });\n}\n","\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInternal.vue?vue&type=template&id=6c4cb23b&scoped=true\"\nimport script from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInternal.vue?vue&type=style&index=0&id=6c4cb23b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c4cb23b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharing-search\"},[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":_vm.shareInputId}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.isExternal\n\t\t\t? _vm.t('files_sharing', 'Enter external recipients')\n\t\t\t: _vm.t('files_sharing', 'Search for internal recipients'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{ref:\"select\",staticClass:\"sharing-search__input\",attrs:{\"input-id\":_vm.shareInputId,\"disabled\":!_vm.canReshare,\"loading\":_vm.loading,\"filterable\":false,\"placeholder\":_vm.inputPlaceholder,\"clear-search-on-blur\":() => false,\"user-select\":true,\"options\":_vm.options,\"label-outside\":true},on:{\"search\":_vm.asyncFind,\"option:selected\":_vm.onSelected},scopedSlots:_vm._u([{key:\"no-options\",fn:function({ search }){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(search ? _vm.noResultText : _vm.placeholder)+\"\\n\\t\\t\")]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport const ATOMIC_PERMISSIONS = {\n\tNONE: 0,\n\tREAD: 1,\n\tUPDATE: 2,\n\tCREATE: 4,\n\tDELETE: 8,\n\tSHARE: 16,\n}\n\nconst BUNDLED_PERMISSIONS = {\n\tREAD_ONLY: ATOMIC_PERMISSIONS.READ,\n\tUPLOAD_AND_UPDATE: ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.DELETE,\n\tFILE_DROP: ATOMIC_PERMISSIONS.CREATE,\n\tALL: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.DELETE | ATOMIC_PERMISSIONS.SHARE,\n\tALL_FILE: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.SHARE,\n}\n\n/**\n * Get bundled permissions based on config.\n *\n * @param {boolean} excludeShare - Whether to exclude SHARE permission from ALL and ALL_FILE bundles.\n * @return {object}\n */\nexport function getBundledPermissions(excludeShare = false) {\n\tif (excludeShare) {\n\t\treturn {\n\t\t\t...BUNDLED_PERMISSIONS,\n\t\t\tALL: BUNDLED_PERMISSIONS.ALL & ~ATOMIC_PERMISSIONS.SHARE,\n\t\t\tALL_FILE: BUNDLED_PERMISSIONS.ALL_FILE & ~ATOMIC_PERMISSIONS.SHARE,\n\t\t}\n\t}\n\treturn BUNDLED_PERMISSIONS\n}\n\n/**\n * Return whether a given permissions set contains some permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToCheck - the permissions to check.\n * @return {boolean}\n */\nexport function hasPermissions(initialPermissionSet, permissionsToCheck) {\n\treturn initialPermissionSet !== ATOMIC_PERMISSIONS.NONE && (initialPermissionSet & permissionsToCheck) === permissionsToCheck\n}\n\n/**\n * Return whether a given permissions set is valid.\n *\n * @param {number} permissionsSet - the permissions set.\n *\n * @return {boolean}\n */\nexport function permissionsSetIsValid(permissionsSet) {\n\t// Must have at least READ or CREATE permission.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && !hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.CREATE)) {\n\t\treturn false\n\t}\n\n\t// Must have READ permission if have UPDATE or DELETE.\n\tif (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && (\n\t\thasPermissions(permissionsSet, ATOMIC_PERMISSIONS.UPDATE) || hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.DELETE)\n\t)) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n/**\n * Add some permissions to an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToAdd - the permissions to add.\n *\n * @return {number}\n */\nexport function addPermissions(initialPermissionSet, permissionsToAdd) {\n\treturn initialPermissionSet | permissionsToAdd\n}\n\n/**\n * Remove some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToSubtract - the permissions to remove.\n *\n * @return {number}\n */\nexport function subtractPermissions(initialPermissionSet, permissionsToSubtract) {\n\treturn initialPermissionSet & ~permissionsToSubtract\n}\n\n/**\n * Toggle some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {number}\n */\nexport function togglePermissions(initialPermissionSet, permissionsToToggle) {\n\tif (hasPermissions(initialPermissionSet, permissionsToToggle)) {\n\t\treturn subtractPermissions(initialPermissionSet, permissionsToToggle)\n\t} else {\n\t\treturn addPermissions(initialPermissionSet, permissionsToToggle)\n\t}\n}\n\n/**\n * Return whether some given permissions can be toggled from a permission set.\n *\n * @param {number} permissionSet - the initial permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {boolean}\n */\nexport function canTogglePermissions(permissionSet, permissionsToToggle) {\n\treturn permissionsSetIsValid(togglePermissions(permissionSet, permissionsToToggle))\n}\n\n/**\n * The permission bundles the share editor offers, in the order they are matched.\n *\n * @type {string[]}\n */\nconst EDITOR_BUNDLES = ['READ_ONLY', 'ALL', 'ALL_FILE', 'FILE_DROP']\n\n/**\n * Find the permission bundle a share's permissions correspond to.\n *\n * Link and email shares carry the SHARE permission whenever federation on\n * public shares is enabled: the server adds it on top of whatever bundle was\n * picked, so it must be ignored when matching those shares against a bundle.\n *\n * @param {number} permissions - the share permissions.\n * @param {object} [options] - matching options.\n * @param {boolean} [options.isPublicShare] - whether the share is a link or email share.\n * @param {boolean} [options.excludeReshareFromEdit] - whether SHARE is excluded from the editing bundles.\n *\n * @return {string|null} the name of the matching bundle, or `null` for custom permissions.\n */\nexport function matchBundledPermissions(permissions, { isPublicShare = false, excludeReshareFromEdit = false } = {}) {\n\tconst bundles = getBundledPermissions(isPublicShare || excludeReshareFromEdit)\n\tconst comparablePermissions = isPublicShare\n\t\t? subtractPermissions(permissions, ATOMIC_PERMISSIONS.SHARE)\n\t\t: permissions\n\n\treturn EDITOR_BUNDLES.find((bundle) => bundles[bundle] === comparablePermissions) ?? null\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport logger from '../services/logger.ts';\nimport { isFileRequest } from '../services/SharingService.ts';\nexport default class Share {\n _share;\n /**\n * Create the share object\n *\n * @param ocsData ocs request response\n */\n constructor(ocsData) {\n if (ocsData.ocs && ocsData.ocs.data && ocsData.ocs.data[0]) {\n ocsData = ocsData.ocs.data[0];\n }\n // string to int\n if (typeof ocsData.id === 'string') {\n ocsData.id = Number.parseInt(ocsData.id);\n }\n // convert int into boolean\n ocsData.hide_download = !!ocsData.hide_download;\n ocsData.mail_send = !!ocsData.mail_send;\n if (ocsData.attributes && typeof ocsData.attributes === 'string') {\n try {\n ocsData.attributes = JSON.parse(ocsData.attributes);\n }\n catch {\n logger.warn('Could not parse share attributes returned by server', ocsData.attributes);\n }\n }\n ocsData.attributes = ocsData.attributes ?? [];\n // Pre-declared so Vue 2 makes newPassword reactive at observation time,\n // avoiding $set's property-addition path which races with async setters.\n ocsData.newPassword = ocsData.newPassword ?? undefined;\n // store state\n this._share = ocsData;\n }\n /**\n * Get the share state\n * ! used for reactivity purpose\n * Do not remove. It allow vuejs to\n * inject its watchers into the #share\n * state and make the whole class reactive\n *\n * @return the share raw state\n */\n get state() {\n return this._share;\n }\n /**\n * get the share id\n */\n get id() {\n return this._share.id;\n }\n /**\n * Get the share type\n */\n get type() {\n return this._share.share_type;\n }\n /**\n * Get the share permissions\n * See window.OC.PERMISSION_* variables\n */\n get permissions() {\n return this._share.permissions;\n }\n /**\n * Get the share attributes\n */\n get attributes() {\n return this._share.attributes || [];\n }\n /**\n * Set the share permissions\n * See window.OC.PERMISSION_* variables\n */\n set permissions(permissions) {\n this._share.permissions = permissions;\n }\n // SHARE OWNER --------------------------------------------------\n /**\n * Get the share owner uid\n */\n get owner() {\n return this._share.uid_owner;\n }\n /**\n * Get the share owner's display name\n */\n get ownerDisplayName() {\n return this._share.displayname_owner;\n }\n // SHARED WITH --------------------------------------------------\n /**\n * Get the share with entity uid\n */\n get shareWith() {\n return this._share.share_with;\n }\n /**\n * Get the share with entity display name\n * fallback to its uid if none\n */\n get shareWithDisplayName() {\n return this._share.share_with_displayname\n || this._share.share_with;\n }\n /**\n * Unique display name in case of multiple\n * duplicates results with the same name.\n */\n get shareWithDisplayNameUnique() {\n return this._share.share_with_displayname_unique\n || this._share.share_with;\n }\n /**\n * Get the share with entity link\n */\n get shareWithLink() {\n return this._share.share_with_link;\n }\n /**\n * Get the share with avatar if any\n */\n get shareWithAvatar() {\n return this._share.share_with_avatar;\n }\n // SHARED FILE OR FOLDER OWNER ----------------------------------\n /**\n * Get the shared item owner uid\n */\n get uidFileOwner() {\n return this._share.uid_file_owner;\n }\n /**\n * Get the shared item display name\n * fallback to its uid if none\n */\n get displaynameFileOwner() {\n return this._share.displayname_file_owner\n || this._share.uid_file_owner;\n }\n // TIME DATA ----------------------------------------------------\n /**\n * Get the share creation timestamp\n */\n get createdTime() {\n return this._share.stime;\n }\n /**\n * Get the expiration date\n *\n * @return date with YYYY-MM-DD format\n */\n get expireDate() {\n return this._share.expiration;\n }\n /**\n * Set the expiration date\n *\n * @param date the share expiration date with YYYY-MM-DD format\n */\n set expireDate(date) {\n this._share.expiration = date;\n }\n // EXTRA DATA ---------------------------------------------------\n /**\n * Get the public share token\n */\n get token() {\n return this._share.token;\n }\n /**\n * Set the public share token\n */\n set token(token) {\n this._share.token = token;\n }\n /**\n * Get the share note if any\n */\n get note() {\n return this._share.note;\n }\n /**\n * Set the share note if any\n */\n set note(note) {\n this._share.note = note;\n }\n /**\n * Get the share label if any\n * Should only exist on link shares\n */\n get label() {\n return this._share.label ?? '';\n }\n /**\n * Set the share label if any\n * Should only be set on link shares\n */\n set label(label) {\n this._share.label = label;\n }\n /**\n * Have a mail been sent\n */\n get mailSend() {\n return this._share.mail_send === true;\n }\n /**\n * Hide the download button on public page\n */\n get hideDownload() {\n return this._share.hide_download === true\n || this.attributes.find?.(({ scope, key, value }) => scope === 'permissions' && key === 'download' && !value) !== undefined;\n }\n /**\n * Hide the download button on public page\n */\n set hideDownload(state) {\n // disabling hide-download also enables the download permission\n // needed for regression in Nextcloud 31.0.0 until (incl.) 31.0.3\n if (!state) {\n const attribute = this.attributes.find(({ key, scope }) => key === 'download' && scope === 'permissions');\n if (attribute) {\n attribute.value = true;\n }\n }\n this._share.hide_download = state === true;\n }\n /**\n * Password protection of the share\n */\n get password() {\n return this._share.password;\n }\n /**\n * Password protection of the share\n */\n set password(password) {\n this._share.password = password;\n }\n /**\n * Unsaved password (set during share creation or editing).\n * Delegates to _share so reads/writes go through the reactive state.\n */\n get newPassword() {\n return this._share.newPassword;\n }\n set newPassword(value) {\n this._share.newPassword = value;\n }\n /**\n * Password expiration time\n *\n * @return date with YYYY-MM-DD format\n */\n get passwordExpirationTime() {\n return this._share.password_expiration_time;\n }\n /**\n * Password expiration time\n *\n * @param passwordExpirationTime date with YYYY-MM-DD format\n */\n set passwordExpirationTime(passwordExpirationTime) {\n this._share.password_expiration_time = passwordExpirationTime;\n }\n /**\n * Password protection by Talk of the share\n */\n get sendPasswordByTalk() {\n return this._share.send_password_by_talk;\n }\n /**\n * Password protection by Talk of the share\n *\n * @param sendPasswordByTalk whether to send the password by Talk or not\n */\n set sendPasswordByTalk(sendPasswordByTalk) {\n this._share.send_password_by_talk = sendPasswordByTalk;\n }\n // SHARED ITEM DATA ---------------------------------------------\n /**\n * Get the shared item absolute full path\n */\n get path() {\n return this._share.path;\n }\n /**\n * Return the item type: file or folder\n *\n * @return 'folder' | 'file'\n */\n get itemType() {\n return this._share.item_type;\n }\n /**\n * Get the shared item mimetype\n */\n get mimetype() {\n return this._share.mimetype;\n }\n /**\n * Get the shared item id\n */\n get fileSource() {\n return this._share.file_source;\n }\n /**\n * Get the target path on the receiving end\n * e.g the file /xxx/aaa will be shared in\n * the receiving root as /aaa, the fileTarget is /aaa\n */\n get fileTarget() {\n return this._share.file_target;\n }\n /**\n * Get the parent folder id if any\n */\n get fileParent() {\n return this._share.file_parent;\n }\n // PERMISSIONS Shortcuts\n /**\n * Does this share have READ permissions\n */\n get hasReadPermission() {\n return !!((this.permissions & window.OC.PERMISSION_READ));\n }\n /**\n * Does this share have CREATE permissions\n */\n get hasCreatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_CREATE));\n }\n /**\n * Does this share have DELETE permissions\n */\n get hasDeletePermission() {\n return !!((this.permissions & window.OC.PERMISSION_DELETE));\n }\n /**\n * Does this share have UPDATE permissions\n */\n get hasUpdatePermission() {\n return !!((this.permissions & window.OC.PERMISSION_UPDATE));\n }\n /**\n * Does this share have SHARE permissions\n */\n get hasSharePermission() {\n return !!((this.permissions & window.OC.PERMISSION_SHARE));\n }\n /**\n * Does this share have download permissions\n */\n get hasDownloadPermission() {\n const hasDisabledDownload = (attribute) => {\n return attribute.scope === 'permissions' && attribute.key === 'download' && attribute.value === false;\n };\n return !this.attributes.some(hasDisabledDownload);\n }\n /**\n * Is this mail share a file request ?\n */\n get isFileRequest() {\n return isFileRequest(JSON.stringify(this.attributes));\n }\n set hasDownloadPermission(enabled) {\n this.setAttribute('permissions', 'download', !!enabled);\n }\n setAttribute(scope, key, value) {\n const attrUpdate = {\n scope,\n key,\n value,\n };\n // try and replace existing\n for (const i in this._share.attributes) {\n const attr = this._share.attributes[i];\n if (attr.scope === attrUpdate.scope && attr.key === attrUpdate.key) {\n this._share.attributes.splice(i, 1, attrUpdate);\n return;\n }\n }\n this._share.attributes.push(attrUpdate);\n }\n // PERMISSIONS Shortcuts for the CURRENT USER\n // ! the permissions above are the share settings,\n // ! meaning the permissions for the recipient\n /**\n * Can the current user EDIT this share ?\n */\n get canEdit() {\n return this._share.can_edit === true;\n }\n /**\n * Can the current user DELETE this share ?\n */\n get canDelete() {\n return this._share.can_delete === true;\n }\n /**\n * Top level accessible shared folder fileid for the current user\n */\n get viaFileid() {\n return this._share.via_fileid;\n }\n /**\n * Top level accessible shared folder path for the current user\n */\n get viaPath() {\n return this._share.via_path;\n }\n // TODO: SORT THOSE PROPERTIES\n get parent() {\n return this._share.parent;\n }\n get storageId() {\n return this._share.storage_id;\n }\n get storage() {\n return this._share.storage;\n }\n get itemSource() {\n return this._share.item_source;\n }\n get status() {\n return this._share.status;\n }\n /**\n * Is the share from a trusted server\n */\n get isTrustedServer() {\n return !!this._share.is_trusted_server;\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n// TODO: Fix this instead of disabling ESLint!!!\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { File, Folder, Permission } from '@nextcloud/files';\nimport { getRemoteURL, getRootPath } from '@nextcloud/files/dav';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport logger from './logger.ts';\nconst headers = {\n 'Content-Type': 'application/json',\n};\n/**\n *\n * @param ocsEntry\n * @param unmounted whether the share is not mounted into the filesystem (pending or deleted)\n */\nasync function ocsEntryToNode(ocsEntry, unmounted = false) {\n try {\n // Federated share handling\n if (ocsEntry?.remote_id !== undefined) {\n if (!ocsEntry.mimetype) {\n const mime = (await import('mime')).default;\n // This won't catch files without an extension, but this is the best we can do\n ocsEntry.mimetype = mime.getType(ocsEntry.name);\n }\n const type = ocsEntry.type === 'dir' ? 'folder' : ocsEntry.type;\n ocsEntry.item_type = type || (ocsEntry.mimetype ? 'file' : 'folder');\n // different naming for remote shares\n ocsEntry.item_mtime = ocsEntry.mtime;\n ocsEntry.file_target = ocsEntry.file_target || ocsEntry.mountpoint;\n if (ocsEntry.file_target.includes('TemporaryMountPointName')) {\n ocsEntry.file_target = ocsEntry.name;\n }\n // If the share is not accepted yet we don't know which permissions it will have\n if (!ocsEntry.accepted) {\n // Need to set permissions to NONE for federated shares\n ocsEntry.item_permissions = Permission.NONE;\n ocsEntry.permissions = Permission.NONE;\n }\n ocsEntry.uid_owner = ocsEntry.owner;\n // TODO: have the real display name stored somewhere\n ocsEntry.displayname_owner = ocsEntry.owner;\n }\n // Pending and deleted shares are not mounted into the user's filesystem,\n // so no file operation can act on them until they are accepted or restored.\n if (unmounted) {\n ocsEntry.item_permissions = Permission.NONE;\n ocsEntry.permissions = Permission.NONE;\n }\n const isFolder = ocsEntry?.item_type === 'folder';\n const hasPreview = ocsEntry?.has_preview === true;\n const Node = isFolder ? Folder : File;\n // If this is an external share that is not yet accepted,\n // we don't have an id. We can fallback to the row id temporarily\n // local shares (this server) use `file_source`, but remote shares (federated) use `file_id`\n const fileid = ocsEntry.file_source || ocsEntry.file_id || ocsEntry.id;\n // Generate path and strip double slashes\n const path = ocsEntry.path || ocsEntry.file_target || ocsEntry.name;\n const source = `${getRemoteURL()}${getRootPath()}/${path.replace(/^\\/+/, '')}`;\n let mtime = ocsEntry.item_mtime ? new Date((ocsEntry.item_mtime) * 1000) : undefined;\n // Prefer share time if more recent than item mtime\n if (ocsEntry?.stime > (ocsEntry?.item_mtime || 0)) {\n mtime = new Date((ocsEntry.stime) * 1000);\n }\n let sharees;\n if ('share_with' in ocsEntry) {\n sharees = {\n sharee: {\n id: ocsEntry.share_with,\n 'display-name': ocsEntry.share_with_displayname || ocsEntry.share_with,\n type: ocsEntry.share_type,\n },\n };\n }\n return new Node({\n id: fileid,\n source,\n owner: ocsEntry?.uid_owner,\n mime: ocsEntry?.mimetype || 'application/octet-stream',\n mtime,\n size: ocsEntry?.item_size ?? undefined,\n permissions: ocsEntry?.item_permissions || ocsEntry?.permissions,\n root: getRootPath(),\n attributes: {\n ...ocsEntry,\n // 'id' is a forbidden property name\n 'share-id': ocsEntry.id,\n 'has-preview': hasPreview,\n 'hide-download': ocsEntry?.hide_download === 1,\n // Also check the sharingStatusAction.ts code\n 'owner-id': ocsEntry?.uid_owner,\n 'owner-display-name': ocsEntry?.displayname_owner,\n 'share-types': ocsEntry?.share_type,\n 'share-attributes': ocsEntry?.attributes || '[]',\n sharees,\n favorite: ocsEntry?.tags?.includes(window.OC.TAG_FAVORITE) ? 1 : 0,\n },\n });\n }\n catch (error) {\n logger.error('Error while parsing OCS entry', { error });\n return null;\n }\n}\n/**\n *\n * @param shareWithMe\n */\nfunction getShares(shareWithMe = false) {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares');\n return axios.get(url, {\n headers,\n params: {\n shared_with_me: shareWithMe,\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getSharedWithYou() {\n return getShares(true);\n}\n/**\n *\n */\nfunction getSharedWithOthers() {\n return getShares();\n}\n/**\n *\n */\nfunction getRemoteShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getPendingShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getRemotePendingShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getDeletedShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/deletedshares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n * Check if a file request is enabled\n *\n * @param attributes the share attributes json-encoded array\n */\nexport function isFileRequest(attributes = '[]') {\n const isFileRequest = (attribute) => {\n return attribute.scope === 'fileRequest' && attribute.key === 'enabled' && attribute.value === true;\n };\n try {\n const attributesArray = JSON.parse(attributes);\n return attributesArray.some(isFileRequest);\n }\n catch (error) {\n logger.error('Error while parsing share attributes', { error });\n return false;\n }\n}\n/**\n * Group an array of objects (here Nodes) by a key\n * and return an array of arrays of them.\n *\n * @param nodes Nodes to group\n * @param key The attribute to group by\n */\nfunction groupBy(nodes, key) {\n return Object.values(nodes.reduce(function (acc, curr) {\n (acc[curr[key]] = acc[curr[key]] || []).push(curr);\n return acc;\n }, {}));\n}\n/**\n *\n * @param sharedWithYou\n * @param sharedWithOthers\n * @param pendingShares\n * @param deletedshares\n * @param filterTypes\n */\nexport async function getContents(sharedWithYou = true, sharedWithOthers = true, pendingShares = false, deletedshares = false, filterTypes = []) {\n const requests = [];\n if (sharedWithYou) {\n requests.push({ promise: getSharedWithYou(), unmounted: false }, { promise: getRemoteShares(), unmounted: false });\n }\n if (sharedWithOthers) {\n requests.push({ promise: getSharedWithOthers(), unmounted: false });\n }\n if (pendingShares) {\n requests.push({ promise: getPendingShares(), unmounted: true }, { promise: getRemotePendingShares(), unmounted: true });\n }\n if (deletedshares) {\n requests.push({ promise: getDeletedShares(), unmounted: true });\n }\n const responses = await Promise.all(requests.map(({ promise }) => promise));\n const data = responses.flatMap((response, index) => response.data.ocs.data\n .map((entry) => ({ entry, unmounted: requests[index].unmounted })));\n let contents = (await Promise.all(data.map(({ entry, unmounted }) => ocsEntryToNode(entry, unmounted))))\n .filter((node) => node !== null);\n if (filterTypes.length > 0) {\n contents = contents.filter((node) => filterTypes.includes(node.attributes?.share_type));\n }\n // Merge duplicate shares and group their attributes\n // Also check the sharingStatusAction.ts code\n contents = groupBy(contents, 'source').map((nodes) => {\n const node = nodes[0];\n node.attributes['share-types'] = nodes.map((node) => node.attributes['share-types']);\n return node;\n });\n return {\n folder: new Folder({\n id: 0,\n source: `${getRemoteURL()}${getRootPath()}`,\n owner: getCurrentUser()?.uid || null,\n root: getRootPath(),\n }),\n contents,\n };\n}\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./dialog.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./dialog.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcDialog.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcDialog.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { defineComponent, ref, openBlock, createBlock, unref, withCtx, createTextVNode, toDisplayString, renderSlot, createCommentVNode } from \"vue\";\nimport { r as register, f as t34, a as t } from \"./_l10n.mjs\";\nimport { N as NcButton } from \"./NcButton.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon.mjs\";\nregister(t34);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDialogButton\",\n props: {\n callback: { type: Function, default: () => {\n } },\n disabled: { type: Boolean, default: false },\n icon: { default: void 0 },\n label: {},\n type: { default: \"button\" },\n variant: { default: \"tertiary\" }\n },\n emits: [\"click\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const isLoading = ref(false);\n async function handleClick(e) {\n if (isLoading.value) {\n return;\n }\n isLoading.value = true;\n try {\n const fallback = props.type === \"reset\" ? false : void 0;\n const result = await props.callback?.() ?? fallback;\n if (result !== false) {\n emit(\"click\", e, result);\n }\n } finally {\n isLoading.value = false;\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcButton), {\n \"aria-label\": __props.label,\n disabled: __props.disabled,\n type: __props.type,\n variant: __props.variant,\n onClick: handleClick\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n isLoading.value ? (openBlock(), createBlock(unref(NcLoadingIcon), {\n key: 0,\n name: unref(t)(\"Loading …\")\n /* TRANSLATORS: The button is in a loading state*/\n }, null, 8, [\"name\"])) : __props.icon !== void 0 ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n svg: __props.icon\n }, null, 8, [\"svg\"])) : createCommentVNode(\"\", true)\n ])\n ]),\n default: withCtx(() => [\n createTextVNode(toDisplayString(__props.label) + \" \", 1)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\", \"type\", \"variant\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcDialogButton.vue_vue_type_script_setup_true_lang.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcModal.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcModal.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcModal.css';\nimport { getCurrentInstance, warn, defineComponent, useCssVars, useModel, useTemplateRef, onUnmounted, watch, toRef, ref, watchEffect, computed, useSlots, onMounted, openBlock, createBlock, Teleport, createVNode, Transition, withCtx, withDirectives, createElementVNode, mergeProps, unref, createElementBlock, toDisplayString, createCommentVNode, normalizeClass, renderSlot, withModifiers, vShow, mergeModels, nextTick } from \"vue\";\nimport { z as mdiPause, A as mdiPlay, b as mdiClose, B as mdiChevronLeft, c as mdiChevronRight } from \"./mdi.mjs\";\nimport { useIntervalFn, useSwipe } from \"@vueuse/core\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { N as NcActions } from \"./NcActions.mjs\";\nimport { N as NcButton } from \"./NcButton.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport { useHotKey } from \"../composables/useHotKey/index.mjs\";\nimport \"../composables/useIsDarkTheme/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport { r as register, D as t37, A as t20, a as t } from \"./_l10n.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { g as getTrapStack } from \"./focusTrap.mjs\";\nimport { i as isRtl } from \"./rtl.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction getSameNodeParent(instance) {\n if (!instance.parent) {\n return null;\n }\n if (\"vapor\" in instance || \"vapor\" in instance.parent) {\n warn(\"Vapor instances are not supported in useScopeIdAttrs :(\");\n return null;\n }\n if (instance.parent.subTree !== instance.vnode) {\n return null;\n }\n return instance.parent;\n}\nfunction getSameNodeAncestors(instance) {\n const ancestors = [instance];\n let parent = getSameNodeParent(instance);\n while (parent) {\n ancestors.push(parent);\n parent = getSameNodeParent(parent);\n }\n return ancestors;\n}\nfunction useScopeIdAttrs() {\n const instance = getCurrentInstance();\n if (!instance) {\n throw new Error(\"useScopeId must be called within a setup context\");\n }\n const sameNodeAncestors = getSameNodeAncestors(instance);\n const scopeIds = sameNodeAncestors.map((instance2) => instance2.vnode.scopeId).filter(Boolean);\n const scopeIdAttrs = Object.fromEntries(scopeIds.map((scopeId) => [scopeId, \"\"]));\n return scopeIdAttrs;\n}\nregister(t20, t37);\nconst _hoisted_1 = [\"aria-labelledby\", \"aria-describedby\"];\nconst _hoisted_2 = [\"data-theme-light\", \"data-theme-dark\"];\nconst _hoisted_3 = [\"id\"];\nconst _hoisted_4 = { class: \"icons-menu\" };\nconst _hoisted_5 = [\"title\"];\nconst _hoisted_6 = [\"id\"];\nconst _hoisted_7 = { class: \"modal-container__content\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcModal\",\n props: /* @__PURE__ */ mergeModels({\n name: { default: \"\" },\n hasPrevious: { type: Boolean },\n hasNext: { type: Boolean },\n outTransition: { type: Boolean },\n enableSlideshow: { type: Boolean },\n slideshowDelay: { default: 5e3 },\n slideshowPaused: { type: Boolean },\n disableSwipe: { type: Boolean },\n spreadNavigation: { type: Boolean },\n size: { default: \"normal\" },\n noClose: { type: Boolean },\n closeOnClickOutside: { type: Boolean },\n dark: { type: Boolean },\n lightBackdrop: { type: Boolean },\n container: { default: \"body\" },\n closeButtonOutside: { type: Boolean },\n additionalTrapElements: { default: () => [] },\n inlineActions: { default: 0 },\n labelId: { default: \"\" },\n setReturnFocus: { default: void 0 }\n }, {\n \"show\": { type: Boolean, ...{ default: true } },\n \"showModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"next\", \"previous\", \"close\", \"update:show\"], [\"update:show\"]),\n setup(__props, { emit: __emit }) {\n useCssVars((_ctx) => ({\n \"v046d2bb2\": numHeaderActions.value,\n \"v71f7c020\": cssSlideshowDelay.value\n }));\n const showModal = useModel(__props, \"show\");\n const props = __props;\n const emit = __emit;\n const scopeIdAttrs = useScopeIdAttrs();\n const modalId = createElementId();\n const maskElement = useTemplateRef(\"mask\");\n let focusTrap;\n onUnmounted(() => clearFocusTrap());\n watch(() => props.additionalTrapElements, (elements) => {\n if (focusTrap) {\n focusTrap.updateContainerElements([maskElement.value, ...elements]);\n }\n });\n const {\n isActive: isPlaying,\n pause: stopSlideshow,\n resume: startSlideshow\n } = useIntervalFn(nextSlide, toRef(() => props.slideshowDelay), { immediate: false });\n const animationKey = ref(0);\n const runSlideshow = ref(false);\n watchEffect(() => {\n if (runSlideshow.value && !props.slideshowPaused) {\n startSlideshow();\n } else if (isPlaying.value) {\n stopSlideshow();\n }\n });\n const cssSlideshowDelay = computed(() => `${props.slideshowDelay}ms`);\n const { stop: stopSwipe } = useSwipe(maskElement, {\n onSwipeEnd: handleSwipe\n });\n onUnmounted(stopSwipe);\n useHotKey(\"Escape\", () => {\n const trapStack = getTrapStack();\n if (trapStack.at(-1) === focusTrap) {\n close();\n }\n }, { allowInModal: true });\n useHotKey([\"ArrowLeft\", \"ArrowRight\"], (event) => {\n if (document.activeElement && !maskElement.value.contains(document.activeElement)) {\n return;\n }\n if (event.key === \"ArrowLeft\" !== isRtl) {\n previousSlide();\n } else {\n nextSlide();\n }\n }, { allowInModal: true });\n const slots = useSlots();\n const numHeaderActions = computed(() => {\n let actions = 0;\n if (props.hasNext && props.enableSlideshow) {\n actions++;\n }\n if (!props.noClose && props.closeButtonOutside) {\n actions++;\n }\n if (slots.actions) {\n actions++;\n }\n return actions;\n });\n onMounted(() => {\n if (!props.name && !props.labelId) {\n warn(\"[NcModal] You need either set the name or set a `labelId` for accessibility.\");\n }\n });\n function nextSlide(event) {\n if (!props.hasNext) {\n runSlideshow.value = false;\n return;\n }\n if (event && isPlaying.value) {\n restartSlideshow();\n }\n emit(\"next\", event);\n }\n function previousSlide(event) {\n if (!props.hasPrevious) {\n return;\n }\n if (event && isPlaying.value) {\n restartSlideshow();\n }\n emit(\"previous\", event);\n }\n function handleSwipe(e, direction) {\n if (!props.disableSwipe) {\n if (direction !== \"left\" && direction !== \"right\") {\n return;\n }\n if (direction === \"left\" !== isRtl) {\n nextSlide(e);\n } else {\n previousSlide(e);\n }\n }\n }\n function restartSlideshow() {\n stopSlideshow();\n startSlideshow();\n animationKey.value++;\n }\n function close(event) {\n if (props.noClose) {\n return;\n }\n showModal.value = false;\n setTimeout(() => {\n emit(\"close\", event);\n }, 300);\n }\n function handleClickModalWrapper(event) {\n if (props.closeOnClickOutside) {\n close(event);\n }\n }\n async function useFocusTrap() {\n if (focusTrap) {\n return;\n }\n await nextTick();\n const options = {\n allowOutsideClick: true,\n fallbackFocus: maskElement.value,\n trapStack: getTrapStack(),\n // Esc can be used without stop in content or additionalTrapElements where it should not deactivate modal's focus trap.\n // Focus trap is deactivated on modal close anyway.\n escapeDeactivates: false,\n setReturnFocus: props.setReturnFocus\n };\n focusTrap = createFocusTrap([maskElement.value, ...props.additionalTrapElements], options);\n focusTrap.activate();\n }\n function clearFocusTrap() {\n if (!focusTrap) {\n return;\n }\n focusTrap?.deactivate();\n focusTrap = void 0;\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Teleport, {\n disabled: __props.container === null,\n to: __props.container\n }, [\n createVNode(Transition, {\n name: \"fade\",\n appear: \"\",\n onAfterEnter: useFocusTrap,\n onBeforeLeave: clearFocusTrap\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"div\", mergeProps({ ..._ctx.$attrs, ...unref(scopeIdAttrs) }, {\n ref: \"mask\",\n class: [\"modal-mask\", {\n \"modal-mask--opaque\": __props.dark || __props.closeButtonOutside || __props.hasPrevious || __props.hasNext,\n \"modal-mask--light\": __props.lightBackdrop\n }],\n role: \"dialog\",\n \"aria-modal\": \"true\",\n \"aria-labelledby\": __props.labelId || `modal-name-${unref(modalId)}`,\n \"aria-describedby\": \"modal-description-\" + unref(modalId),\n tabindex: \"-1\"\n }), [\n createVNode(Transition, {\n name: \"fade-visibility\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n class: \"modal-header\",\n \"data-theme-light\": __props.lightBackdrop,\n \"data-theme-dark\": !__props.lightBackdrop\n }, [\n __props.name.trim() !== \"\" ? (openBlock(), createElementBlock(\"h2\", {\n key: 0,\n id: \"modal-name-\" + unref(modalId),\n class: \"modal-header__name\"\n }, toDisplayString(__props.name), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_4, [\n __props.hasNext && __props.enableSlideshow ? (openBlock(), createElementBlock(\"button\", {\n key: 0,\n class: normalizeClass([\"play-pause-icons\", { \"play-pause-icons--paused\": __props.slideshowPaused }]),\n title: unref(isPlaying) ? unref(t)(\"Pause slideshow\") : unref(t)(\"Start slideshow\"),\n type: \"button\",\n onClick: _cache[0] || (_cache[0] = ($event) => runSlideshow.value = !runSlideshow.value)\n }, [\n createVNode(NcIconSvgWrapper, {\n class: \"play-pause-icons__icon\",\n inline: \"\",\n name: unref(isPlaying) ? unref(t)(\"Pause slideshow\") : unref(t)(\"Start slideshow\"),\n path: unref(isPlaying) ? unref(mdiPause) : unref(mdiPlay)\n }, null, 8, [\"name\", \"path\"]),\n unref(isPlaying) ? (openBlock(), createElementBlock(\"svg\", {\n key: `${unref(modalId)}-animation-${animationKey.value}`,\n class: \"progress-ring\",\n height: \"50\",\n width: \"50\"\n }, [..._cache[1] || (_cache[1] = [\n createElementVNode(\"circle\", {\n class: \"progress-ring__circle\",\n stroke: \"white\",\n \"stroke-width\": \"2\",\n fill: \"transparent\",\n r: \"15\",\n cx: \"25\",\n cy: \"25\"\n }, null, -1)\n ])])) : createCommentVNode(\"\", true)\n ], 10, _hoisted_5)) : createCommentVNode(\"\", true),\n createVNode(NcActions, {\n class: \"header-actions\",\n inline: __props.inlineActions\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"inline\"]),\n !__props.noClose && __props.closeButtonOutside ? (openBlock(), createBlock(NcButton, {\n key: 1,\n \"aria-label\": unref(t)(\"Close\"),\n class: \"header-close\",\n variant: \"tertiary\",\n onClick: close\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, { path: unref(mdiClose) }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"])) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2)\n ]),\n _: 3\n }),\n createVNode(Transition, {\n name: `modal-${__props.outTransition ? \"out\" : \"in\"}`,\n appear: \"\"\n }, {\n default: withCtx(() => [\n withDirectives(createElementVNode(\"div\", {\n class: normalizeClass([\"modal-wrapper\", [\n `modal-wrapper--${__props.size}`,\n { \"modal-wrapper--spread-navigation\": __props.spreadNavigation }\n ]]),\n onMousedown: withModifiers(handleClickModalWrapper, [\"self\"])\n }, [\n createVNode(Transition, {\n name: \"fade-visibility\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n withDirectives(createVNode(NcButton, {\n \"aria-label\": unref(t)(\"Previous\"),\n class: \"prev\",\n variant: \"tertiary-no-background\",\n onClick: previousSlide\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n directional: \"\",\n path: unref(mdiChevronLeft),\n size: 40\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"]), [\n [vShow, __props.hasPrevious]\n ])\n ]),\n _: 1\n }),\n createElementVNode(\"div\", {\n id: \"modal-description-\" + unref(modalId),\n class: \"modal-container\"\n }, [\n createElementVNode(\"div\", _hoisted_7, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n !__props.noClose && !__props.closeButtonOutside ? (openBlock(), createBlock(NcButton, {\n key: 0,\n \"aria-label\": unref(t)(\"Close\"),\n class: \"modal-container__close\",\n variant: \"tertiary\",\n onClick: close\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, { path: unref(mdiClose) }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_6),\n createVNode(Transition, {\n name: \"fade-visibility\",\n appear: \"\"\n }, {\n default: withCtx(() => [\n withDirectives(createVNode(NcButton, {\n \"aria-label\": unref(t)(\"Next\"),\n class: \"next\",\n variant: \"tertiary-no-background\",\n onClick: nextSlide\n }, {\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n directional: \"\",\n path: unref(mdiChevronRight),\n size: 40\n }, null, 8, [\"path\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"]), [\n [vShow, __props.hasNext]\n ])\n ]),\n _: 1\n })\n ], 34), [\n [vShow, showModal.value]\n ])\n ]),\n _: 3\n }, 8, [\"name\"])\n ], 16, _hoisted_1), [\n [vShow, showModal.value]\n ])\n ]),\n _: 3\n })\n ], 8, [\"disabled\", \"to\"]);\n };\n }\n});\nconst NcModal = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-3c357e2d\"]]);\nexport {\n NcModal as N\n};\n//# sourceMappingURL=NcModal.mjs.map\n","import '../assets/NcDialog.css';\nimport { defineComponent, useModel, useSlots, useTemplateRef, computed, ref, openBlock, createBlock, unref, mergeProps, withCtx, createElementVNode, toDisplayString, resolveDynamicComponent, toHandlers, normalizeClass, createElementBlock, renderSlot, createCommentVNode, Fragment, renderList, mergeModels } from \"vue\";\nimport { useElementSize } from \"@vueuse/core\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcDialogButton.vue_vue_type_script_setup_true_lang.mjs\";\nimport { N as NcModal } from \"./NcModal.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _hoisted_1 = [\"id\", \"textContent\"];\nconst _hoisted_2 = [\"aria-label\", \"aria-labelledby\"];\nconst _hoisted_3 = { class: \"dialog__text\" };\nconst _hoisted_4 = { class: \"dialog__actions\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDialog\",\n props: /* @__PURE__ */ mergeModels({\n name: {},\n message: { default: \"\" },\n additionalTrapElements: { default: () => [] },\n container: { default: \"body\" },\n size: { default: \"small\" },\n buttons: { default: () => [] },\n isForm: { type: Boolean },\n noClose: { type: Boolean },\n closeOnClickOutside: { type: Boolean },\n outTransition: { type: Boolean },\n navigationAriaLabel: { default: \"\" },\n navigationAriaLabelledby: { default: \"\" },\n contentClasses: { default: \"\" },\n dialogClasses: { default: \"\" },\n navigationClasses: { default: \"\" }\n }, {\n \"open\": { type: Boolean, ...{ default: true } },\n \"openModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"closing\", \"reset\", \"submit\"], [\"update:open\"]),\n setup(__props, { emit: __emit }) {\n const open = useModel(__props, \"open\");\n const props = __props;\n const emit = __emit;\n const slots = useSlots();\n const wrapperElement = useTemplateRef(\"wrapper\");\n const { width: dialogWidth } = useElementSize(wrapperElement, { width: 900, height: 0 });\n const isNavigationCollapsed = computed(() => dialogWidth.value < 876);\n const hasNavigation = computed(() => slots?.navigation !== void 0);\n const navigationId = createElementId();\n const navigationAriaLabelAttr = computed(() => props.navigationAriaLabel || void 0);\n const navigationAriaLabelledbyAttr = computed(() => {\n if (props.navigationAriaLabel) {\n return void 0;\n }\n return props.navigationAriaLabelledby || navigationId;\n });\n const dialogRootElement = useTemplateRef(\"dialogElement\");\n const dialogTagName = computed(() => props.isForm && !hasNavigation.value ? \"form\" : \"div\");\n const dialogListeners = computed(() => {\n if (dialogTagName.value !== \"form\") {\n return {};\n }\n return {\n /**\n * @param event - Form submit event\n */\n submit(event) {\n event.preventDefault();\n emit(\"submit\", event);\n },\n /**\n * @param event - Form submit event\n */\n reset(event) {\n event.preventDefault();\n emit(\"reset\", event);\n }\n };\n });\n const showModal = ref(true);\n function handleButtonClose(button, result) {\n if (button.type === \"submit\" && dialogTagName.value === \"form\" && \"reportValidity\" in dialogRootElement.value && !dialogRootElement.value.reportValidity()) {\n return;\n }\n handleClosing(result);\n window.setTimeout(() => handleClosed(), 300);\n }\n function handleClosing(result) {\n showModal.value = false;\n emit(\"closing\", result);\n }\n function handleClosed() {\n showModal.value = true;\n open.value = false;\n }\n const modalProps = computed(() => ({\n noClose: props.noClose,\n container: props.container === void 0 ? \"body\" : props.container,\n // we do not pass the name as we already have the name as the headline\n // name: props.name,\n // But we need to set the correct label id so the dialog is labelled\n labelId: navigationId,\n size: props.size,\n show: open.value && showModal.value,\n outTransition: props.outTransition,\n closeOnClickOutside: props.closeOnClickOutside,\n additionalTrapElements: props.additionalTrapElements\n }));\n return (_ctx, _cache) => {\n return open.value ? (openBlock(), createBlock(unref(NcModal), mergeProps({\n key: 0,\n class: \"dialog__modal\",\n disableSwipe: \"\"\n }, modalProps.value, {\n onClose: handleClosed,\n \"onUpdate:show\": _cache[0] || (_cache[0] = ($event) => handleClosing())\n }), {\n default: withCtx(() => [\n createElementVNode(\"h2\", {\n id: unref(navigationId),\n class: \"dialog__name\",\n textContent: toDisplayString(__props.name)\n }, null, 8, _hoisted_1),\n (openBlock(), createBlock(resolveDynamicComponent(dialogTagName.value), mergeProps({\n ref: \"dialogElement\",\n class: [\"dialog\", __props.dialogClasses]\n }, toHandlers(dialogListeners.value)), {\n default: withCtx(() => [\n createElementVNode(\"div\", {\n ref: \"wrapper\",\n class: normalizeClass([\"dialog__wrapper\", [{ \"dialog__wrapper--collapsed\": isNavigationCollapsed.value }]])\n }, [\n hasNavigation.value ? (openBlock(), createElementBlock(\"nav\", {\n key: 0,\n class: normalizeClass([\"dialog__navigation\", __props.navigationClasses]),\n \"aria-label\": navigationAriaLabelAttr.value,\n \"aria-labelledby\": navigationAriaLabelledbyAttr.value\n }, [\n renderSlot(_ctx.$slots, \"navigation\", { isCollapsed: isNavigationCollapsed.value }, void 0, true)\n ], 10, _hoisted_2)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"dialog__content\", __props.contentClasses])\n }, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createElementVNode(\"p\", _hoisted_3, toDisplayString(__props.message), 1)\n ], true)\n ], 2)\n ], 2),\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"actions\", {}, () => [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.buttons, (button, idx) => {\n return openBlock(), createBlock(unref(_sfc_main$1), mergeProps({ key: idx }, { ref_for: true }, button, {\n onClick: (_, result) => handleButtonClose(button, result)\n }), null, 16, [\"onClick\"]);\n }), 128))\n ], true)\n ])\n ]),\n _: 3\n }, 16, [\"class\"]))\n ]),\n _: 3\n }, 16)) : createCommentVNode(\"\", true);\n };\n }\n});\nconst NcDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-24e91b99\"]]);\nexport {\n NcDialog as N\n};\n//# sourceMappingURL=NcDialog.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcInputField.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcInputField.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcInputField.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, warn, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, withDirectives, renderSlot, vShow, createBlock, withCtx, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi.mjs\";\nimport { N as NcButton } from \"./NcButton.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { a as isLegacy } from \"./legacy.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _hoisted_1 = { class: \"input-field__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"type\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = { class: \"input-field__icon input-field__icon--leading\" };\nconst _hoisted_5 = {\n key: 2,\n class: \"input-field__icon input-field__icon--trailing\"\n};\nconst _hoisted_6 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"NcInputField\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: \"\" },\n inputClass: { default: \"\" },\n id: { default: () => createElementId() },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n type: { default: \"text\" },\n placeholder: { default: void 0 },\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: \"\" },\n disabled: { type: Boolean },\n pill: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"trailingButtonClick\"], [\"update:modelValue\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const emit = __emit;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const inputElement = useTemplateRef(\"input\");\n const hasTrailingIcon = computed(() => props.showTrailingButton || props.success);\n const internalPlaceholder = computed(() => {\n if (props.placeholder) {\n return props.placeholder;\n }\n if (props.label) {\n return isLegacy ? props.label : \"\";\n }\n return void 0;\n });\n const isValidLabel = computed(() => {\n const isValidLabel2 = props.label || props.labelOutside;\n if (!isValidLabel2) {\n warn(\"You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n return isValidLabel2;\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (attrs[\"aria-describedby\"]) {\n ariaDescribedby2.push(String(attrs[\"aria-describedby\"]));\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function focus(options) {\n inputElement.value.focus(options);\n }\n function select() {\n inputElement.value.select();\n }\n function handleInput(event) {\n const target = event.target;\n modelValue.value = props.type === \"number\" && typeof modelValue.value === \"number\" ? parseFloat(target.value) : target.value;\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"input-field\", [{\n \"input-field--disabled\": __props.disabled,\n \"input-field--error\": __props.error,\n \"input-field--label-outside\": __props.labelOutside || !isValidLabel.value,\n \"input-field--leading-icon\": !!_ctx.$slots.icon,\n \"input-field--trailing-icon\": hasTrailingIcon.value,\n \"input-field--pill\": __props.pill,\n \"input-field--success\": __props.success,\n \"input-field--legacy\": unref(isLegacy)\n }, _ctx.$props.class]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"input\", mergeProps(_ctx.$attrs, {\n id: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"input-field__input\", __props.inputClass],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n type: __props.type,\n value: modelValue.value.toString(),\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside && isValidLabel.value ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"input-field__label\",\n for: __props.id\n }, toDisplayString(__props.label), 9, _hoisted_3)) : createCommentVNode(\"\", true),\n withDirectives(createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ], 512), [\n [vShow, !!_ctx.$slots.icon]\n ]),\n __props.showTrailingButton ? (openBlock(), createBlock(NcButton, {\n key: 1,\n class: \"input-field__trailing-button\",\n \"aria-label\": __props.trailingButtonLabel,\n disabled: __props.disabled,\n variant: \"tertiary-no-background\",\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"trailingButtonClick\", $event))\n }, {\n icon: withCtx(() => [\n renderSlot(_ctx.$slots, \"trailing-button-icon\", {}, void 0, true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"disabled\"])) : __props.success || __props.error ? (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: unref(mdiCheck)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n path: unref(mdiAlertCircleOutline)\n }, null, 8, [\"path\"]))\n ])) : createCommentVNode(\"\", true)\n ]),\n __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: \"input-field__helper-text-message\"\n }, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : __props.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"input-field__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(__props.helperText), 1)\n ], 8, _hoisted_6)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcInputField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-feb04bef\"]]);\nexport {\n NcInputField as N\n};\n//# sourceMappingURL=NcInputField.mjs.map\n","/*!\n * qrcode.vue v3.11.0\n * A Vue.js component to generate QRCode. Both support Vue 2 and Vue 3\n * © 2017-PRESENT @scopewu(https://github.com/scopewu)\n * @license MIT.\n */\nimport { defineComponent, ref, computed, h, onMounted, watchEffect, Fragment } from 'vue';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\n/*\n * QR Code generator library (TypeScript)\n *\n * Copyright (c) Project Nayuki. (MIT License)\n * https://www.nayuki.io/page/qr-code-generator-library\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n * - The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * - The Software is provided \"as is\", without warranty of any kind, express or\n * implied, including but not limited to the warranties of merchantability,\n * fitness for a particular purpose and noninfringement. In no event shall the\n * authors or copyright holders be liable for any claim, damages or other\n * liability, whether in an action of contract, tort or otherwise, arising from,\n * out of or in connection with the Software or the use or other dealings in the\n * Software.\n */\nvar qrcodegen;\n(function (qrcodegen) {\n /*---- QR Code symbol class ----*/\n /*\n * A QR Code symbol, which is a type of two-dimension barcode.\n * Invented by Denso Wave and described in the ISO/IEC 18004 standard.\n * Instances of this class represent an immutable square grid of dark and light cells.\n * The class provides static factory functions to create a QR Code from text or binary data.\n * The class covers the QR Code Model 2 specification, supporting all versions (sizes)\n * from 1 to 40, all 4 error correction levels, and 4 character encoding modes.\n *\n * Ways to create a QR Code object:\n * - High level: Take the payload data and call QrCode.encodeText() or QrCode.encodeBinary().\n * - Mid level: Custom-make the list of segments and call QrCode.encodeSegments().\n * - Low level: Custom-make the array of data codeword bytes (including\n * segment headers and final padding, excluding error correction codewords),\n * supply the appropriate version number, and call the QrCode() constructor.\n * (Note that all ways require supplying the desired error correction level.)\n */\n var QrCode = /** @class */ (function () {\n /*-- Constructor (low level) and fields --*/\n // Creates a new QR Code with the given version number,\n // error correction level, data codeword bytes, and mask number.\n // This is a low-level API that most users should not use directly.\n // A mid-level API is the encodeSegments() function.\n function QrCode(\n // The version number of this QR Code, which is between 1 and 40 (inclusive).\n // This determines the size of this barcode.\n version, \n // The error correction level used in this QR Code.\n errorCorrectionLevel, dataCodewords, msk) {\n this.version = version;\n this.errorCorrectionLevel = errorCorrectionLevel;\n // The modules of this QR Code (false = light, true = dark).\n // Immutable after constructor finishes. Accessed through getModule().\n this.modules = [];\n // Indicates function modules that are not subjected to masking. Discarded when constructor finishes.\n this.isFunction = [];\n // Check scalar arguments\n if (version < QrCode.MIN_VERSION || version > QrCode.MAX_VERSION)\n throw new RangeError(\"Version value out of range\");\n if (msk < -1 || msk > 7)\n throw new RangeError(\"Mask value out of range\");\n this.size = version * 4 + 17;\n // Initialize both grids to be size*size arrays of Boolean false\n var row = [];\n for (var i = 0; i < this.size; i++)\n row.push(false);\n for (var i = 0; i < this.size; i++) {\n this.modules.push(row.slice()); // Initially all light\n this.isFunction.push(row.slice());\n }\n // Compute ECC, draw modules\n this.drawFunctionPatterns();\n var allCodewords = this.addEccAndInterleave(dataCodewords);\n this.drawCodewords(allCodewords);\n // Do masking\n if (msk == -1) { // Automatically choose best mask\n var minPenalty = 1000000000;\n for (var i = 0; i < 8; i++) {\n this.applyMask(i);\n this.drawFormatBits(i);\n var penalty = this.getPenaltyScore();\n if (penalty < minPenalty) {\n msk = i;\n minPenalty = penalty;\n }\n this.applyMask(i); // Undoes the mask due to XOR\n }\n }\n assert(0 <= msk && msk <= 7);\n this.mask = msk;\n this.applyMask(msk); // Apply the final choice of mask\n this.drawFormatBits(msk); // Overwrite old format bits\n this.isFunction = [];\n }\n /*-- Static factory functions (high level) --*/\n // Returns a QR Code representing the given Unicode text string at the given error correction level.\n // As a conservative upper bound, this function is guaranteed to succeed for strings that have 738 or fewer\n // Unicode code points (not UTF-16 code units) if the low error correction level is used. The smallest possible\n // QR Code version is automatically chosen for the output. The ECC level of the result may be higher than the\n // ecl argument if it can be done without increasing the version.\n QrCode.encodeText = function (text, ecl) {\n var segs = qrcodegen.QrSegment.makeSegments(text);\n return QrCode.encodeSegments(segs, ecl);\n };\n // Returns a QR Code representing the given binary data at the given error correction level.\n // This function always encodes using the binary segment mode, not any text mode. The maximum number of\n // bytes allowed is 2953. The smallest possible QR Code version is automatically chosen for the output.\n // The ECC level of the result may be higher than the ecl argument if it can be done without increasing the version.\n QrCode.encodeBinary = function (data, ecl) {\n var seg = qrcodegen.QrSegment.makeBytes(data);\n return QrCode.encodeSegments([seg], ecl);\n };\n /*-- Static factory functions (mid level) --*/\n // Returns a QR Code representing the given segments with the given encoding parameters.\n // The smallest possible QR Code version within the given range is automatically\n // chosen for the output. Iff boostEcl is true, then the ECC level of the result\n // may be higher than the ecl argument if it can be done without increasing the\n // version. The mask number is either between 0 to 7 (inclusive) to force that\n // mask, or -1 to automatically choose an appropriate mask (which may be slow).\n // This function allows the user to create a custom sequence of segments that switches\n // between modes (such as alphanumeric and byte) to encode text in less space.\n // This is a mid-level API; the high-level API is encodeText() and encodeBinary().\n QrCode.encodeSegments = function (segs, ecl, minVersion, maxVersion, mask, boostEcl) {\n if (minVersion === void 0) { minVersion = 1; }\n if (maxVersion === void 0) { maxVersion = 40; }\n if (mask === void 0) { mask = -1; }\n if (boostEcl === void 0) { boostEcl = true; }\n if (!(QrCode.MIN_VERSION <= minVersion && minVersion <= maxVersion && maxVersion <= QrCode.MAX_VERSION)\n || mask < -1 || mask > 7)\n throw new RangeError(\"Invalid value\");\n // Find the minimal version number to use\n var version;\n var dataUsedBits;\n for (version = minVersion;; version++) {\n var dataCapacityBits_1 = QrCode.getNumDataCodewords(version, ecl) * 8; // Number of data bits available\n var usedBits = QrSegment.getTotalBits(segs, version);\n if (usedBits <= dataCapacityBits_1) {\n dataUsedBits = usedBits;\n break; // This version number is found to be suitable\n }\n if (version >= maxVersion) // All versions in the range could not fit the given data\n throw new RangeError(\"Data too long\");\n }\n // Increase the error correction level while the data still fits in the current version number\n for (var _i = 0, _a = [QrCode.Ecc.MEDIUM, QrCode.Ecc.QUARTILE, QrCode.Ecc.HIGH]; _i < _a.length; _i++) { // From low to high\n var newEcl = _a[_i];\n if (boostEcl && dataUsedBits <= QrCode.getNumDataCodewords(version, newEcl) * 8)\n ecl = newEcl;\n }\n // Concatenate all segments to create the data bit string\n var bb = [];\n for (var _b = 0, segs_1 = segs; _b < segs_1.length; _b++) {\n var seg = segs_1[_b];\n appendBits(seg.mode.modeBits, 4, bb);\n appendBits(seg.numChars, seg.mode.numCharCountBits(version), bb);\n for (var _c = 0, _d = seg.getData(); _c < _d.length; _c++) {\n var b = _d[_c];\n bb.push(b);\n }\n }\n assert(bb.length == dataUsedBits);\n // Add terminator and pad up to a byte if applicable\n var dataCapacityBits = QrCode.getNumDataCodewords(version, ecl) * 8;\n assert(bb.length <= dataCapacityBits);\n appendBits(0, Math.min(4, dataCapacityBits - bb.length), bb);\n appendBits(0, (8 - bb.length % 8) % 8, bb);\n assert(bb.length % 8 == 0);\n // Pad with alternating bytes until data capacity is reached\n for (var padByte = 0xEC; bb.length < dataCapacityBits; padByte ^= 0xEC ^ 0x11)\n appendBits(padByte, 8, bb);\n // Pack bits into bytes in big endian\n var dataCodewords = [];\n while (dataCodewords.length * 8 < bb.length)\n dataCodewords.push(0);\n bb.forEach(function (b, i) {\n return dataCodewords[i >>> 3] |= b << (7 - (i & 7));\n });\n // Create the QR Code object\n return new QrCode(version, ecl, dataCodewords, mask);\n };\n /*-- Accessor methods --*/\n // Returns the color of the module (pixel) at the given coordinates, which is false\n // for light or true for dark. The top left corner has the coordinates (x=0, y=0).\n // If the given coordinates are out of bounds, then false (light) is returned.\n QrCode.prototype.getModule = function (x, y) {\n return 0 <= x && x < this.size && 0 <= y && y < this.size && this.modules[y][x];\n };\n QrCode.prototype.getModules = function () {\n return this.modules;\n };\n /*-- Private helper methods for constructor: Drawing function modules --*/\n // Reads this object's version field, and draws and marks all function modules.\n QrCode.prototype.drawFunctionPatterns = function () {\n // Draw horizontal and vertical timing patterns\n for (var i = 0; i < this.size; i++) {\n this.setFunctionModule(6, i, i % 2 == 0);\n this.setFunctionModule(i, 6, i % 2 == 0);\n }\n // Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules)\n this.drawFinderPattern(3, 3);\n this.drawFinderPattern(this.size - 4, 3);\n this.drawFinderPattern(3, this.size - 4);\n // Draw numerous alignment patterns\n var alignPatPos = this.getAlignmentPatternPositions();\n var numAlign = alignPatPos.length;\n for (var i = 0; i < numAlign; i++) {\n for (var j = 0; j < numAlign; j++) {\n // Don't draw on the three finder corners\n if (!(i == 0 && j == 0 || i == 0 && j == numAlign - 1 || i == numAlign - 1 && j == 0))\n this.drawAlignmentPattern(alignPatPos[i], alignPatPos[j]);\n }\n }\n // Draw configuration data\n this.drawFormatBits(0); // Dummy mask value; overwritten later in the constructor\n this.drawVersion();\n };\n // Draws two copies of the format bits (with its own error correction code)\n // based on the given mask and this object's error correction level field.\n QrCode.prototype.drawFormatBits = function (mask) {\n // Calculate error correction code and pack bits\n var data = this.errorCorrectionLevel.formatBits << 3 | mask; // errCorrLvl is uint2, mask is uint3\n var rem = data;\n for (var i = 0; i < 10; i++)\n rem = (rem << 1) ^ ((rem >>> 9) * 0x537);\n var bits = (data << 10 | rem) ^ 0x5412; // uint15\n assert(bits >>> 15 == 0);\n // Draw first copy\n for (var i = 0; i <= 5; i++)\n this.setFunctionModule(8, i, getBit(bits, i));\n this.setFunctionModule(8, 7, getBit(bits, 6));\n this.setFunctionModule(8, 8, getBit(bits, 7));\n this.setFunctionModule(7, 8, getBit(bits, 8));\n for (var i = 9; i < 15; i++)\n this.setFunctionModule(14 - i, 8, getBit(bits, i));\n // Draw second copy\n for (var i = 0; i < 8; i++)\n this.setFunctionModule(this.size - 1 - i, 8, getBit(bits, i));\n for (var i = 8; i < 15; i++)\n this.setFunctionModule(8, this.size - 15 + i, getBit(bits, i));\n this.setFunctionModule(8, this.size - 8, true); // Always dark\n };\n // Draws two copies of the version bits (with its own error correction code),\n // based on this object's version field, iff 7 <= version <= 40.\n QrCode.prototype.drawVersion = function () {\n if (this.version < 7)\n return;\n // Calculate error correction code and pack bits\n var rem = this.version; // version is uint6, in the range [7, 40]\n for (var i = 0; i < 12; i++)\n rem = (rem << 1) ^ ((rem >>> 11) * 0x1F25);\n var bits = this.version << 12 | rem; // uint18\n assert(bits >>> 18 == 0);\n // Draw two copies\n for (var i = 0; i < 18; i++) {\n var color = getBit(bits, i);\n var a = this.size - 11 + i % 3;\n var b = Math.floor(i / 3);\n this.setFunctionModule(a, b, color);\n this.setFunctionModule(b, a, color);\n }\n };\n // Draws a 9*9 finder pattern including the border separator,\n // with the center module at (x, y). Modules can be out of bounds.\n QrCode.prototype.drawFinderPattern = function (x, y) {\n for (var dy = -4; dy <= 4; dy++) {\n for (var dx = -4; dx <= 4; dx++) {\n var dist = Math.max(Math.abs(dx), Math.abs(dy)); // Chebyshev/infinity norm\n var xx = x + dx;\n var yy = y + dy;\n if (0 <= xx && xx < this.size && 0 <= yy && yy < this.size)\n this.setFunctionModule(xx, yy, dist != 2 && dist != 4);\n }\n }\n };\n // Draws a 5*5 alignment pattern, with the center module\n // at (x, y). All modules must be in bounds.\n QrCode.prototype.drawAlignmentPattern = function (x, y) {\n for (var dy = -2; dy <= 2; dy++) {\n for (var dx = -2; dx <= 2; dx++)\n this.setFunctionModule(x + dx, y + dy, Math.max(Math.abs(dx), Math.abs(dy)) != 1);\n }\n };\n // Sets the color of a module and marks it as a function module.\n // Only used by the constructor. Coordinates must be in bounds.\n QrCode.prototype.setFunctionModule = function (x, y, isDark) {\n this.modules[y][x] = isDark;\n this.isFunction[y][x] = true;\n };\n /*-- Private helper methods for constructor: Codewords and masking --*/\n // Returns a new byte string representing the given data with the appropriate error correction\n // codewords appended to it, based on this object's version and error correction level.\n QrCode.prototype.addEccAndInterleave = function (data) {\n var ver = this.version;\n var ecl = this.errorCorrectionLevel;\n if (data.length != QrCode.getNumDataCodewords(ver, ecl))\n throw new RangeError(\"Invalid argument\");\n // Calculate parameter numbers\n var numBlocks = QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n var blockEccLen = QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver];\n var rawCodewords = Math.floor(QrCode.getNumRawDataModules(ver) / 8);\n var numShortBlocks = numBlocks - rawCodewords % numBlocks;\n var shortBlockLen = Math.floor(rawCodewords / numBlocks);\n // Split data into blocks and append ECC to each block\n var blocks = [];\n var rsDiv = QrCode.reedSolomonComputeDivisor(blockEccLen);\n for (var i = 0, k = 0; i < numBlocks; i++) {\n var dat = data.slice(k, k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1));\n k += dat.length;\n var ecc = QrCode.reedSolomonComputeRemainder(dat, rsDiv);\n if (i < numShortBlocks)\n dat.push(0);\n blocks.push(dat.concat(ecc));\n }\n // Interleave (not concatenate) the bytes from every block into a single sequence\n var result = [];\n var _loop_1 = function (i) {\n blocks.forEach(function (block, j) {\n // Skip the padding byte in short blocks\n if (i != shortBlockLen - blockEccLen || j >= numShortBlocks)\n result.push(block[i]);\n });\n };\n for (var i = 0; i < blocks[0].length; i++) {\n _loop_1(i);\n }\n assert(result.length == rawCodewords);\n return result;\n };\n // Draws the given sequence of 8-bit codewords (data and error correction) onto the entire\n // data area of this QR Code. Function modules need to be marked off before this is called.\n QrCode.prototype.drawCodewords = function (data) {\n if (data.length != Math.floor(QrCode.getNumRawDataModules(this.version) / 8))\n throw new RangeError(\"Invalid argument\");\n var i = 0; // Bit index into the data\n // Do the funny zigzag scan\n for (var right = this.size - 1; right >= 1; right -= 2) { // Index of right column in each column pair\n if (right == 6)\n right = 5;\n for (var vert = 0; vert < this.size; vert++) { // Vertical counter\n for (var j = 0; j < 2; j++) {\n var x = right - j; // Actual x coordinate\n var upward = ((right + 1) & 2) == 0;\n var y = upward ? this.size - 1 - vert : vert; // Actual y coordinate\n if (!this.isFunction[y][x] && i < data.length * 8) {\n this.modules[y][x] = getBit(data[i >>> 3], 7 - (i & 7));\n i++;\n }\n // If this QR Code has any remainder bits (0 to 7), they were assigned as\n // 0/false/light by the constructor and are left unchanged by this method\n }\n }\n }\n assert(i == data.length * 8);\n };\n // XORs the codeword modules in this QR Code with the given mask pattern.\n // The function modules must be marked and the codeword bits must be drawn\n // before masking. Due to the arithmetic of XOR, calling applyMask() with\n // the same mask value a second time will undo the mask. A final well-formed\n // QR Code needs exactly one (not zero, two, etc.) mask applied.\n QrCode.prototype.applyMask = function (mask) {\n if (mask < 0 || mask > 7)\n throw new RangeError(\"Mask value out of range\");\n for (var y = 0; y < this.size; y++) {\n for (var x = 0; x < this.size; x++) {\n var invert = void 0;\n switch (mask) {\n case 0:\n invert = (x + y) % 2 == 0;\n break;\n case 1:\n invert = y % 2 == 0;\n break;\n case 2:\n invert = x % 3 == 0;\n break;\n case 3:\n invert = (x + y) % 3 == 0;\n break;\n case 4:\n invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 == 0;\n break;\n case 5:\n invert = x * y % 2 + x * y % 3 == 0;\n break;\n case 6:\n invert = (x * y % 2 + x * y % 3) % 2 == 0;\n break;\n case 7:\n invert = ((x + y) % 2 + x * y % 3) % 2 == 0;\n break;\n default: throw new Error(\"Unreachable\");\n }\n if (!this.isFunction[y][x] && invert)\n this.modules[y][x] = !this.modules[y][x];\n }\n }\n };\n // Calculates and returns the penalty score based on state of this QR Code's current modules.\n // This is used by the automatic mask choice algorithm to find the mask pattern that yields the lowest score.\n QrCode.prototype.getPenaltyScore = function () {\n var result = 0;\n // Adjacent modules in row having same color, and finder-like patterns\n for (var y = 0; y < this.size; y++) {\n var runColor = false;\n var runX = 0;\n var runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (var x = 0; x < this.size; x++) {\n if (this.modules[y][x] == runColor) {\n runX++;\n if (runX == 5)\n result += QrCode.PENALTY_N1;\n else if (runX > 5)\n result++;\n }\n else {\n this.finderPenaltyAddHistory(runX, runHistory);\n if (!runColor)\n result += this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3;\n runColor = this.modules[y][x];\n runX = 1;\n }\n }\n result += this.finderPenaltyTerminateAndCount(runColor, runX, runHistory) * QrCode.PENALTY_N3;\n }\n // Adjacent modules in column having same color, and finder-like patterns\n for (var x = 0; x < this.size; x++) {\n var runColor = false;\n var runY = 0;\n var runHistory = [0, 0, 0, 0, 0, 0, 0];\n for (var y = 0; y < this.size; y++) {\n if (this.modules[y][x] == runColor) {\n runY++;\n if (runY == 5)\n result += QrCode.PENALTY_N1;\n else if (runY > 5)\n result++;\n }\n else {\n this.finderPenaltyAddHistory(runY, runHistory);\n if (!runColor)\n result += this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3;\n runColor = this.modules[y][x];\n runY = 1;\n }\n }\n result += this.finderPenaltyTerminateAndCount(runColor, runY, runHistory) * QrCode.PENALTY_N3;\n }\n // 2*2 blocks of modules having same color\n for (var y = 0; y < this.size - 1; y++) {\n for (var x = 0; x < this.size - 1; x++) {\n var color = this.modules[y][x];\n if (color == this.modules[y][x + 1] &&\n color == this.modules[y + 1][x] &&\n color == this.modules[y + 1][x + 1])\n result += QrCode.PENALTY_N2;\n }\n }\n // Balance of dark and light modules\n var dark = 0;\n for (var _i = 0, _a = this.modules; _i < _a.length; _i++) {\n var row = _a[_i];\n dark = row.reduce(function (sum, color) { return sum + (color ? 1 : 0); }, dark);\n }\n var total = this.size * this.size; // Note that size is odd, so dark/total != 1/2\n // Compute the smallest integer k >= 0 such that (45-5k)% <= dark/total <= (55+5k)%\n var k = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1;\n assert(0 <= k && k <= 9);\n result += k * QrCode.PENALTY_N4;\n assert(0 <= result && result <= 2568888); // Non-tight upper bound based on default values of PENALTY_N1, ..., N4\n return result;\n };\n /*-- Private helper functions --*/\n // Returns an ascending list of positions of alignment patterns for this version number.\n // Each position is in the range [0,177), and are used on both the x and y axes.\n // This could be implemented as lookup table of 40 variable-length lists of integers.\n QrCode.prototype.getAlignmentPatternPositions = function () {\n if (this.version == 1)\n return [];\n else {\n var numAlign = Math.floor(this.version / 7) + 2;\n var step = Math.floor((this.version * 8 + numAlign * 3 + 5) / (numAlign * 4 - 4)) * 2;\n var result = [6];\n for (var pos = this.size - 7; result.length < numAlign; pos -= step)\n result.splice(1, 0, pos);\n return result;\n }\n };\n // Returns the number of data bits that can be stored in a QR Code of the given version number, after\n // all function modules are excluded. This includes remainder bits, so it might not be a multiple of 8.\n // The result is in the range [208, 29648]. This could be implemented as a 40-entry lookup table.\n QrCode.getNumRawDataModules = function (ver) {\n if (ver < QrCode.MIN_VERSION || ver > QrCode.MAX_VERSION)\n throw new RangeError(\"Version number out of range\");\n var result = (16 * ver + 128) * ver + 64;\n if (ver >= 2) {\n var numAlign = Math.floor(ver / 7) + 2;\n result -= (25 * numAlign - 10) * numAlign - 55;\n if (ver >= 7)\n result -= 36;\n }\n assert(208 <= result && result <= 29648);\n return result;\n };\n // Returns the number of 8-bit data (i.e. not error correction) codewords contained in any\n // QR Code of the given version number and error correction level, with remainder bits discarded.\n // This stateless pure function could be implemented as a (40*4)-cell lookup table.\n QrCode.getNumDataCodewords = function (ver, ecl) {\n return Math.floor(QrCode.getNumRawDataModules(ver) / 8) -\n QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver] *\n QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver];\n };\n // Returns a Reed-Solomon ECC generator polynomial for the given degree. This could be\n // implemented as a lookup table over all possible parameter values, instead of as an algorithm.\n QrCode.reedSolomonComputeDivisor = function (degree) {\n if (degree < 1 || degree > 255)\n throw new RangeError(\"Degree out of range\");\n // Polynomial coefficients are stored from highest to lowest power, excluding the leading term which is always 1.\n // For example the polynomial x^3 + 255x^2 + 8x + 93 is stored as the uint8 array [255, 8, 93].\n var result = [];\n for (var i = 0; i < degree - 1; i++)\n result.push(0);\n result.push(1); // Start off with the monomial x^0\n // Compute the product polynomial (x - r^0) * (x - r^1) * (x - r^2) * ... * (x - r^{degree-1}),\n // and drop the highest monomial term which is always 1x^degree.\n // Note that r = 0x02, which is a generator element of this field GF(2^8/0x11D).\n var root = 1;\n for (var i = 0; i < degree; i++) {\n // Multiply the current product by (x - r^i)\n for (var j = 0; j < result.length; j++) {\n result[j] = QrCode.reedSolomonMultiply(result[j], root);\n if (j + 1 < result.length)\n result[j] ^= result[j + 1];\n }\n root = QrCode.reedSolomonMultiply(root, 0x02);\n }\n return result;\n };\n // Returns the Reed-Solomon error correction codeword for the given data and divisor polynomials.\n QrCode.reedSolomonComputeRemainder = function (data, divisor) {\n var result = divisor.map(function (_) { return 0; });\n var _loop_2 = function (b) {\n var factor = b ^ result.shift();\n result.push(0);\n divisor.forEach(function (coef, i) {\n return result[i] ^= QrCode.reedSolomonMultiply(coef, factor);\n });\n };\n for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {\n var b = data_1[_i];\n _loop_2(b);\n }\n return result;\n };\n // Returns the product of the two given field elements modulo GF(2^8/0x11D). The arguments and result\n // are unsigned 8-bit integers. This could be implemented as a lookup table of 256*256 entries of uint8.\n QrCode.reedSolomonMultiply = function (x, y) {\n if (x >>> 8 != 0 || y >>> 8 != 0)\n throw new RangeError(\"Byte out of range\");\n // Russian peasant multiplication\n var z = 0;\n for (var i = 7; i >= 0; i--) {\n z = (z << 1) ^ ((z >>> 7) * 0x11D);\n z ^= ((y >>> i) & 1) * x;\n }\n assert(z >>> 8 == 0);\n return z;\n };\n // Can only be called immediately after a light run is added, and\n // returns either 0, 1, or 2. A helper function for getPenaltyScore().\n QrCode.prototype.finderPenaltyCountPatterns = function (runHistory) {\n var n = runHistory[1];\n assert(n <= this.size * 3);\n var core = n > 0 && runHistory[2] == n && runHistory[3] == n * 3 && runHistory[4] == n && runHistory[5] == n;\n return (core && runHistory[0] >= n * 4 && runHistory[6] >= n ? 1 : 0)\n + (core && runHistory[6] >= n * 4 && runHistory[0] >= n ? 1 : 0);\n };\n // Must be called at the end of a line (row or column) of modules. A helper function for getPenaltyScore().\n QrCode.prototype.finderPenaltyTerminateAndCount = function (currentRunColor, currentRunLength, runHistory) {\n if (currentRunColor) { // Terminate dark run\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n currentRunLength = 0;\n }\n currentRunLength += this.size; // Add light border to final run\n this.finderPenaltyAddHistory(currentRunLength, runHistory);\n return this.finderPenaltyCountPatterns(runHistory);\n };\n // Pushes the given value to the front and drops the last value. A helper function for getPenaltyScore().\n QrCode.prototype.finderPenaltyAddHistory = function (currentRunLength, runHistory) {\n if (runHistory[0] == 0)\n currentRunLength += this.size; // Add light border to initial run\n runHistory.pop();\n runHistory.unshift(currentRunLength);\n };\n /*-- Constants and tables --*/\n // The minimum version number supported in the QR Code Model 2 standard.\n QrCode.MIN_VERSION = 1;\n // The maximum version number supported in the QR Code Model 2 standard.\n QrCode.MAX_VERSION = 40;\n // For use in getPenaltyScore(), when evaluating which mask is best.\n QrCode.PENALTY_N1 = 3;\n QrCode.PENALTY_N2 = 3;\n QrCode.PENALTY_N3 = 40;\n QrCode.PENALTY_N4 = 10;\n QrCode.ECC_CODEWORDS_PER_BLOCK = [\n // Version: (note that index 0 is for padding, and is set to an illegal value)\n //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level\n [-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // Low\n [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28], // Medium\n [-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // Quartile\n [-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // High\n ];\n QrCode.NUM_ERROR_CORRECTION_BLOCKS = [\n // Version: (note that index 0 is for padding, and is set to an illegal value)\n //0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level\n [-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25], // Low\n [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49], // Medium\n [-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68], // Quartile\n [-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81], // High\n ];\n return QrCode;\n }());\n qrcodegen.QrCode = QrCode;\n // Appends the given number of low-order bits of the given value\n // to the given buffer. Requires 0 <= len <= 31 and 0 <= val < 2^len.\n function appendBits(val, len, bb) {\n if (len < 0 || len > 31 || val >>> len != 0)\n throw new RangeError(\"Value out of range\");\n for (var i = len - 1; i >= 0; i--) // Append bit by bit\n bb.push((val >>> i) & 1);\n }\n // Returns true iff the i'th bit of x is set to 1.\n function getBit(x, i) {\n return ((x >>> i) & 1) != 0;\n }\n // Throws an exception if the given condition is false.\n function assert(cond) {\n if (!cond)\n throw new Error(\"Assertion error\");\n }\n /*---- Data segment class ----*/\n /*\n * A segment of character/binary/control data in a QR Code symbol.\n * Instances of this class are immutable.\n * The mid-level way to create a segment is to take the payload data\n * and call a static factory function such as QrSegment.makeNumeric().\n * The low-level way to create a segment is to custom-make the bit buffer\n * and call the QrSegment() constructor with appropriate values.\n * This segment class imposes no length restrictions, but QR Codes have restrictions.\n * Even in the most favorable conditions, a QR Code can only hold 7089 characters of data.\n * Any segment longer than this is meaningless for the purpose of generating QR Codes.\n */\n var QrSegment = /** @class */ (function () {\n /*-- Constructor (low level) and fields --*/\n // Creates a new QR Code segment with the given attributes and data.\n // The character count (numChars) must agree with the mode and the bit buffer length,\n // but the constraint isn't checked. The given bit buffer is cloned and stored.\n function QrSegment(\n // The mode indicator of this segment.\n mode, \n // The length of this segment's unencoded data. Measured in characters for\n // numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode.\n // Always zero or positive. Not the same as the data's bit length.\n numChars, \n // The data bits of this segment. Accessed through getData().\n bitData) {\n this.mode = mode;\n this.numChars = numChars;\n this.bitData = bitData;\n if (numChars < 0)\n throw new RangeError(\"Invalid argument\");\n this.bitData = bitData.slice(); // Make defensive copy\n }\n /*-- Static factory functions (mid level) --*/\n // Returns a segment representing the given binary data encoded in\n // byte mode. All input byte arrays are acceptable. Any text string\n // can be converted to UTF-8 bytes and encoded as a byte mode segment.\n QrSegment.makeBytes = function (data) {\n var bb = [];\n for (var _i = 0, data_2 = data; _i < data_2.length; _i++) {\n var b = data_2[_i];\n appendBits(b, 8, bb);\n }\n return new QrSegment(QrSegment.Mode.BYTE, data.length, bb);\n };\n // Returns a segment representing the given string of decimal digits encoded in numeric mode.\n QrSegment.makeNumeric = function (digits) {\n if (!QrSegment.isNumeric(digits))\n throw new RangeError(\"String contains non-numeric characters\");\n var bb = [];\n for (var i = 0; i < digits.length;) { // Consume up to 3 digits per iteration\n var n = Math.min(digits.length - i, 3);\n appendBits(parseInt(digits.substring(i, i + n), 10), n * 3 + 1, bb);\n i += n;\n }\n return new QrSegment(QrSegment.Mode.NUMERIC, digits.length, bb);\n };\n // Returns a segment representing the given text string encoded in alphanumeric mode.\n // The characters allowed are: 0 to 9, A to Z (uppercase only), space,\n // dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n QrSegment.makeAlphanumeric = function (text) {\n if (!QrSegment.isAlphanumeric(text))\n throw new RangeError(\"String contains unencodable characters in alphanumeric mode\");\n var bb = [];\n var i;\n for (i = 0; i + 2 <= text.length; i += 2) { // Process groups of 2\n var temp = QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45;\n temp += QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1));\n appendBits(temp, 11, bb);\n }\n if (i < text.length) // 1 character remaining\n appendBits(QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)), 6, bb);\n return new QrSegment(QrSegment.Mode.ALPHANUMERIC, text.length, bb);\n };\n // Returns a new mutable list of zero or more segments to represent the given Unicode text string.\n // The result may use various segment modes and switch modes to optimize the length of the bit stream.\n QrSegment.makeSegments = function (text) {\n // Select the most efficient segment encoding automatically\n if (text == \"\")\n return [];\n else if (QrSegment.isNumeric(text))\n return [QrSegment.makeNumeric(text)];\n else if (QrSegment.isAlphanumeric(text))\n return [QrSegment.makeAlphanumeric(text)];\n else\n return [QrSegment.makeBytes(QrSegment.toUtf8ByteArray(text))];\n };\n // Returns a segment representing an Extended Channel Interpretation\n // (ECI) designator with the given assignment value.\n QrSegment.makeEci = function (assignVal) {\n var bb = [];\n if (assignVal < 0)\n throw new RangeError(\"ECI assignment value out of range\");\n else if (assignVal < (1 << 7))\n appendBits(assignVal, 8, bb);\n else if (assignVal < (1 << 14)) {\n appendBits(2, 2, bb);\n appendBits(assignVal, 14, bb);\n }\n else if (assignVal < 1000000) {\n appendBits(6, 3, bb);\n appendBits(assignVal, 21, bb);\n }\n else\n throw new RangeError(\"ECI assignment value out of range\");\n return new QrSegment(QrSegment.Mode.ECI, 0, bb);\n };\n // Tests whether the given string can be encoded as a segment in numeric mode.\n // A string is encodable iff each character is in the range 0 to 9.\n QrSegment.isNumeric = function (text) {\n return QrSegment.NUMERIC_REGEX.test(text);\n };\n // Tests whether the given string can be encoded as a segment in alphanumeric mode.\n // A string is encodable iff each character is in the following set: 0 to 9, A to Z\n // (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n QrSegment.isAlphanumeric = function (text) {\n return QrSegment.ALPHANUMERIC_REGEX.test(text);\n };\n /*-- Methods --*/\n // Returns a new copy of the data bits of this segment.\n QrSegment.prototype.getData = function () {\n return this.bitData.slice(); // Make defensive copy\n };\n // (Package-private) Calculates and returns the number of bits needed to encode the given segments at\n // the given version. The result is infinity if a segment has too many characters to fit its length field.\n QrSegment.getTotalBits = function (segs, version) {\n var result = 0;\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n var ccbits = seg.mode.numCharCountBits(version);\n if (seg.numChars >= (1 << ccbits))\n return Infinity; // The segment's length doesn't fit the field's bit width\n result += 4 + ccbits + seg.bitData.length;\n }\n return result;\n };\n // Returns a new array of bytes representing the given string encoded in UTF-8.\n QrSegment.toUtf8ByteArray = function (str) {\n str = encodeURI(str);\n var result = [];\n for (var i = 0; i < str.length; i++) {\n if (str.charAt(i) != \"%\")\n result.push(str.charCodeAt(i));\n else {\n result.push(parseInt(str.substring(i + 1, i + 3), 16));\n i += 2;\n }\n }\n return result;\n };\n /*-- Constants --*/\n // Describes precisely all strings that are encodable in numeric mode.\n QrSegment.NUMERIC_REGEX = /^[0-9]*$/;\n // Describes precisely all strings that are encodable in alphanumeric mode.\n QrSegment.ALPHANUMERIC_REGEX = /^[A-Z0-9 $%*+.\\/:-]*$/;\n // The set of all legal characters in alphanumeric mode,\n // where each character value maps to the index in the string.\n QrSegment.ALPHANUMERIC_CHARSET = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\";\n return QrSegment;\n }());\n qrcodegen.QrSegment = QrSegment;\n})(qrcodegen || (qrcodegen = {}));\n/*---- Public helper enumeration ----*/\n(function (qrcodegen) {\n (function (QrCode) {\n /*\n * The error correction level in a QR Code symbol. Immutable.\n */\n var Ecc = /** @class */ (function () {\n /*-- Constructor and fields --*/\n function Ecc(\n // In the range 0 to 3 (unsigned 2-bit integer).\n ordinal, \n // (Package-private) In the range 0 to 3 (unsigned 2-bit integer).\n formatBits) {\n this.ordinal = ordinal;\n this.formatBits = formatBits;\n }\n /*-- Constants --*/\n Ecc.LOW = new Ecc(0, 1); // The QR Code can tolerate about 7% erroneous codewords\n Ecc.MEDIUM = new Ecc(1, 0); // The QR Code can tolerate about 15% erroneous codewords\n Ecc.QUARTILE = new Ecc(2, 3); // The QR Code can tolerate about 25% erroneous codewords\n Ecc.HIGH = new Ecc(3, 2); // The QR Code can tolerate about 30% erroneous codewords\n return Ecc;\n }());\n QrCode.Ecc = Ecc;\n })(qrcodegen.QrCode || (qrcodegen.QrCode = {}));\n})(qrcodegen || (qrcodegen = {}));\n/*---- Public helper enumeration ----*/\n(function (qrcodegen) {\n (function (QrSegment) {\n /*\n * Describes how a segment's data bits are interpreted. Immutable.\n */\n var Mode = /** @class */ (function () {\n /*-- Constructor and fields --*/\n function Mode(\n // The mode indicator bits, which is a uint4 value (range 0 to 15).\n modeBits, \n // Number of character count bits for three different version ranges.\n numBitsCharCount) {\n this.modeBits = modeBits;\n this.numBitsCharCount = numBitsCharCount;\n }\n /*-- Method --*/\n // (Package-private) Returns the bit width of the character count field for a segment in\n // this mode in a QR Code at the given version number. The result is in the range [0, 16].\n Mode.prototype.numCharCountBits = function (ver) {\n return this.numBitsCharCount[Math.floor((ver + 7) / 17)];\n };\n /*-- Constants --*/\n Mode.NUMERIC = new Mode(0x1, [10, 12, 14]);\n Mode.ALPHANUMERIC = new Mode(0x2, [9, 11, 13]);\n Mode.BYTE = new Mode(0x4, [8, 16, 16]);\n Mode.KANJI = new Mode(0x8, [8, 10, 12]);\n Mode.ECI = new Mode(0x7, [0, 0, 0]);\n return Mode;\n }());\n QrSegment.Mode = Mode;\n })(qrcodegen.QrSegment || (qrcodegen.QrSegment = {}));\n})(qrcodegen || (qrcodegen = {}));\nvar QR = qrcodegen;\n\nvar _uid = 0;\nfunction getUid(id) {\n if (id)\n return id;\n return \"v-\".concat(_uid++);\n}\nvar defaultErrorCorrectLevel = 'L';\nvar DEFAULT_QR_SIZE = 100;\nvar DEFAULT_MARGIN = 0;\nvar DEFAULT_IMAGE_SIZE_RATIO = 0.1;\nvar IMAGE_EXCAVATE_THICKNESS = 2;\nvar ErrorCorrectLevelMap = {\n L: QR.QrCode.Ecc.LOW,\n M: QR.QrCode.Ecc.MEDIUM,\n Q: QR.QrCode.Ecc.QUARTILE,\n H: QR.QrCode.Ecc.HIGH,\n};\n// Thanks the `qrcode.react`\nvar SUPPORTS_PATH2D = (function () {\n try {\n new Path2D().addPath(new Path2D());\n }\n catch (e) {\n return false;\n }\n return true;\n})();\nfunction validErrorCorrectLevel(level) {\n return level in ErrorCorrectLevelMap;\n}\nfunction getNeighborFlags(modules, row, col) {\n var north = row > 0 ? modules[row - 1][col] : false;\n var south = row < modules.length - 1 ? modules[row + 1][col] : false;\n var west = col > 0 ? modules[row][col - 1] : false;\n var east = col < modules[row].length - 1 ? modules[row][col + 1] : false;\n return {\n nw: !north && !west,\n ne: !north && !east,\n se: !south && !east,\n sw: !south && !west,\n };\n}\nfunction generateRoundedPath(modules, margin, radius) {\n if (margin === void 0) { margin = 0; }\n if (radius === void 0) { radius = 0; }\n var pathSegments = [];\n var r = Math.min(radius, 0.5);\n for (var row = 0; row < modules.length; row++) {\n for (var col = 0; col < modules[row].length; col++) {\n if (!modules[row][col])\n continue;\n var _a = getNeighborFlags(modules, row, col), nw = _a.nw, ne = _a.ne, se = _a.se, sw = _a.sw;\n var x = col + margin;\n var y = row + margin;\n pathSegments.push(\"M\".concat(x + (nw ? r : 0), \" \").concat(y), \"L\".concat(x + 1 - (ne ? r : 0), \" \").concat(y));\n if (ne) {\n pathSegments.push(\"A\".concat(r, \" \").concat(r, \" 0 0 1 \").concat(x + 1, \" \").concat(y + r));\n }\n pathSegments.push(\"L\".concat(x + 1, \" \").concat(y + 1 - (se ? r : 0)));\n if (se) {\n pathSegments.push(\"A\".concat(r, \" \").concat(r, \" 0 0 1 \").concat(x + 1 - r, \" \").concat(y + 1));\n }\n pathSegments.push(\"L\".concat(x + (sw ? r : 0), \" \").concat(y + 1));\n if (sw) {\n pathSegments.push(\"A\".concat(r, \" \").concat(r, \" 0 0 1 \").concat(x, \" \").concat(y + 1 - r));\n }\n pathSegments.push(\"L\".concat(x, \" \").concat(y + (nw ? r : 0)));\n if (nw) {\n pathSegments.push(\"A\".concat(r, \" \").concat(r, \" 0 0 1 \").concat(x + r, \" \").concat(y));\n }\n pathSegments.push('z');\n }\n }\n return pathSegments.join('');\n}\nfunction generatePath(modules, margin) {\n if (margin === void 0) { margin = 0; }\n var pathSegments = [];\n for (var y = 0; y < modules.length; y++) {\n var row = modules[y];\n var start = null;\n for (var x = 0; x < row.length; x++) {\n var cell = row[x];\n if (!cell && start !== null) {\n // M0 0h7v1H0z injects the space with the move and drops the comma,\n pathSegments.push(\"M\".concat(start + margin, \" \").concat(y + margin, \"h\").concat(x - start, \"v1H\").concat(start + margin, \"z\"));\n start = null;\n continue;\n }\n // end of row, clean up or skip\n if (x === row.length - 1) {\n if (!cell) {\n // We would have closed the op above already so this can only mean\n // 2+ light modules in a row.\n continue;\n }\n if (start === null) {\n // Just a single dark module.\n pathSegments.push(\"M\".concat(x + margin, \",\").concat(y + margin, \" h1v1H\").concat(x + margin, \"z\"));\n }\n else {\n // Otherwise finish the current line.\n pathSegments.push(\"M\".concat(start + margin, \",\").concat(y + margin, \" h\").concat(x + 1 - start, \"v1H\").concat(start + margin, \"z\"));\n }\n continue;\n }\n if (cell && start === null) {\n start = x;\n }\n }\n }\n return pathSegments.join('');\n}\nfunction getImageSettings(cells, size, margin, imageSettings) {\n var width = imageSettings.width, height = imageSettings.height, imageX = imageSettings.x, imageY = imageSettings.y;\n var numCells = cells.length + margin * 2;\n var defaultSize = Math.floor(size * DEFAULT_IMAGE_SIZE_RATIO);\n var scale = numCells / size;\n var w = (width || defaultSize) * scale;\n var h = (height || defaultSize) * scale;\n var x = imageX == null ? cells.length / 2 - w / 2 : imageX * scale;\n var y = imageY == null ? cells.length / 2 - h / 2 : imageY * scale;\n var borderRadius = (imageSettings.borderRadius || 0) * scale;\n return { x: x, y: y, h: h, w: w, borderRadius: borderRadius };\n}\nfunction useQRCode(props) {\n var margin = computed(function () { var _a; return ((_a = props.margin) !== null && _a !== void 0 ? _a : DEFAULT_MARGIN) >>> 0; });\n var cells = computed(function () {\n var level = validErrorCorrectLevel(props.level) ? props.level : defaultErrorCorrectLevel;\n return QR.QrCode.encodeText(props.value, ErrorCorrectLevelMap[level]).getModules();\n });\n var numCells = computed(function () { return cells.value.length + margin.value * 2; });\n var fgPath = computed(function () {\n if (props.radius > 0) {\n return generateRoundedPath(cells.value, margin.value, props.radius);\n }\n return generatePath(cells.value, margin.value);\n });\n var imageProps = computed(function () {\n if (!props.imageSettings.src)\n return null;\n var settings = getImageSettings(cells.value, props.size, margin.value, props.imageSettings);\n return {\n x: settings.x + margin.value,\n y: settings.y + margin.value,\n width: settings.w,\n height: settings.h,\n borderRadius: settings.borderRadius,\n };\n });\n var imageBorderProps = computed(function () {\n if (!props.imageSettings.excavate || !imageProps.value)\n return null;\n var borderThickness = IMAGE_EXCAVATE_THICKNESS / (props.size / numCells.value);\n return {\n x: imageProps.value.x - borderThickness,\n y: imageProps.value.y - borderThickness,\n width: imageProps.value.width + borderThickness * 2,\n height: imageProps.value.height + borderThickness * 2,\n borderRadius: imageProps.value.borderRadius,\n };\n });\n return { margin: margin, numCells: numCells, cells: cells, fgPath: fgPath, imageProps: imageProps, imageBorderProps: imageBorderProps };\n}\nfunction downloadDataURLAsFile(data, filename) {\n var link = document.createElement('a');\n link.download = filename;\n link.href = data;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n}\nvar QRCodeProps = {\n value: {\n type: String,\n required: true,\n default: '',\n },\n size: {\n type: Number,\n default: DEFAULT_QR_SIZE,\n },\n level: {\n type: String,\n default: defaultErrorCorrectLevel,\n validator: function (l) { return validErrorCorrectLevel(l); },\n },\n background: {\n type: String,\n default: '#fff',\n },\n foreground: {\n type: String,\n default: '#000',\n },\n margin: {\n type: Number,\n default: DEFAULT_MARGIN,\n validator: function (m) { return m >= 0; },\n },\n imageSettings: {\n type: Object,\n default: function () { return ({}); },\n },\n gradient: {\n type: Boolean,\n default: false,\n },\n gradientType: {\n type: String,\n default: 'linear',\n validator: function (t) { return ['linear', 'radial'].indexOf(t) > -1; },\n },\n gradientStartColor: {\n type: String,\n default: '#000',\n },\n gradientEndColor: {\n type: String,\n default: '#fff',\n },\n radius: {\n type: Number,\n default: 0,\n validator: function (r) { return !isNaN(r) && r >= 0 && r <= 0.5; },\n },\n id: {\n type: String,\n required: false,\n },\n};\nvar QRCodeVueProps = __assign(__assign({}, QRCodeProps), { renderAs: {\n type: String,\n required: false,\n default: 'canvas',\n validator: function (as) { return ['canvas', 'svg'].indexOf(as) > -1; },\n } });\nvar QrcodeSvg = defineComponent({\n name: 'QRCodeSvg',\n props: QRCodeProps,\n setup: function (props, ctx) {\n var _a = useQRCode(props), numCells = _a.numCells, fgPath = _a.fgPath, imageProps = _a.imageProps, imageBorderProps = _a.imageBorderProps;\n var svgEl = ref();\n var uid = getUid(props.id);\n var qrGradientId = \"qrcode.vue-gradient-\".concat(uid);\n var qrLogoClipPathId = \"qrcode.vue-logo-clip-path-\".concat(uid);\n var gradientVNode = computed(function () {\n if (!props.gradient)\n return null;\n var gradientProps = props.gradientType === 'linear'\n ? {\n x1: '0%',\n y1: '0%',\n x2: '100%',\n y2: '100%',\n }\n : {\n cx: '50%',\n cy: '50%',\n r: '50%',\n fx: '50%',\n fy: '50%',\n };\n return h(props.gradientType === 'linear' ? 'linearGradient' : 'radialGradient', __assign({ id: qrGradientId }, gradientProps), [\n h('stop', {\n offset: '0%',\n style: { stopColor: props.gradientStartColor },\n }),\n h('stop', {\n offset: '100%',\n style: { stopColor: props.gradientEndColor },\n }),\n ]);\n });\n var clipPathVNode = computed(function () {\n if (!imageProps.value)\n return null;\n var borderRadius = imageProps.value.borderRadius;\n if (borderRadius <= 0)\n return null;\n return h('clipPath', { id: qrLogoClipPathId }, [\n h('rect', {\n x: imageProps.value.x,\n y: imageProps.value.y,\n width: imageProps.value.width,\n height: imageProps.value.height,\n rx: borderRadius,\n ry: borderRadius,\n }),\n ]);\n });\n var getSvgDataURL = function (svg) { return 'data:image/svg+xml;charset=utf-8,' +\n encodeURIComponent('' + new XMLSerializer().serializeToString(svg)); };\n ctx.expose({\n toDataURL: function () {\n var svg = svgEl.value;\n if (!svg)\n return;\n return getSvgDataURL(svg);\n },\n download: function (filename) {\n if (filename === void 0) { filename = 'qrcode.svg'; }\n var svg = svgEl.value;\n if (!svg)\n return;\n downloadDataURLAsFile(getSvgDataURL(svg), filename);\n },\n });\n return function () { return h('svg', {\n ref: svgEl,\n width: props.size,\n height: props.size,\n xmlns: 'http://www.w3.org/2000/svg',\n viewBox: \"0 0 \".concat(numCells.value, \" \").concat(numCells.value),\n role: 'img',\n }, [\n h('defs', {}, [gradientVNode.value, clipPathVNode.value].filter(Boolean)),\n h('rect', {\n width: '100%',\n height: '100%',\n fill: props.background,\n }),\n h('path', {\n fill: props.gradient ? \"url(#\".concat(qrGradientId, \")\") : props.foreground,\n d: fgPath.value,\n }),\n imageBorderProps.value && h('rect', {\n x: imageBorderProps.value.x,\n y: imageBorderProps.value.y,\n width: imageBorderProps.value.width,\n height: imageBorderProps.value.height,\n fill: props.background,\n rx: imageBorderProps.value.borderRadius,\n ry: imageBorderProps.value.borderRadius,\n }),\n props.imageSettings.src && imageProps.value && h('image', __assign({ href: props.imageSettings.src, crossorigin: props.imageSettings.crossOrigin, 'clip-path': imageProps.value.borderRadius > 0 ? \"url(#\".concat(qrLogoClipPathId, \")\") : void 0 }, imageProps.value)),\n ]); };\n },\n});\nvar QrcodeCanvas = defineComponent({\n name: 'QRCodeCanvas',\n props: QRCodeProps,\n setup: function (props, ctx) {\n var _a = useQRCode(props), margin = _a.margin, cells = _a.cells, numCells = _a.numCells, fgPath = _a.fgPath, imageProps = _a.imageProps, imageBorderProps = _a.imageBorderProps;\n var canvasEl = ref(null);\n var imageEl = ref(null);\n var drawRoundedRect = function (ctx, x, y, width, height, radius) {\n ctx.beginPath();\n if (ctx.roundRect) {\n ctx.roundRect(x, y, width, height, radius);\n }\n else {\n ctx.rect(x, y, width, height);\n }\n };\n var generate = function () {\n var size = props.size, background = props.background, foreground = props.foreground, gradient = props.gradient, gradientType = props.gradientType, gradientStartColor = props.gradientStartColor, gradientEndColor = props.gradientEndColor;\n var canvas = canvasEl.value;\n if (!canvas) {\n return;\n }\n var canvasCtx = canvas.getContext('2d');\n if (!canvasCtx) {\n return;\n }\n var image = imageEl.value;\n var devicePixelRatio = typeof window !== 'undefined' ? window.devicePixelRatio || 1 : 1;\n var scale = (size / numCells.value) * devicePixelRatio;\n canvas.height = canvas.width = size * devicePixelRatio;\n canvasCtx.setTransform(scale, 0, 0, scale, 0, 0);\n canvasCtx.fillStyle = background;\n canvasCtx.fillRect(0, 0, numCells.value, numCells.value);\n if (gradient) {\n var grad = void 0;\n if (gradientType === 'linear') {\n grad = canvasCtx.createLinearGradient(0, 0, numCells.value, numCells.value);\n }\n else {\n grad = canvasCtx.createRadialGradient(numCells.value / 2, numCells.value / 2, 0, numCells.value / 2, numCells.value / 2, numCells.value / 2);\n }\n grad.addColorStop(0, gradientStartColor);\n grad.addColorStop(1, gradientEndColor);\n canvasCtx.fillStyle = grad;\n }\n else {\n canvasCtx.fillStyle = foreground;\n }\n if (SUPPORTS_PATH2D) {\n canvasCtx.fill(new Path2D(fgPath.value));\n }\n else {\n cells.value.forEach(function (row, rdx) {\n row.forEach(function (cell, cdx) {\n if (cell) {\n canvasCtx.fillRect(cdx + margin.value, rdx + margin.value, 1, 1);\n }\n });\n });\n }\n var showImage = props.imageSettings.src && image && image.naturalWidth !== 0 && image.naturalHeight !== 0;\n if (showImage && imageProps.value) {\n if (imageBorderProps.value) {\n var imageBorder = imageBorderProps.value;\n canvasCtx.fillStyle = props.background;\n drawRoundedRect(canvasCtx, imageBorder.x, imageBorder.y, imageBorder.width, imageBorder.height, imageBorder.borderRadius);\n canvasCtx.fill();\n }\n var borderRadius = imageProps.value.borderRadius;\n if (borderRadius > 0) {\n canvasCtx.save();\n drawRoundedRect(canvasCtx, imageProps.value.x, imageProps.value.y, imageProps.value.width, imageProps.value.height, borderRadius);\n canvasCtx.clip();\n canvasCtx.drawImage(image, imageProps.value.x, imageProps.value.y, imageProps.value.width, imageProps.value.height);\n canvasCtx.restore();\n }\n else {\n canvasCtx.drawImage(image, imageProps.value.x, imageProps.value.y, imageProps.value.width, imageProps.value.height);\n }\n }\n };\n onMounted(generate);\n watchEffect(generate, { flush: 'post' });\n ctx.expose({\n toDataURL: function (type, quality) { var _a; return (_a = canvasEl.value) === null || _a === void 0 ? void 0 : _a.toDataURL(type, quality); },\n download: function (filename) {\n if (filename === void 0) { filename = 'qrcode.png'; }\n var canvas = canvasEl.value;\n if (!canvas)\n return;\n downloadDataURLAsFile(canvas.toDataURL('image/png'), filename);\n },\n });\n return function () { return h(Fragment, [\n h('canvas', __assign(__assign({}, ctx.attrs), { ref: canvasEl, role: 'img', style: __assign(__assign({}, ctx.attrs.style), { width: \"\".concat(props.size, \"px\"), height: \"\".concat(props.size, \"px\") }) })),\n props.imageSettings.src && h('img', {\n ref: imageEl,\n src: props.imageSettings.src,\n crossorigin: props.imageSettings.crossOrigin,\n style: { display: 'none' },\n onLoad: generate,\n })\n ]); };\n },\n});\nvar QrcodeVue = defineComponent({\n name: 'Qrcode',\n props: QRCodeVueProps,\n setup: function (props, ctx) {\n var childRef = ref();\n ctx.expose({\n toDataURL: function (type, quality) { var _a, _b; return (_b = (_a = childRef.value) === null || _a === void 0 ? void 0 : _a.toDataURL) === null || _b === void 0 ? void 0 : _b.call(_a, type, quality); },\n download: function (filename) { var _a, _b; return (_b = (_a = childRef.value) === null || _a === void 0 ? void 0 : _a.download) === null || _b === void 0 ? void 0 : _b.call(_a, filename); },\n });\n return function () { return h(props.renderAs === 'svg' ? QrcodeSvg : QrcodeCanvas, {\n ref: childRef,\n value: props.value,\n size: props.size,\n margin: props.margin,\n level: props.level,\n background: props.background,\n foreground: props.foreground,\n imageSettings: props.imageSettings,\n gradient: props.gradient,\n gradientType: props.gradientType,\n gradientStartColor: props.gradientStartColor,\n gradientEndColor: props.gradientEndColor,\n radius: props.radius,\n id: props.id,\n }); };\n },\n});\n\nexport { QrcodeCanvas, QrcodeSvg, QrcodeVue as default };\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcNoteCard.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcNoteCard.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcNoteCard.css';\nimport { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, renderSlot, createVNode, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { k as mdiAlert, l as mdiInformation, n as mdiCheckboxMarkedCircle, o as mdiAlertDecagram } from \"./mdi.mjs\";\nimport { a as isLegacy } from \"./legacy.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"notecard__heading\"\n};\nconst _hoisted_3 = { class: \"notecard__text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcNoteCard\",\n props: {\n heading: { default: void 0 },\n showAlert: { type: Boolean },\n text: { default: void 0 },\n type: { default: \"warning\" }\n },\n setup(__props) {\n const props = __props;\n const shouldShowAlert = computed(() => props.showAlert || props.type === \"error\");\n const iconPath = computed(() => {\n switch (props.type) {\n case \"error\":\n return mdiAlertDecagram;\n case \"success\":\n return mdiCheckboxMarkedCircle;\n case \"info\":\n return mdiInformation;\n case \"warning\":\n default:\n return mdiAlert;\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"notecard\", {\n [`notecard--${__props.type}`]: __props.type,\n \"notecard--legacy\": unref(isLegacy)\n }]),\n role: shouldShowAlert.value ? \"alert\" : \"note\"\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createVNode(unref(NcIconSvgWrapper), {\n path: iconPath.value,\n class: normalizeClass([\"notecard__icon\", { \"notecard__icon--heading\": __props.heading }]),\n inline: \"\"\n }, null, 8, [\"path\", \"class\"])\n ], true),\n createElementVNode(\"div\", null, [\n __props.heading ? (openBlock(), createElementBlock(\"p\", _hoisted_2, toDisplayString(__props.heading), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createElementVNode(\"p\", _hoisted_3, toDisplayString(__props.text), 1)\n ], true)\n ])\n ], 10, _hoisted_1);\n };\n }\n});\nconst NcNoteCard = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-6be9fa31\"]]);\nexport {\n NcNoteCard as N\n};\n//# sourceMappingURL=NcNoteCard.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcRadioGroup.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcRadioGroup.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcFormBox.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcFormBox.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcFormBox.css';\nimport { defineComponent, useCssModule, provide, openBlock, createElementBlock, normalizeClass, renderSlot } from \"vue\";\nimport { N as NC_FORM_BOX_CONTEXT_KEY } from \"./useNcFormBox.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBox\",\n props: {\n row: { type: Boolean }\n },\n setup(__props) {\n const style = useCssModule();\n provide(NC_FORM_BOX_CONTEXT_KEY, {\n isInFormBox: true,\n formBoxItemClass: style.ncFormBox__item\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([_ctx.$style.ncFormBox, __props.row ? _ctx.$style.ncFormBox_row : _ctx.$style.ncFormBox_col])\n }, [\n renderSlot(_ctx.$slots, \"default\", {\n itemClass: _ctx.$style.ncFormBox__item\n })\n ], 2);\n };\n }\n});\nconst ncFormBox = \"_ncFormBox_DLj7n\";\nconst ncFormBox_row = \"_ncFormBox_row_Fr1lK\";\nconst ncFormBox__item = \"_ncFormBox__item_-SJyo\";\nconst ncFormBox_col = \"_ncFormBox_col_1wgxQ\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_g04W5\",\n ncFormBox,\n ncFormBox_row,\n ncFormBox__item,\n ncFormBox_col\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBox = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBox as N\n};\n//# sourceMappingURL=NcFormBox.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcFormGroup.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcFormGroup.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcFormGroup.css';\nimport { defineComponent, useSlots, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _hoisted_1 = [\"aria-describedby\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormGroup\",\n props: {\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n hideLabel: { type: Boolean, default: false },\n hideDescription: { type: Boolean, default: false },\n noGap: { type: Boolean, default: false }\n },\n setup(__props) {\n const slots = useSlots();\n const id = `nc-form-group-${createElementId()}`;\n const descriptionId = `${id}-description`;\n const hasDescription = () => !!__props.description || !!slots.description;\n const getDescriptionId = () => hasDescription() ? descriptionId : void 0;\n const hasContentOnly = () => __props.hideLabel && (!hasDescription() || __props.hideDescription);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"fieldset\", {\n class: normalizeClass([_ctx.$style.formGroup, { [_ctx.$style.formGroup_noGap]: __props.noGap }]),\n \"aria-describedby\": getDescriptionId()\n }, [\n createElementVNode(\"legend\", {\n class: normalizeClass([_ctx.$style.formGroup__label, { \"hidden-visually\": __props.hideLabel }])\n }, [\n renderSlot(_ctx.$slots, \"label\", {}, () => [\n createTextVNode(toDisplayString(__props.label || \"⚠️ Missing label\"), 1)\n ])\n ], 2),\n hasDescription() ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: descriptionId,\n class: normalizeClass([_ctx.$style.formGroup__description, { \"hidden-visually\": __props.hideDescription }])\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ], 2)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([_ctx.$style.formGroup__content, { [_ctx.$style.formGroup__content_only]: hasContentOnly() }])\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2)\n ], 10, _hoisted_1);\n };\n }\n});\nconst formGroup = \"_formGroup_s9Y0Y\";\nconst formGroup_noGap = \"_formGroup_noGap_ni6Ax\";\nconst formGroup__label = \"_formGroup__label_flCX6\";\nconst formGroup__description = \"_formGroup__description_ettaL\";\nconst formGroup__content = \"_formGroup__content_AhX7q\";\nconst formGroup__content_only = \"_formGroup__content_only_h-mqW\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_ux73t\",\n formGroup,\n formGroup_noGap,\n formGroup__label,\n formGroup__description,\n formGroup__content,\n formGroup__content_only\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormGroup as N\n};\n//# sourceMappingURL=NcFormGroup.mjs.map\n","import '../assets/NcRadioGroup.css';\nimport { defineComponent, useModel, ref, provide, computed, warn, openBlock, createBlock, withCtx, renderSlot, createElementBlock, normalizeClass, mergeModels } from \"vue\";\nimport { N as NcFormBox } from \"./NcFormBox.mjs\";\nimport { N as NcFormGroup } from \"./NcFormGroup.mjs\";\nimport { I as INSIDE_RADIO_GROUP_KEY } from \"./useNcRadioGroup.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcRadioGroup\",\n props: /* @__PURE__ */ mergeModels({\n label: {},\n labelHidden: { type: Boolean },\n hideLabel: { type: Boolean },\n description: {}\n }, {\n \"modelValue\": { required: false, default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const buttonVariant = ref();\n provide(INSIDE_RADIO_GROUP_KEY, computed(() => ({\n register,\n modelValue: modelValue.value,\n onUpdate\n })));\n function register(isButton) {\n if (buttonVariant.value !== void 0 && buttonVariant.value !== isButton) {\n warn(\"[NcRadioGroup] Mixing NcCheckboxRadioSwitch and NcRadioGroupButton is not possible!\");\n }\n buttonVariant.value = isButton;\n }\n function onUpdate(value) {\n modelValue.value = value;\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcFormGroup, {\n label: __props.label,\n description: __props.description,\n hideLabel: __props.labelHidden || __props.hideLabel\n }, {\n default: withCtx(() => [\n buttonVariant.value ? (openBlock(), createBlock(NcFormBox, {\n key: 0,\n row: \"\"\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n })) : (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: normalizeClass(_ctx.$style.radioGroup_checkboxRadioContainer)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2))\n ]),\n _: 3\n }, 8, [\"label\", \"description\", \"hideLabel\"]);\n };\n }\n});\nconst radioGroup_checkboxRadioContainer = \"_radioGroup_checkboxRadioContainer_AUPA7\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_TUacq\",\n radioGroup_checkboxRadioContainer\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcRadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcRadioGroup as N\n};\n//# sourceMappingURL=NcRadioGroup.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcRadioGroupButton.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcRadioGroupButton.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcRadioGroupButton.css';\nimport { defineComponent, onMounted, computed, openBlock, createElementBlock, normalizeClass, unref, renderSlot, createCommentVNode, toDisplayString, createElementVNode } from \"vue\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { u as useNcFormBox } from \"./useNcFormBox.mjs\";\nimport { u as useInsideRadioGroup } from \"./useNcRadioGroup.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = [\"aria-labelledby\", \"aria-label\", \"checked\", \"disabled\", \"value\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcRadioGroupButton\",\n props: {\n ariaLabel: {},\n label: {},\n value: {},\n disabled: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const labelId = createElementId();\n const radioGroup = useInsideRadioGroup();\n const { formBoxItemClass } = useNcFormBox();\n onMounted(() => radioGroup.value.register(true));\n const isChecked = computed(() => radioGroup?.value.modelValue === props.value);\n function onUpdate() {\n if (props.disabled) {\n return;\n }\n radioGroup.value.onUpdate(props.value);\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([{\n [_ctx.$style.radioGroupButton_active]: isChecked.value,\n [_ctx.$style.radioGroupButton_disabled]: __props.disabled\n }, _ctx.$style.radioGroupButton, unref(formBoxItemClass)]),\n onClick: onUpdate\n }, [\n _ctx.$slots.icon ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass(_ctx.$style.radioGroupButton__icon)\n }, [\n renderSlot(_ctx.$slots, \"icon\")\n ], 2)) : createCommentVNode(\"\", true),\n __props.label ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n id: unref(labelId),\n class: normalizeClass(_ctx.$style.radioGroupButton__label)\n }, toDisplayString(__props.label), 11, _hoisted_1)) : createCommentVNode(\"\", true),\n createElementVNode(\"input\", {\n \"aria-labelledby\": __props.label ? unref(labelId) : void 0,\n \"aria-label\": __props.label ? void 0 : __props.ariaLabel,\n class: \"hidden-visually\",\n checked: isChecked.value,\n type: \"radio\",\n disabled: __props.disabled,\n value: __props.value,\n onInput: onUpdate\n }, null, 40, _hoisted_2)\n ], 2);\n };\n }\n});\nconst radioGroupButton = \"_radioGroupButton_YNoo0\";\nconst radioGroupButton__label = \"_radioGroupButton__label_8W6-c\";\nconst radioGroupButton__icon = \"_radioGroupButton__icon_lPjNx\";\nconst radioGroupButton_disabled = \"_radioGroupButton_disabled_8uxSh\";\nconst radioGroupButton_active = \"_radioGroupButton_active_qTVBh\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_L0tBR\",\n radioGroupButton,\n radioGroupButton__label,\n radioGroupButton__icon,\n radioGroupButton_disabled,\n radioGroupButton_active\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcRadioGroupButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcRadioGroupButton as N\n};\n//# sourceMappingURL=NcRadioGroupButton.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcSelectUsers.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcSelectUsers.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcListItemIcon.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcListItemIcon.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { defineComponent, h } from \"vue\";\n/*!\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction findRanges(text, search) {\n const ranges = [];\n let currentIndex = 0;\n let index = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex);\n let i = 0;\n while (index > -1 && i++ < text.length) {\n currentIndex = index + search.length;\n ranges.push({ start: index, end: currentIndex });\n index = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex);\n }\n return ranges;\n}\nconst _sfc_main = defineComponent({\n name: \"NcHighlight\",\n props: {\n /**\n * The string to display\n */\n text: {\n type: String,\n default: \"\"\n },\n /**\n * The string to match and highlight\n */\n search: {\n type: String,\n default: \"\"\n },\n /**\n * The ranges to highlight, takes precedence over the search prop.\n */\n highlight: {\n type: Array,\n default: () => []\n }\n },\n computed: {\n /**\n * The indice ranges which should be highlighted.\n * If an array with ranges is provided, we use it. Otherwise\n * we calculate it based on the provided substring to highlight.\n *\n * @return The array of ranges to highlight\n */\n ranges() {\n let ranges = [];\n if (!this.search && this.highlight.length === 0) {\n return ranges;\n }\n if (this.highlight.length > 0) {\n ranges = this.highlight;\n } else {\n ranges = findRanges(this.text, this.search);\n }\n ranges.forEach((range, i) => {\n if (range.end < range.start) {\n ranges[i] = {\n start: range.end,\n end: range.start\n };\n }\n });\n ranges = ranges.reduce((validRanges, range) => {\n if (range.start < this.text.length && range.end > 0) {\n validRanges.push({\n start: range.start < 0 ? 0 : range.start,\n end: range.end > this.text.length ? this.text.length : range.end\n });\n }\n return validRanges;\n }, []);\n ranges.sort((a, b) => {\n return a.start - b.start;\n });\n ranges = ranges.reduce((mergedRanges, range) => {\n if (!mergedRanges.length) {\n mergedRanges.push(range);\n } else {\n const idx = mergedRanges.length - 1;\n if (mergedRanges[idx].end >= range.start) {\n mergedRanges[idx] = {\n start: mergedRanges[idx].start,\n end: Math.max(mergedRanges[idx].end, range.end)\n };\n } else {\n mergedRanges.push(range);\n }\n }\n return mergedRanges;\n }, []);\n return ranges;\n },\n /**\n * Calculate the different chunks to show based on the ranges to highlight.\n */\n chunks() {\n if (this.ranges.length === 0) {\n return [{\n start: 0,\n end: this.text.length,\n highlight: false,\n text: this.text\n }];\n }\n const chunks = [];\n let currentIndex = 0;\n let currentRange = 0;\n while (currentIndex < this.text.length) {\n const range = this.ranges[currentRange];\n if (range.start === currentIndex) {\n chunks.push({\n ...range,\n highlight: true,\n text: this.text.slice(range.start, range.end)\n });\n currentRange++;\n currentIndex = range.end;\n if (currentRange >= this.ranges.length && currentIndex < this.text.length) {\n chunks.push({\n start: currentIndex,\n end: this.text.length,\n highlight: false,\n text: this.text.slice(currentIndex)\n });\n currentIndex = this.text.length;\n }\n continue;\n }\n chunks.push({\n start: currentIndex,\n end: range.start,\n highlight: false,\n text: this.text.slice(currentIndex, range.start)\n });\n currentIndex = range.start;\n }\n return chunks;\n }\n },\n /**\n * The render function to display the component\n */\n render() {\n if (!this.ranges.length) {\n return h(\"span\", {}, this.text);\n }\n return h(\"span\", {}, this.chunks.map((chunk) => {\n return chunk.highlight ? h(\"strong\", {}, chunk.text) : chunk.text;\n }));\n }\n});\nexport {\n _sfc_main as _,\n findRanges as f\n};\n//# sourceMappingURL=NcHighlight.vue_vue_type_script_lang.mjs.map\n","import '../assets/NcListItemIcon.css';\nimport \"escape-html\";\nimport \"striptags\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeStyle, normalizeClass, createVNode, mergeProps, createElementVNode, createBlock, toDisplayString, createCommentVNode, renderSlot } from \"vue\";\nimport \"../composables/useIsDarkTheme/index.mjs\";\nimport \"@nextcloud/router\";\nimport \"../functions/isDarkTheme/index.mjs\";\nimport \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nimport { u as userStatus, N as NcAvatar } from \"./NcAvatar.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcHighlight.vue_vue_type_script_lang.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nconst margin = 8;\nconst defaultSize = 32;\nconst _sfc_main = {\n name: \"NcListItemIcon\",\n components: {\n NcAvatar,\n NcHighlight: _sfc_main$1,\n NcIconSvgWrapper\n },\n mixins: [\n userStatus\n ],\n props: {\n /**\n * Default first line text\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Secondary optional line\n * Only visible on size of 32 and above\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Icon class to be displayed at the end of the component\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * SVG icon to be displayed at the end of the component\n */\n iconSvg: {\n type: String,\n default: \"\"\n },\n /**\n * Descriptive name for the icon\n */\n iconName: {\n type: String,\n default: \"\"\n },\n /**\n * Search within the highlight of name/subname\n */\n search: {\n type: String,\n default: \"\"\n },\n /**\n * Set a size in px that will define the avatar height/width\n * and therefore, the height of the component\n */\n avatarSize: {\n type: Number,\n default: defaultSize\n },\n /**\n * Disable the margins of this component.\n * Useful for integration in `NcSelect` for example\n */\n noMargin: {\n type: Boolean,\n default: false\n },\n /**\n * See the [Avatar](#Avatar) displayName prop\n * Fallback to name\n */\n displayName: {\n type: String,\n default: null\n },\n /**\n * See the [Avatar](#Avatar) isNoUser prop\n * Enable/disable the UserStatus fetching\n */\n isNoUser: {\n type: Boolean,\n default: false\n },\n /**\n * Unique list item ID\n */\n id: {\n type: String,\n default: null\n }\n },\n setup() {\n return {\n margin,\n defaultSize\n };\n },\n computed: {\n hasIcon() {\n return this.icon !== \"\";\n },\n hasIconSvg() {\n return this.iconSvg !== \"\";\n },\n isValidSubname() {\n return this.subname?.trim?.() !== \"\";\n },\n isSizeBigEnough() {\n return this.avatarSize >= 26;\n },\n cssVars() {\n const margin2 = this.noMargin ? 0 : this.margin;\n return {\n \"--height\": this.avatarSize + 2 * margin2 + \"px\",\n \"--margin\": this.margin + \"px\"\n };\n },\n /**\n * Separates the search property into two parts, the first one is the search part on the name, the second on the subname.\n *\n * @return {[string, string]}\n */\n searchParts() {\n const EMAIL_NOTATION = /^([^<]*)<([^>]+)>?$/;\n const match = this.search.match(EMAIL_NOTATION);\n if (this.isNoUser || !match) {\n return [this.search, this.search];\n }\n return [match[1].trim(), match[2]];\n }\n },\n beforeMount() {\n if (!this.isNoUser && !this.subname) {\n this.fetchUserStatus(this.user);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = { class: \"option__details\" };\nconst _hoisted_3 = { key: 1 };\nconst _hoisted_4 = [\"aria-label\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"span\", {\n id: $props.id,\n class: normalizeClass([\"option\", { \"option--compact\": $props.avatarSize < $setup.defaultSize }]),\n style: normalizeStyle($options.cssVars)\n }, [\n createVNode(_component_NcAvatar, mergeProps(_ctx.$attrs, {\n disableMenu: \"\",\n disableTooltip: \"\",\n displayName: $props.displayName || $props.name,\n isNoUser: $props.isNoUser,\n size: $props.avatarSize,\n class: \"option__avatar\"\n }), null, 16, [\"displayName\", \"isNoUser\", \"size\"]),\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_NcHighlight, {\n class: \"option__lineone\",\n text: $props.name,\n search: $options.searchParts[0]\n }, null, 8, [\"text\", \"search\"]),\n $options.isValidSubname && $options.isSizeBigEnough ? (openBlock(), createBlock(_component_NcHighlight, {\n key: 0,\n class: \"option__linetwo\",\n text: $props.subname,\n search: $options.searchParts[1]\n }, null, 8, [\"text\", \"search\"])) : _ctx.hasStatus ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n createElementVNode(\"span\", null, toDisplayString(_ctx.userStatus.icon), 1),\n createElementVNode(\"span\", null, toDisplayString(_ctx.userStatus.message), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n $options.hasIconSvg ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"option__icon\",\n svg: $props.iconSvg,\n name: $props.iconName\n }, null, 8, [\"svg\", \"name\"])) : $options.hasIcon ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: normalizeClass([\"icon option__icon\", $props.icon]),\n \"aria-label\": $props.iconName\n }, null, 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], true)\n ], 14, _hoisted_1);\n}\nconst NcListItemIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0ee94269\"]]);\nexport {\n NcListItemIcon as N\n};\n//# sourceMappingURL=NcListItemIcon.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcSelect.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcSelect.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./index-DuYzGG0a.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./index-DuYzGG0a.css\";\n export default content && content.locals ? content.locals : undefined;\n","import './assets/index-DuYzGG0a.css';\nimport { openBlock, createElementBlock, createElementVNode, resolveDirective, normalizeClass, renderSlot, normalizeProps, guardReactiveProps, Fragment, renderList, mergeProps, createTextVNode, toDisplayString, withKeys, withModifiers, createBlock, resolveDynamicComponent, createCommentVNode, toHandlers, withDirectives, vShow, createVNode, Transition, withCtx, warn } from \"vue\";\nconst appendToBody = {\n mounted(el, { instance }) {\n if (instance.appendToBody) {\n document.body.appendChild(el);\n const { height, top, left, width } = instance.$refs.toggle.getBoundingClientRect();\n const scrollX = window.scrollX || window.pageXOffset;\n const scrollY = window.scrollY || window.pageYOffset;\n el.unbindPosition = instance.calculatePosition(el, instance, {\n width: width + \"px\",\n left: scrollX + left + \"px\",\n top: scrollY + top + height + \"px\"\n });\n }\n },\n unmounted(el, { instance }) {\n if (instance.appendToBody) {\n if (el.unbindPosition && typeof el.unbindPosition === \"function\") {\n el.unbindPosition();\n }\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n }\n }\n};\nconst ajax = {\n props: {\n /**\n * Toggles the adding of a 'loading' class to the main\n * .v-select wrapper. Useful to control UI state when\n * results are being processed through AJAX.\n */\n loading: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n mutableLoading: false\n };\n },\n watch: {\n /**\n * Anytime the search string changes, emit the\n * 'search' event. The event is passed with two\n * parameters: the search string, and a function\n * that accepts a boolean parameter to toggle the\n * loading state.\n *\n * @fires 'search'\n */\n search() {\n this.$emit(\"search\", this.search, this.toggleLoading);\n },\n /**\n * Sync the loading prop with the internal\n * mutable loading value.\n *\n * @param val Incoming loading state.\n */\n loading(val) {\n this.mutableLoading = val;\n }\n },\n methods: {\n /**\n * Toggle this.loading. Optionally pass a boolean\n * value. If no value is provided, this.loading\n * will be set to the opposite of it's current value.\n *\n * @param toggle Boolean\n * @return {*}\n */\n toggleLoading(toggle = null) {\n if (toggle === null || toggle === void 0) {\n return this.mutableLoading = !this.mutableLoading;\n }\n return this.mutableLoading = toggle;\n }\n }\n};\nconst pointerScroll = {\n props: {\n autoscroll: {\n type: Boolean,\n default: true\n }\n },\n watch: {\n typeAheadPointer() {\n if (this.autoscroll) {\n this.maybeAdjustScroll();\n }\n },\n open(open) {\n if (this.autoscroll && open) {\n this.$nextTick(() => this.maybeAdjustScroll());\n }\n }\n },\n methods: {\n /**\n * Adjust the scroll position of the dropdown list\n * if the current pointer is outside of the\n * overflow bounds.\n *\n * @return {*}\n */\n maybeAdjustScroll() {\n const optionEl = this.$refs.dropdownMenu?.children[this.typeAheadPointer] || false;\n if (optionEl) {\n const bounds = this.getDropdownViewport();\n const { top, bottom, height } = optionEl.getBoundingClientRect();\n if (top < bounds.top) {\n return this.$refs.dropdownMenu.scrollTop = optionEl.offsetTop;\n } else if (bottom > bounds.bottom) {\n return this.$refs.dropdownMenu.scrollTop = optionEl.offsetTop - (bounds.height - height);\n }\n }\n },\n /**\n * The currently viewable portion of the dropdownMenu.\n *\n * @return {{top: (string|*|number), bottom: *}}\n */\n getDropdownViewport() {\n return this.$refs.dropdownMenu ? this.$refs.dropdownMenu.getBoundingClientRect() : {\n height: 0,\n top: 0,\n bottom: 0\n };\n }\n }\n};\nconst pointer = {\n data() {\n return {\n typeAheadPointer: -1\n };\n },\n watch: {\n filteredOptions() {\n if (!this.resetFocusOnOptionsChange) {\n return;\n }\n for (let i = 0; i < this.filteredOptions.length; i++) {\n if (this.selectable(this.filteredOptions[i])) {\n this.typeAheadPointer = i;\n break;\n }\n }\n },\n open(open) {\n if (open) {\n this.typeAheadToLastSelected();\n }\n },\n selectedValue() {\n if (this.open) {\n this.typeAheadToLastSelected();\n }\n }\n },\n methods: {\n /**\n * Move the typeAheadPointer visually up the list by\n * setting it to the previous selectable option.\n *\n * @return {void}\n */\n typeAheadUp() {\n for (let i = this.typeAheadPointer - 1; i >= 0; i--) {\n if (this.selectable(this.filteredOptions[i])) {\n this.typeAheadPointer = i;\n break;\n }\n }\n },\n /**\n * Move the typeAheadPointer visually down the list by\n * setting it to the next selectable option.\n *\n * @return {void}\n */\n typeAheadDown() {\n for (let i = this.typeAheadPointer + 1; i < this.filteredOptions.length; i++) {\n if (this.selectable(this.filteredOptions[i])) {\n this.typeAheadPointer = i;\n break;\n }\n }\n },\n /**\n * Select the option at the current typeAheadPointer position.\n * Optionally clear the search input on selection.\n *\n * @return {void}\n */\n typeAheadSelect() {\n const typeAheadOption = this.filteredOptions[this.typeAheadPointer];\n if (typeAheadOption && this.selectable(typeAheadOption)) {\n this.select(typeAheadOption);\n }\n },\n /**\n * Moves the pointer to the last selected option.\n */\n typeAheadToLastSelected() {\n const indexOfLastSelected = this.selectedValue.length !== 0 ? this.filteredOptions.indexOf(this.selectedValue[this.selectedValue.length - 1]) : -1;\n if (indexOfLastSelected !== -1) {\n this.typeAheadPointer = indexOfLastSelected;\n }\n }\n }\n};\nfunction sortAndStringify(sortable) {\n const ordered = {};\n Object.keys(sortable).sort().forEach((key) => {\n ordered[key] = sortable[key];\n });\n return JSON.stringify(ordered);\n}\nlet idCount = 0;\nfunction uniqueId() {\n return ++idCount;\n}\nconst _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _sfc_main$2 = {};\nconst _hoisted_1$2 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"10\",\n height: \"10\"\n};\nfunction _sfc_render$2(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$2, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"path\", { d: \"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\" }, null, -1)\n ])]);\n}\nconst Deselect = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$1 = {};\nconst _hoisted_1$1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"14\",\n height: \"10\"\n};\nfunction _sfc_render$1(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$1, [..._cache[0] || (_cache[0] = [\n createElementVNode(\"path\", { d: \"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z\" }, null, -1)\n ])]);\n}\nconst OpenIndicator = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nconst childComponents = {\n Deselect,\n OpenIndicator\n};\nconst _sfc_main = {\n components: { ...childComponents },\n directives: { appendToBody },\n mixins: [pointerScroll, pointer, ajax],\n props: {\n /**\n * Contains the currently selected value. Very similar to a\n * `value` attribute on an . You can listen for changes\n * with the 'input' event.\n *\n * @type {object | string | Array | null}\n */\n modelValue: {},\n /**\n * An object with any custom components that you'd like to overwrite\n * the default implementation of in your app. The keys in this object\n * will be merged with the defaults.\n *\n * @see https://vue-select.org/guide/components.html\n * @type {Function}\n */\n components: {\n type: Object,\n default: () => ({})\n },\n /**\n * An array of strings or objects to be used as dropdown choices.\n * If you are using an array of objects, vue-select will look for\n * a `label` key (ex. [{label: 'This is Foo', value: 'foo'}]). A\n * custom label key can be set with the `label` prop.\n *\n * @type {Array}\n */\n options: {\n type: Array,\n default() {\n return [];\n }\n },\n /**\n * Sets the maximum number of options to display in the dropdown list\n *\n * @type {number}\n */\n limit: {\n type: Number,\n default: null\n },\n /**\n * Disable the entire component.\n *\n * @type {boolean}\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Can the user clear the selected property.\n *\n * @type {boolean}\n */\n clearable: {\n type: Boolean,\n default: true\n },\n /**\n * Can the user deselect an option by clicking it from\n * within the dropdown.\n *\n * @type {boolean}\n */\n deselectFromDropdown: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable filtering the options.\n *\n * @type {boolean}\n */\n searchable: {\n type: Boolean,\n default: true\n },\n /**\n * Equivalent to the `multiple` attribute on a ``.\n *\n * @type {string}\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * Sets a Vue transition property on the `.vs__dropdown-menu`.\n *\n * @type {string}\n */\n transition: {\n type: String,\n default: \"vs__fade\"\n },\n /**\n * Enables/disables clearing the search text when an option is selected.\n *\n * @type {boolean}\n */\n clearSearchOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Close a dropdown when an option is chosen. Set to false to keep the dropdown\n * open (useful when combined with multi-select, for example)\n *\n * @type {boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Tells vue-select what key to use when generating option\n * labels when each `option` is an object.\n *\n * @type {string}\n */\n label: {\n type: String,\n default: \"label\"\n },\n /**\n * Allows to customize the `aria-label` set on the comobobox for searching options.\n *\n * @type {string}\n * @default 'Search for options'\n */\n ariaLabelCombobox: {\n type: String,\n default: \"Search for options\"\n },\n /**\n * Allows to customize the `aria-label` set on the listbox element.\n *\n * @type {string}\n * @default 'Options'\n */\n ariaLabelListbox: {\n type: String,\n default: \"Options\"\n },\n /**\n * Allows to customize the `aria-label` set on the clear-selected button\n *\n * @type {string}\n * @default 'Clear selected'\n */\n ariaLabelClearSelected: {\n type: String,\n default: \"Clear selected\"\n },\n /**\n * Allows to customize the `aria-label` for the deselect-option button\n * The default is \"Deselect \" + optionLabel\n *\n * @type {(optionLabel: string) => string}\n */\n ariaLabelDeselectOption: {\n type: Function,\n default: (optionLabel) => `Deselect ${optionLabel}`\n },\n /**\n * Value of the 'autocomplete' field of the input\n * element.\n *\n * @type {string}\n */\n autocomplete: {\n type: String,\n default: \"off\"\n },\n /**\n * When working with objects, the reduce\n * prop allows you to transform a given\n * object to only the information you\n * want passed to a v-model binding\n * or \\@input event.\n */\n reduce: {\n type: Function,\n default: (option) => option\n },\n /**\n * Decides whether an option is selectable or not. Not selectable options\n * are displayed but disabled and cannot be selected.\n *\n * @type {Function}\n * @since 3.3.0\n * @param {object | string} option\n * @return {boolean}\n */\n selectable: {\n type: Function,\n default: () => true\n },\n /**\n * Callback to generate the label text. If {option}\n * is an object, returns option[this.label] by default.\n *\n * Label text is used for filtering comparison and\n * displaying. If you only need to adjust the\n * display, you should use the `option` and\n * `selected-option` slots.\n *\n * @type {Function}\n * @param {object | string} option\n * @return {string}\n */\n getOptionLabel: {\n type: Function,\n default(option) {\n if (typeof option === \"object\") {\n if (!Object.hasOwn(option, this.label)) {\n return warn(`[vue-select warn]: Label key \"option.${this.label}\" does not exist in options object ${JSON.stringify(option)}.\nhttps://vue-select.org/api/props.html#getoptionlabel`);\n }\n return option[this.label];\n }\n return option;\n }\n },\n /**\n * Generate a unique identifier for each option. If `option`\n * is an object and `option.hasOwnProperty('id')` exists,\n * `option.id` is used by default, otherwise the option\n * will be serialized to JSON.\n *\n * If you are supplying a lot of options, you should\n * provide your own keys, as JSON.stringify can be\n * slow with lots of objects.\n *\n * The result of this function *must* be unique.\n *\n * @type {Function}\n * @param {object | string} option\n * @return {string}\n */\n getOptionKey: {\n type: Function,\n default(option) {\n if (typeof option !== \"object\") {\n return option;\n }\n try {\n return Object.hasOwn(option, \"id\") ? option.id : sortAndStringify(option);\n } catch (e) {\n const warning = \"[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option.\\nhttps://vue-select.org/api/props.html#getoptionkey\";\n return warn(warning, option, e);\n }\n }\n },\n /**\n * Select the current value if selectOnTab is enabled\n *\n * @deprecated since 3.3\n */\n onTab: {\n type: Function,\n default() {\n if (this.selectOnTab && !this.isComposing) {\n this.typeAheadSelect();\n }\n }\n },\n /**\n * Enable/disable creating options from searchEl.\n *\n * @type {boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * Set the tabindex for the input field.\n *\n * @type {number}\n */\n tabindex: {\n type: Number,\n default: null\n },\n /**\n * When true, newly created tags will be added to\n * the options list.\n *\n * @type {boolean}\n */\n pushTags: {\n type: Boolean,\n default: false\n },\n /**\n * When true, existing options will be filtered\n * by the search text. Should not be used in conjunction\n * with taggable.\n *\n * @type {boolean}\n */\n filterable: {\n type: Boolean,\n default: true\n },\n /**\n * Callback to determine if the provided option should\n * match the current search text. Used to determine\n * if the option should be displayed.\n *\n * @type {Function}\n * @param {object | string} option\n * @param {string} label\n * @param {string} search\n * @return {boolean}\n */\n filterBy: {\n type: Function,\n default(option, label, search) {\n return (label || \"\").toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;\n }\n },\n /**\n * Callback to filter results when search text\n * is provided. Default implementation loops\n * each option, and returns the result of\n * this.filterBy.\n *\n * @type {Function}\n * @param {Array} list of options\n * @param {string} search text\n * @param {object} vSelect instance\n * @return {boolean}\n */\n filter: {\n type: Function,\n default(options, search) {\n return options.filter((option) => {\n let label = this.getOptionLabel(option);\n if (typeof label === \"number\") {\n label = label.toString();\n }\n return this.filterBy(option, label, search);\n });\n }\n },\n /**\n * User defined function for adding Options\n *\n * @type {Function}\n */\n createOption: {\n type: Function,\n default(option) {\n return typeof this.optionList[0] === \"object\" ? { [this.label]: option } : option;\n }\n },\n /**\n * If false, the focused dropdown option will not be reset when filtered\n * options change.\n *\n * @type {boolean}\n */\n resetFocusOnOptionsChange: {\n type: Boolean,\n default: true\n },\n /**\n * When false, updating the options will not reset the selected value. Accepts\n * a `boolean` or `function` that returns a `boolean`. If defined as a function,\n * it will receive the params listed below.\n *\n * @since 3.4 - Type changed to {boolean | Function}\n *\n * @type {boolean | Function}\n * @param {Array} newOptions\n * @param {Array} oldOptions\n * @param {Array} selectedValue\n */\n resetOnOptionsChange: {\n default: false,\n validator: (value) => [\"function\", \"boolean\"].includes(typeof value)\n },\n /**\n * If search text should clear on blur\n *\n * @return {boolean} True when single and clearSearchOnSelect\n */\n clearSearchOnBlur: {\n type: Function,\n default({ clearSearchOnSelect, multiple }) {\n return clearSearchOnSelect && !multiple;\n }\n },\n /**\n * Disable the dropdown entirely.\n *\n * @type {boolean}\n */\n noDrop: {\n type: Boolean,\n default: false\n },\n /**\n * Sets the id of the input element.\n *\n * @type {string}\n * @default {null}\n */\n inputId: {\n type: String\n },\n /**\n * Sets RTL support. Accepts 'ltr', 'rtl', 'auto'.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir\n * @type {string}\n * @default 'auto'\n */\n dir: {\n type: String,\n default: \"auto\"\n },\n /**\n * When true, hitting the 'tab' key will select the current select value\n *\n * @type {boolean}\n * @deprecated since 3.3 - use selectOnKeyCodes instead\n */\n selectOnTab: {\n type: Boolean,\n default: false\n },\n /**\n * Keycodes that will select the current option.\n *\n * @type Array\n */\n selectOnKeyCodes: {\n type: Array,\n default: () => [\n // enter\n 13\n ]\n },\n /**\n * Query Selector used to find the search input\n * when the 'search' scoped slot is used.\n *\n * Must be a valid CSS selector string.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n * @type {string}\n */\n searchInputQuerySelector: {\n type: String,\n default: \"[type=search]\"\n },\n /**\n * Used to modify the default keydown events map\n * for the search input. Can be used to implement\n * custom behaviour for key presses.\n */\n mapKeydown: {\n type: Function,\n /**\n * @param {object} map Existing keydown handlers map.\n * @param {VueSelect} vm Component instance.\n * @return {object}\n */\n default: (map) => map\n },\n /**\n * Append the dropdown element to the end of the body\n * and size/position it dynamically. Use it if you have\n * overflow or z-index issues.\n *\n * @type {boolean}\n */\n appendToBody: {\n type: Boolean,\n default: false\n },\n /**\n * When `appendToBody` is true, this function is responsible for\n * positioning the drop down list.\n *\n * If a function is returned from `calculatePosition`, it will\n * be called when the drop down list is removed from the DOM.\n * This allows for any garbage collection you may need to do.\n *\n * @since v3.7.0\n * @see http://vue-select.org/guide/positioning.html\n */\n calculatePosition: {\n type: Function,\n /**\n * @param {HTMLUListElement} dropdownList Dropdown list element.\n * @param {Vue} component Component instance.\n * @param {object} width Computed dropdown coordinates.\n * @param {string} width.width Computed width value.\n * @param {string} width.top Computed top position.\n * @param {string} width.left Computed left position.\n * @return {Function | void}\n */\n default(dropdownList, component, { width, top, left }) {\n dropdownList.style.top = top;\n dropdownList.style.left = left;\n dropdownList.style.width = width;\n }\n },\n /**\n * Determines whether the dropdown should be open.\n * Receives the component instance as the only argument.\n *\n * @since v3.12.0\n * @return {boolean}\n */\n dropdownShouldOpen: {\n type: Function,\n default({ noDrop, open, mutableLoading }) {\n return noDrop ? false : open && !mutableLoading;\n }\n },\n /**\n * Display a visible border around dropdown options\n * which have keyboard focus.\n */\n keyboardFocusBorder: {\n type: Boolean,\n default: false\n },\n /**\n * A unique identifier used to generate IDs in HTML.\n * Must be unique for every instance of the component.\n */\n uid: {\n type: [String, Number],\n default: () => uniqueId()\n }\n },\n emits: [\n \"open\",\n \"close\",\n \"update:modelValue\",\n \"search\",\n \"search:compositionstart\",\n \"search:compositionend\",\n \"search:keydown\",\n \"search:blur\",\n \"search:focus\",\n \"search:input\",\n \"option:created\",\n \"option:selecting\",\n \"option:selected\",\n \"option:deselecting\",\n \"option:deselected\"\n ],\n data() {\n return {\n search: \"\",\n open: false,\n isComposing: false,\n isKeyboardNavigation: false,\n pushedTags: [],\n // eslint-disable-next-line vue/no-reserved-keys\n _value: [],\n // Internal value managed by Vue Select if no `modelValue` prop is passed\n deselectButtons: []\n };\n },\n computed: {\n isReducingValues() {\n return this.$props.reduce !== this.$options.props.reduce.default;\n },\n /**\n * Determine if the component needs to\n * track the state of values internally.\n *\n * @return {boolean}\n */\n isTrackingValues() {\n return typeof this.modelValue === \"undefined\" || this.isReducingValues;\n },\n /**\n * The options that are currently selected.\n *\n * @return {Array}\n */\n selectedValue() {\n let value = this.modelValue;\n if (this.isTrackingValues) {\n value = this.$data._value;\n }\n if (value !== void 0 && value !== null && value !== \"\") {\n return [].concat(value);\n }\n return [];\n },\n /**\n * The options available to be chosen\n * from the dropdown, including any\n * tags that have been pushed.\n *\n * @return {Array}\n */\n optionList() {\n return this.options.concat(this.pushTags ? this.pushedTags : []);\n },\n /**\n * Find the search input DOM element.\n *\n * @return {HTMLInputElement}\n */\n searchEl() {\n return this.$slots.search ? this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector) : this.$refs.search;\n },\n /**\n * The object to be bound to the $slots.search slot.\n *\n * @return {object}\n */\n scope() {\n const listSlot = {\n search: this.search,\n loading: this.loading,\n searching: this.searching,\n filteredOptions: this.filteredOptions\n };\n return {\n search: {\n attributes: {\n id: this.inputId,\n disabled: this.disabled,\n placeholder: this.searchPlaceholder,\n tabindex: this.tabindex,\n readonly: !this.searchable,\n role: \"combobox\",\n \"aria-autocomplete\": \"list\",\n \"aria-label\": this.ariaLabelCombobox,\n \"aria-controls\": `vs-${this.uid}__listbox`,\n \"aria-owns\": `vs-${this.uid}__listbox`,\n \"aria-expanded\": this.dropdownOpen.toString(),\n ref: \"search\",\n type: \"search\",\n autocomplete: this.autocomplete,\n value: this.search,\n ...this.dropdownOpen && this.filteredOptions[this.typeAheadPointer] ? {\n \"aria-activedescendant\": `vs-${this.uid}__option-${this.typeAheadPointer}`\n } : {}\n },\n events: {\n compositionstart: () => this.isComposing = true,\n compositionend: () => this.isComposing = false,\n keydown: this.onSearchKeyDown,\n keypress: this.onSearchKeyPress,\n blur: this.onSearchBlur,\n focus: this.onSearchFocus,\n input: (e) => this.search = e.target.value\n }\n },\n spinner: {\n loading: this.mutableLoading\n },\n noOptions: {\n search: this.search,\n loading: this.mutableLoading,\n searching: this.searching\n },\n openIndicator: {\n attributes: {\n ref: \"openIndicator\",\n role: \"presentation\",\n class: \"vs__open-indicator\"\n }\n },\n listHeader: listSlot,\n listFooter: listSlot,\n header: { ...listSlot, deselect: this.deselect },\n footer: { ...listSlot, deselect: this.deselect }\n };\n },\n /**\n * Returns an object containing the child components\n * that will be used throughout the component. The\n * `component` prop can be used to overwrite the defaults.\n *\n * @return {object}\n */\n childComponents() {\n return {\n ...childComponents,\n ...this.components\n };\n },\n /**\n * Holds the current state of the component.\n *\n * @return {object}\n */\n stateClasses() {\n return {\n \"vs--open\": this.dropdownOpen,\n \"vs--single\": !this.multiple,\n \"vs--multiple\": this.multiple,\n \"vs--searching\": this.searching && !this.noDrop,\n \"vs--searchable\": this.searchable && !this.noDrop,\n \"vs--unsearchable\": !this.searchable,\n \"vs--loading\": this.mutableLoading,\n \"vs--disabled\": this.disabled\n };\n },\n /**\n * Return the current state of the\n * search input\n *\n * @return {boolean} True if non empty value\n */\n searching() {\n return !!this.search;\n },\n /**\n * Return the current state of the\n * dropdown menu.\n *\n * @return {boolean} True if open\n */\n dropdownOpen() {\n return this.dropdownShouldOpen(this);\n },\n /**\n * Return the placeholder string if it's set\n * & there is no value selected.\n *\n * @return {string} Placeholder text\n */\n searchPlaceholder() {\n return this.isValueEmpty && this.placeholder ? this.placeholder : void 0;\n },\n /**\n * The currently displayed options, filtered\n * by the search elements value. If tagging\n * true, the search text will be prepended\n * if it doesn't already exist.\n *\n * @return {Array}\n */\n filteredOptions() {\n const limitOptions = (options2) => {\n if (this.limit !== null) {\n return options2.slice(0, this.limit);\n }\n return options2;\n };\n const optionList = [].concat(this.optionList);\n if (!this.filterable && !this.taggable) {\n return limitOptions(optionList);\n }\n const options = this.search.length ? this.filter(optionList, this.search, this) : optionList;\n if (this.taggable && this.search.length) {\n try {\n const createdOption = this.createOption(this.search);\n if (!this.optionExists(createdOption)) {\n options.unshift(createdOption);\n }\n } catch {\n }\n }\n return limitOptions(options);\n },\n /**\n * Check if there aren't any options selected.\n *\n * @return {boolean}\n */\n isValueEmpty() {\n return this.selectedValue.length === 0;\n },\n /**\n * Determines if the clear button should be displayed.\n *\n * @return {boolean}\n */\n showClearButton() {\n return !this.multiple && this.clearable && !this.open && !this.isValueEmpty;\n }\n },\n watch: {\n /**\n * Maybe reset the value\n * when options change.\n * Make sure selected option\n * is correct.\n *\n * @param {Array} newOptions Updated options list.\n * @param {Array} oldOptions Previous options list.\n * @return {boolean} [description]\n */\n options(newOptions, oldOptions) {\n const shouldReset = () => typeof this.resetOnOptionsChange === \"function\" ? this.resetOnOptionsChange(\n newOptions,\n oldOptions,\n this.selectedValue\n ) : this.resetOnOptionsChange;\n if (!this.taggable && shouldReset()) {\n this.clearSelection();\n }\n if (this.modelValue && this.isTrackingValues) {\n this.setInternalValueFromOptions(this.modelValue);\n }\n },\n /**\n * Make sure to update internal\n * value if prop changes outside\n */\n modelValue: {\n immediate: true,\n handler(val) {\n if (this.isTrackingValues) {\n this.setInternalValueFromOptions(val);\n }\n }\n },\n /**\n * Always reset the value when\n * the multiple prop changes.\n *\n * @return {void}\n */\n multiple() {\n this.clearSelection();\n },\n open(isOpen) {\n this.$emit(isOpen ? \"open\" : \"close\");\n },\n search(search) {\n if (search.length) {\n this.open = true;\n }\n }\n },\n created() {\n this.mutableLoading = this.loading;\n },\n methods: {\n /**\n * Make sure tracked value is\n * one option if possible.\n *\n * @param {object | string} value Reduced value to resolve.\n * @return {void}\n */\n setInternalValueFromOptions(value) {\n if (Array.isArray(value)) {\n this.$data._value = value.map((val) => this.findOptionFromReducedValue(val));\n } else {\n this.$data._value = this.findOptionFromReducedValue(value);\n }\n },\n /**\n * Select or deselect a given option.\n * Allow deselect if clearable or if not the only selected option.\n *\n * @param {object | string} option Option to select or deselect.\n * @return {void}\n */\n select(option) {\n this.$emit(\"option:selecting\", option);\n if (!this.isOptionSelected(option)) {\n if (this.taggable && !this.optionExists(option)) {\n this.$emit(\"option:created\", option);\n this.pushTag(option);\n }\n if (this.multiple) {\n option = this.selectedValue.concat(option);\n }\n this.updateValue(option);\n this.$emit(\"option:selected\", option);\n } else if (this.deselectFromDropdown && (this.clearable || this.multiple && this.selectedValue.length > 1)) {\n this.deselect(option);\n }\n this.onAfterSelect(option);\n },\n /**\n * De-select a given option.\n *\n * @param {object | string} option Option to remove.\n * @return {void}\n */\n deselect(option) {\n this.$emit(\"option:deselecting\", option);\n this.updateValue(this.selectedValue.filter((val) => {\n return !this.optionComparator(val, option);\n }));\n this.$emit(\"option:deselected\", option);\n },\n /**\n * De-select a given option on keyboard input.\n *\n * @param {object | string} option Option to remove.\n * @param {number} index Index of the deselect button.\n * @return {void}\n */\n keyboardDeselect(option, index2) {\n this.deselect(option);\n const nextDeselect = this.deselectButtons?.[index2 + 1];\n const prevDeselect = this.deselectButtons?.[index2 - 1];\n const deselectToFocus = nextDeselect ?? prevDeselect;\n if (deselectToFocus) {\n deselectToFocus.focus();\n } else {\n this.searchEl.focus();\n }\n },\n /**\n * Clears the currently selected value(s)\n *\n * @return {void}\n */\n clearSelection() {\n this.updateValue(this.multiple ? [] : null);\n this.searchEl.focus();\n },\n /**\n * Called from this.select after each selection.\n *\n * @param {object | string} option Option that was handled.\n * @return {void}\n */\n onAfterSelect() {\n if (this.closeOnSelect) {\n this.open = !this.open;\n }\n if (this.clearSearchOnSelect) {\n this.search = \"\";\n }\n if (this.noDrop && this.multiple) {\n this.$nextTick(() => this.$refs.search.focus());\n }\n },\n /**\n * Accepts a selected value, updates local\n * state when required, and triggers the\n * input event.\n *\n * @fires input\n * @param {object | string} value Selected value payload.\n */\n updateValue(value) {\n if (typeof this.modelValue === \"undefined\") {\n this.$data._value = value;\n }\n if (value !== null) {\n if (Array.isArray(value)) {\n value = value.map((val) => this.reduce(val));\n } else {\n value = this.reduce(value);\n }\n }\n this.$emit(\"update:modelValue\", value);\n },\n /**\n * Toggle the visibility of the dropdown menu.\n *\n * @param {Event} event Toggle trigger event.\n * @return {void}\n */\n toggleDropdown(event) {\n const targetIsNotSearch = event.target !== this.searchEl;\n if (targetIsNotSearch) {\n event.preventDefault();\n }\n const ignoredButtons = [\n ...this.deselectButtons || [],\n ...this.$refs.clearButton ? [this.$refs.clearButton] : []\n ];\n if (this.searchEl === void 0 || ignoredButtons.filter(Boolean).some((ref) => ref.contains(event.target) || ref === event.target)) {\n event.preventDefault();\n return;\n }\n if (this.open && targetIsNotSearch) {\n this.open = false;\n this.searchEl.blur();\n } else if (!this.disabled) {\n this.open = true;\n this.searchEl.focus();\n }\n },\n /**\n * Check if the given option is currently selected.\n *\n * @param {object | string} option Option to evaluate.\n * @return {boolean} True when selected | False otherwise\n */\n isOptionSelected(option) {\n return this.selectedValue.some((value) => this.optionComparator(value, option));\n },\n /**\n * Can the current option be removed via the dropdown?\n *\n * @param {object | string} option Option to evaluate.\n * @return {boolean}\n */\n isOptionDeselectable(option) {\n return this.isOptionSelected(option) && this.deselectFromDropdown;\n },\n /**\n * Check if the option at the given index should display a\n * keyboard focus border.\n *\n * @param {number} index Option index.\n * @return {boolean}\n */\n hasKeyboardFocusBorder(index2) {\n if (this.keyboardFocusBorder && this.isKeyboardNavigation) {\n return index2 === this.typeAheadPointer;\n }\n return false;\n },\n /**\n * Determine if two option objects are matching.\n *\n * @param {object} a First option.\n * @param {object} b Second option.\n * @return {boolean}\n */\n optionComparator(a, b) {\n return this.getOptionKey(a) === this.getOptionKey(b);\n },\n /**\n * Finds an option from the options\n * where a reduced value matches\n * the passed in value.\n *\n * @param {object} value Reduced value to match.\n * @return {*}\n */\n findOptionFromReducedValue(value) {\n const predicate = (option) => JSON.stringify(this.reduce(option)) === JSON.stringify(value);\n const matches = [...this.options, ...this.pushedTags].filter(predicate);\n if (matches.length === 1) {\n return matches[0];\n }\n return matches.find((match) => this.optionComparator(match, this.$data._value)) || value;\n },\n /**\n * 'Private' function to close the search options\n *\n * @fires {search:blur}\n * @return {void}\n */\n closeSearchOptions() {\n this.open = false;\n this.$emit(\"search:blur\");\n },\n /**\n * Delete the value on Delete keypress when there is no\n * text in the search input, & there's tags to delete\n *\n * @return {this.value}\n */\n maybeDeleteValue() {\n if (!this.searchEl.value.length && this.selectedValue && this.selectedValue.length && this.clearable) {\n let value = null;\n if (this.multiple) {\n value = [\n ...this.selectedValue.slice(0, this.selectedValue.length - 1)\n ];\n }\n this.updateValue(value);\n }\n },\n /**\n * Determine if an option exists\n * within this.optionList array.\n *\n * @param {Object || String} option Option to find.\n * @return {boolean}\n */\n optionExists(option) {\n return this.optionList.some((_option) => this.optionComparator(_option, option));\n },\n /**\n * Determine the `aria-selected` value\n * of an option\n *\n * @param {object | string} option Option to evaluate.\n * @return {null|string}\n */\n optionAriaSelected(option) {\n if (!this.selectable(option)) {\n return null;\n }\n return String(this.isOptionSelected(option));\n },\n /**\n * Ensures that options are always\n * passed as objects to scoped slots.\n *\n * @param {object | string} option Option to normalize.\n * @return {object}\n */\n normalizeOptionForSlot(option) {\n return typeof option === \"object\" ? option : { [this.label]: option };\n },\n /**\n * If push-tags is true, push the\n * given option to `this.pushedTags`.\n *\n * @param {Object || String} option Option to append.\n * @return {void}\n */\n pushTag(option) {\n this.pushedTags.push(option);\n },\n /**\n * If there is any text in the search input, remove it.\n * Otherwise, blur the search input to close the dropdown.\n *\n * @return {void}\n */\n onEscape() {\n if (!this.search.length) {\n this.open = false;\n } else {\n this.search = \"\";\n }\n },\n /**\n * Close the dropdown on blur.\n *\n * @fires {search:blur}\n * @return {void}\n */\n onSearchBlur() {\n if (this.mousedown && !this.searching) {\n this.mousedown = false;\n } else {\n const { clearSearchOnSelect, multiple } = this;\n if (this.clearSearchOnBlur({ clearSearchOnSelect, multiple })) {\n this.search = \"\";\n }\n this.closeSearchOptions();\n return;\n }\n if (this.search.length === 0 && this.options.length === 0) {\n this.closeSearchOptions();\n }\n },\n /**\n * Do NOT open the dropdown here: auto-opening on focus violates\n * WCAG 3.2.1 (On Focus). Keyboard users open via\n * Space/Enter/ArrowDown/ArrowUp; mouse users click.\n *\n * @fires {search:focus}\n * @return {void}\n */\n onSearchFocus() {\n this.$emit(\"search:focus\");\n },\n /**\n * Event-Handler to help workaround IE11 (probably fixes 10 as well)\n * firing a `blur` event when clicking\n * the dropdown's scrollbar, causing it\n * to collapse abruptly.\n *\n * @see https://github.com/sagalbot/vue-select/issues/106\n * @return {void}\n */\n onMousedown() {\n this.mousedown = true;\n },\n /**\n * Event-Handler to help workaround IE11 (probably fixes 10 as well)\n *\n * @see https://github.com/sagalbot/vue-select/issues/106\n * @return {void}\n */\n onMouseUp() {\n this.mousedown = false;\n },\n /**\n * Event-Handler for option mousemove\n *\n * @param {object | string} option Hovered option.\n * @param {number} index Hovered option index.\n * @return {void}\n */\n onMouseMove(option, index2) {\n this.isKeyboardNavigation = false;\n if (!this.selectable(option)) {\n return;\n }\n this.typeAheadPointer = index2;\n },\n /**\n * Search KeyBoardEvent handler.\n *\n * @param {KeyboardEvent} e Keyboard event.\n * @return {Function}\n */\n onSearchKeyDown(e) {\n const preventAndSelect = (e2) => {\n e2.preventDefault();\n if (!this.open) {\n this.open = true;\n return;\n }\n return !this.isComposing && this.typeAheadSelect();\n };\n const defaults = {\n // backspace\n 8: () => this.maybeDeleteValue(),\n // tab\n 9: () => this.onTab(),\n // esc\n 27: () => this.onEscape(),\n // up.prevent\n 38: (e2) => {\n e2.preventDefault();\n this.isKeyboardNavigation = true;\n if (!this.open) {\n this.open = true;\n return;\n }\n return this.typeAheadUp();\n },\n // down.prevent\n 40: (e2) => {\n e2.preventDefault();\n this.isKeyboardNavigation = true;\n if (!this.open) {\n this.open = true;\n return;\n }\n return this.typeAheadDown();\n }\n };\n this.selectOnKeyCodes.forEach((keyCode) => defaults[keyCode] = preventAndSelect);\n const handlers = this.mapKeydown(defaults, this);\n if (typeof handlers[e.keyCode] === \"function\") {\n return handlers[e.keyCode](e);\n }\n },\n /**\n * TODO: Probably want to add a mapKeyPress method just like we have for keydown.\n *\n * @param {KeyboardEvent} e Keyboard event.\n */\n onSearchKeyPress(e) {\n if (!this.open && e.keyCode === 32) {\n e.preventDefault();\n this.open = true;\n }\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"dir\"];\nconst _hoisted_2 = {\n ref: \"toggle\",\n class: \"vs__dropdown-toggle\"\n};\nconst _hoisted_3 = [\"disabled\", \"title\", \"aria-label\", \"onMousedown\", \"onKeydown\"];\nconst _hoisted_4 = {\n ref: \"actions\",\n class: \"vs__actions\"\n};\nconst _hoisted_5 = [\"disabled\", \"title\", \"aria-label\"];\nconst _hoisted_6 = { class: \"vs__spinner\" };\nconst _hoisted_7 = [\"id\", \"aria-label\", \"aria-multiselectable\"];\nconst _hoisted_8 = [\"id\", \"aria-selected\", \"onMousemove\", \"onClick\"];\nconst _hoisted_9 = {\n key: 0,\n class: \"vs__no-options\"\n};\nconst _hoisted_10 = [\"id\", \"aria-label\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _directive_append_to_body = resolveDirective(\"append-to-body\");\n return openBlock(), createElementBlock(\"div\", {\n id: `v-select-${$props.uid}`,\n dir: $props.dir,\n class: normalizeClass([\"v-select\", $options.stateClasses])\n }, [\n renderSlot(_ctx.$slots, \"header\", normalizeProps(guardReactiveProps($options.scope.header))),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", {\n ref: \"selectedOptions\",\n class: \"vs__selected-options\",\n onMousedown: _cache[0] || (_cache[0] = (...args) => $options.toggleDropdown && $options.toggleDropdown(...args))\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.selectedValue, (option, index2) => {\n return renderSlot(_ctx.$slots, \"selected-option-container\", {\n option: $options.normalizeOptionForSlot(option),\n deselect: $options.deselect,\n multiple: $props.multiple,\n disabled: $props.disabled\n }, () => [\n (openBlock(), createElementBlock(\"span\", {\n key: $props.getOptionKey(option),\n class: \"vs__selected\"\n }, [\n renderSlot(_ctx.$slots, \"selected-option\", mergeProps({ ref_for: true }, $options.normalizeOptionForSlot(option)), () => [\n createTextVNode(toDisplayString($props.getOptionLabel(option)), 1)\n ]),\n $props.multiple ? (openBlock(), createElementBlock(\"button\", {\n key: 0,\n ref_for: true,\n ref: (el) => $data.deselectButtons[index2] = el,\n disabled: $props.disabled,\n type: \"button\",\n class: \"vs__deselect\",\n title: $props.ariaLabelDeselectOption($props.getOptionLabel(option)),\n \"aria-label\": $props.ariaLabelDeselectOption($props.getOptionLabel(option)),\n onMousedown: withModifiers(($event) => $options.deselect(option), [\"stop\"]),\n onKeydown: withKeys(($event) => $options.keyboardDeselect(option, index2), [\"enter\"])\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.childComponents.Deselect)))\n ], 40, _hoisted_3)) : createCommentVNode(\"\", true)\n ]))\n ]);\n }), 256)),\n renderSlot(_ctx.$slots, \"search\", normalizeProps(guardReactiveProps($options.scope.search)), () => [\n createElementVNode(\"input\", mergeProps({ class: \"vs__search\" }, $options.scope.search.attributes, toHandlers($options.scope.search.events, true)), null, 16)\n ])\n ], 544),\n createElementVNode(\"div\", _hoisted_4, [\n withDirectives(createElementVNode(\"button\", {\n ref: \"clearButton\",\n disabled: $props.disabled,\n type: \"button\",\n class: \"vs__clear\",\n title: $props.ariaLabelClearSelected,\n \"aria-label\": $props.ariaLabelClearSelected,\n onClick: _cache[1] || (_cache[1] = (...args) => $options.clearSelection && $options.clearSelection(...args))\n }, [\n (openBlock(), createBlock(resolveDynamicComponent($options.childComponents.Deselect)))\n ], 8, _hoisted_5), [\n [vShow, $options.showClearButton]\n ]),\n !$props.noDrop ? (openBlock(), createElementBlock(\"button\", {\n key: 0,\n ref: \"openIndicatorButton\",\n class: \"vs__open-indicator-button\",\n type: \"button\",\n tabindex: \"-1\",\n \"aria-hidden\": \"true\",\n onMousedown: _cache[2] || (_cache[2] = (...args) => $options.toggleDropdown && $options.toggleDropdown(...args))\n }, [\n renderSlot(_ctx.$slots, \"open-indicator\", normalizeProps(guardReactiveProps($options.scope.openIndicator)), () => [\n (openBlock(), createBlock(resolveDynamicComponent($options.childComponents.OpenIndicator), normalizeProps(guardReactiveProps($options.scope.openIndicator.attributes)), null, 16))\n ])\n ], 544)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"spinner\", normalizeProps(guardReactiveProps($options.scope.spinner)), () => [\n withDirectives(createElementVNode(\"div\", _hoisted_6, \" Loading... \", 512), [\n [vShow, _ctx.mutableLoading]\n ])\n ])\n ], 512)\n ], 512),\n createVNode(Transition, { name: $props.transition }, {\n default: withCtx(() => [\n $options.dropdownOpen ? withDirectives((openBlock(), createElementBlock(\"ul\", {\n id: `vs-${$props.uid}__listbox`,\n ref: \"dropdownMenu\",\n key: `vs-${$props.uid}__listbox`,\n class: \"vs__dropdown-menu\",\n role: \"listbox\",\n \"aria-label\": $props.ariaLabelListbox,\n \"aria-multiselectable\": $props.multiple ? \"true\" : null,\n tabindex: \"-1\",\n onMousedown: _cache[3] || (_cache[3] = withModifiers((...args) => $options.onMousedown && $options.onMousedown(...args), [\"prevent\"])),\n onMouseup: _cache[4] || (_cache[4] = (...args) => $options.onMouseUp && $options.onMouseUp(...args))\n }, [\n renderSlot(_ctx.$slots, \"list-header\", normalizeProps(guardReactiveProps($options.scope.listHeader))),\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.filteredOptions, (option, index2) => {\n return openBlock(), createElementBlock(\"li\", {\n id: `vs-${$props.uid}__option-${index2}`,\n key: $props.getOptionKey(option),\n role: \"option\",\n class: normalizeClass([\"vs__dropdown-option\", {\n \"vs__dropdown-option--deselect\": $options.isOptionDeselectable(option) && index2 === _ctx.typeAheadPointer,\n \"vs__dropdown-option--selected\": $options.isOptionSelected(option),\n \"vs__dropdown-option--highlight\": index2 === _ctx.typeAheadPointer,\n \"vs__dropdown-option--kb-focus\": $options.hasKeyboardFocusBorder(index2),\n \"vs__dropdown-option--disabled\": !$props.selectable(option)\n }]),\n \"aria-selected\": $options.optionAriaSelected(option),\n onMousemove: ($event) => $options.onMouseMove(option, index2),\n onClick: withModifiers(($event) => $props.selectable(option) ? $options.select(option) : null, [\"prevent\", \"stop\"])\n }, [\n renderSlot(_ctx.$slots, \"option\", mergeProps({ ref_for: true }, $options.normalizeOptionForSlot(option)), () => [\n createTextVNode(toDisplayString($props.getOptionLabel(option)), 1)\n ])\n ], 42, _hoisted_8);\n }), 128)),\n $options.filteredOptions.length === 0 ? (openBlock(), createElementBlock(\"li\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"no-options\", normalizeProps(guardReactiveProps($options.scope.noOptions)), () => [\n _cache[5] || (_cache[5] = createTextVNode(\" Sorry, no matching options. \", -1))\n ])\n ])) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"list-footer\", normalizeProps(guardReactiveProps($options.scope.listFooter)))\n ], 40, _hoisted_7)), [\n [_directive_append_to_body]\n ]) : (openBlock(), createElementBlock(\"ul\", {\n key: 1,\n id: `vs-${$props.uid}__listbox`,\n role: \"listbox\",\n \"aria-label\": $props.ariaLabelListbox,\n style: { \"display\": \"none\", \"visibility\": \"hidden\" }\n }, null, 8, _hoisted_10))\n ]),\n _: 3\n }, 8, [\"name\"]),\n renderSlot(_ctx.$slots, \"footer\", normalizeProps(guardReactiveProps($options.scope.footer)))\n ], 10, _hoisted_1);\n}\nconst Select = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nconst index = { ajax, pointer, pointerScroll };\nexport {\n Select as VueSelect,\n index as mixins\n};\n//# sourceMappingURL=index.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _sfc_main = {\n name: \"ChevronDownIcon\",\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};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-down-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst ChevronDown = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n ChevronDown as C\n};\n//# sourceMappingURL=ChevronDown.mjs.map\n","import { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _sfc_main = {\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};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { 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\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon close-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2))\n ], 16, _hoisted_1);\n}\nconst IconClose = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n IconClose as I\n};\n//# sourceMappingURL=Close.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcEllipsisedOption.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcEllipsisedOption.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcEllipsisedOption.css';\nimport { _ as _sfc_main$1, f as findRanges } from \"./NcHighlight.vue_vue_type_script_lang.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, createVNode, createBlock, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _sfc_main = {\n name: \"NcEllipsisedOption\",\n components: {\n NcHighlight: _sfc_main$1\n },\n props: {\n /**\n * The text to be display in one line. If it is longer than 10 characters, it is be truncated with ellipsis in the end but keeping up to 10 last characters to fit the parent container.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The search value to highlight in the text\n */\n search: {\n type: String,\n default: \"\"\n }\n },\n computed: {\n needsTruncate() {\n return this.name && this.name.length >= 10;\n },\n /**\n * Index at which to split the name if it is longer than 10 characters.\n *\n * @return {number} The position at which to split\n */\n split() {\n return this.name.length - Math.min(Math.floor(this.name.length / 2), 10);\n },\n part1() {\n if (this.needsTruncate) {\n return this.name.slice(0, this.split);\n }\n return this.name;\n },\n part2() {\n if (this.needsTruncate) {\n return this.name.slice(this.split);\n }\n return \"\";\n },\n /**\n * The ranges to highlight. Since we split the string for ellipsising,\n * the Highlight component cannot figure this out itself and needs the ranges provided.\n *\n * @return {Array} The array with the ranges to highlight\n */\n highlight1() {\n if (!this.search) {\n return [];\n }\n return findRanges(this.name, this.search);\n },\n /**\n * We shift the ranges for the second part by the position of the split.\n * Ranges out of the string length are discarded by the Highlight component,\n * so we don't need to take care of this here.\n *\n * @return {Array} The array with the ranges to highlight\n */\n highlight2() {\n return this.highlight1.map((range) => {\n return {\n start: range.start - this.split,\n end: range.end - this.split\n };\n });\n }\n }\n};\nconst _hoisted_1 = [\"title\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n return openBlock(), createElementBlock(\"span\", {\n dir: \"auto\",\n class: \"name-parts\",\n title: $props.name\n }, [\n createVNode(_component_NcHighlight, {\n class: \"name-parts__first\",\n text: $options.part1,\n search: $props.search,\n highlight: $options.highlight1\n }, null, 8, [\"text\", \"search\", \"highlight\"]),\n $options.part2 ? (openBlock(), createBlock(_component_NcHighlight, {\n key: 0,\n class: \"name-parts__last\",\n text: $options.part2,\n search: $props.search,\n highlight: $options.highlight2\n }, null, 8, [\"text\", \"search\", \"highlight\"])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1);\n}\nconst NcEllipsisedOption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-c843f2cd\"]]);\nexport {\n NcEllipsisedOption as N\n};\n//# sourceMappingURL=NcEllipsisedOption.mjs.map\n","import { defineComponent, useModel, useTemplateRef, computed, openBlock, createBlock, unref, mergeProps, createSlots, withCtx, renderSlot, mergeModels } from \"vue\";\nimport { m as mdiArrowRight, a as mdiUndo, b as mdiClose } from \"./mdi.mjs\";\nimport { r as register, b as t52, c as t19, a as t } from \"./_l10n.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { N as NcInputField } from \"./NcInputField.mjs\";\nregister(t19, t52);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcTextField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: {},\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n placeholder: {},\n showTrailingButton: { type: Boolean },\n trailingButtonLabel: { default: void 0 },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n type: {},\n trailingButtonIcon: { default: \"close\" }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const defaultTrailingButtonLabels = {\n arrowEnd: t(\"Save changes\"),\n close: t(\"Clear text\"),\n undo: t(\"Undo changes\")\n };\n const NcInputFieldPropNames = new Set(Object.keys(NcInputField.props));\n const propsToForward = computed(() => {\n const sharedProps = Object.fromEntries(Object.entries(props).filter(([key]) => NcInputFieldPropNames.has(key)));\n sharedProps.trailingButtonLabel ??= defaultTrailingButtonLabels[props.trailingButtonIcon];\n return sharedProps;\n });\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcInputField), mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)\n }), createSlots({ _: 2 }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\")\n ]),\n key: \"0\"\n } : void 0,\n __props.type !== \"search\" ? {\n name: \"trailing-button-icon\",\n fn: withCtx(() => [\n __props.trailingButtonIcon === \"arrowEnd\" ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n directional: \"\",\n path: unref(mdiArrowRight)\n }, null, 8, [\"path\"])) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n path: __props.trailingButtonIcon === \"undo\" ? unref(mdiUndo) : unref(mdiClose)\n }, null, 8, [\"path\"]))\n ]),\n key: \"1\"\n } : void 0\n ]), 1040, [\"modelValue\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcTextField.vue_vue_type_script_setup_true_lang.mjs.map\n","import '../assets/NcSelect.css';\nimport { autoUpdate, computePosition, flip, offset, shift, limitShift } from \"@floating-ui/dom\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi.mjs\";\nimport { VueSelect } from \"@nextcloud/vue-select\";\nimport { resolveComponent, openBlock, createBlock, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createCommentVNode, renderSlot, normalizeProps, guardReactiveProps, createVNode, normalizeClass, createElementVNode, createElementBlock, renderList, warn, h } from \"vue\";\nimport { C as ChevronDown } from \"./ChevronDown.mjs\";\nimport { I as IconClose } from \"./Close.mjs\";\nimport { N as NcEllipsisedOption } from \"./NcEllipsisedOption.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcTextField.vue_vue_type_script_setup_true_lang.mjs\";\nimport { r as register, g as t18, a as t } from \"./_l10n.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { a as isLegacy } from \"./legacy.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nregister(t18);\nconst _sfc_main = {\n name: \"NcSelect\",\n components: {\n ChevronDown,\n NcEllipsisedOption,\n NcIconSvgWrapper,\n NcLoadingIcon,\n NcTextField: _sfc_main$1,\n VueSelect\n },\n props: {\n // Add VueSelect props to $props\n ...VueSelect.props,\n ...VueSelect.mixins.reduce((allProps, mixin) => ({ ...allProps, ...mixin.props }), {}),\n /**\n * `aria-label` for the clear input button\n */\n ariaLabelClearSelected: {\n type: String,\n default: t(\"Clear selected\")\n },\n /**\n * `aria-label` for the search input\n *\n * A descriptive `inputLabel` is preferred as this is not visible.\n */\n ariaLabelCombobox: {\n type: String,\n default: null\n },\n /**\n * `aria-label` for the listbox element\n */\n ariaLabelListbox: {\n type: String,\n default: t(\"Options\")\n },\n /**\n * Allows to customize the `aria-label` for the deselect-option button\n * The default is \"Deselect \" + optionLabel\n *\n * @type {(optionLabel: string) => string}\n */\n ariaLabelDeselectOption: {\n type: Function,\n default: (optionLabel) => t(\"Deselect {option}\", { option: optionLabel })\n },\n /**\n * Append the dropdown element to the end of the body\n * and size/position it dynamically.\n *\n * @see https://vue-select.org/api/props.html#appendtobody\n */\n appendToBody: {\n type: Boolean,\n default: true\n },\n /**\n * When `appendToBody` is true, this function is responsible for\n * positioning the drop down list.\n *\n * If a function is returned from `calculatePosition`, it will\n * be called when the drop down list is removed from the DOM.\n * This allows for any garbage collection you may need to do.\n *\n * @see https://vue-select.org/api/props.html#calculateposition\n */\n calculatePosition: {\n type: Function,\n default: null\n },\n /**\n * Keep the dropdown open after selecting an option.\n *\n * @default false\n * @since 8.25.0\n */\n keepOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Replace default vue-select components\n *\n * @see https://vue-select.org/api/props.html#components\n */\n components: {\n type: Object,\n default: () => ({\n Deselect: {\n render: () => h(IconClose, {\n size: 20,\n fillColor: \"var(--vs-controls-color)\",\n style: [\n { cursor: \"pointer\" }\n ]\n })\n }\n })\n },\n /**\n * Sets the maximum number of options to display in the dropdown list\n */\n limit: {\n type: Number,\n default: null\n },\n /**\n * Disable the component\n *\n * @see https://vue-select.org/api/props.html#disabled\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Determines whether the dropdown should be open.\n * Receives the component instance as the only argument.\n *\n * @see https://vue-select.org/api/props.html#dropdownshouldopen\n */\n dropdownShouldOpen: {\n type: Function,\n default: ({ noDrop, open }) => {\n return noDrop ? false : open;\n }\n },\n /**\n * Callback to determine if the provided option should\n * match the current search text. Used to determine\n * if the option should be displayed.\n *\n * Defaults to the internal vue-select function documented at the link\n * below\n *\n * @see https://vue-select.org/api/props.html#filterby\n */\n filterBy: {\n type: Function,\n default: null\n },\n /**\n * Class for the `input`\n *\n * Necessary for use in NcActionInput\n */\n inputClass: {\n type: [String, Object],\n default: null\n },\n /**\n * Input element id\n */\n inputId: {\n type: String,\n default: () => createElementId()\n },\n /**\n * Visible label for the input element\n */\n inputLabel: {\n type: String,\n default: null\n },\n /**\n * Additional helper text shown beneath the select.\n */\n helperText: {\n type: String,\n default: \"\"\n },\n /**\n * Toggle the error state, styling the helper text as an error.\n */\n error: {\n type: Boolean,\n default: false\n },\n /**\n * Toggle the success state, styling the helper text as a success.\n */\n success: {\n type: Boolean,\n default: false\n },\n /**\n * Pass true if you are using an external label\n */\n labelOutside: {\n type: Boolean,\n default: false\n },\n /**\n * Display a visible border around dropdown options\n * which have keyboard focus\n */\n keyboardFocusBorder: {\n type: Boolean,\n default: true\n },\n /**\n * Key of the displayed label for object options\n *\n * Defaults to the internal vue-select string documented at the link\n * below\n *\n * @see https://vue-select.org/api/props.html#label\n */\n label: {\n type: String,\n default: null\n },\n /**\n * Show the loading icon\n *\n * @see https://vue-select.org/api/props.html#loading\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Allow selection of multiple options\n *\n * @see https://vue-select.org/api/props.html#multiple\n */\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Disable automatic wrapping when selected options overflow the width\n */\n noWrap: {\n type: Boolean,\n default: false\n },\n /**\n * Array of options\n *\n * @type {Array>}\n *\n * @see https://vue-select.org/api/props.html#options\n */\n options: {\n type: Array,\n default: () => []\n },\n /**\n * Placeholder text\n *\n * @see https://vue-select.org/api/props.html#placeholder\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * Customized component's response to keydown events while the search input has focus\n *\n * @see https://vue-select.org/guide/keydown.html#mapkeydown\n */\n mapKeydown: {\n type: Function,\n /**\n * Patched Vue-Select keydown events handlers map to stop Escape propagation in open select\n *\n * @param {Record void>} map - Mapped keyCode to handlers { : }\n * @param {import('vue').ComponentPublicInstance} vm - VueSelect instance\n * @return {Record void>} patched keydown event handlers\n */\n default(map, vm) {\n return {\n ...map,\n /**\n * Patched Escape handler to stop propagation from open select\n *\n * @param {KeyboardEvent} event - default keydown event handler\n */\n 27: (event) => {\n if (vm.open) {\n event.stopPropagation();\n }\n map[27](event);\n }\n };\n }\n },\n /**\n * A unique identifier used to generate IDs and DOM attributes. Must be unique for every instance of the component.\n *\n * @see https://vue-select.org/api/props.html#uid\n */\n uid: {\n type: String,\n default: () => createElementId()\n },\n /**\n * When `appendToBody` is true, this sets the placement of the dropdown\n *\n * @type {'bottom' | 'top'}\n */\n placement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * If false, the focused dropdown option will not be reset when filtered\n * options change\n */\n resetFocusOnOptionsChange: {\n type: Boolean,\n default: true\n },\n /**\n * Currently selected value\n *\n * The `v-model` directive may be used for two-way data binding\n *\n * @type {string | number | Record | Array}\n *\n * @see https://vue-select.org/api/props.html#value\n */\n modelValue: {\n type: [String, Number, Object, Array],\n default: null\n },\n /**\n * Enable if a value is required for native form validation\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Any available prop\n *\n * @see https://vue-select.org/api/props.html\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n },\n emits: [\n /**\n * All events from https://vue-select.org/api/events.html\n */\n // Not an actual event but needed to show in vue-styleguidist docs\n \" \",\n \"update:modelValue\"\n ],\n setup() {\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n return {\n avatarSize,\n isLegacy,\n mdiAlertCircleOutline,\n mdiCheck\n };\n },\n data() {\n return {\n search: \"\"\n };\n },\n computed: {\n inputRequired() {\n if (!this.required) {\n return null;\n }\n return this.modelValue === null || Array.isArray(this.modelValue) && this.modelValue.length === 0;\n },\n localCalculatePosition() {\n if (this.calculatePosition !== null) {\n return this.calculatePosition;\n }\n return (dropdownMenu, component, { width }) => {\n dropdownMenu.style.width = width;\n const addClass = {\n name: \"addClass\",\n fn() {\n dropdownMenu.classList.add(\"vs__dropdown-menu--floating\", \"nc-select__dropdown\");\n return {};\n }\n };\n const togglePlacementClass = {\n name: \"togglePlacementClass\",\n fn({ placement }) {\n component.$el.classList.toggle(\n \"select--drop-up\",\n placement === \"top\"\n );\n dropdownMenu.classList.toggle(\n \"vs__dropdown-menu--floating-placement-top\",\n placement === \"top\"\n );\n return {};\n }\n };\n const updatePosition = () => {\n computePosition(component.$refs.toggle, dropdownMenu, {\n placement: this.placement,\n middleware: [\n // Flip first so the placement-dependent middleware below see the final placement\n flip(),\n addClass,\n togglePlacementClass,\n // On top placement, leave a gap for the floating label overhang\n // (about half the floated label line-height) instead of connecting seamlessly\n offset(({ placement }) => placement.startsWith(\"top\") ? 10 : -1),\n shift({ limiter: limitShift() })\n ]\n }).then(({ x, y }) => {\n Object.assign(dropdownMenu.style, {\n left: `${x}px`,\n top: `${y}px`,\n width: `${component.$refs.toggle.getBoundingClientRect().width}px`\n });\n });\n };\n const cleanup = autoUpdate(\n component.$refs.toggle,\n dropdownMenu,\n updatePosition\n );\n return cleanup;\n };\n },\n localFilterBy() {\n return this.filterBy ?? VueSelect.props.filterBy.default;\n },\n localLabel() {\n return this.label ?? VueSelect.props.label.default;\n },\n propsToForward() {\n const vueSelectKeys = [\n ...Object.keys(VueSelect.props),\n ...VueSelect.mixins.flatMap((mixin) => Object.keys(mixin.props ?? {}))\n ];\n const initialPropsToForward = Object.fromEntries(Object.entries(this.$props).filter(([key, _value]) => vueSelectKeys.includes(key)));\n const propsToForward = {\n ...initialPropsToForward,\n // Custom overrides of vue-select props\n calculatePosition: this.localCalculatePosition,\n closeOnSelect: !this.keepOpen,\n filterBy: this.localFilterBy,\n label: this.localLabel\n };\n return propsToForward;\n }\n },\n mounted() {\n if (!this.labelOutside && !this.inputLabel && !this.ariaLabelCombobox) {\n warn(\"[NcSelect] An `inputLabel` or `ariaLabelCombobox` should be set. If an external label is used, `labelOutside` should be set to `true`.\");\n }\n if (this.inputLabel && this.ariaLabelCombobox) {\n warn(\"[NcSelect] Only one of `inputLabel` or `ariaLabelCombobox` should to be set.\");\n }\n },\n methods: {\n t,\n /**\n * Consumer-provided slots forwarded to vue-select, excluding `footer`\n * which we render ourselves to host the helper text.\n *\n * `$slots` is not reactive, so this is a method (re-evaluated on every\n * render) rather than a computed, to keep the forwarded slot list fresh.\n *\n * @return {string[]}\n */\n forwardedSlots() {\n return Object.keys(this.$slots).filter((name) => name !== \"footer\");\n }\n }\n};\nconst _hoisted_1 = [\"for\"];\nconst _hoisted_2 = [\"id\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcTextField = resolveComponent(\"NcTextField\");\n const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n const _component_NcEllipsisedOption = resolveComponent(\"NcEllipsisedOption\");\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n const _component_VueSelect = resolveComponent(\"VueSelect\");\n return openBlock(), createBlock(_component_VueSelect, mergeProps({\n class: [\"select nc-select\", {\n \"select--legacy\": $setup.isLegacy,\n \"select--no-wrap\": $props.noWrap\n }]\n }, $options.propsToForward, {\n onSearch: _cache[0] || (_cache[0] = ($event) => $data.search = $event),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"update:modelValue\", $event))\n }), createSlots({\n search: withCtx(({ attributes, events }) => [\n createVNode(_component_NcTextField, {\n id: attributes.id,\n class: normalizeClass([\"vs__search\", [$props.inputClass]]),\n type: attributes.type,\n modelValue: attributes.value,\n placeholder: $props.multiple || $props.modelValue ? \"\" : $props.placeholder || \"\",\n label: !$props.labelOutside && !$props.multiple && $props.inputLabel ? $props.inputLabel : \"\",\n labelOutside: $props.labelOutside || $props.multiple,\n disabled: $props.disabled,\n required: $options.inputRequired,\n role: attributes.role,\n tabindex: attributes.tabindex,\n readonly: attributes.readonly,\n autocomplete: attributes.autocomplete,\n \"aria-label\": attributes[\"aria-label\"],\n \"aria-describedby\": [attributes[\"aria-describedby\"], $props.helperText ? `${$props.inputId}-helper-text` : null].filter(Boolean).join(\" \") || void 0,\n \"aria-autocomplete\": attributes[\"aria-autocomplete\"],\n \"aria-controls\": attributes[\"aria-controls\"],\n \"aria-owns\": attributes[\"aria-owns\"],\n \"aria-expanded\": attributes[\"aria-expanded\"],\n \"aria-activedescendant\": attributes[\"aria-activedescendant\"],\n onKeydown: events.keydown,\n onKeypress: events.keypress,\n onFocus: events.focus,\n onBlur: events.blur,\n onCompositionstart: events.compositionstart,\n onCompositionend: events.compositionend,\n \"onUpdate:modelValue\": ($event) => events.input({ target: { value: $event } })\n }, null, 8, [\"id\", \"class\", \"type\", \"modelValue\", \"placeholder\", \"label\", \"labelOutside\", \"disabled\", \"required\", \"role\", \"tabindex\", \"readonly\", \"autocomplete\", \"aria-label\", \"aria-describedby\", \"aria-autocomplete\", \"aria-controls\", \"aria-owns\", \"aria-expanded\", \"aria-activedescendant\", \"onKeydown\", \"onKeypress\", \"onFocus\", \"onBlur\", \"onCompositionstart\", \"onCompositionend\", \"onUpdate:modelValue\"])\n ]),\n \"open-indicator\": withCtx(({ attributes }) => [\n createVNode(_component_ChevronDown, mergeProps(attributes, {\n fillColor: \"var(--vs-controls-color)\",\n style: {\n cursor: !$props.disabled ? \"pointer\" : null\n },\n size: 20\n }), null, 16, [\"style\"])\n ]),\n option: withCtx((option) => [\n renderSlot(_ctx.$slots, \"option\", normalizeProps(guardReactiveProps(option)), () => [\n createVNode(_component_NcEllipsisedOption, {\n name: String(option[$options.localLabel]),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n renderSlot(_ctx.$slots, \"selected-option\", normalizeProps(guardReactiveProps(selectedOption)), () => [\n createVNode(_component_NcEllipsisedOption, {\n name: String(selectedOption[$options.localLabel]),\n search: $data.search\n }, null, 8, [\"name\", \"search\"])\n ])\n ]),\n spinner: withCtx((spinner) => [\n spinner.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : createCommentVNode(\"\", true)\n ]),\n \"no-options\": withCtx(() => [\n createTextVNode(toDisplayString($options.t(\"No results\")), 1)\n ]),\n _: 2\n }, [\n $props.multiple && !$props.labelOutside && $props.inputLabel ? {\n name: \"header\",\n fn: withCtx(() => [\n createElementVNode(\"label\", {\n for: $props.inputId,\n class: \"select__label\"\n }, toDisplayString($props.inputLabel), 9, _hoisted_1)\n ]),\n key: \"0\"\n } : void 0,\n $props.helperText || _ctx.$slots.footer ? {\n name: \"footer\",\n fn: withCtx((data) => [\n $props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${$props.inputId}-helper-text`,\n class: normalizeClass([\"select__helper-text\", {\n \"select__helper-text--error\": $props.error,\n \"select__helper-text--success\": $props.success\n }])\n }, [\n $props.success ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"select__helper-text-icon\",\n path: $setup.mdiCheck,\n inline: \"\"\n }, null, 8, [\"path\"])) : $props.error ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 1,\n class: \"select__helper-text-icon\",\n path: $setup.mdiAlertCircleOutline,\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString($props.helperText), 1)\n ], 10, _hoisted_2)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"footer\", normalizeProps(guardReactiveProps(data)))\n ]),\n key: \"1\"\n } : void 0,\n renderList($options.forwardedSlots(), (name) => {\n return {\n name,\n fn: withCtx((data) => [\n renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(data)))\n ])\n };\n })\n ]), 1040, [\"class\"]);\n}\nconst NcSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n NcSelect as N\n};\n//# sourceMappingURL=NcSelect.mjs.map\n","import '../assets/NcSelectUsers.css';\nimport { defineComponent, useModel, ref, watch, openBlock, createBlock, unref, mergeProps, withCtx, createVNode, mergeModels } from \"vue\";\nimport { N as NcListItemIcon } from \"./NcListItemIcon.mjs\";\nimport { N as NcSelect } from \"./NcSelect.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcSelectUsers\",\n props: /* @__PURE__ */ mergeModels({\n ariaLabelClearSelected: {},\n ariaLabelListbox: {},\n ariaLabelDeselectOption: { type: Function },\n disabled: { type: Boolean },\n inputId: {},\n inputLabel: {},\n labelOutside: { type: Boolean },\n keepOpen: { type: Boolean },\n loading: { type: Boolean },\n multiple: { type: Boolean },\n noWrap: { type: Boolean },\n options: {},\n placeholder: {},\n required: { type: Boolean }\n }, {\n \"modelValue\": {},\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"search\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const emit = __emit;\n const search = ref(\"\");\n watch(search, () => emit(\"search\", search.value));\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n function filterBy(option, label, search2) {\n const EMAIL_NOTATION = /[^<]*<([^>]+)/;\n const match = search2.match(EMAIL_NOTATION);\n const subname = option.subname?.toLocaleLowerCase() ?? \"\";\n return match && subname.indexOf(match[1].toLocaleLowerCase()) > -1 || `${label} ${option.subname}`.toLocaleLowerCase().indexOf(search2.toLocaleLowerCase()) > -1;\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcSelect), mergeProps({\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n class: \"nc-select-users\"\n }, _ctx.$props, {\n filterBy,\n label: \"displayName\",\n onSearch: _cache[1] || (_cache[1] = ($event) => search.value = $event)\n }), {\n option: withCtx((option) => [\n createVNode(unref(NcListItemIcon), mergeProps(option, {\n avatarSize: 32,\n name: option.displayName,\n search: search.value\n }), null, 16, [\"name\", \"search\"])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n createVNode(unref(NcListItemIcon), mergeProps(selectedOption, {\n avatarSize,\n name: selectedOption.displayName,\n noMargin: \"\",\n search: search.value\n }), null, 16, [\"name\", \"search\"])\n ]),\n _: 1\n }, 16, [\"modelValue\"]);\n };\n }\n});\nconst NcSelectUsers = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-dbcc7078\"]]);\nexport {\n NcSelectUsers as N\n};\n//# sourceMappingURL=NcSelectUsers.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcFormBoxSwitch.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcFormBoxSwitch.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcFormBoxItem.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcFormBoxItem.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcFormBoxItem.css';\nimport { defineComponent, useSlots, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, createBlock, resolveDynamicComponent, mergeProps, withCtx, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { u as useNcFormBox } from \"./useNcFormBox.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { a as isLegacy } from \"./legacy.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _hoisted_1 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcFormBoxItem\",\n props: {\n tag: {},\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n invertedAccent: { type: Boolean, default: false },\n class: { default: () => void 0 },\n itemClasses: { default: () => void 0 }\n },\n emits: [\"click\"],\n setup(__props) {\n const slots = useSlots();\n const { formBoxItemClass } = useNcFormBox();\n const descriptionId = createElementId();\n const hasDescription = () => !!__props.description || !!slots.description;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\n __props.class,\n _ctx.$style.formBoxItem,\n unref(formBoxItemClass),\n {\n [_ctx.$style.formBoxItem_inverted]: __props.invertedAccent && hasDescription(),\n [_ctx.$style.formBoxItem_legacy]: unref(isLegacy)\n }\n ])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.formBoxItem__content)\n }, [\n (openBlock(), createBlock(resolveDynamicComponent(__props.tag), mergeProps({\n class: [_ctx.$style.formBoxItem__element, __props.itemClasses]\n }, _ctx.$attrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", { descriptionId: unref(descriptionId) }, () => [\n createTextVNode(toDisplayString(__props.label || \"⚠️ Label is missing\"), 1)\n ])\n ]),\n _: 3\n }, 16, [\"class\"])),\n hasDescription() ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: unref(descriptionId),\n class: normalizeClass(_ctx.$style.formBoxItem__description)\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ], 10, _hoisted_1)) : createCommentVNode(\"\", true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.formBoxItem__icon)\n }, [\n renderSlot(_ctx.$slots, \"icon\", { descriptionId: unref(descriptionId) }, () => [\n _cache[1] || (_cache[1] = createTextVNode(\" ⚠️ Icon is missing \", -1))\n ])\n ], 2)\n ], 2);\n };\n }\n});\nconst formBoxItem = \"_formBoxItem_A3svz\";\nconst formBoxItem__description = \"_formBoxItem__description_s3aoO\";\nconst formBoxItem_legacy = \"_formBoxItem_legacy_M8oCv\";\nconst formBoxItem_inverted = \"_formBoxItem_inverted_yQ6cM\";\nconst formBoxItem__element = \"_formBoxItem__element_63no0\";\nconst formBoxItem__content = \"_formBoxItem__content_plRks\";\nconst formBoxItem__icon = \"_formBoxItem__icon_xzuO7\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_oeKe9\",\n formBoxItem,\n formBoxItem__description,\n formBoxItem_legacy,\n formBoxItem_inverted,\n formBoxItem__element,\n formBoxItem__content,\n formBoxItem__icon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxItem as N\n};\n//# sourceMappingURL=NcFormBoxItem.mjs.map\n","import '../assets/NcFormBoxSwitch.css';\nimport { defineComponent, useModel, watch, openBlock, createBlock, unref, createSlots, withCtx, withDirectives, createElementVNode, normalizeClass, vModelCheckbox, createVNode, renderSlot, createTextVNode, toDisplayString, mergeModels } from \"vue\";\nimport { N as NcFormBoxItem } from \"./NcFormBoxItem.mjs\";\nimport { N as NcIconToggleSwitch } from \"./NcIconToggleSwitch.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _hoisted_1 = [\"id\", \"aria-describedby\", \"disabled\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBoxSwitch\",\n props: /* @__PURE__ */ mergeModels({\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n disabled: { type: Boolean, default: false }\n }, {\n \"modelValue\": { type: Boolean, ...{ required: true } },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"enable\", \"disable\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const emit = __emit;\n const inputId = createElementId();\n watch(modelValue, () => {\n if (modelValue.value) {\n emit(\"enable\");\n } else {\n emit(\"disable\");\n }\n }, {\n // defineModel emits update:modelValue synchronously\n // Watching it synchronously to emit the enable/disable events together with the update:modelValue event\n flush: \"sync\"\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcFormBoxItem, {\n tag: \"label\",\n for: unref(inputId)\n }, createSlots({\n icon: withCtx(({ descriptionId }) => [\n withDirectives(createElementVNode(\"input\", {\n id: unref(inputId),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n class: normalizeClass(_ctx.$style.formBoxSwitch__input),\n type: \"checkbox\",\n role: \"switch\",\n \"aria-describedby\": descriptionId,\n disabled: __props.disabled\n }, null, 10, _hoisted_1), [\n [vModelCheckbox, modelValue.value]\n ]),\n createVNode(NcIconToggleSwitch, {\n checked: modelValue.value,\n inline: \"\"\n }, null, 8, [\"checked\"])\n ]),\n _: 2\n }, [\n _ctx.$slots.default || __props.label ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.label), 1)\n ])\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots.description || __props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"for\"]);\n };\n }\n});\nconst formBoxSwitch__input = \"_formBoxSwitch__input_MIhKf\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_5UzOd\",\n formBoxSwitch__input\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxSwitch as N\n};\n//# sourceMappingURL=NcFormBoxSwitch.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcDateTimePickerNative.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcDateTimePickerNative.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcDateTimePickerNative.css';\nimport { defineComponent, useModel, computed, openBlock, createBlock, mergeProps, mergeModels } from \"vue\";\nimport { N as NcInputField } from \"./NcInputField.mjs\";\nimport { r as register, y as t41, a as t } from \"./_l10n.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nregister(t41);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcDateTimePickerNative\",\n props: /* @__PURE__ */ mergeModels({\n class: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n type: { default: \"date\" },\n label: { default: () => t(\"Please choose a date\") },\n min: { default: null },\n max: { default: null },\n hideLabel: { type: Boolean }\n }, {\n \"modelValue\": { default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : \"\");\n const formattedMax = computed(() => props.max ? formatValue(props.max) : void 0);\n const formattedMin = computed(() => props.min ? formatValue(props.min) : void 0);\n const ncInputFieldPropNames = new Set(Object.keys(NcInputField.props));\n const propsToForward = computed(() => Object.fromEntries(Object.entries(props).filter(([key]) => ncInputFieldPropNames.has(key))));\n function getReadableDate(value) {\n const yyyy = value.getFullYear().toString().padStart(4, \"0\");\n const MM = (value.getMonth() + 1).toString().padStart(2, \"0\");\n const dd = value.getDate().toString().padStart(2, \"0\");\n const hh = value.getHours().toString().padStart(2, \"0\");\n const mm = value.getMinutes().toString().padStart(2, \"0\");\n return { yyyy, MM, dd, hh, mm };\n }\n function formatValue(value) {\n const { yyyy, MM, dd, hh, mm } = getReadableDate(value);\n if (props.type === \"datetime-local\") {\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}`;\n } else if (props.type === \"date\") {\n return `${yyyy}-${MM}-${dd}`;\n } else if (props.type === \"month\") {\n return `${yyyy}-${MM}`;\n } else if (props.type === \"time\") {\n return `${hh}:${mm}`;\n } else if (props.type === \"week\") {\n const startDate = new Date(Number.parseInt(yyyy), 0, 1);\n const daysSinceBeginningOfYear = Math.floor((value.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1e3));\n const weekNumber = Math.ceil(daysSinceBeginningOfYear / 7);\n return `${yyyy}-W${weekNumber}`;\n }\n return \"\";\n }\n function onInput(event) {\n const input = event.target;\n if (!input || isNaN(input.valueAsNumber)) {\n modelValue.value = null;\n } else if (props.type === \"time\") {\n const time = input.value;\n const { yyyy, MM, dd } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${time}`);\n } else if (props.type === \"month\") {\n const MM = (new Date(input.value).getMonth() + 1).toString().padStart(2, \"0\");\n const { yyyy, dd, hh, mm } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());\n modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`);\n } else {\n const timezoneOffsetSeconds = new Date(input.valueAsNumber).getTimezoneOffset() * 1e3 * 60;\n const inputDateWithTimezone = input.valueAsNumber + timezoneOffsetSeconds;\n modelValue.value = new Date(inputDateWithTimezone);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcInputField, mergeProps({ ..._ctx.$attrs, ...propsToForward.value }, {\n class: \"native-datetime-picker\",\n label: __props.hideLabel ? void 0 : __props.label,\n labelOutside: __props.hideLabel,\n \"aria-label\": __props.hideLabel ? __props.label : void 0,\n modelValue: formattedValue.value,\n min: formattedMin.value,\n max: formattedMax.value,\n onInput\n }), null, 16, [\"label\", \"labelOutside\", \"aria-label\", \"modelValue\", \"min\", \"max\"]);\n };\n }\n});\nconst NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-7639cce1\"]]);\nexport {\n NcDateTimePickerNative as N\n};\n//# sourceMappingURL=NcDateTimePickerNative.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcPasswordField.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcPasswordField.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcPasswordField.css';\nimport { defineComponent, useModel, useTemplateRef, ref, computed, watch, openBlock, createBlock, mergeProps, unref, createSlots, withCtx, createVNode, renderSlot, mergeModels } from \"vue\";\nimport { q as mdiEyeOff, r as mdiEye } from \"./mdi.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport debounce from \"debounce\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { N as NcInputField } from \"./NcInputField.mjs\";\nimport { r as register, o as t30, a as t } from \"./_l10n.mjs\";\nimport { l as logger } from \"./logger.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nregister(t30);\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcPasswordField\",\n props: /* @__PURE__ */ mergeModels({\n class: {},\n inputClass: { default: \"\" },\n id: {},\n label: {},\n labelOutside: { type: Boolean },\n placeholder: {},\n showTrailingButton: { type: Boolean, default: true },\n success: { type: Boolean },\n error: { type: Boolean },\n helperText: {},\n disabled: { type: Boolean },\n pill: { type: Boolean },\n checkPasswordStrength: { type: Boolean },\n minlength: { default: void 0 },\n asText: { type: Boolean }\n }, {\n \"modelValue\": { default: \"\" },\n \"modelModifiers\": {},\n \"visible\": { type: Boolean, ...{ default: false } },\n \"visibleModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"valid\", \"invalid\"], [\"update:modelValue\", \"update:visible\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const visible = useModel(__props, \"visible\");\n const props = __props;\n const emit = __emit;\n __expose({\n focus,\n select\n });\n const { password_policy: passwordPolicy } = getCapabilities();\n const inputFieldInstance = useTemplateRef(\"inputField\");\n const internalHelpMessage = ref(\"\");\n const isValid = ref();\n const propsToForward = computed(() => {\n const all = { ...props };\n delete all.checkPasswordStrength;\n delete all.minlength;\n delete all.asText;\n delete all.error;\n delete all.helperText;\n delete all.inputClass;\n delete all.success;\n return all;\n });\n const minLengthWithPolicy = computed(() => {\n return props.minlength ?? (props.checkPasswordStrength ? passwordPolicy?.minLength : void 0) ?? void 0;\n });\n watch(modelValue, () => {\n isValid.value = void 0;\n internalHelpMessage.value = \"\";\n });\n watch(modelValue, debounce(checkPassword, 500));\n async function checkPassword() {\n if (!props.checkPasswordStrength || !modelValue.value) {\n return;\n }\n try {\n const { data } = await axios.post(generateOcsUrl(\"apps/password_policy/api/v1/validate\"), { password: modelValue.value });\n isValid.value = data.ocs.data.passed;\n if (data.ocs.data.passed) {\n internalHelpMessage.value = t(\"Password is secure\");\n emit(\"valid\");\n return;\n }\n internalHelpMessage.value = data.ocs.data.reason;\n emit(\"invalid\");\n } catch (error) {\n logger.error(\"Password policy returned an error\", { error });\n }\n }\n function toggleVisibility() {\n visible.value = !visible.value;\n }\n function focus(options) {\n inputFieldInstance.value.focus(options);\n }\n function select() {\n inputFieldInstance.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcInputField, mergeProps(propsToForward.value, {\n ref: \"inputField\",\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n error: __props.error || isValid.value === false,\n helperText: __props.helperText || internalHelpMessage.value,\n inputClass: [__props.inputClass, { \"password-field__input--secure-text\": !visible.value && __props.asText }],\n minlength: minLengthWithPolicy.value,\n success: __props.success || isValid.value === true,\n trailingButtonLabel: visible.value ? unref(t)(\"Hide password\") : unref(t)(\"Show password\"),\n type: visible.value || __props.asText ? \"text\" : \"password\",\n onTrailingButtonClick: toggleVisibility\n }), createSlots({\n \"trailing-button-icon\": withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: visible.value ? unref(mdiEyeOff) : unref(mdiEye)\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, [\n !!_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1040, [\"modelValue\", \"error\", \"helperText\", \"inputClass\", \"minlength\", \"success\", \"trailingButtonLabel\", \"type\"]);\n };\n }\n});\nconst NcPasswordField = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-cb828737\"]]);\nexport {\n NcPasswordField as N\n};\n//# sourceMappingURL=NcPasswordField.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcTextArea.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcTextArea.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcTextArea.css';\nimport { defineComponent, useModel, useAttrs, useTemplateRef, computed, watch, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, mergeProps, toDisplayString, createCommentVNode, createBlock, createTextVNode, mergeModels } from \"vue\";\nimport { d as mdiCheck, j as mdiAlertCircleOutline } from \"./mdi.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { c as createElementId } from \"./createElementId.mjs\";\nimport { a as isLegacy } from \"./legacy.mjs\";\nimport { l as logger } from \"./logger.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _hoisted_1 = { class: \"textarea__main-wrapper\" };\nconst _hoisted_2 = [\"id\", \"aria-describedby\", \"disabled\", \"placeholder\", \"value\"];\nconst _hoisted_3 = [\"for\"];\nconst _hoisted_4 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcTextArea\",\n props: /* @__PURE__ */ mergeModels({\n disabled: { type: Boolean },\n error: { type: Boolean },\n helperText: { default: void 0 },\n id: { default: () => createElementId() },\n inputClass: { default: \"\" },\n label: { default: void 0 },\n labelOutside: { type: Boolean },\n placeholder: { default: void 0 },\n resize: { default: \"both\" },\n success: { type: Boolean }\n }, {\n \"modelValue\": { required: true },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props, { expose: __expose }) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n __expose({\n focus,\n select\n });\n const attrs = useAttrs();\n const textAreaElement = useTemplateRef(\"input\");\n const internalPlaceholder = computed(() => props.placeholder || (isLegacy ? props.label : void 0));\n watch(() => props.labelOutside, () => {\n if (!props.labelOutside && !props.label) {\n logger.warn(\"[NcTextArea] You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n });\n const ariaDescribedby = computed(() => {\n const ariaDescribedby2 = [];\n if (props.helperText) {\n ariaDescribedby2.push(`${props.id}-helper-text`);\n }\n if (typeof attrs[\"aria-describedby\"] === \"string\") {\n ariaDescribedby2.push(attrs[\"aria-describedby\"]);\n }\n return ariaDescribedby2.join(\" \") || void 0;\n });\n function handleInput(event) {\n const { value } = event.target;\n modelValue.value = value;\n }\n function focus(options) {\n textAreaElement.value.focus(options);\n }\n function select() {\n textAreaElement.value.select();\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"textarea\", [\n _ctx.$attrs.class,\n {\n \"textarea--disabled\": __props.disabled,\n \"textarea--legacy\": unref(isLegacy)\n }\n ]])\n }, [\n createElementVNode(\"div\", _hoisted_1, [\n createElementVNode(\"textarea\", mergeProps({ ..._ctx.$attrs, class: void 0 }, {\n id: __props.id,\n ref: \"input\",\n \"aria-describedby\": ariaDescribedby.value,\n \"aria-live\": \"polite\",\n class: [\"textarea__input\", [\n __props.inputClass,\n {\n \"textarea__input--label-outside\": __props.labelOutside,\n \"textarea__input--legacy\": unref(isLegacy),\n \"textarea__input--success\": __props.success,\n \"textarea__input--error\": __props.error\n }\n ]],\n disabled: __props.disabled,\n placeholder: internalPlaceholder.value,\n style: { resize: __props.resize },\n value: modelValue.value,\n onInput: handleInput\n }), null, 16, _hoisted_2),\n !__props.labelOutside ? (openBlock(), createElementBlock(\"label\", {\n key: 0,\n class: \"textarea__label\",\n for: __props.id\n }, toDisplayString(__props.label), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ]),\n __props.helperText ? (openBlock(), createElementBlock(\"p\", {\n key: 0,\n id: `${__props.id}-helper-text`,\n class: normalizeClass([\"textarea__helper-text-message\", {\n \"textarea__helper-text-message--error\": __props.error,\n \"textarea__helper-text-message--success\": __props.success\n }])\n }, [\n __props.success ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiCheck),\n inline: \"\"\n }, null, 8, [\"path\"])) : __props.error ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 1,\n class: \"textarea__helper-text-message__icon\",\n path: unref(mdiAlertCircleOutline),\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true),\n createTextVNode(\" \" + toDisplayString(__props.helperText), 1)\n ], 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst NcTextArea = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-d327fb49\"]]);\nexport {\n NcTextArea as N\n};\n//# sourceMappingURL=NcTextArea.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcActionCaption.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcActionCaption.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcActionCaption.css';\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions.mjs\";\nimport { openBlock, createElementBlock, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _sfc_main = {\n name: \"NcActionCaption\",\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * The caption's text\n */\n name: {\n type: String,\n required: true\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"app-navigation-caption\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, toDisplayString($props.name), 9, _hoisted_1);\n}\nconst NcActionCaption = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-1009e96c\"]]);\nexport {\n NcActionCaption as N\n};\n//# sourceMappingURL=NcActionCaption.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcActionSeparator.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcActionSeparator.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcActionSeparator.css';\nimport { openBlock, createElementBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _sfc_main = {\n name: \"NcActionSeparator\"\n};\nconst _hoisted_1 = {\n class: \"action action-separator action--disabled\",\n role: \"separator\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", _hoisted_1);\n}\nconst NcActionSeparator = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-3e2324b7\"]]);\nexport {\n NcActionSeparator as N\n};\n//# sourceMappingURL=NcActionSeparator.mjs.map\n","const rnds8 = new Uint8Array(16);\nexport default function rng() {\n return crypto.getRandomValues(rnds8);\n}\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","import rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (!buf && !options && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n return _v4(options, buf, offset);\n}\nfunction _v4(options, buf, offset) {\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","import './assets/dialog.css';\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { DialogBuilder, showError } from \"@nextcloud/dialogs\";\nimport { spawnDialog } from \"@nextcloud/vue/functions/dialog\";\nimport { defineComponent, ref, openBlock, createElementBlock, createVNode, unref, withCtx, Fragment, createTextVNode, toDisplayString, createBlock, createCommentVNode, useModel, computed, createElementVNode, normalizeClass, renderSlot, mergeModels, nextTick, watch, Transition, renderList, useTemplateRef, onBeforeUnmount, reactive, shallowRef, withModifiers, onMounted } from \"vue\";\nimport { FileType } from \"@nextcloud/files\";\nimport NcButton from \"@nextcloud/vue/components/NcButton\";\nimport NcDialog from \"@nextcloud/vue/components/NcDialog\";\nimport NcEmptyContent from \"@nextcloud/vue/components/NcEmptyContent\";\nimport NcIconSvgWrapper from \"@nextcloud/vue/components/NcIconSvgWrapper\";\nimport NcLoadingIcon from \"@nextcloud/vue/components/NcLoadingIcon\";\nimport NcInputField from \"@nextcloud/vue/components/NcInputField\";\nimport QrcodeVue from \"qrcode.vue\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport NcNoteCard from \"@nextcloud/vue/components/NcNoteCard\";\nimport NcRadioGroup from \"@nextcloud/vue/components/NcRadioGroup\";\nimport NcRadioGroupButton from \"@nextcloud/vue/components/NcRadioGroupButton\";\nimport NcSelectUsers from \"@nextcloud/vue/components/NcSelectUsers\";\nimport NcCheckboxRadioSwitch from \"@nextcloud/vue/components/NcCheckboxRadioSwitch\";\nimport NcFormBox from \"@nextcloud/vue/components/NcFormBox\";\nimport NcFormBoxSwitch from \"@nextcloud/vue/components/NcFormBoxSwitch\";\nimport NcSelect from \"@nextcloud/vue/components/NcSelect\";\nimport debounce from \"debounce\";\nimport NcDateTimePickerNative from \"@nextcloud/vue/components/NcDateTimePickerNative\";\nimport NcPasswordField from \"@nextcloud/vue/components/NcPasswordField\";\nimport NcTextArea from \"@nextcloud/vue/components/NcTextArea\";\nimport NcTextField from \"@nextcloud/vue/components/NcTextField\";\nimport NcActionButton from \"@nextcloud/vue/components/NcActionButton\";\nimport NcActionCaption from \"@nextcloud/vue/components/NcActionCaption\";\nimport NcActions from \"@nextcloud/vue/components/NcActions\";\nimport NcActionSeparator from \"@nextcloud/vue/components/NcActionSeparator\";\nimport NcAvatar from \"@nextcloud/vue/components/NcAvatar\";\nimport { generateUrl, generateOcsUrl } from \"@nextcloud/router\";\nimport { v4 } from \"uuid\";\nimport axios from \"@nextcloud/axios\";\nconst IconArrowLeft = '';\nconst IconCogOutline = '';\nconst IconCheckCircle = '';\nconst IconCheck = '';\nconst IconContentCopy = '';\nconst IconQrcode = '';\nasync function copyToClipboard(text) {\n if (window.isSecureContext && navigator.clipboard?.writeText) {\n await navigator.clipboard.writeText(text);\n return;\n }\n const textarea = document.createElement(\"textarea\");\n textarea.value = text;\n textarea.setAttribute(\"readonly\", \"\");\n textarea.style.position = \"fixed\";\n textarea.style.top = \"0\";\n textarea.style.opacity = \"0\";\n document.body.appendChild(textarea);\n textarea.select();\n textarea.setSelectionRange(0, text.length);\n try {\n if (!document.execCommand(\"copy\")) {\n throw new Error(\"Copy command was rejected\");\n }\n } finally {\n document.body.removeChild(textarea);\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nconst gtBuilder = getGettextBuilder().detectLocale();\n[].map((data) => gtBuilder.addTranslation(data.locale, data.json));\nconst gt = gtBuilder.build();\nconst n = gt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\nconst logger = getLoggerBuilder().setApp(\"sharing\").detectUser().build();\nconst _hoisted_1$7 = { class: \"share-confirmation\" };\nconst _sfc_main$7 = /* @__PURE__ */ defineComponent({\n __name: \"ShareConfirmation\",\n props: {\n link: {},\n isPublic: { type: Boolean }\n },\n emits: [\"close\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const copied = ref(false);\n const showQrCode = ref(false);\n async function copyLink() {\n if (!props.link) {\n return;\n }\n try {\n await copyToClipboard(props.link);\n copied.value = true;\n setTimeout(() => {\n copied.value = false;\n }, 2e3);\n } catch (e) {\n logger.error(\"Failed to copy link to clipboard\", { error: e });\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$7, [\n createVNode(unref(NcEmptyContent), {\n class: \"share-confirmation__header\",\n name: __props.isPublic ? unref(t)(\"Your share link is ready\") : unref(t)(\"Your share is ready\")\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n class: \"share-confirmation__icon\",\n svg: unref(IconCheckCircle)\n }, null, 8, [\"svg\"])\n ]),\n _: 1\n }, 8, [\"name\"]),\n __props.link ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n createVNode(unref(NcInputField), {\n class: \"share-confirmation__link-input\",\n label: unref(t)(\"Share link\"),\n modelValue: __props.link,\n readonly: \"\",\n showTrailingButton: \"\",\n trailingButtonLabel: copied.value ? unref(t)(\"Copied!\") : unref(t)(\"Copy to clipboard\"),\n onTrailingButtonClick: copyLink\n }, {\n \"trailing-button-icon\": withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n svg: copied.value ? unref(IconCheck) : unref(IconContentCopy),\n size: 20\n }, null, 8, [\"svg\"])\n ]),\n _: 1\n }, 8, [\"label\", \"modelValue\", \"trailingButtonLabel\"]),\n __props.isPublic ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n createVNode(unref(NcButton), {\n class: \"share-confirmation__qr-toggle\",\n variant: \"tertiary\",\n onClick: _cache[0] || (_cache[0] = ($event) => showQrCode.value = !showQrCode.value)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n svg: unref(IconQrcode),\n size: 20\n }, null, 8, [\"svg\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(showQrCode.value ? unref(t)(\"Hide QR code\") : unref(t)(\"Show QR code\")), 1)\n ]),\n _: 1\n }),\n showQrCode.value ? (openBlock(), createBlock(QrcodeVue, {\n key: 0,\n class: \"share-confirmation__qr\",\n value: __props.link,\n size: 200,\n margin: 2,\n level: \"M\",\n background: \"#ffffff\",\n foreground: \"#000000\"\n }, null, 8, [\"value\"])) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true),\n createVNode(unref(NcButton), {\n class: \"share-confirmation__done\",\n variant: \"primary\",\n onClick: _cache[1] || (_cache[1] = ($event) => emit(\"close\"))\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Done\")), 1)\n ]),\n _: 1\n })\n ]);\n };\n }\n});\nconst _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst ShareConfirmation = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"__scopeId\", \"data-v-618e5df5\"]]);\nconst AccountPlusOutlineIconSvg = '';\nconst IconDelete = '';\nconst IconSend = '';\nconst WorldMapOutlineSvg = '';\nconst _hoisted_1$6 = [\"aria-label\"];\nconst _sfc_main$6 = /* @__PURE__ */ defineComponent({\n __name: \"InlineToggleField\",\n props: /* @__PURE__ */ mergeModels({\n label: {}\n }, {\n \"modelValue\": { type: Boolean, ...{ default: false } },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const inputId = `property-input-${Math.random().toString(36).slice(2, 9)}`;\n const isEnabled = computed(() => modelValue.value === true);\n const slotContainer = ref(null);\n async function onToggleEnabled(enabled) {\n modelValue.value = enabled;\n if (enabled) {\n await nextTick();\n const focusable = slotContainer.value?.querySelector('input:not([disabled]), textarea:not([disabled]), select:not([disabled]), [tabindex]:not([disabled]):not([tabindex=\"-1\"])');\n focusable?.focus();\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"inline-toggle-field\",\n role: \"group\",\n \"aria-label\": __props.label\n }, [\n createElementVNode(\"div\", {\n ref_key: \"slotContainer\",\n ref: slotContainer,\n class: normalizeClass([\"inline-toggle-field__slot\", { \"inline-toggle-field__slot--inactive\": !isEnabled.value }]),\n onClick: _cache[0] || (_cache[0] = ($event) => !isEnabled.value && onToggleEnabled(true))\n }, [\n renderSlot(_ctx.$slots, \"default\", { inputId }, void 0, true)\n ], 2),\n createVNode(unref(NcCheckboxRadioSwitch), {\n modelValue: isEnabled.value,\n \"aria-controls\": inputId,\n \"aria-label\": __props.label,\n class: \"inline-toggle-field__toggle\",\n type: \"switch\",\n \"onUpdate:modelValue\": onToggleEnabled\n }, null, 8, [\"modelValue\", \"aria-label\"])\n ], 8, _hoisted_1$6);\n };\n }\n});\nconst InlineToggleField = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"__scopeId\", \"data-v-615c2917\"]]);\nconst _hoisted_1$5 = { class: \"permission-editor\" };\nconst _hoisted_2$4 = { class: \"permission-editor__permissions-inner\" };\nconst _sfc_main$5 = /* @__PURE__ */ defineComponent({\n __name: \"PermissionEditor\",\n props: {\n presetOptions: {},\n selectedPreset: {},\n showPermissions: { type: Boolean },\n permissions: {},\n permissionErrors: { default: () => ({}) },\n presetError: { default: null },\n notice: { default: null },\n presetLabel: { default: void 0 },\n hideLabel: { type: Boolean, default: false }\n },\n emits: [\"presetChange\", \"permissionToggle\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const permissionsEl = ref(null);\n watch(() => props.showPermissions, async (shown) => {\n if (!shown) {\n return;\n }\n await nextTick();\n permissionsEl.value?.scrollIntoView({ behavior: \"smooth\", block: \"nearest\" });\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$5, [\n __props.notice ? (openBlock(), createBlock(unref(NcNoteCard), {\n key: 0,\n type: \"info\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(__props.notice), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n createVNode(unref(NcSelect), {\n modelValue: __props.selectedPreset,\n clearable: false,\n searchable: false,\n inputLabel: __props.presetLabel,\n hideLabel: __props.hideLabel,\n options: __props.presetOptions,\n class: \"permission-editor__preset\",\n placeholder: unref(t)(\"Custom permissions\"),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = (option) => emit(\"presetChange\", option))\n }, null, 8, [\"modelValue\", \"inputLabel\", \"hideLabel\", \"options\", \"placeholder\"]),\n createVNode(Transition, { name: \"expand\" }, {\n default: withCtx(() => [\n __props.showPermissions ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n ref_key: \"permissionsEl\",\n ref: permissionsEl,\n class: \"permission-editor__permissions\"\n }, [\n createElementVNode(\"div\", _hoisted_2$4, [\n createVNode(unref(NcFormBox), null, {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.permissions, (permission) => {\n return openBlock(), createBlock(unref(NcFormBoxSwitch), {\n key: permission.class,\n label: permission.display_name,\n description: permission.hint ?? void 0,\n disabled: permission.available === false,\n error: __props.permissionErrors[permission.class],\n modelValue: permission.enabled,\n \"onUpdate:modelValue\": (enabled) => emit(\"permissionToggle\", permission, enabled)\n }, null, 8, [\"label\", \"description\", \"disabled\", \"error\", \"modelValue\", \"onUpdate:modelValue\"]);\n }), 128))\n ]),\n _: 1\n })\n ])\n ], 512)) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n __props.presetError ? (openBlock(), createBlock(unref(NcNoteCard), {\n key: 1,\n type: \"error\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(__props.presetError), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\nconst PermissionEditor = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"__scopeId\", \"data-v-1bf5e74e\"]]);\nconst IconInformationOutline = '';\nconst IconAccountGroup = '';\nconst IconAccountMultiple = '';\nconst IconEmail = '';\nconst SOURCE_TYPE_NODE = \"OCA\\\\Files\\\\Sharing\\\\Source\\\\NodeShareSourceType\";\nconst PROPERTY_URL = \"OC\\\\Core\\\\Sharing\\\\Property\\\\UrlSharePropertyType\";\nconst PROPERTY_NOTE = \"OC\\\\Core\\\\Sharing\\\\Property\\\\NoteSharePropertyType\";\nconst PROPERTY_EXPIRATION = \"OC\\\\Core\\\\Sharing\\\\Property\\\\ExpirationDateSharePropertyType\";\nconst PROPERTY_PASSWORD = \"OC\\\\Core\\\\Sharing\\\\Property\\\\PasswordSharePropertyType\";\nconst FIRST_PAGE_PROPERTIES = [\n PROPERTY_NOTE\n];\nconst HIDDEN_PROPERTIES = [\n PROPERTY_URL\n];\nconst RECIPIENT_TYPE_USER = \"OC\\\\Core\\\\Sharing\\\\Recipient\\\\UserShareRecipientType\";\nconst RECIPIENT_TYPE_EMAIL = \"OC\\\\Core\\\\Sharing\\\\Recipient\\\\EmailShareRecipientType\";\nconst RECIPIENT_TYPE_GROUP = \"OC\\\\Core\\\\Sharing\\\\Recipient\\\\GroupShareRecipientType\";\nconst RECIPIENT_TYPE_TEAM = \"OC\\\\Core\\\\Sharing\\\\Recipient\\\\TeamShareRecipientType\";\nconst RECIPIENT_TYPE_TOKEN = \"OC\\\\Core\\\\Sharing\\\\Recipient\\\\TokenShareRecipientType\";\nfunction isSvgIcon(icon) {\n return \"svg\" in icon;\n}\nconst RECIPIENT_TYPE_ICONS = {\n [RECIPIENT_TYPE_EMAIL]: IconEmail,\n [RECIPIENT_TYPE_GROUP]: IconAccountGroup,\n [RECIPIENT_TYPE_TEAM]: IconAccountMultiple\n};\nfunction getOcsErrorMessage(error) {\n const ocs = error?.response?.data?.ocs;\n if (typeof ocs?.data === \"string\" && ocs.data !== \"\") {\n return ocs.data;\n }\n if (ocs?.meta?.message) {\n return ocs.meta.message;\n }\n return error instanceof Error ? error.message : t(\"An unexpected error occurred\");\n}\nfunction isDarkMode() {\n return window?.matchMedia?.(\"(prefers-color-scheme: dark)\")?.matches === true || document.querySelector(\"[data-themes*=dark]\") !== null;\n}\nfunction iconToInlineSvg(icon) {\n if (isSvgIcon(icon)) {\n return icon.svg;\n }\n const iconUrl = isDarkMode() ? icon.dark : icon.light;\n return `\n\t\t\n\t`;\n}\nfunction recipientSubname(recipient) {\n if (recipient.instance) {\n return t(\"on {instance}\", { instance: recipient.instance });\n }\n if (recipient.class === RECIPIENT_TYPE_EMAIL) {\n return recipient.value;\n }\n return void 0;\n}\nfunction recipientToNcSelectUsersModel(recipient) {\n const isUser = recipient.class === RECIPIENT_TYPE_USER;\n const iconSvg = isUser ? void 0 : RECIPIENT_TYPE_ICONS[recipient.class] ?? (recipient.icon ? iconToInlineSvg(recipient.icon) : void 0);\n return {\n id: recipient.value,\n displayName: recipient.display_name,\n user: recipient.value,\n subname: recipientSubname(recipient),\n iconSvg,\n isNoUser: !isUser\n };\n}\nconst _hoisted_1$4 = [\"id\"];\nconst _hoisted_2$3 = {\n key: 5,\n class: \"property-field__hint\"\n};\nconst _sfc_main$4 = /* @__PURE__ */ defineComponent({\n __name: \"PropertyField\",\n props: /* @__PURE__ */ mergeModels({\n property: {},\n share: {},\n disabled: { type: Boolean },\n inputId: {}\n }, {\n \"modelValue\": { required: true, default: null },\n \"modelModifiers\": {}\n }),\n emits: [\"update:modelValue\"],\n setup(__props) {\n const modelValue = useModel(__props, \"modelValue\");\n const props = __props;\n const loading = ref(false);\n const root = useTemplateRef(\"root\");\n function getControl() {\n return root.value?.querySelector(\"input, textarea\") ?? null;\n }\n function parseISODate(value) {\n if (!value) {\n return void 0;\n }\n try {\n return new Date(value);\n } catch {\n return void 0;\n }\n }\n const debouncedPersist = debounce(persistValue, 500);\n onBeforeUnmount(() => debouncedPersist.flush());\n function updateValue(value) {\n if (value === null || value === void 0) {\n modelValue.value = null;\n } else if (value instanceof Date) {\n modelValue.value = value.toISOString().replace(/\\.\\d{3}Z$/, \"+00:00\");\n } else {\n modelValue.value = value.toString();\n }\n getControl()?.setCustomValidity(\"\");\n debouncedPersist();\n }\n function reportValidity(control) {\n control.focus();\n control.reportValidity();\n }\n async function persistValue() {\n const control = getControl();\n if (control && !control.checkValidity()) {\n reportValidity(control);\n return;\n }\n const value = modelValue.value === \"\" ? null : modelValue.value;\n loading.value = true;\n let error = null;\n try {\n await props.share.setProperty(props.property.class, value);\n } catch (e) {\n error = e;\n } finally {\n loading.value = false;\n }\n if (!error) {\n logger.debug(`Property ${props.property.class} updated successfully`);\n return;\n }\n logger.error(`Failed to update property ${props.property.class}:`, { error });\n await nextTick();\n const current = getControl();\n if (current) {\n current.setCustomValidity(getOcsErrorMessage(error));\n reportValidity(current);\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n id: props.inputId || void 0,\n ref_key: \"root\",\n ref: root,\n class: \"property-field\"\n }, [\n __props.property.type === \"boolean\" ? (openBlock(), createBlock(unref(NcFormBox), { key: 0 }, {\n default: withCtx(() => [\n createVNode(unref(NcFormBoxSwitch), {\n label: __props.property.display_name,\n description: __props.property.hint ?? void 0,\n disabled: __props.disabled,\n modelValue: modelValue.value === \"true\",\n class: \"property-field__input-boolean\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = (value) => updateValue(value))\n }, null, 8, [\"label\", \"description\", \"disabled\", \"modelValue\"])\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n __props.property.type === \"enum\" ? (openBlock(), createBlock(unref(NcSelect), {\n key: 1,\n clearable: !__props.property.required,\n disabled: __props.disabled,\n inputLabel: __props.property.display_name,\n loading: loading.value,\n modelValue: modelValue.value,\n multiple: false,\n options: __props.property.valid_values || [],\n placeholder: __props.property.hint || __props.property.display_name,\n required: __props.property.required,\n class: \"property-field__input-enum\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = (value) => updateValue(String(value)))\n }, null, 8, [\"clearable\", \"disabled\", \"inputLabel\", \"loading\", \"modelValue\", \"options\", \"placeholder\", \"required\"])) : createCommentVNode(\"\", true),\n __props.property.type === \"string\" ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [\n (__props.property.max_length || 0) <= 255 ? (openBlock(), createBlock(unref(NcTextField), {\n key: 0,\n disabled: __props.disabled,\n label: __props.property.display_name,\n helperText: __props.property.hint ?? void 0,\n loading: loading.value,\n maxLength: __props.property.max_length,\n minLength: __props.property.min_length,\n modelValue: modelValue.value || \"\",\n placeholder: __props.property.hint || __props.property.display_name,\n required: __props.property.required,\n class: \"property-field__input-string\",\n type: \"text\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = (value) => updateValue(String(value)))\n }, null, 8, [\"disabled\", \"label\", \"helperText\", \"loading\", \"maxLength\", \"minLength\", \"modelValue\", \"placeholder\", \"required\"])) : (openBlock(), createBlock(unref(NcTextArea), {\n key: 1,\n disabled: __props.disabled,\n label: __props.property.display_name,\n helperText: __props.property.hint ?? void 0,\n loading: loading.value,\n maxLength: __props.property.max_length,\n minLength: __props.property.min_length,\n modelValue: modelValue.value || \"\",\n placeholder: __props.property.hint || __props.property.display_name,\n required: __props.property.required,\n class: \"property-field__input-string\",\n resize: \"vertical\",\n type: \"text\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = (value) => updateValue(value))\n }, null, 8, [\"disabled\", \"label\", \"helperText\", \"loading\", \"maxLength\", \"minLength\", \"modelValue\", \"placeholder\", \"required\"]))\n ], 64)) : createCommentVNode(\"\", true),\n __props.property.type === \"date\" ? (openBlock(), createBlock(unref(NcDateTimePickerNative), {\n key: 3,\n disabled: __props.disabled || loading.value,\n label: __props.property.display_name,\n helperText: __props.property.hint ?? void 0,\n min: parseISODate(__props.property.min_date),\n max: parseISODate(__props.property.max_date),\n modelValue: parseISODate(modelValue.value),\n required: __props.property.required,\n class: \"property-field__input-date\",\n type: \"datetime-local\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = (value) => value && updateValue(value))\n }, null, 8, [\"disabled\", \"label\", \"helperText\", \"min\", \"max\", \"modelValue\", \"required\"])) : createCommentVNode(\"\", true),\n __props.property.type === \"password\" ? (openBlock(), createBlock(unref(NcPasswordField), {\n key: 4,\n asText: modelValue.value === \"\",\n disabled: __props.disabled,\n label: __props.property.display_name,\n helperText: __props.property.hint ?? void 0,\n loading: loading.value,\n modelValue: modelValue.value || \"\",\n placeholder: __props.property.hint || __props.property.display_name,\n required: __props.property.required,\n class: \"property-field__input-password\",\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = (value) => updateValue(value))\n }, null, 8, [\"asText\", \"disabled\", \"label\", \"helperText\", \"loading\", \"modelValue\", \"placeholder\", \"required\"])) : createCommentVNode(\"\", true),\n __props.property.hint && __props.property.type === \"enum\" ? (openBlock(), createElementBlock(\"p\", _hoisted_2$3, [\n createVNode(unref(NcIconSvgWrapper), {\n svg: unref(IconInformationOutline),\n size: 16\n }, null, 8, [\"svg\"]),\n createElementVNode(\"span\", null, toDisplayString(__props.property.hint), 1)\n ])) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1$4);\n };\n }\n});\nconst PropertyField = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"__scopeId\", \"data-v-778b01f7\"]]);\nconst CUSTOM_VALUE$1 = \"custom\";\nfunction useRecipientPermissions(share, getRecipient) {\n const capabilityPresets = getCapabilities().sharing?.permission_presets ?? [];\n const customOption = { value: CUSTOM_VALUE$1, label: t(\"Custom permissions\") };\n const permissionErrors = reactive({});\n const presetError = ref(null);\n const recipient = computed(getRecipient);\n const shareMax = computed(() => new Set(share.permissions.filter((permission) => permission.enabled).map((permission) => permission.class)));\n const presetOptions = computed(() => {\n const max = shareMax.value;\n const available = capabilityPresets.filter((preset) => {\n const members = share.permissions.filter((permission) => permission.presets.includes(preset.class));\n return members.length > 0 && members.every((permission) => max.has(permission.class));\n });\n return [\n ...available.map((preset) => ({\n value: preset.class,\n // Flag the share's own preset so it is obvious which recipients\n // still follow the default and which were changed by hand.\n label: preset.class === share.permissionPreset ? t(\"{preset} (default)\", { preset: preset.display_name }) : preset.display_name\n })),\n customOption\n ];\n });\n const permissions = computed(() => {\n const overrides = new Map((recipient.value.permissions ?? []).map((permission) => [permission.class, permission]));\n return share.permissions.map((permission) => ({\n ...permission,\n enabled: overrides.get(permission.class)?.enabled ?? permission.enabled,\n // The share must grant a permission before a recipient can have it.\n available: permission.enabled\n }));\n });\n const selectedPreset = computed(() => {\n const enabled = new Set(permissions.value.filter((permission) => permission.enabled).map((permission) => permission.class));\n for (const option of presetOptions.value) {\n if (option.value === CUSTOM_VALUE$1) {\n continue;\n }\n const members = permissions.value.filter((permission) => permission.presets.includes(option.value));\n if (members.length > 0 && members.length === enabled.size && members.every((permission) => enabled.has(permission.class))) {\n return option;\n }\n }\n return customOption;\n });\n const showPermissions = computed(() => selectedPreset.value.value === CUSTOM_VALUE$1);\n const hasCap = computed(() => permissions.value.some((permission) => !permission.available));\n const maxLabel = computed(() => {\n const preset = capabilityPresets.find((p) => p.class === share.permissionPreset);\n return preset?.display_name ?? t(\"the share's permissions\");\n });\n const notice = computed(() => {\n if (!hasCap.value) {\n return null;\n }\n const initiator = recipient.value.initiator;\n const isReshare = initiator !== null && initiator.user_id !== share.data.owner.user_id;\n if (isReshare) {\n return t('{owner} shared this with you as \"{permission}\". You can only grant the same or fewer permissions.', {\n owner: share.data.owner.display_name,\n permission: maxLabel.value\n });\n }\n return t('This share is limited to \"{permission}\". You can only grant the same or fewer permissions.', {\n permission: maxLabel.value\n });\n });\n async function onPresetChange(option) {\n if (!option || option.value === CUSTOM_VALUE$1) {\n return;\n }\n presetError.value = null;\n const r = recipient.value;\n const target = new Set(permissions.value.filter((permission) => permission.presets.includes(option.value)).map((permission) => permission.class));\n const snapshot = permissions.value.map(({ class: permissionClass, enabled, available }) => ({ permissionClass, enabled, available }));\n for (const { permissionClass, enabled, available } of snapshot) {\n const shouldEnable = target.has(permissionClass);\n if (!available || enabled === shouldEnable) {\n continue;\n }\n try {\n await share.setRecipientPermission(r.class, r.value, permissionClass, shouldEnable, r.instance ?? void 0);\n } catch (e) {\n logger.error(\"Failed to apply recipient permission preset\", { error: e, recipient: r.value, permission: permissionClass });\n presetError.value = getOcsErrorMessage(e);\n return;\n }\n }\n }\n async function onPermissionToggle(permission, enabled) {\n delete permissionErrors[permission.class];\n const r = recipient.value;\n try {\n await share.setRecipientPermission(r.class, r.value, permission.class, enabled, r.instance ?? void 0);\n } catch (e) {\n logger.error(\"Failed to toggle recipient permission\", { error: e, recipient: r.value, permission: permission.class });\n permissionErrors[permission.class] = getOcsErrorMessage(e);\n }\n }\n return {\n presetOptions,\n selectedPreset,\n showPermissions,\n permissions,\n hasCap,\n notice,\n permissionErrors,\n presetError,\n onPresetChange,\n onPermissionToggle\n };\n}\nconst _hoisted_1$3 = { class: \"recipient-row\" };\nconst _hoisted_2$2 = { class: \"recipient-row__desc\" };\nconst _hoisted_3$1 = { class: \"recipient-row__name\" };\nconst _hoisted_4$1 = { class: \"recipient-row__subtitle\" };\nconst _sfc_main$3 = /* @__PURE__ */ defineComponent({\n __name: \"RecipientRow\",\n props: {\n share: {},\n recipient: {}\n },\n setup(__props) {\n const props = __props;\n const modalOpen = ref(false);\n const isNoUser = computed(() => props.recipient.class !== RECIPIENT_TYPE_USER);\n const {\n presetOptions,\n selectedPreset,\n permissions,\n notice,\n permissionErrors,\n presetError,\n onPresetChange,\n onPermissionToggle\n } = useRecipientPermissions(props.share, () => props.recipient);\n const currentPresetValue = computed(() => selectedPreset.value.value);\n const isCustom = computed(() => currentPresetValue.value === CUSTOM_VALUE$1);\n const presets = computed(() => presetOptions.value.filter((option) => option.value !== CUSTOM_VALUE$1));\n const currentPresetLabel = computed(() => isCustom.value ? t(\"Custom permissions\") : selectedPreset.value.label);\n async function remove() {\n try {\n await props.share.removeRecipient(props.recipient.class, props.recipient.value, props.recipient.instance ?? void 0);\n } catch (e) {\n logger.error(\"Failed to remove recipient\", { error: e, recipient: props.recipient.value });\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"li\", _hoisted_1$3, [\n createVNode(unref(NcAvatar), {\n class: \"recipient-row__avatar\",\n size: 32,\n isNoUser: isNoUser.value,\n user: isNoUser.value ? void 0 : __props.recipient.value,\n displayName: __props.recipient.display_name,\n disableMenu: \"\",\n disableTooltip: \"\"\n }, null, 8, [\"isNoUser\", \"user\", \"displayName\"]),\n createElementVNode(\"div\", _hoisted_2$2, [\n createElementVNode(\"span\", _hoisted_3$1, toDisplayString(__props.recipient.display_name), 1),\n createElementVNode(\"span\", _hoisted_4$1, toDisplayString(currentPresetLabel.value), 1)\n ]),\n createVNode(unref(NcActions), {\n class: \"recipient-row__actions\",\n \"aria-label\": unref(t)(\"Recipient actions\"),\n forceMenu: true\n }, {\n default: withCtx(() => [\n createVNode(unref(NcActionCaption), {\n name: unref(t)(\"Permissions\")\n }, null, 8, [\"name\"]),\n (openBlock(true), createElementBlock(Fragment, null, renderList(presets.value, (preset) => {\n return openBlock(), createBlock(unref(NcActionButton), {\n key: preset.value,\n onClick: ($event) => unref(onPresetChange)(preset)\n }, {\n icon: withCtx(() => [\n preset.value === currentPresetValue.value ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n svg: unref(IconCheck),\n size: 20\n }, null, 8, [\"svg\"])) : createCommentVNode(\"\", true)\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(preset.label), 1)\n ]),\n _: 2\n }, 1032, [\"onClick\"]);\n }), 128)),\n createVNode(unref(NcActionButton), {\n closeAfterClick: \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => modalOpen.value = true)\n }, {\n icon: withCtx(() => [\n isCustom.value ? (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 0,\n svg: unref(IconCheck),\n size: 20\n }, null, 8, [\"svg\"])) : createCommentVNode(\"\", true)\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Custom permissions\")), 1)\n ]),\n _: 1\n }),\n createVNode(unref(NcActionSeparator)),\n createVNode(unref(NcActionButton), { onClick: remove }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n svg: unref(IconDelete),\n size: 20\n }, null, 8, [\"svg\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Remove recipient\")), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"aria-label\"]),\n modalOpen.value ? (openBlock(), createBlock(unref(NcDialog), {\n key: 0,\n name: unref(t)(\"Permissions for {name}\", { name: __props.recipient.display_name }),\n size: \"small\",\n \"onUpdate:open\": _cache[1] || (_cache[1] = ($event) => modalOpen.value = $event)\n }, {\n default: withCtx(() => [\n createVNode(PermissionEditor, {\n class: \"recipient-row__editor\",\n presetOptions: unref(presetOptions),\n selectedPreset: unref(selectedPreset),\n showPermissions: true,\n permissions: unref(permissions),\n permissionErrors: unref(permissionErrors),\n presetError: unref(presetError),\n notice: unref(notice),\n presetLabel: unref(t)(\"Permissions\"),\n onPresetChange: unref(onPresetChange),\n onPermissionToggle: unref(onPermissionToggle)\n }, null, 8, [\"presetOptions\", \"selectedPreset\", \"permissions\", \"permissionErrors\", \"presetError\", \"notice\", \"presetLabel\", \"onPresetChange\", \"onPermissionToggle\"])\n ]),\n _: 1\n }, 8, [\"name\"])) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\nconst RecipientRow = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"__scopeId\", \"data-v-c8aa1ccb\"]]);\nconst _hoisted_1$2 = {\n key: 0,\n class: \"recipient-list\"\n};\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"RecipientList\",\n props: {\n share: {}\n },\n setup(__props) {\n const props = __props;\n const recipients = computed(() => props.share.recipients.filter((recipient) => recipient.class !== RECIPIENT_TYPE_TOKEN));\n return (_ctx, _cache) => {\n return recipients.value.length > 0 ? (openBlock(), createElementBlock(\"ul\", _hoisted_1$2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(recipients.value, (recipient) => {\n return openBlock(), createBlock(RecipientRow, {\n key: recipient.class + recipient.value + (recipient.instance ?? \"\"),\n share: __props.share,\n recipient\n }, null, 8, [\"share\", \"recipient\"]);\n }), 128))\n ])) : createCommentVNode(\"\", true);\n };\n }\n});\nconst RecipientList = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"__scopeId\", \"data-v-05f6af35\"]]);\nfunction generateShareToken() {\n return v4();\n}\nfunction resolveShareLink(share, isPublic) {\n if (isPublic) {\n return share.recipients.find((r) => r.class === RECIPIENT_TYPE_TOKEN)?.secret.url ?? null;\n }\n const fileid = share.sources.find((s) => s.class === SOURCE_TYPE_NODE)?.value;\n return fileid ? window.location.origin + generateUrl(\"/f/{fileid}\", { fileid }) : null;\n}\nfunction useLinkShare(share, isLinkShare) {\n const tokenRecipient = computed(() => share.recipients.find((r) => r.class === RECIPIENT_TYPE_TOKEN) ?? null);\n const linkRecipientLoading = ref(false);\n const linkRecipientError = ref(null);\n const copied = ref(false);\n const resolvedLink = computed(() => resolveShareLink(share, isLinkShare.value));\n const linkActionsDisabled = computed(() => linkRecipientLoading.value || isLinkShare.value && !tokenRecipient.value);\n async function syncTokenRecipient(allowRemoval = true) {\n const needsToken = isLinkShare.value;\n if (needsToken === !!tokenRecipient.value) {\n return;\n }\n if (!needsToken && !allowRemoval) {\n return;\n }\n linkRecipientError.value = null;\n linkRecipientLoading.value = true;\n try {\n if (needsToken) {\n await share.addRecipient(RECIPIENT_TYPE_TOKEN, generateShareToken());\n } else {\n const { class: recipientClass, value, instance } = tokenRecipient.value;\n await share.removeRecipient(recipientClass, value, instance ?? void 0);\n }\n } catch (e) {\n logger.error(\"Failed to sync link share recipient\", { error: e });\n linkRecipientError.value = getOcsErrorMessage(e);\n } finally {\n linkRecipientLoading.value = false;\n }\n }\n watch(isLinkShare, (_value, previous) => syncTokenRecipient(previous !== void 0), { immediate: true });\n async function copyLink() {\n try {\n if (isLinkShare.value && share.state === \"draft\") {\n await share.activate();\n }\n const url = resolvedLink.value;\n if (!url) {\n logger.warn(\"No link available to copy\", { isLinkShare: isLinkShare.value });\n return;\n }\n await copyToClipboard(url);\n copied.value = true;\n setTimeout(() => {\n copied.value = false;\n }, 2e3);\n } catch (e) {\n logger.error(\"Failed to copy link to clipboard\", { error: e });\n }\n }\n return {\n tokenRecipient,\n linkRecipientLoading,\n linkRecipientError,\n linkActionsDisabled,\n resolvedLink,\n copied,\n retryTokenRecipient: () => syncTokenRecipient(),\n copyLink\n };\n}\nconst CUSTOM_VALUE = \"custom\";\nfunction usePermissionPresets(share) {\n const capabilityPresets = getCapabilities().sharing?.permission_presets ?? [];\n const customOption = { value: CUSTOM_VALUE, label: t(\"Custom permissions\") };\n const permissionOrder = /* @__PURE__ */ new Map();\n const permissions = computed(() => {\n for (const permission of share.permissions) {\n if (!permissionOrder.has(permission.class)) {\n permissionOrder.set(permission.class, permissionOrder.size);\n }\n }\n return [...share.permissions].sort((a, b) => (permissionOrder.get(a.class) ?? 0) - (permissionOrder.get(b.class) ?? 0));\n });\n const availablePresets = computed(() => {\n const seen = /* @__PURE__ */ new Set();\n for (const permission of permissions.value) {\n for (const presetClass of permission.presets) {\n seen.add(presetClass);\n }\n }\n return capabilityPresets.filter((preset) => seen.has(preset.class));\n });\n const presetOptions = computed(() => [\n ...availablePresets.value.map((preset) => ({ value: preset.class, label: preset.display_name })),\n customOption\n ]);\n const selectedValue = ref(share.permissionPreset ?? CUSTOM_VALUE);\n const selectedPresetOption = computed(() => presetOptions.value.find((o) => o.value === selectedValue.value) ?? null);\n const showPermissions = computed(() => selectedValue.value === CUSTOM_VALUE);\n const permissionErrors = reactive({});\n const presetError = ref(null);\n async function onPresetChange(option) {\n if (!option) {\n return;\n }\n selectedValue.value = option.value;\n if (option.value === CUSTOM_VALUE) {\n return;\n }\n presetError.value = null;\n try {\n await share.selectPreset(option.value);\n } catch (e) {\n logger.error(\"Failed to select permission preset\", { error: e, preset: option.value });\n presetError.value = getOcsErrorMessage(e);\n }\n }\n async function onPermissionToggle(permission, enabled) {\n delete permissionErrors[permission.class];\n try {\n await share.setPermission(permission.class, enabled);\n } catch (e) {\n logger.error(\"Failed to toggle permission\", { error: e, permission: permission.class });\n permissionErrors[permission.class] = getOcsErrorMessage(e);\n }\n }\n return {\n permissions,\n presetOptions,\n selectedPresetOption,\n showPermissions,\n permissionErrors,\n presetError,\n onPresetChange,\n onPermissionToggle\n };\n}\nfunction sharingUrl(path) {\n return generateOcsUrl(\"/apps/sharing/api/v1\" + path);\n}\nfunction unwrapOcs(response) {\n return response.data.ocs.data;\n}\nasync function createShare$1() {\n const response = await axios.post(sharingUrl(\"/share\"));\n return unwrapOcs(response);\n}\nasync function getShare$1(shareId, secret, args = {}) {\n const response = await axios.post(sharingUrl(`/share/${shareId}`), { secret: secret ?? null, arguments: args });\n return unwrapOcs(response);\n}\nasync function addShareSource(shareId, sourceClass, sourceValue) {\n const response = await axios.post(sharingUrl(`/share/${shareId}/source`), {\n class: sourceClass,\n value: sourceValue\n });\n return unwrapOcs(response);\n}\nasync function removeShareSource(shareId, sourceClass, sourceValue) {\n const response = await axios.delete(sharingUrl(`/share/${shareId}/source`), {\n params: { class: sourceClass, value: sourceValue }\n });\n return unwrapOcs(response);\n}\nasync function addShareRecipient(shareId, recipientClass, recipientValue, instance) {\n const response = await axios.post(sharingUrl(`/share/${shareId}/recipient`), {\n class: recipientClass,\n value: recipientValue,\n instance: instance ?? null\n });\n return unwrapOcs(response);\n}\nasync function removeShareRecipient(shareId, recipientClass, recipientValue, instance) {\n const response = await axios.delete(sharingUrl(`/share/${shareId}/recipient`), {\n params: { class: recipientClass, value: recipientValue, instance: instance ?? void 0 }\n });\n return unwrapOcs(response);\n}\nasync function updateShareRecipientSecret(shareId, recipientClass, recipientValue, secret, instance) {\n const response = await axios.put(sharingUrl(`/share/${shareId}/recipient/secret`), {\n class: recipientClass,\n value: recipientValue,\n instance: instance ?? null,\n secret\n });\n return unwrapOcs(response);\n}\nasync function updateShareProperty(shareId, propertyClass, value) {\n const response = await axios.put(sharingUrl(`/share/${shareId}/property`), {\n class: propertyClass,\n value\n });\n return unwrapOcs(response);\n}\nasync function updateSharePermission(shareId, permissionClass, enabled) {\n const response = await axios.put(sharingUrl(`/share/${shareId}/permission`), {\n class: permissionClass,\n enabled\n });\n return unwrapOcs(response);\n}\nasync function selectSharePermissionPreset(shareId, presetClass) {\n const response = await axios.put(sharingUrl(`/share/${shareId}/permission/preset`), {\n permissionPresetClass: presetClass\n });\n return unwrapOcs(response);\n}\nasync function updateShareRecipientPermission(shareId, recipientClass, recipientValue, permissionClass, enabled, instance) {\n const response = await axios.put(sharingUrl(`/share/${shareId}/recipient/permission`), {\n recipientClass,\n recipientValue,\n recipientInstance: instance ?? null,\n permissionClass,\n enabled\n });\n return unwrapOcs(response);\n}\nasync function updateShareState(shareId, state) {\n const response = await axios.put(sharingUrl(`/share/${shareId}/state`), { state });\n return unwrapOcs(response);\n}\nasync function searchRecipients(query, recipientTypeClass, limit = 10, offset = 0) {\n const response = await axios.get(sharingUrl(\"/recipients\"), {\n params: { query, recipientTypeClass, limit, offset }\n });\n return unwrapOcs(response);\n}\nasync function deleteShare(shareId) {\n await axios.delete(sharingUrl(`/share/${shareId}`));\n}\nclass Share {\n #data;\n constructor(data) {\n this.#data = shallowRef(data);\n }\n /** The full share schema (reactive). */\n get data() {\n return this.#data.value;\n }\n /** The share id. */\n get id() {\n return this.#data.value.id;\n }\n /** The share state (draft / active / deleted). */\n get state() {\n return this.#data.value.state;\n }\n /** The share sources. */\n get sources() {\n return this.#data.value.sources;\n }\n /** The share recipients. */\n get recipients() {\n return this.#data.value.recipients;\n }\n /** The share properties. */\n get properties() {\n return this.#data.value.properties;\n }\n /** The share permissions. */\n get permissions() {\n return this.#data.value.permissions;\n }\n /** The class of the preset matching the enabled permissions, null when custom. */\n get permissionPreset() {\n return this.#data.value.permission_preset;\n }\n /**\n * Replace the instance data with a fresh schema from the backend.\n *\n * @param data The updated share schema\n */\n #sync(data) {\n this.#data.value = data;\n return this;\n }\n /**\n * Add a source to the share.\n *\n * @param sourceClass The source type class\n * @param sourceValue The source value\n */\n async addSource(sourceClass, sourceValue) {\n return this.#sync(await addShareSource(this.id, sourceClass, sourceValue));\n }\n /**\n * Add a file or folder as the share's source.\n *\n * @param node The node to share\n */\n async addNode(node) {\n return this.addSource(SOURCE_TYPE_NODE, node.fileid.toString());\n }\n /**\n * Remove a source from the share.\n *\n * @param sourceClass The source type class\n * @param sourceValue The source value\n */\n async removeSource(sourceClass, sourceValue) {\n return this.#sync(await removeShareSource(this.id, sourceClass, sourceValue));\n }\n /**\n * Add a recipient to the share.\n *\n * @param recipientClass The recipient type class\n * @param recipientValue The recipient value\n * @param instance The recipient's instance (federated shares)\n */\n async addRecipient(recipientClass, recipientValue, instance) {\n return this.#sync(await addShareRecipient(this.id, recipientClass, recipientValue, instance));\n }\n /**\n * Remove a recipient from the share.\n *\n * @param recipientClass The recipient type class\n * @param recipientValue The recipient value\n * @param instance The recipient's instance (federated shares)\n */\n async removeRecipient(recipientClass, recipientValue, instance) {\n return this.#sync(await removeShareRecipient(this.id, recipientClass, recipientValue, instance));\n }\n /**\n * Update the secret of a recipient.\n *\n * @param recipientClass The recipient type class\n * @param recipientValue The recipient value\n * @param secret The new secret\n * @param instance The recipient's instance (federated shares)\n */\n async setRecipientSecret(recipientClass, recipientValue, secret, instance) {\n return this.#sync(await updateShareRecipientSecret(this.id, recipientClass, recipientValue, secret, instance));\n }\n /**\n * Set a property value. Pass null to unset it.\n *\n * @param propertyClass The property type class\n * @param value The new value, or null to unset\n */\n async setProperty(propertyClass, value) {\n return this.#sync(await updateShareProperty(this.id, propertyClass, value));\n }\n /**\n * Enable or disable a single permission.\n *\n * @param permissionClass The permission type class\n * @param enabled The new enabled state\n */\n async setPermission(permissionClass, enabled) {\n return this.#sync(await updateSharePermission(this.id, permissionClass, enabled));\n }\n /**\n * Apply a permission preset. The backend enables the preset's permissions\n * and disables the rest.\n *\n * @param presetClass The preset class to apply\n */\n async selectPreset(presetClass) {\n return this.#sync(await selectSharePermissionPreset(this.id, presetClass));\n }\n /**\n * Enable or disable a single permission for one recipient. The backend caps\n * the recipient at the share-level permissions (the maximum).\n *\n * @param recipientClass The recipient type class\n * @param recipientValue The recipient value\n * @param permissionClass The permission type class\n * @param enabled The new enabled state\n * @param instance The recipient's instance (federated shares)\n */\n async setRecipientPermission(recipientClass, recipientValue, permissionClass, enabled, instance) {\n return this.#sync(await updateShareRecipientPermission(this.id, recipientClass, recipientValue, permissionClass, enabled, instance));\n }\n /**\n * Set the share state (draft → active → deleted).\n *\n * @param state The new state\n */\n async setState(state) {\n return this.#sync(await updateShareState(this.id, state));\n }\n /**\n * Activate the share (make the draft live).\n */\n async activate() {\n return this.setState(\"active\");\n }\n /**\n * Reload the share from the backend.\n */\n async refresh() {\n return this.#sync(await getShare$1(this.id));\n }\n /**\n * Delete the share permanently.\n */\n async delete() {\n await deleteShare(this.id);\n }\n /**\n * Open the sharing dialog bound to this share.\n * Resolves once the dialog is closed.\n *\n * @param node The node backing the share, used for the dialog title\n */\n async showDialog(node) {\n const [{ spawnDialog: spawnDialog2 }, { default: SharingDialog2 }] = await Promise.all([\n import(\"@nextcloud/vue/functions/dialog\"),\n Promise.resolve().then(() => SharingDialog$1)\n ]);\n return spawnDialog2(SharingDialog2, { share: this, node });\n }\n}\nasync function createShare() {\n return new Share(await createShare$1());\n}\nasync function getShare(id, secret, args) {\n return new Share(await getShare$1(id, secret, args));\n}\nfunction useRecipientSearch(share) {\n const results = ref([]);\n const selected = ref([]);\n const searching = ref(false);\n const recipientClassMap = /* @__PURE__ */ new Map();\n async function onSelect(value) {\n const models = Array.isArray(value) ? value : [value];\n for (const model of models) {\n const recipientClass = recipientClassMap.get(model.id);\n if (!recipientClass || share.recipients.some((recipient) => recipient.value === model.id)) {\n continue;\n }\n try {\n await share.addRecipient(recipientClass, model.id);\n } catch (e) {\n logger.error(\"Failed to add recipient\", { error: e, recipient: model });\n }\n }\n selected.value = [];\n }\n async function onSearch(query) {\n if (!query) {\n results.value = [];\n return;\n }\n searching.value = true;\n try {\n const recipients = await searchRecipients(query);\n for (const r of recipients) {\n recipientClassMap.set(r.value, r.class);\n }\n results.value = recipients.map(recipientToNcSelectUsersModel);\n } catch (e) {\n logger.error(\"Failed to search recipients\", { error: e });\n results.value = [];\n } finally {\n searching.value = false;\n }\n }\n return {\n results,\n selected,\n searching,\n onSelect,\n onSearch: debounce(onSearch, 150)\n };\n}\nfunction isLongTextProperty(property) {\n return property.type === \"string\" && (property.max_length ?? 0) > 255;\n}\nfunction isOptionalProperty(property) {\n if (property.type === \"boolean\") {\n return false;\n }\n return !property.required;\n}\nfunction defaultPropertyValue(property) {\n switch (property.type) {\n case \"boolean\":\n return \"false\";\n case \"enum\":\n return property.valid_values?.[0] ?? \"\";\n case \"string\":\n case \"password\":\n case \"date\":\n default:\n return \"\";\n }\n}\nfunction useShareProperties(share) {\n const properties = reactive(share.properties.map((p) => ({ ...p })));\n function mergeProperties(updated) {\n const existing = new Map(properties.map((p) => [p.class, p]));\n properties.length = 0;\n for (const p of updated) {\n const local = existing.get(p.class);\n properties.push(local ? { ...p, value: local.value } : { ...p });\n }\n }\n watch(() => share.properties, mergeProperties);\n const firstPageProperties = computed(() => properties.filter((p) => FIRST_PAGE_PROPERTIES.includes(p.class)));\n const settingsProperties = computed(() => properties.filter((p) => !HIDDEN_PROPERTIES.includes(p.class) && !FIRST_PAGE_PROPERTIES.includes(p.class)));\n const hasSettingsWarning = computed(() => settingsProperties.value.some((p) => p.required && (p.value === null || p.value === \"\")));\n const hasSettings = computed(() => settingsProperties.value.length > 0);\n async function toggleOptionalProperty(property, enabled) {\n const previousValue = property.value;\n const newValue = enabled ? defaultPropertyValue(property) : null;\n property.value = newValue;\n if (enabled && (newValue === null || newValue === \"\")) {\n return;\n }\n try {\n await share.setProperty(property.class, newValue);\n } catch (e) {\n property.value = previousValue;\n logger.error(\"Failed to toggle property\", { error: e });\n }\n }\n return {\n properties,\n firstPageProperties,\n settingsProperties,\n hasSettingsWarning,\n hasSettings,\n toggleOptionalProperty\n };\n}\nvar ShareDialogTab = /* @__PURE__ */ ((ShareDialogTab2) => {\n ShareDialogTab2[\"InvitedPeople\"] = \"invited-people\";\n ShareDialogTab2[\"Anyone\"] = \"anyone\";\n return ShareDialogTab2;\n})(ShareDialogTab || {});\nfunction shareOutcomeSummary(expiration, passwordProtected) {\n if (expiration) {\n const placeholders = {\n date: expiration.toLocaleDateString(),\n time: expiration.toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" })\n };\n return passwordProtected ? t(\"This share will expire on {date} at {time} and will be password protected.\", placeholders) : t(\"This share will expire on {date} at {time}.\", placeholders);\n }\n if (passwordProtected) {\n return t(\"This share will be password protected.\");\n }\n return null;\n}\nconst _hoisted_1$1 = { class: \"share-panel__link-actions\" };\nconst _hoisted_2$1 = { class: \"share-panel__settings-actions\" };\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"SharePanel\",\n props: /* @__PURE__ */ mergeModels({\n share: {},\n inSettings: { type: Boolean },\n folderName: {}\n }, {\n \"shareDialogTab\": { required: true },\n \"shareDialogTabModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"settingsWarning\", \"settingsAvailable\", \"submitted\", \"deleted\"], [\"update:shareDialogTab\"]),\n setup(__props, { emit: __emit }) {\n const shareDialogTab = useModel(__props, \"shareDialogTab\");\n const props = __props;\n const emit = __emit;\n const isLinkShare = computed(() => shareDialogTab.value === ShareDialogTab.Anyone);\n const canSubmit = computed(() => props.share.recipients.length > 0);\n const isDraft = computed(() => props.share.state === \"draft\");\n const invitedRecipients = computed(() => props.share.recipients.filter((recipient) => recipient.class !== RECIPIENT_TYPE_TOKEN));\n async function confirmDropInvited(count) {\n let confirmed = false;\n const dialog = new DialogBuilder().setName(t(\"Share with anyone\")).setText(n(\n \"Switching to a public link removes %n recipient from this share.\",\n \"Switching to a public link removes %n recipients from this share.\",\n count\n )).setButtons([\n {\n label: t(\"Cancel\"),\n variant: \"secondary\",\n callback: () => {\n }\n },\n {\n label: t(\"Continue\"),\n variant: \"primary\",\n callback: () => {\n confirmed = true;\n }\n }\n ]).build();\n try {\n await dialog.show();\n } catch (e) {\n logger.debug(\"Share type confirmation dialog closed\", { error: e });\n }\n return confirmed;\n }\n async function onTabChange(tab) {\n if (tab === shareDialogTab.value) {\n return;\n }\n if (tab === ShareDialogTab.Anyone && invitedRecipients.value.length > 0) {\n if (!await confirmDropInvited(invitedRecipients.value.length)) {\n return;\n }\n for (const recipient of invitedRecipients.value) {\n try {\n await props.share.removeRecipient(recipient.class, recipient.value, recipient.instance ?? void 0);\n } catch (e) {\n logger.error(\"Failed to remove recipient while switching to a link share\", { error: e, recipient: recipient.value });\n }\n }\n }\n shareDialogTab.value = tab;\n }\n const {\n properties,\n firstPageProperties,\n settingsProperties,\n hasSettingsWarning,\n hasSettings,\n toggleOptionalProperty\n } = useShareProperties(props.share);\n const {\n permissions,\n presetOptions,\n selectedPresetOption,\n showPermissions,\n permissionErrors,\n presetError,\n onPresetChange,\n onPermissionToggle\n } = usePermissionPresets(props.share);\n const { results, selected: selectedRecipients, searching, onSelect: onSelectRecipients, onSearch: onSearchDebounced } = useRecipientSearch(props.share);\n const {\n linkRecipientLoading,\n linkRecipientError,\n linkActionsDisabled,\n resolvedLink,\n copied,\n retryTokenRecipient,\n copyLink\n } = useLinkShare(props.share, isLinkShare);\n watch(hasSettingsWarning, (v) => emit(\"settingsWarning\", v), { immediate: true });\n watch(hasSettings, (v) => emit(\"settingsAvailable\", v), { immediate: true });\n const expirationDate = computed(() => {\n const value = properties.find((p) => p.class === PROPERTY_EXPIRATION)?.value;\n if (!value) {\n return null;\n }\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n });\n const isPasswordProtected = computed(() => {\n const value = properties.find((p) => p.class === PROPERTY_PASSWORD)?.value;\n return value !== null && value !== void 0 && value !== \"\";\n });\n const shareSummary = computed(() => shareOutcomeSummary(expirationDate.value, isPasswordProtected.value));\n const folderUploadHint = computed(() => isLinkShare.value && props.folderName ? t('Files and folders uploaded via the link will be added to \"{folder}\".', { folder: props.folderName }) : null);\n const copyLinkLabel = computed(() => isLinkShare.value ? t(\"Copy public link\") : t(\"Copy private link\"));\n const presetSelectLabel = computed(() => isLinkShare.value ? t(\"Anyone with the link\") : t(\"Default permission\"));\n const shareTypes = [\n { id: ShareDialogTab.InvitedPeople, label: t(\"Invited people\"), iconSvgInline: AccountPlusOutlineIconSvg },\n { id: ShareDialogTab.Anyone, label: t(\"Anyone\"), iconSvgInline: WorldMapOutlineSvg }\n ];\n const submitting = ref(false);\n const submitError = ref(null);\n watch(shareDialogTab, () => {\n submitError.value = null;\n });\n const deleting = ref(false);\n async function confirmDelete() {\n let confirmed = false;\n const dialog = new DialogBuilder().setName(t(\"Delete share\")).setText(t(\"This share will be deleted for good. This cannot be undone.\")).setButtons([\n {\n label: t(\"Cancel\"),\n variant: \"secondary\",\n callback: () => {\n }\n },\n {\n label: t(\"Delete share\"),\n variant: \"error\",\n callback: () => {\n confirmed = true;\n }\n }\n ]).build();\n try {\n await dialog.show();\n } catch (e) {\n logger.debug(\"Delete confirmation dialog closed\", { error: e });\n }\n if (!confirmed) {\n return;\n }\n deleting.value = true;\n try {\n await props.share.delete();\n emit(\"deleted\");\n } catch (e) {\n logger.error(\"Failed to delete share\", { error: e });\n submitError.value = getOcsErrorMessage(e);\n } finally {\n deleting.value = false;\n }\n }\n async function sendLink() {\n submitting.value = true;\n submitError.value = null;\n try {\n if (props.share.state === \"draft\") {\n await props.share.activate();\n }\n emit(\"submitted\", { link: resolvedLink.value, isPublic: isLinkShare.value });\n } catch (e) {\n logger.error(\"Failed to submit share\", { error: e });\n submitError.value = getOcsErrorMessage(e);\n } finally {\n submitting.value = false;\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"form\", {\n class: \"share-panel\",\n onSubmit: _cache[1] || (_cache[1] = withModifiers(() => {\n }, [\"prevent\"]))\n }, [\n !__props.inSettings ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n isDraft.value ? (openBlock(), createBlock(unref(NcRadioGroup), {\n key: 0,\n class: \"share-panel__tab-bar\",\n modelValue: shareDialogTab.value,\n label: unref(t)(\"Share type\"),\n hideLabel: true,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => onTabChange($event))\n }, {\n default: withCtx(() => [\n (openBlock(), createElementBlock(Fragment, null, renderList(shareTypes, (type) => {\n return createVNode(unref(NcRadioGroupButton), {\n key: type.id,\n value: type.id,\n label: type.label\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n svg: type.iconSvgInline,\n size: 20\n }, null, 8, [\"svg\"])\n ]),\n _: 2\n }, 1032, [\"value\", \"label\"]);\n }), 64))\n ]),\n _: 1\n }, 8, [\"modelValue\", \"label\"])) : createCommentVNode(\"\", true),\n shareDialogTab.value === unref(ShareDialogTab).InvitedPeople ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n createVNode(unref(NcSelectUsers), {\n modelValue: unref(selectedRecipients),\n class: \"share-panel__recipient-search\",\n multiple: true,\n inputLabel: unref(t)(\"Add recipient\"),\n options: unref(results),\n loading: unref(searching),\n placeholder: unref(t)(\"Name, team, email or federated cloud ID\"),\n \"onUpdate:modelValue\": unref(onSelectRecipients),\n onSearch: unref(onSearchDebounced)\n }, null, 8, [\"modelValue\", \"inputLabel\", \"options\", \"loading\", \"placeholder\", \"onUpdate:modelValue\", \"onSearch\"]),\n createVNode(RecipientList, { share: __props.share }, null, 8, [\"share\"])\n ], 64)) : createCommentVNode(\"\", true),\n createVNode(PermissionEditor, {\n presetOptions: unref(presetOptions),\n selectedPreset: unref(selectedPresetOption),\n showPermissions: unref(showPermissions),\n permissions: unref(permissions),\n permissionErrors: unref(permissionErrors),\n presetError: unref(presetError),\n presetLabel: presetSelectLabel.value,\n onPresetChange: unref(onPresetChange),\n onPermissionToggle: unref(onPermissionToggle)\n }, null, 8, [\"presetOptions\", \"selectedPreset\", \"showPermissions\", \"permissions\", \"permissionErrors\", \"presetError\", \"presetLabel\", \"onPresetChange\", \"onPermissionToggle\"]),\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(firstPageProperties), (property) => {\n return openBlock(), createElementBlock(Fragment, {\n key: property.class\n }, [\n unref(isOptionalProperty)(property) && !unref(isLongTextProperty)(property) ? (openBlock(), createBlock(InlineToggleField, {\n key: 0,\n label: property.display_name,\n modelValue: property.value !== null,\n \"onUpdate:modelValue\": (enabled) => unref(toggleOptionalProperty)(property, enabled)\n }, {\n default: withCtx(({ inputId }) => [\n createVNode(PropertyField, {\n modelValue: property.value,\n \"onUpdate:modelValue\": ($event) => property.value = $event,\n disabled: property.value === null,\n inputId,\n property,\n share: __props.share\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"disabled\", \"inputId\", \"property\", \"share\"])\n ]),\n _: 2\n }, 1032, [\"label\", \"modelValue\", \"onUpdate:modelValue\"])) : (openBlock(), createBlock(PropertyField, {\n key: 1,\n modelValue: property.value,\n \"onUpdate:modelValue\": ($event) => property.value = $event,\n property,\n share: __props.share\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"property\", \"share\"]))\n ], 64);\n }), 128)),\n folderUploadHint.value ? (openBlock(), createBlock(unref(NcNoteCard), {\n key: 2,\n type: \"info\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(folderUploadHint.value), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n shareSummary.value ? (openBlock(), createBlock(unref(NcNoteCard), {\n key: 3,\n type: \"info\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(shareSummary.value), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n unref(linkRecipientError) ? (openBlock(), createBlock(unref(NcNoteCard), {\n key: 4,\n type: \"error\"\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", null, toDisplayString(unref(linkRecipientError)), 1),\n createVNode(unref(NcButton), {\n disabled: unref(linkRecipientLoading),\n onClick: unref(retryTokenRecipient)\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Retry\")), 1)\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"])\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n submitError.value ? (openBlock(), createBlock(unref(NcNoteCard), {\n key: 5,\n type: \"error\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(submitError.value), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_1$1, [\n createVNode(unref(NcButton), {\n class: \"share-panel__link-copy\",\n \"aria-label\": copyLinkLabel.value,\n disabled: unref(linkActionsDisabled) || submitting.value,\n onClick: unref(copyLink)\n }, {\n icon: withCtx(() => [\n unref(linkRecipientLoading) ? (openBlock(), createBlock(unref(NcLoadingIcon), {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n svg: unref(IconContentCopy),\n size: 20\n }, null, 8, [\"svg\"]))\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(copied) ? unref(t)(\"Copied!\") : copyLinkLabel.value), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"disabled\", \"onClick\"]),\n createVNode(unref(NcButton), {\n class: \"share-panel__link-send\",\n variant: \"primary\",\n \"aria-label\": unref(t)(\"Send share link\"),\n disabled: unref(linkActionsDisabled) || submitting.value || !canSubmit.value,\n onClick: sendLink\n }, {\n icon: withCtx(() => [\n submitting.value ? (openBlock(), createBlock(unref(NcLoadingIcon), {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n svg: unref(IconSend),\n size: 20\n }, null, 8, [\"svg\"]))\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Send\")), 1)\n ]),\n _: 1\n }, 8, [\"aria-label\", \"disabled\"])\n ])\n ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n unref(hasSettingsWarning) ? (openBlock(), createBlock(unref(NcNoteCard), {\n key: 0,\n type: \"warning\",\n class: \"share-panel__settings-warning\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Some required fields are missing\")), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(settingsProperties), (property) => {\n return openBlock(), createElementBlock(Fragment, {\n key: property.class\n }, [\n unref(isOptionalProperty)(property) && !unref(isLongTextProperty)(property) ? (openBlock(), createBlock(InlineToggleField, {\n key: 0,\n label: property.display_name,\n modelValue: property.value !== null,\n \"onUpdate:modelValue\": (enabled) => unref(toggleOptionalProperty)(property, enabled)\n }, {\n default: withCtx(({ inputId }) => [\n createVNode(PropertyField, {\n modelValue: property.value,\n \"onUpdate:modelValue\": ($event) => property.value = $event,\n disabled: property.value === null,\n inputId,\n property,\n share: __props.share\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"disabled\", \"inputId\", \"property\", \"share\"])\n ]),\n _: 2\n }, 1032, [\"label\", \"modelValue\", \"onUpdate:modelValue\"])) : (openBlock(), createBlock(PropertyField, {\n key: 1,\n modelValue: property.value,\n \"onUpdate:modelValue\": ($event) => property.value = $event,\n property,\n share: __props.share\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"property\", \"share\"]))\n ], 64);\n }), 128)),\n createElementVNode(\"div\", _hoisted_2$1, [\n createVNode(unref(NcButton), {\n class: \"share-panel__delete\",\n variant: \"error\",\n disabled: deleting.value,\n onClick: confirmDelete\n }, {\n icon: withCtx(() => [\n deleting.value ? (openBlock(), createBlock(unref(NcLoadingIcon), {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(unref(NcIconSvgWrapper), {\n key: 1,\n svg: unref(IconDelete),\n size: 20\n }, null, 8, [\"svg\"]))\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Delete share\")), 1)\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ])\n ], 64))\n ], 32);\n };\n }\n});\nconst SharePanel = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-28d9c7d0\"]]);\nconst _hoisted_1 = { class: \"sharing-dialog__header\" };\nconst _hoisted_2 = { class: \"dialog__titles\" };\nconst _hoisted_3 = { class: \"sharing-dialog__title\" };\nconst _hoisted_4 = {\n key: 0,\n class: \"sharing-dialog__subtitle\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"SharingDialog\",\n props: {\n share: {},\n node: {}\n },\n emits: [\"close\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emit = __emit;\n const { sharing: sharingCapabilities } = getCapabilities();\n const inSettings = ref(false);\n const loading = ref(!props.share);\n const error = ref(null);\n const share = shallowRef(props.share ?? null);\n const nodeName = computed(() => props.node?.displayname ?? null);\n const folderName = computed(() => props.node?.type === FileType.Folder ? props.node.displayname : null);\n const dialogTitle = computed(() => {\n if (inSettings.value) {\n return t(\"Sharing settings\");\n }\n return nodeName.value ? t('Share \"{name}\"', { name: nodeName.value }) : t(\"Share\");\n });\n const isExistingLinkShare = props.share?.recipients.some((recipient) => recipient.class === RECIPIENT_TYPE_TOKEN) ?? false;\n const shareDialogTab = ref(isExistingLinkShare ? ShareDialogTab.Anyone : ShareDialogTab.InvitedPeople);\n const settingsHasWarning = ref(false);\n const settingsAvailable = ref(false);\n const submitted = ref(false);\n const submitResult = ref(null);\n function onSubmitted(payload) {\n submitResult.value = payload;\n submitted.value = true;\n }\n onMounted(async () => {\n if (share.value) {\n return;\n }\n try {\n if (!props.node) {\n throw new Error(\"Either a share or a node must be provided\");\n }\n if (!sharingCapabilities.source_types.some((t2) => t2.class === SOURCE_TYPE_NODE)) {\n throw new Error(\"File source type not available\");\n }\n const draft = await createShare();\n await draft.addNode(props.node);\n share.value = draft;\n } catch (e) {\n const message = e instanceof Error ? e.message : \"Unknown error\";\n error.value = message;\n logger.error(\"Failed to initialize share\", { error: e });\n } finally {\n loading.value = false;\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcDialog), {\n class: \"sharing-dialog\",\n name: \"\",\n size: \"normal\",\n onClosing: _cache[7] || (_cache[7] = ($event) => emit(\"close\"))\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1, [\n inSettings.value ? (openBlock(), createBlock(unref(NcButton), {\n key: 0,\n class: \"sharing-dialog__settings-back-btn\",\n variant: \"tertiary\",\n \"aria-label\": unref(t)(\"Back to sharing options\"),\n onClick: _cache[0] || (_cache[0] = ($event) => inSettings.value = false)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n svg: unref(IconArrowLeft),\n directional: \"\"\n }, null, 8, [\"svg\"])\n ]),\n _: 1\n }, 8, [\"aria-label\"])) : createCommentVNode(\"\", true),\n createElementVNode(\"span\", _hoisted_2, [\n createElementVNode(\"h2\", _hoisted_3, toDisplayString(dialogTitle.value), 1),\n inSettings.value && nodeName.value ? (openBlock(), createElementBlock(\"h3\", _hoisted_4, toDisplayString(nodeName.value), 1)) : createCommentVNode(\"\", true)\n ])\n ]),\n loading.value ? (openBlock(), createBlock(unref(NcEmptyContent), {\n key: 0,\n class: \"sharing-dialog__loading\",\n name: unref(t)(\"Loading sharing options…\")\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcLoadingIcon), { size: 44 })\n ]),\n _: 1\n }, 8, [\"name\"])) : error.value ? (openBlock(), createBlock(unref(NcEmptyContent), {\n key: 1,\n class: \"sharing-dialog__error\",\n name: unref(t)(\"Failed to create share\"),\n description: error.value\n }, null, 8, [\"name\", \"description\"])) : submitted.value ? (openBlock(), createBlock(ShareConfirmation, {\n key: 2,\n link: submitResult.value?.link ?? null,\n isPublic: submitResult.value?.isPublic ?? false,\n onClose: _cache[1] || (_cache[1] = ($event) => emit(\"close\"))\n }, null, 8, [\"link\", \"isPublic\"])) : share.value ? (openBlock(), createBlock(SharePanel, {\n key: 3,\n shareDialogTab: shareDialogTab.value,\n \"onUpdate:shareDialogTab\": _cache[2] || (_cache[2] = ($event) => shareDialogTab.value = $event),\n inSettings: inSettings.value,\n share: share.value,\n folderName: folderName.value,\n onSettingsWarning: _cache[3] || (_cache[3] = ($event) => settingsHasWarning.value = $event),\n onSettingsAvailable: _cache[4] || (_cache[4] = ($event) => settingsAvailable.value = $event),\n onSubmitted,\n onDeleted: _cache[5] || (_cache[5] = ($event) => emit(\"close\"))\n }, null, 8, [\"shareDialogTab\", \"inSettings\", \"share\", \"folderName\"])) : createCommentVNode(\"\", true),\n !inSettings.value && !submitted.value && share.value && settingsAvailable.value ? (openBlock(), createBlock(unref(NcButton), {\n key: 4,\n \"aria-label\": unref(t)(\"Additional sharing settings\"),\n class: normalizeClass([\"sharing-dialog__settings-toggle\", { \"sharing-dialog__settings-toggle--warning\": settingsHasWarning.value }]),\n variant: \"tertiary\",\n onClick: _cache[6] || (_cache[6] = ($event) => inSettings.value = true)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), { svg: unref(IconCogOutline) }, null, 8, [\"svg\"])\n ]),\n _: 1\n }, 8, [\"aria-label\", \"class\"])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n });\n };\n }\n});\nconst SharingDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-147aec3d\"]]);\nconst SharingDialog$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: SharingDialog\n}, Symbol.toStringTag, { value: \"Module\" }));\n/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction isSharingDialogAvailable() {\n const capabilities = getCapabilities();\n return (capabilities.sharing?.api_versions?.length ?? 0) > 0;\n}\nasync function openSharingDialog(node) {\n if (!isSharingDialogAvailable()) {\n showError(t(\"Sharing is not available on this server\"));\n return;\n }\n return await spawnDialog(SharingDialog, { node });\n}\nexport {\n SharingDialog,\n createShare,\n getShare,\n isSharingDialogAvailable,\n openSharingDialog,\n searchRecipients\n};\n//# sourceMappingURL=dialog.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getShare, isSharingDialogAvailable, openSharingDialog } from '@nextcloud/sharing/dialog';\n/**\n * The dialog is a Vue 3 component while this frontend is still Vue 2. The\n * library depends on Vue itself, so npm installs its own copy next to it and\n * the dialog runs on that one, the same way `@nextcloud/dialogs` does.\n */\nexport { isSharingDialogAvailable };\n/**\n * Open the unified sharing dialog to create a new share for a node.\n *\n * @param node The file or folder to share\n */\nexport function openShareCreateDialog(node) {\n return openSharingDialog(node);\n}\n/**\n * Open the unified sharing dialog to edit an existing share.\n *\n * @param shareId The share id (mapped to the unified API by the legacy bridge)\n * @param node The backing node, used for the dialog title\n */\nexport async function openShareEditDialog(shareId, node) {\n const share = await getShare(String(shareId));\n return share.showDialog(node);\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { loadState } from '@nextcloud/initial-state';\nimport { isSharingDialogAvailable } from './SharingDialog.ts';\nexport default class Config {\n _capabilities;\n constructor() {\n this._capabilities = getCapabilities();\n }\n /**\n * Get default share permissions, if any\n */\n get defaultPermissions() {\n return this._capabilities.files_sharing?.default_permissions;\n }\n /**\n * Should SHARE permission be excluded from \"Allow editing\" bundled permissions\n */\n get excludeReshareFromEdit() {\n return this._capabilities.files_sharing?.exclude_reshare_from_edit === true;\n }\n /**\n * Is public upload allowed on link shares ?\n * This covers File request and Full upload/edit option.\n */\n get isPublicUploadEnabled() {\n return this._capabilities.files_sharing?.public?.upload === true;\n }\n /**\n * Get the federated sharing documentation link\n */\n get federatedShareDocLink() {\n return window.OC.appConfig.core.federatedCloudShareDoc;\n }\n /**\n * Get the default link share expiration date\n */\n get defaultExpirationDate() {\n if (this.isDefaultExpireDateEnabled && this.defaultExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate));\n }\n return null;\n }\n /**\n * Get the default internal expiration date\n */\n get defaultInternalExpirationDate() {\n if (this.isDefaultInternalExpireDateEnabled && this.defaultInternalExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate));\n }\n return null;\n }\n /**\n * Get the default remote expiration date\n */\n get defaultRemoteExpirationDateString() {\n if (this.isDefaultRemoteExpireDateEnabled && this.defaultRemoteExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate));\n }\n return null;\n }\n /**\n * Are link shares password-enforced ?\n */\n get enforcePasswordForPublicLink() {\n return window.OC.appConfig.core.enforcePasswordForPublicLink === true;\n }\n /**\n * Is password asked by default on link shares ?\n */\n get enableLinkPasswordByDefault() {\n return window.OC.appConfig.core.enableLinkPasswordByDefault === true;\n }\n /**\n * Is link shares expiration enforced ?\n */\n get isDefaultExpireDateEnforced() {\n return window.OC.appConfig.core.defaultExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new link shares ?\n */\n get isDefaultExpireDateEnabled() {\n return window.OC.appConfig.core.defaultExpireDateEnabled === true;\n }\n /**\n * Is internal shares expiration enforced ?\n */\n get isDefaultInternalExpireDateEnforced() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new internal shares ?\n */\n get isDefaultInternalExpireDateEnabled() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnabled === true;\n }\n /**\n * Is remote shares expiration enforced ?\n */\n get isDefaultRemoteExpireDateEnforced() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new remote shares ?\n */\n get isDefaultRemoteExpireDateEnabled() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnabled === true;\n }\n /**\n * Are users on this server allowed to send shares to other servers ?\n */\n get isRemoteShareAllowed() {\n return window.OC.appConfig.core.remoteShareAllowed === true;\n }\n /**\n * Is federation enabled ?\n */\n get isFederationEnabled() {\n return this._capabilities?.files_sharing?.federation?.outgoing === true;\n }\n /**\n * Is public sharing enabled ?\n */\n get isPublicShareAllowed() {\n return this._capabilities?.files_sharing?.public?.enabled === true;\n }\n /**\n * Is sharing my mail (link share) enabled ?\n */\n get isMailShareAllowed() {\n return this._capabilities?.files_sharing?.sharebymail?.enabled === true\n && this.isPublicShareAllowed === true;\n }\n /**\n * Get the default days to link shares expiration\n */\n get defaultExpireDate() {\n return window.OC.appConfig.core.defaultExpireDate;\n }\n /**\n * Get the default days to internal shares expiration\n */\n get defaultInternalExpireDate() {\n return window.OC.appConfig.core.defaultInternalExpireDate;\n }\n /**\n * Get the default days to remote shares expiration\n */\n get defaultRemoteExpireDate() {\n return window.OC.appConfig.core.defaultRemoteExpireDate;\n }\n /**\n * Is resharing allowed ?\n */\n get isResharingAllowed() {\n return window.OC.appConfig.core.resharingAllowed === true;\n }\n /**\n * Is password enforced for mail shares ?\n */\n get isPasswordForMailSharesRequired() {\n return this._capabilities.files_sharing?.sharebymail?.password?.enforced === true;\n }\n /**\n * Always show the email or userid unique sharee label if enabled by the admin\n */\n get shouldAlwaysShowUnique() {\n return this._capabilities.files_sharing?.sharee?.always_show_unique === true;\n }\n /**\n * Is sharing with groups allowed ?\n */\n get allowGroupSharing() {\n return window.OC.appConfig.core.allowGroupSharing === true;\n }\n /**\n * Get the maximum results of a share search\n */\n get maxAutocompleteResults() {\n return parseInt(window.OC.config['sharing.maxAutocompleteResults'], 10) || 25;\n }\n /**\n * Get the minimal string length\n * to initiate a share search\n */\n get minSearchStringLength() {\n return parseInt(window.OC.config['sharing.minSearchStringLength'], 10) || 0;\n }\n /**\n * Get the password policy configuration\n */\n get passwordPolicy() {\n return this._capabilities?.password_policy || {};\n }\n /**\n * Returns true if custom tokens are allowed\n */\n get allowCustomTokens() {\n return this._capabilities?.files_sharing?.public?.custom_tokens;\n }\n /**\n * Show federated shares as internal shares\n *\n * @return\n */\n get showFederatedSharesAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesAsInternal', false);\n }\n /**\n * Show federated shares to trusted servers as internal shares\n *\n * @return\n */\n get showFederatedSharesToTrustedServersAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesToTrustedServersAsInternal', false);\n }\n /**\n * Show the external share ui\n */\n get showExternalSharing() {\n return loadState('files_sharing', 'showExternalSharing', true);\n }\n /**\n * Whether the new unified sharing dialog replaces the legacy inline sharing UI.\n * Derived from the server capabilities: when the unified sharing API is not\n * advertised (capability empty), the legacy inputs and menus are used instead.\n */\n get sharingDialogEnabled() {\n return isSharingDialogAvailable();\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ATOMIC_PERMISSIONS } from '../lib/SharePermissionsToolBox.js'\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\n\nexport default {\n\tmethods: {\n\t\tasync openSharingDetails(shareRequestObject) {\n\t\t\tlet share\n\t\t\t// handle externalResults from OCA.Sharing.ShareSearch\n\t\t\t// TODO : Better name/interface for handler required\n\t\t\t// For example `externalAppCreateShareHook` with proper documentation\n\t\t\tif (shareRequestObject.handler) {\n\t\t\t\tconst handlerInput = {}\n\t\t\t\tif (this.suggestions) {\n\t\t\t\t\thandlerInput.suggestions = this.suggestions\n\t\t\t\t\thandlerInput.fileInfo = this.fileInfo\n\t\t\t\t\thandlerInput.query = this.query\n\t\t\t\t}\n\t\t\t\tconst externalShareRequestObject = await shareRequestObject.handler(handlerInput)\n\t\t\t\tshare = this.mapShareRequestToShareObject(externalShareRequestObject)\n\t\t\t} else {\n\t\t\t\tshare = this.mapShareRequestToShareObject(shareRequestObject)\n\t\t\t}\n\n\t\t\tif (this.fileInfo.type !== 'dir') {\n\t\t\t\tconst originalPermissions = share.permissions\n\t\t\t\tconst strippedPermissions = originalPermissions\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.CREATE\n\t\t\t\t\t& ~ATOMIC_PERMISSIONS.DELETE\n\n\t\t\t\tif (originalPermissions !== strippedPermissions) {\n\t\t\t\t\tlogger.debug('Removed create/delete permissions from file share (only valid for folders)')\n\t\t\t\t\tshare.permissions = strippedPermissions\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst shareDetails = {\n\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\tshare,\n\t\t\t}\n\n\t\t\tthis.$emit('open-sharing-details', shareDetails)\n\t\t},\n\t\topenShareDetailsForCustomSettings(share) {\n\t\t\tshare.setCustomPermissions = true\n\t\t\tthis.openSharingDetails(share)\n\t\t},\n\t\tmapShareRequestToShareObject(shareRequestObject) {\n\t\t\tif (shareRequestObject.id) {\n\t\t\t\treturn shareRequestObject\n\t\t\t}\n\n\t\t\tconst share = {\n\t\t\t\tattributes: [\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue: true,\n\t\t\t\t\t\tkey: 'download',\n\t\t\t\t\t\tscope: 'permissions',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\thideDownload: false,\n\t\t\t\tshare_type: shareRequestObject.shareType,\n\t\t\t\tshare_with: shareRequestObject.shareWith,\n\t\t\t\tis_no_user: shareRequestObject.isNoUser,\n\t\t\t\tuser: shareRequestObject.shareWith,\n\t\t\t\tshare_with_displayname: shareRequestObject.displayName,\n\t\t\t\tsubtitle: shareRequestObject.subtitle,\n\t\t\t\tpermissions: shareRequestObject.permissions ?? new Config().defaultPermissions,\n\t\t\t\texpiration: '',\n\t\t\t}\n\n\t\t\treturn new Share(share)\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios, { isAxiosError } from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport Share from '../models/Share.ts'\nimport logger from '../services/logger.ts'\n\nconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\nexport default {\n\tmethods: {\n\t\t/**\n\t\t * Create a new share\n\t\t *\n\t\t * @param {object} data destructuring object\n\t\t * @param {string} data.path path to the file/folder which should be shared\n\t\t * @param {number} data.shareType 0 = user; 1 = group; 3 = public link; 6 = federated cloud share\n\t\t * @param {string} data.shareWith user/group id with which the file should be shared (optional for shareType > 1)\n\t\t * @param {boolean} [data.publicUpload] allow public upload to a public shared folder\n\t\t * @param {string} [data.password] password to protect public link Share with\n\t\t * @param {number} [data.permissions] 1 = read; 2 = update; 4 = create; 8 = delete; 16 = share; 31 = all (default: 31, for public shares: 1)\n\t\t * @param {boolean} [data.sendPasswordByTalk] send the password via a talk conversation\n\t\t * @param {string} [data.expireDate] expire the share automatically after\n\t\t * @param {string} [data.label] custom label\n\t\t * @param {string} [data.attributes] Share attributes encoded as json\n\t\t * @param {string} data.note custom note to recipient\n\t\t * @return {Share} the new share\n\t\t * @throws {Error}\n\t\t */\n\t\tasync createShare({ path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes }) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.post(shareUrl, { path, permissions, shareType, shareWith, publicUpload, password, sendPasswordByTalk, expireDate, label, note, attributes })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\tconst share = new Share(request.data.ocs.data)\n\t\t\t\temit('files_sharing:share:created', { share })\n\t\t\t\treturn share\n\t\t\t} catch (error) {\n\t\t\t\tconst errorMessage = getErrorMessage(error) ?? t('files_sharing', 'Error creating the share')\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tthrow new Error(errorMessage, { cause: error })\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Delete a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @throws {Error}\n\t\t */\n\t\tasync deleteShare(id) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.delete(shareUrl + `/${id}`)\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t}\n\t\t\t\temit('files_sharing:share:deleted', { id })\n\t\t\t\treturn true\n\t\t\t} catch (error) {\n\t\t\t\tconst errorMessage = getErrorMessage(error) ?? t('files_sharing', 'Error deleting the share')\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tthrow new Error(errorMessage, { cause: error })\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update a share\n\t\t *\n\t\t * @param {number} id share id\n\t\t * @param {object} properties key-value object of the properties to update\n\t\t */\n\t\tasync updateShare(id, properties) {\n\t\t\ttry {\n\t\t\t\tconst request = await axios.put(shareUrl + `/${id}`, properties)\n\t\t\t\temit('files_sharing:share:updated', { id })\n\t\t\t\tif (!request?.data?.ocs) {\n\t\t\t\t\tthrow request\n\t\t\t\t} else {\n\t\t\t\t\treturn request.data.ocs.data\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while updating share', { error })\n\t\t\t\tconst errorMessage = getErrorMessage(error) ?? t('files_sharing', 'Error updating the share')\n\t\t\t\t// the error will be shown in apps/files_sharing/src/mixins/SharesMixin.js\n\t\t\t\tthrow new Error(errorMessage, { cause: error })\n\t\t\t}\n\t\t},\n\t},\n}\n\n/**\n * Handle an error response from the server and show a notification with the error message if possible\n *\n * @param {unknown} error - The received error\n * @return {string|undefined} the error message if it could be extracted from the response, otherwise undefined\n */\nfunction getErrorMessage(error) {\n\tif (isAxiosError(error) && error.response.data?.ocs) {\n\t\t/** @type {import('@nextcloud/typings/ocs').OCSResponse} */\n\t\tconst response = error.response.data\n\t\tif (response.ocs.meta?.message) {\n\t\t\treturn response.ocs.meta.message\n\t\t}\n\t}\n}\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=0b151499&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=0b151499&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInput.vue?vue&type=template&id=0b151499\"\nimport script from \"./SharingInput.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInput.vue?vue&type=style&index=0&id=0b151499&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.section.element,{ref:\"sectionElement\",tag:\"component\",domProps:{\"node\":_vm.node}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SidebarTabExternalSection.vue?vue&type=template&id=9785f99e\"\nimport script from \"./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalSection.vue?vue&type=script&lang=ts&setup=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"sharing-tab-external-section-legacy\"},[_c(_setup.component,{tag:\"component\",attrs:{\"file-info\":_vm.fileInfo}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=67cb6ff2&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=67cb6ff2&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SidebarTabExternalSectionLegacy.vue?vue&type=template&id=67cb6ff2&scoped=true\"\nimport script from \"./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalSectionLegacy.vue?vue&type=script&lang=ts&setup=true\"\nimport style0 from \"./SidebarTabExternalSectionLegacy.vue?vue&type=style&index=0&id=67cb6ff2&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67cb6ff2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"unified-share-list\"},_vm._l((_setup.sortedShares),function(share){return _c(_setup.UnifiedShareEntry,{key:share.id,attrs:{\"share\":share,\"fileInfo\":_vm.fileInfo},on:{\"refresh\":function($event){return _vm.$emit('refresh')}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronRight.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChevronRight.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChevronRight.vue?vue&type=template&id=569d73aa\"\nimport script from \"./ChevronRight.vue?vue&type=script&lang=js\"\nexport * from \"./ChevronRight.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon chevron-right-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Delete.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Delete.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Delete.vue?vue&type=template&id=3ecd235c\"\nimport script from \"./Delete.vue?vue&type=script&lang=js\"\nexport * from \"./Delete.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon delete-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pencil.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pencil.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Pencil.vue?vue&type=template&id=7adfde2b\"\nimport script from \"./Pencil.vue?vue&type=script&lang=js\"\nexport * from \"./Pencil.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon pencil-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Hardcoded backend class strings from the unified sharing API, mirrored from\n * the dialog library's constants. They are validated against the server\n * capabilities at runtime before use (see `unifiedShares.ts`).\n */\n/** Node (file/folder) source type. */\nexport const SOURCE_TYPE_NODE = 'OCA\\\\Files\\\\Sharing\\\\Source\\\\NodeShareSourceType';\n/** Recipient type classes. */\nexport const RECIPIENT_TYPE_USER = 'OC\\\\Core\\\\Sharing\\\\Recipient\\\\UserShareRecipientType';\nexport const RECIPIENT_TYPE_EMAIL = 'OC\\\\Core\\\\Sharing\\\\Recipient\\\\EmailShareRecipientType';\nexport const RECIPIENT_TYPE_GROUP = 'OC\\\\Core\\\\Sharing\\\\Recipient\\\\GroupShareRecipientType';\nexport const RECIPIENT_TYPE_TEAM = 'OC\\\\Core\\\\Sharing\\\\Recipient\\\\TeamShareRecipientType';\nexport const RECIPIENT_TYPE_TOKEN = 'OC\\\\Core\\\\Sharing\\\\Recipient\\\\TokenShareRecipientType';\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { translatePlural as n, translate as t } from '@nextcloud/l10n';\nimport { RECIPIENT_TYPE_EMAIL, RECIPIENT_TYPE_GROUP, RECIPIENT_TYPE_TEAM, RECIPIENT_TYPE_TOKEN, RECIPIENT_TYPE_USER, } from './unifiedSharingConstants.ts';\n/**\n * Rank a share by its highest granted permissions: the sum of priorities of its\n * enabled permissions. Used to order the flat share list (highest first).\n *\n * @param share The share to rank\n */\nexport function sharePermissionRank(share) {\n return share.permissions\n .filter((permission) => permission.enabled)\n .reduce((sum, permission) => sum + permission.priority, 0);\n}\n/**\n * Sort shares by highest permissions first, then by recipient count, then by id\n * for a stable order.\n *\n * @param shares The shares to sort (not mutated)\n */\nexport function sortSharesByPermission(shares) {\n return [...shares].sort((a, b) => {\n const rank = sharePermissionRank(b) - sharePermissionRank(a);\n if (rank !== 0) {\n return rank;\n }\n const count = b.recipients.length - a.recipients.length;\n if (count !== 0) {\n return count;\n }\n return a.id.localeCompare(b.id);\n });\n}\n/**\n * Human-readable label for a share's permission preset, e.g. \"Can edit\". Falls\n * back to \"Custom permissions\" when the enabled permissions match no preset.\n *\n * @param share The share\n */\nexport function permissionLabel(share) {\n if (share.permission_preset === null) {\n return t('files_sharing', 'Custom permissions');\n }\n const capabilities = getCapabilities();\n const preset = (capabilities.sharing?.permission_presets ?? []).find((p) => p.class === share.permission_preset);\n return preset?.display_name ?? t('files_sharing', 'Custom permissions');\n}\n/**\n * Human-readable label for a set of permissions: the preset whose member\n * permissions are exactly the enabled ones, else \"Custom permissions\".\n *\n * @param permissions The permissions to label\n */\nfunction labelForPermissions(permissions) {\n const capabilities = getCapabilities();\n const enabled = new Set(permissions.filter((permission) => permission.enabled).map((permission) => permission.class));\n for (const preset of capabilities.sharing?.permission_presets ?? []) {\n const members = permissions.filter((permission) => permission.presets.includes(preset.class));\n if (members.length > 0 && members.length === enabled.size && members.every((permission) => enabled.has(permission.class))) {\n return preset.display_name;\n }\n }\n return t('files_sharing', 'Custom permissions');\n}\n/**\n * Human-readable permission label for a single recipient.\n *\n * A recipient's permissions are sparse overrides on top of the share's, so the\n * effective state is the share's permissions with the recipient's applied.\n *\n * @param share The share the recipient belongs to\n * @param recipient The recipient\n */\nexport function recipientPermissionLabel(share, recipient) {\n const overrides = new Map((recipient.permissions ?? []).map((permission) => [permission.class, permission]));\n return labelForPermissions(share.permissions.map((permission) => ({\n ...permission,\n enabled: overrides.get(permission.class)?.enabled ?? permission.enabled,\n })));\n}\n/**\n * Whether a recipient should render a non-user (initials) avatar.\n *\n * @param recipient The recipient\n */\nexport function isNoUserRecipient(recipient) {\n return recipient.class !== RECIPIENT_TYPE_USER;\n}\n/**\n * Build a human-readable summary of a share's recipients, e.g.\n * \"1 person, 2 groups\". Categories are listed in a stable order and only\n * non-empty ones are included.\n *\n * @param recipients The share's recipients\n */\nexport function recipientSummary(recipients) {\n const counts = {};\n for (const recipient of recipients) {\n counts[recipient.class] = (counts[recipient.class] ?? 0) + 1;\n }\n const parts = [];\n const push = (count, singular, plural) => {\n if (count > 0) {\n parts.push(n('files_sharing', singular, plural, count));\n }\n };\n push(counts[RECIPIENT_TYPE_USER] ?? 0, '%n person', '%n people');\n push(counts[RECIPIENT_TYPE_GROUP] ?? 0, '%n group', '%n groups');\n push(counts[RECIPIENT_TYPE_TEAM] ?? 0, '%n team', '%n teams');\n push(counts[RECIPIENT_TYPE_EMAIL] ?? 0, '%n email', '%n emails');\n push(counts[RECIPIENT_TYPE_TOKEN] ?? 0, '%n link', '%n links');\n // Fallback for any unknown recipient class not covered above.\n const known = new Set([\n RECIPIENT_TYPE_USER,\n RECIPIENT_TYPE_GROUP,\n RECIPIENT_TYPE_TEAM,\n RECIPIENT_TYPE_EMAIL,\n RECIPIENT_TYPE_TOKEN,\n ]);\n const otherCount = recipients.filter((r) => !known.has(r.class)).length;\n push(otherCount, '%n recipient', '%n recipients');\n return parts.join(t('files_sharing', ', '));\n}\n/**\n * Best-effort \"Reshared with N people\" subtitle: counts recipients that were\n * added by someone other than the share owner (i.e. via a reshare). Returns an\n * empty string when there are none.\n *\n * @param share The share\n */\nexport function reshareSubtitle(share) {\n const reshared = share.recipients.filter((recipient) => recipient.initiator !== null && recipient.initiator.user_id !== share.owner.user_id).length;\n if (reshared === 0) {\n return '';\n }\n return n('files_sharing', 'Reshared with %n person', 'Reshared with %n people', reshared);\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"avatar-stack\"},[_vm._l((_setup.displayed),function(recipient,index){return _c('span',{key:recipient.class + recipient.value,staticClass:\"avatar-stack__item\",style:({ zIndex: _setup.displayed.length - index })},[_c(_setup.NcAvatar,{attrs:{\"size\":32,\"isNoUser\":_setup.isNoUserRecipient(recipient),\"user\":_setup.isNoUserRecipient(recipient) ? undefined : recipient.value,\"displayName\":recipient.display_name,\"disableMenu\":\"\",\"disableTooltip\":\"\"}})],1)}),_vm._v(\" \"),(_setup.overflow > 0)?_c('span',{staticClass:\"avatar-stack__overflow\",attrs:{\"aria-hidden\":true}},[_vm._v(\"\\n\\t\\t+\"+_vm._s(_setup.overflow)+\"\\n\\t\")]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvatarStack.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvatarStack.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvatarStack.vue?vue&type=style&index=0&id=a2664a5e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvatarStack.vue?vue&type=style&index=0&id=a2664a5e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AvatarStack.vue?vue&type=template&id=a2664a5e&scoped=true\"\nimport script from \"./AvatarStack.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AvatarStack.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AvatarStack.vue?vue&type=style&index=0&id=a2664a5e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a2664a5e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ul',{staticClass:\"unified-share\"},[(_setup.isSingle)?_c(_setup.SharingEntrySimple,{attrs:{\"title\":_setup.recipients[0].display_name,\"subtitle\":_setup.recipientPermissionLabel(_vm.share, _setup.recipients[0])},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c(_setup.NcAvatar,{attrs:{\"size\":32,\"isNoUser\":_setup.isNoUserRecipient(_setup.recipients[0]),\"user\":_setup.isNoUserRecipient(_setup.recipients[0]) ? undefined : _setup.recipients[0].value,\"displayName\":_setup.recipients[0].display_name}})]},proxy:true}],null,false,3126075243)},[_vm._v(\" \"),_c(_setup.NcActionButton,{attrs:{\"aria-label\":_setup.t('files_sharing', 'Edit share')},on:{\"click\":_setup.openEditDialog},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.PencilIcon,{attrs:{\"size\":20}})]},proxy:true}],null,false,3660207582)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('files_sharing', 'Edit share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionButton,{attrs:{\"aria-label\":_setup.t('files_sharing', 'Delete share')},on:{\"click\":_setup.confirmDeleteShare},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.DeleteIcon,{attrs:{\"size\":20}})]},proxy:true}],null,false,3396033082)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('files_sharing', 'Delete share'))+\"\\n\\t\\t\")])],1):[_c(_setup.SharingEntrySimple,{attrs:{\"title\":_setup.summaryTitle,\"subtitle\":_setup.reshareLine,\"aria-expanded\":_setup.expanded},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [(!_setup.expanded)?_c(_setup.AvatarStack,{attrs:{\"recipients\":_setup.recipients}}):_vm._e()]},proxy:true},{key:\"action\",fn:function(){return [_c(_setup.NcButton,{attrs:{\"variant\":\"tertiary\",\"aria-label\":_setup.t('files_sharing', 'Toggle recipients'),\"aria-expanded\":_setup.expanded},on:{\"click\":function($event){_setup.expanded = !_setup.expanded}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_setup.expanded)?_c(_setup.ChevronDownIcon,{attrs:{\"size\":20}}):_c(_setup.ChevronRightIcon,{attrs:{\"size\":20}})]},proxy:true}])})]},proxy:true}])},[_vm._v(\" \"),_vm._v(\" \"),_c(_setup.NcActionButton,{attrs:{\"aria-label\":_setup.t('files_sharing', 'Edit share')},on:{\"click\":_setup.openEditDialog},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.PencilIcon,{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('files_sharing', 'Edit share'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionButton,{attrs:{\"aria-label\":_setup.t('files_sharing', 'Delete share')},on:{\"click\":_setup.confirmDeleteShare},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.DeleteIcon,{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('files_sharing', 'Delete share'))+\"\\n\\t\\t\\t\")])],1),_vm._v(\" \"),_vm._l((_setup.recipients),function(recipient){return _c(_setup.SharingEntrySimple,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.expanded),expression:\"expanded\"}],key:recipient.class + recipient.value,staticClass:\"unified-share__recipient\",attrs:{\"title\":recipient.display_name,\"subtitle\":_setup.recipientPermissionLabel(_vm.share, recipient),\"forceMenu\":\"\"},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c(_setup.NcAvatar,{attrs:{\"size\":32,\"isNoUser\":_setup.isNoUserRecipient(recipient),\"user\":_setup.isNoUserRecipient(recipient) ? undefined : recipient.value,\"displayName\":recipient.display_name}})]},proxy:true}],null,true)},[_vm._v(\" \"),_c(_setup.NcActionButton,{attrs:{\"aria-label\":_setup.t('files_sharing', 'Remove recipient')},on:{\"click\":function($event){return _setup.removeOne(recipient)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.DeleteIcon,{attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('files_sharing', 'Remove recipient'))+\"\\n\\t\\t\\t\")])],1)})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { SOURCE_TYPE_NODE } from '../lib/unifiedSharingConstants.ts';\nimport logger from './logger.ts';\nconst PAGE_SIZE = 100;\n/**\n * Whether the node source type is registered on the server. The hardcoded class\n * string must match a capability entry, otherwise listing would silently return\n * nothing.\n */\nfunction isNodeSourceTypeAvailable() {\n const capabilities = getCapabilities();\n return (capabilities.sharing?.source_types ?? []).some((type) => type.class === SOURCE_TYPE_NODE);\n}\n/**\n * Fetch every active share whose source is the given node, from the unified\n * sharing API. Results are paginated by the backend; this walks all pages.\n *\n * @param node The file or folder whose shares to list\n */\nexport async function getSharesForNode(node) {\n if (!isNodeSourceTypeAvailable()) {\n logger.warn('Node source type is not advertised by the sharing capability; cannot list unified shares');\n return [];\n }\n const url = generateOcsUrl('/apps/sharing/api/v1/shares');\n const shares = [];\n let lastShareID;\n // Walk pages until the backend returns a short (final) page.\n for (;;) {\n const response = await axios.get(url, {\n params: {\n filterSourceTypeClass: SOURCE_TYPE_NODE,\n filterSourceTypeValue: String(node.fileid),\n filterState: 'active',\n limit: PAGE_SIZE,\n ...(lastShareID ? { lastShareID } : {}),\n },\n });\n const page = response.data.ocs.data;\n shares.push(...page);\n if (page.length < PAGE_SIZE) {\n break;\n }\n lastShareID = page[page.length - 1].id;\n }\n return shares;\n}\n/**\n * Delete a share by id.\n *\n * @param id The share id\n */\nexport async function deleteShare(id) {\n await axios.delete(generateOcsUrl('/apps/sharing/api/v1/share/{id}', { id }));\n}\n/**\n * Remove a single recipient from a share.\n *\n * @param id The share id\n * @param recipientClass The recipient type class\n * @param recipientValue The recipient value\n * @param instance The recipient's instance (federated recipients)\n */\nexport async function removeRecipient(id, recipientClass, recipientValue, instance) {\n await axios.delete(generateOcsUrl('/apps/sharing/api/v1/share/{id}/recipient', { id }), {\n data: {\n class: recipientClass,\n value: recipientValue,\n instance: instance ?? null,\n },\n });\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedShareEntry.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedShareEntry.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedShareEntry.vue?vue&type=style&index=0&id=34ca7828&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedShareEntry.vue?vue&type=style&index=0&id=34ca7828&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnifiedShareEntry.vue?vue&type=template&id=34ca7828&scoped=true\"\nimport script from \"./UnifiedShareEntry.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UnifiedShareEntry.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UnifiedShareEntry.vue?vue&type=style&index=0&id=34ca7828&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34ca7828\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedShareList.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedShareList.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./UnifiedShareList.vue?vue&type=template&id=66a89e58\"\nimport script from \"./UnifiedShareList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UnifiedShareList.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedShareListSkeleton.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedShareListSkeleton.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ul',{staticClass:\"share-skeleton\",attrs:{\"aria-hidden\":\"true\"}},_vm._l((_vm.count),function(i){return _c('li',{key:i,staticClass:\"share-skeleton__row\"},[_c('span',{staticClass:\"share-skeleton__avatar\"}),_vm._v(\" \"),_vm._m(0,true)])}),0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"share-skeleton__lines\"},[_c('span',{staticClass:\"share-skeleton__line share-skeleton__line--title\"}),_vm._v(\" \"),_c('span',{staticClass:\"share-skeleton__line share-skeleton__line--subtitle\"})])\n}]\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedShareListSkeleton.vue?vue&type=style&index=0&id=79cf9383&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedShareListSkeleton.vue?vue&type=style&index=0&id=79cf9383&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnifiedShareListSkeleton.vue?vue&type=template&id=79cf9383&scoped=true\"\nimport script from \"./UnifiedShareListSkeleton.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UnifiedShareListSkeleton.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UnifiedShareListSkeleton.vue?vue&type=style&index=0&id=79cf9383&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"79cf9383\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTabDetailsView\"},[_c('div',{staticClass:\"sharingTabDetailsView__header\"},[_c('span',[(_vm.isUserShare)?_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.shareType !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":\"left\",\"url\":_vm.share.shareWithAvatar}}):_vm._e(),_vm._v(\" \"),_c(_vm.getShareTypeIcon(_vm.share.type),{tag:\"component\",attrs:{\"size\":32}})],1),_vm._v(\" \"),_c('span',[_c('h1',[_vm._v(_vm._s(_vm.title))])])]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__wrapper\"},[_c('div',{ref:\"quickPermissions\",staticClass:\"sharingTabDetailsView__quick-permissions\"},[_c('div',[_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"read-only\",\"value\":_vm.bundledPermissions.READ_ONLY.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ViewIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'View only'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"upload-edit\",\"value\":_vm.allPermissions,\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('EditIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[(_vm.allowsFileDrop)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow upload and editing'))+\"\\n\\t\\t\\t\\t\\t\")]:[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow editing'))+\"\\n\\t\\t\\t\\t\\t\")]],2),_vm._v(\" \"),(_vm.allowsFileDrop)?_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-sharing-share-permissions-bundle\":\"file-drop\",\"button-variant\":true,\"value\":_vm.bundledPermissions.FILE_DROP.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.toggleCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('UploadIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1083194048),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'File request'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.t('files_sharing', 'Upload only')))])]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"button-variant\":true,\"data-cy-files-sharing-share-permissions-bundle\":\"custom\",\"value\":\"custom\",\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:modelValue\":_vm.expandCustomPermissions},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}]),model:{value:(_vm.sharingPermission),callback:function ($$v) {_vm.sharingPermission=$$v},expression:\"sharingPermission\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"subline\"},[_vm._v(_vm._s(_vm.customPermissionsList))])])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__advanced-control\"},[_c('NcButton',{attrs:{\"id\":\"advancedSectionAccordionAdvancedControl\",\"variant\":\"tertiary\",\"alignment\":\"end-reverse\",\"aria-controls\":\"advancedSectionAccordionAdvanced\",\"aria-expanded\":_vm.advancedControlExpandedValue},on:{\"click\":function($event){_vm.advancedSectionAccordionExpanded = !_vm.advancedSectionAccordionExpanded}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!_vm.advancedSectionAccordionExpanded)?_c('MenuDownIcon'):_c('MenuUpIcon')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Advanced settings'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),(_vm.advancedSectionAccordionExpanded)?_c('div',{staticClass:\"sharingTabDetailsView__advanced\",attrs:{\"id\":\"advancedSectionAccordionAdvanced\",\"aria-labelledby\":\"advancedSectionAccordionAdvancedControl\",\"role\":\"region\"}},[_c('section',[(_vm.isPublicShare)?_c('NcInputField',{staticClass:\"sharingTabDetailsView__label\",attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share label')},model:{value:(_vm.share.label),callback:function ($$v) {_vm.$set(_vm.share, \"label\", $$v)},expression:\"share.label\"}}):_vm._e(),_vm._v(\" \"),(_vm.config.allowCustomTokens && _vm.isPublicShare && !_vm.isNewShare)?_c('NcInputField',{attrs:{\"autocomplete\":\"off\",\"label\":_vm.t('files_sharing', 'Share link token'),\"helper-text\":_vm.t('files_sharing', 'Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information.'),\"show-trailing-button\":\"\",\"trailing-button-label\":_vm.loadingToken ? _vm.t('files_sharing', 'Generating…') : _vm.t('files_sharing', 'Generate new token')},on:{\"trailing-button-click\":_vm.generateNewToken},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [(_vm.loadingToken)?_c('NcLoadingIcon'):_c('Refresh',{attrs:{\"size\":20}})]},proxy:true}],null,false,4228062821),model:{value:(_vm.share.token),callback:function ($$v) {_vm.$set(_vm.share, \"token\", $$v)},expression:\"share.token\"}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.isPasswordEnforced},model:{value:(_vm.isPasswordProtected),callback:function ($$v) {_vm.isPasswordProtected=$$v},expression:\"isPasswordProtected\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Set password'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isPasswordProtected)?_c('NcPasswordField',{attrs:{\"autocomplete\":\"new-password\",\"model-value\":_vm.share.newPassword ?? '',\"error\":_vm.passwordError,\"helper-text\":_vm.errorPasswordLabel || _vm.passwordHint,\"required\":_vm.isPasswordEnforced && _vm.isNewShare,\"label\":_vm.t('files_sharing', 'Password')},on:{\"update:value\":_vm.onPasswordChange}}):_vm._e(),_vm._v(\" \"),(_vm.isEmailShareType && _vm.passwordExpirationTime)?_c('span',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime: _vm.passwordExpirationTime }))+\"\\n\\t\\t\\t\\t\\t\")]):(_vm.isEmailShareType && _vm.passwordExpirationTime !== null)?_c('span',{attrs:{\"icon\":\"icon-error\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Password expired'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.canTogglePasswordProtectedByTalkAvailable)?_c('NcCheckboxRadioSwitch',{model:{value:(_vm.isPasswordProtectedByTalk),callback:function ($$v) {_vm.isPasswordProtectedByTalk=$$v},expression:\"isPasswordProtectedByTalk\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Video verification'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.isExpiryDateEnforced},model:{value:(_vm.hasExpirationDate),callback:function ($$v) {_vm.hasExpirationDate=$$v},expression:\"hasExpirationDate\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.isExpiryDateEnforced\n\t\t\t\t\t\t? _vm.t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t: _vm.t('files_sharing', 'Set expiration date'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.hasExpirationDate)?_c('NcDateTimePickerNative',{attrs:{\"id\":\"share-date-picker\",\"model-value\":new Date(_vm.share.expireDate ?? _vm.dateTomorrow),\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced,\"hide-label\":\"\",\"label\":_vm.t('files_sharing', 'Expiration date'),\"placeholder\":_vm.t('files_sharing', 'Expiration date'),\"type\":\"date\"},on:{\"input\":_vm.onExpirationChange}}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":_vm.canChangeHideDownload},model:{value:(_vm.share.hideDownload),callback:function ($$v) {_vm.$set(_vm.share, \"hideDownload\", $$v)},expression:\"share.hideDownload\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Hide download'))+\"\\n\\t\\t\\t\\t\")]):_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDownload,\"data-cy-files-sharing-share-permissions-checkbox\":\"download\"},model:{value:(_vm.canDownload),callback:function ($$v) {_vm.canDownload=$$v},expression:\"canDownload\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Allow download and sync'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{model:{value:(_vm.writeNoteToRecipientIsChecked),callback:function ($$v) {_vm.writeNoteToRecipientIsChecked=$$v},expression:\"writeNoteToRecipientIsChecked\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Note to recipient'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.writeNoteToRecipientIsChecked)?[_c('NcTextArea',{attrs:{\"label\":_vm.t('files_sharing', 'Note to recipient'),\"placeholder\":_vm.t('files_sharing', 'Enter a note for the share recipient')},model:{value:(_vm.share.note),callback:function ($$v) {_vm.$set(_vm.share, \"note\", $$v)},expression:\"share.note\"}})]:_vm._e(),_vm._v(\" \"),(_vm.isPublicShare && _vm.isFolder)?_c('NcCheckboxRadioSwitch',{model:{value:(_vm.showInGridView),callback:function ($$v) {_vm.showInGridView=$$v},expression:\"showInGridView\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Show files in grid view'))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.sortedExternalShareActions),function(action){return _c('SidebarTabExternalAction',{key:action.id,ref:\"externalShareActions\",refInFor:true,attrs:{\"action\":action,\"node\":_vm.fileInfo.node /* TODO: Fix once we have proper Node API */,\"share\":_vm.share}})}),_vm._v(\" \"),_vm._l((_vm.externalLegacyShareActions),function(action){return _c('SidebarTabExternalActionLegacy',{key:action.id,ref:\"externalLinkActions\",refInFor:true,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{model:{value:(_vm.setCustomPermissions),callback:function ($$v) {_vm.setCustomPermissions=$$v},expression:\"setCustomPermissions\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Custom permissions'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.setCustomPermissions)?_c('section',{staticClass:\"custom-permissions-group\"},[_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canRemoveReadPermission,\"data-cy-files-sharing-share-permissions-checkbox\":\"read\"},model:{value:(_vm.hasRead),callback:function ($$v) {_vm.hasRead=$$v},expression:\"hasRead\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Read'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.isFolder)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetCreate,\"data-cy-files-sharing-share-permissions-checkbox\":\"create\"},model:{value:(_vm.canCreate),callback:function ($$v) {_vm.canCreate=$$v},expression:\"canCreate\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetEdit,\"data-cy-files-sharing-share-permissions-checkbox\":\"update\"},model:{value:(_vm.canEdit),callback:function ($$v) {_vm.canEdit=$$v},expression:\"canEdit\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Edit'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.resharingIsPossible)?_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetReshare,\"data-cy-files-sharing-share-permissions-checkbox\":\"share\"},model:{value:(_vm.canReshare),callback:function ($$v) {_vm.canReshare=$$v},expression:\"canReshare\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"disabled\":!_vm.canSetDelete,\"data-cy-files-sharing-share-permissions-checkbox\":\"delete\"},model:{value:(_vm.canDelete),callback:function ($$v) {_vm.canDelete=$$v},expression:\"canDelete\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete'))+\"\\n\\t\\t\\t\\t\\t\")])],1):_vm._e()],2)]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__footer\"},[_c('div',{staticClass:\"button-group\"},[_c('NcButton',{attrs:{\"data-cy-files-sharing-share-editor-action\":\"cancel\"},on:{\"click\":_vm.cancel}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__delete\"},[(!_vm.isNewShare)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Delete share'),\"disabled\":false,\"readonly\":false,\"variant\":\"tertiary\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete share'))+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\",\"data-cy-files-sharing-share-editor-action\":\"save\",\"disabled\":_vm.creating},on:{\"click\":_vm.saveShare},scopedSlots:_vm._u([(_vm.creating)?{key:\"icon\",fn:function(){return [_c('NcLoadingIcon')]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.shareButtonText)+\"\\n\\t\\t\\t\\t\")])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountCircleOutline.vue?vue&type=template&id=5b2fe1de\"\nimport script from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./AccountGroup.vue?vue&type=template&id=fa2b1464\"\nimport script from \"./AccountGroup.vue?vue&type=script&lang=js\"\nexport * from \"./AccountGroup.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-group-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,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 staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./CircleOutline.vue?vue&type=template&id=c013567c\"\nimport script from \"./CircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon circle-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=7dd7f6aa\"\nimport script from \"./Email.vue?vue&type=script&lang=js\"\nexport * from \"./Email.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon email-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Eye.vue?vue&type=template&id=4ae2345c\"\nimport script from \"./Eye.vue?vue&type=script&lang=js\"\nexport * from \"./Eye.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Refresh.vue?vue&type=template&id=2864f909\"\nimport script from \"./Refresh.vue?vue&type=script&lang=js\"\nexport * from \"./Refresh.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon refresh-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ShareCircle.vue?vue&type=template&id=0e958886\"\nimport script from \"./ShareCircle.vue?vue&type=script&lang=js\"\nexport * from \"./ShareCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon share-circle-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowUp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowUp.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./TrayArrowUp.vue?vue&type=template&id=ae55bf4e\"\nimport script from \"./TrayArrowUp.vue?vue&type=script&lang=js\"\nexport * from \"./TrayArrowUp.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tray-arrow-up-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.action.element,{key:_vm.action.id,ref:\"actionElement\",tag:\"component\",domProps:{\"share\":_vm.share,\"node\":_vm.node,\"onSave\":_setup.onSave}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SidebarTabExternalAction.vue?vue&type=template&id=5ea2e6c7\"\nimport script from \"./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarTabExternalAction.vue?vue&type=script&lang=ts&setup=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./SidebarTabExternalActionLegacy.vue?vue&type=template&id=50e2cb04\"\nimport script from \"./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"\nexport * from \"./SidebarTabExternalActionLegacy.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.data.is,_vm._g(_vm._b({tag:\"component\"},'component',_vm.data,false),_vm.action.handlers),[_vm._v(\"\\n\\t\"+_vm._s(_vm.data.text)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\n/**\n * Fetches a node from the given path\n *\n * @param path - The path to fetch the node from\n */\nexport async function fetchNode(path) {\n const propfindPayload = getDefaultPropfind();\n const result = await client.stat(`${getRootPath()}${path}`, {\n details: true,\n data: propfindPayload,\n });\n return resultToNode(result.data);\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport Config from '../services/ConfigService.ts';\nimport logger from '../services/logger.ts';\nconst config = new Config();\n// note: some chars removed on purpose to make them human friendly when read out\nconst passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789';\n/**\n * Generate a valid policy password or request a valid password if password_policy is enabled\n *\n * @param verbose If enabled the the status is shown to the user via toast\n */\nexport default async function (verbose = false) {\n // password policy is enabled, let's request a pass\n if (config.passwordPolicy.api && config.passwordPolicy.api.generate) {\n try {\n const request = await axios.get(config.passwordPolicy.api.generate, {\n params: { context: 'sharing' },\n });\n if (request.data.ocs.data.password) {\n if (verbose) {\n showSuccess(t('files_sharing', 'Password created successfully'));\n }\n return request.data.ocs.data.password;\n }\n }\n catch (error) {\n logger.info('Error generating password from password_policy', { error });\n if (verbose) {\n showError(t('files_sharing', 'Error generating password from password policy'));\n }\n }\n }\n const array = new Uint8Array(10);\n const ratio = passwordSet.length / 255;\n getRandomValues(array);\n let password = '';\n for (let i = 0; i < array.length; i++) {\n password += passwordSet.charAt(array[i] * ratio);\n }\n return password;\n}\n/**\n * Fills the given array with cryptographically secure random values.\n * If the crypto API is not available, it falls back to less secure Math.random().\n * Crypto API is available in modern browsers on secure contexts (HTTPS).\n *\n * @param array - The array to fill with random values.\n */\nfunction getRandomValues(array) {\n if (self?.crypto?.getRandomValues) {\n self.crypto.getRandomValues(array);\n return;\n }\n let len = array.length;\n while (len--) {\n array[len] = Math.floor(Math.random() * 256);\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport { ShareType } from '@nextcloud/sharing'\nimport debounce from 'debounce'\nimport PQueue from 'p-queue'\nimport { fetchNode } from '../../../files/src/services/WebdavClient.ts'\nimport { matchBundledPermissions } from '../lib/SharePermissionsToolBox.js'\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport SharesRequests from './ShareRequests.js'\n\nexport default {\n\tmixins: [SharesRequests],\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { },\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tnode: null,\n\t\t\tShareType,\n\n\t\t\t// errors helpers\n\t\t\terrors: {},\n\n\t\t\t// component status toggles\n\t\t\tloading: false,\n\t\t\tsaving: false,\n\t\t\topen: false,\n\n\t\t\t/** @type {boolean | undefined} */\n\t\t\tpasswordProtectedState: undefined,\n\n\t\t\t// concurrency management queue\n\t\t\t// we want one queue per share\n\t\t\tupdateQueue: new PQueue({ concurrency: 1 }),\n\n\t\t\t/**\n\t\t\t * ! This allow vue to make the Share class state reactive\n\t\t\t * ! do not remove it ot you'll lose all reactivity here\n\t\t\t */\n\t\t\treactiveState: this.share?.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpath() {\n\t\t\treturn (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t},\n\t\t/**\n\t\t * Does the current share have a note\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasNote: {\n\t\t\tget() {\n\t\t\t\treturn this.share.note !== ''\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.note = enabled\n\t\t\t\t\t? null // enabled but user did not changed the content yet\n\t\t\t\t\t: '' // empty = no note = disabled\n\t\t\t},\n\t\t},\n\n\t\tdateTomorrow() {\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\n\t\t// Datepicker language\n\t\tlang() {\n\t\t\tconst weekdaysShort = window.dayNamesShort\n\t\t\t\t? window.dayNamesShort // provided by Nextcloud\n\t\t\t\t: ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']\n\t\t\tconst monthsShort = window.monthNamesShort\n\t\t\t\t? window.monthNamesShort // provided by Nextcloud\n\t\t\t\t: ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']\n\t\t\tconst firstDayOfWeek = window.firstDay ? window.firstDay : 0\n\n\t\t\treturn {\n\t\t\t\tformatLocale: {\n\t\t\t\t\tfirstDayOfWeek,\n\t\t\t\t\tmonthsShort,\n\t\t\t\t\tweekdaysMin: weekdaysShort,\n\t\t\t\t\tweekdaysShort,\n\t\t\t\t},\n\t\t\t\tmonthFormat: 'MMM',\n\t\t\t}\n\t\t},\n\t\tisNewShare() {\n\t\t\treturn !this.share.id\n\t\t},\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\tisPublicShare() {\n\t\t\tconst shareType = this.share.shareType ?? this.share.type\n\t\t\treturn [ShareType.Link, ShareType.Email].includes(shareType)\n\t\t},\n\t\tisRemoteShare() {\n\t\t\treturn this.share.type === ShareType.RemoteGroup || this.share.type === ShareType.Remote\n\t\t},\n\t\tisShareOwner() {\n\t\t\treturn this.share && this.share.owner === getCurrentUser().uid\n\t\t},\n\t\tisExpiryDateEnforced() {\n\t\t\tif (this.isPublicShare) {\n\t\t\t\treturn this.config.isDefaultExpireDateEnforced\n\t\t\t}\n\t\t\tif (this.isRemoteShare) {\n\t\t\t\treturn this.config.isDefaultRemoteExpireDateEnforced\n\t\t\t}\n\t\t\treturn this.config.isDefaultInternalExpireDateEnforced\n\t\t},\n\t\tpermissionsBundle() {\n\t\t\treturn matchBundledPermissions(this.share.permissions, {\n\t\t\t\tisPublicShare: this.isPublicShare,\n\t\t\t\texcludeReshareFromEdit: this.config.excludeReshareFromEdit,\n\t\t\t})\n\t\t},\n\t\thasCustomPermissions() {\n\t\t\treturn this.permissionsBundle === null\n\t\t},\n\t\tmaxExpirationDateEnforced() {\n\t\t\tif (this.isExpiryDateEnforced) {\n\t\t\t\tif (this.isPublicShare) {\n\t\t\t\t\treturn this.config.defaultExpirationDate\n\t\t\t\t}\n\t\t\t\tif (this.isRemoteShare) {\n\t\t\t\t\treturn this.config.defaultRemoteExpirationDateString\n\t\t\t\t}\n\t\t\t\t// If it get's here then it must be an internal share\n\t\t\t\treturn this.config.defaultInternalExpirationDate\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtected: {\n\t\t\tget() {\n\t\t\t\tif (this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tif (this.passwordProtectedState !== undefined) {\n\t\t\t\t\treturn this.passwordProtectedState\n\t\t\t\t}\n\t\t\t\treturn typeof this.share.newPassword === 'string'\n\t\t\t\t\t|| typeof this.share.password === 'string'\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.passwordProtectedState = true\n\t\t\t\t\tconst generatedPassword = await GeneratePassword(true)\n\t\t\t\t\tif (!this.share.newPassword) {\n\t\t\t\t\t\tthis.$set(this.share, 'newPassword', generatedPassword)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.passwordProtectedState = false\n\t\t\t\t\tthis.$set(this.share, 'newPassword', '')\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Fetch WebDAV node\n\t\t *\n\t\t * @return {Node}\n\t\t */\n\t\tasync getNode() {\n\t\t\tconst node = { path: this.path }\n\t\t\ttry {\n\t\t\t\tthis.node = await fetchNode(node.path)\n\t\t\t\tlogger.info('Fetched node:', { node: this.node })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error:', error)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if a share is valid before\n\t\t * firing the request\n\t\t *\n\t\t * @param {Share} share the share to check\n\t\t * @return {boolean}\n\t\t */\n\t\tcheckShare(share) {\n\t\t\tif (share.password) {\n\t\t\t\tif (typeof share.password !== 'string' || share.password.trim() === '') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.newPassword) {\n\t\t\t\tif (typeof share.newPassword !== 'string') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (share.expirationDate) {\n\t\t\t\tconst date = share.expirationDate\n\t\t\t\tif (!date.isValid()) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * @param {Date} date the date to format\n\t\t * @return {string} date a date with YYYY-MM-DD format\n\t\t */\n\t\tformatDateToString(date) {\n\t\t\t// Force utc time. Drop time information to be timezone-less\n\t\t\tconst utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n\t\t\t// Format to YYYY-MM-DD\n\t\t\treturn utcDate.toISOString().split('T')[0]\n\t\t},\n\n\t\t/**\n\t\t * Save given value to expireDate and trigger queueUpdate\n\t\t *\n\t\t * @param {Date} date\n\t\t */\n\t\tonExpirationChange(date) {\n\t\t\tif (!date) {\n\t\t\t\tthis.share.expireDate = null\n\t\t\t\tthis.$set(this.share, 'expireDate', null)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst parsedDate = (date instanceof Date) ? date : new Date(date)\n\t\t\tthis.share.expireDate = this.formatDateToString(parsedDate)\n\t\t},\n\n\t\t/**\n\t\t * Delete share button handler\n\t\t */\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.open = false\n\t\t\t\tawait this.deleteShare(this.share.id)\n\t\t\t\tlogger.debug('Share deleted', { shareId: this.share.id })\n\t\t\t\tconst path = this.share.path.replace(/^\\//, '')\n\t\t\t\tconst message = this.share.itemType === 'file'\n\t\t\t\t\t? t('files_sharing', 'File \"{path}\" has been unshared', { path })\n\t\t\t\t\t: t('files_sharing', 'Folder \"{path}\" has been unshared', { path })\n\t\t\t\tshowSuccess(message)\n\t\t\t\tthis.$emit('remove:share', this.share)\n\t\t\t\tawait this.getNode()\n\t\t\t\temit('files:node:updated', this.node)\n\t\t\t} catch {\n\t\t\t\t// re-open menu if error\n\t\t\t\tthis.open = true\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Send an update of the share to the queue\n\t\t *\n\t\t * @param {Array} propertyNames the properties to sync\n\t\t */\n\t\tqueueUpdate(...propertyNames) {\n\t\t\tif (propertyNames.length === 0) {\n\t\t\t\t// Nothing to update\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.share.id) {\n\t\t\t\tconst properties = {}\n\t\t\t\t// force value to string because that is what our\n\t\t\t\t// share api controller accepts\n\t\t\t\tfor (const name of propertyNames) {\n\t\t\t\t\tif (name === 'password') {\n\t\t\t\t\t\tif (this.share.newPassword !== undefined) {\n\t\t\t\t\t\t\tproperties[name] = this.share.newPassword\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.share[name] === null || this.share[name] === undefined) {\n\t\t\t\t\t\tproperties[name] = ''\n\t\t\t\t\t} else if ((typeof this.share[name]) === 'object') {\n\t\t\t\t\t\tproperties[name] = JSON.stringify(this.share[name])\n\t\t\t\t\t} else {\n\t\t\t\t\t\tproperties[name] = this.share[name].toString()\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn this.updateQueue.add(async () => {\n\t\t\t\t\tthis.saving = true\n\t\t\t\t\tthis.errors = {}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst updatedShare = await this.updateShare(this.share.id, properties)\n\n\t\t\t\t\t\tif (propertyNames.includes('password')) {\n\t\t\t\t\t\t\t// reset password state after sync\n\t\t\t\t\t\t\tthis.share.password = this.share.newPassword || undefined\n\t\t\t\t\t\t\tthis.$set(this.share, 'newPassword', undefined)\n\n\t\t\t\t\t\t\t// updates password expiration time after sync\n\t\t\t\t\t\t\tthis.share.passwordExpirationTime = updatedShare.password_expiration_time\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// clear any previous errors\n\t\t\t\t\t\tfor (const property of propertyNames) {\n\t\t\t\t\t\t\tthis.$delete(this.errors, property)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowSuccess(this.updateSuccessMessage(propertyNames))\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tlogger.error('Could not update share', { error, share: this.share, propertyNames })\n\n\t\t\t\t\t\tconst { message } = error\n\t\t\t\t\t\tif (message && message !== '') {\n\t\t\t\t\t\t\tfor (const property of propertyNames) {\n\t\t\t\t\t\t\t\tthis.onSyncError(property, message)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshowError(message)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// We do not have information what happened, but we should still inform the user\n\t\t\t\t\t\t\tshowError(t('files_sharing', 'Could not update share'))\n\t\t\t\t\t\t}\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.saving = false\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// This share does not exists on the server yet\n\t\t\tlogger.debug('Updated local share', { share: this.share })\n\t\t},\n\n\t\t/**\n\t\t * @param {string[]} names Properties changed\n\t\t */\n\t\tupdateSuccessMessage(names) {\n\t\t\tif (names.length !== 1) {\n\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\n\t\t\tswitch (names[0]) {\n\t\t\t\tcase 'expireDate':\n\t\t\t\t\treturn t('files_sharing', 'Share expiry date saved')\n\t\t\t\tcase 'hideDownload':\n\t\t\t\t\treturn t('files_sharing', 'Share hide-download state saved')\n\t\t\t\tcase 'label':\n\t\t\t\t\treturn t('files_sharing', 'Share label saved')\n\t\t\t\tcase 'note':\n\t\t\t\t\treturn t('files_sharing', 'Share note for recipient saved')\n\t\t\t\tcase 'password':\n\t\t\t\t\treturn t('files_sharing', 'Share password saved')\n\t\t\t\tcase 'permissions':\n\t\t\t\t\treturn t('files_sharing', 'Share permissions saved')\n\t\t\t\tdefault:\n\t\t\t\t\treturn t('files_sharing', 'Share saved')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Manage sync errors\n\t\t *\n\t\t * @param {string} property the errored property, e.g. 'password'\n\t\t * @param {string} message the error message\n\t\t */\n\t\tonSyncError(property, message) {\n\t\t\tif (property === 'password' && this.share.newPassword !== undefined) {\n\t\t\t\tif (this.share.newPassword === this.share.password) {\n\t\t\t\t\tthis.share.password = ''\n\t\t\t\t}\n\t\t\t\tthis.$set(this.share, 'newPassword', undefined)\n\t\t\t}\n\n\t\t\t// re-open menu if closed\n\t\t\tthis.open = true\n\t\t\tswitch (property) {\n\t\t\t\tcase 'password':\n\t\t\t\tcase 'pending':\n\t\t\t\tcase 'expireDate':\n\t\t\t\tcase 'label':\n\t\t\t\tcase 'note': {\n\t\t\t\t// show error\n\t\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t\tlet propertyEl = this.$refs[property]\n\t\t\t\t\tif (propertyEl) {\n\t\t\t\t\t\tif (propertyEl.$el) {\n\t\t\t\t\t\t\tpropertyEl = propertyEl.$el\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// focus if there is a focusable action element\n\t\t\t\t\t\tconst focusable = propertyEl.querySelector('.focusable')\n\t\t\t\t\t\tif (focusable) {\n\t\t\t\t\t\t\tfocusable.focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tcase 'sendPasswordByTalk': {\n\t\t\t\t// show error\n\t\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t\t// Restore previous state\n\t\t\t\t\tthis.share.sendPasswordByTalk = !this.share.sendPasswordByTalk\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Debounce queueUpdate to avoid requests spamming\n\t\t * more importantly for text data\n\t\t *\n\t\t * @param {string} property the property to sync\n\t\t */\n\t\tdebounceQueueUpdate: debounce(function(property) {\n\t\t\tthis.queueUpdate(property)\n\t\t}, 500),\n\t},\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","import isSvg from \"is-svg\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction registerSidebarAction(action) {\n if (!action.id) {\n throw new Error(\"Sidebar actions must have an id\");\n }\n if (!action.element || !action.element.startsWith(\"oca_\") || !window.customElements.get(action.element)) {\n throw new Error(\"Sidebar actions must provide a registered custom web component identifier\");\n }\n if (typeof action.order !== \"number\") {\n throw new Error(\"Sidebar actions must have the order property\");\n }\n if (typeof action.enabled !== \"function\") {\n throw new Error('Sidebar actions must implement the \"enabled\" method');\n }\n window._nc_files_sharing_sidebar_actions ??= /* @__PURE__ */ new Map();\n if (window._nc_files_sharing_sidebar_actions.has(action.id)) {\n throw new Error(`Sidebar action with id \"${action.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_actions.set(action.id, action);\n}\nfunction registerSidebarInlineAction(action) {\n if (!action.id) {\n throw new Error(\"Sidebar actions must have an id\");\n }\n if (typeof action.order !== \"number\") {\n throw new Error('Sidebar actions must have the \"order\" property');\n }\n if (typeof action.iconSvg !== \"string\" || !isSvg(action.iconSvg)) {\n throw new Error('Sidebar actions must have the \"iconSvg\" property');\n }\n if (typeof action.label !== \"function\") {\n throw new Error('Sidebar actions must implement the \"label\" method');\n }\n if (typeof action.exec !== \"function\") {\n throw new Error('Sidebar actions must implement the \"exec\" method');\n }\n if (typeof action.enabled !== \"function\") {\n throw new Error('Sidebar actions must implement the \"enabled\" method');\n }\n window._nc_files_sharing_sidebar_inline_actions ??= /* @__PURE__ */ new Map();\n if (window._nc_files_sharing_sidebar_inline_actions.has(action.id)) {\n throw new Error(`Sidebar action with id \"${action.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_inline_actions.set(action.id, action);\n}\nfunction getSidebarActions() {\n return [...window._nc_files_sharing_sidebar_actions?.values() ?? []];\n}\nfunction getSidebarInlineActions() {\n return [...window._nc_files_sharing_sidebar_inline_actions?.values() ?? []];\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction registerSidebarSection(section) {\n if (!section.id) {\n throw new Error(\"Sidebar sections must have an id\");\n }\n if (!section.element || !section.element.startsWith(\"oca_\") || !window.customElements.get(section.element)) {\n throw new Error(\"Sidebar sections must provide a registered custom web component identifier\");\n }\n if (typeof section.order !== \"number\") {\n throw new Error(\"Sidebar sections must have the order property\");\n }\n if (typeof section.enabled !== \"function\") {\n throw new Error(\"Sidebar sections must implement the enabled method\");\n }\n window._nc_files_sharing_sidebar_sections ??= /* @__PURE__ */ new Map();\n if (window._nc_files_sharing_sidebar_sections.has(section.id)) {\n throw new Error(`Sidebar section with id \"${section.id}\" is already registered`);\n }\n window._nc_files_sharing_sidebar_sections.set(section.id, section);\n}\nfunction getSidebarSections() {\n return [...window._nc_files_sharing_sidebar_sections?.values() ?? []];\n}\nexport {\n getSidebarActions,\n getSidebarInlineActions,\n getSidebarSections,\n registerSidebarAction,\n registerSidebarInlineAction,\n registerSidebarSection\n};\n//# sourceMappingURL=ui.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\n/**\n *\n */\nexport async function generateToken() {\n const { data } = await axios.get(generateOcsUrl('/apps/files_sharing/api/v1/token'));\n return data.ocs.data.token;\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=1e0a769c&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=1e0a769c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingDetailsTab.vue?vue&type=template&id=1e0a769c&scoped=true\"\nimport script from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingDetailsTab.vue?vue&type=style&index=0&id=1e0a769c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1e0a769c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{attrs:{\"id\":\"sharing-inherited-shares\"}},[_c('SharingEntrySimple',{staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.mainTitle,\"subtitle\":_vm.subTitle,\"aria-expanded\":_vm.showInheritedShares},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('div',{staticClass:\"avatar-shared icon-more-white\"})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":_vm.showInheritedSharesIcon,\"aria-label\":_vm.toggleTooltip,\"title\":_vm.toggleTooltip},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleInheritedShares.apply(null, arguments)}}})],1),_vm._v(\" \"),_vm._l((_vm.shares),function(share){return _c('SharingEntryInherited',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share},on:{\"remove:share\":_vm.removeShare}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryInherited.vue?vue&type=template&id=731a9650&scoped=true\"\nimport script from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInherited.vue?vue&type=style&index=0&id=731a9650&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"731a9650\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SharingEntrySimple',{key:_vm.share.id,staticClass:\"sharing-entry__inherited\",attrs:{\"title\":_vm.share.shareWithDisplayName},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName}})]},proxy:true}])},[_vm._v(\" \"),_c('NcActionText',{attrs:{\"icon\":\"icon-user\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Added by {initiator}', { initiator: _vm.share.ownerDisplayName }))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.share.viaPath && _vm.share.viaFileid)?_c('NcActionLink',{attrs:{\"icon\":\"icon-folder\",\"href\":_vm.viaFileTargetUrl}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Via “{folder}”', { folder: _vm.viaFolderName }))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"icon\":\"icon-close\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInherited.vue?vue&type=template&id=cedf3238&scoped=true\"\nimport script from \"./SharingInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInherited.vue?vue&type=style&index=0&id=cedf3238&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cedf3238\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.canLinkShare)?_c('ul',{staticClass:\"sharing-link-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Link shares')}},[(_vm.hasShares)?_vm._l((_vm.shares),function(share,index){return _c('SharingEntryLink',{key:share.id,attrs:{\"index\":_vm.shares.length > 1 ? index + 1 : null,\"can-reshare\":_vm.canReshare,\"share\":_vm.shares[index],\"file-info\":_vm.fileInfo},on:{\"update:share\":[function($event){return _vm.$set(_vm.shares, index, $event)},function($event){return _vm.awaitForShare(...arguments)}],\"add:share\":function($event){return _vm.addShare(...arguments)},\"remove:share\":_vm.removeShare,\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}):_vm._e(),_vm._v(\" \"),(!_vm.hasLinkShares && _vm.canReshare)?_c('SharingEntryLink',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo},on:{\"add:share\":_vm.addShare}}):_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlankOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarBlankOutline.vue?vue&type=template&id=784b59e6\"\nimport script from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarBlankOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-blank-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19 3H18V1H16V3H8V1H6V3H5C3.89 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H19C20.11 21 21 20.11 21 19V5C21 3.9 20.11 3 19 3M19 19H5V9H19V19M19 7H5V5H19V7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./CheckBold.vue?vue&type=template&id=5603f41f\"\nimport script from \"./CheckBold.vue?vue&type=script&lang=js\"\nexport * from \"./CheckBold.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon check-bold-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Exclamation.vue?vue&type=template&id=03239926\"\nimport script from \"./Exclamation.vue?vue&type=script&lang=js\"\nexport * from \"./Exclamation.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon exclamation-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./LockOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./LockOutline.vue?vue&type=template&id=54353a96\"\nimport script from \"./LockOutline.vue?vue&type=script&lang=js\"\nexport * from \"./LockOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon lock-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,17C10.89,17 10,16.1 10,15C10,13.89 10.89,13 12,13A2,2 0 0,1 14,15A2,2 0 0,1 12,17M18,20V10H6V20H18M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10C4,8.89 4.89,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 staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Qrcode.vue?vue&type=template&id=aba87788\"\nimport script from \"./Qrcode.vue?vue&type=script&lang=js\"\nexport * from \"./Qrcode.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon qrcode-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Tune.vue?vue&type=template&id=18d04e6a\"\nimport script from \"./Tune.vue?vue&type=script&lang=js\"\nexport * from \"./Tune.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tune-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"share-expiry-time\"},[_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [(_vm.expiryTime)?_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary\",\"aria-label\":_vm.t('files_sharing', 'Share expiration: {date}', { date: new Date(_vm.expiryTime).toLocaleString() })},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ClockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3754271979)}):_vm._e()]},proxy:true}])},[_vm._v(\" \"),_c('h3',{staticClass:\"hint-heading\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share Expiration'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.expiryTime)?_c('p',{staticClass:\"hint-body\"},[_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime,\"format\":_vm.timeFormat,\"relative-time\":false}}),_vm._v(\" (\"),_c('NcDateTime',{attrs:{\"timestamp\":_vm.expiryTime}}),_vm._v(\")\\n\\t\\t\")],1):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClockOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClockOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ClockOutline.vue?vue&type=template&id=1a84e403\"\nimport script from \"./ClockOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ClockOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon clock-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ShareExpiryTime.vue?vue&type=template&id=c9199db0&scoped=true\"\nimport script from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nexport * from \"./ShareExpiryTime.vue?vue&type=script&lang=js\"\nimport style0 from \"./ShareExpiryTime.vue?vue&type=style&index=0&id=c9199db0&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c9199db0\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./EyeOutline.vue?vue&type=template&id=e26de6f6\"\nimport script from \"./EyeOutline.vue?vue&type=script&lang=js\"\nexport * from \"./EyeOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon eye-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"","\n\n","\n\n\n\n\n\n","import { render, staticRenderFns } from \"./TriangleSmallDown.vue?vue&type=template&id=1eed3dd9\"\nimport script from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\nexport * from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon triangle-small-down-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M8 9H16L12 16\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=839566a2&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=839566a2&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryQuickShareSelect.vue?vue&type=template&id=839566a2&scoped=true\"\nimport script from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=839566a2&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"839566a2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcActions',{ref:\"quickShareActions\",staticClass:\"share-select\",attrs:{\"menu-name\":_vm.selectedOption,\"aria-label\":_vm.ariaLabel,\"variant\":\"tertiary-no-background\",\"disabled\":!_vm.share.canEdit,\"force-name\":\"\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DropdownIcon',{attrs:{\"size\":15}})]},proxy:true}])},[_vm._v(\" \"),_vm._l((_vm.options),function(option){return _c('NcActionButton',{key:option.label,attrs:{\"type\":\"radio\",\"model-value\":option.label === _vm.selectedOption,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.selectOption(option.label)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(option.icon,{tag:\"component\"})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(option.label)+\"\\n\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=11cd6c4c&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=11cd6c4c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntryLink.vue?vue&type=template&id=11cd6c4c&scoped=true\"\nimport script from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryLink.vue?vue&type=style&index=0&id=11cd6c4c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11cd6c4c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry sharing-entry__link\",class:{ 'sharing-entry--share': _vm.share }},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":true,\"icon-class\":_vm.isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c('div',{staticClass:\"sharing-entry__desc\"},[_c('span',{staticClass:\"sharing-entry__title\",attrs:{\"title\":_vm.title}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(_vm.subtitle)?_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.subtitle)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share && _vm.share.permissions !== undefined && !_vm.config.sharingDialogEnabled)?_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__actions\"},[(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),_c('div',[(_vm.share && (!_vm.isEmailShareType || _vm.isFileRequest) && _vm.share.token)?_c('NcActions',{ref:\"copyButton\",staticClass:\"sharing-entry__copy\"},[_c('NcActionButton',{attrs:{\"aria-label\":_vm.copyLinkLabel,\"title\":_vm.copySuccess ? _vm.t('files_sharing', 'Successfully copied public link') : undefined,\"href\":_vm.shareLink},on:{\"click\":function($event){$event.preventDefault();return _vm.copyLink.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{staticClass:\"sharing-entry__copy-icon\",class:{ 'sharing-entry__copy-icon--success': _vm.copySuccess },attrs:{\"path\":_vm.copySuccess ? _vm.mdiCheck : _vm.mdiContentCopy}})]},proxy:true}],null,false,1728815133)})],1):_vm._e()],1)],1)]),_vm._v(\" \"),(!_vm.pending && _vm.pendingDataIsMissing)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event},\"close\":_vm.onCancel}},[(_vm.errors.pending)?_c('NcActionText',{staticClass:\"error\",scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ErrorIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1966124155)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.errors.pending)+\"\\n\\t\\t\")]):_c('NcActionText',{attrs:{\"icon\":\"icon-info\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Please enter the following required information before creating the share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.pendingPassword)?_c('NcActionCheckbox',{staticClass:\"share-link-password-checkbox\",attrs:{\"disabled\":_vm.config.enforcePasswordForPublicLink || _vm.saving},on:{\"uncheck\":_vm.onPasswordDisable},model:{value:(_vm.isPasswordProtected),callback:function ($$v) {_vm.isPasswordProtected=$$v},expression:\"isPasswordProtected\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.enforcePasswordForPublicLink ? _vm.t('files_sharing', 'Password protection (enforced)') : _vm.t('files_sharing', 'Password protection'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.pendingEnforcedPassword || _vm.isPasswordProtected)?_c('NcActionInput',{staticClass:\"share-link-password\",attrs:{\"label\":_vm.t('files_sharing', 'Enter a password'),\"disabled\":_vm.saving,\"required\":_vm.config.enableLinkPasswordByDefault || _vm.config.enforcePasswordForPublicLink,\"minlength\":_vm.minPasswordLength,\"autocomplete\":\"new-password\"},on:{\"submit\":function($event){return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('LockIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2056568168),model:{value:(_vm.share.newPassword),callback:function ($$v) {_vm.$set(_vm.share, \"newPassword\", $$v)},expression:\"share.newPassword\"}}):_vm._e(),_vm._v(\" \"),(_vm.pendingDefaultExpirationDate)?_c('NcActionCheckbox',{staticClass:\"share-link-expiration-date-checkbox\",attrs:{\"disabled\":_vm.pendingEnforcedExpirationDate || _vm.saving},on:{\"update:model-value\":_vm.onExpirationDateToggleUpdate},model:{value:(_vm.defaultExpirationDateEnabled),callback:function ($$v) {_vm.defaultExpirationDateEnabled=$$v},expression:\"defaultExpirationDateEnabled\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.config.isDefaultExpireDateEnforced ? _vm.t('files_sharing', 'Enable link expiration (enforced)') : _vm.t('files_sharing', 'Enable link expiration'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),((_vm.pendingDefaultExpirationDate || _vm.pendingEnforcedExpirationDate) && _vm.defaultExpirationDateEnabled)?_c('NcActionInput',{staticClass:\"share-link-expire-date\",attrs:{\"data-cy-files-sharing-expiration-date-input\":\"\",\"label\":_vm.pendingEnforcedExpirationDate ? _vm.t('files_sharing', 'Enter expiration date (enforced)') : _vm.t('files_sharing', 'Enter expiration date'),\"disabled\":_vm.saving,\"is-native-picker\":true,\"hide-label\":true,\"model-value\":new Date(_vm.share.expireDate),\"type\":\"date\",\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced},on:{\"update:model-value\":_vm.onExpirationChange,\"change\":_vm.expirationDateChanged},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconCalendarBlank',{attrs:{\"size\":20}})]},proxy:true}],null,false,3418578971)}):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"disabled\":_vm.pendingEnforcedPassword && !_vm.share.newPassword},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare(true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CheckIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2630571749)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Create share'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onCancel.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Cancel'))+\"\\n\\t\\t\")])],1):(!_vm.loading)?_c('NcActions',{staticClass:\"sharing-entry__actions\",attrs:{\"aria-label\":_vm.actionsTooltip,\"menu-align\":\"right\",\"open\":_vm.open},on:{\"update:open\":function($event){_vm.open=$event}}},[(_vm.share)?[(_vm.share.canEdit && _vm.canReshare)?[(!_vm.config.sharingDialogEnabled)?_c('NcActionButton',{attrs:{\"disabled\":_vm.saving,\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();return _vm.openSharingDetails.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Tune',{attrs:{\"size\":20}})]},proxy:true}],null,false,1300586850)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Customize link'))+\"\\n\\t\\t\\t\\t\")]):_c('NcActionButton',{attrs:{\"disabled\":_vm.saving,\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();return _vm.openEditDialog.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Tune',{attrs:{\"size\":20}})]},proxy:true}],null,false,1300586850)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Customize link'))+\"\\n\\t\\t\\t\\t\")])]:_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){$event.preventDefault();_vm.showQRCode = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconQr',{attrs:{\"size\":20}})]},proxy:true}],null,false,1082198240)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Generate QR code'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.sortedExternalShareActions),function(action){return _c('NcActionButton',{key:action.id,on:{\"click\":function($event){return action.exec(_vm.share, _vm.fileInfo.node)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvg}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.label(_vm.share, _vm.fileInfo.node))+\"\\n\\t\\t\\t\")])}),_vm._v(\" \"),_vm._l((_vm.externalLegacyShareActions),function(action){return _c('SidebarTabExternalActionLegacy',{key:action.id,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),(!_vm.isEmailShareType && _vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('PlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2953566425)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Add another link'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.share.canDelete)?_c('NcActionButton',{attrs:{\"disabled\":_vm.saving},on:{\"click\":function($event){$event.preventDefault();return _vm.onDelete.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CloseIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2428343285)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Unshare'))+\"\\n\\t\\t\\t\")]):_vm._e()]:(_vm.canReshare)?_c('NcActionButton',{staticClass:\"new-share-link\",attrs:{\"title\":_vm.t('files_sharing', 'Create a new share link'),\"aria-label\":_vm.t('files_sharing', 'Create a new share link'),\"icon\":_vm.loading ? 'icon-loading-small' : 'icon-add'},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onNewLinkShare.apply(null, arguments)}}}):_vm._e()],2):_c('NcLoadingIcon',{staticClass:\"sharing-entry__loading\"}),_vm._v(\" \"),(_vm.showQRCode)?_c('NcDialog',{attrs:{\"size\":\"normal\",\"open\":_vm.showQRCode,\"name\":_vm.title,\"close-on-click-outside\":true},on:{\"update:open\":function($event){_vm.showQRCode=$event},\"close\":function($event){_vm.showQRCode = false}}},[_c('div',{staticClass:\"qr-code-dialog\"},[_c('VueQrcode',{staticClass:\"qr-code-dialog__img\",attrs:{\"tag\":\"img\",\"value\":_vm.shareLink}})],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./SharingLinkList.vue?vue&type=template&id=708b3104\"\nimport script from \"./SharingLinkList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingLinkList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=fa3f3612&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=fa3f3612&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingEntry.vue?vue&type=template&id=fa3f3612&scoped=true\"\nimport script from \"./SharingEntry.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntry.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntry.vue?vue&type=style&index=0&id=fa3f3612&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fa3f3612\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"","\n\n\n\n\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"sharing-entry\"},[_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"is-no-user\":_vm.share.type !== _vm.ShareType.User,\"user\":_vm.share.shareWith,\"display-name\":_vm.share.shareWithDisplayName,\"menu-position\":\"left\",\"url\":_vm.share.shareWithAvatar}}),_vm._v(\" \"),_c('div',{staticClass:\"sharing-entry__summary\"},[_c(_vm.share.shareWithLink ? 'a' : 'div',{tag:\"component\",staticClass:\"sharing-entry__summary__desc\",attrs:{\"title\":_vm.tooltip,\"aria-label\":_vm.tooltip,\"href\":_vm.share.shareWithLink}},[_c('span',[_vm._v(_vm._s(_vm.title)+\"\\n\\t\\t\\t\\t\"),(!_vm.isUnique)?_c('span',{staticClass:\"sharing-entry__summary__desc-unique\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t(\"+_vm._s(_vm.share.shareWithDisplayNameUnique)+\")\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.hasStatus && _vm.share.status.message)?_c('small',[_vm._v(\"(\"+_vm._s(_vm.share.status.message)+\")\")]):_vm._e()])]),_vm._v(\" \"),_c('SharingEntryQuickShareSelect',{attrs:{\"share\":_vm.share,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":function($event){return _vm.openShareDetailsForCustomSettings(_vm.share)}}})],1),_vm._v(\" \"),(_vm.share && _vm.share.expireDate)?_c('ShareExpiryTime',{attrs:{\"share\":_vm.share}}):_vm._e(),_vm._v(\" \"),(_vm.share.canEdit)?_c('NcButton',{staticClass:\"sharing-entry__action\",attrs:{\"data-cy-files-sharing-share-actions\":\"\",\"aria-label\":_vm.t('files_sharing', 'Open Sharing Details'),\"variant\":\"tertiary\"},on:{\"click\":function($event){return _vm.openSharingDetails(_vm.share)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1700783217)}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SharingList.vue?vue&type=template&id=7e1141c6\"\nimport script from \"./SharingList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{staticClass:\"sharing-sharee-list\",attrs:{\"aria-label\":_vm.t('files_sharing', 'Shares')}},_vm._l((_vm.shares),function(share){return _c('SharingEntry',{key:share.id,attrs:{\"file-info\":_vm.fileInfo,\"share\":share,\"is-unique\":_vm.isUnique(share)},on:{\"open-sharing-details\":function($event){return _vm.openSharingDetails(share)}}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ShareType } from '@nextcloud/sharing'\n\n/**\n *\n * @param share\n */\nfunction shareWithTitle(share) {\n\tif (share.type === ShareType.Group) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and the group {group} by {owner}',\n\t\t\t{\n\t\t\t\tgroup: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Team) {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you and {circle} by {owner}',\n\t\t\t{\n\t\t\t\tcircle: share.shareWithDisplayName,\n\t\t\t\towner: share.ownerDisplayName,\n\t\t\t},\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t} else if (share.type === ShareType.Room) {\n\t\tif (share.shareWithDisplayName) {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you and the conversation {conversation} by {owner}',\n\t\t\t\t{\n\t\t\t\t\tconversation: share.shareWithDisplayName,\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t} else {\n\t\t\treturn t(\n\t\t\t\t'files_sharing',\n\t\t\t\t'Shared with you in a conversation by {owner}',\n\t\t\t\t{\n\t\t\t\t\towner: share.ownerDisplayName,\n\t\t\t\t},\n\t\t\t\tundefined,\n\t\t\t\t{ escape: false },\n\t\t\t)\n\t\t}\n\t} else {\n\t\treturn t(\n\t\t\t'files_sharing',\n\t\t\t'Shared with you by {owner}',\n\t\t\t{ owner: share.ownerDisplayName },\n\t\t\tundefined,\n\t\t\t{ escape: false },\n\t\t)\n\t}\n}\n\nexport { shareWithTitle }\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=1d4aa01b&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=1d4aa01b&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingTab.vue?vue&type=template&id=1d4aa01b&scoped=true\"\nimport script from \"./SharingTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingTab.vue?vue&type=style&index=0&id=1d4aa01b&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d4aa01b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTab\",class:{ 'icon-loading': _vm.loading && !_vm.config.sharingDialogEnabled }},[(_vm.error)?_c('div',{staticClass:\"emptycontent\",class:{ emptyContentWithSections: _vm.hasExternalSections }},[_c('div',{staticClass:\"icon icon-error\"}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.error))])]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView),expression:\"!showSharingDetailsView\"}],staticClass:\"sharingTab__content\"},[(_vm.isSharedWithMe)?_c('ul',[_c('SharingEntrySimple',_vm._b({staticClass:\"sharing-entry__reshare\",scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [_c('NcAvatar',{staticClass:\"sharing-entry__avatar\",attrs:{\"user\":_vm.sharedWithMe.user,\"displayName\":_vm.sharedWithMe.displayName}})]},proxy:true}],null,false,3412169823)},'SharingEntrySimple',_vm.sharedWithMe,false))],1):_vm._e(),_vm._v(\" \"),(_vm.config.sharingDialogEnabled)?_c('NcButton',{staticClass:\"sharingTab__share-button\",attrs:{\"variant\":\"primary\",\"wide\":\"\"},on:{\"click\":_vm.openShareDialog},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ShareVariantIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1624511161)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Share'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.config.sharingDialogEnabled)?_c('section',[(_vm.loading)?_c('UnifiedShareListSkeleton'):_c('UnifiedShareList',{attrs:{\"shares\":_vm.unifiedShares,\"fileInfo\":_vm.fileInfo},on:{\"refresh\":function($event){return _vm.getUnifiedShares(false)}}}),_vm._v(\" \"),_c('SharingEntryInternal',{attrs:{\"fileInfo\":_vm.fileInfo}})],1):_vm._e(),_vm._v(\" \"),(!_vm.config.sharingDialogEnabled)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Internal shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popupRole\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Internal shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,4133776664)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.internalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading && !_vm.config.sharingDialogEnabled)?_c('SharingInput',{attrs:{\"canReshare\":_vm.canReshare,\"fileInfo\":_vm.fileInfo,\"linkShares\":_vm.linkShares,\"reshare\":_vm.reshare,\"shares\":_vm.shares,\"placeholder\":_vm.internalShareInputPlaceholder},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{ref:\"shareList\",attrs:{\"shares\":_vm.shares,\"fileInfo\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(_vm.canReshare && !_vm.loading)?_c('SharingInherited',{attrs:{\"fileInfo\":_vm.fileInfo}}):_vm._e(),_vm._v(\" \"),_c('SharingEntryInternal',{attrs:{\"fileInfo\":_vm.fileInfo}})],1):_vm._e(),_vm._v(\" \"),(_vm.config.showExternalSharing && !_vm.config.sharingDialogEnabled)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'External shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popupRole\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'External shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,4045083138)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.externalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),(!_vm.loading && !_vm.config.sharingDialogEnabled)?_c('SharingInput',{attrs:{\"canReshare\":_vm.canReshare,\"fileInfo\":_vm.fileInfo,\"linkShares\":_vm.linkShares,\"isExternal\":true,\"placeholder\":_vm.externalShareInputPlaceholder,\"reshare\":_vm.reshare,\"shares\":_vm.shares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{attrs:{\"shares\":_vm.externalShares,\"fileInfo\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading && _vm.isLinkSharingAllowed)?_c('SharingLinkList',{ref:\"linkShareList\",attrs:{\"canReshare\":_vm.canReshare,\"fileInfo\":_vm.fileInfo,\"shares\":_vm.linkShares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.hasExternalSections && !_vm.showSharingDetailsView)?_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Additional shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popupRole\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"variant\":\"tertiary-no-background\",\"aria-label\":_vm.t('files_sharing', 'Additional shares explanation')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('InfoIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,915383693)})]},proxy:true}],null,false,880248230)},[_vm._v(\" \"),_c('p',{staticClass:\"hint-body\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.additionalSharesHelpText)+\"\\n\\t\\t\\t\\t\\t\")])])],1),_vm._v(\" \"),_vm._l((_vm.sortedExternalSections),function(section){return _c('SidebarTabExternalSection',{key:section.id,staticClass:\"sharingTab__additionalContent\",attrs:{\"section\":section,\"node\":_vm.fileInfo.node /* TODO: Fix once we have proper Node API */}})}),_vm._v(\" \"),_vm._l((_vm.legacySections),function(section,index){return _c('SidebarTabExternalSectionLegacy',{key:index,staticClass:\"sharingTab__additionalContent\",attrs:{\"fileInfo\":_vm.fileInfo,\"sectionCallback\":section}})}),_vm._v(\" \"),(_vm.projectsEnabled)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView && _vm.fileInfo),expression:\"!showSharingDetailsView && fileInfo\"}],staticClass:\"sharingTab__additionalContent\"},[_c('NcCollectionList',{attrs:{\"id\":`${_vm.fileInfo.id}`,\"type\":\"file\",\"name\":_vm.fileInfo.name}})],1):_vm._e()],2):_vm._e()],1),_vm._v(\" \"),(_vm.showSharingDetailsView)?_c('SharingDetailsTab',{attrs:{\"fileInfo\":_vm.shareDetailsData.fileInfo,\"share\":_vm.shareDetailsData.share},on:{\"close-sharing-details\":_vm.toggleShareDetailsView,\"add:share\":_vm.addShare,\"remove:share\":_vm.removeShare}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission } from '@nextcloud/files';\n/**\n * Convert Node to legacy file info\n *\n * @param node - The Node to convert\n */\nexport default function (node) {\n const rawFileInfo = {\n id: node.fileid,\n path: node.dirname,\n name: node.basename,\n mtime: node.mtime?.getTime(),\n etag: node.attributes.etag,\n size: node.size,\n hasPreview: node.attributes.hasPreview,\n isEncrypted: node.attributes.isEncrypted === 1,\n isFavourited: node.attributes.favorite === 1,\n mimetype: node.mime,\n permissions: node.permissions,\n mountType: node.attributes['mount-type'],\n sharePermissions: node.attributes['share-permissions'],\n shareAttributes: JSON.parse(node.attributes['share-attributes'] || '[]'),\n type: node.type === 'file' ? 'file' : 'dir',\n attributes: node.attributes,\n };\n // TODO remove when no more legacy backbone is used\n const fileInfo = {\n ...rawFileInfo,\n node,\n get(key) {\n return this[key];\n },\n isDirectory() {\n return this.mimetype === 'httpd/unix-directory';\n },\n canEdit() {\n return Boolean(this.permissions & Permission.UPDATE);\n },\n canDownload() {\n for (const i in this.shareAttributes) {\n const attr = this.shareAttributes[i];\n if (attr.scope === 'permissions' && attr.key === 'download') {\n return attr.value === true;\n }\n }\n return true;\n },\n };\n return fileInfo;\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesSidebarTab.vue?vue&type=template&id=8a2257be\"\nimport script from \"./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { P as Permission, s as scopedGlobals, l as logger, c as NodeStatus, a as File, b as Folder } from \"./chunks/folder-29HuacU_.mjs\";\nimport \"@nextcloud/paths\";\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction parsePermissions(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\")) {\n permissions |= Permission.WRITE;\n }\n if (permString.includes(\"CK\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"NV\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n}\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nfunction registerDavProperty(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n const namespaces = { ...scopedGlobals.davNamespaces, ...namespace };\n if (scopedGlobals.davProperties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n scopedGlobals.davProperties.push(prop);\n scopedGlobals.davNamespaces = namespaces;\n return true;\n}\nfunction getDavProperties() {\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n return scopedGlobals.davProperties.map((prop) => `<${prop} />`).join(\" \");\n}\nfunction getDavNameSpaces() {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n return Object.keys(scopedGlobals.davNamespaces).map((ns) => `xmlns:${ns}=\"${scopedGlobals.davNamespaces?.[ns]}\"`).join(\" \");\n}\nfunction getDefaultPropfind() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t`;\n}\nfunction getFavoritesReport() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\t\n\t\t\t\t1\n\t\t\t\n\t\t`;\n}\nfunction getRecentSearch(lastModified) {\n return `\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t/files/${getCurrentUser()?.uid}/\n\t\t\t\tinfinity\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\thttpd/unix-directory\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t${lastModified}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t100\n\t\t\t0\n\t\t\n\t\n`;\n}\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nfunction getClient(remoteURL = defaultRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n}\nasync function getFavoriteNodes(options = {}) {\n const client = options.client ?? getClient();\n const path = options.path ?? \"/\";\n const davRoot = options.davRoot ?? defaultRootPath;\n const contentsResponse = await client.getDirectoryContents(`${davRoot}${path}`, {\n signal: options.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n return contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n}\nfunction resultToNode(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\n let userId = getCurrentUser()?.uid;\n if (isPublicShare()) {\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 0,\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n}\nexport {\n defaultDavNamespaces,\n defaultDavProperties,\n defaultRemoteURL,\n defaultRootPath,\n getClient,\n getDavNameSpaces,\n getDavProperties,\n getDefaultPropfind,\n getFavoriteNodes,\n getFavoritesReport,\n getRecentSearch,\n getRemoteURL,\n getRootPath,\n parsePermissions,\n registerDavProperty,\n resultToNode\n};\n//# sourceMappingURL=dav.mjs.map\n","\n import API from \"!../../../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../../../css-loader/dist/cjs.js!./NcActionButton.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../../../css-loader/dist/cjs.js!./NcActionButton.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcActionButton.css';\nimport { c as mdiChevronRight, d as mdiCheck } from \"./mdi.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { A as ActionTextMixin } from \"./actionText.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions.mjs\";\nimport { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, mergeProps, renderSlot, normalizeStyle, toDisplayString, createCommentVNode, createBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n },\n props: {\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (behavior) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(behavior)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of ``\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Small underlying text content of the entry\n */\n description: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"update:modelValue\"],\n setup() {\n return {\n mdiCheck,\n mdiChevronRight\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n if (this.type === \"radio\" && typeof this.modelValue !== \"boolean\") {\n return this.modelValue === this.value;\n }\n return this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n if (this.type === \"submit\" || this.type === \"reset\") {\n return this.type;\n }\n return \"button\";\n },\n /**\n * HTML attributes to bind to the