aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dist/2693-2693.js2
-rw-r--r--dist/2693-2693.js.license (renamed from dist/9699-9699.js.license)0
-rw-r--r--dist/2693-2693.js.map1
l---------dist/2693-2693.js.map.license1
-rw-r--r--dist/9699-9699.js2
-rw-r--r--dist/9699-9699.js.map1
l---------dist/9699-9699.js.map.license1
-rw-r--r--dist/core-legacy-unified-search.js4
-rw-r--r--dist/core-legacy-unified-search.js.map2
-rw-r--r--dist/files-main.js4
-rw-r--r--dist/files-main.js.map2
-rw-r--r--dist/files_sharing-files_sharing_tab.js4
-rw-r--r--dist/files_sharing-files_sharing_tab.js.map2
13 files changed, 13 insertions, 13 deletions
diff --git a/dist/2693-2693.js b/dist/2693-2693.js
new file mode 100644
index 00000000000..3c5a578b4d8
--- /dev/null
+++ b/dist/2693-2693.js
@@ -0,0 +1,2 @@
+(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[2693],{17816:function(t){t.exports=function(){"use strict";function t(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}var e=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(e,i){var n;n=function(){return function e(i,n,r){function s(o,l){if(!n[o]){if(!i[o]){if(!l&&t)return t();if(a)return a(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var h=n[o]={exports:{}};i[o][0].call(h.exports,(function(t){return s(i[o][1][t]||t)}),h,h.exports,e,i,n,r)}return n[o].exports}for(var a=t,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(t,e,i){e.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},{}],2:[function(t,e,i){var n=t("./utils").getSymbolSize;i.getRowColCoords=function(t){if(1===t)return[];for(var e=Math.floor(t/7)+2,i=n(t),r=145===i?26:2*Math.ceil((i-13)/(2*e-2)),s=[i-7],a=1;a<e-1;a++)s[a]=s[a-1]-r;return s.push(6),s.reverse()},i.getPositions=function(t){for(var e=[],n=i.getRowColCoords(t),r=n.length,s=0;s<r;s++)for(var a=0;a<r;a++)0===s&&0===a||0===s&&a===r-1||s===r-1&&0===a||e.push([n[s],n[a]]);return e}},{"./utils":21}],3:[function(t,e,i){var n=t("./mode"),r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function s(t){this.mode=n.ALPHANUMERIC,this.data=t}s.getBitsLength=function(t){return 11*Math.floor(t/2)+t%2*6},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){var e;for(e=0;e+2<=this.data.length;e+=2){var i=45*r.indexOf(this.data[e]);i+=r.indexOf(this.data[e+1]),t.put(i,11)}this.data.length%2&&t.put(r.indexOf(this.data[e]),6)},e.exports=s},{"./mode":14}],4:[function(t,e,i){function n(){this.buffer=[],this.length=0}n.prototype={get:function(t){var e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(var i=0;i<e;i++)this.putBit(1==(t>>>e-i-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},e.exports=n},{}],5:[function(t,e,i){var n=t("../utils/buffer");function r(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=n.alloc(t*t),this.reservedBit=n.alloc(t*t)}r.prototype.set=function(t,e,i,n){var r=t*this.size+e;this.data[r]=i,n&&(this.reservedBit[r]=!0)},r.prototype.get=function(t,e){return this.data[t*this.size+e]},r.prototype.xor=function(t,e,i){this.data[t*this.size+e]^=i},r.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]},e.exports=r},{"../utils/buffer":28}],6:[function(t,e,i){var n=t("../utils/buffer"),r=t("./mode");function s(t){this.mode=r.BYTE,this.data=n.from(t)}s.getBitsLength=function(t){return 8*t},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){for(var e=0,i=this.data.length;e<i;e++)t.put(this.data[e],8)},e.exports=s},{"../utils/buffer":28,"./mode":14}],7:[function(t,e,i){var n=t("./error-correction-level"),r=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],s=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];i.getBlocksCount=function(t,e){switch(e){case n.L:return r[4*(t-1)+0];case n.M:return r[4*(t-1)+1];case n.Q:return r[4*(t-1)+2];case n.H:return r[4*(t-1)+3];default:return}},i.getTotalCodewordsCount=function(t,e){switch(e){case n.L:return s[4*(t-1)+0];case n.M:return s[4*(t-1)+1];case n.Q:return s[4*(t-1)+2];case n.H:return s[4*(t-1)+3];default:return}}},{"./error-correction-level":8}],8:[function(t,e,i){i.L={bit:1},i.M={bit:0},i.Q={bit:3},i.H={bit:2},i.isValid=function(t){return t&&void 0!==t.bit&&t.bit>=0&&t.bit<4},i.from=function(t,e){if(i.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return i.L;case"m":case"medium":return i.M;case"q":case"quartile":return i.Q;case"h":case"high":return i.H;default:throw new Error("Unknown EC Level: "+t)}}(t)}catch(t){return e}}},{}],9:[function(t,e,i){var n=t("./utils").getSymbolSize;i.getPositions=function(t){var e=n(t);return[[0,0],[e-7,0],[0,e-7]]}},{"./utils":21}],10:[function(t,e,i){var n=t("./utils"),r=n.getBCHDigit(1335);i.getEncodedBits=function(t,e){for(var i=t.bit<<3|e,s=i<<10;n.getBCHDigit(s)-r>=0;)s^=1335<<n.getBCHDigit(s)-r;return 21522^(i<<10|s)}},{"./utils":21}],11:[function(t,e,i){var n=t("../utils/buffer"),r=n.alloc(512),s=n.alloc(256);!function(){for(var t=1,e=0;e<255;e++)r[e]=t,s[t]=e,256&(t<<=1)&&(t^=285);for(e=255;e<512;e++)r[e]=r[e-255]}(),i.log=function(t){if(t<1)throw new Error("log("+t+")");return s[t]},i.exp=function(t){return r[t]},i.mul=function(t,e){return 0===t||0===e?0:r[s[t]+s[e]]}},{"../utils/buffer":28}],12:[function(t,e,i){var n=t("./mode"),r=t("./utils");function s(t){this.mode=n.KANJI,this.data=t}s.getBitsLength=function(t){return 13*t},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){var e;for(e=0;e<this.data.length;e++){var i=r.toSJIS(this.data[e]);if(i>=33088&&i<=40956)i-=33088;else{if(!(i>=57408&&i<=60351))throw new Error("Invalid SJIS character: "+this.data[e]+"\nMake sure your charset is UTF-8");i-=49472}i=192*(i>>>8&255)+(255&i),t.put(i,13)}},e.exports=s},{"./mode":14,"./utils":21}],13:[function(t,e,i){i.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var n=3,r=3,s=40,a=10;function o(t,e,n){switch(t){case i.Patterns.PATTERN000:return(e+n)%2==0;case i.Patterns.PATTERN001:return e%2==0;case i.Patterns.PATTERN010:return n%3==0;case i.Patterns.PATTERN011:return(e+n)%3==0;case i.Patterns.PATTERN100:return(Math.floor(e/2)+Math.floor(n/3))%2==0;case i.Patterns.PATTERN101:return e*n%2+e*n%3==0;case i.Patterns.PATTERN110:return(e*n%2+e*n%3)%2==0;case i.Patterns.PATTERN111:return(e*n%3+(e+n)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}}i.isValid=function(t){return null!=t&&""!==t&&!isNaN(t)&&t>=0&&t<=7},i.from=function(t){return i.isValid(t)?parseInt(t,10):void 0},i.getPenaltyN1=function(t){for(var e=t.size,i=0,r=0,s=0,a=null,o=null,l=0;l<e;l++){r=s=0,a=o=null;for(var c=0;c<e;c++){var h=t.get(l,c);h===a?r++:(r>=5&&(i+=n+(r-5)),a=h,r=1),(h=t.get(c,l))===o?s++:(s>=5&&(i+=n+(s-5)),o=h,s=1)}r>=5&&(i+=n+(r-5)),s>=5&&(i+=n+(s-5))}return i},i.getPenaltyN2=function(t){for(var e=t.size,i=0,n=0;n<e-1;n++)for(var s=0;s<e-1;s++){var a=t.get(n,s)+t.get(n,s+1)+t.get(n+1,s)+t.get(n+1,s+1);4!==a&&0!==a||i++}return i*r},i.getPenaltyN3=function(t){for(var e=t.size,i=0,n=0,r=0,a=0;a<e;a++){n=r=0;for(var o=0;o<e;o++)n=n<<1&2047|t.get(a,o),o>=10&&(1488===n||93===n)&&i++,r=r<<1&2047|t.get(o,a),o>=10&&(1488===r||93===r)&&i++}return i*s},i.getPenaltyN4=function(t){for(var e=0,i=t.data.length,n=0;n<i;n++)e+=t.data[n];return Math.abs(Math.ceil(100*e/i/5)-10)*a},i.applyMask=function(t,e){for(var i=e.size,n=0;n<i;n++)for(var r=0;r<i;r++)e.isReserved(r,n)||e.xor(r,n,o(t,r,n))},i.getBestMask=function(t,e){for(var n=Object.keys(i.Patterns).length,r=0,s=1/0,a=0;a<n;a++){e(a),i.applyMask(a,t);var o=i.getPenaltyN1(t)+i.getPenaltyN2(t)+i.getPenaltyN3(t)+i.getPenaltyN4(t);i.applyMask(a,t),o<s&&(s=o,r=a)}return r}},{}],14:[function(t,e,i){var n=t("./version-check"),r=t("./regex");i.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},i.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},i.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},i.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},i.MIXED={bit:-1},i.getCharCountIndicator=function(t,e){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!n.isValid(e))throw new Error("Invalid version: "+e);return e>=1&&e<10?t.ccBits[0]:e<27?t.ccBits[1]:t.ccBits[2]},i.getBestModeForData=function(t){return r.testNumeric(t)?i.NUMERIC:r.testAlphanumeric(t)?i.ALPHANUMERIC:r.testKanji(t)?i.KANJI:i.BYTE},i.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")},i.isValid=function(t){return t&&t.bit&&t.ccBits},i.from=function(t,e){if(i.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return i.NUMERIC;case"alphanumeric":return i.ALPHANUMERIC;case"kanji":return i.KANJI;case"byte":return i.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(t){return e}}},{"./regex":19,"./version-check":22}],15:[function(t,e,i){var n=t("./mode");function r(t){this.mode=n.NUMERIC,this.data=t.toString()}r.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){var e,i,n;for(e=0;e+3<=this.data.length;e+=3)i=this.data.substr(e,3),n=parseInt(i,10),t.put(n,10);var r=this.data.length-e;r>0&&(i=this.data.substr(e),n=parseInt(i,10),t.put(n,3*r+1))},e.exports=r},{"./mode":14}],16:[function(t,e,i){var n=t("../utils/buffer"),r=t("./galois-field");i.mul=function(t,e){for(var i=n.alloc(t.length+e.length-1),s=0;s<t.length;s++)for(var a=0;a<e.length;a++)i[s+a]^=r.mul(t[s],e[a]);return i},i.mod=function(t,e){for(var i=n.from(t);i.length-e.length>=0;){for(var s=i[0],a=0;a<e.length;a++)i[a]^=r.mul(e[a],s);for(var o=0;o<i.length&&0===i[o];)o++;i=i.slice(o)}return i},i.generateECPolynomial=function(t){for(var e=n.from([1]),s=0;s<t;s++)e=i.mul(e,[1,r.exp(s)]);return e}},{"../utils/buffer":28,"./galois-field":11}],17:[function(t,e,i){var n=t("../utils/buffer"),r=t("./utils"),s=t("./error-correction-level"),a=t("./bit-buffer"),o=t("./bit-matrix"),l=t("./alignment-pattern"),c=t("./finder-pattern"),h=t("./mask-pattern"),u=t("./error-correction-code"),d=t("./reed-solomon-encoder"),p=t("./version"),f=t("./format-info"),g=t("./mode"),A=t("./segments"),m=t("isarray");function v(t,e,i){var n,r,s=t.size,a=f.getEncodedBits(e,i);for(n=0;n<15;n++)r=1==(a>>n&1),n<6?t.set(n,8,r,!0):n<8?t.set(n+1,8,r,!0):t.set(s-15+n,8,r,!0),n<8?t.set(8,s-n-1,r,!0):n<9?t.set(8,15-n-1+1,r,!0):t.set(8,15-n-1,r,!0);t.set(s-8,8,1,!0)}function y(t,e,i){var s=new a;i.forEach((function(e){s.put(e.mode.bit,4),s.put(e.getLength(),g.getCharCountIndicator(e.mode,t)),e.write(s)}));var o=8*(r.getSymbolTotalCodewords(t)-u.getTotalCodewordsCount(t,e));for(s.getLengthInBits()+4<=o&&s.put(0,4);s.getLengthInBits()%8!=0;)s.putBit(0);for(var l=(o-s.getLengthInBits())/8,c=0;c<l;c++)s.put(c%2?17:236,8);return function(t,e,i){for(var s=r.getSymbolTotalCodewords(e),a=s-u.getTotalCodewordsCount(e,i),o=u.getBlocksCount(e,i),l=o-s%o,c=Math.floor(s/o),h=Math.floor(a/o),p=h+1,f=c-h,g=new d(f),A=0,m=new Array(o),v=new Array(o),y=0,w=n.from(t.buffer),C=0;C<o;C++){var b=C<l?h:p;m[C]=w.slice(A,A+b),v[C]=g.encode(m[C]),A+=b,y=Math.max(y,b)}var _,E,x=n.alloc(s),S=0;for(_=0;_<y;_++)for(E=0;E<o;E++)_<m[E].length&&(x[S++]=m[E][_]);for(_=0;_<f;_++)for(E=0;E<o;E++)x[S++]=v[E][_];return x}(s,t,e)}function w(t,e,i,n){var s;if(m(t))s=A.fromArray(t);else{if("string"!=typeof t)throw new Error("Invalid data");var a=e;if(!a){var u=A.rawSplit(t);a=p.getBestVersionForData(u,i)}s=A.fromString(t,a||40)}var d=p.getBestVersionForData(s,i);if(!d)throw new Error("The amount of data is too big to be stored in a QR Code");if(e){if(e<d)throw new Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+d+".\n")}else e=d;var f=y(e,i,s),g=r.getSymbolSize(e),w=new o(g);return function(t,e){for(var i=t.size,n=c.getPositions(e),r=0;r<n.length;r++)for(var s=n[r][0],a=n[r][1],o=-1;o<=7;o++)if(!(s+o<=-1||i<=s+o))for(var l=-1;l<=7;l++)a+l<=-1||i<=a+l||(o>=0&&o<=6&&(0===l||6===l)||l>=0&&l<=6&&(0===o||6===o)||o>=2&&o<=4&&l>=2&&l<=4?t.set(s+o,a+l,!0,!0):t.set(s+o,a+l,!1,!0))}(w,e),function(t){for(var e=t.size,i=8;i<e-8;i++){var n=i%2==0;t.set(i,6,n,!0),t.set(6,i,n,!0)}}(w),function(t,e){for(var i=l.getPositions(e),n=0;n<i.length;n++)for(var r=i[n][0],s=i[n][1],a=-2;a<=2;a++)for(var o=-2;o<=2;o++)-2===a||2===a||-2===o||2===o||0===a&&0===o?t.set(r+a,s+o,!0,!0):t.set(r+a,s+o,!1,!0)}(w,e),v(w,i,0),e>=7&&function(t,e){for(var i,n,r,s=t.size,a=p.getEncodedBits(e),o=0;o<18;o++)i=Math.floor(o/3),n=o%3+s-8-3,r=1==(a>>o&1),t.set(i,n,r,!0),t.set(n,i,r,!0)}(w,e),function(t,e){for(var i=t.size,n=-1,r=i-1,s=7,a=0,o=i-1;o>0;o-=2)for(6===o&&o--;;){for(var l=0;l<2;l++)if(!t.isReserved(r,o-l)){var c=!1;a<e.length&&(c=1==(e[a]>>>s&1)),t.set(r,o-l,c),-1==--s&&(a++,s=7)}if((r+=n)<0||i<=r){r-=n,n=-n;break}}}(w,f),isNaN(n)&&(n=h.getBestMask(w,v.bind(null,w,i))),h.applyMask(n,w),v(w,i,n),{modules:w,version:e,errorCorrectionLevel:i,maskPattern:n,segments:s}}i.create=function(t,e){if(void 0===t||""===t)throw new Error("No input text");var i,n,a=s.M;return void 0!==e&&(a=s.from(e.errorCorrectionLevel,s.M),i=p.from(e.version),n=h.from(e.maskPattern),e.toSJISFunc&&r.setToSJISFunction(e.toSJISFunc)),w(t,i,a,n)}},{"../utils/buffer":28,"./alignment-pattern":2,"./bit-buffer":4,"./bit-matrix":5,"./error-correction-code":7,"./error-correction-level":8,"./finder-pattern":9,"./format-info":10,"./mask-pattern":13,"./mode":14,"./reed-solomon-encoder":18,"./segments":20,"./utils":21,"./version":23,isarray:33}],18:[function(t,e,i){var n=t("../utils/buffer"),r=t("./polynomial"),s=t("buffer").Buffer;function a(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}a.prototype.initialize=function(t){this.degree=t,this.genPoly=r.generateECPolynomial(this.degree)},a.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");var e=n.alloc(this.degree),i=s.concat([t,e],t.length+this.degree),a=r.mod(i,this.genPoly),o=this.degree-a.length;if(o>0){var l=n.alloc(this.degree);return a.copy(l,o),l}return a},e.exports=a},{"../utils/buffer":28,"./polynomial":16,buffer:30}],19:[function(t,e,i){var n="[0-9]+",r="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+",s="(?:(?![A-Z0-9 $%*+\\-./:]|"+(r=r.replace(/u/g,"\\u"))+")(?:.|[\r\n]))+";i.KANJI=new RegExp(r,"g"),i.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),i.BYTE=new RegExp(s,"g"),i.NUMERIC=new RegExp(n,"g"),i.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");var a=new RegExp("^"+r+"$"),o=new RegExp("^"+n+"$"),l=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");i.testKanji=function(t){return a.test(t)},i.testNumeric=function(t){return o.test(t)},i.testAlphanumeric=function(t){return l.test(t)}},{}],20:[function(t,e,i){var n=t("./mode"),r=t("./numeric-data"),s=t("./alphanumeric-data"),a=t("./byte-data"),o=t("./kanji-data"),l=t("./regex"),c=t("./utils"),h=t("dijkstrajs");function u(t){return unescape(encodeURIComponent(t)).length}function d(t,e,i){for(var n,r=[];null!==(n=t.exec(i));)r.push({data:n[0],index:n.index,mode:e,length:n[0].length});return r}function p(t){var e,i,r=d(l.NUMERIC,n.NUMERIC,t),s=d(l.ALPHANUMERIC,n.ALPHANUMERIC,t);return c.isKanjiModeEnabled()?(e=d(l.BYTE,n.BYTE,t),i=d(l.KANJI,n.KANJI,t)):(e=d(l.BYTE_KANJI,n.BYTE,t),i=[]),r.concat(s,e,i).sort((function(t,e){return t.index-e.index})).map((function(t){return{data:t.data,mode:t.mode,length:t.length}}))}function f(t,e){switch(e){case n.NUMERIC:return r.getBitsLength(t);case n.ALPHANUMERIC:return s.getBitsLength(t);case n.KANJI:return o.getBitsLength(t);case n.BYTE:return a.getBitsLength(t)}}function g(t,e){var i,l=n.getBestModeForData(t);if((i=n.from(e,l))!==n.BYTE&&i.bit<l.bit)throw new Error('"'+t+'" cannot be encoded with mode '+n.toString(i)+".\n Suggested mode is: "+n.toString(l));switch(i!==n.KANJI||c.isKanjiModeEnabled()||(i=n.BYTE),i){case n.NUMERIC:return new r(t);case n.ALPHANUMERIC:return new s(t);case n.KANJI:return new o(t);case n.BYTE:return new a(t)}}i.fromArray=function(t){return t.reduce((function(t,e){return"string"==typeof e?t.push(g(e,null)):e.data&&t.push(g(e.data,e.mode)),t}),[])},i.fromString=function(t,e){for(var r=function(t,e){for(var i={},r={start:{}},s=["start"],a=0;a<t.length;a++){for(var o=t[a],l=[],c=0;c<o.length;c++){var h=o[c],u=""+a+c;l.push(u),i[u]={node:h,lastCount:0},r[u]={};for(var d=0;d<s.length;d++){var p=s[d];i[p]&&i[p].node.mode===h.mode?(r[p][u]=f(i[p].lastCount+h.length,h.mode)-f(i[p].lastCount,h.mode),i[p].lastCount+=h.length):(i[p]&&(i[p].lastCount=h.length),r[p][u]=f(h.length,h.mode)+4+n.getCharCountIndicator(h.mode,e))}}s=l}for(d=0;d<s.length;d++)r[s[d]].end=0;return{map:r,table:i}}(function(t){for(var e=[],i=0;i<t.length;i++){var r=t[i];switch(r.mode){case n.NUMERIC:e.push([r,{data:r.data,mode:n.ALPHANUMERIC,length:r.length},{data:r.data,mode:n.BYTE,length:r.length}]);break;case n.ALPHANUMERIC:e.push([r,{data:r.data,mode:n.BYTE,length:r.length}]);break;case n.KANJI:e.push([r,{data:r.data,mode:n.BYTE,length:u(r.data)}]);break;case n.BYTE:e.push([{data:r.data,mode:n.BYTE,length:u(r.data)}])}}return e}(p(t,c.isKanjiModeEnabled())),e),s=h.find_path(r.map,"start","end"),a=[],o=1;o<s.length-1;o++)a.push(r.table[s[o]].node);return i.fromArray(a.reduce((function(t,e){var i=t.length-1>=0?t[t.length-1]:null;return i&&i.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)}),[]))},i.rawSplit=function(t){return i.fromArray(p(t,c.isKanjiModeEnabled()))}},{"./alphanumeric-data":3,"./byte-data":6,"./kanji-data":12,"./mode":14,"./numeric-data":15,"./regex":19,"./utils":21,dijkstrajs:31}],21:[function(t,e,i){var n,r=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];i.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return 4*t+17},i.getSymbolTotalCodewords=function(t){return r[t]},i.getBCHDigit=function(t){for(var e=0;0!==t;)e++,t>>>=1;return e},i.setToSJISFunction=function(t){if("function"!=typeof t)throw new Error('"toSJISFunc" is not a valid function.');n=t},i.isKanjiModeEnabled=function(){return void 0!==n},i.toSJIS=function(t){return n(t)}},{}],22:[function(t,e,i){i.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}},{}],23:[function(t,e,i){var n=t("./utils"),r=t("./error-correction-code"),s=t("./error-correction-level"),a=t("./mode"),o=t("./version-check"),l=t("isarray"),c=n.getBCHDigit(7973);function h(t,e){return a.getCharCountIndicator(t,e)+4}function u(t,e){var i=0;return t.forEach((function(t){var n=h(t.mode,e);i+=n+t.getBitsLength()})),i}i.from=function(t,e){return o.isValid(t)?parseInt(t,10):e},i.getCapacity=function(t,e,i){if(!o.isValid(t))throw new Error("Invalid QR Code version");void 0===i&&(i=a.BYTE);var s=8*(n.getSymbolTotalCodewords(t)-r.getTotalCodewordsCount(t,e));if(i===a.MIXED)return s;var l=s-h(i,t);switch(i){case a.NUMERIC:return Math.floor(l/10*3);case a.ALPHANUMERIC:return Math.floor(l/11*2);case a.KANJI:return Math.floor(l/13);case a.BYTE:default:return Math.floor(l/8)}},i.getBestVersionForData=function(t,e){var n,r=s.from(e,s.M);if(l(t)){if(t.length>1)return function(t,e){for(var n=1;n<=40;n++)if(u(t,n)<=i.getCapacity(n,e,a.MIXED))return n}(t,r);if(0===t.length)return 1;n=t[0]}else n=t;return function(t,e,n){for(var r=1;r<=40;r++)if(e<=i.getCapacity(r,n,t))return r}(n.mode,n.getLength(),r)},i.getEncodedBits=function(t){if(!o.isValid(t)||t<7)throw new Error("Invalid QR Code version");for(var e=t<<12;n.getBCHDigit(e)-c>=0;)e^=7973<<n.getBCHDigit(e)-c;return t<<12|e}},{"./error-correction-code":7,"./error-correction-level":8,"./mode":14,"./utils":21,"./version-check":22,isarray:33}],24:[function(t,e,i){var n=t("./can-promise"),r=t("./core/qrcode"),s=t("./renderer/canvas"),a=t("./renderer/svg-tag.js");function o(t,e,i,s,a){var o=[].slice.call(arguments,1),l=o.length,c="function"==typeof o[l-1];if(!c&&!n())throw new Error("Callback required as last argument");if(!c){if(l<1)throw new Error("Too few arguments provided");return 1===l?(i=e,e=s=void 0):2!==l||e.getContext||(s=i,i=e,e=void 0),new Promise((function(n,a){try{var o=r.create(i,s);n(t(o,e,s))}catch(t){a(t)}}))}if(l<2)throw new Error("Too few arguments provided");2===l?(a=i,i=e,e=s=void 0):3===l&&(e.getContext&&void 0===a?(a=s,s=void 0):(a=s,s=i,i=e,e=void 0));try{var h=r.create(i,s);a(null,t(h,e,s))}catch(t){a(t)}}i.create=r.create,i.toCanvas=o.bind(null,s.render),i.toDataURL=o.bind(null,s.renderToDataURL),i.toString=o.bind(null,(function(t,e,i){return a.render(t,i)}))},{"./can-promise":1,"./core/qrcode":17,"./renderer/canvas":25,"./renderer/svg-tag.js":26}],25:[function(t,e,i){var n=t("./utils");i.render=function(t,e,i){var r=i,s=e;void 0!==r||e&&e.getContext||(r=e,e=void 0),e||(s=function(){try{return document.createElement("canvas")}catch(t){throw new Error("You need to specify a canvas element")}}()),r=n.getOptions(r);var a=n.getImageWidth(t.modules.size,r),o=s.getContext("2d"),l=o.createImageData(a,a);return n.qrToImageData(l.data,t,r),function(t,e,i){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=i,e.width=i,e.style.height=i+"px",e.style.width=i+"px"}(o,s,a),o.putImageData(l,0,0),s},i.renderToDataURL=function(t,e,n){var r=n;void 0!==r||e&&e.getContext||(r=e,e=void 0),r||(r={});var s=i.render(t,e,r),a=r.type||"image/png",o=r.rendererOpts||{};return s.toDataURL(a,o.quality)}},{"./utils":27}],26:[function(t,e,i){var n=t("./utils");function r(t,e){var i=t.a/255,n=e+'="'+t.hex+'"';return i<1?n+" "+e+'-opacity="'+i.toFixed(2).slice(1)+'"':n}function s(t,e,i){var n=t+e;return void 0!==i&&(n+=" "+i),n}i.render=function(t,e,i){var a=n.getOptions(e),o=t.modules.size,l=t.modules.data,c=o+2*a.margin,h=a.color.light.a?"<path "+r(a.color.light,"fill")+' d="M0 0h'+c+"v"+c+'H0z"/>':"",u="<path "+r(a.color.dark,"stroke")+' d="'+function(t,e,i){for(var n="",r=0,a=!1,o=0,l=0;l<t.length;l++){var c=Math.floor(l%e),h=Math.floor(l/e);c||a||(a=!0),t[l]?(o++,l>0&&c>0&&t[l-1]||(n+=a?s("M",c+i,.5+h+i):s("m",r,0),r=0,a=!1),c+1<e&&t[l+1]||(n+=s("h",o),o=0)):r++}return n}(l,o,a.margin)+'"/>',d='viewBox="0 0 '+c+" "+c+'"',p='<svg xmlns="http://www.w3.org/2000/svg" '+(a.width?'width="'+a.width+'" height="'+a.width+'" ':"")+d+' shape-rendering="crispEdges">'+h+u+"</svg>\n";return"function"==typeof i&&i(null,p),p}},{"./utils":27}],27:[function(t,e,i){function n(t){if("number"==typeof t&&(t=t.toString()),"string"!=typeof t)throw new Error("Color should be defined as hex string");var e=t.slice().replace("#","").split("");if(e.length<3||5===e.length||e.length>8)throw new Error("Invalid hex color: "+t);3!==e.length&&4!==e.length||(e=Array.prototype.concat.apply([],e.map((function(t){return[t,t]})))),6===e.length&&e.push("F","F");var i=parseInt(e.join(""),16);return{r:i>>24&255,g:i>>16&255,b:i>>8&255,a:255&i,hex:"#"+e.slice(0,6).join("")}}i.getOptions=function(t){t||(t={}),t.color||(t.color={});var e=void 0===t.margin||null===t.margin||t.margin<0?4:t.margin,i=t.width&&t.width>=21?t.width:void 0,r=t.scale||4;return{width:i,scale:i?4:r,margin:e,color:{dark:n(t.color.dark||"#000000ff"),light:n(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}},i.getScale=function(t,e){return e.width&&e.width>=t+2*e.margin?e.width/(t+2*e.margin):e.scale},i.getImageWidth=function(t,e){var n=i.getScale(t,e);return Math.floor((t+2*e.margin)*n)},i.qrToImageData=function(t,e,n){for(var r=e.modules.size,s=e.modules.data,a=i.getScale(r,n),o=Math.floor((r+2*n.margin)*a),l=n.margin*a,c=[n.color.light,n.color.dark],h=0;h<o;h++)for(var u=0;u<o;u++){var d=4*(h*o+u),p=n.color.light;h>=l&&u>=l&&h<o-l&&u<o-l&&(p=c[s[Math.floor((h-l)/a)*r+Math.floor((u-l)/a)]?1:0]),t[d++]=p.r,t[d++]=p.g,t[d++]=p.b,t[d]=p.a}}},{}],28:[function(t,e,i){var n=t("isarray");s.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()}catch(t){return!1}}();var r=s.TYPED_ARRAY_SUPPORT?2147483647:1073741823;function s(t,e,i){return s.TYPED_ARRAY_SUPPORT||this instanceof s?"number"==typeof t?l(this,t):function(t,e,i,n){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,i,n){if(i<0||e.byteLength<i)throw new RangeError("'offset' is out of bounds");if(e.byteLength<i+(n||0))throw new RangeError("'length' is out of bounds");var r;return r=void 0===i&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,i):new Uint8Array(e,i,n),s.TYPED_ARRAY_SUPPORT?r.__proto__=s.prototype:r=c(t,r),r}(t,e,i,n):"string"==typeof e?function(t,e){var i=0|u(e),n=o(t,i),r=n.write(e);return r!==i&&(n=n.slice(0,r)),n}(t,e):function(t,e){if(s.isBuffer(e)){var i=0|a(e.length),n=o(t,i);return 0===n.length||e.copy(n,0,0,i),n}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(r=e.length)!=r?o(t,0):c(t,e);if("Buffer"===e.type&&Array.isArray(e.data))return c(t,e.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}(this,t,e,i):new s(t,e,i)}function a(t){if(t>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return 0|t}function o(t,e){var i;return s.TYPED_ARRAY_SUPPORT?(i=new Uint8Array(e)).__proto__=s.prototype:(null===(i=t)&&(i=new s(e)),i.length=e),i}function l(t,e){var i=o(t,e<0?0:0|a(e));if(!s.TYPED_ARRAY_SUPPORT)for(var n=0;n<e;++n)i[n]=0;return i}function c(t,e){for(var i=e.length<0?0:0|a(e.length),n=o(t,i),r=0;r<i;r+=1)n[r]=255&e[r];return n}function h(t,e){var i;e=e||1/0;for(var n=t.length,r=null,s=[],a=0;a<n;++a){if((i=t.charCodeAt(a))>55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&s.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&s.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(e-=3)>-1&&s.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;s.push(i)}else if(i<2048){if((e-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function u(t){return s.isBuffer(t)?t.length:"undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer)?t.byteLength:("string"!=typeof t&&(t=""+t),0===t.length?0:h(t).length)}s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1})),s.prototype.write=function(t,e,i){void 0===e||void 0===i&&"string"==typeof e?(i=this.length,e=0):isFinite(e)&&(e|=0,isFinite(i)?i|=0:i=void 0);var n=this.length-e;if((void 0===i||i>n)&&(i=n),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");return function(t,e,i,n){return function(t,e,i,n){for(var r=0;r<n&&!(r+i>=e.length||r>=t.length);++r)e[r+i]=t[r];return r}(h(e,t.length-i),t,i,n)}(this,t,e,i)},s.prototype.slice=function(t,e){var i,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e<t&&(e=t),s.TYPED_ARRAY_SUPPORT)(i=this.subarray(t,e)).__proto__=s.prototype;else{var r=e-t;i=new s(r,void 0);for(var a=0;a<r;++a)i[a]=this[a+t]}return i},s.prototype.copy=function(t,e,i,n){if(i||(i=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<i&&(n=i),n===i)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-i&&(n=t.length-e+i);var r,a=n-i;if(this===t&&i<e&&e<n)for(r=a-1;r>=0;--r)t[r+e]=this[r+i];else if(a<1e3||!s.TYPED_ARRAY_SUPPORT)for(r=0;r<a;++r)t[r+e]=this[r+i];else Uint8Array.prototype.set.call(t,this.subarray(i,i+a),e);return a},s.prototype.fill=function(t,e,i){if("string"==typeof t){if("string"==typeof e?(e=0,i=this.length):"string"==typeof i&&(i=this.length),1===t.length){var n=t.charCodeAt(0);n<256&&(t=n)}}else"number"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<i)throw new RangeError("Out of range index");if(i<=e)return this;var r;if(e>>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(r=e;r<i;++r)this[r]=t;else{var a=s.isBuffer(t)?t:new s(t),o=a.length;for(r=0;r<i-e;++r)this[r+e]=a[r%o]}return this},s.concat=function(t,e){if(!n(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return o(null,0);var i;if(void 0===e)for(e=0,i=0;i<t.length;++i)e+=t[i].length;var r=l(null,e),a=0;for(i=0;i<t.length;++i){var c=t[i];if(!s.isBuffer(c))throw new TypeError('"list" argument must be an Array of Buffers');c.copy(r,a),a+=c.length}return r},s.byteLength=u,s.prototype._isBuffer=!0,s.isBuffer=function(t){return!(null==t||!t._isBuffer)},e.exports.alloc=function(t){var e=new s(t);return e.fill(0),e},e.exports.from=function(t){return new s(t)}},{isarray:33}],29:[function(t,e,i){i.byteLength=function(t){var e=l(t),i=e[0],n=e[1];return 3*(i+n)/4-n},i.toByteArray=function(t){var e,i,n=l(t),a=n[0],o=n[1],c=new s(function(t,e,i){return 3*(e+i)/4-i}(0,a,o)),h=0,u=o>0?a-4:a;for(i=0;i<u;i+=4)e=r[t.charCodeAt(i)]<<18|r[t.charCodeAt(i+1)]<<12|r[t.charCodeAt(i+2)]<<6|r[t.charCodeAt(i+3)],c[h++]=e>>16&255,c[h++]=e>>8&255,c[h++]=255&e;return 2===o&&(e=r[t.charCodeAt(i)]<<2|r[t.charCodeAt(i+1)]>>4,c[h++]=255&e),1===o&&(e=r[t.charCodeAt(i)]<<10|r[t.charCodeAt(i+1)]<<4|r[t.charCodeAt(i+2)]>>2,c[h++]=e>>8&255,c[h++]=255&e),c},i.fromByteArray=function(t){for(var e,i=t.length,r=i%3,s=[],a=16383,o=0,l=i-r;o<l;o+=a)s.push(c(t,o,o+a>l?l:o+a));return 1===r?(e=t[i-1],s.push(n[e>>2]+n[e<<4&63]+"==")):2===r&&(e=(t[i-2]<<8)+t[i-1],s.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),s.join("")};for(var n=[],r=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)n[o]=a[o],r[a.charCodeAt(o)]=o;function l(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.indexOf("=");return-1===i&&(i=e),[i,i===e?0:4-i%4]}function c(t,e,i){for(var r,s=[],a=e;a<i;a+=3)r=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(255&t[a+2]),s.push(n[(o=r)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);var o;return s.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},{}],30:[function(t,e,i){var n=t("base64-js"),r=t("ieee754"),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;i.Buffer=l,i.SlowBuffer=function(t){return+t!=t&&(t=0),l.alloc(+t)},i.INSPECT_MAX_BYTES=50;var a=2147483647;function o(t){if(t>a)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,l.prototype),e}function l(t,e,i){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return u(t)}return c(t,e,i)}function c(t,e,i){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!l.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var i=0|f(t,e),n=o(i),r=n.write(t,e);return r!==i&&(n=n.slice(0,r)),n}(t,e);if(ArrayBuffer.isView(t))return d(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(V(t,ArrayBuffer)||t&&V(t.buffer,ArrayBuffer))return function(t,e,i){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(i||0))throw new RangeError('"length" is outside of buffer bounds');var n;return n=void 0===e&&void 0===i?new Uint8Array(t):void 0===i?new Uint8Array(t,e):new Uint8Array(t,e,i),Object.setPrototypeOf(n,l.prototype),n}(t,e,i);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return l.from(n,e,i);var r=function(t){if(l.isBuffer(t)){var e=0|p(t.length),i=o(e);return 0===i.length||t.copy(i,0,0,e),i}return void 0!==t.length?"number"!=typeof t.length||j(t.length)?o(0):d(t):"Buffer"===t.type&&Array.isArray(t.data)?d(t.data):void 0}(t);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return l.from(t[Symbol.toPrimitive]("string"),e,i);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function h(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function u(t){return h(t),o(t<0?0:0|p(t))}function d(t){for(var e=t.length<0?0:0|p(t.length),i=o(e),n=0;n<e;n+=1)i[n]=255&t[n];return i}function p(t){if(t>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|t}function f(t,e){if(l.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||V(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var i=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===i)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":return U(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return $(t).length;default:if(r)return n?-1:U(t).length;e=(""+e).toLowerCase(),r=!0}}function g(t,e,i){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return N(this,e,i);case"utf8":case"utf-8":return S(this,e,i);case"ascii":return k(this,e,i);case"latin1":case"binary":return T(this,e,i);case"base64":return x(this,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,e,i);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function A(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function m(t,e,i,n,r){if(0===t.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),j(i=+i)&&(i=r?0:t.length-1),i<0&&(i=t.length+i),i>=t.length){if(r)return-1;i=t.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof e&&(e=l.from(e,n)),l.isBuffer(e))return 0===e.length?-1:v(t,e,i,n,r);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(t,e,i):Uint8Array.prototype.lastIndexOf.call(t,e,i):v(t,[e],i,n,r);throw new TypeError("val must be string, number or Buffer")}function v(t,e,i,n,r){var s,a=1,o=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,o/=2,l/=2,i/=2}function c(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(r){var h=-1;for(s=i;s<o;s++)if(c(t,s)===c(e,-1===h?0:s-h)){if(-1===h&&(h=s),s-h+1===l)return h*a}else-1!==h&&(s-=s-h),h=-1}else for(i+l>o&&(i=o-l),s=i;s>=0;s--){for(var u=!0,d=0;d<l;d++)if(c(t,s+d)!==c(e,d)){u=!1;break}if(u)return s}return-1}function y(t,e,i,n){i=Number(i)||0;var r=t.length-i;n?(n=Number(n))>r&&(n=r):n=r;var s=e.length;n>s/2&&(n=s/2);for(var a=0;a<n;++a){var o=parseInt(e.substr(2*a,2),16);if(j(o))return a;t[i+a]=o}return a}function w(t,e,i,n){return F(U(e,t.length-i),t,i,n)}function C(t,e,i,n){return F(function(t){for(var e=[],i=0;i<t.length;++i)e.push(255&t.charCodeAt(i));return e}(e),t,i,n)}function b(t,e,i,n){return C(t,e,i,n)}function _(t,e,i,n){return F($(e),t,i,n)}function E(t,e,i,n){return F(function(t,e){for(var i,n,r,s=[],a=0;a<t.length&&!((e-=2)<0);++a)n=(i=t.charCodeAt(a))>>8,r=i%256,s.push(r),s.push(n);return s}(e,t.length-i),t,i,n)}function x(t,e,i){return 0===e&&i===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,i))}function S(t,e,i){i=Math.min(t.length,i);for(var n=[],r=e;r<i;){var s,a,o,l,c=t[r],h=null,u=c>239?4:c>223?3:c>191?2:1;if(r+u<=i)switch(u){case 1:c<128&&(h=c);break;case 2:128==(192&(s=t[r+1]))&&(l=(31&c)<<6|63&s)>127&&(h=l);break;case 3:s=t[r+1],a=t[r+2],128==(192&s)&&128==(192&a)&&(l=(15&c)<<12|(63&s)<<6|63&a)>2047&&(l<55296||l>57343)&&(h=l);break;case 4:s=t[r+1],a=t[r+2],o=t[r+3],128==(192&s)&&128==(192&a)&&128==(192&o)&&(l=(15&c)<<18|(63&s)<<12|(63&a)<<6|63&o)>65535&&l<1114112&&(h=l)}null===h?(h=65533,u=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),r+=u}return function(t){var e=t.length;if(e<=I)return String.fromCharCode.apply(String,t);for(var i="",n=0;n<e;)i+=String.fromCharCode.apply(String,t.slice(n,n+=I));return i}(n)}i.kMaxLength=a,l.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),l.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}}),"undefined"!=typeof Symbol&&null!=Symbol.species&&l[Symbol.species]===l&&Object.defineProperty(l,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),l.poolSize=8192,l.from=function(t,e,i){return c(t,e,i)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array),l.alloc=function(t,e,i){return function(t,e,i){return h(t),t<=0?o(t):void 0!==e?"string"==typeof i?o(t).fill(e,i):o(t).fill(e):o(t)}(t,e,i)},l.allocUnsafe=function(t){return u(t)},l.allocUnsafeSlow=function(t){return u(t)},l.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==l.prototype},l.compare=function(t,e){if(V(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),V(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(t)||!l.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var i=t.length,n=e.length,r=0,s=Math.min(i,n);r<s;++r)if(t[r]!==e[r]){i=t[r],n=e[r];break}return i<n?-1:n<i?1:0},l.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return l.alloc(0);var i;if(void 0===e)for(e=0,i=0;i<t.length;++i)e+=t[i].length;var n=l.allocUnsafe(e),r=0;for(i=0;i<t.length;++i){var s=t[i];if(V(s,Uint8Array)&&(s=l.from(s)),!l.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(n,r),r+=s.length}return n},l.byteLength=f,l.prototype._isBuffer=!0,l.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)A(this,e,e+1);return this},l.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)A(this,e,e+3),A(this,e+1,e+2);return this},l.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)A(this,e,e+7),A(this,e+1,e+6),A(this,e+2,e+5),A(this,e+3,e+4);return this},l.prototype.toString=function(){var t=this.length;return 0===t?"":0===arguments.length?S(this,0,t):g.apply(this,arguments)},l.prototype.toLocaleString=l.prototype.toString,l.prototype.equals=function(t){if(!l.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===l.compare(this,t)},l.prototype.inspect=function(){var t="",e=i.INSPECT_MAX_BYTES;return t=this.toString("hex",0,e).replace(/(.{2})/g,"$1 ").trim(),this.length>e&&(t+=" ... "),"<Buffer "+t+">"},s&&(l.prototype[s]=l.prototype.inspect),l.prototype.compare=function(t,e,i,n,r){if(V(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),!l.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===i&&(i=t?t.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),e<0||i>t.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&e>=i)return 0;if(n>=r)return-1;if(e>=i)return 1;if(this===t)return 0;for(var s=(r>>>=0)-(n>>>=0),a=(i>>>=0)-(e>>>=0),o=Math.min(s,a),c=this.slice(n,r),h=t.slice(e,i),u=0;u<o;++u)if(c[u]!==h[u]){s=c[u],a=h[u];break}return s<a?-1:a<s?1:0},l.prototype.includes=function(t,e,i){return-1!==this.indexOf(t,e,i)},l.prototype.indexOf=function(t,e,i){return m(this,t,e,i,!0)},l.prototype.lastIndexOf=function(t,e,i){return m(this,t,e,i,!1)},l.prototype.write=function(t,e,i,n){if(void 0===e)n="utf8",i=this.length,e=0;else if(void 0===i&&"string"==typeof e)n=e,i=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(i)?(i>>>=0,void 0===n&&(n="utf8")):(n=i,i=void 0)}var r=this.length-e;if((void 0===i||i>r)&&(i=r),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return y(this,t,e,i);case"utf8":case"utf-8":return w(this,t,e,i);case"ascii":return C(this,t,e,i);case"latin1":case"binary":return b(this,t,e,i);case"base64":return _(this,t,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,i);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;function k(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;r<i;++r)n+=String.fromCharCode(127&t[r]);return n}function T(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;r<i;++r)n+=String.fromCharCode(t[r]);return n}function N(t,e,i){var n=t.length;(!e||e<0)&&(e=0),(!i||i<0||i>n)&&(i=n);for(var r="",s=e;s<i;++s)r+=q[t[s]];return r}function D(t,e,i){for(var n=t.slice(e,i),r="",s=0;s<n.length;s+=2)r+=String.fromCharCode(n[s]+256*n[s+1]);return r}function P(t,e,i){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>i)throw new RangeError("Trying to access beyond buffer length")}function R(t,e,i,n,r,s){if(!l.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>r||e<s)throw new RangeError('"value" argument is out of bounds');if(i+n>t.length)throw new RangeError("Index out of range")}function B(t,e,i,n,r,s){if(i+n>t.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function L(t,e,i,n,s){return e=+e,i>>>=0,s||B(t,0,i,4),r.write(t,e,i,n,23,4),i+4}function O(t,e,i,n,s){return e=+e,i>>>=0,s||B(t,0,i,8),r.write(t,e,i,n,52,8),i+8}l.prototype.slice=function(t,e){var i=this.length;(t=~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),(e=void 0===e?i:~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),e<t&&(e=t);var n=this.subarray(t,e);return Object.setPrototypeOf(n,l.prototype),n},l.prototype.readUIntLE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=this[t],r=1,s=0;++s<e&&(r*=256);)n+=this[t+s]*r;return n},l.prototype.readUIntBE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=this[t+--e],r=1;e>0&&(r*=256);)n+=this[t+--e]*r;return n},l.prototype.readUInt8=function(t,e){return t>>>=0,e||P(t,1,this.length),this[t]},l.prototype.readUInt16LE=function(t,e){return t>>>=0,e||P(t,2,this.length),this[t]|this[t+1]<<8},l.prototype.readUInt16BE=function(t,e){return t>>>=0,e||P(t,2,this.length),this[t]<<8|this[t+1]},l.prototype.readUInt32LE=function(t,e){return t>>>=0,e||P(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},l.prototype.readUInt32BE=function(t,e){return t>>>=0,e||P(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},l.prototype.readIntLE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=this[t],r=1,s=0;++s<e&&(r*=256);)n+=this[t+s]*r;return n>=(r*=128)&&(n-=Math.pow(2,8*e)),n},l.prototype.readIntBE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=e,r=1,s=this[t+--n];n>0&&(r*=256);)s+=this[t+--n]*r;return s>=(r*=128)&&(s-=Math.pow(2,8*e)),s},l.prototype.readInt8=function(t,e){return t>>>=0,e||P(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},l.prototype.readInt16LE=function(t,e){t>>>=0,e||P(t,2,this.length);var i=this[t]|this[t+1]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt16BE=function(t,e){t>>>=0,e||P(t,2,this.length);var i=this[t+1]|this[t]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt32LE=function(t,e){return t>>>=0,e||P(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},l.prototype.readInt32BE=function(t,e){return t>>>=0,e||P(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},l.prototype.readFloatLE=function(t,e){return t>>>=0,e||P(t,4,this.length),r.read(this,t,!0,23,4)},l.prototype.readFloatBE=function(t,e){return t>>>=0,e||P(t,4,this.length),r.read(this,t,!1,23,4)},l.prototype.readDoubleLE=function(t,e){return t>>>=0,e||P(t,8,this.length),r.read(this,t,!0,52,8)},l.prototype.readDoubleBE=function(t,e){return t>>>=0,e||P(t,8,this.length),r.read(this,t,!1,52,8)},l.prototype.writeUIntLE=function(t,e,i,n){t=+t,e>>>=0,i>>>=0,n||R(this,t,e,i,Math.pow(2,8*i)-1,0);var r=1,s=0;for(this[e]=255&t;++s<i&&(r*=256);)this[e+s]=t/r&255;return e+i},l.prototype.writeUIntBE=function(t,e,i,n){t=+t,e>>>=0,i>>>=0,n||R(this,t,e,i,Math.pow(2,8*i)-1,0);var r=i-1,s=1;for(this[e+r]=255&t;--r>=0&&(s*=256);)this[e+r]=t/s&255;return e+i},l.prototype.writeUInt8=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,1,255,0),this[e]=255&t,e+1},l.prototype.writeUInt16LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeUInt16BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeUInt32LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},l.prototype.writeUInt32BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeIntLE=function(t,e,i,n){if(t=+t,e>>>=0,!n){var r=Math.pow(2,8*i-1);R(this,t,e,i,r-1,-r)}var s=0,a=1,o=0;for(this[e]=255&t;++s<i&&(a*=256);)t<0&&0===o&&0!==this[e+s-1]&&(o=1),this[e+s]=(t/a|0)-o&255;return e+i},l.prototype.writeIntBE=function(t,e,i,n){if(t=+t,e>>>=0,!n){var r=Math.pow(2,8*i-1);R(this,t,e,i,r-1,-r)}var s=i-1,a=1,o=0;for(this[e+s]=255&t;--s>=0&&(a*=256);)t<0&&0===o&&0!==this[e+s+1]&&(o=1),this[e+s]=(t/a|0)-o&255;return e+i},l.prototype.writeInt8=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},l.prototype.writeInt16LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeInt16BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeInt32LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},l.prototype.writeInt32BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeFloatLE=function(t,e,i){return L(this,t,e,!0,i)},l.prototype.writeFloatBE=function(t,e,i){return L(this,t,e,!1,i)},l.prototype.writeDoubleLE=function(t,e,i){return O(this,t,e,!0,i)},l.prototype.writeDoubleBE=function(t,e,i){return O(this,t,e,!1,i)},l.prototype.copy=function(t,e,i,n){if(!l.isBuffer(t))throw new TypeError("argument should be a Buffer");if(i||(i=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<i&&(n=i),n===i)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-i&&(n=t.length-e+i);var r=n-i;if(this===t&&"function"==typeof Uint8Array.prototype.copyWithin)this.copyWithin(e,i,n);else if(this===t&&i<e&&e<n)for(var s=r-1;s>=0;--s)t[s+e]=this[s+i];else Uint8Array.prototype.set.call(t,this.subarray(i,n),e);return r},l.prototype.fill=function(t,e,i,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,i=this.length):"string"==typeof i&&(n=i,i=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!l.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){var r=t.charCodeAt(0);("utf8"===n&&r<128||"latin1"===n)&&(t=r)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<i)throw new RangeError("Out of range index");if(i<=e)return this;var s;if(e>>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(s=e;s<i;++s)this[s]=t;else{var a=l.isBuffer(t)?t:l.from(t,n),o=a.length;if(0===o)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(s=0;s<i-e;++s)this[s+e]=a[s%o]}return this};var M=/[^+/0-9A-Za-z-_]/g;function U(t,e){var i;e=e||1/0;for(var n=t.length,r=null,s=[],a=0;a<n;++a){if((i=t.charCodeAt(a))>55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&s.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&s.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(e-=3)>-1&&s.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;s.push(i)}else if(i<2048){if((e-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function $(t){return n.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(M,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function F(t,e,i,n){for(var r=0;r<n&&!(r+i>=e.length||r>=t.length);++r)e[r+i]=t[r];return r}function V(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function j(t){return t!=t}var q=function(){for(var t="0123456789abcdef",e=new Array(256),i=0;i<16;++i)for(var n=16*i,r=0;r<16;++r)e[n+r]=t[i]+t[r];return e}()},{"base64-js":29,ieee754:32}],31:[function(t,e,i){var n={single_source_shortest_paths:function(t,e,i){var r={},s={};s[e]=0;var a,o,l,c,h,u,d,p=n.PriorityQueue.make();for(p.push(e,0);!p.empty();)for(l in o=(a=p.pop()).value,c=a.cost,h=t[o]||{})h.hasOwnProperty(l)&&(u=c+h[l],d=s[l],(void 0===s[l]||d>u)&&(s[l]=u,p.push(l,u),r[l]=o));if(void 0!==i&&void 0===s[i]){var f=["Could not find a path from ",e," to ",i,"."].join("");throw new Error(f)}return r},extract_shortest_path_from_predecessor_list:function(t,e){for(var i=[],n=e;n;)i.push(n),t[n],n=t[n];return i.reverse(),i},find_path:function(t,e,i){var r=n.single_source_shortest_paths(t,e,i);return n.extract_shortest_path_from_predecessor_list(r,i)},PriorityQueue:{make:function(t){var e,i=n.PriorityQueue,r={};for(e in t=t||{},i)i.hasOwnProperty(e)&&(r[e]=i[e]);return r.queue=[],r.sorter=t.sorter||i.default_sorter,r},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){var i={value:t,cost:e};this.queue.push(i),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};void 0!==e&&(e.exports=n)},{}],32:[function(t,e,i){i.read=function(t,e,i,n,r){var s,a,o=8*r-n-1,l=(1<<o)-1,c=l>>1,h=-7,u=i?r-1:0,d=i?-1:1,p=t[e+u];for(u+=d,s=p&(1<<-h)-1,p>>=-h,h+=o;h>0;s=256*s+t[e+u],u+=d,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=n;h>0;a=256*a+t[e+u],u+=d,h-=8);if(0===s)s=1-c;else{if(s===l)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,n),s-=c}return(p?-1:1)*a*Math.pow(2,s-n)},i.write=function(t,e,i,n,r,s){var a,o,l,c=8*s-r-1,h=(1<<c)-1,u=h>>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,f=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=h):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),(e+=a+u>=1?d/l:d*Math.pow(2,1-u))*l>=2&&(a++,l/=2),a+u>=h?(o=0,a=h):a+u>=1?(o=(e*l-1)*Math.pow(2,r),a+=u):(o=e*Math.pow(2,u-1)*Math.pow(2,r),a=0));r>=8;t[i+p]=255&o,p+=f,o/=256,r-=8);for(a=a<<r|o,c+=r;c>0;t[i+p]=255&a,p+=f,a/=256,c-=8);t[i+p-f]|=128*g}},{}],33:[function(t,e,i){var n={}.toString;e.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},{}]},{},[24])(24)},e.exports=n()}));return{name:"qrcode",props:{value:null,options:Object,tag:{type:String,default:"canvas"}},render:function(t){return t(this.tag,this.$slots.default)},watch:{$props:{deep:!0,immediate:!0,handler:function(){this.$el&&this.generate()}}},methods:{generate:function(){var t=this,i=this.options,n=this.tag,r=String(this.value);"canvas"===n?e.toCanvas(this.$el,r,i,(function(t){if(t)throw t})):"img"===n?e.toDataURL(r,i,(function(e,i){if(e)throw e;t.$el.src=i})):e.toString(r,i,(function(e,i){if(e)throw e;t.$el.innerHTML=i}))}},mounted:function(){this.generate()}}}()},97380:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\n opacity: 0;\n}\n.linked-icons[data-v-42733c12] {\n display: flex;\n}\n.linked-icons img[data-v-42733c12] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-42733c12]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-42733c12] {\n display: none;\n}\n.popovermenu.open[data-v-42733c12] {\n display: block;\n}\nli.collection-list-item[data-v-42733c12] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-42733c12] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-42733c12] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-42733c12] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-42733c12] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-42733c12] {\n animation: shake-42733c12 0.6s 1 linear;\n}\n@keyframes shake-42733c12 {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}.collection-list *[data-v-8ebb2593] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-8ebb2593] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-8ebb2593] {\n margin-top: auto;\n}\n#collection-select-container[data-v-8ebb2593] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-8ebb2593] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-8ebb2593]:hover {\n opacity: 1;\n}\np.hint[data-v-8ebb2593] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-8ebb2593] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-8ebb2593] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-8ebb2593] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-8ebb2593] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-8ebb2593] {\n padding: 4px;\n}\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\n opacity: 0;\n}","",{version:3,sources:["webpack://./node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css"],names:[],mappings:"AAAA;EACE,6BAA6B;AAC/B;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,YAAY;EACZ,cAAc;EACd,4BAA4B;EAC5B,2BAA2B;EAC3B,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,eAAe;EACf,YAAY;EACZ,eAAe;EACf,2BAA2B;AAC7B;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,YAAY;EACZ,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,6CAA6C;AAC/C;AACA;EACE,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,aAAa;EACb,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,YAAY;EACZ,YAAY;EACZ,4BAA4B;EAC5B,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,kBAAkB;AACpB;AACA;EACE,uBAAuB;EACvB,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,YAAY;AACd;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,2BAA2B;AAC/B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,yBAAyB;AAC7B;AACA,CAAC;EACC,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,SAAS;AACX;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,oCAAoC;EACpC,mBAAmB;AACrB;AACA;EACE,WAAW;EACX,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,8CAA8C;EAC9C,gBAAgB;AAClB;;AAEA,qCAAqC;AACrC;EACE,cAAc;EACd,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;EACd,2DAA2D;AAC7D;AACA;EACE,YAAY;AACd;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,UAAU;AACZ",sourcesContent:[".fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\n opacity: 0;\n}\n.linked-icons[data-v-42733c12] {\n display: flex;\n}\n.linked-icons img[data-v-42733c12] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-42733c12]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-42733c12] {\n display: none;\n}\n.popovermenu.open[data-v-42733c12] {\n display: block;\n}\nli.collection-list-item[data-v-42733c12] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-42733c12] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-42733c12] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-42733c12] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-42733c12] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-42733c12] {\n animation: shake-42733c12 0.6s 1 linear;\n}\n@keyframes shake-42733c12 {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}.collection-list *[data-v-8ebb2593] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-8ebb2593] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-8ebb2593] {\n margin-top: auto;\n}\n#collection-select-container[data-v-8ebb2593] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-8ebb2593] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-8ebb2593]:hover {\n opacity: 1;\n}\np.hint[data-v-8ebb2593] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-8ebb2593] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-8ebb2593] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-8ebb2593] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-8ebb2593] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-8ebb2593] {\n padding: 4px;\n}\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\n opacity: 0;\n}"],sourceRoot:""}]);const o=a},63592:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-e994747e]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-e994747e]{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-e994747e]{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-e994747e],.sharing-entry__summary__desc small[data-v-e994747e]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-e994747e]{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 o=a},88346:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-32cb91ce]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-32cb91ce]{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-32cb91ce]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-32cb91ce]{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 o=a},23815:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry__internal .avatar-external[data-v-1d9a7cfa]{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-1d9a7cfa]{opacity:1;color:var(--color-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,0BAAA",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-success);\n\t}\n}\n"],sourceRoot:""}]);const o=a},98733:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-3d033992]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-3d033992]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-3d033992]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-3d033992]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-3d033992]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-3d033992]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-3d033992] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-3d033992]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-3d033992]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-3d033992],.sharing-entry .action-item~.sharing-entry__loading[data-v-3d033992]{margin-inline-start:0}.sharing-entry .icon-checkmark-color[data-v-3d033992]{opacity:1;color:var(--color-success)}.qr-code-dialog[data-v-3d033992]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-3d033992]{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,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAKF,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,sDACC,SAAA,CACA,0BAAA,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}\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&: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.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-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 o=a},60469:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".share-select[data-v-be1cd266]{display:block}.share-select[data-v-be1cd266] .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-be1cd266] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-be1cd266] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-be1cd266] .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 o=a},86495:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-4c49edf4]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-4c49edf4]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-4c49edf4]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-4c49edf4]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-4c49edf4]{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 o=a},67510:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.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 o=a},8699:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharingTabDetailsView[data-v-db4347b0]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-db4347b0]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-db4347b0]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-db4347b0]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-db4347b0]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-db4347b0]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-db4347b0]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-db4347b0]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-db4347b0]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-db4347b0] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-db4347b0] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-db4347b0] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-db4347b0]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-db4347b0]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-db4347b0]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-db4347b0],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-db4347b0]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-db4347b0]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-db4347b0] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-db4347b0]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-db4347b0]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-db4347b0]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-db4347b0]{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-db4347b0]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-db4347b0]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-db4347b0]: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 o=a},91877:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry__inherited .avatar-shared[data-v-4baa5581]{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 o=a},86761:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".emptyContentWithSections[data-v-15a4df38]{margin:1rem auto}.sharingTab[data-v-15a4df38]{position:relative;height:100%}.sharingTab__content[data-v-15a4df38]{padding:0 6px}.sharingTab__content section[data-v-15a4df38]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-15a4df38]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-15a4df38]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-15a4df38]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-15a4df38]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-15a4df38]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-15a4df38]{margin:44px 0}.hint-body[data-v-15a4df38]{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,CAEA,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,aAAA,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\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: 44px 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n"],sourceRoot:""}]);const o=a},48318:function(t,e,i){!function(t){"use strict";var e,i=function(){try{if(t.URLSearchParams&&"bar"===new t.URLSearchParams("foo=bar").get("foo"))return t.URLSearchParams}catch(t){}return null}(),n=i&&"a=1"===new i({a:1}).toString(),r=i&&"+"===new i("s=%2B").get("s"),s=i&&"size"in i.prototype,a="__URLSearchParams__",o=!i||((e=new i).append("s"," &"),"s=+%26"===e.toString()),l=p.prototype,c=!(!t.Symbol||!t.Symbol.iterator);if(!(i&&n&&r&&o&&s)){l.append=function(t,e){v(this[a],t,e)},l.delete=function(t){delete this[a][t]},l.get=function(t){var e=this[a];return this.has(t)?e[t][0]:null},l.getAll=function(t){var e=this[a];return this.has(t)?e[t].slice(0):[]},l.has=function(t){return w(this[a],t)},l.set=function(t,e){this[a][t]=[""+e]},l.toString=function(){var t,e,i,n,r=this[a],s=[];for(e in r)for(i=f(e),t=0,n=r[e];t<n.length;t++)s.push(i+"="+f(n[t]));return s.join("&")};var h,u=t.Proxy&&i&&(!r||!o||!n||!s);u?(h=new Proxy(i,{construct:function(t,e){return new t(new p(e[0]).toString())}})).toString=Function.prototype.toString.bind(p):h=p,Object.defineProperty(t,"URLSearchParams",{value:h});var d=t.URLSearchParams.prototype;d.polyfill=!0,!u&&t.Symbol&&(d[t.Symbol.toStringTag]="URLSearchParams"),"forEach"in d||(d.forEach=function(t,e){var i=m(this.toString());Object.getOwnPropertyNames(i).forEach((function(n){i[n].forEach((function(i){t.call(e,i,n,this)}),this)}),this)}),"sort"in d||(d.sort=function(){var t,e,i,n=m(this.toString()),r=[];for(t in n)r.push(t);for(r.sort(),e=0;e<r.length;e++)this.delete(r[e]);for(e=0;e<r.length;e++){var s=r[e],a=n[s];for(i=0;i<a.length;i++)this.append(s,a[i])}}),"keys"in d||(d.keys=function(){var t=[];return this.forEach((function(e,i){t.push(i)})),A(t)}),"values"in d||(d.values=function(){var t=[];return this.forEach((function(e){t.push(e)})),A(t)}),"entries"in d||(d.entries=function(){var t=[];return this.forEach((function(e,i){t.push([i,e])})),A(t)}),c&&(d[t.Symbol.iterator]=d[t.Symbol.iterator]||d.entries),"size"in d||Object.defineProperty(d,"size",{get:function(){var t=m(this.toString());if(d===this)throw new TypeError("Illegal invocation at URLSearchParams.invokeGetter");return Object.keys(t).reduce((function(e,i){return e+t[i].length}),0)}})}function p(t){((t=t||"")instanceof URLSearchParams||t instanceof p)&&(t=t.toString()),this[a]=m(t)}function f(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'\(\)~]|%20|%00/g,(function(t){return e[t]}))}function g(t){return t.replace(/[ +]/g,"%20").replace(/(%[a-f0-9]{2})+/gi,(function(t){return decodeURIComponent(t)}))}function A(e){var i={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return c&&(i[t.Symbol.iterator]=function(){return i}),i}function m(t){var e={};if("object"==typeof t)if(y(t))for(var i=0;i<t.length;i++){var n=t[i];if(!y(n)||2!==n.length)throw new TypeError("Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements");v(e,n[0],n[1])}else for(var r in t)t.hasOwnProperty(r)&&v(e,r,t[r]);else{0===t.indexOf("?")&&(t=t.slice(1));for(var s=t.split("&"),a=0;a<s.length;a++){var o=s[a],l=o.indexOf("=");-1<l?v(e,g(o.slice(0,l)),g(o.slice(l+1))):o&&v(e,g(o),"")}}return e}function v(t,e,i){var n="string"==typeof i?i:null!=i&&"function"==typeof i.toString?i.toString():JSON.stringify(i);w(t,e)?t[e].push(n):t[e]=[n]}function y(t){return!!t&&"[object Array]"===Object.prototype.toString.call(t)}function w(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(void 0!==i.g?i.g:"undefined"!=typeof window?window:this)},37371:(e,i,n)=>{"use strict";n.r(i),n.d(i,{default:()=>Ii});var r=n(21777),s=n(35810),a=n(32981),o=n(63814),l=n(85072),c=n.n(l),h=n(97825),u=n.n(h),d=n(77659),p=n.n(d),f=n(55056),g=n.n(f),A=n(10540),m=n.n(A),v=n(41113),y=n.n(v),w=n(97380),C={};C.styleTagTransform=y(),C.setAttributes=g(),C.insert=p().bind(null,"head"),C.domAPI=u(),C.insertStyleElement=m(),c()(w.A,C),w.A&&w.A.locals&&w.A.locals;var b=n(53334),_=n(41944),E=n(67607);const x=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},S="object"==typeof global&&global&&global.Object===Object&&global;var I="object"==typeof self&&self&&self.Object===Object&&self;const k=S||I||Function("return this")(),T=function(){return k.Date.now()};var N=/\s/;var D=/^\s+/;const P=function(t){return t?t.slice(0,function(t){for(var e=t.length;e--&&N.test(t.charAt(e)););return e}(t)+1).replace(D,""):t},R=k.Symbol;var B=Object.prototype,L=B.hasOwnProperty,O=B.toString,M=R?R.toStringTag:void 0;var U=Object.prototype.toString;var $=R?R.toStringTag:void 0;const F=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":$&&$ in Object(t)?function(t){var e=L.call(t,M),i=t[M];try{t[M]=void 0;var n=!0}catch(t){}var r=O.call(t);return n&&(e?t[M]=i:delete t[M]),r}(t):function(t){return U.call(t)}(t)};var V=/^[-+]0x[0-9a-f]+$/i,j=/^0b[01]+$/i,q=/^0o[0-7]+$/i,z=parseInt;const H=function(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return null!=t&&"object"==typeof t}(t)&&"[object Symbol]"==F(t)}(t))return NaN;if(x(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=x(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=P(t);var i=j.test(t);return i||q.test(t)?z(t.slice(2),i?2:8):V.test(t)?NaN:+t};var G=Math.max,Y=Math.min;var W=n(24764),X=n(57505),Q=n(85471),Z=n(65043);const K=new class{constructor(){this.http=Z.Ay}listCollection(t){return this.http.get((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}))}renameCollection(t,e){return this.http.put((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{collectionName:e}).then((t=>t.data.ocs.data))}getCollectionsByResource(t,e){return this.http.get((0,o.KT)("collaboration/resources/{resourceType}/{resourceId}",{resourceType:t,resourceId:e})).then((t=>t.data.ocs.data))}createCollection(t,e,i){return this.http.post((0,o.KT)("collaboration/resources/{resourceType}/{resourceId}",{resourceType:t,resourceId:e}),{name:i}).then((t=>t.data.ocs.data))}addResource(t,e,i){return i=""+i,this.http.post((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{resourceType:e,resourceId:i}).then((t=>t.data.ocs.data))}removeResource(t,e,i){return this.http.delete((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{params:{resourceType:e,resourceId:i}}).then((t=>t.data.ocs.data))}search(t){return this.http.get((0,o.KT)("collaboration/resources/collections/search/{query}",{query:t})).then((t=>t.data.ocs.data))}},J=(0,Q.Kh)({collections:[]}),tt={addCollections(t){(0,Q.hZ)(J,"collections",t)},addCollection(t){J.collections.push(t)},removeCollection(t){(0,Q.hZ)(J,"collections",J.collections.filter((e=>e.id!==t)))},updateCollection(t){const e=J.collections.findIndex((e=>e.id===t.id));-1!==e?(0,Q.hZ)(J.collections,e,t):J.collections.push(t)}},et={fetchCollectionsByResource:({resourceType:t,resourceId:e})=>K.getCollectionsByResource(t,e).then((t=>(tt.addCollections(t),t))),createCollection:({baseResourceType:t,baseResourceId:e,resourceType:i,resourceId:n,name:r})=>K.createCollection(t,e,r).then((t=>{tt.addCollection(t),et.addResourceToCollection({collectionId:t.id,resourceType:i,resourceId:n})})),renameCollection:({collectionId:t,name:e})=>K.renameCollection(t,e).then((t=>(tt.updateCollection(t),t))),addResourceToCollection:({collectionId:t,resourceType:e,resourceId:i})=>K.addResource(t,e,i).then((t=>(tt.updateCollection(t),t))),removeResource:({collectionId:t,resourceType:e,resourceId:i})=>K.removeResource(t,e,i).then((t=>{t.resources.length>0?tt.updateCollection(t):tt.removeCollection(t)})),search:t=>K.search(t)};function it(t,e,i,n,r,s,a,o){var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=i,c._compiled=!0),n&&(c.functional=!0),s&&(c._scopeId="data-v-"+s),a?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=l):r&&(l=o?function(){r.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(c.functional){c._injectStyles=l;var h=c.render;c.render=function(t,e){return l.call(e),h(t,e)}}else{var u=c.beforeCreate;c.beforeCreate=u?[].concat(u,l):[l]}return{exports:t,options:c}}const nt=it({name:"CollectionListItem",components:{NcAvatar:_.A,NcActions:W.A,NcActionButton:X.A},props:{collection:{type:Object,default:null}},data:()=>({detailsOpen:!1,newName:null,error:{}}),computed:{getIcon:()=>t=>[t.iconClass],typeClass:()=>t=>"resource-type-"+t.type,limitedResources:()=>t=>t.resources?t.resources.slice(0,2):[],iconUrl:()=>t=>t.mimetype?OC.MimeType.getIconUrl(t.mimetype):t.iconUrl?t.iconUrl:""},methods:{t:b.t,toggleDetails(){this.detailsOpen=!this.detailsOpen},showDetails(){this.detailsOpen=!0},hideDetails(){this.detailsOpen=!1},removeResource(t,e){et.removeResource({collectionId:t.id,resourceType:e.type,resourceId:e.id})},openRename(){this.newName=this.collection.name},renameCollection(){""!==this.newName?et.renameCollection({collectionId:this.collection.id,name:this.newName}).then((t=>{this.newName=null})).catch((t=>{this.$set(this.error,"rename",(0,b.t)("core","Failed to rename the project")),console.error(t),setTimeout((()=>{(0,Q.hZ)(this.error,"rename",null)}),3e3)})):this.newName=null}}},(function(){var t=this,e=t._self._c;return e("li",{staticClass:"collection-list-item"},[e("NcAvatar",{staticClass:"collection-avatar",attrs:{"display-name":t.collection.name,"allow-placeholder":""}}),null===t.newName?e("span",{staticClass:"collection-item-name",attrs:{title:""},on:{click:t.showDetails}},[t._v(t._s(t.collection.name))]):e("form",{class:{shouldshake:t.error.rename},on:{submit:function(e){return e.preventDefault(),t.renameCollection.apply(null,arguments)}}},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.newName,expression:"newName"}],attrs:{type:"text",autocomplete:"off",autocapitalize:"off"},domProps:{value:t.newName},on:{input:function(e){e.target.composing||(t.newName=e.target.value)}}}),e("input",{staticClass:"icon-confirm",attrs:{type:"submit",value:""}})]),t.detailsOpen||null!==t.newName?t._e():e("div",{staticClass:"linked-icons"},t._l(t.limitedResources(t.collection),(function(i){return e("a",{key:i.type+"|"+i.id,class:t.typeClass(i),attrs:{title:i.name,href:i.link}},[e("img",{attrs:{src:t.iconUrl(i)}})])})),0),null===t.newName?e("span",{staticClass:"sharingOptionsGroup"},[e("NcActions",[e("NcActionButton",{attrs:{icon:"icon-info"},on:{click:function(e){return e.preventDefault(),t.toggleDetails.apply(null,arguments)}}},[t._v(" "+t._s(t.detailsOpen?t.t("core","Hide details"):t.t("core","Show details"))+" ")]),e("NcActionButton",{attrs:{icon:"icon-rename"},on:{click:function(e){return e.preventDefault(),t.openRename.apply(null,arguments)}}},[t._v(" "+t._s(t.t("core","Rename project"))+" ")])],1)],1):t._e(),e("transition",{attrs:{name:"fade"}},[t.error.rename?e("div",{staticClass:"error"},[t._v(" "+t._s(t.error.rename)+" ")]):t._e()]),e("transition",{attrs:{name:"fade"}},[t.detailsOpen?e("ul",{staticClass:"resource-list-details"},t._l(t.collection.resources,(function(i){return e("li",{key:i.type+"|"+i.id,class:t.typeClass(i)},[e("a",{attrs:{href:i.link}},[e("img",{attrs:{src:t.iconUrl(i)}}),e("span",{staticClass:"resource-name"},[t._v(t._s(i.name||""))])]),e("span",{staticClass:"icon-close",on:{click:function(e){return t.removeResource(t.collection,i)}}})])})),0):t._e()])],1)}),[],!1,null,"42733c12",null,null).exports,rt=function(t,e,i){var n,r,s,a,o,l,c=0,h=!1,u=!1,d=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function p(e){var i=n,s=r;return n=r=void 0,c=e,a=t.apply(s,i)}function f(t){var i=t-l;return void 0===l||i>=e||i<0||u&&t-c>=s}function g(){var t=T();if(f(t))return A(t);o=setTimeout(g,function(t){var i=e-(t-l);return u?Y(i,s-(t-c)):i}(t))}function A(t){return o=void 0,d&&n?p(t):(n=r=void 0,a)}function m(){var t=T(),i=f(t);if(n=arguments,r=this,l=t,i){if(void 0===o)return function(t){return c=t,o=setTimeout(g,e),h?p(t):a}(l);if(u)return clearTimeout(o),o=setTimeout(g,e),p(l)}return void 0===o&&(o=setTimeout(g,e)),a}return e=H(e)||0,x(i)&&(h=!!i.leading,s=(u="maxWait"in i)?G(H(i.maxWait)||0,e):s,d="trailing"in i?!!i.trailing:d),m.cancel=function(){void 0!==o&&clearTimeout(o),c=0,n=l=r=o=void 0},m.flush=function(){return void 0===o?a:A(T())},m}((function(t,e){""!==t&&(e(!0),et.search(t).then((t=>{this.searchCollections=t})).catch((t=>{console.error("Failed to search for collections",t)})).finally((()=>{e(!1)})))}),500,{}),st={name:"CollectionList",components:{CollectionListItem:nt,NcAvatar:_.A,NcSelect:E.A},props:{type:{type:String,default:null},id:{type:String,default:null},name:{type:String,default:""},isActive:{type:Boolean,default:!0}},setup:()=>({state:J}),data:()=>({selectIsOpen:!1,generatingCodes:!1,codes:void 0,value:null,model:{},searchCollections:[],error:null,isSelectOpen:!1}),computed:{collections(){return this.state.collections.filter((t=>void 0!==t.resources.find((t=>t&&t.id===""+this.id&&t.type===this.type))))},placeholder(){return this.isSelectOpen?(0,b.t)("core","Type to search for existing projects"):(0,b.t)("core","Add to a project")},options(){const t=[];window.OCP.Collaboration.getTypes().sort().forEach((e=>{t.push({method:0,type:e,title:window.OCP.Collaboration.getLabel(e),class:window.OCP.Collaboration.getIcon(e),action:()=>window.OCP.Collaboration.trigger(e)})}));for(const e in this.searchCollections)-1===this.collections.findIndex((t=>t.id===this.searchCollections[e].id))&&t.push({method:1,title:this.searchCollections[e].name,collectionId:this.searchCollections[e].id});return t}},watch:{type(){this.isActive&&et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},id(){this.isActive&&et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},isActive(t){t&&et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})}},mounted(){et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},methods:{t:b.t,select(t,e){0===t.method&&t.action().then((e=>{et.createCollection({baseResourceType:this.type,baseResourceId:this.id,resourceType:t.type,resourceId:e,name:this.name}).catch((t=>{this.setError((0,b.t)("core","Failed to create a project"),t)}))})).catch((t=>{console.error("No resource selected",t)})),1===t.method&&et.addResourceToCollection({collectionId:t.collectionId,resourceType:this.type,resourceId:this.id}).catch((t=>{this.setError((0,b.t)("core","Failed to add the item to the project"),t)}))},search(t,e){rt.bind(this)(t,e)},showSelect(){this.selectIsOpen=!0,this.$refs.select.$el.focus()},hideSelect(){this.selectIsOpen=!1},isVueComponent:t=>t._isVue,setError(t,e){console.error(t,e),this.error=t,setTimeout((()=>{this.error=null}),5e3)}}},at=it(st,(function(){var t=this,e=t._self._c;return t.collections&&t.type&&t.id?e("ul",{staticClass:"collection-list",attrs:{id:"collection-list"}},[e("li",{on:{click:t.showSelect}},[t._m(0),e("div",{attrs:{id:"collection-select-container"}},[e("NcSelect",{ref:"select",attrs:{"aria-label-combobox":t.t("core","Add to a project"),options:t.options,placeholder:t.placeholder,label:"title",limit:5},on:{close:function(e){t.isSelectOpen=!1},open:function(e){t.isSelectOpen=!0},"option:selected":t.select,search:t.search},scopedSlots:t._u([{key:"selected-option",fn:function(i){return[e("span",{staticClass:"option__desc"},[e("span",{staticClass:"option__title"},[t._v(t._s(i.title))])])]}},{key:"option",fn:function(i){return[e("span",{staticClass:"option__wrapper"},[i.class?e("span",{staticClass:"avatar",class:i.class}):2!==i.method?e("NcAvatar",{attrs:{"allow-placeholder":"","display-name":i.title}}):t._e(),e("span",{staticClass:"option__title"},[t._v(t._s(i.title))])],1)]}}],null,!1,2397208459),model:{value:t.value,callback:function(e){t.value=e},expression:"value"}},[e("p",{staticClass:"hint"},[t._v(" "+t._s(t.t("core","Connect items to a project to make them easier to find"))+" ")])])],1)]),e("transition",{attrs:{name:"fade"}},[t.error?e("li",{staticClass:"error"},[t._v(" "+t._s(t.error)+" ")]):t._e()]),t._l(t.collections,(function(t){return e("CollectionListItem",{key:t.id,attrs:{collection:t}})}))],2):t._e()}),[function(){var t=this._self._c;return t("div",{staticClass:"avatar"},[t("span",{staticClass:"icon-projects"})])}],!1,null,"8ebb2593",null,null).exports;var ot=n(77905),lt=n(83241),ct=n(8385),ht=n(19231),ut=n(70995),dt=n(87485);class pt{constructor(){(function(t,e,i){(e=function(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i})(this,"_capabilities",void 0),this._capabilities=(0,dt.F)()}get defaultPermissions(){return this._capabilities.files_sharing?.default_permissions}get isPublicUploadEnabled(){return!0===this._capabilities.files_sharing?.public?.upload}get federatedShareDocLink(){return window.OC.appConfig.core.federatedCloudShareDoc}get defaultExpirationDate(){return this.isDefaultExpireDateEnabled&&null!==this.defaultExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultExpireDate)):null}get defaultInternalExpirationDate(){return this.isDefaultInternalExpireDateEnabled&&null!==this.defaultInternalExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultInternalExpireDate)):null}get defaultRemoteExpirationDateString(){return this.isDefaultRemoteExpireDateEnabled&&null!==this.defaultRemoteExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultRemoteExpireDate)):null}get enforcePasswordForPublicLink(){return!0===window.OC.appConfig.core.enforcePasswordForPublicLink}get enableLinkPasswordByDefault(){return!0===window.OC.appConfig.core.enableLinkPasswordByDefault}get isDefaultExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultExpireDateEnforced}get isDefaultExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultExpireDateEnabled}get isDefaultInternalExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultInternalExpireDateEnforced}get isDefaultInternalExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultInternalExpireDateEnabled}get isDefaultRemoteExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultRemoteExpireDateEnforced}get isDefaultRemoteExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultRemoteExpireDateEnabled}get isRemoteShareAllowed(){return!0===window.OC.appConfig.core.remoteShareAllowed}get isPublicShareAllowed(){return!0===this._capabilities?.files_sharing?.public?.enabled}get isMailShareAllowed(){return!0===this._capabilities?.files_sharing?.sharebymail?.enabled&&!0===this.isPublicShareAllowed}get defaultExpireDate(){return window.OC.appConfig.core.defaultExpireDate}get defaultInternalExpireDate(){return window.OC.appConfig.core.defaultInternalExpireDate}get defaultRemoteExpireDate(){return window.OC.appConfig.core.defaultRemoteExpireDate}get isResharingAllowed(){return!0===window.OC.appConfig.core.resharingAllowed}get isPasswordForMailSharesRequired(){return!0===this._capabilities.files_sharing?.sharebymail?.password?.enforced}get shouldAlwaysShowUnique(){return!0===this._capabilities.files_sharing?.sharee?.always_show_unique}get allowGroupSharing(){return!0===window.OC.appConfig.core.allowGroupSharing}get maxAutocompleteResults(){return parseInt(window.OC.config["sharing.maxAutocompleteResults"],10)||25}get minSearchStringLength(){return parseInt(window.OC.config["sharing.minSearchStringLength"],10)||0}get passwordPolicy(){return this._capabilities?.password_policy||{}}get allowCustomTokens(){return this._capabilities?.files_sharing?.public?.custom_tokens}}var ft=n(35947);const gt=(0,ft.YK)().setApp("files_sharing").detectUser().build();class At{constructor(t){if(function(t,e,i){(e=function(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i}(this,"_share",void 0),t.ocs&&t.ocs.data&&t.ocs.data[0]&&(t=t.ocs.data[0]),t.hide_download=!!t.hide_download,t.mail_send=!!t.mail_send,t.attributes&&"string"==typeof t.attributes)try{t.attributes=JSON.parse(t.attributes)}catch(e){console.warn("Could not parse share attributes returned by server",t.attributes)}t.attributes=t.attributes??[],this._share=t}get state(){return this._share}get id(){return this._share.id}get type(){return this._share.share_type}get permissions(){return this._share.permissions}get attributes(){return this._share.attributes}set permissions(t){this._share.permissions=t}get owner(){return this._share.uid_owner}get ownerDisplayName(){return this._share.displayname_owner}get shareWith(){return this._share.share_with}get shareWithDisplayName(){return this._share.share_with_displayname||this._share.share_with}get shareWithDisplayNameUnique(){return this._share.share_with_displayname_unique||this._share.share_with}get shareWithLink(){return this._share.share_with_link}get shareWithAvatar(){return this._share.share_with_avatar}get uidFileOwner(){return this._share.uid_file_owner}get displaynameFileOwner(){return this._share.displayname_file_owner||this._share.uid_file_owner}get createdTime(){return this._share.stime}get expireDate(){return this._share.expiration}set expireDate(t){this._share.expiration=t}get token(){return this._share.token}set token(t){this._share.token=t}get note(){return this._share.note}set note(t){this._share.note=t}get label(){return this._share.label??""}set label(t){this._share.label=t}get mailSend(){return!0===this._share.mail_send}get hideDownload(){return!0===this._share.hide_download}set hideDownload(t){this._share.hide_download=!0===t}get password(){return this._share.password}set password(t){this._share.password=t}get passwordExpirationTime(){return this._share.password_expiration_time}set passwordExpirationTime(t){this._share.password_expiration_time=t}get sendPasswordByTalk(){return this._share.send_password_by_talk}set sendPasswordByTalk(t){this._share.send_password_by_talk=t}get path(){return this._share.path}get itemType(){return this._share.item_type}get mimetype(){return this._share.mimetype}get fileSource(){return this._share.file_source}get fileTarget(){return this._share.file_target}get fileParent(){return this._share.file_parent}get hasReadPermission(){return!!(this.permissions&window.OC.PERMISSION_READ)}get hasCreatePermission(){return!!(this.permissions&window.OC.PERMISSION_CREATE)}get hasDeletePermission(){return!!(this.permissions&window.OC.PERMISSION_DELETE)}get hasUpdatePermission(){return!!(this.permissions&window.OC.PERMISSION_UPDATE)}get hasSharePermission(){return!!(this.permissions&window.OC.PERMISSION_SHARE)}get hasDownloadPermission(){return this.attributes.some((t=>"permissions"===t.scope&&"download"===t.key&&!1===t.value))}get isFileRequest(){return function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"[]";const e=t=>"fileRequest"===t.scope&&"enabled"===t.key&&!0===t.value;try{return JSON.parse(t).some(e)}catch(t){return gt.error("Error while parsing share attributes",{error:t}),!1}}(JSON.stringify(this.attributes))}set hasDownloadPermission(t){this.setAttribute("permissions","download",!!t)}setAttribute(t,e,i){const n={scope:t,key:e,value:i};for(const t in this._share.attributes){const e=this._share.attributes[t];if(e.scope===n.scope&&e.key===n.key)return void this._share.attributes.splice(t,1,n)}this._share.attributes.push(n)}get canEdit(){return!0===this._share.can_edit}get canDelete(){return!0===this._share.can_delete}get viaFileid(){return this._share.via_fileid}get viaPath(){return this._share.via_path}get parent(){return this._share.parent}get storageId(){return this._share.storage_id}get storage(){return this._share.storage}get itemSource(){return this._share.item_source}get status(){return this._share.status}}var mt=n(85168),vt=n(54373),yt=n(31773);const wt={name:"SharingEntrySimple",components:{NcActions:W.A},props:{title:{type:String,default:"",required:!0},subtitle:{type:String,default:""},isUnique:{type:Boolean,default:!0},ariaExpanded:{type:Boolean,default:null}},computed:{ariaExpandedValue(){return null===this.ariaExpanded?this.ariaExpanded:this.ariaExpanded?"true":"false"}}};var Ct=n(86495),bt={};bt.styleTagTransform=y(),bt.setAttributes=g(),bt.insert=p().bind(null,"head"),bt.domAPI=u(),bt.insertStyleElement=m(),c()(Ct.A,bt),Ct.A&&Ct.A.locals&&Ct.A.locals;var _t=n(14486);const Et=(0,_t.A)(wt,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"sharing-entry"},[t._t("avatar"),t._v(" "),e("div",{staticClass:"sharing-entry__desc"},[e("span",{staticClass:"sharing-entry__title"},[t._v(t._s(t.title))]),t._v(" "),t.subtitle?e("p",[t._v("\n\t\t\t"+t._s(t.subtitle)+"\n\t\t")]):t._e()]),t._v(" "),t.$slots.default?e("NcActions",{ref:"actionsComponent",staticClass:"sharing-entry__actions",attrs:{"menu-align":"right","aria-expanded":t.ariaExpandedValue}},[t._t("default")],2):t._e()],2)}),[],!1,null,"4c49edf4",null).exports,xt={name:"SharingEntryInternal",components:{NcActionButton:X.A,SharingEntrySimple:Et,CheckIcon:vt.A,ClipboardIcon:yt.A},props:{fileInfo:{type:Object,default:()=>{},required:!0}},data:()=>({copied:!1,copySuccess:!1}),computed:{internalLink(){return window.location.protocol+"//"+window.location.host+(0,o.Jv)("/f/")+this.fileInfo.id},copyLinkTooltip(){return this.copied?this.copySuccess?"":t("files_sharing","Cannot copy, please copy the link manually"):t("files_sharing","Copy internal link to clipboard")},internalLinkSubtitle(){return"dir"===this.fileInfo.type?t("files_sharing","Only works for people with access to this folder"):t("files_sharing","Only works for people with access to this file")}},methods:{async copyLink(){try{await navigator.clipboard.writeText(this.internalLink),(0,mt.Te)(t("files_sharing","Link copied")),this.$refs.shareEntrySimple.$refs.actionsComponent.$el.focus(),this.copySuccess=!0,this.copied=!0}catch(t){this.copySuccess=!1,this.copied=!0,console.error(t)}finally{setTimeout((()=>{this.copySuccess=!1,this.copied=!1}),4e3)}}}};var St=n(23815),It={};It.styleTagTransform=y(),It.setAttributes=g(),It.insert=p().bind(null,"head"),It.domAPI=u(),It.insertStyleElement=m(),c()(St.A,It),St.A&&St.A.locals&&St.A.locals;const kt=(0,_t.A)(xt,(function(){var t=this,e=t._self._c;return e("ul",[e("SharingEntrySimple",{ref:"shareEntrySimple",staticClass:"sharing-entry__internal",attrs:{title:t.t("files_sharing","Internal link"),subtitle:t.internalLinkSubtitle},scopedSlots:t._u([{key:"avatar",fn:function(){return[e("div",{staticClass:"avatar-external icon-external-white"})]},proxy:!0}])},[t._v(" "),e("NcActionButton",{attrs:{title:t.copyLinkTooltip,"aria-label":t.copyLinkTooltip},on:{click:t.copyLink},scopedSlots:t._u([{key:"icon",fn:function(){return[t.copied&&t.copySuccess?e("CheckIcon",{staticClass:"icon-checkmark-color",attrs:{size:20}}):e("ClipboardIcon",{attrs:{size:20}})]},proxy:!0}])})],1)],1)}),[],!1,null,"1d9a7cfa",null).exports;var Tt=n(17334),Nt=n.n(Tt),Dt=(n(48318),n(61338));const Pt=(0,o.KT)("apps/files_sharing/api/v1/shares"),Rt={methods:{async createShare(e){let{path:i,permissions:n,shareType:r,shareWith:s,publicUpload:a,password:o,sendPasswordByTalk:l,expireDate:c,label:h,note:u,attributes:d}=e;try{const t=await Z.Ay.post(Pt,{path:i,permissions:n,shareType:r,shareWith:s,publicUpload:a,password:o,sendPasswordByTalk:l,expireDate:c,label:h,note:u,attributes:d});if(!t?.data?.ocs)throw t;const e=new At(t.data.ocs.data);return(0,Dt.Ic)("files_sharing:share:created",{share:e}),e}catch(e){console.error("Error while creating share",e);const i=e?.response?.data?.ocs?.meta?.message;throw OC.Notification.showTemporary(i?t("files_sharing","Error creating the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error creating the share"),{type:"error"}),e}},async deleteShare(e){try{const t=await Z.Ay.delete(Pt+`/${e}`);if(!t?.data?.ocs)throw t;return(0,Dt.Ic)("files_sharing:share:deleted",{id:e}),!0}catch(e){console.error("Error while deleting share",e);const i=e?.response?.data?.ocs?.meta?.message;throw OC.Notification.showTemporary(i?t("files_sharing","Error deleting the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error deleting the share"),{type:"error"}),e}},async updateShare(e,i){try{const t=await Z.Ay.put(Pt+`/${e}`,i);if((0,Dt.Ic)("files_sharing:share:updated",{id:e}),t?.data?.ocs)return t.data.ocs.data;throw t}catch(e){if(console.error("Error while updating share",e),400!==e.response.status){const i=e?.response?.data?.ocs?.meta?.message;OC.Notification.showTemporary(i?t("files_sharing","Error updating the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error updating the share"),{type:"error"})}const i=e.response.data.ocs.meta.message;throw new Error(i)}}}},Bt={methods:{async openSharingDetails(t){let e={};if(t.handler){const i={};this.suggestions&&(i.suggestions=this.suggestions,i.fileInfo=this.fileInfo,i.query=this.query);const n=await t.handler(i);e=this.mapShareRequestToShareObject(n)}else e=this.mapShareRequestToShareObject(t);const i={fileInfo:this.fileInfo,share:e};this.$emit("open-sharing-details",i)},openShareDetailsForCustomSettings(t){t.setCustomPermissions=!0,this.openSharingDetails(t)},mapShareRequestToShareObject(t){if(t.id)return t;const e={attributes:[{value:!0,key:"download",scope:"permissions"}],share_type:t.shareType,share_with:t.shareWith,is_no_user:t.isNoUser,user:t.shareWith,share_with_displayname:t.displayName,subtitle:t.subtitle,permissions:t.permissions??(new pt).defaultPermissions,expiration:""};return new At(e)}}},Lt={name:"SharingInput",components:{NcSelect:E.A},mixins:[Rt,Bt],props:{shares:{type:Array,default:()=>[],required:!0},linkShares:{type:Array,default:()=>[],required:!0},fileInfo:{type:Object,default:()=>{},required:!0},reshare:{type:At,default:null},canReshare:{type:Boolean,required:!0},isExternal:{type:Boolean,default:!1},placeholder:{type:String,default:""}},data:()=>({config:new pt,loading:!1,query:"",recommendations:[],ShareSearch:OCA.Sharing.ShareSearch.state,suggestions:[],value:null}),computed:{externalResults(){return this.ShareSearch.results},inputPlaceholder(){const e=this.config.isRemoteShareAllowed;return this.canReshare?this.placeholder?this.placeholder:e?t("files_sharing","Name, email, or Federated Cloud ID …"):t("files_sharing","Name or email …"):t("files_sharing","Resharing is not allowed")},isValidQuery(){return this.query&&""!==this.query.trim()&&this.query.length>this.config.minSearchStringLength},options(){return this.isValidQuery?this.suggestions:this.recommendations},noResultText(){return this.loading?t("files_sharing","Searching …"):t("files_sharing","No elements found.")}},mounted(){this.isExternal||this.getRecommendations()},methods:{onSelected(t){this.value=null,this.openSharingDetails(t)},async asyncFind(t){this.query=t.trim(),this.isValidQuery&&(this.loading=!0,await this.debounceGetSuggestions(t))},async getSuggestions(e){let i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.loading=!0,!0===(0,dt.F)().files_sharing.sharee.query_lookup_default&&(i=!0);let n=[];this.isExternal?(n.push(ot.I.Remote),n.push(ot.I.RemoteGroup)):n=n.concat([ot.I.User,ot.I.Group,ot.I.Team,ot.I.Room,ot.I.Guest,ot.I.Deck,ot.I.ScienceMesh]),!0===(0,dt.F)().files_sharing.public.enabled&&this.isExternal&&n.push(ot.I.Email);let r=null;try{r=await Z.Ay.get((0,o.KT)("apps/files_sharing/api/v1/sharees"),{params:{format:"json",itemType:"dir"===this.fileInfo.type?"folder":"file",search:e,lookup:i,perPage:this.config.maxAutocompleteResults,shareType:n}})}catch(t){return void console.error("Error fetching suggestions",t)}const s=r.data.ocs.data,a=r.data.ocs.data.exact;s.exact=[];const l=Object.values(a).reduce(((t,e)=>t.concat(e)),[]),c=Object.values(s).reduce(((t,e)=>t.concat(e)),[]),h=this.filterOutExistingShares(l).map((t=>this.formatForMultiselect(t))).sort(((t,e)=>t.shareType-e.shareType)),u=this.filterOutExistingShares(c).map((t=>this.formatForMultiselect(t))).sort(((t,e)=>t.shareType-e.shareType)),d=[];s.lookupEnabled&&!i&&d.push({id:"global-lookup",isNoUser:!0,displayName:t("files_sharing","Search globally"),lookup:!0});const p=this.externalResults.filter((t=>!t.condition||t.condition(this))),f=h.concat(u).concat(p).concat(d),g=f.reduce(((t,e)=>e.displayName?(t[e.displayName]||(t[e.displayName]=0),t[e.displayName]++,t):t),{});this.suggestions=f.map((t=>g[t.displayName]>1&&!t.desc?{...t,desc:t.shareWithDisplayNameUnique}:t)),this.loading=!1,console.info("suggestions",this.suggestions)},debounceGetSuggestions:Nt()((function(){this.getSuggestions(...arguments)}),300),async getRecommendations(){this.loading=!0;let t=null;try{t=await Z.Ay.get((0,o.KT)("apps/files_sharing/api/v1/sharees_recommended"),{params:{format:"json",itemType:this.fileInfo.type}})}catch(t){return void console.error("Error fetching recommendations",t)}const e=this.externalResults.filter((t=>!t.condition||t.condition(this))),i=Object.values(t.data.ocs.data.exact).reduce(((t,e)=>t.concat(e)),[]);this.recommendations=this.filterOutExistingShares(i).map((t=>this.formatForMultiselect(t))).concat(e),this.loading=!1,console.info("recommendations",this.recommendations)},filterOutExistingShares(t){return t.reduce(((t,e)=>{if("object"!=typeof e)return t;try{if(e.value.shareType===ot.I.User){if(e.value.shareWith===(0,r.HW)().uid)return t;if(this.reshare&&e.value.shareWith===this.reshare.owner)return t}if(e.value.shareType===ot.I.Email){if(-1!==this.linkShares.map((t=>t.shareWith)).indexOf(e.value.shareWith.trim()))return t}else{const i=this.shares.reduce(((t,e)=>(t[e.shareWith]=e.type,t)),{}),n=e.value.shareWith.trim();if(n in i&&i[n]===e.value.shareType)return t}t.push(e)}catch{return t}return t}),[])},shareTypeToIcon(e){switch(e){case ot.I.Guest:return{icon:"icon-user",iconTitle:t("files_sharing","Guest")};case ot.I.RemoteGroup:case ot.I.Group:return{icon:"icon-group",iconTitle:t("files_sharing","Group")};case ot.I.Email:return{icon:"icon-mail",iconTitle:t("files_sharing","Email")};case ot.I.Team:return{icon:"icon-teams",iconTitle:t("files_sharing","Team")};case ot.I.Room:return{icon:"icon-room",iconTitle:t("files_sharing","Talk conversation")};case ot.I.Deck:return{icon:"icon-deck",iconTitle:t("files_sharing","Deck board")};case ot.I.Sciencemesh:return{icon:"icon-sciencemesh",iconTitle:t("files_sharing","ScienceMesh")};default:return{}}},formatForMultiselect(e){let i;return i=e.value.shareType===ot.I.User&&this.config.shouldAlwaysShowUnique?e.shareWithDisplayNameUnique??"":e.value.shareType!==ot.I.Remote&&e.value.shareType!==ot.I.RemoteGroup||!e.value.server?e.value.shareType===ot.I.Email?e.value.shareWith:e.shareWithDescription??"":t("files_sharing","on {server}",{server:e.value.server}),{shareWith:e.value.shareWith,shareType:e.value.shareType,user:e.uuid||e.value.shareWith,isNoUser:e.value.shareType!==ot.I.User,displayName:e.name||e.label,subname:i,shareWithDisplayNameUnique:e.shareWithDisplayNameUnique||"",...this.shareTypeToIcon(e.value.shareType)}}}};var Ot=n(67510),Mt={};Mt.styleTagTransform=y(),Mt.setAttributes=g(),Mt.insert=p().bind(null,"head"),Mt.domAPI=u(),Mt.insertStyleElement=m(),c()(Ot.A,Mt),Ot.A&&Ot.A.locals&&Ot.A.locals;const Ut=(0,_t.A)(Lt,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"sharing-search"},[e("label",{staticClass:"hidden-visually",attrs:{for:"sharing-search-input"}},[t._v("\n\t\t"+t._s(t.isExternal?t.t("files_sharing","Enter external recipients"):t.t("files_sharing","Search for internal recipients"))+"\n\t")]),t._v(" "),e("NcSelect",{ref:"select",staticClass:"sharing-search__input",attrs:{"input-id":"sharing-search-input",disabled:!t.canReshare,loading:t.loading,filterable:!1,placeholder:t.inputPlaceholder,"clear-search-on-blur":()=>!1,"user-select":!0,options:t.options,"label-outside":!0},on:{search:t.asyncFind,"option:selected":t.onSelected},scopedSlots:t._u([{key:"no-options",fn:function(e){let{search:i}=e;return[t._v("\n\t\t\t"+t._s(i?t.noResultText:t.placeholder)+"\n\t\t")]}}]),model:{value:t.value,callback:function(e){t.value=e},expression:"value"}})],1)}),[],!1,null,null,null).exports;var $t=n(71225),Ft=n(36647),Vt=n(21261),jt=n(49264);const qt={NONE:0,READ:1,UPDATE:2,CREATE:4,DELETE:8,SHARE:16},zt={READ_ONLY:qt.READ,UPLOAD_AND_UPDATE:qt.READ|qt.UPDATE|qt.CREATE|qt.DELETE,FILE_DROP:qt.CREATE,ALL:qt.UPDATE|qt.CREATE|qt.READ|qt.DELETE|qt.SHARE,ALL_FILE:qt.UPDATE|qt.READ|qt.SHARE};var Ht=n(77815);const Gt=(0,Ht.KU)(),Yt={mixins:[Rt],props:{fileInfo:{type:Object,default:()=>{},required:!0},share:{type:At,default:null},isUnique:{type:Boolean,default:!0}},data(){return{config:new pt,node:null,ShareType:ot.I,errors:{},loading:!1,saving:!1,open:!1,updateQueue:new jt.A({concurrency:1}),reactiveState:this.share?.state}},computed:{path(){return(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/")},hasNote:{get(){return""!==this.share.note},set(t){this.share.note=t?null:""}},dateTomorrow:()=>new Date((new Date).setDate((new Date).getDate()+1)),lang(){const t=window.dayNamesShort?window.dayNamesShort:["Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat."],e=window.monthNamesShort?window.monthNamesShort:["Jan.","Feb.","Mar.","Apr.","May.","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."];return{formatLocale:{firstDayOfWeek:window.firstDay?window.firstDay:0,monthsShort:e,weekdaysMin:t,weekdaysShort:t},monthFormat:"MMM"}},isNewShare(){return!this.share.id},isFolder(){return"dir"===this.fileInfo.type},isPublicShare(){const t=this.share.shareType??this.share.type;return[ot.I.Link,ot.I.Email].includes(t)},isRemoteShare(){return this.share.type===ot.I.RemoteGroup||this.share.type===ot.I.Remote},isShareOwner(){return this.share&&this.share.owner===(0,r.HW)().uid},isExpiryDateEnforced(){return this.isPublicShare?this.config.isDefaultExpireDateEnforced:this.isRemoteShare?this.config.isDefaultRemoteExpireDateEnforced:this.config.isDefaultInternalExpireDateEnforced},hasCustomPermissions(){return![zt.ALL,zt.READ_ONLY,zt.FILE_DROP].includes(this.share.permissions)},maxExpirationDateEnforced(){return this.isExpiryDateEnforced?this.isPublicShare?this.config.defaultExpirationDate:this.isRemoteShare?this.config.defaultRemoteExpirationDateString:this.config.defaultInternalExpirationDate:null}},methods:{async getNode(){const t={path:this.path};try{this.node=await(async t=>{const e=(0,Ht.aN)(),i=await Gt.stat(`${(0,Ht.ei)()}${t}`,{details:!0,data:e});return(0,Ht.pO)(i.data)})(t.path),gt.info("Fetched node:",{node:this.node})}catch(t){gt.error("Error:",t)}},checkShare:t=>(!t.password||"string"==typeof t.password&&""!==t.password.trim())&&!(t.expirationDate&&!t.expirationDate.isValid()),formatDateToString:t=>new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())).toISOString().split("T")[0],onExpirationChange(t){const e=t?this.formatDateToString(new Date(t)):"";this.share.expireDate=e},onNoteChange(t){this.$set(this.share,"newNote",t.trim())},onNoteSubmit(){this.share.newNote&&(this.share.note=this.share.newNote,this.$delete(this.share,"newNote"),this.queueUpdate("note"))},async onDelete(){try{this.loading=!0,this.open=!1,await this.deleteShare(this.share.id),console.debug("Share deleted",this.share.id);const e="file"===this.share.itemType?t("files_sharing",'File "{path}" has been unshared',{path:this.share.path}):t("files_sharing",'Folder "{path}" has been unshared',{path:this.share.path});(0,mt.Te)(e),this.$emit("remove:share",this.share),await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node)}catch(t){this.open=!0}finally{this.loading=!1}},queueUpdate(){for(var e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];if(0!==i.length){if(this.share.id){const e={};return i.forEach((t=>{"object"==typeof this.share[t]?e[t]=JSON.stringify(this.share[t]):e[t]=this.share[t].toString()})),void this.updateQueue.add((async()=>{this.saving=!0,this.errors={};try{const t=await this.updateShare(this.share.id,e);i.indexOf("password")>=0&&(this.$delete(this.share,"newPassword"),this.share.passwordExpirationTime=t.password_expiration_time),this.$delete(this.errors,i[0]),(0,mt.Te)(this.updateSuccessMessage(i))}catch(e){gt.error("Could not update share",{error:e,share:this.share,propertyNames:i});const{message:n}=e;n&&""!==n?(this.onSyncError(i[0],n),(0,mt.Qg)(n)):(0,mt.Qg)(t("files_sharing","Could not update share"))}finally{this.saving=!1}}))}console.debug("Updated local share",this.share)}},updateSuccessMessage(e){if(1!==e.length)return t("files_sharing","Share saved");switch(e[0]){case"expireDate":return t("files_sharing","Share expiry date saved");case"hideDownload":return t("files_sharing","Share hide-download state saved");case"label":return t("files_sharing","Share label saved");case"note":return t("files_sharing","Share note for recipient saved");case"password":return t("files_sharing","Share password saved");case"permissions":return t("files_sharing","Share permissions saved");default:return t("files_sharing","Share saved")}},onSyncError(t,e){switch(this.open=!0,t){case"password":case"pending":case"expireDate":case"label":case"note":{this.$set(this.errors,t,e);let i=this.$refs[t];if(i){i.$el&&(i=i.$el);const t=i.querySelector(".focusable");t&&t.focus()}break}case"sendPasswordByTalk":this.$set(this.errors,t,e),this.share.sendPasswordByTalk=!this.share.sendPasswordByTalk}},debounceQueueUpdate:Nt()((function(t){this.queueUpdate(t)}),500)}},Wt={name:"SharingEntryInherited",components:{NcActionButton:X.A,NcActionLink:Ft.A,NcActionText:Vt.A,NcAvatar:_.A,SharingEntrySimple:Et},mixins:[Yt],props:{share:{type:At,required:!0}},computed:{viaFileTargetUrl(){return(0,o.Jv)("/f/{fileid}",{fileid:this.share.viaFileid})},viaFolderName(){return(0,$t.P8)(this.share.viaPath)}}};var Xt=n(88346),Qt={};Qt.styleTagTransform=y(),Qt.setAttributes=g(),Qt.insert=p().bind(null,"head"),Qt.domAPI=u(),Qt.insertStyleElement=m(),c()(Xt.A,Qt),Xt.A&&Xt.A.locals&&Xt.A.locals;const Zt=(0,_t.A)(Wt,(function(){var t=this,e=t._self._c;return e("SharingEntrySimple",{key:t.share.id,staticClass:"sharing-entry__inherited",attrs:{title:t.share.shareWithDisplayName},scopedSlots:t._u([{key:"avatar",fn:function(){return[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{user:t.share.shareWith,"display-name":t.share.shareWithDisplayName}})]},proxy:!0}])},[t._v(" "),e("NcActionText",{attrs:{icon:"icon-user"}},[t._v("\n\t\t"+t._s(t.t("files_sharing","Added by {initiator}",{initiator:t.share.ownerDisplayName}))+"\n\t")]),t._v(" "),t.share.viaPath&&t.share.viaFileid?e("NcActionLink",{attrs:{icon:"icon-folder",href:t.viaFileTargetUrl}},[t._v("\n\t\t"+t._s(t.t("files_sharing","Via “{folder}”",{folder:t.viaFolderName}))+"\n\t")]):t._e(),t._v(" "),t.share.canDelete?e("NcActionButton",{attrs:{icon:"icon-close"},on:{click:function(e){return e.preventDefault(),t.onDelete.apply(null,arguments)}}},[t._v("\n\t\t"+t._s(t.t("files_sharing","Unshare"))+"\n\t")]):t._e()],1)}),[],!1,null,"32cb91ce",null).exports,Kt={name:"SharingInherited",components:{NcActionButton:X.A,SharingEntryInherited:Zt,SharingEntrySimple:Et},props:{fileInfo:{type:Object,default:()=>{},required:!0}},data:()=>({loaded:!1,loading:!1,showInheritedShares:!1,shares:[]}),computed:{showInheritedSharesIcon(){return this.loading?"icon-loading-small":this.showInheritedShares?"icon-triangle-n":"icon-triangle-s"},mainTitle:()=>t("files_sharing","Others with access"),subTitle(){return this.showInheritedShares&&0===this.shares.length?t("files_sharing","No other accounts with access found"):""},toggleTooltip(){return"dir"===this.fileInfo.type?t("files_sharing","Toggle list of others with access to this directory"):t("files_sharing","Toggle list of others with access to this file")},fullPath(){return`${this.fileInfo.path}/${this.fileInfo.name}`.replace("//","/")}},watch:{fileInfo(){this.resetState()}},methods:{toggleInheritedShares(){this.showInheritedShares=!this.showInheritedShares,this.showInheritedShares?this.fetchInheritedShares():this.resetState()},async fetchInheritedShares(){this.loading=!0;try{const t=(0,o.KT)("apps/files_sharing/api/v1/shares/inherited?format=json&path={path}",{path:this.fullPath}),e=await Z.Ay.get(t);this.shares=e.data.ocs.data.map((t=>new At(t))).sort(((t,e)=>e.createdTime-t.createdTime)),console.info(this.shares),this.loaded=!0}catch(e){OC.Notification.showTemporary(t("files_sharing","Unable to fetch inherited shares"),{type:"error"})}finally{this.loading=!1}},resetState(){this.loaded=!1,this.loading=!1,this.showInheritedShares=!1,this.shares=[]},removeShare(t){const e=this.shares.findIndex((e=>e===t));this.shares.splice(e,1)}}};var Jt=n(91877),te={};te.styleTagTransform=y(),te.setAttributes=g(),te.insert=p().bind(null,"head"),te.domAPI=u(),te.insertStyleElement=m(),c()(Jt.A,te),Jt.A&&Jt.A.locals&&Jt.A.locals;const ee=(0,_t.A)(Kt,(function(){var t=this,e=t._self._c;return t.shares.length?e("ul",{attrs:{id:"sharing-inherited-shares"}},[e("SharingEntrySimple",{staticClass:"sharing-entry__inherited",attrs:{title:t.mainTitle,subtitle:t.subTitle,"aria-expanded":t.showInheritedShares},scopedSlots:t._u([{key:"avatar",fn:function(){return[e("div",{staticClass:"avatar-shared icon-more-white"})]},proxy:!0}],null,!1,1184892072)},[t._v(" "),e("NcActionButton",{attrs:{icon:t.showInheritedSharesIcon,"aria-label":t.toggleTooltip,title:t.toggleTooltip},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.toggleInheritedShares.apply(null,arguments)}}})],1),t._v(" "),t._l(t.shares,(function(i){return e("SharingEntryInherited",{key:i.id,attrs:{"file-info":t.fileInfo,share:i},on:{"remove:share":t.removeShare}})}))],2):t._e()}),[],!1,null,"4baa5581",null).exports;var ie=n(17816),ne=n.n(ie),re=n(1641),se=n(44131),ae=n(15502),oe=n(94219);const le={name:"TuneIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ce=(0,_t.A)(le,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon tune-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,he={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ue=(0,_t.A)(he,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon calendar-blank-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,de={name:"QrcodeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},pe=(0,_t.A)(de,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon qrcode-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,fe={name:"ExclamationIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ge=(0,_t.A)(fe,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon exclamation-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Ae={name:"LockIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},me=(0,_t.A)(Ae,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon lock-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,ve={name:"CheckBoldIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ye=(0,_t.A)(ve,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon check-bold-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var we=n(66001),Ce=n(96078);const be={name:"TriangleSmallDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},_e=(0,_t.A)(be,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon triangle-small-down-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M8 9H16L12 16"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Ee={name:"EyeOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},xe=(0,_t.A)(Ee,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon eye-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var Se=n(2413);const Ie={name:"FileUploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ke=(0,_t.A)(Ie,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon file-upload-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Te={name:"SharingEntryQuickShareSelect",components:{DropdownIcon:_e,NcActions:W.A,NcActionButton:X.A},mixins:[Yt,Bt],props:{share:{type:Object,required:!0}},emits:["open-sharing-details"],data:()=>({selectedOption:""}),computed:{ariaLabel(){return t("files_sharing",'Quick share options, the current selected is "{selectedOption}"',{selectedOption:this.selectedOption})},canViewText:()=>t("files_sharing","View only"),canEditText:()=>t("files_sharing","Can edit"),fileDropText:()=>t("files_sharing","File request"),customPermissionsText:()=>t("files_sharing","Custom permissions"),preSelectedOption(){return(this.share.permissions&~qt.SHARE)===zt.READ_ONLY?this.canViewText:this.share.permissions===zt.ALL||this.share.permissions===zt.ALL_FILE?this.canEditText:(this.share.permissions&~qt.SHARE)===zt.FILE_DROP?this.fileDropText:this.customPermissionsText},options(){const t=[{label:this.canViewText,icon:xe},{label:this.canEditText,icon:Se.A}];return this.supportsFileDrop&&t.push({label:this.fileDropText,icon:ke}),t.push({label:this.customPermissionsText,icon:ce}),t},supportsFileDrop(){if(this.isFolder&&this.config.isPublicUploadEnabled){const t=this.share.type??this.share.shareType;return[ot.I.Link,ot.I.Email].includes(t)}return!1},dropDownPermissionValue(){switch(this.selectedOption){case this.canEditText:return this.isFolder?zt.ALL:zt.ALL_FILE;case this.fileDropText:return zt.FILE_DROP;case this.customPermissionsText:return"custom";case this.canViewText:default:return zt.READ_ONLY}}},created(){this.selectedOption=this.preSelectedOption},mounted(){(0,Dt.B1)("update:share",(t=>{t.id===this.share.id&&(this.share.permissions=t.permissions,this.selectedOption=this.preSelectedOption)}))},unmounted(){(0,Dt.al)("update:share")},methods:{selectOption(t){this.selectedOption=t,t===this.customPermissionsText?this.$emit("open-sharing-details"):(this.share.permissions=this.dropDownPermissionValue,this.queueUpdate("permissions"),this.$refs.quickShareActions.$refs.menuButton.$el.focus())}}},Ne=Te;var De=n(60469),Pe={};Pe.styleTagTransform=y(),Pe.setAttributes=g(),Pe.insert=p().bind(null,"head"),Pe.domAPI=u(),Pe.insertStyleElement=m(),c()(De.A,Pe),De.A&&De.A.locals&&De.A.locals;const Re=(0,_t.A)(Ne,(function(){var t=this,e=t._self._c;return e("NcActions",{ref:"quickShareActions",staticClass:"share-select",attrs:{"menu-name":t.selectedOption,"aria-label":t.ariaLabel,type:"tertiary-no-background",disabled:!t.share.canEdit,"force-name":""},scopedSlots:t._u([{key:"icon",fn:function(){return[e("DropdownIcon",{attrs:{size:15}})]},proxy:!0}])},[t._v(" "),t._l(t.options,(function(i){return e("NcActionButton",{key:i.label,attrs:{type:"radio","model-value":i.label===t.selectedOption,"close-after-click":""},on:{click:function(e){return t.selectOption(i.label)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(i.icon,{tag:"component"})]},proxy:!0}],null,!0)},[t._v("\n\t\t"+t._s(i.label)+"\n\t")])}))],2)}),[],!1,null,"be1cd266",null).exports,Be={name:"ExternalShareAction",props:{id:{type:String,required:!0},action:{type:Object,default:()=>({})},fileInfo:{type:Object,default:()=>{},required:!0},share:{type:At,default:null}},computed:{data(){return this.action.data(this)}}},Le=(0,_t.A)(Be,(function(){var t=this;return(0,t._self._c)(t.data.is,t._g(t._b({tag:"Component"},"Component",t.data,!1),t.action.handlers),[t._v("\n\t"+t._s(t.data.text)+"\n")])}),[],!1,null,null,null).exports,Oe=new pt;async function Me(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(Oe.passwordPolicy.api&&Oe.passwordPolicy.api.generate)try{const e=await Z.Ay.get(Oe.passwordPolicy.api.generate);if(e.data.ocs.data.password)return t&&(0,mt.Te)((0,b.Tl)("files_sharing","Password created successfully")),e.data.ocs.data.password}catch(e){console.info("Error generating password from password_policy",e),t&&(0,mt.Qg)((0,b.Tl)("files_sharing","Error generating password from password policy"))}const e=new Uint8Array(10),i=52/255;self.crypto.getRandomValues(e);let n="";for(let t=0;t<e.length;t++)n+="abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789".charAt(e[t]*i);return n}const Ue={name:"SharingEntryLink",components:{ExternalShareAction:Le,NcActions:W.A,NcActionButton:X.A,NcActionCheckbox:re.N,NcActionInput:se.A,NcActionLink:Ft.A,NcActionText:Vt.A,NcActionSeparator:ae.A,NcAvatar:_.A,NcDialog:oe.A,VueQrcode:ne(),Tune:ce,IconCalendarBlank:ue,IconQr:pe,ErrorIcon:ge,LockIcon:me,CheckIcon:ye,ClipboardIcon:yt.A,CloseIcon:we.A,PlusIcon:Ce.A,SharingEntryQuickShareSelect:Re},mixins:[Yt,Bt],props:{canReshare:{type:Boolean,default:!0},index:{type:Number,default:null}},data:()=>({shareCreationComplete:!1,copySuccess:!0,copied:!1,defaultExpirationDateEnabled:!1,pending:!1,ExternalLegacyLinkActions:OCA.Sharing.ExternalLinkActions.state,ExternalShareActions:OCA.Sharing.ExternalShareActions.state,logger:(0,ft.YK)().setApp("files_sharing").detectUser().build(),showQRCode:!1}),computed:{title(){if(this.share&&this.share.id){if(!this.isShareOwner&&this.share.ownerDisplayName)return this.isEmailShareType?t("files_sharing","{shareWith} by {initiator}",{shareWith:this.share.shareWith,initiator:this.share.ownerDisplayName}):t("files_sharing","Shared via link by {initiator}",{initiator:this.share.ownerDisplayName});if(this.share.label&&""!==this.share.label.trim())return this.isEmailShareType?this.isFileRequest?t("files_sharing","File request ({label})",{label:this.share.label.trim()}):t("files_sharing","Mail share ({label})",{label:this.share.label.trim()}):t("files_sharing","Share link ({label})",{label:this.share.label.trim()});if(this.isEmailShareType)return this.share.shareWith&&""!==this.share.shareWith.trim()?this.share.shareWith:this.isFileRequest?t("files_sharing","File request"):t("files_sharing","Mail share");if(null===this.index)return t("files_sharing","Share link")}return this.index>=1?t("files_sharing","Share link ({index})",{index:this.index}):t("files_sharing","Create public link")},subtitle(){return this.isEmailShareType&&this.title!==this.share.shareWith?this.share.shareWith:null},isPasswordProtected:{get(){return this.config.enforcePasswordForPublicLink||!!this.share.password},async set(t){Q.Ay.set(this.share,"password",t?await Me(!0):""),Q.Ay.set(this.share,"newPassword",this.share.password)}},passwordExpirationTime(){if(null===this.share.passwordExpirationTime)return null;const t=(0,ht.A)(this.share.passwordExpirationTime);return!(t.diff((0,ht.A)())<0)&&t.fromNow()},isTalkEnabled:()=>void 0!==OC.appswebroots.spreed,isPasswordProtectedByTalkAvailable(){return this.isPasswordProtected&&this.isTalkEnabled},isPasswordProtectedByTalk:{get(){return this.share.sendPasswordByTalk},async set(t){this.share.sendPasswordByTalk=t}},isEmailShareType(){return!!this.share&&this.share.type===ot.I.Email},canTogglePasswordProtectedByTalkAvailable(){return!(!this.isPasswordProtected||this.isEmailShareType&&!this.hasUnsavedPassword)},pendingDataIsMissing(){return this.pendingPassword||this.pendingEnforcedPassword||this.pendingDefaultExpirationDate||this.pendingEnforcedExpirationDate},pendingPassword(){return this.config.enableLinkPasswordByDefault&&this.isPendingShare},pendingEnforcedPassword(){return this.config.enforcePasswordForPublicLink&&this.isPendingShare},pendingEnforcedExpirationDate(){return this.config.isDefaultExpireDateEnforced&&this.isPendingShare},pendingDefaultExpirationDate(){return(this.config.defaultExpirationDate instanceof Date||!isNaN(new Date(this.config.defaultExpirationDate).getTime()))&&this.isPendingShare},isPendingShare(){return!(!this.share||this.share.id)},sharePolicyHasEnforcedProperties(){return this.config.enforcePasswordForPublicLink||this.config.isDefaultExpireDateEnforced},enforcedPropertiesMissing(){if(!this.sharePolicyHasEnforcedProperties)return!1;if(!this.share)return!0;if(this.share.id)return!0;const t=this.config.enforcePasswordForPublicLink&&!this.share.password,e=this.config.isDefaultExpireDateEnforced&&!this.share.expireDate;return t||e},hasUnsavedPassword(){return void 0!==this.share.newPassword},shareLink(){return(0,o.Jv)("/s/{token}",{token:this.share.token},{baseURL:(0,o.$_)()})},actionsTooltip(){return t("files_sharing",'Actions for "{title}"',{title:this.title})},copyLinkTooltip(){return this.copied?this.copySuccess?"":t("files_sharing","Cannot copy, please copy the link manually"):t("files_sharing",'Copy public link of "{title}" to clipboard',{title:this.title})},externalLegacyLinkActions(){return this.ExternalLegacyLinkActions.actions},externalLinkActions(){return this.ExternalShareActions.actions.filter((t=>(t.shareType.includes(ot.I.Link)||t.shareType.includes(ot.I.Email))&&!t.advanced))},isPasswordPolicyEnabled(){return"object"==typeof this.config.passwordPolicy},canChangeHideDownload(){return this.fileInfo.shareAttributes.some((t=>"permissions"===t.scope&&"download"===t.key&&!1===t.value))},isFileRequest(){return this.share.isFileRequest}},mounted(){this.defaultExpirationDateEnabled=this.config.defaultExpirationDate instanceof Date,this.share&&this.isNewShare&&(this.share.expireDate=this.defaultExpirationDateEnabled?this.formatDateToString(this.config.defaultExpirationDate):"")},methods:{shareRequiresReview(t){return!t&&(this.defaultExpirationDateEnabled||this.config.enableLinkPasswordByDefault)},async onNewLinkShare(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.logger.debug("onNewLinkShare called (with this.share)",this.share),this.loading)return;const i={share_type:ot.I.Link};if(this.config.isDefaultExpireDateEnforced&&(i.expiration=this.formatDateToString(this.config.defaultExpirationDate)),this.logger.debug("Missing required properties?",this.enforcedPropertiesMissing),this.sharePolicyHasEnforcedProperties&&this.enforcedPropertiesMissing||this.shareRequiresReview(!0===e)){this.pending=!0,this.shareCreationComplete=!1,this.logger.info("Share policy requires a review or has mandated properties (password, expirationDate)..."),(this.config.enableLinkPasswordByDefault||this.config.enforcePasswordForPublicLink)&&(i.password=await Me(!0));const t=new At(i),e=await new Promise((e=>{this.$emit("add:share",t,e)}));this.open=!1,this.pending=!1,e.open=!0}else{if(this.share&&!this.share.id){if(this.checkShare(this.share)){try{this.logger.info("Sending existing share to server",this.share),await this.pushNewLinkShare(this.share,!0),this.shareCreationComplete=!0,this.logger.info("Share created on server",this.share)}catch(t){return this.pending=!1,this.logger.error("Error creating share",t),!1}return!0}return this.open=!0,(0,mt.Qg)(t("files_sharing","Error, please enter proper password and/or expiration date")),!1}const e=new At(i);await this.pushNewLinkShare(e),this.shareCreationComplete=!0}},async pushNewLinkShare(e,i){try{if(this.loading)return!0;this.loading=!0,this.errors={};const n={path:(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),shareType:ot.I.Link,password:e.password,expireDate:e.expireDate??"",attributes:JSON.stringify(this.fileInfo.shareAttributes)};console.debug("Creating link share with options",n);const r=await this.createShare(n);let s;this.open=!1,this.shareCreationComplete=!0,console.debug("Link share created",r),s=i?await new Promise((t=>{this.$emit("update:share",r,t)})):await new Promise((t=>{this.$emit("add:share",r,t)})),await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node),this.config.enforcePasswordForPublicLink||s.copyLink(),(0,mt.Te)(t("files_sharing","Link share created"))}catch(e){const i=e?.response?.data?.ocs?.meta?.message;if(!i)return(0,mt.Qg)(t("files_sharing","Error while creating the share")),void console.error(e);throw i.match(/password/i)?this.onSyncError("password",i):i.match(/date/i)?this.onSyncError("expireDate",i):this.onSyncError("pending",i),e}finally{this.loading=!1,this.shareCreationComplete=!0}},async copyLink(){try{await navigator.clipboard.writeText(this.shareLink),(0,mt.Te)(t("files_sharing","Link copied")),this.$refs.copyButton.$el.focus(),this.copySuccess=!0,this.copied=!0}catch(t){this.copySuccess=!1,this.copied=!0,console.error(t)}finally{setTimeout((()=>{this.copySuccess=!1,this.copied=!1}),4e3)}},onPasswordChange(t){this.$set(this.share,"newPassword",t)},onPasswordDisable(){this.share.password="",this.$delete(this.share,"newPassword"),this.share.id&&this.queueUpdate("password")},onPasswordSubmit(){this.hasUnsavedPassword&&(this.share.password=this.share.newPassword.trim(),this.queueUpdate("password"))},onPasswordProtectedByTalkChange(){this.hasUnsavedPassword&&(this.share.password=this.share.newPassword.trim()),this.queueUpdate("sendPasswordByTalk","password")},onMenuClose(){this.onPasswordSubmit(),this.onNoteSubmit()},onExpirationDateToggleUpdate(t){this.share.expireDate=t?this.formatDateToString(this.config.defaultExpirationDate):""},expirationDateChanged(t){const e=t.target.value;this.onExpirationChange(e),this.defaultExpirationDateEnabled=!!e},onCancel(){this.shareCreationComplete||this.$emit("remove:share",this.share)}}},$e=Ue;var Fe=n(98733),Ve={};Ve.styleTagTransform=y(),Ve.setAttributes=g(),Ve.insert=p().bind(null,"head"),Ve.domAPI=u(),Ve.insertStyleElement=m(),c()(Fe.A,Ve),Fe.A&&Fe.A.locals&&Fe.A.locals;const je={name:"SharingLinkList",components:{SharingEntryLink:(0,_t.A)($e,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"sharing-entry sharing-entry__link",class:{"sharing-entry--share":t.share}},[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":!0,"icon-class":t.isEmailShareType?"avatar-link-share icon-mail-white":"avatar-link-share icon-public-white"}}),t._v(" "),e("div",{staticClass:"sharing-entry__summary"},[e("div",{staticClass:"sharing-entry__desc"},[e("span",{staticClass:"sharing-entry__title",attrs:{title:t.title}},[t._v("\n\t\t\t\t"+t._s(t.title)+"\n\t\t\t")]),t._v(" "),t.subtitle?e("p",[t._v("\n\t\t\t\t"+t._s(t.subtitle)+"\n\t\t\t")]):t._e(),t._v(" "),t.share&&void 0!==t.share.permissions?e("SharingEntryQuickShareSelect",{attrs:{share:t.share,"file-info":t.fileInfo},on:{"open-sharing-details":function(e){return t.openShareDetailsForCustomSettings(t.share)}}}):t._e()],1),t._v(" "),t.share&&(!t.isEmailShareType||t.isFileRequest)&&t.share.token?e("NcActions",{ref:"copyButton",staticClass:"sharing-entry__copy"},[e("NcActionButton",{attrs:{"aria-label":t.copyLinkTooltip,title:t.copyLinkTooltip,href:t.shareLink},on:{click:function(e){return e.preventDefault(),t.copyLink.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.copied&&t.copySuccess?e("CheckIcon",{staticClass:"icon-checkmark-color",attrs:{size:20}}):e("ClipboardIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,4269614823)})],1):t._e()],1),t._v(" "),!t.pending&&t.pendingDataIsMissing?e("NcActions",{staticClass:"sharing-entry__actions",attrs:{"aria-label":t.actionsTooltip,"menu-align":"right",open:t.open},on:{"update:open":function(e){t.open=e},close:t.onCancel}},[t.errors.pending?e("NcActionText",{staticClass:"error",scopedSlots:t._u([{key:"icon",fn:function(){return[e("ErrorIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1966124155)},[t._v("\n\t\t\t"+t._s(t.errors.pending)+"\n\t\t")]):e("NcActionText",{attrs:{icon:"icon-info"}},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Please enter the following required information before creating the share"))+"\n\t\t")]),t._v(" "),t.pendingPassword?e("NcActionCheckbox",{staticClass:"share-link-password-checkbox",attrs:{checked:t.isPasswordProtected,disabled:t.config.enforcePasswordForPublicLink||t.saving},on:{"update:checked":function(e){t.isPasswordProtected=e},uncheck:t.onPasswordDisable}},[t._v("\n\t\t\t"+t._s(t.config.enforcePasswordForPublicLink?t.t("files_sharing","Password protection (enforced)"):t.t("files_sharing","Password protection"))+"\n\t\t")]):t._e(),t._v(" "),t.pendingEnforcedPassword||t.share.password?e("NcActionInput",{staticClass:"share-link-password",attrs:{label:t.t("files_sharing","Enter a password"),value:t.share.password,disabled:t.saving,required:t.config.enableLinkPasswordByDefault||t.config.enforcePasswordForPublicLink,minlength:t.isPasswordPolicyEnabled&&t.config.passwordPolicy.minLength,autocomplete:"new-password"},on:{"update:value":function(e){return t.$set(t.share,"password",e)},submit:function(e){return t.onNewLinkShare(!0)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("LockIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2056568168)}):t._e(),t._v(" "),t.pendingDefaultExpirationDate?e("NcActionCheckbox",{staticClass:"share-link-expiration-date-checkbox",attrs:{checked:t.defaultExpirationDateEnabled,disabled:t.pendingEnforcedExpirationDate||t.saving},on:{"update:checked":function(e){t.defaultExpirationDateEnabled=e},"update:model-value":t.onExpirationDateToggleUpdate}},[t._v("\n\t\t\t"+t._s(t.config.isDefaultExpireDateEnforced?t.t("files_sharing","Enable link expiration (enforced)"):t.t("files_sharing","Enable link expiration"))+"\n\t\t")]):t._e(),t._v(" "),(t.pendingDefaultExpirationDate||t.pendingEnforcedExpirationDate)&&t.defaultExpirationDateEnabled?e("NcActionInput",{staticClass:"share-link-expire-date",attrs:{"data-cy-files-sharing-expiration-date-input":"",label:t.pendingEnforcedExpirationDate?t.t("files_sharing","Enter expiration date (enforced)"):t.t("files_sharing","Enter expiration date"),disabled:t.saving,"is-native-picker":!0,"hide-label":!0,value:new Date(t.share.expireDate),type:"date",min:t.dateTomorrow,max:t.maxExpirationDateEnforced},on:{change:function(e){return t.expirationDateChanged(e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconCalendarBlank",{attrs:{size:20}})]},proxy:!0}],null,!1,3418578971)}):t._e(),t._v(" "),e("NcActionButton",{on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onNewLinkShare(!0)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CheckIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2630571749)},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Create share"))+"\n\t\t")]),t._v(" "),e("NcActionButton",{on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onCancel.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Cancel"))+"\n\t\t")])],1):t.loading?e("div",{staticClass:"icon-loading-small sharing-entry__loading"}):e("NcActions",{staticClass:"sharing-entry__actions",attrs:{"aria-label":t.actionsTooltip,"menu-align":"right",open:t.open},on:{"update:open":function(e){t.open=e},close:t.onMenuClose}},[t.share?[t.share.canEdit&&t.canReshare?[e("NcActionButton",{attrs:{disabled:t.saving,"close-after-click":!0},on:{click:function(e){return e.preventDefault(),t.openSharingDetails.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Tune",{attrs:{size:20}})]},proxy:!0}],null,!1,1300586850)},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Customize link"))+"\n\t\t\t\t")])]:t._e(),t._v(" "),e("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(e){e.preventDefault(),t.showQRCode=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconQr",{attrs:{size:20}})]},proxy:!0}],null,!1,1082198240)},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Generate QR code"))+"\n\t\t\t")]),t._v(" "),e("NcActionSeparator"),t._v(" "),t._l(t.externalLinkActions,(function(i){return e("ExternalShareAction",{key:i.id,attrs:{id:i.id,action:i,"file-info":t.fileInfo,share:t.share}})})),t._v(" "),t._l(t.externalLegacyLinkActions,(function(i,n){let{icon:r,url:s,name:a}=i;return e("NcActionLink",{key:n,attrs:{href:s(t.shareLink),icon:r,target:"_blank"}},[t._v("\n\t\t\t\t"+t._s(a)+"\n\t\t\t")])})),t._v(" "),!t.isEmailShareType&&t.canReshare?e("NcActionButton",{staticClass:"new-share-link",on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onNewLinkShare.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("PlusIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2953566425)},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Add another link"))+"\n\t\t\t")]):t._e(),t._v(" "),t.share.canDelete?e("NcActionButton",{attrs:{disabled:t.saving},on:{click:function(e){return e.preventDefault(),t.onDelete.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Unshare"))+"\n\t\t\t")]):t._e()]:t.canReshare?e("NcActionButton",{staticClass:"new-share-link",attrs:{title:t.t("files_sharing","Create a new share link"),"aria-label":t.t("files_sharing","Create a new share link"),icon:t.loading?"icon-loading-small":"icon-add"},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onNewLinkShare.apply(null,arguments)}}}):t._e()],2),t._v(" "),t.showQRCode?e("NcDialog",{attrs:{size:"normal",open:t.showQRCode,name:t.title,"close-on-click-outside":!0},on:{"update:open":function(e){t.showQRCode=e},close:function(e){t.showQRCode=!1}}},[e("div",{staticClass:"qr-code-dialog"},[e("VueQrcode",{staticClass:"qr-code-dialog__img",attrs:{tag:"img",value:t.shareLink}})],1)]):t._e()],1)}),[],!1,null,"3d033992",null).exports},mixins:[Bt],props:{fileInfo:{type:Object,default:()=>{},required:!0},shares:{type:Array,default:()=>[],required:!0},canReshare:{type:Boolean,required:!0}},data:()=>({canLinkShare:(0,dt.F)().files_sharing.public.enabled}),computed:{hasLinkShares(){return this.shares.filter((t=>t.type===ot.I.Link)).length>0},hasShares(){return this.shares.length>0}},methods:{t:b.t,addShare(t,e){this.shares.push(t),this.awaitForShare(t,e)},awaitForShare(t,e){this.$nextTick((()=>{const i=this.$children.find((e=>e.share===t));i&&e(i)}))},removeShare(t){const e=this.shares.findIndex((e=>e===t));this.shares.splice(e,1)}}},qe=(0,_t.A)(je,(function(){var t=this,e=t._self._c;return t.canLinkShare?e("ul",{staticClass:"sharing-link-list",attrs:{"aria-label":t.t("files_sharing","Link shares")}},[!t.hasLinkShares&&t.canReshare?e("SharingEntryLink",{attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo},on:{"add:share":t.addShare}}):t._e(),t._v(" "),t.hasShares?t._l(t.shares,(function(i,n){return e("SharingEntryLink",{key:i.id,attrs:{index:t.shares.length>1?n+1:null,"can-reshare":t.canReshare,share:t.shares[n],"file-info":t.fileInfo},on:{"update:share":[function(e){return t.$set(t.shares,n,e)},function(e){return t.awaitForShare(...arguments)}],"add:share":function(e){return t.addShare(...arguments)},"remove:share":t.removeShare,"open-sharing-details":function(e){return t.openSharingDetails(i)}}})})):t._e()],2):t._e()}),[],!1,null,null,null).exports;var ze=n(26690);const He={name:"SharingEntry",components:{NcButton:ut.A,NcAvatar:_.A,DotsHorizontalIcon:ze.A,NcSelect:E.A,SharingEntryQuickShareSelect:Re},mixins:[Yt,Bt],computed:{title(){let e=this.share.shareWithDisplayName;return this.share.type===ot.I.Group?e+=` (${t("files_sharing","group")})`:this.share.type===ot.I.Room?e+=` (${t("files_sharing","conversation")})`:this.share.type===ot.I.Remote?e+=` (${t("files_sharing","remote")})`:this.share.type===ot.I.RemoteGroup?e+=` (${t("files_sharing","remote group")})`:this.share.type===ot.I.Guest&&(e+=` (${t("files_sharing","guest")})`),!this.isShareOwner&&this.share.ownerDisplayName&&(e+=" "+t("files_sharing","by {initiator}",{initiator:this.share.ownerDisplayName})),e},tooltip(){if(this.share.owner!==this.share.uidFileOwner){const e={user:this.share.shareWithDisplayName,owner:this.share.ownerDisplayName};return this.share.type===ot.I.Group?t("files_sharing","Shared with the group {user} by {owner}",e):this.share.type===ot.I.Room?t("files_sharing","Shared with the conversation {user} by {owner}",e):t("files_sharing","Shared with {user} by {owner}",e)}return null},hasStatus(){return this.share.type===ot.I.User&&"object"==typeof this.share.status&&!Array.isArray(this.share.status)}},methods:{onMenuClose(){this.onNoteSubmit()}}};var Ge=n(63592),Ye={};Ye.styleTagTransform=y(),Ye.setAttributes=g(),Ye.insert=p().bind(null,"head"),Ye.domAPI=u(),Ye.insertStyleElement=m(),c()(Ge.A,Ye),Ge.A&&Ge.A.locals&&Ge.A.locals;const We={name:"SharingList",components:{SharingEntry:(0,_t.A)(He,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"sharing-entry"},[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":t.share.type!==t.ShareType.User,user:t.share.shareWith,"display-name":t.share.shareWithDisplayName,"menu-position":"left",url:t.share.shareWithAvatar}}),t._v(" "),e("div",{staticClass:"sharing-entry__summary"},[e(t.share.shareWithLink?"a":"div",{tag:"component",staticClass:"sharing-entry__summary__desc",attrs:{title:t.tooltip,"aria-label":t.tooltip,href:t.share.shareWithLink}},[e("span",[t._v(t._s(t.title)+"\n\t\t\t\t"),t.isUnique?t._e():e("span",{staticClass:"sharing-entry__summary__desc-unique"},[t._v(" ("+t._s(t.share.shareWithDisplayNameUnique)+")")]),t._v(" "),t.hasStatus&&t.share.status.message?e("small",[t._v("("+t._s(t.share.status.message)+")")]):t._e()])]),t._v(" "),e("SharingEntryQuickShareSelect",{attrs:{share:t.share,"file-info":t.fileInfo},on:{"open-sharing-details":function(e){return t.openShareDetailsForCustomSettings(t.share)}}})],1),t._v(" "),t.share.canEdit?e("NcButton",{staticClass:"sharing-entry__action",attrs:{"data-cy-files-sharing-share-actions":"","aria-label":t.t("files_sharing","Open Sharing Details"),type:"tertiary"},on:{click:function(e){return t.openSharingDetails(t.share)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("DotsHorizontalIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1700783217)}):t._e()],1)}),[],!1,null,"e994747e",null).exports},mixins:[Bt],props:{fileInfo:{type:Object,default:()=>{},required:!0},shares:{type:Array,default:()=>[],required:!0}},setup:()=>({t:b.t}),computed:{hasShares(){return 0===this.shares.length},isUnique(){return t=>[...this.shares].filter((e=>t.type===ot.I.User&&t.shareWithDisplayName===e.shareWithDisplayName)).length<=1}}},Xe=(0,_t.A)(We,(function(){var t=this,e=t._self._c;return e("ul",{staticClass:"sharing-sharee-list",attrs:{"aria-label":t.t("files_sharing","Shares")}},t._l(t.shares,(function(i){return e("SharingEntry",{key:i.id,attrs:{"file-info":t.fileInfo,share:i,"is-unique":t.isUnique(i)},on:{"open-sharing-details":function(e){return t.openSharingDetails(i)}}})})),1)}),[],!1,null,null,null).exports;var Qe=n(32073),Ze=n(18319),Ke=n(16879),Je=n(59892),ti=n(16044),ei=n(177);const ii={name:"CircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ni=(0,_t.A)(ii,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon circle-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,ri={name:"EmailIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},si=(0,_t.A)(ri,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon email-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var ai=n(36600),oi=n(43261);const li={name:"ShareCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ci=(0,_t.A)(li,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon share-circle-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,hi={name:"AccountCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ui=(0,_t.A)(hi,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon account-circle-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,di={name:"EyeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},pi=(0,_t.A)(di,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon eye-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var fi=n(65422),gi=n(25384),Ai=n(33388);const mi={name:"RefreshIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},vi=(0,_t.A)(mi,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon refresh-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,yi={name:"SharingDetailsTab",components:{NcAvatar:_.A,NcButton:ut.A,NcCheckboxRadioSwitch:Qe.A,NcDateTimePickerNative:Ze.A,NcInputField:Ke.A,NcLoadingIcon:Je.A,NcPasswordField:ti.A,NcTextArea:ei.A,CloseIcon:we.A,CircleIcon:ni,EditIcon:Se.A,ExternalShareAction:Le,LinkIcon:ai.A,GroupIcon:oi.A,ShareIcon:ci,UserIcon:ui,UploadIcon:fi.A,ViewIcon:pi,MenuDownIcon:gi.A,MenuUpIcon:Ai.A,DotsHorizontalIcon:ze.A,Refresh:vi},mixins:[Rt,Yt],props:{shareRequestValue:{type:Object,required:!1},fileInfo:{type:Object,required:!0},share:{type:Object,required:!0}},data(){return{writeNoteToRecipientIsChecked:!1,sharingPermission:zt.ALL.toString(),revertSharingPermission:zt.ALL.toString(),setCustomPermissions:!1,passwordError:!1,advancedSectionAccordionExpanded:!1,bundledPermissions:zt,isFirstComponentLoad:!0,test:!1,creating:!1,initialToken:this.share.token,loadingToken:!1,ExternalShareActions:OCA.Sharing.ExternalShareActions.state}},computed:{title(){switch(this.share.type){case ot.I.User:return t("files_sharing","Share with {userName}",{userName:this.share.shareWithDisplayName});case ot.I.Email:return t("files_sharing","Share with email {email}",{email:this.share.shareWith});case ot.I.Link:return t("files_sharing","Share link");case ot.I.Group:return t("files_sharing","Share with group");case ot.I.Room:return t("files_sharing","Share in conversation");case ot.I.Remote:{const[e,i]=this.share.shareWith.split("@");return t("files_sharing","Share with {user} on remote server {server}",{user:e,server:i})}case ot.I.RemoteGroup:return t("files_sharing","Share with remote group");case ot.I.Guest:return t("files_sharing","Share with guest");default:return this.share.id?t("files_sharing","Update share"):t("files_sharing","Create share")}},canEdit:{get(){return this.share.hasUpdatePermission},set(t){this.updateAtomicPermissions({isEditChecked:t})}},canCreate:{get(){return this.share.hasCreatePermission},set(t){this.updateAtomicPermissions({isCreateChecked:t})}},canDelete:{get(){return this.share.hasDeletePermission},set(t){this.updateAtomicPermissions({isDeleteChecked:t})}},canReshare:{get(){return this.share.hasSharePermission},set(t){this.updateAtomicPermissions({isReshareChecked:t})}},showInGridView:{get(){return this.getShareAttribute("config","grid_view",!1)},set(t){this.setShareAttribute("config","grid_view",t)}},canDownload:{get(){return this.getShareAttribute("permissions","download",!0)},set(t){this.setShareAttribute("permissions","download",t)}},hasRead:{get(){return this.share.hasReadPermission},set(t){this.updateAtomicPermissions({isReadChecked:t})}},hasExpirationDate:{get(){return this.isValidShareAttribute(this.share.expireDate)},set(t){this.share.expireDate=t?this.formatDateToString(this.defaultExpiryDate):""}},isPasswordProtected:{get(){return this.config.enforcePasswordForPublicLink||!!this.share.password},async set(t){t?(this.share.password=await Me(!0),this.$set(this.share,"newPassword",this.share.password)):(this.share.password="",this.$delete(this.share,"newPassword"))}},isFolder(){return"dir"===this.fileInfo.type},isSetDownloadButtonVisible(){return this.isFolder||["application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.oasis.opendocument.text","application/vnd.oasis.opendocument.spreadsheet","application/vnd.oasis.opendocument.presentation"].includes(this.fileInfo.mimetype)},isPasswordEnforced(){return this.isPublicShare&&this.config.enforcePasswordForPublicLink},defaultExpiryDate(){return(this.isGroupShare||this.isUserShare)&&this.config.isDefaultInternalExpireDateEnabled?new Date(this.config.defaultInternalExpirationDate):this.isRemoteShare&&this.config.isDefaultRemoteExpireDateEnabled?new Date(this.config.defaultRemoteExpireDateEnabled):this.isPublicShare&&this.config.isDefaultExpireDateEnabled?new Date(this.config.defaultExpirationDate):new Date((new Date).setDate((new Date).getDate()+1))},isUserShare(){return this.share.type===ot.I.User},isGroupShare(){return this.share.type===ot.I.Group},allowsFileDrop(){return!(!this.isFolder||!this.config.isPublicUploadEnabled||this.share.type!==ot.I.Link&&this.share.type!==ot.I.Email)},hasFileDropPermissions(){return this.share.permissions===this.bundledPermissions.FILE_DROP},shareButtonText(){return this.isNewShare?t("files_sharing","Save share"):t("files_sharing","Update share")},resharingIsPossible(){return this.config.isResharingAllowed&&this.share.type!==ot.I.Link&&this.share.type!==ot.I.Email},canSetEdit(){return this.fileInfo.sharePermissions&OC.PERMISSION_UPDATE||this.canEdit},canSetCreate(){return this.fileInfo.sharePermissions&OC.PERMISSION_CREATE||this.canCreate},canSetDelete(){return this.fileInfo.sharePermissions&OC.PERMISSION_DELETE||this.canDelete},canSetReshare(){return this.fileInfo.sharePermissions&OC.PERMISSION_SHARE||this.canReshare},canSetDownload(){return this.fileInfo.canDownload()||this.canDownload},canRemoveReadPermission(){return this.allowsFileDrop&&(this.share.type===ot.I.Link||this.share.type===ot.I.Email)},hasUnsavedPassword(){return void 0!==this.share.newPassword},passwordExpirationTime(){if(!this.isValidShareAttribute(this.share.passwordExpirationTime))return null;const t=(0,ht.A)(this.share.passwordExpirationTime);return!(t.diff((0,ht.A)())<0)&&t.fromNow()},isTalkEnabled:()=>void 0!==OC.appswebroots.spreed,isPasswordProtectedByTalkAvailable(){return this.isPasswordProtected&&this.isTalkEnabled},isPasswordProtectedByTalk:{get(){return this.share.sendPasswordByTalk},async set(t){this.share.sendPasswordByTalk=t}},isEmailShareType(){return!!this.share&&this.share.type===ot.I.Email},canTogglePasswordProtectedByTalkAvailable(){return!(!this.isPublicShare||!this.isPasswordProtected||this.isEmailShareType&&!this.hasUnsavedPassword||void 0===OC.appswebroots.spreed)},canChangeHideDownload(){return this.fileInfo.shareAttributes.some((t=>"download"===t.key&&"permissions"===t.scope&&!1===t.value))},customPermissionsList(){const t={[qt.READ]:this.t("files_sharing","Read"),[qt.CREATE]:this.t("files_sharing","Create"),[qt.UPDATE]:this.t("files_sharing","Edit"),[qt.SHARE]:this.t("files_sharing","Share"),[qt.DELETE]:this.t("files_sharing","Delete")};return[qt.READ,qt.CREATE,qt.UPDATE,...this.resharingIsPossible?[qt.SHARE]:[],qt.DELETE].filter((t=>{return e=this.share.permissions,i=t,e!==qt.NONE&&(e&i)===i;var e,i})).map(((e,i)=>0===i?t[e]:t[e].toLocaleLowerCase((0,b.Z0)()))).join(", ")},advancedControlExpandedValue(){return this.advancedSectionAccordionExpanded?"true":"false"},errorPasswordLabel(){if(this.passwordError)return t("files_sharing","Password field cannot be empty")},passwordHint(){if(!this.isNewShare&&!this.hasUnsavedPassword)return t("files_sharing","Replace current password")},externalLinkActions(){return this.ExternalShareActions.actions.filter((t=>(t.shareType.includes(ot.I.Link)||t.shareType.includes(ot.I.Email))&&t.advanced))}},watch:{setCustomPermissions(t){this.sharingPermission=t?"custom":this.revertSharingPermission}},beforeMount(){this.initializePermissions(),this.initializeAttributes(),gt.debug("Share object received",{share:this.share}),gt.debug("Configuration object received",{config:this.config})},mounted(){this.$refs.quickPermissions?.querySelector("input:checked")?.focus()},methods:{setShareAttribute(t,e,i){this.share.attributes||this.$set(this.share,"attributes",[]);const n=this.share.attributes.find((i=>i.scope===t||i.key===e));n?n.value=i:this.share.attributes.push({scope:t,key:e,value:i})},getShareAttribute(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;const n=this.share.attributes?.find((i=>i.scope===t&&i.key===e));return n?.value??i},async generateNewToken(){if(!this.loadingToken){this.loadingToken=!0;try{this.share.token=await(async()=>{const{data:t}=await Z.Ay.get((0,o.KT)("/apps/files_sharing/api/v1/token"));return t.ocs.data.token})()}catch(e){(0,mt.Qg)(t("files_sharing","Failed to generate a new token"))}this.loadingToken=!1}},cancel(){this.share.token=this.initialToken,this.$emit("close-sharing-details")},updateAtomicPermissions(){let{isReadChecked:t=this.hasRead,isEditChecked:e=this.canEdit,isCreateChecked:i=this.canCreate,isDeleteChecked:n=this.canDelete,isReshareChecked:r=this.canReshare}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const s=(t?qt.READ:0)|(i?qt.CREATE:0)|(n?qt.DELETE:0)|(e?qt.UPDATE:0)|(r?qt.SHARE:0);this.share.permissions=s},expandCustomPermissions(){this.advancedSectionAccordionExpanded||(this.advancedSectionAccordionExpanded=!0),this.toggleCustomPermissions()},toggleCustomPermissions(t){const e="custom"===this.sharingPermission;this.revertSharingPermission=e?"custom":t,this.setCustomPermissions=e},async initializeAttributes(){if(this.isNewShare)return this.isPasswordEnforced&&this.isPublicShare&&(this.$set(this.share,"newPassword",await Me(!0)),this.advancedSectionAccordionExpanded=!0),this.isPublicShare&&this.config.isDefaultExpireDateEnabled?this.share.expireDate=this.config.defaultExpirationDate.toDateString():this.isRemoteShare&&this.config.isDefaultRemoteExpireDateEnabled?this.share.expireDate=this.config.defaultRemoteExpirationDateString.toDateString():this.config.isDefaultInternalExpireDateEnabled&&(this.share.expireDate=this.config.defaultInternalExpirationDate.toDateString()),void(this.isValidShareAttribute(this.share.expireDate)&&(this.advancedSectionAccordionExpanded=!0));!this.isValidShareAttribute(this.share.expireDate)&&this.isExpiryDateEnforced&&(this.hasExpirationDate=!0),(this.isValidShareAttribute(this.share.password)||this.isValidShareAttribute(this.share.expireDate)||this.isValidShareAttribute(this.share.label))&&(this.advancedSectionAccordionExpanded=!0),this.share.note&&(this.writeNoteToRecipientIsChecked=!0)},handleShareType(){"shareType"in this.share?this.share.type=this.share.shareType:this.share.share_type&&(this.share.type=this.share.share_type)},handleDefaultPermissions(){if(this.isNewShare){const t=this.config.defaultPermissions;t===zt.READ_ONLY||t===zt.ALL?this.sharingPermission=t.toString():(this.sharingPermission="custom",this.share.permissions=t,this.advancedSectionAccordionExpanded=!0,this.setCustomPermissions=!0)}this.canRemoveReadPermission||(this.hasRead=!0)},handleCustomPermissions(){this.isNewShare||!this.hasCustomPermissions&&!this.share.setCustomPermissions?this.share.permissions&&(this.sharingPermission=this.share.permissions.toString()):(this.sharingPermission="custom",this.advancedSectionAccordionExpanded=!0,this.setCustomPermissions=!0)},initializePermissions(){this.handleShareType(),this.handleDefaultPermissions(),this.handleCustomPermissions()},async saveShare(){const t=["permissions","attributes","note","expireDate"],e=["label","password","hideDownload"];this.config.allowCustomTokens&&e.push("token"),this.isPublicShare&&t.push(...e);const i=parseInt(this.sharingPermission);if(this.setCustomPermissions?this.updateAtomicPermissions():this.share.permissions=i,this.isFolder||this.share.permissions!==zt.ALL||(this.share.permissions=zt.ALL_FILE),this.writeNoteToRecipientIsChecked||(this.share.note=""),this.isPasswordProtected?this.hasUnsavedPassword&&this.isValidShareAttribute(this.share.newPassword)?(this.share.password=this.share.newPassword,this.$delete(this.share,"newPassword")):this.isPasswordEnforced&&this.isNewShare&&!this.isValidShareAttribute(this.share.password)&&(this.passwordError=!0):this.share.password="",this.hasExpirationDate||(this.share.expireDate=""),this.isNewShare){const t={permissions:this.share.permissions,shareType:this.share.type,shareWith:this.share.shareWith,attributes:this.share.attributes,note:this.share.note,fileInfo:this.fileInfo};t.expireDate=this.hasExpirationDate?this.share.expireDate:"",this.isPasswordProtected&&(t.password=this.share.password),this.creating=!0;const e=await this.addShare(t);this.creating=!1,this.share=e,this.$emit("add:share",this.share)}else this.$emit("update:share",this.share),(0,Dt.Ic)("update:share",this.share),this.queueUpdate(...t);await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node),this.$refs.externalLinkActions?.length>0&&await Promise.allSettled(this.$refs.externalLinkActions.map((t=>"function"!=typeof t.$children.at(0)?.onSave?Promise.resolve():t.$children.at(0)?.onSave?.()))),this.$emit("close-sharing-details")},async addShare(t){gt.debug("Adding a new share from the input for",{share:t});const e=this.path;try{return await this.createShare({path:e,shareType:t.shareType,shareWith:t.shareWith,permissions:t.permissions,expireDate:t.expireDate,attributes:JSON.stringify(t.attributes),...t.note?{note:t.note}:{},...t.password?{password:t.password}:{}})}catch(t){gt.error("Error while adding new share",{error:t})}},async removeShare(){await this.onDelete(),await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node),this.$emit("close-sharing-details")},onPasswordChange(t){if(""===t)return this.$delete(this.share,"newPassword"),void(this.passwordError=this.isNewShare&&this.isPasswordEnforced);this.passwordError=!this.isValidShareAttribute(t),this.$set(this.share,"newPassword",t)},onPasswordProtectedByTalkChange(){this.hasUnsavedPassword&&(this.share.password=this.share.newPassword.trim()),this.queueUpdate("sendPasswordByTalk","password")},isValidShareAttribute:t=>![null,void 0].includes(t)&&t.trim().length>0,getShareTypeIcon(t){switch(t){case ot.I.Link:return ai.A;case ot.I.Guest:return ui;case ot.I.RemoteGroup:case ot.I.Group:return oi.A;case ot.I.Email:return si;case ot.I.Team:return ni;case ot.I.Room:case ot.I.Deck:case ot.I.ScienceMesh:return ci;default:return null}}}};var wi=n(8699),Ci={};Ci.styleTagTransform=y(),Ci.setAttributes=g(),Ci.insert=p().bind(null,"head"),Ci.domAPI=u(),Ci.insertStyleElement=m(),c()(wi.A,Ci),wi.A&&wi.A.locals&&wi.A.locals;const bi=(0,_t.A)(yi,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"sharingTabDetailsView"},[e("div",{staticClass:"sharingTabDetailsView__header"},[e("span",[t.isUserShare?e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":t.share.shareType!==t.ShareType.User,user:t.share.shareWith,"display-name":t.share.shareWithDisplayName,"menu-position":"left",url:t.share.shareWithAvatar}}):t._e(),t._v(" "),e(t.getShareTypeIcon(t.share.type),{tag:"component",attrs:{size:32}})],1),t._v(" "),e("span",[e("h1",[t._v(t._s(t.title))])])]),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__wrapper"},[e("div",{ref:"quickPermissions",staticClass:"sharingTabDetailsView__quick-permissions"},[e("div",[e("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"read-only",checked:t.sharingPermission,value:t.bundledPermissions.READ_ONLY.toString(),name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.toggleCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("ViewIcon",{attrs:{size:20}})]},proxy:!0}])},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","View only"))+"\n\t\t\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"upload-edit",checked:t.sharingPermission,value:t.bundledPermissions.ALL.toString(),name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.toggleCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("EditIcon",{attrs:{size:20}})]},proxy:!0}])},[t.allowsFileDrop?[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Allow upload and editing"))+"\n\t\t\t\t\t")]:[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Allow editing"))+"\n\t\t\t\t\t")]],2),t._v(" "),t.allowsFileDrop?e("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-sharing-share-permissions-bundle":"file-drop","button-variant":!0,checked:t.sharingPermission,value:t.bundledPermissions.FILE_DROP.toString(),name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.toggleCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("UploadIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1083194048)},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","File request"))+"\n\t\t\t\t\t"),e("small",{staticClass:"subline"},[t._v(t._s(t.t("files_sharing","Upload only")))])]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"custom",checked:t.sharingPermission,value:"custom",name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.expandCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("DotsHorizontalIcon",{attrs:{size:20}})]},proxy:!0}])},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Custom permissions"))+"\n\t\t\t\t\t"),e("small",{staticClass:"subline"},[t._v(t._s(t.customPermissionsList))])])],1)]),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__advanced-control"},[e("NcButton",{attrs:{id:"advancedSectionAccordionAdvancedControl",type:"tertiary",alignment:"end-reverse","aria-controls":"advancedSectionAccordionAdvanced","aria-expanded":t.advancedControlExpandedValue},on:{click:function(e){t.advancedSectionAccordionExpanded=!t.advancedSectionAccordionExpanded}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.advancedSectionAccordionExpanded?e("MenuUpIcon"):e("MenuDownIcon")]},proxy:!0}])},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Advanced settings"))+"\n\t\t\t\t")])],1),t._v(" "),t.advancedSectionAccordionExpanded?e("div",{staticClass:"sharingTabDetailsView__advanced",attrs:{id:"advancedSectionAccordionAdvanced","aria-labelledby":"advancedSectionAccordionAdvancedControl",role:"region"}},[e("section",[t.isPublicShare?e("NcInputField",{staticClass:"sharingTabDetailsView__label",attrs:{autocomplete:"off",label:t.t("files_sharing","Share label"),value:t.share.label},on:{"update:value":function(e){return t.$set(t.share,"label",e)}}}):t._e(),t._v(" "),t.config.allowCustomTokens&&t.isPublicShare&&!t.isNewShare?e("NcInputField",{attrs:{autocomplete:"off",label:t.t("files_sharing","Share link token"),"helper-text":t.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":t.loadingToken?t.t("files_sharing","Generating…"):t.t("files_sharing","Generate new token"),value:t.share.token},on:{"update:value":function(e){return t.$set(t.share,"token",e)},"trailing-button-click":t.generateNewToken},scopedSlots:t._u([{key:"trailing-button-icon",fn:function(){return[t.loadingToken?e("NcLoadingIcon"):e("Refresh",{attrs:{size:20}})]},proxy:!0}],null,!1,4228062821)}):t._e(),t._v(" "),t.isPublicShare?[e("NcCheckboxRadioSwitch",{attrs:{checked:t.isPasswordProtected,disabled:t.isPasswordEnforced},on:{"update:checked":function(e){t.isPasswordProtected=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Set password"))+"\n\t\t\t\t\t")]),t._v(" "),t.isPasswordProtected?e("NcPasswordField",{attrs:{autocomplete:"new-password",value:t.hasUnsavedPassword?t.share.newPassword:"",error:t.passwordError,"helper-text":t.errorPasswordLabel||t.passwordHint,required:t.isPasswordEnforced&&t.isNewShare,label:t.t("files_sharing","Password")},on:{"update:value":t.onPasswordChange}}):t._e(),t._v(" "),t.isEmailShareType&&t.passwordExpirationTime?e("span",{attrs:{icon:"icon-info"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Password expires {passwordExpirationTime}",{passwordExpirationTime:t.passwordExpirationTime}))+"\n\t\t\t\t\t")]):t.isEmailShareType&&null!==t.passwordExpirationTime?e("span",{attrs:{icon:"icon-error"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Password expired"))+"\n\t\t\t\t\t")]):t._e()]:t._e(),t._v(" "),t.canTogglePasswordProtectedByTalkAvailable?e("NcCheckboxRadioSwitch",{attrs:{checked:t.isPasswordProtectedByTalk},on:{"update:checked":[function(e){t.isPasswordProtectedByTalk=e},t.onPasswordProtectedByTalkChange]}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Video verification"))+"\n\t\t\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.hasExpirationDate,disabled:t.isExpiryDateEnforced},on:{"update:checked":function(e){t.hasExpirationDate=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.isExpiryDateEnforced?t.t("files_sharing","Expiration date (enforced)"):t.t("files_sharing","Set expiration date"))+"\n\t\t\t\t")]),t._v(" "),t.hasExpirationDate?e("NcDateTimePickerNative",{attrs:{id:"share-date-picker",value:new Date(t.share.expireDate??t.dateTomorrow),min:t.dateTomorrow,max:t.maxExpirationDateEnforced,"hide-label":"",label:t.t("files_sharing","Expiration date"),placeholder:t.t("files_sharing","Expiration date"),type:"date"},on:{input:t.onExpirationChange}}):t._e(),t._v(" "),t.isPublicShare?e("NcCheckboxRadioSwitch",{attrs:{disabled:t.canChangeHideDownload,checked:t.share.hideDownload},on:{"update:checked":[function(e){return t.$set(t.share,"hideDownload",e)},function(e){return t.queueUpdate("hideDownload")}]}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Hide download"))+"\n\t\t\t\t")]):e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetDownload,checked:t.canDownload,"data-cy-files-sharing-share-permissions-checkbox":"download"},on:{"update:checked":function(e){t.canDownload=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Allow download and sync"))+"\n\t\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.writeNoteToRecipientIsChecked},on:{"update:checked":function(e){t.writeNoteToRecipientIsChecked=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Note to recipient"))+"\n\t\t\t\t")]),t._v(" "),t.writeNoteToRecipientIsChecked?[e("NcTextArea",{attrs:{label:t.t("files_sharing","Note to recipient"),placeholder:t.t("files_sharing","Enter a note for the share recipient"),value:t.share.note},on:{"update:value":function(e){return t.$set(t.share,"note",e)}}})]:t._e(),t._v(" "),t.isPublicShare&&t.isFolder?e("NcCheckboxRadioSwitch",{attrs:{checked:t.showInGridView},on:{"update:checked":function(e){t.showInGridView=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Show files in grid view"))+"\n\t\t\t\t")]):t._e(),t._v(" "),t._l(t.externalLinkActions,(function(i){return e("ExternalShareAction",{key:i.id,ref:"externalLinkActions",refInFor:!0,attrs:{id:i.id,action:i,"file-info":t.fileInfo,share:t.share}})})),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.setCustomPermissions},on:{"update:checked":function(e){t.setCustomPermissions=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Custom permissions"))+"\n\t\t\t\t")]),t._v(" "),t.setCustomPermissions?e("section",{staticClass:"custom-permissions-group"},[e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canRemoveReadPermission,checked:t.hasRead,"data-cy-files-sharing-share-permissions-checkbox":"read"},on:{"update:checked":function(e){t.hasRead=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Read"))+"\n\t\t\t\t\t")]),t._v(" "),t.isFolder?e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetCreate,checked:t.canCreate,"data-cy-files-sharing-share-permissions-checkbox":"create"},on:{"update:checked":function(e){t.canCreate=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Create"))+"\n\t\t\t\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetEdit,checked:t.canEdit,"data-cy-files-sharing-share-permissions-checkbox":"update"},on:{"update:checked":function(e){t.canEdit=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Edit"))+"\n\t\t\t\t\t")]),t._v(" "),t.resharingIsPossible?e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetReshare,checked:t.canReshare,"data-cy-files-sharing-share-permissions-checkbox":"share"},on:{"update:checked":function(e){t.canReshare=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Share"))+"\n\t\t\t\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetDelete,checked:t.canDelete,"data-cy-files-sharing-share-permissions-checkbox":"delete"},on:{"update:checked":function(e){t.canDelete=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Delete"))+"\n\t\t\t\t\t")])],1):t._e(),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__delete"},[t.isNewShare?t._e():e("NcButton",{attrs:{"aria-label":t.t("files_sharing","Delete share"),disabled:!1,readonly:!1,type:"tertiary"},on:{click:function(e){return e.preventDefault(),t.removeShare.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:16}})]},proxy:!0}],null,!1,2746485232)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Delete share"))+"\n\t\t\t\t\t")])],1)],2)]):t._e()]),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__footer"},[e("div",{staticClass:"button-group"},[e("NcButton",{attrs:{"data-cy-files-sharing-share-editor-action":"cancel"},on:{click:t.cancel}},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Cancel"))+"\n\t\t\t")]),t._v(" "),e("NcButton",{attrs:{type:"primary","data-cy-files-sharing-share-editor-action":"save"},on:{click:t.saveShare},scopedSlots:t._u([t.creating?{key:"icon",fn:function(){return[e("NcLoadingIcon")]},proxy:!0}:null],null,!0)},[t._v("\n\t\t\t\t"+t._s(t.shareButtonText)+"\n\t\t\t\t")])],1)])])}),[],!1,null,"db4347b0",null).exports,_i={name:"SharingTab",components:{CollectionList:at,InfoIcon:lt.A,NcAvatar:_.A,NcButton:ut.A,NcPopover:ct.N,SharingEntryInternal:kt,SharingEntrySimple:Et,SharingInherited:ee,SharingInput:Ut,SharingLinkList:qe,SharingList:Xe,SharingDetailsTab:bi},mixins:[Bt],data:()=>({config:new pt,deleteEvent:null,error:"",expirationInterval:null,loading:!0,fileInfo:null,reshare:null,sharedWithMe:{},shares:[],linkShares:[],sections:OCA.Sharing.ShareTabSections.getSections(),projectsEnabled:(0,a.C)("core","projects_enabled",!1),showSharingDetailsView:!1,shareDetailsData:{},returnFocusElement:null,internalSharesHelpText:t("files_sharing","Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access."),externalSharesHelpText:t("files_sharing","Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID."),additionalSharesHelpText:t("files_sharing","Shares that are not part of the internal or external shares. This can be shares from apps or other sources.")}),computed:{isSharedWithMe(){return Object.keys(this.sharedWithMe).length>0},canReshare(){return!!(this.fileInfo.permissions&OC.PERMISSION_SHARE)||!!(this.reshare&&this.reshare.hasSharePermission&&this.config.isResharingAllowed)}},methods:{async update(t){this.fileInfo=t,this.resetState(),this.getShares()},async getShares(){try{this.loading=!0;const t=(0,o.KT)("apps/files_sharing/api/v1/shares"),e="json",i=(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),n=Z.Ay.get(t,{params:{format:e,path:i,reshares:!0}}),r=Z.Ay.get(t,{params:{format:e,path:i,shared_with_me:!0}}),[s,a]=await Promise.all([n,r]);this.loading=!1,this.processSharedWithMe(a),this.processShares(s)}catch(e){this.error=e?.response?.data?.ocs?.meta?.message?e.response.data.ocs.meta.message:t("files_sharing","Unable to load the shares list"),this.loading=!1,console.error("Error loading the shares list",e)}},resetState(){clearInterval(this.expirationInterval),this.loading=!0,this.error="",this.sharedWithMe={},this.shares=[],this.linkShares=[],this.showSharingDetailsView=!1,this.shareDetailsData={}},updateExpirationSubtitle(e){const i=(0,ht.A)(e.expireDate).unix();this.$set(this.sharedWithMe,"subtitle",t("files_sharing","Expires {relativetime}",{relativetime:(0,ht.A)(1e3*i).fromNow()})),(0,ht.A)().unix()>i&&(clearInterval(this.expirationInterval),this.$set(this.sharedWithMe,"subtitle",t("files_sharing","this share just expired.")))},processShares(t){let{data:e}=t;if(e.ocs&&e.ocs.data&&e.ocs.data.length>0){const t=(0,s.My)(e.ocs.data.map((t=>new At(t))),[t=>t.shareWithDisplayName,t=>t.label,t=>t.createdTime]);this.linkShares=t.filter((t=>t.type===ot.I.Link||t.type===ot.I.Email)),this.shares=t.filter((t=>t.type!==ot.I.Link&&t.type!==ot.I.Email)),console.debug("Processed",this.linkShares.length,"link share(s)"),console.debug("Processed",this.shares.length,"share(s)")}},processSharedWithMe(e){let{data:i}=e;if(i.ocs&&i.ocs.data&&i.ocs.data[0]){const e=new At(i),n=function(e){return e.type===ot.I.Group?t("files_sharing","Shared with you and the group {group} by {owner}",{group:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):e.type===ot.I.Team?t("files_sharing","Shared with you and {circle} by {owner}",{circle:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):e.type===ot.I.Room?e.shareWithDisplayName?t("files_sharing","Shared with you and the conversation {conversation} by {owner}",{conversation:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):t("files_sharing","Shared with you in a conversation by {owner}",{owner:e.ownerDisplayName},void 0,{escape:!1}):t("files_sharing","Shared with you by {owner}",{owner:e.ownerDisplayName},void 0,{escape:!1})}(e),r=e.ownerDisplayName,s=e.owner;this.sharedWithMe={displayName:r,title:n,user:s},this.reshare=e,e.expireDate&&(0,ht.A)(e.expireDate).unix()>(0,ht.A)().unix()&&(this.updateExpirationSubtitle(e),this.expirationInterval=setInterval(this.updateExpirationSubtitle,1e4,e))}else this.fileInfo&&void 0!==this.fileInfo.shareOwnerId&&this.fileInfo.shareOwnerId!==(0,r.HW)().uid&&(this.sharedWithMe={displayName:this.fileInfo.shareOwner,title:t("files_sharing","Shared with you by {owner}",{owner:this.fileInfo.shareOwner},void 0,{escape:!1}),user:this.fileInfo.shareOwnerId})},addShare(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>{};t.type===ot.I.Email?this.linkShares.unshift(t):this.shares.unshift(t),this.awaitForShare(t,e)},removeShare(t){const e=t.type===ot.I.Email||t.type===ot.I.Link?this.linkShares:this.shares,i=e.findIndex((e=>e.id===t.id));-1!==i&&e.splice(i,1)},awaitForShare(t,e){this.$nextTick((()=>{let i=this.$refs.shareList;t.type===ot.I.Email&&(i=this.$refs.linkShareList);const n=i.$children.find((e=>e.share===t));n&&e(n)}))},toggleShareDetailsView(t){if(!this.showSharingDetailsView)if(Array.from(document.activeElement.classList).some((t=>t.startsWith("action-")))){const t=document.activeElement.closest('[role="menu"]')?.id;this.returnFocusElement=document.querySelector(`[aria-controls="${t}"]`)}else this.returnFocusElement=document.activeElement;t&&(this.shareDetailsData=t),this.showSharingDetailsView=!this.showSharingDetailsView,this.showSharingDetailsView||this.$nextTick((()=>{this.returnFocusElement?.focus(),this.returnFocusElement=null}))}}},Ei=_i;var xi=n(86761),Si={};Si.styleTagTransform=y(),Si.setAttributes=g(),Si.insert=p().bind(null,"head"),Si.domAPI=u(),Si.insertStyleElement=m(),c()(xi.A,Si),xi.A&&xi.A.locals&&xi.A.locals;const Ii=(0,_t.A)(Ei,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"sharingTab",class:{"icon-loading":t.loading}},[t.error?e("div",{staticClass:"emptycontent",class:{emptyContentWithSections:t.sections.length>0}},[e("div",{staticClass:"icon icon-error"}),t._v(" "),e("h2",[t._v(t._s(t.error))])]):t._e(),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:!t.showSharingDetailsView,expression:"!showSharingDetailsView"}],staticClass:"sharingTab__content"},[t.isSharedWithMe?e("ul",[e("SharingEntrySimple",t._b({staticClass:"sharing-entry__reshare",scopedSlots:t._u([{key:"avatar",fn:function(){return[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{user:t.sharedWithMe.user,"display-name":t.sharedWithMe.displayName}})]},proxy:!0}],null,!1,3197855346)},"SharingEntrySimple",t.sharedWithMe,!1))],1):t._e(),t._v(" "),e("section",[e("div",{staticClass:"section-header"},[e("h4",[t._v(t._s(t.t("files_sharing","Internal shares")))]),t._v(" "),e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary-no-background","aria-label":t.t("files_sharing","Internal shares explanation")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("InfoIcon",{attrs:{size:20}})]},proxy:!0}])})]},proxy:!0}])},[t._v(" "),e("p",{staticClass:"hint-body"},[t._v("\n\t\t\t\t\t\t"+t._s(t.internalSharesHelpText)+"\n\t\t\t\t\t")])])],1),t._v(" "),t.loading?t._e():e("SharingInput",{attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,"link-shares":t.linkShares,reshare:t.reshare,shares:t.shares,placeholder:t.t("files_sharing","Share with accounts and teams")},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.loading?t._e():e("SharingList",{ref:"shareList",attrs:{shares:t.shares,"file-info":t.fileInfo},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.canReshare&&!t.loading?e("SharingInherited",{attrs:{"file-info":t.fileInfo}}):t._e(),t._v(" "),e("SharingEntryInternal",{attrs:{"file-info":t.fileInfo}})],1),t._v(" "),e("section",[e("div",{staticClass:"section-header"},[e("h4",[t._v(t._s(t.t("files_sharing","External shares")))]),t._v(" "),e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary-no-background","aria-label":t.t("files_sharing","External shares explanation")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("InfoIcon",{attrs:{size:20}})]},proxy:!0}])})]},proxy:!0}])},[t._v(" "),e("p",{staticClass:"hint-body"},[t._v("\n\t\t\t\t\t\t"+t._s(t.externalSharesHelpText)+"\n\t\t\t\t\t")])])],1),t._v(" "),t.loading?t._e():e("SharingInput",{attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,"link-shares":t.linkShares,"is-external":!0,placeholder:t.t("files_sharing","Email, federated cloud id"),reshare:t.reshare,shares:t.shares},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.loading?t._e():e("SharingLinkList",{ref:"linkShareList",attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,shares:t.linkShares},on:{"open-sharing-details":t.toggleShareDetailsView}})],1),t._v(" "),t.sections.length>0&&!t.showSharingDetailsView?e("section",[e("div",{staticClass:"section-header"},[e("h4",[t._v(t._s(t.t("files_sharing","Additional shares")))]),t._v(" "),e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary-no-background","aria-label":t.t("files_sharing","Additional shares explanation")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("InfoIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,915383693)})]},proxy:!0}],null,!1,1027936137)},[t._v(" "),e("p",{staticClass:"hint-body"},[t._v("\n\t\t\t\t\t\t"+t._s(t.additionalSharesHelpText)+"\n\t\t\t\t\t")])])],1),t._v(" "),t._l(t.sections,(function(i,n){return e("div",{key:n,ref:"section-"+n,refInFor:!0,staticClass:"sharingTab__additionalContent"},[e(i(t.$refs["section-"+n],t.fileInfo),{tag:"component",attrs:{"file-info":t.fileInfo}})],1)})),t._v(" "),t.projectsEnabled?e("div",{directives:[{name:"show",rawName:"v-show",value:!t.showSharingDetailsView&&t.fileInfo,expression:"!showSharingDetailsView && fileInfo"}],staticClass:"sharingTab__additionalContent"},[e("CollectionList",{attrs:{id:`${t.fileInfo.id}`,type:"file",name:t.fileInfo.name}})],1):t._e()],2):t._e()]),t._v(" "),t.showSharingDetailsView?e("SharingDetailsTab",{attrs:{"file-info":t.shareDetailsData.fileInfo,share:t.shareDetailsData.share},on:{"close-sharing-details":t.toggleShareDetailsView,"add:share":t.addShare,"remove:share":t.removeShare}}):t._e()],1)}),[],!1,null,"15a4df38",null).exports},27518:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e"},27514:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e"},79722:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e"},86886:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e"},35810:(t,e,i)=>{"use strict";i.d(e,{Al:()=>n.r,H4:()=>n.c,My:()=>u,Q$:()=>n.e,R3:()=>n.n,VL:()=>n.l,lJ:()=>n.d,pt:()=>n.F,ur:()=>d,v7:()=>c});var n=i(68251),r=(i(43627),i(53334)),s=i(380),a=i(65606);Error;const o=["B","KB","MB","GB","TB","PB"],l=["B","KiB","MiB","GiB","TiB","PiB"];function c(t,e=!1,i=!1,n=!1){i=i&&!n,"string"==typeof t&&(t=Number(t));let s=t>0?Math.floor(Math.log(t)/Math.log(n?1e3:1024)):0;s=Math.min((i?l.length:o.length)-1,s);const a=i?l[s]:o[s];let c=(t/Math.pow(n?1e3:1024,s)).toFixed(1);return!0===e&&0===s?("0.0"!==c?"< 1 ":"0 ")+(i?l[1]:o[1]):(c=s<2?parseFloat(c).toFixed(0):parseFloat(c).toLocaleString((0,r.lO)()),c+" "+a)}function h(t){return t instanceof Date?t.toISOString():String(t)}function u(t,e,i){i=i??[];const n=(e=e??[t=>t]).map(((t,e)=>"asc"===(i[e]??"asc")?1:-1)),s=Intl.Collator([(0,r.Z0)(),(0,r.lO)()],{numeric:!0,usage:"sort"});return[...t].sort(((t,i)=>{for(const[r,a]of e.entries()){const e=s.compare(h(a(t)),h(a(i)));if(0!==e)return e*n[r]}return 0}))}function d(t,e={}){const i={sortingMode:"basename",sortingOrder:"asc",...e};return u(t,[...i.sortFavoritesFirst?[t=>1!==t.attributes?.favorite]:[],...i.sortFoldersFirst?[t=>"folder"!==t.type]:[],..."basename"!==i.sortingMode?[t=>t[i.sortingMode]]:[],t=>{return(e=t.displayname||t.attributes?.displayname||t.basename).lastIndexOf(".")>0?e.slice(0,e.lastIndexOf(".")):e;var e},t=>t.basename],[...i.sortFavoritesFirst?["asc"]:[],...i.sortFoldersFirst?["asc"]:[],..."mtime"===i.sortingMode?["asc"===i.sortingOrder?"desc":"asc"]:[],..."mtime"!==i.sortingMode&&"basename"!==i.sortingMode?[i.sortingOrder]:[],i.sortingOrder,i.sortingOrder])}var p,f,g={},A={};function m(){return p||(p=1,function(t){const e=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",i="["+e+"]["+e+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",n=new RegExp("^"+i+"$");t.isExist=function(t){return void 0!==t},t.isEmptyObject=function(t){return 0===Object.keys(t).length},t.merge=function(t,e,i){if(e){const n=Object.keys(e),r=n.length;for(let s=0;s<r;s++)t[n[s]]="strict"===i?[e[n[s]]]:e[n[s]]}},t.getValue=function(e){return t.isExist(e)?e:""},t.isName=function(t){return!(null==n.exec(t))},t.getAllMatches=function(t,e){const i=[];let n=e.exec(t);for(;n;){const r=[];r.startIndex=e.lastIndex-n[0].length;const s=n.length;for(let t=0;t<s;t++)r.push(n[t]);i.push(r),n=e.exec(t)}return i},t.nameRegexp=i}(A)),A}function v(){if(f)return g;f=1;const t=m(),e={allowBooleanAttributes:!1,unpairedTags:[]};function i(t){return" "===t||"\t"===t||"\n"===t||"\r"===t}function n(t,e){const i=e;for(;e<t.length;e++)if("?"!=t[e]&&" "!=t[e]);else{const n=t.substr(i,e-i);if(e>5&&"xml"===n)return u("InvalidXml","XML declaration allowed only at the start of the document.",p(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}}return e}function r(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e<t.length;e++)if("-"===t[e]&&"-"===t[e+1]&&">"===t[e+2]){e+=2;break}}else if(t.length>e+8&&"D"===t[e+1]&&"O"===t[e+2]&&"C"===t[e+3]&&"T"===t[e+4]&&"Y"===t[e+5]&&"P"===t[e+6]&&"E"===t[e+7]){let i=1;for(e+=8;e<t.length;e++)if("<"===t[e])i++;else if(">"===t[e]&&(i--,0===i))break}else if(t.length>e+9&&"["===t[e+1]&&"C"===t[e+2]&&"D"===t[e+3]&&"A"===t[e+4]&&"T"===t[e+5]&&"A"===t[e+6]&&"["===t[e+7])for(e+=8;e<t.length;e++)if("]"===t[e]&&"]"===t[e+1]&&">"===t[e+2]){e+=2;break}return e}g.validate=function(s,a){a=Object.assign({},e,a);const l=[];let d=!1,f=!1;"\ufeff"===s[0]&&(s=s.substr(1));for(let e=0;e<s.length;e++)if("<"===s[e]&&"?"===s[e+1]){if(e+=2,e=n(s,e),e.err)return e}else{if("<"!==s[e]){if(i(s[e]))continue;return u("InvalidChar","char '"+s[e]+"' is not expected.",p(s,e))}{let A=e;if(e++,"!"===s[e]){e=r(s,e);continue}{let m=!1;"/"===s[e]&&(m=!0,e++);let v="";for(;e<s.length&&">"!==s[e]&&" "!==s[e]&&"\t"!==s[e]&&"\n"!==s[e]&&"\r"!==s[e];e++)v+=s[e];if(v=v.trim(),"/"===v[v.length-1]&&(v=v.substring(0,v.length-1),e--),g=v,!t.isName(g)){let t;return t=0===v.trim().length?"Invalid space after '<'.":"Tag '"+v+"' is an invalid name.",u("InvalidTag",t,p(s,e))}const y=o(s,e);if(!1===y)return u("InvalidAttr","Attributes for '"+v+"' have open quote.",p(s,e));let w=y.value;if(e=y.index,"/"===w[w.length-1]){const t=e-w.length;w=w.substring(0,w.length-1);const i=c(w,a);if(!0!==i)return u(i.err.code,i.err.msg,p(s,t+i.err.line));d=!0}else if(m){if(!y.tagClosed)return u("InvalidTag","Closing tag '"+v+"' doesn't have proper closing.",p(s,e));if(w.trim().length>0)return u("InvalidTag","Closing tag '"+v+"' can't have attributes or invalid starting.",p(s,A));if(0===l.length)return u("InvalidTag","Closing tag '"+v+"' has not been opened.",p(s,A));{const t=l.pop();if(v!==t.tagName){let e=p(s,t.tagStartPos);return u("InvalidTag","Expected closing tag '"+t.tagName+"' (opened in line "+e.line+", col "+e.col+") instead of closing tag '"+v+"'.",p(s,A))}0==l.length&&(f=!0)}}else{const t=c(w,a);if(!0!==t)return u(t.err.code,t.err.msg,p(s,e-w.length+t.err.line));if(!0===f)return u("InvalidXml","Multiple possible root nodes found.",p(s,e));-1!==a.unpairedTags.indexOf(v)||l.push({tagName:v,tagStartPos:A}),d=!0}for(e++;e<s.length;e++)if("<"===s[e]){if("!"===s[e+1]){e++,e=r(s,e);continue}if("?"!==s[e+1])break;if(e=n(s,++e),e.err)return e}else if("&"===s[e]){const t=h(s,e);if(-1==t)return u("InvalidChar","char '&' is not expected.",p(s,e));e=t}else if(!0===f&&!i(s[e]))return u("InvalidXml","Extra text at the end",p(s,e));"<"===s[e]&&e--}}}var g;return d?1==l.length?u("InvalidTag","Unclosed tag '"+l[0].tagName+"'.",p(s,l[0].tagStartPos)):!(l.length>0)||u("InvalidXml","Invalid '"+JSON.stringify(l.map((t=>t.tagName)),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):u("InvalidXml","Start tag expected.",1)};const s='"',a="'";function o(t,e){let i="",n="",r=!1;for(;e<t.length;e++){if(t[e]===s||t[e]===a)""===n?n=t[e]:n!==t[e]||(n="");else if(">"===t[e]&&""===n){r=!0;break}i+=t[e]}return""===n&&{value:i,index:e,tagClosed:r}}const l=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function c(e,i){const n=t.getAllMatches(e,l),r={};for(let t=0;t<n.length;t++){if(0===n[t][1].length)return u("InvalidAttr","Attribute '"+n[t][2]+"' has no space in starting.",A(n[t]));if(void 0!==n[t][3]&&void 0===n[t][4])return u("InvalidAttr","Attribute '"+n[t][2]+"' is without value.",A(n[t]));if(void 0===n[t][3]&&!i.allowBooleanAttributes)return u("InvalidAttr","boolean attribute '"+n[t][2]+"' is not allowed.",A(n[t]));const e=n[t][2];if(!d(e))return u("InvalidAttr","Attribute '"+e+"' is an invalid name.",A(n[t]));if(r.hasOwnProperty(e))return u("InvalidAttr","Attribute '"+e+"' is repeated.",A(n[t]));r[e]=1}return!0}function h(t,e){if(";"===t[++e])return-1;if("#"===t[e])return function(t,e){let i=/\d/;for("x"===t[e]&&(e++,i=/[\da-fA-F]/);e<t.length;e++){if(";"===t[e])return e;if(!t[e].match(i))break}return-1}(t,++e);let i=0;for(;e<t.length;e++,i++)if(!(t[e].match(/\w/)&&i<20)){if(";"===t[e])break;return-1}return e}function u(t,e,i){return{err:{code:t,msg:e,line:i.line||i,col:i.col}}}function d(e){return t.isName(e)}function p(t,e){const i=t.substring(0,e).split(/\r?\n/);return{line:i.length,col:i[i.length-1].length+1}}function A(t){return t.startIndex+t[1].length}return g}var y,w,C,b,_,E,x,S,I,k,T,N={};function D(){return I?S:(I=1,S=function(t){return"function"==typeof t?t:Array.isArray(t)?e=>{for(const i of t){if("string"==typeof i&&e===i)return!0;if(i instanceof RegExp&&i.test(e))return!0}}:()=>!1})}var P,R,B,L,O,M,U,$,F,V,j,q,z,H={};function G(){if(P)return H;function t(r,s,a){let o;const l={};for(let c=0;c<r.length;c++){const h=r[c],u=e(h);let d="";if(d=void 0===a?u:a+"."+u,u===s.textNodeName)void 0===o?o=h[u]:o+=""+h[u];else{if(void 0===u)continue;if(h[u]){let e=t(h[u],s,d);const r=n(e,s);h[":@"]?i(e,h[":@"],d,s):1!==Object.keys(e).length||void 0===e[s.textNodeName]||s.alwaysCreateTextNode?0===Object.keys(e).length&&(s.alwaysCreateTextNode?e[s.textNodeName]="":e=""):e=e[s.textNodeName],void 0!==l[u]&&l.hasOwnProperty(u)?(Array.isArray(l[u])||(l[u]=[l[u]]),l[u].push(e)):s.isArray(u,d,r)?l[u]=[e]:l[u]=e}}}return"string"==typeof o?o.length>0&&(l[s.textNodeName]=o):void 0!==o&&(l[s.textNodeName]=o),l}function e(t){const e=Object.keys(t);for(let t=0;t<e.length;t++){const i=e[t];if(":@"!==i)return i}}function i(t,e,i,n){if(e){const r=Object.keys(e),s=r.length;for(let a=0;a<s;a++){const s=r[a];n.isArray(s,i+"."+s,!0,!0)?t[s]=[e[s]]:t[s]=e[s]}}}function n(t,e){const{textNodeName:i}=e,n=Object.keys(t).length;return 0===n||!(1!==n||!t[i]&&"boolean"!=typeof t[i]&&0!==t[i])}return P=1,H.prettify=function(e,i){return t(e,i)},H}function Y(){if(B)return R;B=1;const{buildOptions:t}=function(){if(y)return N;y=1;const t={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,i){return t}};return N.buildOptions=function(e){return Object.assign({},t,e)},N.defaultOptions=t,N}(),e=function(){if(T)return k;T=1;const t=m(),e=C?w:(C=1,w=class{constructor(t){this.tagname=t,this.child=[],this[":@"]={}}add(t,e){"__proto__"===t&&(t="#__proto__"),this.child.push({[t]:e})}addChild(t){"__proto__"===t.tagname&&(t.tagname="#__proto__"),t[":@"]&&Object.keys(t[":@"]).length>0?this.child.push({[t.tagname]:t.child,":@":t[":@"]}):this.child.push({[t.tagname]:t.child})}}),i=function(){if(_)return b;_=1;const t=m();function e(t,e){let i="";for(;e<t.length&&"'"!==t[e]&&'"'!==t[e];e++)i+=t[e];if(i=i.trim(),-1!==i.indexOf(" "))throw new Error("External entites are not supported");const n=t[e++];let r="";for(;e<t.length&&t[e]!==n;e++)r+=t[e];return[i,r,e]}function i(t,e){return"!"===t[e+1]&&"E"===t[e+2]&&"N"===t[e+3]&&"T"===t[e+4]&&"I"===t[e+5]&&"T"===t[e+6]&&"Y"===t[e+7]}function n(t,e){return"!"===t[e+1]&&"E"===t[e+2]&&"L"===t[e+3]&&"E"===t[e+4]&&"M"===t[e+5]&&"E"===t[e+6]&&"N"===t[e+7]&&"T"===t[e+8]}function r(t,e){return"!"===t[e+1]&&"A"===t[e+2]&&"T"===t[e+3]&&"T"===t[e+4]&&"L"===t[e+5]&&"I"===t[e+6]&&"S"===t[e+7]&&"T"===t[e+8]}function s(t,e){return"!"===t[e+1]&&"N"===t[e+2]&&"O"===t[e+3]&&"T"===t[e+4]&&"A"===t[e+5]&&"T"===t[e+6]&&"I"===t[e+7]&&"O"===t[e+8]&&"N"===t[e+9]}function a(e){if(t.isName(e))return e;throw new Error(`Invalid entity name ${e}`)}return b=function(t,o){const l={};if("O"!==t[o+3]||"C"!==t[o+4]||"T"!==t[o+5]||"Y"!==t[o+6]||"P"!==t[o+7]||"E"!==t[o+8])throw new Error("Invalid Tag instead of DOCTYPE");{o+=9;let c=1,h=!1,u=!1,d="";for(;o<t.length;o++)if("<"!==t[o]||u)if(">"===t[o]){if(u?"-"===t[o-1]&&"-"===t[o-2]&&(u=!1,c--):c--,0===c)break}else"["===t[o]?h=!0:d+=t[o];else{if(h&&i(t,o)){let i,n;o+=7,[i,n,o]=e(t,o+1),-1===n.indexOf("&")&&(l[a(i)]={regx:RegExp(`&${i};`,"g"),val:n})}else h&&n(t,o)||h&&r(t,o)?o+=8:h&&s(t,o)?o+=9:u=!0;c++,d=""}if(0!==c)throw new Error("Unclosed DOCTYPE")}return{entities:l,i:o}}}(),n=function(){if(x)return E;x=1;const t=/^[-+]?0x[a-fA-F0-9]+$/,e=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const i={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};return E=function(n,r={}){if(r=Object.assign({},i,r),!n||"string"!=typeof n)return n;let s=n.trim();if(void 0!==r.skipLike&&r.skipLike.test(s))return n;if(r.hex&&t.test(s))return Number.parseInt(s,16);{const t=e.exec(s);if(t){const e=t[1],i=t[2];let o=(a=t[3])&&-1!==a.indexOf(".")?("."===(a=a.replace(/0+$/,""))?a="0":"."===a[0]?a="0"+a:"."===a[a.length-1]&&(a=a.substr(0,a.length-1)),a):a;const l=t[4]||t[6];if(!r.leadingZeros&&i.length>0&&e&&"."!==s[2])return n;if(!r.leadingZeros&&i.length>0&&!e&&"."!==s[1])return n;{const t=Number(s),a=""+t;return-1!==a.search(/[eE]/)||l?r.eNotation?t:n:-1!==s.indexOf(".")?"0"===a&&""===o||a===o||e&&a==="-"+o?t:n:i?o===a||e+o===a?t:n:s===a||s===e+a?t:n}}return n}var a}}(),r=D();function s(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const n=e[i];this.lastEntities[n]={regex:new RegExp("&"+n+";","g"),val:t[n]}}}function a(t,e,i,n,r,s,a){if(void 0!==t&&(this.options.trimValues&&!n&&(t=t.trim()),t.length>0)){a||(t=this.replaceEntitiesValue(t));const n=this.options.tagValueProcessor(e,t,i,r,s);return null==n?t:typeof n!=typeof t||n!==t?n:this.options.trimValues||t.trim()===t?y(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function o(t){if(this.options.removeNSPrefix){const e=t.split(":"),i="/"===t.charAt(0)?"/":"";if("xmlns"===e[0])return"";2===e.length&&(t=i+e[1])}return t}const l=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function c(e,i,n){if(!0!==this.options.ignoreAttributes&&"string"==typeof e){const n=t.getAllMatches(e,l),r=n.length,s={};for(let t=0;t<r;t++){const e=this.resolveNameSpace(n[t][1]);if(this.ignoreAttributesFn(e,i))continue;let r=n[t][4],a=this.options.attributeNamePrefix+e;if(e.length)if(this.options.transformAttributeName&&(a=this.options.transformAttributeName(a)),"__proto__"===a&&(a="#__proto__"),void 0!==r){this.options.trimValues&&(r=r.trim()),r=this.replaceEntitiesValue(r);const t=this.options.attributeValueProcessor(e,r,i);s[a]=null==t?r:typeof t!=typeof r||t!==r?t:y(r,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(s[a]=!0)}if(!Object.keys(s).length)return;if(this.options.attributesGroupName){const t={};return t[this.options.attributesGroupName]=s,t}return s}}const h=function(t){t=t.replace(/\r\n?/g,"\n");const n=new e("!xml");let r=n,s="",a="";for(let o=0;o<t.length;o++)if("<"===t[o])if("/"===t[o+1]){const e=g(t,">",o,"Closing Tag is not closed.");let i=t.substring(o+2,e).trim();if(this.options.removeNSPrefix){const t=i.indexOf(":");-1!==t&&(i=i.substr(t+1))}this.options.transformTagName&&(i=this.options.transformTagName(i)),r&&(s=this.saveTextToParentTag(s,r,a));const n=a.substring(a.lastIndexOf(".")+1);if(i&&-1!==this.options.unpairedTags.indexOf(i))throw new Error(`Unpaired tag can not be used as closing tag: </${i}>`);let l=0;n&&-1!==this.options.unpairedTags.indexOf(n)?(l=a.lastIndexOf(".",a.lastIndexOf(".")-1),this.tagsNodeStack.pop()):l=a.lastIndexOf("."),a=a.substring(0,l),r=this.tagsNodeStack.pop(),s="",o=e}else if("?"===t[o+1]){let i=A(t,o,!1,"?>");if(!i)throw new Error("Pi Tag is not closed.");if(s=this.saveTextToParentTag(s,r,a),this.options.ignoreDeclaration&&"?xml"===i.tagName||this.options.ignorePiTags);else{const t=new e(i.tagName);t.add(this.options.textNodeName,""),i.tagName!==i.tagExp&&i.attrExpPresent&&(t[":@"]=this.buildAttributesMap(i.tagExp,a,i.tagName)),this.addChild(r,t,a)}o=i.closeIndex+1}else if("!--"===t.substr(o+1,3)){const e=g(t,"--\x3e",o+4,"Comment is not closed.");if(this.options.commentPropName){const i=t.substring(o+4,e-2);s=this.saveTextToParentTag(s,r,a),r.add(this.options.commentPropName,[{[this.options.textNodeName]:i}])}o=e}else if("!D"===t.substr(o+1,2)){const e=i(t,o);this.docTypeEntities=e.entities,o=e.i}else if("!["===t.substr(o+1,2)){const e=g(t,"]]>",o,"CDATA is not closed.")-2,i=t.substring(o+9,e);s=this.saveTextToParentTag(s,r,a);let n=this.parseTextData(i,r.tagname,a,!0,!1,!0,!0);null==n&&(n=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[{[this.options.textNodeName]:i}]):r.add(this.options.textNodeName,n),o=e+2}else{let i=A(t,o,this.options.removeNSPrefix),l=i.tagName;const c=i.rawTagName;let h=i.tagExp,u=i.attrExpPresent,d=i.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),r&&s&&"!xml"!==r.tagname&&(s=this.saveTextToParentTag(s,r,a,!1));const p=r;if(p&&-1!==this.options.unpairedTags.indexOf(p.tagname)&&(r=this.tagsNodeStack.pop(),a=a.substring(0,a.lastIndexOf("."))),l!==n.tagname&&(a+=a?"."+l:l),this.isItStopNode(this.options.stopNodes,a,l)){let n="";if(h.length>0&&h.lastIndexOf("/")===h.length-1)"/"===l[l.length-1]?(l=l.substr(0,l.length-1),a=a.substr(0,a.length-1),h=l):h=h.substr(0,h.length-1),o=i.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(l))o=i.closeIndex;else{const e=this.readStopNodeData(t,c,d+1);if(!e)throw new Error(`Unexpected end of ${c}`);o=e.i,n=e.tagContent}const s=new e(l);l!==h&&u&&(s[":@"]=this.buildAttributesMap(h,a,l)),n&&(n=this.parseTextData(n,l,a,!0,u,!0,!0)),a=a.substr(0,a.lastIndexOf(".")),s.add(this.options.textNodeName,n),this.addChild(r,s,a)}else{if(h.length>0&&h.lastIndexOf("/")===h.length-1){"/"===l[l.length-1]?(l=l.substr(0,l.length-1),a=a.substr(0,a.length-1),h=l):h=h.substr(0,h.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));const t=new e(l);l!==h&&u&&(t[":@"]=this.buildAttributesMap(h,a,l)),this.addChild(r,t,a),a=a.substr(0,a.lastIndexOf("."))}else{const t=new e(l);this.tagsNodeStack.push(r),l!==h&&u&&(t[":@"]=this.buildAttributesMap(h,a,l)),this.addChild(r,t,a),r=t}s="",o=d}}else s+=t[o];return n.child};function u(t,e,i){const n=this.options.updateTag(e.tagname,i,e[":@"]);!1===n||("string"==typeof n?(e.tagname=n,t.addChild(e)):t.addChild(e))}const d=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const i=this.docTypeEntities[e];t=t.replace(i.regx,i.val)}for(let e in this.lastEntities){const i=this.lastEntities[e];t=t.replace(i.regex,i.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const i=this.htmlEntities[e];t=t.replace(i.regex,i.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function p(t,e,i,n){return t&&(void 0===n&&(n=0===Object.keys(e.child).length),void 0!==(t=this.parseTextData(t,e.tagname,i,!1,!!e[":@"]&&0!==Object.keys(e[":@"]).length,n))&&""!==t&&e.add(this.options.textNodeName,t),t=""),t}function f(t,e,i){const n="*."+i;for(const i in t){const r=t[i];if(n===r||e===r)return!0}return!1}function g(t,e,i,n){const r=t.indexOf(e,i);if(-1===r)throw new Error(n);return r+e.length-1}function A(t,e,i,n=">"){const r=function(t,e,i=">"){let n,r="";for(let s=e;s<t.length;s++){let e=t[s];if(n)e===n&&(n="");else if('"'===e||"'"===e)n=e;else if(e===i[0]){if(!i[1])return{data:r,index:s};if(t[s+1]===i[1])return{data:r,index:s}}else"\t"===e&&(e=" ");r+=e}}(t,e+1,n);if(!r)return;let s=r.data;const a=r.index,o=s.search(/\s/);let l=s,c=!0;-1!==o&&(l=s.substring(0,o),s=s.substring(o+1).trimStart());const h=l;if(i){const t=l.indexOf(":");-1!==t&&(l=l.substr(t+1),c=l!==r.data.substr(t+1))}return{tagName:l,tagExp:s,closeIndex:a,attrExpPresent:c,rawTagName:h}}function v(t,e,i){const n=i;let r=1;for(;i<t.length;i++)if("<"===t[i])if("/"===t[i+1]){const s=g(t,">",i,`${e} is not closed`);if(t.substring(i+2,s).trim()===e&&(r--,0===r))return{tagContent:t.substring(n,i),i:s};i=s}else if("?"===t[i+1])i=g(t,"?>",i+1,"StopNode is not closed.");else if("!--"===t.substr(i+1,3))i=g(t,"--\x3e",i+3,"StopNode is not closed.");else if("!["===t.substr(i+1,2))i=g(t,"]]>",i,"StopNode is not closed.")-2;else{const n=A(t,i,">");n&&((n&&n.tagName)===e&&"/"!==n.tagExp[n.tagExp.length-1]&&r++,i=n.closeIndex)}}function y(e,i,r){if(i&&"string"==typeof e){const t=e.trim();return"true"===t||"false"!==t&&n(e,r)}return t.isExist(e)?e:""}return k=class{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCharCode(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCharCode(Number.parseInt(e,16))}},this.addExternalEntities=s,this.parseXml=h,this.parseTextData=a,this.resolveNameSpace=o,this.buildAttributesMap=c,this.isItStopNode=f,this.replaceEntitiesValue=d,this.readStopNodeData=v,this.saveTextToParentTag=p,this.addChild=u,this.ignoreAttributesFn=r(this.options.ignoreAttributes)}}}(),{prettify:i}=G(),n=v();return R=class{constructor(e){this.externalEntities={},this.options=t(e)}parse(t,r){if("string"==typeof t);else{if(!t.toString)throw new Error("XML data is accepted in String or Bytes[] form.");t=t.toString()}if(r){!0===r&&(r={});const e=n.validate(t,r);if(!0!==e)throw Error(`${e.err.msg}:${e.err.line}:${e.err.col}`)}const s=new e(this.options);s.addExternalEntities(this.externalEntities);const a=s.parseXml(t);return this.options.preserveOrder||void 0===a?a:i(a,this.options)}addEntity(t,e){if(-1!==e.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==t.indexOf("&")||-1!==t.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'");if("&"===e)throw new Error("An entity with value '&' is not permitted");this.externalEntities[t]=e}}}function W(){if(O)return L;function t(s,a,o,l){let c="",h=!1;for(let u=0;u<s.length;u++){const d=s[u],p=e(d);if(void 0===p)continue;let f="";if(f=0===o.length?p:`${o}.${p}`,p===a.textNodeName){let t=d[p];n(f,a)||(t=a.tagValueProcessor(p,t),t=r(t,a)),h&&(c+=l),c+=t,h=!1;continue}if(p===a.cdataPropName){h&&(c+=l),c+=`<![CDATA[${d[p][0][a.textNodeName]}]]>`,h=!1;continue}if(p===a.commentPropName){c+=l+`\x3c!--${d[p][0][a.textNodeName]}--\x3e`,h=!0;continue}if("?"===p[0]){const t=i(d[":@"],a),e="?xml"===p?"":l;let n=d[p][0][a.textNodeName];n=0!==n.length?" "+n:"",c+=e+`<${p}${n}${t}?>`,h=!0;continue}let g=l;""!==g&&(g+=a.indentBy);const A=l+`<${p}${i(d[":@"],a)}`,m=t(d[p],a,f,g);-1!==a.unpairedTags.indexOf(p)?a.suppressUnpairedNode?c+=A+">":c+=A+"/>":m&&0!==m.length||!a.suppressEmptyNode?m&&m.endsWith(">")?c+=A+`>${m}${l}</${p}>`:(c+=A+">",m&&""!==l&&(m.includes("/>")||m.includes("</"))?c+=l+a.indentBy+m+l:c+=m,c+=`</${p}>`):c+=A+"/>",h=!0}return c}function e(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const n=e[i];if(t.hasOwnProperty(n)&&":@"!==n)return n}}function i(t,e){let i="";if(t&&!e.ignoreAttributes)for(let n in t){if(!t.hasOwnProperty(n))continue;let s=e.attributeValueProcessor(n,t[n]);s=r(s,e),!0===s&&e.suppressBooleanAttributes?i+=` ${n.substr(e.attributeNamePrefix.length)}`:i+=` ${n.substr(e.attributeNamePrefix.length)}="${s}"`}return i}function n(t,e){let i=(t=t.substr(0,t.length-e.textNodeName.length-1)).substr(t.lastIndexOf(".")+1);for(let n in e.stopNodes)if(e.stopNodes[n]===t||e.stopNodes[n]==="*."+i)return!0;return!1}function r(t,e){if(t&&t.length>0&&e.processEntities)for(let i=0;i<e.entities.length;i++){const n=e.entities[i];t=t.replace(n.regex,n.val)}return t}return O=1,L=function(e,i){let n="";return i.format&&i.indentBy.length>0&&(n="\n"),t(e,i,"",n)}}function X(){if(j)return V;j=1;const t="object"==typeof a&&a.env&&a.env.NODE_DEBUG&&/\bsemver\b/i.test(a.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};return V=t}function Q(){if(z)return q;z=1;const t=Number.MAX_SAFE_INTEGER||9007199254740991;return q={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:t,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}}!function(){if(F)return $;F=1;const t=v(),e=Y(),i=function(){if(U)return M;U=1;const t=W(),e=D(),i={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function n(t){this.options=Object.assign({},i,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=e(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=a),this.processTextOrObjNode=r,this.options.format?(this.indentate=s,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function r(t,e,i,n){const r=this.j2x(t,i+1,n.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,r.attrStr,i):this.buildObjectNode(r.val,e,r.attrStr,i)}function s(t){return this.options.indentBy.repeat(t)}function a(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}return n.prototype.build=function(e){return this.options.preserveOrder?t(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0,[]).val)},n.prototype.j2x=function(t,e,i){let n="",r="";const s=i.join(".");for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(r+="");else if(null===t[a])this.isAttribute(a)?r+="":"?"===a[0]?r+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:r+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(t[a]instanceof Date)r+=this.buildTextValNode(t[a],a,"",e);else if("object"!=typeof t[a]){const i=this.isAttribute(a);if(i&&!this.ignoreAttributesFn(i,s))n+=this.buildAttrPairStr(i,""+t[a]);else if(!i)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,""+t[a]);r+=this.replaceEntitiesValue(e)}else r+=this.buildTextValNode(t[a],a,"",e)}else if(Array.isArray(t[a])){const n=t[a].length;let s="",o="";for(let l=0;l<n;l++){const n=t[a][l];if(void 0===n);else if(null===n)"?"===a[0]?r+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:r+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if("object"==typeof n)if(this.options.oneListGroup){const t=this.j2x(n,e+1,i.concat(a));s+=t.val,this.options.attributesGroupName&&n.hasOwnProperty(this.options.attributesGroupName)&&(o+=t.attrStr)}else s+=this.processTextOrObjNode(n,a,e,i);else if(this.options.oneListGroup){let t=this.options.tagValueProcessor(a,n);t=this.replaceEntitiesValue(t),s+=t}else s+=this.buildTextValNode(n,a,"",e)}this.options.oneListGroup&&(s=this.buildObjectNode(s,a,o,e)),r+=s}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const e=Object.keys(t[a]),i=e.length;for(let r=0;r<i;r++)n+=this.buildAttrPairStr(e[r],""+t[a][e[r]])}else r+=this.processTextOrObjNode(t[a],a,e,i);return{attrStr:n,val:r}},n.prototype.buildAttrPairStr=function(t,e){return e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+e+'"'},n.prototype.buildObjectNode=function(t,e,i,n){if(""===t)return"?"===e[0]?this.indentate(n)+"<"+e+i+"?"+this.tagEndChar:this.indentate(n)+"<"+e+i+this.closeTag(e)+this.tagEndChar;{let r="</"+e+this.tagEndChar,s="";return"?"===e[0]&&(s="?",r=""),!i&&""!==i||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===s.length?this.indentate(n)+`\x3c!--${t}--\x3e`+this.newLine:this.indentate(n)+"<"+e+i+s+this.tagEndChar+t+this.indentate(n)+r:this.indentate(n)+"<"+e+i+s+">"+t+r}},n.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`></${t}`,e},n.prototype.buildTextValNode=function(t,e,i,n){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName)return this.indentate(n)+`<![CDATA[${t}]]>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\x3c!--${t}--\x3e`+this.newLine;if("?"===e[0])return this.indentate(n)+"<"+e+i+"?"+this.tagEndChar;{let r=this.options.tagValueProcessor(e,t);return r=this.replaceEntitiesValue(r),""===r?this.indentate(n)+"<"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(n)+"<"+e+i+">"+r+"</"+e+this.tagEndChar}},n.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){const i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t},M=n}();$={XMLParser:e,XMLValidator:t,XMLBuilder:i}}();var Z,K,J,tt,et,it,nt,rt,st,at,ot,lt,ct,ht={exports:{}};function ut(){if(nt)return it;nt=1;const t=X(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:i}=Q(),{safeRe:n,t:r}=(Z||(Z=1,function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:r}=Q(),s=X(),a=(e=t.exports={}).re=[],o=e.safeRe=[],l=e.src=[],c=e.t={};let h=0;const u="[a-zA-Z0-9-]",d=[["\\s",1],["\\d",r],[u,n]],p=(t,e,i)=>{const n=(t=>{for(const[e,i]of d)t=t.split(`${e}*`).join(`${e}{0,${i}}`).split(`${e}+`).join(`${e}{1,${i}}`);return t})(e),r=h++;s(t,r,e),c[t]=r,l[r]=e,a[r]=new RegExp(e,i?"g":void 0),o[r]=new RegExp(n,i?"g":void 0)};p("NUMERICIDENTIFIER","0|[1-9]\\d*"),p("NUMERICIDENTIFIERLOOSE","\\d+"),p("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${u}*`),p("MAINVERSION",`(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})`),p("MAINVERSIONLOOSE",`(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})`),p("PRERELEASEIDENTIFIER",`(?:${l[c.NUMERICIDENTIFIER]}|${l[c.NONNUMERICIDENTIFIER]})`),p("PRERELEASEIDENTIFIERLOOSE",`(?:${l[c.NUMERICIDENTIFIERLOOSE]}|${l[c.NONNUMERICIDENTIFIER]})`),p("PRERELEASE",`(?:-(${l[c.PRERELEASEIDENTIFIER]}(?:\\.${l[c.PRERELEASEIDENTIFIER]})*))`),p("PRERELEASELOOSE",`(?:-?(${l[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[c.PRERELEASEIDENTIFIERLOOSE]})*))`),p("BUILDIDENTIFIER",`${u}+`),p("BUILD",`(?:\\+(${l[c.BUILDIDENTIFIER]}(?:\\.${l[c.BUILDIDENTIFIER]})*))`),p("FULLPLAIN",`v?${l[c.MAINVERSION]}${l[c.PRERELEASE]}?${l[c.BUILD]}?`),p("FULL",`^${l[c.FULLPLAIN]}$`),p("LOOSEPLAIN",`[v=\\s]*${l[c.MAINVERSIONLOOSE]}${l[c.PRERELEASELOOSE]}?${l[c.BUILD]}?`),p("LOOSE",`^${l[c.LOOSEPLAIN]}$`),p("GTLT","((?:<|>)?=?)"),p("XRANGEIDENTIFIERLOOSE",`${l[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),p("XRANGEIDENTIFIER",`${l[c.NUMERICIDENTIFIER]}|x|X|\\*`),p("XRANGEPLAIN",`[v=\\s]*(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:${l[c.PRERELEASE]})?${l[c.BUILD]}?)?)?`),p("XRANGEPLAINLOOSE",`[v=\\s]*(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:${l[c.PRERELEASELOOSE]})?${l[c.BUILD]}?)?)?`),p("XRANGE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAIN]}$`),p("XRANGELOOSE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAINLOOSE]}$`),p("COERCEPLAIN",`(^|[^\\d])(\\d{1,${i}})(?:\\.(\\d{1,${i}}))?(?:\\.(\\d{1,${i}}))?`),p("COERCE",`${l[c.COERCEPLAIN]}(?:$|[^\\d])`),p("COERCEFULL",l[c.COERCEPLAIN]+`(?:${l[c.PRERELEASE]})?(?:${l[c.BUILD]})?(?:$|[^\\d])`),p("COERCERTL",l[c.COERCE],!0),p("COERCERTLFULL",l[c.COERCEFULL],!0),p("LONETILDE","(?:~>?)"),p("TILDETRIM",`(\\s*)${l[c.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",p("TILDE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAIN]}$`),p("TILDELOOSE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAINLOOSE]}$`),p("LONECARET","(?:\\^)"),p("CARETTRIM",`(\\s*)${l[c.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",p("CARET",`^${l[c.LONECARET]}${l[c.XRANGEPLAIN]}$`),p("CARETLOOSE",`^${l[c.LONECARET]}${l[c.XRANGEPLAINLOOSE]}$`),p("COMPARATORLOOSE",`^${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]})$|^$`),p("COMPARATOR",`^${l[c.GTLT]}\\s*(${l[c.FULLPLAIN]})$|^$`),p("COMPARATORTRIM",`(\\s*)${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]}|${l[c.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",p("HYPHENRANGE",`^\\s*(${l[c.XRANGEPLAIN]})\\s+-\\s+(${l[c.XRANGEPLAIN]})\\s*$`),p("HYPHENRANGELOOSE",`^\\s*(${l[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[c.XRANGEPLAINLOOSE]})\\s*$`),p("STAR","(<|>)?=?\\s*\\*"),p("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),p("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(ht,ht.exports)),ht.exports),s=function(){if(J)return K;J=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return K=i=>i?"object"!=typeof i?t:i:e}(),{compareIdentifiers:a}=function(){if(et)return tt;et=1;const t=/^[0-9]+$/,e=(e,i)=>{const n=t.test(e),r=t.test(i);return n&&r&&(e=+e,i=+i),e===i?0:n&&!r?-1:r&&!n?1:e<i?-1:1};return tt={compareIdentifiers:e,rcompareIdentifiers:(t,i)=>e(i,t)}}();class o{constructor(a,l){if(l=s(l),a instanceof o){if(a.loose===!!l.loose&&a.includePrerelease===!!l.includePrerelease)return a;a=a.version}else if("string"!=typeof a)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof a}".`);if(a.length>e)throw new TypeError(`version is longer than ${e} characters`);t("SemVer",a,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;const c=a.trim().match(l.loose?n[r.LOOSE]:n[r.FULL]);if(!c)throw new TypeError(`Invalid Version: ${a}`);if(this.raw=a,this.major=+c[1],this.minor=+c[2],this.patch=+c[3],this.major>i||this.major<0)throw new TypeError("Invalid major version");if(this.minor>i||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>i||this.patch<0)throw new TypeError("Invalid patch version");c[4]?this.prerelease=c[4].split(".").map((t=>{if(/^[0-9]+$/.test(t)){const e=+t;if(e>=0&&e<i)return e}return t})):this.prerelease=[],this.build=c[5]?c[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(t("SemVer.compare",this.version,this.options,e),!(e instanceof o)){if("string"==typeof e&&e===this.version)return 0;e=new o(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(t){return t instanceof o||(t=new o(t,this.options)),a(this.major,t.major)||a(this.minor,t.minor)||a(this.patch,t.patch)}comparePre(e){if(e instanceof o||(e=new o(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let i=0;do{const n=this.prerelease[i],r=e.prerelease[i];if(t("prerelease compare",i,n,r),void 0===n&&void 0===r)return 0;if(void 0===r)return 1;if(void 0===n)return-1;if(n!==r)return a(n,r)}while(++i)}compareBuild(e){e instanceof o||(e=new o(e,this.options));let i=0;do{const n=this.build[i],r=e.build[i];if(t("build compare",i,n,r),void 0===n&&void 0===r)return 0;if(void 0===r)return 1;if(void 0===n)return-1;if(n!==r)return a(n,r)}while(++i)}inc(t,e,i){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",e,i);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",e,i);break;case"prepatch":this.prerelease.length=0,this.inc("patch",e,i),this.inc("pre",e,i);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",e,i),this.inc("pre",e,i);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":{const t=Number(i)?1:0;if(!e&&!1===i)throw new Error("invalid increment argument: identifier is empty");if(0===this.prerelease.length)this.prerelease=[t];else{let n=this.prerelease.length;for(;--n>=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);if(-1===n){if(e===this.prerelease.join(".")&&!1===i)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(t)}}if(e){let n=[e,t];!1===i&&(n=[e]),0===a(this.prerelease[0],e)?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return it=o}!function(){if(ot)return at;ot=1;const t=function(){if(st)return rt;st=1;const t=ut();return rt=(e,i,n=!1)=>{if(e instanceof t)return e;try{return new t(e,i)}catch(t){if(!n)return null;throw t}}}();at=(e,i)=>{const n=t(e,i);return n?n.version:null}}(),function(){if(ct)return lt;ct=1;const t=ut();lt=(e,i)=>new t(e,i).major}(),s.m}}]);
+//# sourceMappingURL=2693-2693.js.map?v=12ccbb04e5fddc7ebc06 \ No newline at end of file
diff --git a/dist/9699-9699.js.license b/dist/2693-2693.js.license
index 513a897db3f..513a897db3f 100644
--- a/dist/9699-9699.js.license
+++ b/dist/2693-2693.js.license
diff --git a/dist/2693-2693.js.map b/dist/2693-2693.js.map
new file mode 100644
index 00000000000..17ee3059022
--- /dev/null
+++ b/dist/2693-2693.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"2693-2693.js?v=12ccbb04e5fddc7ebc06","mappings":"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","sources":["webpack:///nextcloud/node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=e994747e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=32cb91ce&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=1d9a7cfa&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=3d033992&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=be1cd266&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=4c49edf4&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=9d62dc72&prod&lang=scss","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=db4347b0&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=4baa5581&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=15a4df38&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/url-search-params-polyfill/index.js","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?0ae8","webpack://nextcloud/./node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css?bb25","webpack:///nextcloud/node_modules/lodash-es/isObject.js","webpack:///nextcloud/node_modules/lodash-es/_freeGlobal.js","webpack:///nextcloud/node_modules/lodash-es/_root.js","webpack:///nextcloud/node_modules/lodash-es/now.js","webpack:///nextcloud/node_modules/lodash-es/_trimmedEndIndex.js","webpack:///nextcloud/node_modules/lodash-es/_baseTrim.js","webpack:///nextcloud/node_modules/lodash-es/_Symbol.js","webpack:///nextcloud/node_modules/lodash-es/_getRawTag.js","webpack:///nextcloud/node_modules/lodash-es/_objectToString.js","webpack:///nextcloud/node_modules/lodash-es/_baseGetTag.js","webpack:///nextcloud/node_modules/lodash-es/toNumber.js","webpack:///nextcloud/node_modules/lodash-es/isSymbol.js","webpack:///nextcloud/node_modules/lodash-es/isObjectLike.js","webpack:///nextcloud/node_modules/lodash-es/debounce.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/dist/index.mjs","webpack:///nextcloud/apps/files_sharing/src/services/ConfigService.ts","webpack:///nextcloud/apps/files_sharing/src/services/logger.ts","webpack:///nextcloud/apps/files_sharing/src/models/Share.ts","webpack:///nextcloud/apps/files_sharing/src/services/SharingService.ts","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?6c02","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?3197","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?cb12","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?0c02","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?bec5","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?4c20","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?65df","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareRequests.js","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareDetails.js","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?73bc","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?3d7c","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?45a6","webpack:///nextcloud/apps/files_sharing/src/lib/SharePermissionsToolBox.js","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files_sharing/src/mixins/SharesMixin.js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?2e22","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?0e5a","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?77d5","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?cec5","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?1677","webpack://nextcloud/./apps/files_sharing/src/views/SharingLinkList.vue?de0b","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Tune.vue?7202","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue?vue&type=template&id=18d04e6a","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/CalendarBlank.vue?3d12","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue?vue&type=template&id=41fe7db9","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Qrcode.vue?b80a","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue?vue&type=template&id=aba87788","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Exclamation.vue?46e6","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue?vue&type=template&id=03239926","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Lock.vue?93ae","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue?vue&type=template&id=6d856da2","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/CheckBold.vue?7500","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue?vue&type=template&id=5603f41f","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/TriangleSmallDown.vue?8651","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=template&id=1eed3dd9","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/EyeOutline.vue?9ce8","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=template&id=e26de6f6","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FileUpload.vue?c468","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue?vue&type=template&id=caa55e94","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?c5e4","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?4441","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?0b36","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue","webpack://nextcloud/./apps/files_sharing/src/components/ExternalShareAction.vue?9bf3","webpack://nextcloud/./apps/files_sharing/src/components/ExternalShareAction.vue?82b4","webpack:///nextcloud/apps/files_sharing/src/utils/GeneratePassword.ts","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?91f2","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?af90","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?64e9","webpack://nextcloud/./apps/files_sharing/src/views/SharingLinkList.vue?a70b","webpack://nextcloud/./apps/files_sharing/src/views/SharingList.vue?e340","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?3f13","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?10a7","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?f8d7","webpack://nextcloud/./apps/files_sharing/src/views/SharingList.vue?9f9c","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?7f2e","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CircleOutline.vue?68bc","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=template&id=c013567c","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Email.vue?3953","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=7dd7f6aa","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ShareCircle.vue?a1b2","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=template&id=0e958886","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountCircleOutline.vue?a068","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=template&id=5b2fe1de","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Eye.vue?157b","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=4ae2345c","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Refresh.vue?0940","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue?vue&type=template&id=2864f909","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue","webpack:///nextcloud/apps/files_sharing/src/services/TokenService.ts","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?a120","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?10fc","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue","webpack:///nextcloud/apps/files_sharing/src/utils/SharedWithMe.js","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?0b28","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?6997","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs"],"sourcesContent":["/*!\n * vue-qrcode v1.0.2\n * https://fengyuanchen.github.io/vue-qrcode\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2020-01-18T06:04:33.222Z\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global = global || self, global.VueQrcode = factory());\n}(this, (function () { 'use strict';\n\n\tfunction commonjsRequire () {\n\t\tthrow new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs');\n\t}\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\tvar qrcode = createCommonjsModule(function (module, exports) {\n\t(function(f){{module.exports=f();}})(function(){return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof commonjsRequire&&commonjsRequire;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t);}return n[i].exports}for(var u=\"function\"==typeof commonjsRequire&&commonjsRequire,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n\t// can-promise has a crash in some versions of react native that dont have\n\t// standard global objects\n\t// https://github.com/soldair/node-qrcode/issues/157\n\n\tmodule.exports = function () {\n\t return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n\t};\n\n\t},{}],2:[function(require,module,exports){\n\t/**\n\t * Alignment pattern are fixed reference pattern in defined positions\n\t * in a matrix symbology, which enables the decode software to re-synchronise\n\t * the coordinate mapping of the image modules in the event of moderate amounts\n\t * of distortion of the image.\n\t *\n\t * Alignment patterns are present only in QR Code symbols of version 2 or larger\n\t * and their number depends on the symbol version.\n\t */\n\n\tvar getSymbolSize = require('./utils').getSymbolSize;\n\n\t/**\n\t * Calculate the row/column coordinates of the center module of each alignment pattern\n\t * for the specified QR Code version.\n\t *\n\t * The alignment patterns are positioned symmetrically on either side of the diagonal\n\t * running from the top left corner of the symbol to the bottom right corner.\n\t *\n\t * Since positions are simmetrical only half of the coordinates are returned.\n\t * Each item of the array will represent in turn the x and y coordinate.\n\t * @see {@link getPositions}\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinate\n\t */\n\texports.getRowColCoords = function getRowColCoords (version) {\n\t if (version === 1) return []\n\n\t var posCount = Math.floor(version / 7) + 2;\n\t var size = getSymbolSize(version);\n\t var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2;\n\t var positions = [size - 7]; // Last coord is always (size - 7)\n\n\t for (var i = 1; i < posCount - 1; i++) {\n\t positions[i] = positions[i - 1] - intervals;\n\t }\n\n\t positions.push(6); // First coord is always 6\n\n\t return positions.reverse()\n\t};\n\n\t/**\n\t * Returns an array containing the positions of each alignment pattern.\n\t * Each array's element represent the center point of the pattern as (x, y) coordinates\n\t *\n\t * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n\t * and filtering out the items that overlaps with finder pattern\n\t *\n\t * @example\n\t * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n\t * The alignment patterns, therefore, are to be centered on (row, column)\n\t * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n\t * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n\t * and are not therefore used for alignment patterns.\n\t *\n\t * var pos = getPositions(7)\n\t * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinates\n\t */\n\texports.getPositions = function getPositions (version) {\n\t var coords = [];\n\t var pos = exports.getRowColCoords(version);\n\t var posLength = pos.length;\n\n\t for (var i = 0; i < posLength; i++) {\n\t for (var j = 0; j < posLength; j++) {\n\t // Skip if position is occupied by finder patterns\n\t if ((i === 0 && j === 0) || // top-left\n\t (i === 0 && j === posLength - 1) || // bottom-left\n\t (i === posLength - 1 && j === 0)) { // top-right\n\t continue\n\t }\n\n\t coords.push([pos[i], pos[j]]);\n\t }\n\t }\n\n\t return coords\n\t};\n\n\t},{\"./utils\":21}],3:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\n\t/**\n\t * Array of characters available in alphanumeric mode\n\t *\n\t * As per QR Code specification, to each character\n\t * is assigned a value from 0 to 44 which in this case coincides\n\t * with the array index\n\t *\n\t * @type {Array}\n\t */\n\tvar ALPHA_NUM_CHARS = [\n\t '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n\t 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n\t 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n\t ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n\t];\n\n\tfunction AlphanumericData (data) {\n\t this.mode = Mode.ALPHANUMERIC;\n\t this.data = data;\n\t}\n\n\tAlphanumericData.getBitsLength = function getBitsLength (length) {\n\t return 11 * Math.floor(length / 2) + 6 * (length % 2)\n\t};\n\n\tAlphanumericData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n\t return AlphanumericData.getBitsLength(this.data.length)\n\t};\n\n\tAlphanumericData.prototype.write = function write (bitBuffer) {\n\t var i;\n\n\t // Input data characters are divided into groups of two characters\n\t // and encoded as 11-bit binary codes.\n\t for (i = 0; i + 2 <= this.data.length; i += 2) {\n\t // The character value of the first character is multiplied by 45\n\t var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45;\n\n\t // The character value of the second digit is added to the product\n\t value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1]);\n\n\t // The sum is then stored as 11-bit binary number\n\t bitBuffer.put(value, 11);\n\t }\n\n\t // If the number of input data characters is not a multiple of two,\n\t // the character value of the final character is encoded as a 6-bit binary number.\n\t if (this.data.length % 2) {\n\t bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6);\n\t }\n\t};\n\n\tmodule.exports = AlphanumericData;\n\n\t},{\"./mode\":14}],4:[function(require,module,exports){\n\tfunction BitBuffer () {\n\t this.buffer = [];\n\t this.length = 0;\n\t}\n\n\tBitBuffer.prototype = {\n\n\t get: function (index) {\n\t var bufIndex = Math.floor(index / 8);\n\t return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n\t },\n\n\t put: function (num, length) {\n\t for (var i = 0; i < length; i++) {\n\t this.putBit(((num >>> (length - i - 1)) & 1) === 1);\n\t }\n\t },\n\n\t getLengthInBits: function () {\n\t return this.length\n\t },\n\n\t putBit: function (bit) {\n\t var bufIndex = Math.floor(this.length / 8);\n\t if (this.buffer.length <= bufIndex) {\n\t this.buffer.push(0);\n\t }\n\n\t if (bit) {\n\t this.buffer[bufIndex] |= (0x80 >>> (this.length % 8));\n\t }\n\n\t this.length++;\n\t }\n\t};\n\n\tmodule.exports = BitBuffer;\n\n\t},{}],5:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\n\t/**\n\t * Helper class to handle QR Code symbol modules\n\t *\n\t * @param {Number} size Symbol size\n\t */\n\tfunction BitMatrix (size) {\n\t if (!size || size < 1) {\n\t throw new Error('BitMatrix size must be defined and greater than 0')\n\t }\n\n\t this.size = size;\n\t this.data = BufferUtil.alloc(size * size);\n\t this.reservedBit = BufferUtil.alloc(size * size);\n\t}\n\n\t/**\n\t * Set bit value at specified location\n\t * If reserved flag is set, this bit will be ignored during masking process\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @param {Boolean} value\n\t * @param {Boolean} reserved\n\t */\n\tBitMatrix.prototype.set = function (row, col, value, reserved) {\n\t var index = row * this.size + col;\n\t this.data[index] = value;\n\t if (reserved) this.reservedBit[index] = true;\n\t};\n\n\t/**\n\t * Returns bit value at specified location\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @return {Boolean}\n\t */\n\tBitMatrix.prototype.get = function (row, col) {\n\t return this.data[row * this.size + col]\n\t};\n\n\t/**\n\t * Applies xor operator at specified location\n\t * (used during masking process)\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @param {Boolean} value\n\t */\n\tBitMatrix.prototype.xor = function (row, col, value) {\n\t this.data[row * this.size + col] ^= value;\n\t};\n\n\t/**\n\t * Check if bit at specified location is reserved\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @return {Boolean}\n\t */\n\tBitMatrix.prototype.isReserved = function (row, col) {\n\t return this.reservedBit[row * this.size + col]\n\t};\n\n\tmodule.exports = BitMatrix;\n\n\t},{\"../utils/buffer\":28}],6:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Mode = require('./mode');\n\n\tfunction ByteData (data) {\n\t this.mode = Mode.BYTE;\n\t this.data = BufferUtil.from(data);\n\t}\n\n\tByteData.getBitsLength = function getBitsLength (length) {\n\t return length * 8\n\t};\n\n\tByteData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tByteData.prototype.getBitsLength = function getBitsLength () {\n\t return ByteData.getBitsLength(this.data.length)\n\t};\n\n\tByteData.prototype.write = function (bitBuffer) {\n\t for (var i = 0, l = this.data.length; i < l; i++) {\n\t bitBuffer.put(this.data[i], 8);\n\t }\n\t};\n\n\tmodule.exports = ByteData;\n\n\t},{\"../utils/buffer\":28,\"./mode\":14}],7:[function(require,module,exports){\n\tvar ECLevel = require('./error-correction-level');\r\n\r\n\tvar EC_BLOCKS_TABLE = [\r\n\t// L M Q H\r\n\t 1, 1, 1, 1,\r\n\t 1, 1, 1, 1,\r\n\t 1, 1, 2, 2,\r\n\t 1, 2, 2, 4,\r\n\t 1, 2, 4, 4,\r\n\t 2, 4, 4, 4,\r\n\t 2, 4, 6, 5,\r\n\t 2, 4, 6, 6,\r\n\t 2, 5, 8, 8,\r\n\t 4, 5, 8, 8,\r\n\t 4, 5, 8, 11,\r\n\t 4, 8, 10, 11,\r\n\t 4, 9, 12, 16,\r\n\t 4, 9, 16, 16,\r\n\t 6, 10, 12, 18,\r\n\t 6, 10, 17, 16,\r\n\t 6, 11, 16, 19,\r\n\t 6, 13, 18, 21,\r\n\t 7, 14, 21, 25,\r\n\t 8, 16, 20, 25,\r\n\t 8, 17, 23, 25,\r\n\t 9, 17, 23, 34,\r\n\t 9, 18, 25, 30,\r\n\t 10, 20, 27, 32,\r\n\t 12, 21, 29, 35,\r\n\t 12, 23, 34, 37,\r\n\t 12, 25, 34, 40,\r\n\t 13, 26, 35, 42,\r\n\t 14, 28, 38, 45,\r\n\t 15, 29, 40, 48,\r\n\t 16, 31, 43, 51,\r\n\t 17, 33, 45, 54,\r\n\t 18, 35, 48, 57,\r\n\t 19, 37, 51, 60,\r\n\t 19, 38, 53, 63,\r\n\t 20, 40, 56, 66,\r\n\t 21, 43, 59, 70,\r\n\t 22, 45, 62, 74,\r\n\t 24, 47, 65, 77,\r\n\t 25, 49, 68, 81\r\n\t];\r\n\r\n\tvar EC_CODEWORDS_TABLE = [\r\n\t// L M Q H\r\n\t 7, 10, 13, 17,\r\n\t 10, 16, 22, 28,\r\n\t 15, 26, 36, 44,\r\n\t 20, 36, 52, 64,\r\n\t 26, 48, 72, 88,\r\n\t 36, 64, 96, 112,\r\n\t 40, 72, 108, 130,\r\n\t 48, 88, 132, 156,\r\n\t 60, 110, 160, 192,\r\n\t 72, 130, 192, 224,\r\n\t 80, 150, 224, 264,\r\n\t 96, 176, 260, 308,\r\n\t 104, 198, 288, 352,\r\n\t 120, 216, 320, 384,\r\n\t 132, 240, 360, 432,\r\n\t 144, 280, 408, 480,\r\n\t 168, 308, 448, 532,\r\n\t 180, 338, 504, 588,\r\n\t 196, 364, 546, 650,\r\n\t 224, 416, 600, 700,\r\n\t 224, 442, 644, 750,\r\n\t 252, 476, 690, 816,\r\n\t 270, 504, 750, 900,\r\n\t 300, 560, 810, 960,\r\n\t 312, 588, 870, 1050,\r\n\t 336, 644, 952, 1110,\r\n\t 360, 700, 1020, 1200,\r\n\t 390, 728, 1050, 1260,\r\n\t 420, 784, 1140, 1350,\r\n\t 450, 812, 1200, 1440,\r\n\t 480, 868, 1290, 1530,\r\n\t 510, 924, 1350, 1620,\r\n\t 540, 980, 1440, 1710,\r\n\t 570, 1036, 1530, 1800,\r\n\t 570, 1064, 1590, 1890,\r\n\t 600, 1120, 1680, 1980,\r\n\t 630, 1204, 1770, 2100,\r\n\t 660, 1260, 1860, 2220,\r\n\t 720, 1316, 1950, 2310,\r\n\t 750, 1372, 2040, 2430\r\n\t];\r\n\r\n\t/**\r\n\t * Returns the number of error correction block that the QR Code should contain\r\n\t * for the specified version and error correction level.\r\n\t *\r\n\t * @param {Number} version QR Code version\r\n\t * @param {Number} errorCorrectionLevel Error correction level\r\n\t * @return {Number} Number of error correction blocks\r\n\t */\r\n\texports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n\t switch (errorCorrectionLevel) {\r\n\t case ECLevel.L:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n\t case ECLevel.M:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n\t case ECLevel.Q:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n\t case ECLevel.H:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n\t default:\r\n\t return undefined\r\n\t }\r\n\t};\r\n\r\n\t/**\r\n\t * Returns the number of error correction codewords to use for the specified\r\n\t * version and error correction level.\r\n\t *\r\n\t * @param {Number} version QR Code version\r\n\t * @param {Number} errorCorrectionLevel Error correction level\r\n\t * @return {Number} Number of error correction codewords\r\n\t */\r\n\texports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n\t switch (errorCorrectionLevel) {\r\n\t case ECLevel.L:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n\t case ECLevel.M:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n\t case ECLevel.Q:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n\t case ECLevel.H:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n\t default:\r\n\t return undefined\r\n\t }\r\n\t};\r\n\n\t},{\"./error-correction-level\":8}],8:[function(require,module,exports){\n\texports.L = { bit: 1 };\n\texports.M = { bit: 0 };\n\texports.Q = { bit: 3 };\n\texports.H = { bit: 2 };\n\n\tfunction fromString (string) {\n\t if (typeof string !== 'string') {\n\t throw new Error('Param is not a string')\n\t }\n\n\t var lcStr = string.toLowerCase();\n\n\t switch (lcStr) {\n\t case 'l':\n\t case 'low':\n\t return exports.L\n\n\t case 'm':\n\t case 'medium':\n\t return exports.M\n\n\t case 'q':\n\t case 'quartile':\n\t return exports.Q\n\n\t case 'h':\n\t case 'high':\n\t return exports.H\n\n\t default:\n\t throw new Error('Unknown EC Level: ' + string)\n\t }\n\t}\n\n\texports.isValid = function isValid (level) {\n\t return level && typeof level.bit !== 'undefined' &&\n\t level.bit >= 0 && level.bit < 4\n\t};\n\n\texports.from = function from (value, defaultValue) {\n\t if (exports.isValid(value)) {\n\t return value\n\t }\n\n\t try {\n\t return fromString(value)\n\t } catch (e) {\n\t return defaultValue\n\t }\n\t};\n\n\t},{}],9:[function(require,module,exports){\n\tvar getSymbolSize = require('./utils').getSymbolSize;\n\tvar FINDER_PATTERN_SIZE = 7;\n\n\t/**\n\t * Returns an array containing the positions of each finder pattern.\n\t * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinates\n\t */\n\texports.getPositions = function getPositions (version) {\n\t var size = getSymbolSize(version);\n\n\t return [\n\t // top-left\n\t [0, 0],\n\t // top-right\n\t [size - FINDER_PATTERN_SIZE, 0],\n\t // bottom-left\n\t [0, size - FINDER_PATTERN_SIZE]\n\t ]\n\t};\n\n\t},{\"./utils\":21}],10:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\n\tvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\n\tvar G15_BCH = Utils.getBCHDigit(G15);\n\n\t/**\n\t * Returns format information with relative error correction bits\n\t *\n\t * The format information is a 15-bit sequence containing 5 data bits,\n\t * with 10 error correction bits calculated using the (15, 5) BCH code.\n\t *\n\t * @param {Number} errorCorrectionLevel Error correction level\n\t * @param {Number} mask Mask pattern\n\t * @return {Number} Encoded format information bits\n\t */\n\texports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n\t var data = ((errorCorrectionLevel.bit << 3) | mask);\n\t var d = data << 10;\n\n\t while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n\t d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH));\n\t }\n\n\t // xor final data with mask pattern in order to ensure that\n\t // no combination of Error Correction Level and data mask pattern\n\t // will result in an all-zero data string\n\t return ((data << 10) | d) ^ G15_MASK\n\t};\n\n\t},{\"./utils\":21}],11:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\n\tvar EXP_TABLE = BufferUtil.alloc(512);\n\tvar LOG_TABLE = BufferUtil.alloc(256)\n\t/**\n\t * Precompute the log and anti-log tables for faster computation later\n\t *\n\t * For each possible value in the galois field 2^8, we will pre-compute\n\t * the logarithm and anti-logarithm (exponential) of this value\n\t *\n\t * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n\t */\n\t;(function initTables () {\n\t var x = 1;\n\t for (var i = 0; i < 255; i++) {\n\t EXP_TABLE[i] = x;\n\t LOG_TABLE[x] = i;\n\n\t x <<= 1; // multiply by 2\n\n\t // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n\t // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n\t if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n\t x ^= 0x11D;\n\t }\n\t }\n\n\t // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n\t // stay inside the bounds (because we will mainly use this table for the multiplication of\n\t // two GF numbers, no more).\n\t // @see {@link mul}\n\t for (i = 255; i < 512; i++) {\n\t EXP_TABLE[i] = EXP_TABLE[i - 255];\n\t }\n\t}());\n\n\t/**\n\t * Returns log value of n inside Galois Field\n\t *\n\t * @param {Number} n\n\t * @return {Number}\n\t */\n\texports.log = function log (n) {\n\t if (n < 1) throw new Error('log(' + n + ')')\n\t return LOG_TABLE[n]\n\t};\n\n\t/**\n\t * Returns anti-log value of n inside Galois Field\n\t *\n\t * @param {Number} n\n\t * @return {Number}\n\t */\n\texports.exp = function exp (n) {\n\t return EXP_TABLE[n]\n\t};\n\n\t/**\n\t * Multiplies two number inside Galois Field\n\t *\n\t * @param {Number} x\n\t * @param {Number} y\n\t * @return {Number}\n\t */\n\texports.mul = function mul (x, y) {\n\t if (x === 0 || y === 0) return 0\n\n\t // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n\t // @see {@link initTables}\n\t return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n\t};\n\n\t},{\"../utils/buffer\":28}],12:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\tvar Utils = require('./utils');\n\n\tfunction KanjiData (data) {\n\t this.mode = Mode.KANJI;\n\t this.data = data;\n\t}\n\n\tKanjiData.getBitsLength = function getBitsLength (length) {\n\t return length * 13\n\t};\n\n\tKanjiData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tKanjiData.prototype.getBitsLength = function getBitsLength () {\n\t return KanjiData.getBitsLength(this.data.length)\n\t};\n\n\tKanjiData.prototype.write = function (bitBuffer) {\n\t var i;\n\n\t // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n\t // These byte values are shifted from the JIS X 0208 values.\n\t // JIS X 0208 gives details of the shift coded representation.\n\t for (i = 0; i < this.data.length; i++) {\n\t var value = Utils.toSJIS(this.data[i]);\n\n\t // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n\t if (value >= 0x8140 && value <= 0x9FFC) {\n\t // Subtract 0x8140 from Shift JIS value\n\t value -= 0x8140;\n\n\t // For characters with Shift JIS values from 0xE040 to 0xEBBF\n\t } else if (value >= 0xE040 && value <= 0xEBBF) {\n\t // Subtract 0xC140 from Shift JIS value\n\t value -= 0xC140;\n\t } else {\n\t throw new Error(\n\t 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n\t 'Make sure your charset is UTF-8')\n\t }\n\n\t // Multiply most significant byte of result by 0xC0\n\t // and add least significant byte to product\n\t value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff);\n\n\t // Convert result to a 13-bit binary string\n\t bitBuffer.put(value, 13);\n\t }\n\t};\n\n\tmodule.exports = KanjiData;\n\n\t},{\"./mode\":14,\"./utils\":21}],13:[function(require,module,exports){\n\t/**\n\t * Data mask pattern reference\n\t * @type {Object}\n\t */\n\texports.Patterns = {\n\t PATTERN000: 0,\n\t PATTERN001: 1,\n\t PATTERN010: 2,\n\t PATTERN011: 3,\n\t PATTERN100: 4,\n\t PATTERN101: 5,\n\t PATTERN110: 6,\n\t PATTERN111: 7\n\t};\n\n\t/**\n\t * Weighted penalty scores for the undesirable features\n\t * @type {Object}\n\t */\n\tvar PenaltyScores = {\n\t N1: 3,\n\t N2: 3,\n\t N3: 40,\n\t N4: 10\n\t};\n\n\t/**\n\t * Check if mask pattern value is valid\n\t *\n\t * @param {Number} mask Mask pattern\n\t * @return {Boolean} true if valid, false otherwise\n\t */\n\texports.isValid = function isValid (mask) {\n\t return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n\t};\n\n\t/**\n\t * Returns mask pattern from a value.\n\t * If value is not valid, returns undefined\n\t *\n\t * @param {Number|String} value Mask pattern value\n\t * @return {Number} Valid mask pattern or undefined\n\t */\n\texports.from = function from (value) {\n\t return exports.isValid(value) ? parseInt(value, 10) : undefined\n\t};\n\n\t/**\n\t* Find adjacent modules in row/column with the same color\n\t* and assign a penalty value.\n\t*\n\t* Points: N1 + i\n\t* i is the amount by which the number of adjacent modules of the same color exceeds 5\n\t*/\n\texports.getPenaltyN1 = function getPenaltyN1 (data) {\n\t var size = data.size;\n\t var points = 0;\n\t var sameCountCol = 0;\n\t var sameCountRow = 0;\n\t var lastCol = null;\n\t var lastRow = null;\n\n\t for (var row = 0; row < size; row++) {\n\t sameCountCol = sameCountRow = 0;\n\t lastCol = lastRow = null;\n\n\t for (var col = 0; col < size; col++) {\n\t var module = data.get(row, col);\n\t if (module === lastCol) {\n\t sameCountCol++;\n\t } else {\n\t if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);\n\t lastCol = module;\n\t sameCountCol = 1;\n\t }\n\n\t module = data.get(col, row);\n\t if (module === lastRow) {\n\t sameCountRow++;\n\t } else {\n\t if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);\n\t lastRow = module;\n\t sameCountRow = 1;\n\t }\n\t }\n\n\t if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);\n\t if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);\n\t }\n\n\t return points\n\t};\n\n\t/**\n\t * Find 2x2 blocks with the same color and assign a penalty value\n\t *\n\t * Points: N2 * (m - 1) * (n - 1)\n\t */\n\texports.getPenaltyN2 = function getPenaltyN2 (data) {\n\t var size = data.size;\n\t var points = 0;\n\n\t for (var row = 0; row < size - 1; row++) {\n\t for (var col = 0; col < size - 1; col++) {\n\t var last = data.get(row, col) +\n\t data.get(row, col + 1) +\n\t data.get(row + 1, col) +\n\t data.get(row + 1, col + 1);\n\n\t if (last === 4 || last === 0) points++;\n\t }\n\t }\n\n\t return points * PenaltyScores.N2\n\t};\n\n\t/**\n\t * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n\t * preceded or followed by light area 4 modules wide\n\t *\n\t * Points: N3 * number of pattern found\n\t */\n\texports.getPenaltyN3 = function getPenaltyN3 (data) {\n\t var size = data.size;\n\t var points = 0;\n\t var bitsCol = 0;\n\t var bitsRow = 0;\n\n\t for (var row = 0; row < size; row++) {\n\t bitsCol = bitsRow = 0;\n\t for (var col = 0; col < size; col++) {\n\t bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col);\n\t if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++;\n\n\t bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row);\n\t if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++;\n\t }\n\t }\n\n\t return points * PenaltyScores.N3\n\t};\n\n\t/**\n\t * Calculate proportion of dark modules in entire symbol\n\t *\n\t * Points: N4 * k\n\t *\n\t * k is the rating of the deviation of the proportion of dark modules\n\t * in the symbol from 50% in steps of 5%\n\t */\n\texports.getPenaltyN4 = function getPenaltyN4 (data) {\n\t var darkCount = 0;\n\t var modulesCount = data.data.length;\n\n\t for (var i = 0; i < modulesCount; i++) darkCount += data.data[i];\n\n\t var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10);\n\n\t return k * PenaltyScores.N4\n\t};\n\n\t/**\n\t * Return mask value at given position\n\t *\n\t * @param {Number} maskPattern Pattern reference value\n\t * @param {Number} i Row\n\t * @param {Number} j Column\n\t * @return {Boolean} Mask value\n\t */\n\tfunction getMaskAt (maskPattern, i, j) {\n\t switch (maskPattern) {\n\t case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n\t case exports.Patterns.PATTERN001: return i % 2 === 0\n\t case exports.Patterns.PATTERN010: return j % 3 === 0\n\t case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n\t case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n\t case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n\t case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n\t case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n\t default: throw new Error('bad maskPattern:' + maskPattern)\n\t }\n\t}\n\n\t/**\n\t * Apply a mask pattern to a BitMatrix\n\t *\n\t * @param {Number} pattern Pattern reference number\n\t * @param {BitMatrix} data BitMatrix data\n\t */\n\texports.applyMask = function applyMask (pattern, data) {\n\t var size = data.size;\n\n\t for (var col = 0; col < size; col++) {\n\t for (var row = 0; row < size; row++) {\n\t if (data.isReserved(row, col)) continue\n\t data.xor(row, col, getMaskAt(pattern, row, col));\n\t }\n\t }\n\t};\n\n\t/**\n\t * Returns the best mask pattern for data\n\t *\n\t * @param {BitMatrix} data\n\t * @return {Number} Mask pattern reference number\n\t */\n\texports.getBestMask = function getBestMask (data, setupFormatFunc) {\n\t var numPatterns = Object.keys(exports.Patterns).length;\n\t var bestPattern = 0;\n\t var lowerPenalty = Infinity;\n\n\t for (var p = 0; p < numPatterns; p++) {\n\t setupFormatFunc(p);\n\t exports.applyMask(p, data);\n\n\t // Calculate penalty\n\t var penalty =\n\t exports.getPenaltyN1(data) +\n\t exports.getPenaltyN2(data) +\n\t exports.getPenaltyN3(data) +\n\t exports.getPenaltyN4(data);\n\n\t // Undo previously applied mask\n\t exports.applyMask(p, data);\n\n\t if (penalty < lowerPenalty) {\n\t lowerPenalty = penalty;\n\t bestPattern = p;\n\t }\n\t }\n\n\t return bestPattern\n\t};\n\n\t},{}],14:[function(require,module,exports){\n\tvar VersionCheck = require('./version-check');\n\tvar Regex = require('./regex');\n\n\t/**\n\t * Numeric mode encodes data from the decimal digit set (0 - 9)\n\t * (byte values 30HEX to 39HEX).\n\t * Normally, 3 data characters are represented by 10 bits.\n\t *\n\t * @type {Object}\n\t */\n\texports.NUMERIC = {\n\t id: 'Numeric',\n\t bit: 1 << 0,\n\t ccBits: [10, 12, 14]\n\t};\n\n\t/**\n\t * Alphanumeric mode encodes data from a set of 45 characters,\n\t * i.e. 10 numeric digits (0 - 9),\n\t * 26 alphabetic characters (A - Z),\n\t * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n\t * Normally, two input characters are represented by 11 bits.\n\t *\n\t * @type {Object}\n\t */\n\texports.ALPHANUMERIC = {\n\t id: 'Alphanumeric',\n\t bit: 1 << 1,\n\t ccBits: [9, 11, 13]\n\t};\n\n\t/**\n\t * In byte mode, data is encoded at 8 bits per character.\n\t *\n\t * @type {Object}\n\t */\n\texports.BYTE = {\n\t id: 'Byte',\n\t bit: 1 << 2,\n\t ccBits: [8, 16, 16]\n\t};\n\n\t/**\n\t * The Kanji mode efficiently encodes Kanji characters in accordance with\n\t * the Shift JIS system based on JIS X 0208.\n\t * The Shift JIS values are shifted from the JIS X 0208 values.\n\t * JIS X 0208 gives details of the shift coded representation.\n\t * Each two-byte character value is compacted to a 13-bit binary codeword.\n\t *\n\t * @type {Object}\n\t */\n\texports.KANJI = {\n\t id: 'Kanji',\n\t bit: 1 << 3,\n\t ccBits: [8, 10, 12]\n\t};\n\n\t/**\n\t * Mixed mode will contain a sequences of data in a combination of any of\n\t * the modes described above\n\t *\n\t * @type {Object}\n\t */\n\texports.MIXED = {\n\t bit: -1\n\t};\n\n\t/**\n\t * Returns the number of bits needed to store the data length\n\t * according to QR Code specifications.\n\t *\n\t * @param {Mode} mode Data mode\n\t * @param {Number} version QR Code version\n\t * @return {Number} Number of bits\n\t */\n\texports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n\t if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n\t if (!VersionCheck.isValid(version)) {\n\t throw new Error('Invalid version: ' + version)\n\t }\n\n\t if (version >= 1 && version < 10) return mode.ccBits[0]\n\t else if (version < 27) return mode.ccBits[1]\n\t return mode.ccBits[2]\n\t};\n\n\t/**\n\t * Returns the most efficient mode to store the specified data\n\t *\n\t * @param {String} dataStr Input data string\n\t * @return {Mode} Best mode\n\t */\n\texports.getBestModeForData = function getBestModeForData (dataStr) {\n\t if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n\t else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n\t else if (Regex.testKanji(dataStr)) return exports.KANJI\n\t else return exports.BYTE\n\t};\n\n\t/**\n\t * Return mode name as string\n\t *\n\t * @param {Mode} mode Mode object\n\t * @returns {String} Mode name\n\t */\n\texports.toString = function toString (mode) {\n\t if (mode && mode.id) return mode.id\n\t throw new Error('Invalid mode')\n\t};\n\n\t/**\n\t * Check if input param is a valid mode object\n\t *\n\t * @param {Mode} mode Mode object\n\t * @returns {Boolean} True if valid mode, false otherwise\n\t */\n\texports.isValid = function isValid (mode) {\n\t return mode && mode.bit && mode.ccBits\n\t};\n\n\t/**\n\t * Get mode object from its name\n\t *\n\t * @param {String} string Mode name\n\t * @returns {Mode} Mode object\n\t */\n\tfunction fromString (string) {\n\t if (typeof string !== 'string') {\n\t throw new Error('Param is not a string')\n\t }\n\n\t var lcStr = string.toLowerCase();\n\n\t switch (lcStr) {\n\t case 'numeric':\n\t return exports.NUMERIC\n\t case 'alphanumeric':\n\t return exports.ALPHANUMERIC\n\t case 'kanji':\n\t return exports.KANJI\n\t case 'byte':\n\t return exports.BYTE\n\t default:\n\t throw new Error('Unknown mode: ' + string)\n\t }\n\t}\n\n\t/**\n\t * Returns mode from a value.\n\t * If value is not a valid mode, returns defaultValue\n\t *\n\t * @param {Mode|String} value Encoding mode\n\t * @param {Mode} defaultValue Fallback value\n\t * @return {Mode} Encoding mode\n\t */\n\texports.from = function from (value, defaultValue) {\n\t if (exports.isValid(value)) {\n\t return value\n\t }\n\n\t try {\n\t return fromString(value)\n\t } catch (e) {\n\t return defaultValue\n\t }\n\t};\n\n\t},{\"./regex\":19,\"./version-check\":22}],15:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\n\tfunction NumericData (data) {\n\t this.mode = Mode.NUMERIC;\n\t this.data = data.toString();\n\t}\n\n\tNumericData.getBitsLength = function getBitsLength (length) {\n\t return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n\t};\n\n\tNumericData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tNumericData.prototype.getBitsLength = function getBitsLength () {\n\t return NumericData.getBitsLength(this.data.length)\n\t};\n\n\tNumericData.prototype.write = function write (bitBuffer) {\n\t var i, group, value;\n\n\t // The input data string is divided into groups of three digits,\n\t // and each group is converted to its 10-bit binary equivalent.\n\t for (i = 0; i + 3 <= this.data.length; i += 3) {\n\t group = this.data.substr(i, 3);\n\t value = parseInt(group, 10);\n\n\t bitBuffer.put(value, 10);\n\t }\n\n\t // If the number of input digits is not an exact multiple of three,\n\t // the final one or two digits are converted to 4 or 7 bits respectively.\n\t var remainingNum = this.data.length - i;\n\t if (remainingNum > 0) {\n\t group = this.data.substr(i);\n\t value = parseInt(group, 10);\n\n\t bitBuffer.put(value, remainingNum * 3 + 1);\n\t }\n\t};\n\n\tmodule.exports = NumericData;\n\n\t},{\"./mode\":14}],16:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar GF = require('./galois-field');\n\n\t/**\n\t * Multiplies two polynomials inside Galois Field\n\t *\n\t * @param {Buffer} p1 Polynomial\n\t * @param {Buffer} p2 Polynomial\n\t * @return {Buffer} Product of p1 and p2\n\t */\n\texports.mul = function mul (p1, p2) {\n\t var coeff = BufferUtil.alloc(p1.length + p2.length - 1);\n\n\t for (var i = 0; i < p1.length; i++) {\n\t for (var j = 0; j < p2.length; j++) {\n\t coeff[i + j] ^= GF.mul(p1[i], p2[j]);\n\t }\n\t }\n\n\t return coeff\n\t};\n\n\t/**\n\t * Calculate the remainder of polynomials division\n\t *\n\t * @param {Buffer} divident Polynomial\n\t * @param {Buffer} divisor Polynomial\n\t * @return {Buffer} Remainder\n\t */\n\texports.mod = function mod (divident, divisor) {\n\t var result = BufferUtil.from(divident);\n\n\t while ((result.length - divisor.length) >= 0) {\n\t var coeff = result[0];\n\n\t for (var i = 0; i < divisor.length; i++) {\n\t result[i] ^= GF.mul(divisor[i], coeff);\n\t }\n\n\t // remove all zeros from buffer head\n\t var offset = 0;\n\t while (offset < result.length && result[offset] === 0) offset++;\n\t result = result.slice(offset);\n\t }\n\n\t return result\n\t};\n\n\t/**\n\t * Generate an irreducible generator polynomial of specified degree\n\t * (used by Reed-Solomon encoder)\n\t *\n\t * @param {Number} degree Degree of the generator polynomial\n\t * @return {Buffer} Buffer containing polynomial coefficients\n\t */\n\texports.generateECPolynomial = function generateECPolynomial (degree) {\n\t var poly = BufferUtil.from([1]);\n\t for (var i = 0; i < degree; i++) {\n\t poly = exports.mul(poly, [1, GF.exp(i)]);\n\t }\n\n\t return poly\n\t};\n\n\t},{\"../utils/buffer\":28,\"./galois-field\":11}],17:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Utils = require('./utils');\n\tvar ECLevel = require('./error-correction-level');\n\tvar BitBuffer = require('./bit-buffer');\n\tvar BitMatrix = require('./bit-matrix');\n\tvar AlignmentPattern = require('./alignment-pattern');\n\tvar FinderPattern = require('./finder-pattern');\n\tvar MaskPattern = require('./mask-pattern');\n\tvar ECCode = require('./error-correction-code');\n\tvar ReedSolomonEncoder = require('./reed-solomon-encoder');\n\tvar Version = require('./version');\n\tvar FormatInfo = require('./format-info');\n\tvar Mode = require('./mode');\n\tvar Segments = require('./segments');\n\tvar isArray = require('isarray');\n\n\t/**\n\t * QRCode for JavaScript\n\t *\n\t * modified by Ryan Day for nodejs support\n\t * Copyright (c) 2011 Ryan Day\n\t *\n\t * Licensed under the MIT license:\n\t * http://www.opensource.org/licenses/mit-license.php\n\t *\n\t//---------------------------------------------------------------------\n\t// QRCode for JavaScript\n\t//\n\t// Copyright (c) 2009 Kazuhiko Arase\n\t//\n\t// URL: http://www.d-project.com/\n\t//\n\t// Licensed under the MIT license:\n\t// http://www.opensource.org/licenses/mit-license.php\n\t//\n\t// The word \"QR Code\" is registered trademark of\n\t// DENSO WAVE INCORPORATED\n\t// http://www.denso-wave.com/qrcode/faqpatent-e.html\n\t//\n\t//---------------------------------------------------------------------\n\t*/\n\n\t/**\n\t * Add finder patterns bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupFinderPattern (matrix, version) {\n\t var size = matrix.size;\n\t var pos = FinderPattern.getPositions(version);\n\n\t for (var i = 0; i < pos.length; i++) {\n\t var row = pos[i][0];\n\t var col = pos[i][1];\n\n\t for (var r = -1; r <= 7; r++) {\n\t if (row + r <= -1 || size <= row + r) continue\n\n\t for (var c = -1; c <= 7; c++) {\n\t if (col + c <= -1 || size <= col + c) continue\n\n\t if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n\t (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n\t (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n\t matrix.set(row + r, col + c, true, true);\n\t } else {\n\t matrix.set(row + r, col + c, false, true);\n\t }\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Add timing pattern bits to matrix\n\t *\n\t * Note: this function must be called before {@link setupAlignmentPattern}\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t */\n\tfunction setupTimingPattern (matrix) {\n\t var size = matrix.size;\n\n\t for (var r = 8; r < size - 8; r++) {\n\t var value = r % 2 === 0;\n\t matrix.set(r, 6, value, true);\n\t matrix.set(6, r, value, true);\n\t }\n\t}\n\n\t/**\n\t * Add alignment patterns bits to matrix\n\t *\n\t * Note: this function must be called after {@link setupTimingPattern}\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupAlignmentPattern (matrix, version) {\n\t var pos = AlignmentPattern.getPositions(version);\n\n\t for (var i = 0; i < pos.length; i++) {\n\t var row = pos[i][0];\n\t var col = pos[i][1];\n\n\t for (var r = -2; r <= 2; r++) {\n\t for (var c = -2; c <= 2; c++) {\n\t if (r === -2 || r === 2 || c === -2 || c === 2 ||\n\t (r === 0 && c === 0)) {\n\t matrix.set(row + r, col + c, true, true);\n\t } else {\n\t matrix.set(row + r, col + c, false, true);\n\t }\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Add version info bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupVersionInfo (matrix, version) {\n\t var size = matrix.size;\n\t var bits = Version.getEncodedBits(version);\n\t var row, col, mod;\n\n\t for (var i = 0; i < 18; i++) {\n\t row = Math.floor(i / 3);\n\t col = i % 3 + size - 8 - 3;\n\t mod = ((bits >> i) & 1) === 1;\n\n\t matrix.set(row, col, mod, true);\n\t matrix.set(col, row, mod, true);\n\t }\n\t}\n\n\t/**\n\t * Add format info bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @param {Number} maskPattern Mask pattern reference value\n\t */\n\tfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n\t var size = matrix.size;\n\t var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern);\n\t var i, mod;\n\n\t for (i = 0; i < 15; i++) {\n\t mod = ((bits >> i) & 1) === 1;\n\n\t // vertical\n\t if (i < 6) {\n\t matrix.set(i, 8, mod, true);\n\t } else if (i < 8) {\n\t matrix.set(i + 1, 8, mod, true);\n\t } else {\n\t matrix.set(size - 15 + i, 8, mod, true);\n\t }\n\n\t // horizontal\n\t if (i < 8) {\n\t matrix.set(8, size - i - 1, mod, true);\n\t } else if (i < 9) {\n\t matrix.set(8, 15 - i - 1 + 1, mod, true);\n\t } else {\n\t matrix.set(8, 15 - i - 1, mod, true);\n\t }\n\t }\n\n\t // fixed module\n\t matrix.set(size - 8, 8, 1, true);\n\t}\n\n\t/**\n\t * Add encoded data bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Buffer} data Data codewords\n\t */\n\tfunction setupData (matrix, data) {\n\t var size = matrix.size;\n\t var inc = -1;\n\t var row = size - 1;\n\t var bitIndex = 7;\n\t var byteIndex = 0;\n\n\t for (var col = size - 1; col > 0; col -= 2) {\n\t if (col === 6) col--;\n\n\t while (true) {\n\t for (var c = 0; c < 2; c++) {\n\t if (!matrix.isReserved(row, col - c)) {\n\t var dark = false;\n\n\t if (byteIndex < data.length) {\n\t dark = (((data[byteIndex] >>> bitIndex) & 1) === 1);\n\t }\n\n\t matrix.set(row, col - c, dark);\n\t bitIndex--;\n\n\t if (bitIndex === -1) {\n\t byteIndex++;\n\t bitIndex = 7;\n\t }\n\t }\n\t }\n\n\t row += inc;\n\n\t if (row < 0 || size <= row) {\n\t row -= inc;\n\t inc = -inc;\n\t break\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Create encoded codewords from data input\n\t *\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @param {ByteData} data Data input\n\t * @return {Buffer} Buffer containing encoded codewords\n\t */\n\tfunction createData (version, errorCorrectionLevel, segments) {\n\t // Prepare data buffer\n\t var buffer = new BitBuffer();\n\n\t segments.forEach(function (data) {\n\t // prefix data with mode indicator (4 bits)\n\t buffer.put(data.mode.bit, 4);\n\n\t // Prefix data with character count indicator.\n\t // The character count indicator is a string of bits that represents the\n\t // number of characters that are being encoded.\n\t // The character count indicator must be placed after the mode indicator\n\t // and must be a certain number of bits long, depending on the QR version\n\t // and data mode\n\t // @see {@link Mode.getCharCountIndicator}.\n\t buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version));\n\n\t // add binary data sequence to buffer\n\t data.write(buffer);\n\t });\n\n\t // Calculate required number of bits\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\t var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;\n\n\t // Add a terminator.\n\t // If the bit string is shorter than the total number of required bits,\n\t // a terminator of up to four 0s must be added to the right side of the string.\n\t // If the bit string is more than four bits shorter than the required number of bits,\n\t // add four 0s to the end.\n\t if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n\t buffer.put(0, 4);\n\t }\n\n\t // If the bit string is fewer than four bits shorter, add only the number of 0s that\n\t // are needed to reach the required number of bits.\n\n\t // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n\t // pad the string on the right with 0s to make the string's length a multiple of 8.\n\t while (buffer.getLengthInBits() % 8 !== 0) {\n\t buffer.putBit(0);\n\t }\n\n\t // Add pad bytes if the string is still shorter than the total number of required bits.\n\t // Extend the buffer to fill the data capacity of the symbol corresponding to\n\t // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n\t // and 00010001 (0x11) alternately.\n\t var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8;\n\t for (var i = 0; i < remainingByte; i++) {\n\t buffer.put(i % 2 ? 0x11 : 0xEC, 8);\n\t }\n\n\t return createCodewords(buffer, version, errorCorrectionLevel)\n\t}\n\n\t/**\n\t * Encode input data with Reed-Solomon and return codewords with\n\t * relative error correction bits\n\t *\n\t * @param {BitBuffer} bitBuffer Data to encode\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @return {Buffer} Buffer containing encoded codewords\n\t */\n\tfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n\t // Total codewords for this QR code version (Data + Error correction)\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\n\t // Total number of error correction codewords\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\n\t // Total number of data codewords\n\t var dataTotalCodewords = totalCodewords - ecTotalCodewords;\n\n\t // Total number of blocks\n\t var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel);\n\n\t // Calculate how many blocks each group should contain\n\t var blocksInGroup2 = totalCodewords % ecTotalBlocks;\n\t var blocksInGroup1 = ecTotalBlocks - blocksInGroup2;\n\n\t var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks);\n\n\t var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks);\n\t var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1;\n\n\t // Number of EC codewords is the same for both groups\n\t var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1;\n\n\t // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n\t var rs = new ReedSolomonEncoder(ecCount);\n\n\t var offset = 0;\n\t var dcData = new Array(ecTotalBlocks);\n\t var ecData = new Array(ecTotalBlocks);\n\t var maxDataSize = 0;\n\t var buffer = BufferUtil.from(bitBuffer.buffer);\n\n\t // Divide the buffer into the required number of blocks\n\t for (var b = 0; b < ecTotalBlocks; b++) {\n\t var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2;\n\n\t // extract a block of data from buffer\n\t dcData[b] = buffer.slice(offset, offset + dataSize);\n\n\t // Calculate EC codewords for this data block\n\t ecData[b] = rs.encode(dcData[b]);\n\n\t offset += dataSize;\n\t maxDataSize = Math.max(maxDataSize, dataSize);\n\t }\n\n\t // Create final data\n\t // Interleave the data and error correction codewords from each block\n\t var data = BufferUtil.alloc(totalCodewords);\n\t var index = 0;\n\t var i, r;\n\n\t // Add data codewords\n\t for (i = 0; i < maxDataSize; i++) {\n\t for (r = 0; r < ecTotalBlocks; r++) {\n\t if (i < dcData[r].length) {\n\t data[index++] = dcData[r][i];\n\t }\n\t }\n\t }\n\n\t // Apped EC codewords\n\t for (i = 0; i < ecCount; i++) {\n\t for (r = 0; r < ecTotalBlocks; r++) {\n\t data[index++] = ecData[r][i];\n\t }\n\t }\n\n\t return data\n\t}\n\n\t/**\n\t * Build QR Code symbol\n\t *\n\t * @param {String} data Input string\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n\t * @param {MaskPattern} maskPattern Mask pattern\n\t * @return {Object} Object containing symbol data\n\t */\n\tfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n\t var segments;\n\n\t if (isArray(data)) {\n\t segments = Segments.fromArray(data);\n\t } else if (typeof data === 'string') {\n\t var estimatedVersion = version;\n\n\t if (!estimatedVersion) {\n\t var rawSegments = Segments.rawSplit(data);\n\n\t // Estimate best version that can contain raw splitted segments\n\t estimatedVersion = Version.getBestVersionForData(rawSegments,\n\t errorCorrectionLevel);\n\t }\n\n\t // Build optimized segments\n\t // If estimated version is undefined, try with the highest version\n\t segments = Segments.fromString(data, estimatedVersion || 40);\n\t } else {\n\t throw new Error('Invalid data')\n\t }\n\n\t // Get the min version that can contain data\n\t var bestVersion = Version.getBestVersionForData(segments,\n\t errorCorrectionLevel);\n\n\t // If no version is found, data cannot be stored\n\t if (!bestVersion) {\n\t throw new Error('The amount of data is too big to be stored in a QR Code')\n\t }\n\n\t // If not specified, use min version as default\n\t if (!version) {\n\t version = bestVersion;\n\n\t // Check if the specified version can contain the data\n\t } else if (version < bestVersion) {\n\t throw new Error('\\n' +\n\t 'The chosen QR Code version cannot contain this amount of data.\\n' +\n\t 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n\t )\n\t }\n\n\t var dataBits = createData(version, errorCorrectionLevel, segments);\n\n\t // Allocate matrix buffer\n\t var moduleCount = Utils.getSymbolSize(version);\n\t var modules = new BitMatrix(moduleCount);\n\n\t // Add function modules\n\t setupFinderPattern(modules, version);\n\t setupTimingPattern(modules);\n\t setupAlignmentPattern(modules, version);\n\n\t // Add temporary dummy bits for format info just to set them as reserved.\n\t // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n\t // since the masking operation must be performed only on the encoding region.\n\t // These blocks will be replaced with correct values later in code.\n\t setupFormatInfo(modules, errorCorrectionLevel, 0);\n\n\t if (version >= 7) {\n\t setupVersionInfo(modules, version);\n\t }\n\n\t // Add data codewords\n\t setupData(modules, dataBits);\n\n\t if (isNaN(maskPattern)) {\n\t // Find best mask pattern\n\t maskPattern = MaskPattern.getBestMask(modules,\n\t setupFormatInfo.bind(null, modules, errorCorrectionLevel));\n\t }\n\n\t // Apply mask pattern\n\t MaskPattern.applyMask(maskPattern, modules);\n\n\t // Replace format info bits with correct values\n\t setupFormatInfo(modules, errorCorrectionLevel, maskPattern);\n\n\t return {\n\t modules: modules,\n\t version: version,\n\t errorCorrectionLevel: errorCorrectionLevel,\n\t maskPattern: maskPattern,\n\t segments: segments\n\t }\n\t}\n\n\t/**\n\t * QR Code\n\t *\n\t * @param {String | Array} data Input data\n\t * @param {Object} options Optional configurations\n\t * @param {Number} options.version QR Code version\n\t * @param {String} options.errorCorrectionLevel Error correction level\n\t * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n\t */\n\texports.create = function create (data, options) {\n\t if (typeof data === 'undefined' || data === '') {\n\t throw new Error('No input text')\n\t }\n\n\t var errorCorrectionLevel = ECLevel.M;\n\t var version;\n\t var mask;\n\n\t if (typeof options !== 'undefined') {\n\t // Use higher error correction level as default\n\t errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M);\n\t version = Version.from(options.version);\n\t mask = MaskPattern.from(options.maskPattern);\n\n\t if (options.toSJISFunc) {\n\t Utils.setToSJISFunction(options.toSJISFunc);\n\t }\n\t }\n\n\t return createSymbol(data, version, errorCorrectionLevel, mask)\n\t};\n\n\t},{\"../utils/buffer\":28,\"./alignment-pattern\":2,\"./bit-buffer\":4,\"./bit-matrix\":5,\"./error-correction-code\":7,\"./error-correction-level\":8,\"./finder-pattern\":9,\"./format-info\":10,\"./mask-pattern\":13,\"./mode\":14,\"./reed-solomon-encoder\":18,\"./segments\":20,\"./utils\":21,\"./version\":23,\"isarray\":33}],18:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Polynomial = require('./polynomial');\n\tvar Buffer = require('buffer').Buffer;\n\n\tfunction ReedSolomonEncoder (degree) {\n\t this.genPoly = undefined;\n\t this.degree = degree;\n\n\t if (this.degree) this.initialize(this.degree);\n\t}\n\n\t/**\n\t * Initialize the encoder.\n\t * The input param should correspond to the number of error correction codewords.\n\t *\n\t * @param {Number} degree\n\t */\n\tReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n\t // create an irreducible generator polynomial\n\t this.degree = degree;\n\t this.genPoly = Polynomial.generateECPolynomial(this.degree);\n\t};\n\n\t/**\n\t * Encodes a chunk of data\n\t *\n\t * @param {Buffer} data Buffer containing input data\n\t * @return {Buffer} Buffer containing encoded data\n\t */\n\tReedSolomonEncoder.prototype.encode = function encode (data) {\n\t if (!this.genPoly) {\n\t throw new Error('Encoder not initialized')\n\t }\n\n\t // Calculate EC for this data block\n\t // extends data size to data+genPoly size\n\t var pad = BufferUtil.alloc(this.degree);\n\t var paddedData = Buffer.concat([data, pad], data.length + this.degree);\n\n\t // The error correction codewords are the remainder after dividing the data codewords\n\t // by a generator polynomial\n\t var remainder = Polynomial.mod(paddedData, this.genPoly);\n\n\t // return EC data blocks (last n byte, where n is the degree of genPoly)\n\t // If coefficients number in remainder are less than genPoly degree,\n\t // pad with 0s to the left to reach the needed number of coefficients\n\t var start = this.degree - remainder.length;\n\t if (start > 0) {\n\t var buff = BufferUtil.alloc(this.degree);\n\t remainder.copy(buff, start);\n\n\t return buff\n\t }\n\n\t return remainder\n\t};\n\n\tmodule.exports = ReedSolomonEncoder;\n\n\t},{\"../utils/buffer\":28,\"./polynomial\":16,\"buffer\":30}],19:[function(require,module,exports){\n\tvar numeric = '[0-9]+';\n\tvar alphanumeric = '[A-Z $%*+\\\\-./:]+';\n\tvar kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n\t '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n\t '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n\t '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+';\n\tkanji = kanji.replace(/u/g, '\\\\u');\n\n\tvar byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+';\n\n\texports.KANJI = new RegExp(kanji, 'g');\n\texports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g');\n\texports.BYTE = new RegExp(byte, 'g');\n\texports.NUMERIC = new RegExp(numeric, 'g');\n\texports.ALPHANUMERIC = new RegExp(alphanumeric, 'g');\n\n\tvar TEST_KANJI = new RegExp('^' + kanji + '$');\n\tvar TEST_NUMERIC = new RegExp('^' + numeric + '$');\n\tvar TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$');\n\n\texports.testKanji = function testKanji (str) {\n\t return TEST_KANJI.test(str)\n\t};\n\n\texports.testNumeric = function testNumeric (str) {\n\t return TEST_NUMERIC.test(str)\n\t};\n\n\texports.testAlphanumeric = function testAlphanumeric (str) {\n\t return TEST_ALPHANUMERIC.test(str)\n\t};\n\n\t},{}],20:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\tvar NumericData = require('./numeric-data');\n\tvar AlphanumericData = require('./alphanumeric-data');\n\tvar ByteData = require('./byte-data');\n\tvar KanjiData = require('./kanji-data');\n\tvar Regex = require('./regex');\n\tvar Utils = require('./utils');\n\tvar dijkstra = require('dijkstrajs');\n\n\t/**\n\t * Returns UTF8 byte length\n\t *\n\t * @param {String} str Input string\n\t * @return {Number} Number of byte\n\t */\n\tfunction getStringByteLength (str) {\n\t return unescape(encodeURIComponent(str)).length\n\t}\n\n\t/**\n\t * Get a list of segments of the specified mode\n\t * from a string\n\t *\n\t * @param {Mode} mode Segment mode\n\t * @param {String} str String to process\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction getSegments (regex, mode, str) {\n\t var segments = [];\n\t var result;\n\n\t while ((result = regex.exec(str)) !== null) {\n\t segments.push({\n\t data: result[0],\n\t index: result.index,\n\t mode: mode,\n\t length: result[0].length\n\t });\n\t }\n\n\t return segments\n\t}\n\n\t/**\n\t * Extracts a series of segments with the appropriate\n\t * modes from a string\n\t *\n\t * @param {String} dataStr Input string\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction getSegmentsFromString (dataStr) {\n\t var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr);\n\t var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr);\n\t var byteSegs;\n\t var kanjiSegs;\n\n\t if (Utils.isKanjiModeEnabled()) {\n\t byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr);\n\t kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr);\n\t } else {\n\t byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr);\n\t kanjiSegs = [];\n\t }\n\n\t var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs);\n\n\t return segs\n\t .sort(function (s1, s2) {\n\t return s1.index - s2.index\n\t })\n\t .map(function (obj) {\n\t return {\n\t data: obj.data,\n\t mode: obj.mode,\n\t length: obj.length\n\t }\n\t })\n\t}\n\n\t/**\n\t * Returns how many bits are needed to encode a string of\n\t * specified length with the specified mode\n\t *\n\t * @param {Number} length String length\n\t * @param {Mode} mode Segment mode\n\t * @return {Number} Bit length\n\t */\n\tfunction getSegmentBitsLength (length, mode) {\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return NumericData.getBitsLength(length)\n\t case Mode.ALPHANUMERIC:\n\t return AlphanumericData.getBitsLength(length)\n\t case Mode.KANJI:\n\t return KanjiData.getBitsLength(length)\n\t case Mode.BYTE:\n\t return ByteData.getBitsLength(length)\n\t }\n\t}\n\n\t/**\n\t * Merges adjacent segments which have the same mode\n\t *\n\t * @param {Array} segs Array of object with segments data\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction mergeSegments (segs) {\n\t return segs.reduce(function (acc, curr) {\n\t var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null;\n\t if (prevSeg && prevSeg.mode === curr.mode) {\n\t acc[acc.length - 1].data += curr.data;\n\t return acc\n\t }\n\n\t acc.push(curr);\n\t return acc\n\t }, [])\n\t}\n\n\t/**\n\t * Generates a list of all possible nodes combination which\n\t * will be used to build a segments graph.\n\t *\n\t * Nodes are divided by groups. Each group will contain a list of all the modes\n\t * in which is possible to encode the given text.\n\t *\n\t * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n\t * The group for '12345' will contain then 3 objects, one for each\n\t * possible encoding mode.\n\t *\n\t * Each node represents a possible segment.\n\t *\n\t * @param {Array} segs Array of object with segments data\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction buildNodes (segs) {\n\t var nodes = [];\n\t for (var i = 0; i < segs.length; i++) {\n\t var seg = segs[i];\n\n\t switch (seg.mode) {\n\t case Mode.NUMERIC:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n\t { data: seg.data, mode: Mode.BYTE, length: seg.length }\n\t ]);\n\t break\n\t case Mode.ALPHANUMERIC:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.BYTE, length: seg.length }\n\t ]);\n\t break\n\t case Mode.KANJI:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n\t ]);\n\t break\n\t case Mode.BYTE:\n\t nodes.push([\n\t { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n\t ]);\n\t }\n\t }\n\n\t return nodes\n\t}\n\n\t/**\n\t * Builds a graph from a list of nodes.\n\t * All segments in each node group will be connected with all the segments of\n\t * the next group and so on.\n\t *\n\t * At each connection will be assigned a weight depending on the\n\t * segment's byte length.\n\t *\n\t * @param {Array} nodes Array of object with segments data\n\t * @param {Number} version QR Code version\n\t * @return {Object} Graph of all possible segments\n\t */\n\tfunction buildGraph (nodes, version) {\n\t var table = {};\n\t var graph = {'start': {}};\n\t var prevNodeIds = ['start'];\n\n\t for (var i = 0; i < nodes.length; i++) {\n\t var nodeGroup = nodes[i];\n\t var currentNodeIds = [];\n\n\t for (var j = 0; j < nodeGroup.length; j++) {\n\t var node = nodeGroup[j];\n\t var key = '' + i + j;\n\n\t currentNodeIds.push(key);\n\t table[key] = { node: node, lastCount: 0 };\n\t graph[key] = {};\n\n\t for (var n = 0; n < prevNodeIds.length; n++) {\n\t var prevNodeId = prevNodeIds[n];\n\n\t if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n\t graph[prevNodeId][key] =\n\t getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n\t getSegmentBitsLength(table[prevNodeId].lastCount, node.mode);\n\n\t table[prevNodeId].lastCount += node.length;\n\t } else {\n\t if (table[prevNodeId]) table[prevNodeId].lastCount = node.length;\n\n\t graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n\t 4 + Mode.getCharCountIndicator(node.mode, version); // switch cost\n\t }\n\t }\n\t }\n\n\t prevNodeIds = currentNodeIds;\n\t }\n\n\t for (n = 0; n < prevNodeIds.length; n++) {\n\t graph[prevNodeIds[n]]['end'] = 0;\n\t }\n\n\t return { map: graph, table: table }\n\t}\n\n\t/**\n\t * Builds a segment from a specified data and mode.\n\t * If a mode is not specified, the more suitable will be used.\n\t *\n\t * @param {String} data Input data\n\t * @param {Mode | String} modesHint Data mode\n\t * @return {Segment} Segment\n\t */\n\tfunction buildSingleSegment (data, modesHint) {\n\t var mode;\n\t var bestMode = Mode.getBestModeForData(data);\n\n\t mode = Mode.from(modesHint, bestMode);\n\n\t // Make sure data can be encoded\n\t if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n\t throw new Error('\"' + data + '\"' +\n\t ' cannot be encoded with mode ' + Mode.toString(mode) +\n\t '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n\t }\n\n\t // Use Mode.BYTE if Kanji support is disabled\n\t if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n\t mode = Mode.BYTE;\n\t }\n\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return new NumericData(data)\n\n\t case Mode.ALPHANUMERIC:\n\t return new AlphanumericData(data)\n\n\t case Mode.KANJI:\n\t return new KanjiData(data)\n\n\t case Mode.BYTE:\n\t return new ByteData(data)\n\t }\n\t}\n\n\t/**\n\t * Builds a list of segments from an array.\n\t * Array can contain Strings or Objects with segment's info.\n\t *\n\t * For each item which is a string, will be generated a segment with the given\n\t * string and the more appropriate encoding mode.\n\t *\n\t * For each item which is an object, will be generated a segment with the given\n\t * data and mode.\n\t * Objects must contain at least the property \"data\".\n\t * If property \"mode\" is not present, the more suitable mode will be used.\n\t *\n\t * @param {Array} array Array of objects with segments data\n\t * @return {Array} Array of Segments\n\t */\n\texports.fromArray = function fromArray (array) {\n\t return array.reduce(function (acc, seg) {\n\t if (typeof seg === 'string') {\n\t acc.push(buildSingleSegment(seg, null));\n\t } else if (seg.data) {\n\t acc.push(buildSingleSegment(seg.data, seg.mode));\n\t }\n\n\t return acc\n\t }, [])\n\t};\n\n\t/**\n\t * Builds an optimized sequence of segments from a string,\n\t * which will produce the shortest possible bitstream.\n\t *\n\t * @param {String} data Input string\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of segments\n\t */\n\texports.fromString = function fromString (data, version) {\n\t var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled());\n\n\t var nodes = buildNodes(segs);\n\t var graph = buildGraph(nodes, version);\n\t var path = dijkstra.find_path(graph.map, 'start', 'end');\n\n\t var optimizedSegs = [];\n\t for (var i = 1; i < path.length - 1; i++) {\n\t optimizedSegs.push(graph.table[path[i]].node);\n\t }\n\n\t return exports.fromArray(mergeSegments(optimizedSegs))\n\t};\n\n\t/**\n\t * Splits a string in various segments with the modes which\n\t * best represent their content.\n\t * The produced segments are far from being optimized.\n\t * The output of this function is only used to estimate a QR Code version\n\t * which may contain the data.\n\t *\n\t * @param {string} data Input string\n\t * @return {Array} Array of segments\n\t */\n\texports.rawSplit = function rawSplit (data) {\n\t return exports.fromArray(\n\t getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\t )\n\t};\n\n\t},{\"./alphanumeric-data\":3,\"./byte-data\":6,\"./kanji-data\":12,\"./mode\":14,\"./numeric-data\":15,\"./regex\":19,\"./utils\":21,\"dijkstrajs\":31}],21:[function(require,module,exports){\n\tvar toSJISFunction;\n\tvar CODEWORDS_COUNT = [\n\t 0, // Not used\n\t 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n\t 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n\t 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n\t 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n\t];\n\n\t/**\n\t * Returns the QR Code size for the specified version\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} size of QR code\n\t */\n\texports.getSymbolSize = function getSymbolSize (version) {\n\t if (!version) throw new Error('\"version\" cannot be null or undefined')\n\t if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n\t return version * 4 + 17\n\t};\n\n\t/**\n\t * Returns the total number of codewords used to store data and EC information.\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} Data length in bits\n\t */\n\texports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n\t return CODEWORDS_COUNT[version]\n\t};\n\n\t/**\n\t * Encode data with Bose-Chaudhuri-Hocquenghem\n\t *\n\t * @param {Number} data Value to encode\n\t * @return {Number} Encoded value\n\t */\n\texports.getBCHDigit = function (data) {\n\t var digit = 0;\n\n\t while (data !== 0) {\n\t digit++;\n\t data >>>= 1;\n\t }\n\n\t return digit\n\t};\n\n\texports.setToSJISFunction = function setToSJISFunction (f) {\n\t if (typeof f !== 'function') {\n\t throw new Error('\"toSJISFunc\" is not a valid function.')\n\t }\n\n\t toSJISFunction = f;\n\t};\n\n\texports.isKanjiModeEnabled = function () {\n\t return typeof toSJISFunction !== 'undefined'\n\t};\n\n\texports.toSJIS = function toSJIS (kanji) {\n\t return toSJISFunction(kanji)\n\t};\n\n\t},{}],22:[function(require,module,exports){\n\t/**\n\t * Check if QR Code version is valid\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Boolean} true if valid version, false otherwise\n\t */\n\texports.isValid = function isValid (version) {\n\t return !isNaN(version) && version >= 1 && version <= 40\n\t};\n\n\t},{}],23:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\tvar ECCode = require('./error-correction-code');\n\tvar ECLevel = require('./error-correction-level');\n\tvar Mode = require('./mode');\n\tvar VersionCheck = require('./version-check');\n\tvar isArray = require('isarray');\n\n\t// Generator polynomial used to encode version information\n\tvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\n\tvar G18_BCH = Utils.getBCHDigit(G18);\n\n\tfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n\t for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n\t if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n\t return currentVersion\n\t }\n\t }\n\n\t return undefined\n\t}\n\n\tfunction getReservedBitsCount (mode, version) {\n\t // Character count indicator + mode indicator bits\n\t return Mode.getCharCountIndicator(mode, version) + 4\n\t}\n\n\tfunction getTotalBitsFromDataArray (segments, version) {\n\t var totalBits = 0;\n\n\t segments.forEach(function (data) {\n\t var reservedBits = getReservedBitsCount(data.mode, version);\n\t totalBits += reservedBits + data.getBitsLength();\n\t });\n\n\t return totalBits\n\t}\n\n\tfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n\t for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n\t var length = getTotalBitsFromDataArray(segments, currentVersion);\n\t if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n\t return currentVersion\n\t }\n\t }\n\n\t return undefined\n\t}\n\n\t/**\n\t * Returns version number from a value.\n\t * If value is not a valid version, returns defaultValue\n\t *\n\t * @param {Number|String} value QR Code version\n\t * @param {Number} defaultValue Fallback value\n\t * @return {Number} QR Code version number\n\t */\n\texports.from = function from (value, defaultValue) {\n\t if (VersionCheck.isValid(value)) {\n\t return parseInt(value, 10)\n\t }\n\n\t return defaultValue\n\t};\n\n\t/**\n\t * Returns how much data can be stored with the specified QR code version\n\t * and error correction level\n\t *\n\t * @param {Number} version QR Code version (1-40)\n\t * @param {Number} errorCorrectionLevel Error correction level\n\t * @param {Mode} mode Data mode\n\t * @return {Number} Quantity of storable data\n\t */\n\texports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n\t if (!VersionCheck.isValid(version)) {\n\t throw new Error('Invalid QR Code version')\n\t }\n\n\t // Use Byte mode as default\n\t if (typeof mode === 'undefined') mode = Mode.BYTE;\n\n\t // Total codewords for this QR code version (Data + Error correction)\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\n\t // Total number of error correction codewords\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\n\t // Total number of data codewords\n\t var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;\n\n\t if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n\t var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version);\n\n\t // Return max number of storable codewords\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return Math.floor((usableBits / 10) * 3)\n\n\t case Mode.ALPHANUMERIC:\n\t return Math.floor((usableBits / 11) * 2)\n\n\t case Mode.KANJI:\n\t return Math.floor(usableBits / 13)\n\n\t case Mode.BYTE:\n\t default:\n\t return Math.floor(usableBits / 8)\n\t }\n\t};\n\n\t/**\n\t * Returns the minimum version needed to contain the amount of data\n\t *\n\t * @param {Segment} data Segment of data\n\t * @param {Number} [errorCorrectionLevel=H] Error correction level\n\t * @param {Mode} mode Data mode\n\t * @return {Number} QR Code version\n\t */\n\texports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n\t var seg;\n\n\t var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M);\n\n\t if (isArray(data)) {\n\t if (data.length > 1) {\n\t return getBestVersionForMixedData(data, ecl)\n\t }\n\n\t if (data.length === 0) {\n\t return 1\n\t }\n\n\t seg = data[0];\n\t } else {\n\t seg = data;\n\t }\n\n\t return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n\t};\n\n\t/**\n\t * Returns version information with relative error correction bits\n\t *\n\t * The version information is included in QR Code symbols of version 7 or larger.\n\t * It consists of an 18-bit sequence containing 6 data bits,\n\t * with 12 error correction bits calculated using the (18, 6) Golay code.\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} Encoded version info bits\n\t */\n\texports.getEncodedBits = function getEncodedBits (version) {\n\t if (!VersionCheck.isValid(version) || version < 7) {\n\t throw new Error('Invalid QR Code version')\n\t }\n\n\t var d = version << 12;\n\n\t while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n\t d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH));\n\t }\n\n\t return (version << 12) | d\n\t};\n\n\t},{\"./error-correction-code\":7,\"./error-correction-level\":8,\"./mode\":14,\"./utils\":21,\"./version-check\":22,\"isarray\":33}],24:[function(require,module,exports){\n\n\tvar canPromise = require('./can-promise');\n\n\tvar QRCode = require('./core/qrcode');\n\tvar CanvasRenderer = require('./renderer/canvas');\n\tvar SvgRenderer = require('./renderer/svg-tag.js');\n\n\tfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n\t var args = [].slice.call(arguments, 1);\n\t var argsNum = args.length;\n\t var isLastArgCb = typeof args[argsNum - 1] === 'function';\n\n\t if (!isLastArgCb && !canPromise()) {\n\t throw new Error('Callback required as last argument')\n\t }\n\n\t if (isLastArgCb) {\n\t if (argsNum < 2) {\n\t throw new Error('Too few arguments provided')\n\t }\n\n\t if (argsNum === 2) {\n\t cb = text;\n\t text = canvas;\n\t canvas = opts = undefined;\n\t } else if (argsNum === 3) {\n\t if (canvas.getContext && typeof cb === 'undefined') {\n\t cb = opts;\n\t opts = undefined;\n\t } else {\n\t cb = opts;\n\t opts = text;\n\t text = canvas;\n\t canvas = undefined;\n\t }\n\t }\n\t } else {\n\t if (argsNum < 1) {\n\t throw new Error('Too few arguments provided')\n\t }\n\n\t if (argsNum === 1) {\n\t text = canvas;\n\t canvas = opts = undefined;\n\t } else if (argsNum === 2 && !canvas.getContext) {\n\t opts = text;\n\t text = canvas;\n\t canvas = undefined;\n\t }\n\n\t return new Promise(function (resolve, reject) {\n\t try {\n\t var data = QRCode.create(text, opts);\n\t resolve(renderFunc(data, canvas, opts));\n\t } catch (e) {\n\t reject(e);\n\t }\n\t })\n\t }\n\n\t try {\n\t var data = QRCode.create(text, opts);\n\t cb(null, renderFunc(data, canvas, opts));\n\t } catch (e) {\n\t cb(e);\n\t }\n\t}\n\n\texports.create = QRCode.create;\n\texports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render);\n\texports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL);\n\n\t// only svg for now.\n\texports.toString = renderCanvas.bind(null, function (data, _, opts) {\n\t return SvgRenderer.render(data, opts)\n\t});\n\n\t},{\"./can-promise\":1,\"./core/qrcode\":17,\"./renderer/canvas\":25,\"./renderer/svg-tag.js\":26}],25:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tfunction clearCanvas (ctx, canvas, size) {\n\t ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n\t if (!canvas.style) canvas.style = {};\n\t canvas.height = size;\n\t canvas.width = size;\n\t canvas.style.height = size + 'px';\n\t canvas.style.width = size + 'px';\n\t}\n\n\tfunction getCanvasElement () {\n\t try {\n\t return document.createElement('canvas')\n\t } catch (e) {\n\t throw new Error('You need to specify a canvas element')\n\t }\n\t}\n\n\texports.render = function render (qrData, canvas, options) {\n\t var opts = options;\n\t var canvasEl = canvas;\n\n\t if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n\t opts = canvas;\n\t canvas = undefined;\n\t }\n\n\t if (!canvas) {\n\t canvasEl = getCanvasElement();\n\t }\n\n\t opts = Utils.getOptions(opts);\n\t var size = Utils.getImageWidth(qrData.modules.size, opts);\n\n\t var ctx = canvasEl.getContext('2d');\n\t var image = ctx.createImageData(size, size);\n\t Utils.qrToImageData(image.data, qrData, opts);\n\n\t clearCanvas(ctx, canvasEl, size);\n\t ctx.putImageData(image, 0, 0);\n\n\t return canvasEl\n\t};\n\n\texports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n\t var opts = options;\n\n\t if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n\t opts = canvas;\n\t canvas = undefined;\n\t }\n\n\t if (!opts) opts = {};\n\n\t var canvasEl = exports.render(qrData, canvas, opts);\n\n\t var type = opts.type || 'image/png';\n\t var rendererOpts = opts.rendererOpts || {};\n\n\t return canvasEl.toDataURL(type, rendererOpts.quality)\n\t};\n\n\t},{\"./utils\":27}],26:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tfunction getColorAttrib (color, attrib) {\n\t var alpha = color.a / 255;\n\t var str = attrib + '=\"' + color.hex + '\"';\n\n\t return alpha < 1\n\t ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n\t : str\n\t}\n\n\tfunction svgCmd (cmd, x, y) {\n\t var str = cmd + x;\n\t if (typeof y !== 'undefined') str += ' ' + y;\n\n\t return str\n\t}\n\n\tfunction qrToPath (data, size, margin) {\n\t var path = '';\n\t var moveBy = 0;\n\t var newRow = false;\n\t var lineLength = 0;\n\n\t for (var i = 0; i < data.length; i++) {\n\t var col = Math.floor(i % size);\n\t var row = Math.floor(i / size);\n\n\t if (!col && !newRow) newRow = true;\n\n\t if (data[i]) {\n\t lineLength++;\n\n\t if (!(i > 0 && col > 0 && data[i - 1])) {\n\t path += newRow\n\t ? svgCmd('M', col + margin, 0.5 + row + margin)\n\t : svgCmd('m', moveBy, 0);\n\n\t moveBy = 0;\n\t newRow = false;\n\t }\n\n\t if (!(col + 1 < size && data[i + 1])) {\n\t path += svgCmd('h', lineLength);\n\t lineLength = 0;\n\t }\n\t } else {\n\t moveBy++;\n\t }\n\t }\n\n\t return path\n\t}\n\n\texports.render = function render (qrData, options, cb) {\n\t var opts = Utils.getOptions(options);\n\t var size = qrData.modules.size;\n\t var data = qrData.modules.data;\n\t var qrcodesize = size + opts.margin * 2;\n\n\t var bg = !opts.color.light.a\n\t ? ''\n\t : '<path ' + getColorAttrib(opts.color.light, 'fill') +\n\t ' d=\"M0 0h' + qrcodesize + 'v' + qrcodesize + 'H0z\"/>';\n\n\t var path =\n\t '<path ' + getColorAttrib(opts.color.dark, 'stroke') +\n\t ' d=\"' + qrToPath(data, size, opts.margin) + '\"/>';\n\n\t var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"';\n\n\t var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" ';\n\n\t var svgTag = '<svg xmlns=\"http://www.w3.org/2000/svg\" ' + width + viewBox + ' shape-rendering=\"crispEdges\">' + bg + path + '</svg>\\n';\n\n\t if (typeof cb === 'function') {\n\t cb(null, svgTag);\n\t }\n\n\t return svgTag\n\t};\n\n\t},{\"./utils\":27}],27:[function(require,module,exports){\n\tfunction hex2rgba (hex) {\n\t if (typeof hex === 'number') {\n\t hex = hex.toString();\n\t }\n\n\t if (typeof hex !== 'string') {\n\t throw new Error('Color should be defined as hex string')\n\t }\n\n\t var hexCode = hex.slice().replace('#', '').split('');\n\t if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n\t throw new Error('Invalid hex color: ' + hex)\n\t }\n\n\t // Convert from short to long form (fff -> ffffff)\n\t if (hexCode.length === 3 || hexCode.length === 4) {\n\t hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n\t return [c, c]\n\t }));\n\t }\n\n\t // Add default alpha value\n\t if (hexCode.length === 6) hexCode.push('F', 'F');\n\n\t var hexValue = parseInt(hexCode.join(''), 16);\n\n\t return {\n\t r: (hexValue >> 24) & 255,\n\t g: (hexValue >> 16) & 255,\n\t b: (hexValue >> 8) & 255,\n\t a: hexValue & 255,\n\t hex: '#' + hexCode.slice(0, 6).join('')\n\t }\n\t}\n\n\texports.getOptions = function getOptions (options) {\n\t if (!options) options = {};\n\t if (!options.color) options.color = {};\n\n\t var margin = typeof options.margin === 'undefined' ||\n\t options.margin === null ||\n\t options.margin < 0 ? 4 : options.margin;\n\n\t var width = options.width && options.width >= 21 ? options.width : undefined;\n\t var scale = options.scale || 4;\n\n\t return {\n\t width: width,\n\t scale: width ? 4 : scale,\n\t margin: margin,\n\t color: {\n\t dark: hex2rgba(options.color.dark || '#000000ff'),\n\t light: hex2rgba(options.color.light || '#ffffffff')\n\t },\n\t type: options.type,\n\t rendererOpts: options.rendererOpts || {}\n\t }\n\t};\n\n\texports.getScale = function getScale (qrSize, opts) {\n\t return opts.width && opts.width >= qrSize + opts.margin * 2\n\t ? opts.width / (qrSize + opts.margin * 2)\n\t : opts.scale\n\t};\n\n\texports.getImageWidth = function getImageWidth (qrSize, opts) {\n\t var scale = exports.getScale(qrSize, opts);\n\t return Math.floor((qrSize + opts.margin * 2) * scale)\n\t};\n\n\texports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n\t var size = qr.modules.size;\n\t var data = qr.modules.data;\n\t var scale = exports.getScale(size, opts);\n\t var symbolSize = Math.floor((size + opts.margin * 2) * scale);\n\t var scaledMargin = opts.margin * scale;\n\t var palette = [opts.color.light, opts.color.dark];\n\n\t for (var i = 0; i < symbolSize; i++) {\n\t for (var j = 0; j < symbolSize; j++) {\n\t var posDst = (i * symbolSize + j) * 4;\n\t var pxColor = opts.color.light;\n\n\t if (i >= scaledMargin && j >= scaledMargin &&\n\t i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n\t var iSrc = Math.floor((i - scaledMargin) / scale);\n\t var jSrc = Math.floor((j - scaledMargin) / scale);\n\t pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0];\n\t }\n\n\t imgData[posDst++] = pxColor.r;\n\t imgData[posDst++] = pxColor.g;\n\t imgData[posDst++] = pxColor.b;\n\t imgData[posDst] = pxColor.a;\n\t }\n\t }\n\t};\n\n\t},{}],28:[function(require,module,exports){\n\n\tvar isArray = require('isarray');\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances be augmented?\n\t try {\n\t var arr = new Uint8Array(1);\n\t arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }};\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tvar K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT\n\t ? 0x7fffffff\n\t : 0x3fffffff;\n\n\tfunction Buffer (arg, offset, length) {\n\t if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n\t return new Buffer(arg, offset, length)\n\t }\n\n\t if (typeof arg === 'number') {\n\t return allocUnsafe(this, arg)\n\t }\n\n\t return from(this, arg, offset, length)\n\t}\n\n\tif (Buffer.TYPED_ARRAY_SUPPORT) {\n\t Buffer.prototype.__proto__ = Uint8Array.prototype;\n\t Buffer.__proto__ = Uint8Array;\n\n\t // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n\t if (typeof Symbol !== 'undefined' && Symbol.species &&\n\t Buffer[Symbol.species] === Buffer) {\n\t Object.defineProperty(Buffer, Symbol.species, {\n\t value: null,\n\t configurable: true,\n\t enumerable: false,\n\t writable: false\n\t });\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction isnan (val) {\n\t return val !== val // eslint-disable-line no-self-compare\n\t}\n\n\tfunction createBuffer (that, length) {\n\t var buf;\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t buf = new Uint8Array(length);\n\t buf.__proto__ = Buffer.prototype;\n\t } else {\n\t // Fallback: Return an object instance of the Buffer class\n\t buf = that;\n\t if (buf === null) {\n\t buf = new Buffer(length);\n\t }\n\t buf.length = length;\n\t }\n\n\t return buf\n\t}\n\n\tfunction allocUnsafe (that, size) {\n\t var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n\t if (!Buffer.TYPED_ARRAY_SUPPORT) {\n\t for (var i = 0; i < size; ++i) {\n\t buf[i] = 0;\n\t }\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromString (that, string) {\n\t var length = byteLength(string) | 0;\n\t var buf = createBuffer(that, length);\n\n\t var actual = buf.write(string);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (that, array) {\n\t var length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t var buf = createBuffer(that, length);\n\t for (var i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayBuffer (that, array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\\'offset\\' is out of bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\\'length\\' is out of bounds')\n\t }\n\n\t var buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new Uint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new Uint8Array(array, byteOffset);\n\t } else {\n\t buf = new Uint8Array(array, byteOffset, length);\n\t }\n\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t // Return an augmented `Uint8Array` instance, for best performance\n\t buf.__proto__ = Buffer.prototype;\n\t } else {\n\t // Fallback: Return an object instance of the Buffer class\n\t buf = fromArrayLike(that, buf);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromObject (that, obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t var len = checked(obj.length) | 0;\n\t var buf = createBuffer(that, len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj) {\n\t if ((typeof ArrayBuffer !== 'undefined' &&\n\t obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n\t if (typeof obj.length !== 'number' || isnan(obj.length)) {\n\t return createBuffer(that, 0)\n\t }\n\t return fromArrayLike(that, obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(that, obj.data)\n\t }\n\t }\n\n\t throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t var codePoint;\n\t var length = string.length;\n\t var leadSurrogate = null;\n\t var bytes = [];\n\n\t for (var i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction byteLength (string) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n\t (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t string = '' + string;\n\t }\n\n\t var len = string.length;\n\t if (len === 0) return 0\n\n\t return utf8ToBytes(string).length\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t for (var i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction from (that, value, offset, length) {\n\t if (typeof value === 'number') {\n\t throw new TypeError('\"value\" argument must not be a number')\n\t }\n\n\t if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n\t return fromArrayBuffer(that, value, offset, length)\n\t }\n\n\t if (typeof value === 'string') {\n\t return fromString(that, value)\n\t }\n\n\t return fromObject(that, value)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length])\n\t } else if (isFinite(offset)) {\n\t offset = offset | 0;\n\t if (isFinite(length)) {\n\t length = length | 0;\n\t } else {\n\t length = undefined;\n\t }\n\t }\n\n\t var remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t return utf8Write(this, string, offset, length)\n\t};\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t var len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t var newBuf;\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t newBuf.__proto__ = Buffer.prototype;\n\t } else {\n\t var sliceLen = end - start;\n\t newBuf = new Buffer(sliceLen, undefined);\n\t for (var i = 0; i < sliceLen; ++i) {\n\t newBuf[i] = this[i + start];\n\t }\n\t }\n\n\t return newBuf\n\t};\n\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t var len = end - start;\n\t var i;\n\n\t if (this === target && start < targetStart && targetStart < end) {\n\t // descending copy from end\n\t for (i = len - 1; i >= 0; --i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n\t // ascending copy from start\n\t for (i = 0; i < len; ++i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else {\n\t Uint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, start + len),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\tBuffer.prototype.fill = function fill (val, start, end) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t end = this.length;\n\t }\n\t if (val.length === 1) {\n\t var code = val.charCodeAt(0);\n\t if (code < 256) {\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t var i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t var bytes = Buffer.isBuffer(val)\n\t ? val\n\t : new Buffer(val);\n\t var len = bytes.length;\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return createBuffer(null, 0)\n\t }\n\n\t var i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t var buffer = allocUnsafe(null, length);\n\t var pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t var buf = list[i];\n\t if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t buf.copy(buffer, pos);\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tBuffer.byteLength = byteLength;\n\n\tBuffer.prototype._isBuffer = true;\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return !!(b != null && b._isBuffer)\n\t};\n\n\tmodule.exports.alloc = function (size) {\n\t var buffer = new Buffer(size);\n\t buffer.fill(0);\n\t return buffer\n\t};\n\n\tmodule.exports.from = function (data) {\n\t return new Buffer(data)\n\t};\n\n\t},{\"isarray\":33}],29:[function(require,module,exports){\n\n\texports.byteLength = byteLength;\n\texports.toByteArray = toByteArray;\n\texports.fromByteArray = fromByteArray;\n\n\tvar lookup = [];\n\tvar revLookup = [];\n\tvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\n\tvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\tfor (var i = 0, len = code.length; i < len; ++i) {\n\t lookup[i] = code[i];\n\t revLookup[code.charCodeAt(i)] = i;\n\t}\n\n\t// Support decoding URL-safe base64 strings, as Node.js does.\n\t// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\trevLookup['-'.charCodeAt(0)] = 62;\n\trevLookup['_'.charCodeAt(0)] = 63;\n\n\tfunction getLens (b64) {\n\t var len = b64.length;\n\n\t if (len % 4 > 0) {\n\t throw new Error('Invalid string. Length must be a multiple of 4')\n\t }\n\n\t // Trim off extra bytes after placeholder bytes are found\n\t // See: https://github.com/beatgammit/base64-js/issues/42\n\t var validLen = b64.indexOf('=');\n\t if (validLen === -1) validLen = len;\n\n\t var placeHoldersLen = validLen === len\n\t ? 0\n\t : 4 - (validLen % 4);\n\n\t return [validLen, placeHoldersLen]\n\t}\n\n\t// base64 is 4/3 + up to two characters of the original data\n\tfunction byteLength (b64) {\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction _byteLength (b64, validLen, placeHoldersLen) {\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction toByteArray (b64) {\n\t var tmp;\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\n\t var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n\t var curByte = 0;\n\n\t // if there are placeholders, only get up to the last complete 4 chars\n\t var len = placeHoldersLen > 0\n\t ? validLen - 4\n\t : validLen;\n\n\t var i;\n\t for (i = 0; i < len; i += 4) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 18) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 12) |\n\t (revLookup[b64.charCodeAt(i + 2)] << 6) |\n\t revLookup[b64.charCodeAt(i + 3)];\n\t arr[curByte++] = (tmp >> 16) & 0xFF;\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 2) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 2) |\n\t (revLookup[b64.charCodeAt(i + 1)] >> 4);\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 1) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 10) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 4) |\n\t (revLookup[b64.charCodeAt(i + 2)] >> 2);\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t return arr\n\t}\n\n\tfunction tripletToBase64 (num) {\n\t return lookup[num >> 18 & 0x3F] +\n\t lookup[num >> 12 & 0x3F] +\n\t lookup[num >> 6 & 0x3F] +\n\t lookup[num & 0x3F]\n\t}\n\n\tfunction encodeChunk (uint8, start, end) {\n\t var tmp;\n\t var output = [];\n\t for (var i = start; i < end; i += 3) {\n\t tmp =\n\t ((uint8[i] << 16) & 0xFF0000) +\n\t ((uint8[i + 1] << 8) & 0xFF00) +\n\t (uint8[i + 2] & 0xFF);\n\t output.push(tripletToBase64(tmp));\n\t }\n\t return output.join('')\n\t}\n\n\tfunction fromByteArray (uint8) {\n\t var tmp;\n\t var len = uint8.length;\n\t var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\t var parts = [];\n\t var maxChunkLength = 16383; // must be multiple of 3\n\n\t // go through the array every three bytes, we'll deal with trailing stuff later\n\t for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n\t parts.push(encodeChunk(\n\t uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n\t ));\n\t }\n\n\t // pad the end with zeros, but make sure to not forget the extra bytes\n\t if (extraBytes === 1) {\n\t tmp = uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 2] +\n\t lookup[(tmp << 4) & 0x3F] +\n\t '=='\n\t );\n\t } else if (extraBytes === 2) {\n\t tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 10] +\n\t lookup[(tmp >> 4) & 0x3F] +\n\t lookup[(tmp << 2) & 0x3F] +\n\t '='\n\t );\n\t }\n\n\t return parts.join('')\n\t}\n\n\t},{}],30:[function(require,module,exports){\n\n\tvar base64 = require('base64-js');\n\tvar ieee754 = require('ieee754');\n\tvar customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n\t ? Symbol.for('nodejs.util.inspect.custom')\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tvar K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t var arr = new Uint8Array(1);\n\t var proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, Uint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t var buf = new Uint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\t// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n\tif (typeof Symbol !== 'undefined' && Symbol.species != null &&\n\t Buffer[Symbol.species] === Buffer) {\n\t Object.defineProperty(Buffer, Symbol.species, {\n\t value: null,\n\t configurable: true,\n\t enumerable: false,\n\t writable: false\n\t });\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (ArrayBuffer.isView(value)) {\n\t return fromArrayLike(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, ArrayBuffer) ||\n\t (value && isInstance(value.buffer, ArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t var valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t var b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(\n\t value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n\t )\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, Uint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpretted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t var length = byteLength(string, encoding) | 0;\n\t var buf = createBuffer(length);\n\n\t var actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t var length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t var buf = createBuffer(length);\n\t for (var i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t var buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new Uint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new Uint8Array(array, byteOffset);\n\t } else {\n\t buf = new Uint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t var len = checked(obj.length) | 0;\n\t var buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t var x = a.length;\n\t var y = b.length;\n\n\t for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t var i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t var buffer = Buffer.allocUnsafe(length);\n\t var pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t var buf = list[i];\n\t if (isInstance(buf, Uint8Array)) {\n\t buf = Buffer.from(buf);\n\t }\n\t if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t buf.copy(buffer, pos);\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t var len = string.length;\n\t var mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t var loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t var loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t var i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t var len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (var i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t var len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (var i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t var len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (var i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t var length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t var str = '';\n\t var max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return '<Buffer ' + str + '>'\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, Uint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t var x = thisEnd - thisStart;\n\t var y = end - start;\n\t var len = Math.min(x, y);\n\n\t var thisCopy = this.slice(thisStart, thisEnd);\n\t var targetCopy = target.slice(start, end);\n\n\t for (var i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof Uint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t var indexSize = 1;\n\t var arrLength = arr.length;\n\t var valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t var i;\n\t if (dir) {\n\t var foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t var found = true;\n\t for (var j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t var remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t var strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t for (var i = 0; i < length; ++i) {\n\t var parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction latin1Write (buf, string, offset, length) {\n\t return asciiWrite(buf, string, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t var remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t var loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Write(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t var res = [];\n\n\t var i = start;\n\t while (i < end) {\n\t var firstByte = buf[i];\n\t var codePoint = null;\n\t var bytesPerSequence = (firstByte > 0xEF) ? 4\n\t : (firstByte > 0xDF) ? 3\n\t : (firstByte > 0xBF) ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t var len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t var res = '';\n\t var i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t var ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t var ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t var len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t var out = '';\n\t for (var i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t var bytes = buf.slice(start, end);\n\t var res = '';\n\t for (var i = 0; i < bytes.length; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t var len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t var newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var val = this[offset];\n\t var mul = 1;\n\t var i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t var val = this[offset + --byteLength];\n\t var mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var val = this[offset];\n\t var mul = 1;\n\t var i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var i = byteLength;\n\t var mul = 1;\n\t var val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t var val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t var val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t var mul = 1;\n\t var i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t var i = byteLength - 1;\n\t var mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t var limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t var i = 0;\n\t var mul = 1;\n\t var sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t var limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t var i = byteLength - 1;\n\t var mul = 1;\n\t var sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t var len = end - start;\n\n\t if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else if (this === target && start < targetStart && targetStart < end) {\n\t // descending copy from end\n\t for (var i = len - 1; i >= 0; --i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else {\n\t Uint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t var code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t var i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t var bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t var len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t var codePoint;\n\t var length = string.length;\n\t var leadSurrogate = null;\n\t var bytes = [];\n\n\t for (var i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t var byteArray = [];\n\t for (var i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t var c, hi, lo;\n\t var byteArray = [];\n\t for (var i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t for (var i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tvar hexSliceLookupTable = (function () {\n\t var alphabet = '0123456789abcdef';\n\t var table = new Array(256);\n\t for (var i = 0; i < 16; ++i) {\n\t var i16 = i * 16;\n\t for (var j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t},{\"base64-js\":29,\"ieee754\":32}],31:[function(require,module,exports){\n\n\t/******************************************************************************\n\t * Created 2008-08-19.\n\t *\n\t * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n\t *\n\t * Copyright (C) 2008\n\t * Wyatt Baldwin <self@wyattbaldwin.com>\n\t * All rights reserved\n\t *\n\t * Licensed under the MIT license.\n\t *\n\t * http://www.opensource.org/licenses/mit-license.php\n\t *\n\t * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\t * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\t * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\t * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\t * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\t * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n\t * THE SOFTWARE.\n\t *****************************************************************************/\n\tvar dijkstra = {\n\t single_source_shortest_paths: function(graph, s, d) {\n\t // Predecessor map for each node that has been encountered.\n\t // node ID => predecessor node ID\n\t var predecessors = {};\n\n\t // Costs of shortest paths from s to all nodes encountered.\n\t // node ID => cost\n\t var costs = {};\n\t costs[s] = 0;\n\n\t // Costs of shortest paths from s to all nodes encountered; differs from\n\t // `costs` in that it provides easy access to the node that currently has\n\t // the known shortest path from s.\n\t // XXX: Do we actually need both `costs` and `open`?\n\t var open = dijkstra.PriorityQueue.make();\n\t open.push(s, 0);\n\n\t var closest,\n\t u, v,\n\t cost_of_s_to_u,\n\t adjacent_nodes,\n\t cost_of_e,\n\t cost_of_s_to_u_plus_cost_of_e,\n\t cost_of_s_to_v,\n\t first_visit;\n\t while (!open.empty()) {\n\t // In the nodes remaining in graph that have a known cost from s,\n\t // find the node, u, that currently has the shortest path from s.\n\t closest = open.pop();\n\t u = closest.value;\n\t cost_of_s_to_u = closest.cost;\n\n\t // Get nodes adjacent to u...\n\t adjacent_nodes = graph[u] || {};\n\n\t // ...and explore the edges that connect u to those nodes, updating\n\t // the cost of the shortest paths to any or all of those nodes as\n\t // necessary. v is the node across the current edge from u.\n\t for (v in adjacent_nodes) {\n\t if (adjacent_nodes.hasOwnProperty(v)) {\n\t // Get the cost of the edge running from u to v.\n\t cost_of_e = adjacent_nodes[v];\n\n\t // Cost of s to u plus the cost of u to v across e--this is *a*\n\t // cost from s to v that may or may not be less than the current\n\t // known cost to v.\n\t cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n\t // If we haven't visited v yet OR if the current known cost from s to\n\t // v is greater than the new cost we just found (cost of s to u plus\n\t // cost of u to v across e), update v's cost in the cost list and\n\t // update v's predecessor in the predecessor list (it's now u).\n\t cost_of_s_to_v = costs[v];\n\t first_visit = (typeof costs[v] === 'undefined');\n\t if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n\t costs[v] = cost_of_s_to_u_plus_cost_of_e;\n\t open.push(v, cost_of_s_to_u_plus_cost_of_e);\n\t predecessors[v] = u;\n\t }\n\t }\n\t }\n\t }\n\n\t if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n\t var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n\t throw new Error(msg);\n\t }\n\n\t return predecessors;\n\t },\n\n\t extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n\t var nodes = [];\n\t var u = d;\n\t var predecessor;\n\t while (u) {\n\t nodes.push(u);\n\t predecessor = predecessors[u];\n\t u = predecessors[u];\n\t }\n\t nodes.reverse();\n\t return nodes;\n\t },\n\n\t find_path: function(graph, s, d) {\n\t var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n\t return dijkstra.extract_shortest_path_from_predecessor_list(\n\t predecessors, d);\n\t },\n\n\t /**\n\t * A very naive priority queue implementation.\n\t */\n\t PriorityQueue: {\n\t make: function (opts) {\n\t var T = dijkstra.PriorityQueue,\n\t t = {},\n\t key;\n\t opts = opts || {};\n\t for (key in T) {\n\t if (T.hasOwnProperty(key)) {\n\t t[key] = T[key];\n\t }\n\t }\n\t t.queue = [];\n\t t.sorter = opts.sorter || T.default_sorter;\n\t return t;\n\t },\n\n\t default_sorter: function (a, b) {\n\t return a.cost - b.cost;\n\t },\n\n\t /**\n\t * Add a new item to the queue and ensure the highest priority element\n\t * is at the front of the queue.\n\t */\n\t push: function (value, cost) {\n\t var item = {value: value, cost: cost};\n\t this.queue.push(item);\n\t this.queue.sort(this.sorter);\n\t },\n\n\t /**\n\t * Return the highest priority element in the queue.\n\t */\n\t pop: function () {\n\t return this.queue.shift();\n\t },\n\n\t empty: function () {\n\t return this.queue.length === 0;\n\t }\n\t }\n\t};\n\n\n\t// node.js module exports\n\tif (typeof module !== 'undefined') {\n\t module.exports = dijkstra;\n\t}\n\n\t},{}],32:[function(require,module,exports){\n\texports.read = function (buffer, offset, isLE, mLen, nBytes) {\n\t var e, m;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var nBits = -7;\n\t var i = isLE ? (nBytes - 1) : 0;\n\t var d = isLE ? -1 : 1;\n\t var s = buffer[offset + i];\n\n\t i += d;\n\n\t e = s & ((1 << (-nBits)) - 1);\n\t s >>= (-nBits);\n\t nBits += eLen;\n\t for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t m = e & ((1 << (-nBits)) - 1);\n\t e >>= (-nBits);\n\t nBits += mLen;\n\t for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t if (e === 0) {\n\t e = 1 - eBias;\n\t } else if (e === eMax) {\n\t return m ? NaN : ((s ? -1 : 1) * Infinity)\n\t } else {\n\t m = m + Math.pow(2, mLen);\n\t e = e - eBias;\n\t }\n\t return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n\t};\n\n\texports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n\t var e, m, c;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n\t var i = isLE ? 0 : (nBytes - 1);\n\t var d = isLE ? 1 : -1;\n\t var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n\t value = Math.abs(value);\n\n\t if (isNaN(value) || value === Infinity) {\n\t m = isNaN(value) ? 1 : 0;\n\t e = eMax;\n\t } else {\n\t e = Math.floor(Math.log(value) / Math.LN2);\n\t if (value * (c = Math.pow(2, -e)) < 1) {\n\t e--;\n\t c *= 2;\n\t }\n\t if (e + eBias >= 1) {\n\t value += rt / c;\n\t } else {\n\t value += rt * Math.pow(2, 1 - eBias);\n\t }\n\t if (value * c >= 2) {\n\t e++;\n\t c /= 2;\n\t }\n\n\t if (e + eBias >= eMax) {\n\t m = 0;\n\t e = eMax;\n\t } else if (e + eBias >= 1) {\n\t m = ((value * c) - 1) * Math.pow(2, mLen);\n\t e = e + eBias;\n\t } else {\n\t m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n\t e = 0;\n\t }\n\t }\n\n\t for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n\t e = (e << mLen) | m;\n\t eLen += mLen;\n\t for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n\t buffer[offset + i - d] |= s * 128;\n\t};\n\n\t},{}],33:[function(require,module,exports){\n\tvar toString = {}.toString;\n\n\tmodule.exports = Array.isArray || function (arr) {\n\t return toString.call(arr) == '[object Array]';\n\t};\n\n\t},{}]},{},[24])(24)\n\t});\n\n\n\t});\n\n\tvar index = {\n\t name: 'qrcode',\n\t props: {\n\t /**\n\t * The value of the QR code.\n\t */\n\t value: null,\n\n\t /**\n\t * The options for the QR code generator.\n\t * {@link https://github.com/soldair/node-qrcode#qr-code-options}\n\t */\n\t options: Object,\n\n\t /**\n\t * The tag name of the component's root element.\n\t */\n\t tag: {\n\t type: String,\n\t default: 'canvas'\n\t }\n\t },\n\t render: function render(createElement) {\n\t return createElement(this.tag, this.$slots.default);\n\t },\n\t watch: {\n\t $props: {\n\t deep: true,\n\t immediate: true,\n\n\t /**\n\t * Update the QR code when props changed.\n\t */\n\t handler: function handler() {\n\t if (this.$el) {\n\t this.generate();\n\t }\n\t }\n\t }\n\t },\n\t methods: {\n\t /**\n\t * Generate QR code.\n\t */\n\t generate: function generate() {\n\t var _this = this;\n\n\t var options = this.options,\n\t tag = this.tag;\n\t var value = String(this.value);\n\n\t if (tag === 'canvas') {\n\t qrcode.toCanvas(this.$el, value, options, function (error) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\t });\n\t } else if (tag === 'img') {\n\t qrcode.toDataURL(value, options, function (error, url) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\n\t _this.$el.src = url;\n\t });\n\t } else {\n\t qrcode.toString(value, options, function (error, string) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\n\t _this.$el.innerHTML = string;\n\t });\n\t }\n\t }\n\t },\n\t mounted: function mounted() {\n\t this.generate();\n\t }\n\t};\n\n\treturn index;\n\n})));\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\n opacity: 0;\n}\n.linked-icons[data-v-42733c12] {\n display: flex;\n}\n.linked-icons img[data-v-42733c12] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-42733c12]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-42733c12] {\n display: none;\n}\n.popovermenu.open[data-v-42733c12] {\n display: block;\n}\nli.collection-list-item[data-v-42733c12] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-42733c12] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-42733c12] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-42733c12] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-42733c12] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-42733c12] {\n animation: shake-42733c12 0.6s 1 linear;\n}\n@keyframes shake-42733c12 {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}.collection-list *[data-v-8ebb2593] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-8ebb2593] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-8ebb2593] {\n margin-top: auto;\n}\n#collection-select-container[data-v-8ebb2593] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-8ebb2593] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-8ebb2593]:hover {\n opacity: 1;\n}\np.hint[data-v-8ebb2593] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-8ebb2593] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-8ebb2593] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-8ebb2593] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-8ebb2593] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-8ebb2593] {\n padding: 4px;\n}\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\n opacity: 0;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,6BAA6B;AAC/B;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,YAAY;EACZ,cAAc;EACd,4BAA4B;EAC5B,2BAA2B;EAC3B,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,eAAe;EACf,YAAY;EACZ,eAAe;EACf,2BAA2B;AAC7B;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,YAAY;EACZ,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,6CAA6C;AAC/C;AACA;EACE,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,aAAa;EACb,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,YAAY;EACZ,YAAY;EACZ,4BAA4B;EAC5B,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,kBAAkB;AACpB;AACA;EACE,uBAAuB;EACvB,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,YAAY;AACd;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,2BAA2B;AAC/B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,yBAAyB;AAC7B;AACA,CAAC;EACC,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,SAAS;AACX;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,oCAAoC;EACpC,mBAAmB;AACrB;AACA;EACE,WAAW;EACX,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,8CAA8C;EAC9C,gBAAgB;AAClB;;AAEA,qCAAqC;AACrC;EACE,cAAc;EACd,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;EACd,2DAA2D;AAC7D;AACA;EACE,YAAY;AACd;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,UAAU;AACZ\",\"sourcesContent\":[\".fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\\n transition: opacity 0.3s ease;\\n}\\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\\n opacity: 0;\\n}\\n.linked-icons[data-v-42733c12] {\\n display: flex;\\n}\\n.linked-icons img[data-v-42733c12] {\\n padding: 12px;\\n height: 44px;\\n display: block;\\n background-repeat: no-repeat;\\n background-position: center;\\n opacity: 0.7;\\n}\\n.linked-icons img[data-v-42733c12]:hover {\\n opacity: 1;\\n}\\n.popovermenu[data-v-42733c12] {\\n display: none;\\n}\\n.popovermenu.open[data-v-42733c12] {\\n display: block;\\n}\\nli.collection-list-item[data-v-42733c12] {\\n flex-wrap: wrap;\\n height: auto;\\n cursor: pointer;\\n margin-bottom: 0 !important;\\n}\\nli.collection-list-item .collection-avatar[data-v-42733c12] {\\n margin-top: 6px;\\n}\\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\\n flex-basis: 10%;\\n flex-grow: 1;\\n display: flex;\\n}\\nli.collection-list-item .collection-item-name[data-v-42733c12] {\\n padding: 12px 9px;\\n}\\nli.collection-list-item input[data-v-42733c12] {\\n margin-top: 4px;\\n border-color: var(--color-border-maxcontrast);\\n}\\nli.collection-list-item input[type=text][data-v-42733c12] {\\n flex-grow: 1;\\n}\\nli.collection-list-item .error[data-v-42733c12] {\\n flex-basis: 100%;\\n width: 100%;\\n}\\nli.collection-list-item .resource-list-details[data-v-42733c12] {\\n flex-basis: 100%;\\n width: 100%;\\n}\\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\\n display: flex;\\n margin-left: 44px;\\n border-radius: 3px;\\n cursor: pointer;\\n}\\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\\n background-color: var(--color-background-dark);\\n}\\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\\n flex-grow: 1;\\n padding: 3px;\\n max-width: calc(100% - 30px);\\n display: flex;\\n}\\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\\n display: inline-block;\\n vertical-align: top;\\n margin-right: 10px;\\n}\\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n position: relative;\\n vertical-align: top;\\n white-space: nowrap;\\n flex-grow: 1;\\n padding: 4px;\\n}\\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\\n width: 24px;\\n height: 24px;\\n}\\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\\n opacity: 0.7;\\n}\\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\\n opacity: 1;\\n}\\n.shouldshake[data-v-42733c12] {\\n animation: shake-42733c12 0.6s 1 linear;\\n}\\n@keyframes shake-42733c12 {\\n0% {\\n transform: translate(15px);\\n}\\n20% {\\n transform: translate(-15px);\\n}\\n40% {\\n transform: translate(7px);\\n}\\n60% {\\n transform: translate(-7px);\\n}\\n80% {\\n transform: translate(3px);\\n}\\n100% {\\n transform: translate(0px);\\n}\\n}.collection-list *[data-v-8ebb2593] {\\n box-sizing: border-box;\\n}\\n.collection-list > li[data-v-8ebb2593] {\\n display: flex;\\n align-items: start;\\n gap: 12px;\\n}\\n.collection-list > li > .avatar[data-v-8ebb2593] {\\n margin-top: auto;\\n}\\n#collection-select-container[data-v-8ebb2593] {\\n display: flex;\\n flex-direction: column;\\n}\\n.v-select span.avatar[data-v-8ebb2593] {\\n display: block;\\n padding: 16px;\\n opacity: 0.7;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.v-select span.avatar[data-v-8ebb2593]:hover {\\n opacity: 1;\\n}\\np.hint[data-v-8ebb2593] {\\n z-index: 1;\\n margin-top: -16px;\\n padding: 8px 8px;\\n color: var(--color-text-maxcontrast);\\n line-height: normal;\\n}\\ndiv.avatar[data-v-8ebb2593] {\\n width: 32px;\\n height: 32px;\\n margin: 0;\\n padding: 8px;\\n background-color: var(--color-background-dark);\\n margin-top: 30px;\\n}\\n\\n/** TODO provide white icon in core */\\n.icon-projects[data-v-8ebb2593] {\\n display: block;\\n padding: 8px;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.option__wrapper[data-v-8ebb2593] {\\n display: flex;\\n}\\n.option__wrapper .avatar[data-v-8ebb2593] {\\n display: block;\\n background-color: var(--color-background-darker) !important;\\n}\\n.option__wrapper .option__title[data-v-8ebb2593] {\\n padding: 4px;\\n}\\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\\n transition: opacity 0.5s;\\n}\\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\\n opacity: 0;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-e994747e]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-e994747e]{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-e994747e]{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-e994747e],.sharing-entry__summary__desc small[data-v-e994747e]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-e994747e]{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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-32cb91ce]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-32cb91ce]{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-32cb91ce]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-32cb91ce]{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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__internal .avatar-external[data-v-1d9a7cfa]{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-1d9a7cfa]{opacity:1;color:var(--color-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,0BAAA\",\"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-success);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-3d033992]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-3d033992]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-3d033992]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-3d033992]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-3d033992]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-3d033992]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-3d033992] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-3d033992]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-3d033992]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-3d033992],.sharing-entry .action-item~.sharing-entry__loading[data-v-3d033992]{margin-inline-start:0}.sharing-entry .icon-checkmark-color[data-v-3d033992]{opacity:1;color:var(--color-success)}.qr-code-dialog[data-v-3d033992]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-3d033992]{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,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAKF,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,sDACC,SAAA,CACA,0BAAA,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}\\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&: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.icon-checkmark-color {\\n\\t\\topacity: 1;\\n\\t\\tcolor: var(--color-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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.share-select[data-v-be1cd266]{display:block}.share-select[data-v-be1cd266] .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-be1cd266] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-be1cd266] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-be1cd266] .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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-4c49edf4]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-4c49edf4]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-4c49edf4]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-4c49edf4]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-4c49edf4]{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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharingTabDetailsView[data-v-db4347b0]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-db4347b0]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-db4347b0]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-db4347b0]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-db4347b0]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-db4347b0]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-db4347b0]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-db4347b0]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-db4347b0]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-db4347b0] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-db4347b0] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-db4347b0] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-db4347b0]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-db4347b0]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-db4347b0]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-db4347b0],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-db4347b0]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-db4347b0]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-db4347b0] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-db4347b0]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-db4347b0]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-db4347b0]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-db4347b0]{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-db4347b0]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-db4347b0]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-db4347b0]: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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__inherited .avatar-shared[data-v-4baa5581]{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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.emptyContentWithSections[data-v-15a4df38]{margin:1rem auto}.sharingTab[data-v-15a4df38]{position:relative;height:100%}.sharingTab__content[data-v-15a4df38]{padding:0 6px}.sharingTab__content section[data-v-15a4df38]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-15a4df38]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-15a4df38]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-15a4df38]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-15a4df38]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-15a4df38]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-15a4df38]{margin:44px 0}.hint-body[data-v-15a4df38]{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,CAEA,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,aAAA,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\\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: 44px 0;\\n\\t}\\n}\\n\\n.hint-body {\\n\\tmax-width: 300px;\\n\\tpadding: var(--border-radius-element);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**!\n * url-search-params-polyfill\n *\n * @author Jerry Bendy (https://github.com/jerrybendy)\n * @licence MIT\n */\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = (function() {\n // #41 Fix issue in RN\n try {\n if (self.URLSearchParams && (new self.URLSearchParams('foo=bar')).get('foo') === 'bar') {\n return self.URLSearchParams;\n }\n } catch (e) {}\n return null;\n })(),\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n isSupportSize = nativeURLSearchParams && 'size' in nativeURLSearchParams.prototype,\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly && isSupportSize) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype['delete'] = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return hasOwnProperty(this [__URLSearchParams__], name);\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var useProxy = self.Proxy && nativeURLSearchParams && (!decodesPlusesCorrectly || !encodesAmpersandsCorrectly || !isSupportObjectConstructor || !isSupportSize);\n var propValue;\n if (useProxy) {\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n propValue = new Proxy(nativeURLSearchParams, {\n construct: function (target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n })\n // Chrome <=60 .toString() on a function proxy got error \"Function.prototype.toString is not generic\"\n propValue.toString = Function.prototype.toString.bind(URLSearchParamsPolyfill);\n } else {\n propValue = URLSearchParamsPolyfill;\n }\n\n /*\n * Apply polyfill to global object and append other prototype into it\n */\n Object.defineProperty(self, 'URLSearchParams', {\n value: propValue\n });\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n // Fix #54, `toString.call(new URLSearchParams)` will return correct value when Proxy not used\n if (!useProxy && self.Symbol) {\n USPProto[self.Symbol.toStringTag] = 'URLSearchParams';\n }\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n if (!('forEach' in USPProto)) {\n USPProto.forEach = function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n }\n\n /**\n * Sort all name-value pairs\n */\n if (!('sort' in USPProto)) {\n USPProto.sort = function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this['delete'](keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n }\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('keys' in USPProto)) {\n USPProto.keys = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('values' in USPProto)) {\n USPProto.values = function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('entries' in USPProto)) {\n USPProto.entries = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n }\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n if (!('size' in USPProto)) {\n Object.defineProperty(USPProto, 'size', {\n get: function () {\n var dict = parseToDict(this.toString())\n if (USPProto === this) {\n throw new TypeError('Illegal invocation at URLSearchParams.invokeGetter')\n }\n return Object.keys(dict).reduce(function (prev, cur) {\n return prev + dict[cur].length;\n }, 0);\n }\n });\n }\n\n function encode(str) {\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return str\n .replace(/[ +]/g, '%20')\n .replace(/(%[a-f0-9]{2})+/ig, function(match) {\n return decodeURIComponent(match);\n });\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n // if `search` is an array, treat it as a sequence\n if (isArray(search)) {\n for (var i = 0; i < search.length; i++) {\n var item = search[i];\n if (isArray(item) && item.length === 2) {\n appendTo(dict, item[0], item[1]);\n } else {\n throw new TypeError(\"Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements\");\n }\n }\n\n } else {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key]);\n }\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n );\n\n // #47 Prevent using `hasOwnProperty` as a property name\n if (hasOwnProperty(dict, name)) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n function isArray(val) {\n return !!val && '[object Array]' === Object.prototype.toString.call(val);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTab\",class:{ 'icon-loading': _vm.loading }},[(_vm.error)?_c('div',{staticClass:\"emptycontent\",class:{ emptyContentWithSections: _vm.sections.length > 0 }},[_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,\"display-name\":_vm.sharedWithMe.displayName}})]},proxy:true}],null,false,3197855346)},'SharingEntrySimple',_vm.sharedWithMe,false))],1):_vm._e(),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Internal shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"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}])})]},proxy:true}])},[_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)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"reshare\":_vm.reshare,\"shares\":_vm.shares,\"placeholder\":_vm.t('files_sharing', 'Share with accounts and teams')},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{ref:\"shareList\",attrs:{\"shares\":_vm.shares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(_vm.canReshare && !_vm.loading)?_c('SharingInherited',{attrs:{\"file-info\":_vm.fileInfo}}):_vm._e(),_vm._v(\" \"),_c('SharingEntryInternal',{attrs:{\"file-info\":_vm.fileInfo}})],1),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'External shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"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}])})]},proxy:true}])},[_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)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"is-external\":true,\"placeholder\":_vm.t('files_sharing', 'Email, federated cloud id'),\"reshare\":_vm.reshare,\"shares\":_vm.shares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingLinkList',{ref:\"linkShareList\",attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"shares\":_vm.linkShares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e()],1),_vm._v(\" \"),(_vm.sections.length > 0 && !_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:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"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,1027936137)},[_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.sections),function(section,index){return _c('div',{key:index,ref:'section-' + index,refInFor:true,staticClass:\"sharingTab__additionalContent\"},[_c(section(_vm.$refs['section-'+index], _vm.fileInfo),{tag:\"component\",attrs:{\"file-info\":_vm.fileInfo}})],1)}),_vm._v(\" \"),(_vm.projectsEnabled)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView && _vm.fileInfo),expression:\"!showSharingDetailsView && fileInfo\"}],staticClass:\"sharingTab__additionalContent\"},[_c('CollectionList',{attrs:{\"id\":`${_vm.fileInfo.id}`,\"type\":\"file\",\"name\":_vm.fileInfo.name}})],1):_vm._e()],2):_vm._e()]),_vm._v(\" \"),(_vm.showSharingDetailsView)?_c('SharingDetailsTab',{attrs:{\"file-info\":_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 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-CJAYjuyf.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-CJAYjuyf.css\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import './assets/index-CJAYjuyf.css';\nimport { t } from \"@nextcloud/l10n\";\nimport NcAvatar from \"@nextcloud/vue/dist/Components/NcAvatar.js\";\nimport NcSelect from \"@nextcloud/vue/dist/Components/NcSelect.js\";\nimport debounce from \"lodash-es/debounce.js\";\nimport NcActions from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport NcActionButton from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport { reactive, set } from \"vue\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nclass CollectionService {\n constructor() {\n this.http = axios;\n }\n listCollection(collectionId) {\n return this.http.get(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }));\n }\n renameCollection(collectionId, collectionName) {\n return this.http.put(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), {\n collectionName\n }).then((result) => {\n return result.data.ocs.data;\n });\n }\n getCollectionsByResource(resourceType, resourceId) {\n return this.http.get(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId })).then((result) => {\n return result.data.ocs.data;\n });\n }\n createCollection(resourceType, resourceId, name) {\n return this.http.post(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId }), {\n name\n }).then((response) => {\n return response.data.ocs.data;\n });\n }\n addResource(collectionId, resourceType, resourceId) {\n resourceId = \"\" + resourceId;\n return this.http.post(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), {\n resourceType,\n resourceId\n }).then((response) => {\n return response.data.ocs.data;\n });\n }\n removeResource(collectionId, resourceType, resourceId) {\n return this.http.delete(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { params: { resourceType, resourceId } }).then((response) => {\n return response.data.ocs.data;\n });\n }\n search(query) {\n return this.http.get(generateOcsUrl(\"collaboration/resources/collections/search/{query}\", { query })).then((response) => {\n return response.data.ocs.data;\n });\n }\n}\nconst service = new CollectionService();\nconst state = reactive({\n collections: []\n});\nconst mutations = {\n addCollections(collections) {\n set(state, \"collections\", collections);\n },\n addCollection(collection) {\n state.collections.push(collection);\n },\n removeCollection(collectionId) {\n set(state, \"collections\", state.collections.filter((item) => item.id !== collectionId));\n },\n updateCollection(collection) {\n const index = state.collections.findIndex((_item) => _item.id === collection.id);\n if (index !== -1) {\n set(state.collections, index, collection);\n } else {\n state.collections.push(collection);\n }\n }\n};\nconst actions = {\n fetchCollectionsByResource({ resourceType, resourceId }) {\n return service.getCollectionsByResource(resourceType, resourceId).then((collections) => {\n mutations.addCollections(collections);\n return collections;\n });\n },\n createCollection({ baseResourceType, baseResourceId, resourceType, resourceId, name }) {\n return service.createCollection(baseResourceType, baseResourceId, name).then((collection) => {\n mutations.addCollection(collection);\n actions.addResourceToCollection({\n collectionId: collection.id,\n resourceType,\n resourceId\n });\n });\n },\n renameCollection({ collectionId, name }) {\n return service.renameCollection(collectionId, name).then((collection) => {\n mutations.updateCollection(collection);\n return collection;\n });\n },\n addResourceToCollection({ collectionId, resourceType, resourceId }) {\n return service.addResource(collectionId, resourceType, resourceId).then((collection) => {\n mutations.updateCollection(collection);\n return collection;\n });\n },\n removeResource({ collectionId, resourceType, resourceId }) {\n return service.removeResource(collectionId, resourceType, resourceId).then((collection) => {\n if (collection.resources.length > 0) {\n mutations.updateCollection(collection);\n } else {\n mutations.removeCollection(collection);\n }\n });\n },\n search(query) {\n return service.search(query);\n }\n};\nfunction normalizeComponent(scriptExports, render3, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render3) {\n options.render = render3;\n options.staticRenderFns = staticRenderFns;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n );\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst _sfc_main$1 = {\n name: \"CollectionListItem\",\n components: {\n NcAvatar,\n NcActions,\n NcActionButton\n },\n props: {\n collection: {\n type: Object,\n default: null\n }\n },\n data() {\n return {\n detailsOpen: false,\n newName: null,\n error: {}\n };\n },\n computed: {\n getIcon() {\n return (resource) => [resource.iconClass];\n },\n typeClass() {\n return (resource) => \"resource-type-\" + resource.type;\n },\n limitedResources() {\n return (collection) => collection.resources ? collection.resources.slice(0, 2) : [];\n },\n iconUrl() {\n return (resource) => {\n if (resource.mimetype) {\n return OC.MimeType.getIconUrl(resource.mimetype);\n }\n if (resource.iconUrl) {\n return resource.iconUrl;\n }\n return \"\";\n };\n }\n },\n methods: {\n t,\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = true;\n },\n hideDetails() {\n this.detailsOpen = false;\n },\n removeResource(collection, resource) {\n actions.removeResource({\n collectionId: collection.id,\n resourceType: resource.type,\n resourceId: resource.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName === \"\") {\n this.newName = null;\n return;\n }\n actions.renameCollection({\n collectionId: this.collection.id,\n name: this.newName\n }).then((collection) => {\n this.newName = null;\n }).catch((e) => {\n this.$set(this.error, \"rename\", t(\"core\", \"Failed to rename the project\"));\n console.error(e);\n setTimeout(() => {\n set(this.error, \"rename\", null);\n }, 3e3);\n });\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"collection-list-item\" }, [_c(\"NcAvatar\", { staticClass: \"collection-avatar\", attrs: { \"display-name\": _vm.collection.name, \"allow-placeholder\": \"\" } }), _vm.newName === null ? _c(\"span\", { staticClass: \"collection-item-name\", attrs: { \"title\": \"\" }, on: { \"click\": _vm.showDetails } }, [_vm._v(_vm._s(_vm.collection.name))]) : _c(\"form\", { class: { \"shouldshake\": _vm.error.rename }, on: { \"submit\": function($event) {\n $event.preventDefault();\n return _vm.renameCollection.apply(null, arguments);\n } } }, [_c(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: _vm.newName, expression: \"newName\" }], attrs: { \"type\": \"text\", \"autocomplete\": \"off\", \"autocapitalize\": \"off\" }, domProps: { \"value\": _vm.newName }, on: { \"input\": function($event) {\n if ($event.target.composing) return;\n _vm.newName = $event.target.value;\n } } }), _c(\"input\", { staticClass: \"icon-confirm\", attrs: { \"type\": \"submit\", \"value\": \"\" } })]), !_vm.detailsOpen && _vm.newName === null ? _c(\"div\", { staticClass: \"linked-icons\" }, _vm._l(_vm.limitedResources(_vm.collection), function(resource) {\n return _c(\"a\", { key: resource.type + \"|\" + resource.id, class: _vm.typeClass(resource), attrs: { \"title\": resource.name, \"href\": resource.link } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource) } })]);\n }), 0) : _vm._e(), _vm.newName === null ? _c(\"span\", { staticClass: \"sharingOptionsGroup\" }, [_c(\"NcActions\", [_c(\"NcActionButton\", { attrs: { \"icon\": \"icon-info\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.toggleDetails.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.detailsOpen ? _vm.t(\"core\", \"Hide details\") : _vm.t(\"core\", \"Show details\")) + \" \")]), _c(\"NcActionButton\", { attrs: { \"icon\": \"icon-rename\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.openRename.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.t(\"core\", \"Rename project\")) + \" \")])], 1)], 1) : _vm._e(), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error.rename ? _c(\"div\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error.rename) + \" \")]) : _vm._e()]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.detailsOpen ? _c(\"ul\", { staticClass: \"resource-list-details\" }, _vm._l(_vm.collection.resources, function(resource) {\n return _c(\"li\", { key: resource.type + \"|\" + resource.id, class: _vm.typeClass(resource) }, [_c(\"a\", { attrs: { \"href\": resource.link } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource) } }), _c(\"span\", { staticClass: \"resource-name\" }, [_vm._v(_vm._s(resource.name || \"\"))])]), _c(\"span\", { staticClass: \"icon-close\", on: { \"click\": function($event) {\n return _vm.removeResource(_vm.collection, resource);\n } } })]);\n }), 0) : _vm._e()])], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"42733c12\",\n null,\n null\n);\nconst CollectionListItem = __component__$1.exports;\nconst METHOD_CREATE_COLLECTION = 0;\nconst METHOD_ADD_TO_COLLECTION = 1;\nconst _debouncedSearch = debounce(\n function(query, loading) {\n if (query !== \"\") {\n loading(true);\n actions.search(query).then((collections) => {\n this.searchCollections = collections;\n }).catch((e) => {\n console.error(\"Failed to search for collections\", e);\n }).finally(() => {\n loading(false);\n });\n }\n },\n 500,\n {}\n);\nconst _sfc_main = {\n name: \"CollectionList\",\n components: {\n CollectionListItem,\n NcAvatar,\n NcSelect\n },\n props: {\n /**\n * Resource type identifier\n */\n type: {\n type: String,\n default: null\n },\n /**\n * Unique id of the resource\n */\n id: {\n type: String,\n default: null\n },\n /**\n * Name of the resource\n */\n name: {\n type: String,\n default: \"\"\n },\n isActive: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n return {\n state\n };\n },\n data() {\n return {\n selectIsOpen: false,\n generatingCodes: false,\n codes: void 0,\n value: null,\n model: {},\n searchCollections: [],\n error: null,\n isSelectOpen: false\n };\n },\n computed: {\n collections() {\n return this.state.collections.filter((collection) => {\n return typeof collection.resources.find((resource) => resource && resource.id === \"\" + this.id && resource.type === this.type) !== \"undefined\";\n });\n },\n placeholder() {\n return this.isSelectOpen ? t(\"core\", \"Type to search for existing projects\") : t(\"core\", \"Add to a project\");\n },\n options() {\n const options = [];\n window.OCP.Collaboration.getTypes().sort().forEach((type) => {\n options.push({\n method: METHOD_CREATE_COLLECTION,\n type,\n title: window.OCP.Collaboration.getLabel(type),\n class: window.OCP.Collaboration.getIcon(type),\n action: () => window.OCP.Collaboration.trigger(type)\n });\n });\n for (const index in this.searchCollections) {\n if (this.collections.findIndex((collection) => collection.id === this.searchCollections[index].id) === -1) {\n options.push({\n method: METHOD_ADD_TO_COLLECTION,\n title: this.searchCollections[index].name,\n collectionId: this.searchCollections[index].id\n });\n }\n }\n return options;\n }\n },\n watch: {\n type() {\n if (this.isActive) {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n },\n id() {\n if (this.isActive) {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n },\n isActive(isActive) {\n if (isActive) {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n }\n },\n mounted() {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n },\n methods: {\n t,\n select(selectedOption, id) {\n if (selectedOption.method === METHOD_CREATE_COLLECTION) {\n selectedOption.action().then((id2) => {\n actions.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: selectedOption.type,\n resourceId: id2,\n name: this.name\n }).catch((e) => {\n this.setError(t(\"core\", \"Failed to create a project\"), e);\n });\n }).catch((e) => {\n console.error(\"No resource selected\", e);\n });\n }\n if (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n actions.addResourceToCollection({\n collectionId: selectedOption.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((e) => {\n this.setError(t(\"core\", \"Failed to add the item to the project\"), e);\n });\n }\n },\n search(query, loading) {\n _debouncedSearch.bind(this)(query, loading);\n },\n showSelect() {\n this.selectIsOpen = true;\n this.$refs.select.$el.focus();\n },\n hideSelect() {\n this.selectIsOpen = false;\n },\n isVueComponent(object) {\n return object._isVue;\n },\n setError(error, e) {\n console.error(error, e);\n this.error = error;\n setTimeout(() => {\n this.error = null;\n }, 5e3);\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _vm.collections && _vm.type && _vm.id ? _c(\"ul\", { staticClass: \"collection-list\", attrs: { \"id\": \"collection-list\" } }, [_c(\"li\", { on: { \"click\": _vm.showSelect } }, [_vm._m(0), _c(\"div\", { attrs: { \"id\": \"collection-select-container\" } }, [_c(\"NcSelect\", { ref: \"select\", attrs: { \"aria-label-combobox\": _vm.t(\"core\", \"Add to a project\"), \"options\": _vm.options, \"placeholder\": _vm.placeholder, \"label\": \"title\", \"limit\": 5 }, on: { \"close\": function($event) {\n _vm.isSelectOpen = false;\n }, \"open\": function($event) {\n _vm.isSelectOpen = true;\n }, \"option:selected\": _vm.select, \"search\": _vm.search }, scopedSlots: _vm._u([{ key: \"selected-option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__desc\" }, [_c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])])];\n } }, { key: \"option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__wrapper\" }, [option.class ? _c(\"span\", { staticClass: \"avatar\", class: option.class }) : option.method !== 2 ? _c(\"NcAvatar\", { attrs: { \"allow-placeholder\": \"\", \"display-name\": option.title } }) : _vm._e(), _c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])], 1)];\n } }], null, false, 2397208459), model: { value: _vm.value, callback: function($$v) {\n _vm.value = $$v;\n }, expression: \"value\" } }, [_c(\"p\", { staticClass: \"hint\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"core\", \"Connect items to a project to make them easier to find\")) + \" \")])])], 1)]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error ? _c(\"li\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error) + \" \")]) : _vm._e()]), _vm._l(_vm.collections, function(collection) {\n return _c(\"CollectionListItem\", { key: collection.id, attrs: { \"collection\": collection } });\n })], 2) : _vm._e();\n};\nvar _sfc_staticRenderFns = [function() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"avatar\" }, [_c(\"span\", { staticClass: \"icon-projects\" })]);\n}];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"8ebb2593\",\n null,\n null\n);\nconst CollectionList = __component__.exports;\nexport {\n CollectionList,\n CollectionListItem\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';\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 * 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 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 // eslint-disable-next-line camelcase\n return this._capabilities?.files_sharing?.sharebymail?.enabled === true\n // eslint-disable-next-line camelcase\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","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('files_sharing')\n .detectUser()\n .build();\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { isFileRequest } from '../services/SharingService';\nexport default class Share {\n _share;\n /**\n * Create the share object\n *\n * @param {object} 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 // 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 (e) {\n console.warn('Could not parse share attributes returned by server', ocsData.attributes);\n }\n }\n ocsData.attributes = ocsData.attributes ?? [];\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 {object} 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 * @return {string} date with YYYY-MM-DD format\n */\n get expireDate() {\n return this._share.expiration;\n }\n /**\n * Set the expiration date\n * @param {string} 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 }\n /**\n * Hide the download button on public page\n */\n set hideDownload(state) {\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 * Password expiration time\n * @return {string} date with YYYY-MM-DD format\n */\n get passwordExpirationTime() {\n return this._share.password_expiration_time;\n }\n /**\n * Password expiration time\n * @param {string} 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 {boolean} 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 * @return {string} '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","/**\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 { Folder, File, Permission, davRemoteURL, davRootPath } from '@nextcloud/files';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport axios from '@nextcloud/axios';\nimport logger from './logger';\nconst headers = {\n 'Content-Type': 'application/json',\n};\nconst ocsEntryToNode = async function (ocsEntry) {\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 ocsEntry.item_type = ocsEntry.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 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 = `${davRemoteURL}${davRootPath}/${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 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,\n permissions: ocsEntry?.item_permissions || ocsEntry?.permissions,\n root: davRootPath,\n attributes: {\n ...ocsEntry,\n 'has-preview': hasPreview,\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 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};\nconst getShares = function (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};\nconst getSharedWithYou = function () {\n return getShares(true);\n};\nconst getSharedWithOthers = function () {\n return getShares();\n};\nconst getRemoteShares = function () {\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};\nconst getPendingShares = function () {\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};\nconst getRemotePendingShares = function () {\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};\nconst getDeletedShares = function () {\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 * @param attributes the share attributes json-encoded array\n */\nexport const 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 * @param nodes Nodes to group\n * @param key The attribute to group by\n */\nconst groupBy = function (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};\nexport const getContents = async (sharedWithYou = true, sharedWithOthers = true, pendingShares = false, deletedshares = false, filterTypes = []) => {\n const promises = [];\n if (sharedWithYou) {\n promises.push(getSharedWithYou(), getRemoteShares());\n }\n if (sharedWithOthers) {\n promises.push(getSharedWithOthers());\n }\n if (pendingShares) {\n promises.push(getPendingShares(), getRemotePendingShares());\n }\n if (deletedshares) {\n promises.push(getDeletedShares());\n }\n const responses = await Promise.all(promises);\n const data = responses.map((response) => response.data.ocs.data).flat();\n let contents = (await Promise.all(data.map(ocsEntryToNode)))\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: `${davRemoteURL}${davRootPath}`,\n owner: getCurrentUser()?.uid || null,\n }),\n contents,\n };\n};\n","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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"sharing-entry\">\n\t\t<slot name=\"avatar\" />\n\t\t<div class=\"sharing-entry__desc\">\n\t\t\t<span class=\"sharing-entry__title\">{{ title }}</span>\n\t\t\t<p v-if=\"subtitle\">\n\t\t\t\t{{ subtitle }}\n\t\t\t</p>\n\t\t</div>\n\t\t<NcActions v-if=\"$slots['default']\"\n\t\t\tref=\"actionsComponent\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:aria-expanded=\"ariaExpandedValue\">\n\t\t\t<slot />\n\t\t</NcActions>\n\t</li>\n</template>\n\n<script>\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\n\nexport default {\n\tname: 'SharingEntrySimple',\n\n\tcomponents: {\n\t\tNcActions,\n\t},\n\n\tprops: {\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\trequired: true,\n\t\t},\n\t\tsubtitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tariaExpanded: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tariaExpandedValue() {\n\t\t\tif (this.ariaExpanded === null) {\n\t\t\t\treturn this.ariaExpanded\n\t\t\t}\n\t\t\treturn this.ariaExpanded ? 'true' : 'false'\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=4c49edf4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=4c49edf4&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=4c49edf4&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=4c49edf4&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 \"4c49edf4\",\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\"},[_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.$slots['default'])?_c('NcActions',{ref:\"actionsComponent\",staticClass:\"sharing-entry__actions\",attrs:{\"menu-align\":\"right\",\"aria-expanded\":_vm.ariaExpandedValue}},[_vm._t(\"default\")],2):_vm._e()],2)\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!./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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<ul>\n\t\t<SharingEntrySimple ref=\"shareEntrySimple\"\n\t\t\tclass=\"sharing-entry__internal\"\n\t\t\t:title=\"t('files_sharing', 'Internal link')\"\n\t\t\t:subtitle=\"internalLinkSubtitle\">\n\t\t\t<template #avatar>\n\t\t\t\t<div class=\"avatar-external icon-external-white\" />\n\t\t\t</template>\n\n\t\t\t<NcActionButton :title=\"copyLinkTooltip\"\n\t\t\t\t:aria-label=\"copyLinkTooltip\"\n\t\t\t\t@click=\"copyLink\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckIcon v-if=\"copied && copySuccess\"\n\t\t\t\t\t\t:size=\"20\"\n\t\t\t\t\t\tclass=\"icon-checkmark-color\" />\n\t\t\t\t\t<ClipboardIcon v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionButton>\n\t\t</SharingEntrySimple>\n\t</ul>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { showSuccess } from '@nextcloud/dialogs'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\n\nimport CheckIcon from 'vue-material-design-icons/Check.vue'\nimport ClipboardIcon from 'vue-material-design-icons/ContentCopy.vue'\n\nimport SharingEntrySimple from './SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingEntryInternal',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tSharingEntrySimple,\n\t\tCheckIcon,\n\t\tClipboardIcon,\n\t},\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},\n\n\tdata() {\n\t\treturn {\n\t\t\tcopied: false,\n\t\t\tcopySuccess: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Get the internal link to this file id\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tinternalLink() {\n\t\t\treturn window.location.protocol + '//' + window.location.host + generateUrl('/f/') + this.fileInfo.id\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcopyLinkTooltip() {\n\t\t\tif (this.copied) {\n\t\t\t\tif (this.copySuccess) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\treturn t('files_sharing', 'Cannot copy, please copy the link manually')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Copy internal link to clipboard')\n\t\t},\n\n\t\tinternalLinkSubtitle() {\n\t\t\tif (this.fileInfo.type === 'dir') {\n\t\t\t\treturn t('files_sharing', 'Only works for people with access to this folder')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Only works for people with access to this file')\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync copyLink() {\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(this.internalLink)\n\t\t\t\tshowSuccess(t('files_sharing', 'Link copied'))\n\t\t\t\tthis.$refs.shareEntrySimple.$refs.actionsComponent.$el.focus()\n\t\t\t\tthis.copySuccess = true\n\t\t\t\tthis.copied = true\n\t\t\t} catch (error) {\n\t\t\t\tthis.copySuccess = false\n\t\t\t\tthis.copied = true\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.copySuccess = false\n\t\t\t\t\tthis.copied = false\n\t\t\t\t}, 4000)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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-success);\n\t}\n}\n</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=1d9a7cfa&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=1d9a7cfa&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=1d9a7cfa&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=1d9a7cfa&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 \"1d9a7cfa\",\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\":\"sharing-search-input\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.isExternal ? _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\":\"sharing-search-input\",\"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: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n// TODO: remove when ie not supported\nimport 'url-search-params-polyfill'\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\nimport Share from '../models/Share.ts'\nimport { emit } from '@nextcloud/event-bus'\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\tconsole.error('Error while creating share', error)\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error creating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error creating the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow 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\tconsole.error('Error while deleting share', error)\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error deleting the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error deleting the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow 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\tconsole.error('Error while updating share', error)\n\t\t\t\tif (error.response.status !== 400) {\n\t\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\t\terrorMessage ? t('files_sharing', 'Error updating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error updating the share'),\n\t\t\t\t\t\t{ type: 'error' },\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst message = error.response.data.ocs.meta.message\n\t\t\t\tthrow new Error(message)\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.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\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\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\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","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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"sharing-search\">\n\t\t<label class=\"hidden-visually\" for=\"sharing-search-input\">\n\t\t\t{{ isExternal ? t('files_sharing', 'Enter external recipients')\n\t\t\t\t: t('files_sharing', 'Search for internal recipients') }}\n\t\t</label>\n\t\t<NcSelect ref=\"select\"\n\t\t\tv-model=\"value\"\n\t\t\tinput-id=\"sharing-search-input\"\n\t\t\tclass=\"sharing-search__input\"\n\t\t\t:disabled=\"!canReshare\"\n\t\t\t:loading=\"loading\"\n\t\t\t:filterable=\"false\"\n\t\t\t:placeholder=\"inputPlaceholder\"\n\t\t\t:clear-search-on-blur=\"() => false\"\n\t\t\t:user-select=\"true\"\n\t\t\t:options=\"options\"\n\t\t\t:label-outside=\"true\"\n\t\t\t@search=\"asyncFind\"\n\t\t\t@option:selected=\"onSelected\">\n\t\t\t<template #no-options=\"{ search }\">\n\t\t\t\t{{ search ? noResultText : placeholder }}\n\t\t\t</template>\n\t\t</NcSelect>\n\t</div>\n</template>\n\n<script>\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport axios from '@nextcloud/axios'\nimport debounce from 'debounce'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\n\nimport Config from '../services/ConfigService.ts'\nimport Share from '../models/Share.ts'\nimport ShareRequests from '../mixins/ShareRequests.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { ShareType } from '@nextcloud/sharing'\n\nexport default {\n\tname: 'SharingInput',\n\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\n\tmixins: [ShareRequests, ShareDetails],\n\n\tprops: {\n\t\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tlinkShares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\treshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tisExternal: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tloading: false,\n\t\t\tquery: '',\n\t\t\trecommendations: [],\n\t\t\tShareSearch: OCA.Sharing.ShareSearch.state,\n\t\t\tsuggestions: [],\n\t\t\tvalue: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Implement ShareSearch\n\t\t * allows external appas to inject new\n\t\t * results into the autocomplete dropdown\n\t\t * Used for the guests app\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalResults() {\n\t\t\treturn this.ShareSearch.results\n\t\t},\n\t\tinputPlaceholder() {\n\t\t\tconst allowRemoteSharing = this.config.isRemoteShareAllowed\n\n\t\t\tif (!this.canReshare) {\n\t\t\t\treturn t('files_sharing', 'Resharing is not allowed')\n\t\t\t}\n\t\t\tif (this.placeholder) {\n\t\t\t\treturn this.placeholder\n\t\t\t}\n\n\t\t\t// We can always search with email addresses for users too\n\t\t\tif (!allowRemoteSharing) {\n\t\t\t\treturn t('files_sharing', 'Name or email …')\n\t\t\t}\n\n\t\t\treturn t('files_sharing', 'Name, email, or Federated Cloud ID …')\n\t\t},\n\n\t\tisValidQuery() {\n\t\t\treturn this.query && this.query.trim() !== '' && this.query.length > this.config.minSearchStringLength\n\t\t},\n\n\t\toptions() {\n\t\t\tif (this.isValidQuery) {\n\t\t\t\treturn this.suggestions\n\t\t\t}\n\t\t\treturn this.recommendations\n\t\t},\n\n\t\tnoResultText() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn t('files_sharing', 'Searching …')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'No elements found.')\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.isExternal) {\n\t\t\t// We can only recommend users, groups etc for internal shares\n\t\t\tthis.getRecommendations()\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonSelected(option) {\n\t\t\tthis.value = null // Reset selected option\n\t\t\tthis.openSharingDetails(option)\n\t\t},\n\n\t\tasync asyncFind(query) {\n\t\t\t// save current query to check if we display\n\t\t\t// recommendations or search results\n\t\t\tthis.query = query.trim()\n\t\t\tif (this.isValidQuery) {\n\t\t\t\t// start loading now to have proper ux feedback\n\t\t\t\t// during the debounce\n\t\t\t\tthis.loading = true\n\t\t\t\tawait this.debounceGetSuggestions(query)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get suggestions\n\t\t *\n\t\t * @param {string} search the search query\n\t\t * @param {boolean} [lookup] search on lookup server\n\t\t */\n\t\tasync getSuggestions(search, lookup = false) {\n\t\t\tthis.loading = true\n\n\t\t\tif (getCapabilities().files_sharing.sharee.query_lookup_default === true) {\n\t\t\t\tlookup = true\n\t\t\t}\n\n\t\t\tlet shareType = []\n\n\t\t\tif (this.isExternal) {\n\t\t\t\tshareType.push(ShareType.Remote)\n\t\t\t\tshareType.push(ShareType.RemoteGroup)\n\t\t\t} else {\n\t\t\t\t// Merge shareType array\n\t\t\t\tshareType = shareType.concat([\n\t\t\t\t\tShareType.User,\n\t\t\t\t\tShareType.Group,\n\t\t\t\t\tShareType.Team,\n\t\t\t\t\tShareType.Room,\n\t\t\t\t\tShareType.Guest,\n\t\t\t\t\tShareType.Deck,\n\t\t\t\t\tShareType.ScienceMesh,\n\t\t\t\t])\n\n\t\t\t}\n\n\t\t\tif (getCapabilities().files_sharing.public.enabled === true && this.isExternal) {\n\t\t\t\tshareType.push(ShareType.Email)\n\t\t\t}\n\n\t\t\tlet request = null\n\t\t\ttry {\n\t\t\t\trequest = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees'), {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat: 'json',\n\t\t\t\t\t\titemType: this.fileInfo.type === 'dir' ? 'folder' : 'file',\n\t\t\t\t\t\tsearch,\n\t\t\t\t\t\tlookup,\n\t\t\t\t\t\tperPage: this.config.maxAutocompleteResults,\n\t\t\t\t\t\tshareType,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error fetching suggestions', error)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst data = request.data.ocs.data\n\t\t\tconst exact = request.data.ocs.data.exact\n\t\t\tdata.exact = [] // removing exact from general results\n\n\t\t\t// flatten array of arrays\n\t\t\tconst rawExactSuggestions = Object.values(exact).reduce((arr, elem) => arr.concat(elem), [])\n\t\t\tconst rawSuggestions = Object.values(data).reduce((arr, elem) => arr.concat(elem), [])\n\n\t\t\t// remove invalid data and format to user-select layout\n\t\t\tconst exactSuggestions = this.filterOutExistingShares(rawExactSuggestions)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t// sort by type so we can get user&groups first...\n\t\t\t\t.sort((a, b) => a.shareType - b.shareType)\n\t\t\tconst suggestions = this.filterOutExistingShares(rawSuggestions)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t// sort by type so we can get user&groups first...\n\t\t\t\t.sort((a, b) => a.shareType - b.shareType)\n\n\t\t\t// lookup clickable entry\n\t\t\t// show if enabled and not already requested\n\t\t\tconst lookupEntry = []\n\t\t\tif (data.lookupEnabled && !lookup) {\n\t\t\t\tlookupEntry.push({\n\t\t\t\t\tid: 'global-lookup',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tdisplayName: t('files_sharing', 'Search globally'),\n\t\t\t\t\tlookup: true,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// if there is a condition specified, filter it\n\t\t\tconst externalResults = this.externalResults.filter(result => !result.condition || result.condition(this))\n\n\t\t\tconst allSuggestions = exactSuggestions.concat(suggestions).concat(externalResults).concat(lookupEntry)\n\n\t\t\t// Count occurrences of display names in order to provide a distinguishable description if needed\n\t\t\tconst nameCounts = allSuggestions.reduce((nameCounts, result) => {\n\t\t\t\tif (!result.displayName) {\n\t\t\t\t\treturn nameCounts\n\t\t\t\t}\n\t\t\t\tif (!nameCounts[result.displayName]) {\n\t\t\t\t\tnameCounts[result.displayName] = 0\n\t\t\t\t}\n\t\t\t\tnameCounts[result.displayName]++\n\t\t\t\treturn nameCounts\n\t\t\t}, {})\n\n\t\t\tthis.suggestions = allSuggestions.map(item => {\n\t\t\t\t// Make sure that items with duplicate displayName get the shareWith applied as a description\n\t\t\t\tif (nameCounts[item.displayName] > 1 && !item.desc) {\n\t\t\t\t\treturn { ...item, desc: item.shareWithDisplayNameUnique }\n\t\t\t\t}\n\t\t\t\treturn item\n\t\t\t})\n\n\t\t\tthis.loading = false\n\t\t\tconsole.info('suggestions', this.suggestions)\n\t\t},\n\n\t\t/**\n\t\t * Debounce getSuggestions\n\t\t *\n\t\t * @param {...*} args the arguments\n\t\t */\n\t\tdebounceGetSuggestions: debounce(function(...args) {\n\t\t\tthis.getSuggestions(...args)\n\t\t}, 300),\n\n\t\t/**\n\t\t * Get the sharing recommendations\n\t\t */\n\t\tasync getRecommendations() {\n\t\t\tthis.loading = true\n\n\t\t\tlet request = null\n\t\t\ttry {\n\t\t\t\trequest = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees_recommended'), {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat: 'json',\n\t\t\t\t\t\titemType: this.fileInfo.type,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error fetching recommendations', error)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Add external results from the OCA.Sharing.ShareSearch api\n\t\t\tconst externalResults = this.externalResults.filter(result => !result.condition || result.condition(this))\n\n\t\t\t// flatten array of arrays\n\t\t\tconst rawRecommendations = Object.values(request.data.ocs.data.exact)\n\t\t\t\t.reduce((arr, elem) => arr.concat(elem), [])\n\n\t\t\t// remove invalid data and format to user-select layout\n\t\t\tthis.recommendations = this.filterOutExistingShares(rawRecommendations)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t.concat(externalResults)\n\n\t\t\tthis.loading = false\n\t\t\tconsole.info('recommendations', this.recommendations)\n\t\t},\n\n\t\t/**\n\t\t * Filter out existing shares from\n\t\t * the provided shares search results\n\t\t *\n\t\t * @param {object[]} shares the array of shares object\n\t\t * @return {object[]}\n\t\t */\n\t\tfilterOutExistingShares(shares) {\n\t\t\treturn shares.reduce((arr, share) => {\n\t\t\t\t// only check proper objects\n\t\t\t\tif (typeof share !== 'object') {\n\t\t\t\t\treturn arr\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tif (share.value.shareType === ShareType.User) {\n\t\t\t\t\t\t// filter out current user\n\t\t\t\t\t\tif (share.value.shareWith === getCurrentUser().uid) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// filter out the owner of the share\n\t\t\t\t\t\tif (this.reshare && share.value.shareWith === this.reshare.owner) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// filter out existing mail shares\n\t\t\t\t\tif (share.value.shareType === ShareType.Email) {\n\t\t\t\t\t\tconst emails = this.linkShares.map(elem => elem.shareWith)\n\t\t\t\t\t\tif (emails.indexOf(share.value.shareWith.trim()) !== -1) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t} else { // filter out existing shares\n\t\t\t\t\t\t// creating an object of uid => type\n\t\t\t\t\t\tconst sharesObj = this.shares.reduce((obj, elem) => {\n\t\t\t\t\t\t\tobj[elem.shareWith] = elem.type\n\t\t\t\t\t\t\treturn obj\n\t\t\t\t\t\t}, {})\n\n\t\t\t\t\t\t// if shareWith is the same and the share type too, ignore it\n\t\t\t\t\t\tconst key = share.value.shareWith.trim()\n\t\t\t\t\t\tif (key in sharesObj\n\t\t\t\t\t\t\t&& sharesObj[key] === share.value.shareType) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// ALL GOOD\n\t\t\t\t\t// let's add the suggestion\n\t\t\t\t\tarr.push(share)\n\t\t\t\t} catch {\n\t\t\t\t\treturn arr\n\t\t\t\t}\n\t\t\t\treturn arr\n\t\t\t}, [])\n\t\t},\n\n\t\t/**\n\t\t * Get the icon based on the share type\n\t\t *\n\t\t * @param {number} type the share type\n\t\t * @return {string} the icon class\n\t\t */\n\t\tshareTypeToIcon(type) {\n\t\t\tswitch (type) {\n\t\t\tcase ShareType.Guest:\n\t\t\t\t// default is a user, other icons are here to differentiate\n\t\t\t\t// themselves from it, so let's not display the user icon\n\t\t\t\t// case ShareType.Remote:\n\t\t\t\t// case ShareType.User:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Guest'),\n\t\t\t\t}\n\t\t\tcase ShareType.RemoteGroup:\n\t\t\tcase ShareType.Group:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-group',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Group'),\n\t\t\t\t}\n\t\t\tcase ShareType.Email:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-mail',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Email'),\n\t\t\t\t}\n\t\t\tcase ShareType.Team:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-teams',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Team'),\n\t\t\t\t}\n\t\t\tcase ShareType.Room:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-room',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Talk conversation'),\n\t\t\t\t}\n\t\t\tcase ShareType.Deck:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-deck',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Deck board'),\n\t\t\t\t}\n\t\t\tcase ShareType.Sciencemesh:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-sciencemesh',\n\t\t\t\t\ticonTitle: t('files_sharing', 'ScienceMesh'),\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn {}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Format shares for the multiselect options\n\t\t *\n\t\t * @param {object} result select entry item\n\t\t * @return {object}\n\t\t */\n\t\tformatForMultiselect(result) {\n\t\t\tlet subname\n\t\t\tif (result.value.shareType === ShareType.User && this.config.shouldAlwaysShowUnique) {\n\t\t\t\tsubname = result.shareWithDisplayNameUnique ?? ''\n\t\t\t} else if ((result.value.shareType === ShareType.Remote\n\t\t\t\t\t|| result.value.shareType === ShareType.RemoteGroup\n\t\t\t) && result.value.server) {\n\t\t\t\tsubname = t('files_sharing', 'on {server}', { server: result.value.server })\n\t\t\t} else if (result.value.shareType === ShareType.Email) {\n\t\t\t\tsubname = result.value.shareWith\n\t\t\t} else {\n\t\t\t\tsubname = result.shareWithDescription ?? ''\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tshareWith: result.value.shareWith,\n\t\t\t\tshareType: result.value.shareType,\n\t\t\t\tuser: result.uuid || result.value.shareWith,\n\t\t\t\tisNoUser: result.value.shareType !== ShareType.User,\n\t\t\t\tdisplayName: result.name || result.label,\n\t\t\t\tsubname,\n\t\t\t\tshareWithDisplayNameUnique: result.shareWithDisplayNameUnique || '',\n\t\t\t\t...this.shareTypeToIcon(result.value.shareType),\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\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</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=9d62dc72&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=9d62dc72&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInput.vue?vue&type=template&id=9d62dc72\"\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=9d62dc72&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","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.shares.length)?_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}],null,false,1184892072)},[_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):_vm._e()\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\nexport const 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 * 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","import { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\nexport const fetchNode = async (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: 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 { ShareType } from '@nextcloud/sharing'\nimport { emit } from '@nextcloud/event-bus'\n\nimport PQueue from 'p-queue'\nimport debounce from 'debounce'\n\nimport Share from '../models/Share.ts'\nimport SharesRequests from './ShareRequests.js'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\n\nimport {\n\tBUNDLED_PERMISSIONS,\n} from '../lib/SharePermissionsToolBox.js'\nimport { fetchNode } from '../../../files/src/services/WebdavClient.ts'\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// 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\thasCustomPermissions() {\n\t\t\tconst bundledPermissions = [\n\t\t\t\tBUNDLED_PERMISSIONS.ALL,\n\t\t\t\tBUNDLED_PERMISSIONS.READ_ONLY,\n\t\t\t\tBUNDLED_PERMISSIONS.FILE_DROP,\n\t\t\t]\n\t\t\treturn !bundledPermissions.includes(this.share.permissions)\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},\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.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\tconst formattedDate = date ? this.formatDateToString(new Date(date)) : ''\n\t\t\tthis.share.expireDate = formattedDate\n\t\t},\n\n\t\t/**\n\t\t * Note changed, let's save it to a different key\n\t\t *\n\t\t * @param {string} note the share note\n\t\t */\n\t\tonNoteChange(note) {\n\t\t\tthis.$set(this.share, 'newNote', note.trim())\n\t\t},\n\n\t\t/**\n\t\t * When the note change, we trim, save and dispatch\n\t\t *\n\t\t */\n\t\tonNoteSubmit() {\n\t\t\tif (this.share.newNote) {\n\t\t\t\tthis.share.note = this.share.newNote\n\t\t\t\tthis.$delete(this.share, 'newNote')\n\t\t\t\tthis.queueUpdate('note')\n\t\t\t}\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\tconsole.debug('Share deleted', this.share.id)\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: this.share.path })\n\t\t\t\t\t: t('files_sharing', 'Folder \"{path}\" has been unshared', { path: this.share.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 (error) {\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<string>} 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\tpropertyNames.forEach(name => {\n\t\t\t\t\tif ((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\tthis.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.indexOf('password') >= 0) {\n\t\t\t\t\t\t\t// reset password state after sync\n\t\t\t\t\t\t\tthis.$delete(this.share, 'newPassword')\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\tthis.$delete(this.errors, propertyNames[0])\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\tthis.onSyncError(propertyNames[0], message)\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\treturn\n\t\t\t}\n\n\t\t\t// This share does not exists on the server yet\n\t\t\tconsole.debug('Updated local 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\tcase 'expireDate':\n\t\t\t\treturn t('files_sharing', 'Share expiry date saved')\n\t\t\tcase 'hideDownload':\n\t\t\t\treturn t('files_sharing', 'Share hide-download state saved')\n\t\t\tcase 'label':\n\t\t\t\treturn t('files_sharing', 'Share label saved')\n\t\t\tcase 'note':\n\t\t\t\treturn t('files_sharing', 'Share note for recipient saved')\n\t\t\tcase 'password':\n\t\t\t\treturn t('files_sharing', 'Share password saved')\n\t\t\tcase 'permissions':\n\t\t\t\treturn t('files_sharing', 'Share permissions saved')\n\t\t\tdefault:\n\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\t// re-open menu if closed\n\t\t\tthis.open = true\n\t\t\tswitch (property) {\n\t\t\tcase 'password':\n\t\t\tcase 'pending':\n\t\t\tcase 'expireDate':\n\t\t\tcase 'label':\n\t\t\tcase 'note': {\n\t\t\t\t// show error\n\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\tlet propertyEl = this.$refs[property]\n\t\t\t\tif (propertyEl) {\n\t\t\t\t\tif (propertyEl.$el) {\n\t\t\t\t\t\tpropertyEl = propertyEl.$el\n\t\t\t\t\t}\n\t\t\t\t\t// focus if there is a focusable action element\n\t\t\t\t\tconst focusable = propertyEl.querySelector('.focusable')\n\t\t\t\t\tif (focusable) {\n\t\t\t\t\t\tfocusable.focus()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'sendPasswordByTalk': {\n\t\t\t\t// show error\n\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t// Restore previous state\n\t\t\t\tthis.share.sendPasswordByTalk = !this.share.sendPasswordByTalk\n\t\t\t\tbreak\n\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!./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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<SharingEntrySimple :key=\"share.id\"\n\t\tclass=\"sharing-entry__inherited\"\n\t\t:title=\"share.shareWithDisplayName\">\n\t\t<template #avatar>\n\t\t\t<NcAvatar :user=\"share.shareWith\"\n\t\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t\tclass=\"sharing-entry__avatar\" />\n\t\t</template>\n\t\t<NcActionText icon=\"icon-user\">\n\t\t\t{{ t('files_sharing', 'Added by {initiator}', { initiator: share.ownerDisplayName }) }}\n\t\t</NcActionText>\n\t\t<NcActionLink v-if=\"share.viaPath && share.viaFileid\"\n\t\t\ticon=\"icon-folder\"\n\t\t\t:href=\"viaFileTargetUrl\">\n\t\t\t{{ t('files_sharing', 'Via “{folder}”', {folder: viaFolderName} ) }}\n\t\t</NcActionLink>\n\t\t<NcActionButton v-if=\"share.canDelete\"\n\t\t\ticon=\"icon-close\"\n\t\t\t@click.prevent=\"onDelete\">\n\t\t\t{{ t('files_sharing', 'Unshare') }}\n\t\t</NcActionButton>\n\t</SharingEntrySimple>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { basename } from '@nextcloud/paths'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js'\nimport NcActionText from '@nextcloud/vue/dist/Components/NcActionText.js'\n\n// eslint-disable-next-line no-unused-vars\nimport Share from '../models/Share.js'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingEntryInherited',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tNcActionLink,\n\t\tNcActionText,\n\t\tNcAvatar,\n\t\tSharingEntrySimple,\n\t},\n\n\tmixins: [SharesMixin],\n\n\tprops: {\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tviaFileTargetUrl() {\n\t\t\treturn generateUrl('/f/{fileid}', {\n\t\t\t\tfileid: this.share.viaFileid,\n\t\t\t})\n\t\t},\n\n\t\tviaFolderName() {\n\t\t\treturn basename(this.share.viaPath)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=32cb91ce&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=32cb91ce&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=32cb91ce&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=32cb91ce&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 \"32cb91ce\",\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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<ul v-if=\"shares.length\" id=\"sharing-inherited-shares\">\n\t\t<!-- Main collapsible entry -->\n\t\t<SharingEntrySimple class=\"sharing-entry__inherited\"\n\t\t\t:title=\"mainTitle\"\n\t\t\t:subtitle=\"subTitle\"\n\t\t\t:aria-expanded=\"showInheritedShares\">\n\t\t\t<template #avatar>\n\t\t\t\t<div class=\"avatar-shared icon-more-white\" />\n\t\t\t</template>\n\t\t\t<NcActionButton :icon=\"showInheritedSharesIcon\"\n\t\t\t\t:aria-label=\"toggleTooltip\"\n\t\t\t\t:title=\"toggleTooltip\"\n\t\t\t\t@click.prevent.stop=\"toggleInheritedShares\" />\n\t\t</SharingEntrySimple>\n\n\t\t<!-- Inherited shares list -->\n\t\t<SharingEntryInherited v-for=\"share in shares\"\n\t\t\t:key=\"share.id\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t:share=\"share\"\n\t\t\t@remove:share=\"removeShare\" />\n\t</ul>\n</template>\n\n<script>\nimport { generateOcsUrl } from '@nextcloud/router'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport axios from '@nextcloud/axios'\n\nimport Share from '../models/Share.ts'\nimport SharingEntryInherited from '../components/SharingEntryInherited.vue'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingInherited',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tSharingEntryInherited,\n\t\tSharingEntrySimple,\n\t},\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},\n\n\tdata() {\n\t\treturn {\n\t\t\tloaded: false,\n\t\t\tloading: false,\n\t\t\tshowInheritedShares: false,\n\t\t\tshares: [],\n\t\t}\n\t},\n\tcomputed: {\n\t\tshowInheritedSharesIcon() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn 'icon-loading-small'\n\t\t\t}\n\t\t\tif (this.showInheritedShares) {\n\t\t\t\treturn 'icon-triangle-n'\n\t\t\t}\n\t\t\treturn 'icon-triangle-s'\n\t\t},\n\t\tmainTitle() {\n\t\t\treturn t('files_sharing', 'Others with access')\n\t\t},\n\t\tsubTitle() {\n\t\t\treturn (this.showInheritedShares && this.shares.length === 0)\n\t\t\t\t? t('files_sharing', 'No other accounts with access found')\n\t\t\t\t: ''\n\t\t},\n\t\ttoggleTooltip() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t\t\t? t('files_sharing', 'Toggle list of others with access to this directory')\n\t\t\t\t: t('files_sharing', 'Toggle list of others with access to this file')\n\t\t},\n\t\tfullPath() {\n\t\t\tconst path = `${this.fileInfo.path}/${this.fileInfo.name}`\n\t\t\treturn path.replace('//', '/')\n\t\t},\n\t},\n\twatch: {\n\t\tfileInfo() {\n\t\t\tthis.resetState()\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Toggle the list view and fetch/reset the state\n\t\t */\n\t\ttoggleInheritedShares() {\n\t\t\tthis.showInheritedShares = !this.showInheritedShares\n\t\t\tif (this.showInheritedShares) {\n\t\t\t\tthis.fetchInheritedShares()\n\t\t\t} else {\n\t\t\t\tthis.resetState()\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Fetch the Inherited Shares array\n\t\t */\n\t\tasync fetchInheritedShares() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst url = generateOcsUrl('apps/files_sharing/api/v1/shares/inherited?format=json&path={path}', { path: this.fullPath })\n\t\t\t\tconst shares = await axios.get(url)\n\t\t\t\tthis.shares = shares.data.ocs.data\n\t\t\t\t\t.map(share => new Share(share))\n\t\t\t\t\t.sort((a, b) => b.createdTime - a.createdTime)\n\t\t\t\tconsole.info(this.shares)\n\t\t\t\tthis.loaded = true\n\t\t\t} catch (error) {\n\t\t\t\tOC.Notification.showTemporary(t('files_sharing', 'Unable to fetch inherited shares'), { type: 'error' })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Reset current component state\n\t\t */\n\t\tresetState() {\n\t\t\tthis.loaded = false\n\t\t\tthis.loading = false\n\t\t\tthis.showInheritedShares = false\n\t\t\tthis.shares = []\n\t\t},\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\tconst index = this.shares.findIndex(item => item === share)\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.splice(index, 1)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=4baa5581&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=4baa5581&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=4baa5581&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=4baa5581&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 \"4baa5581\",\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.hasLinkShares && _vm.canReshare)?_c('SharingEntryLink',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo},on:{\"add:share\":_vm.addShare}}):_vm._e(),_vm._v(\" \"),(_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()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon tune-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TuneIcon\",\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}\n</script>","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\"","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 }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlank.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlank.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon calendar-blank-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CalendarBlankIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./CalendarBlank.vue?vue&type=template&id=41fe7db9\"\nimport script from \"./CalendarBlank.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarBlank.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-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,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\"}},[(_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!./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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon qrcode-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"QrcodeIcon\",\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}\n</script>","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!./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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon exclamation-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ExclamationIcon\",\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}\n</script>","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!./Lock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon lock-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"LockIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Lock.vue?vue&type=template&id=6d856da2\"\nimport script from \"./Lock.vue?vue&type=script&lang=js\"\nexport * from \"./Lock.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-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,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar 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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon check-bold-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CheckBoldIcon\",\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}\n</script>","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 }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon triangle-small-down-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M8 9H16L12 16\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TriangleSmallDownIcon\",\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}\n</script>","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\"","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 \"-!../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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon eye-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EyeOutlineIcon\",\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}\n</script>","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 }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon file-upload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileUploadIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileUpload.vue?vue&type=template&id=caa55e94\"\nimport script from \"./FileUpload.vue?vue&type=script&lang=js\"\nexport * from \"./FileUpload.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 file-upload-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\":\"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\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-->\n<template>\n\t<NcActions ref=\"quickShareActions\"\n\t\tclass=\"share-select\"\n\t\t:menu-name=\"selectedOption\"\n\t\t:aria-label=\"ariaLabel\"\n\t\ttype=\"tertiary-no-background\"\n\t\t:disabled=\"!share.canEdit\"\n\t\tforce-name>\n\t\t<template #icon>\n\t\t\t<DropdownIcon :size=\"15\" />\n\t\t</template>\n\t\t<NcActionButton v-for=\"option in options\"\n\t\t\t:key=\"option.label\"\n\t\t\ttype=\"radio\"\n\t\t\t:model-value=\"option.label === selectedOption\"\n\t\t\tclose-after-click\n\t\t\t@click=\"selectOption(option.label)\">\n\t\t\t<template #icon>\n\t\t\t\t<component :is=\"option.icon\" />\n\t\t\t</template>\n\t\t\t{{ option.label }}\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n\n<script>\nimport { ShareType } from '@nextcloud/sharing'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport DropdownIcon from 'vue-material-design-icons/TriangleSmallDown.vue'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport IconEyeOutline from 'vue-material-design-icons/EyeOutline.vue'\nimport IconPencil from 'vue-material-design-icons/Pencil.vue'\nimport IconFileUpload from 'vue-material-design-icons/FileUpload.vue'\nimport IconTune from 'vue-material-design-icons/Tune.vue'\n\nimport {\n\tBUNDLED_PERMISSIONS,\n\tATOMIC_PERMISSIONS,\n} from '../lib/SharePermissionsToolBox.js'\n\nexport default {\n\tname: 'SharingEntryQuickShareSelect',\n\n\tcomponents: {\n\t\tDropdownIcon,\n\t\tNcActions,\n\t\tNcActionButton,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tprops: {\n\t\tshare: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\temits: ['open-sharing-details'],\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedOption: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tariaLabel() {\n\t\t\treturn t('files_sharing', 'Quick share options, the current selected is \"{selectedOption}\"', { selectedOption: this.selectedOption })\n\t\t},\n\t\tcanViewText() {\n\t\t\treturn t('files_sharing', 'View only')\n\t\t},\n\t\tcanEditText() {\n\t\t\treturn t('files_sharing', 'Can edit')\n\t\t},\n\t\tfileDropText() {\n\t\t\treturn t('files_sharing', 'File request')\n\t\t},\n\t\tcustomPermissionsText() {\n\t\t\treturn t('files_sharing', 'Custom permissions')\n\t\t},\n\t\tpreSelectedOption() {\n\t\t\t// We remove the share permission for the comparison as it is not relevant for bundled permissions.\n\t\t\tif ((this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE) === BUNDLED_PERMISSIONS.READ_ONLY) {\n\t\t\t\treturn this.canViewText\n\t\t\t} else if (this.share.permissions === BUNDLED_PERMISSIONS.ALL || this.share.permissions === BUNDLED_PERMISSIONS.ALL_FILE) {\n\t\t\t\treturn this.canEditText\n\t\t\t} else if ((this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE) === BUNDLED_PERMISSIONS.FILE_DROP) {\n\t\t\t\treturn this.fileDropText\n\t\t\t}\n\n\t\t\treturn this.customPermissionsText\n\n\t\t},\n\t\toptions() {\n\t\t\tconst options = [{\n\t\t\t\tlabel: this.canViewText,\n\t\t\t\ticon: IconEyeOutline,\n\t\t\t}, {\n\t\t\t\tlabel: this.canEditText,\n\t\t\t\ticon: IconPencil,\n\t\t\t}]\n\t\t\tif (this.supportsFileDrop) {\n\t\t\t\toptions.push({\n\t\t\t\t\tlabel: this.fileDropText,\n\t\t\t\t\ticon: IconFileUpload,\n\t\t\t\t})\n\t\t\t}\n\t\t\toptions.push({\n\t\t\t\tlabel: this.customPermissionsText,\n\t\t\t\ticon: IconTune,\n\t\t\t})\n\n\t\t\treturn options\n\t\t},\n\t\tsupportsFileDrop() {\n\t\t\tif (this.isFolder && this.config.isPublicUploadEnabled) {\n\t\t\t\tconst shareType = this.share.type ?? this.share.shareType\n\t\t\t\treturn [ShareType.Link, ShareType.Email].includes(shareType)\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tdropDownPermissionValue() {\n\t\t\tswitch (this.selectedOption) {\n\t\t\tcase this.canEditText:\n\t\t\t\treturn this.isFolder ? BUNDLED_PERMISSIONS.ALL : BUNDLED_PERMISSIONS.ALL_FILE\n\t\t\tcase this.fileDropText:\n\t\t\t\treturn BUNDLED_PERMISSIONS.FILE_DROP\n\t\t\tcase this.customPermissionsText:\n\t\t\t\treturn 'custom'\n\t\t\tcase this.canViewText:\n\t\t\tdefault:\n\t\t\t\treturn BUNDLED_PERMISSIONS.READ_ONLY\n\t\t\t}\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.selectedOption = this.preSelectedOption\n\t},\n\tmounted() {\n\t\tsubscribe('update:share', (share) => {\n\t\t\tif (share.id === this.share.id) {\n\t\t\t\tthis.share.permissions = share.permissions\n\t\t\t\tthis.selectedOption = this.preSelectedOption\n\t\t\t}\n\t\t})\n\t},\n\tunmounted() {\n\t\tunsubscribe('update:share')\n\t},\n\tmethods: {\n\t\tselectOption(optionLabel) {\n\t\t\tthis.selectedOption = optionLabel\n\t\t\tif (optionLabel === this.customPermissionsText) {\n\t\t\t\tthis.$emit('open-sharing-details')\n\t\t\t} else {\n\t\t\t\tthis.share.permissions = this.dropDownPermissionValue\n\t\t\t\tthis.queueUpdate('permissions')\n\t\t\t\t// TODO: Add a focus method to NcActions or configurable returnFocus enabling to NcActionButton with closeAfterClick\n\t\t\t\tthis.$refs.quickShareActions.$refs.menuButton.$el.focus()\n\t\t\t}\n\t\t},\n\t},\n\n}\n</script>\n\n<style lang=\"scss\" scoped>\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</style>\n","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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=be1cd266&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=be1cd266&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=be1cd266&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=be1cd266&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 \"be1cd266\",\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,\"type\":\"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 }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalShareAction.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!./ExternalShareAction.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<Component :is=\"data.is\"\n\t\tv-bind=\"data\"\n\t\tv-on=\"action.handlers\">\n\t\t{{ data.text }}\n\t</Component>\n</template>\n\n<script>\nimport Share from '../models/Share.ts'\n\nexport default {\n\tname: 'ExternalShareAction',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\taction: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\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},\n\n\tcomputed: {\n\t\tdata() {\n\t\t\treturn this.action.data(this)\n\t\t},\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./ExternalShareAction.vue?vue&type=template&id=2812a40a\"\nimport script from \"./ExternalShareAction.vue?vue&type=script&lang=js\"\nexport * from \"./ExternalShareAction.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: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport Config from '../services/ConfigService.ts';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\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 {boolean} 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 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 console.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 self.crypto.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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li :class=\"{ 'sharing-entry--share': share }\"\n\t\tclass=\"sharing-entry sharing-entry__link\">\n\t\t<NcAvatar :is-no-user=\"true\"\n\t\t\t:icon-class=\"isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'\"\n\t\t\tclass=\"sharing-entry__avatar\" />\n\n\t\t<div class=\"sharing-entry__summary\">\n\t\t\t<div class=\"sharing-entry__desc\">\n\t\t\t\t<span class=\"sharing-entry__title\" :title=\"title\">\n\t\t\t\t\t{{ title }}\n\t\t\t\t</span>\n\t\t\t\t<p v-if=\"subtitle\">\n\t\t\t\t\t{{ subtitle }}\n\t\t\t\t</p>\n\t\t\t\t<SharingEntryQuickShareSelect v-if=\"share && share.permissions !== undefined\"\n\t\t\t\t\t:share=\"share\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t@open-sharing-details=\"openShareDetailsForCustomSettings(share)\" />\n\t\t\t</div>\n\n\t\t\t<!-- clipboard -->\n\t\t\t<NcActions v-if=\"share && (!isEmailShareType || isFileRequest) && share.token\" ref=\"copyButton\" class=\"sharing-entry__copy\">\n\t\t\t\t<NcActionButton :aria-label=\"copyLinkTooltip\"\n\t\t\t\t\t:title=\"copyLinkTooltip\"\n\t\t\t\t\t:href=\"shareLink\"\n\t\t\t\t\t@click.prevent=\"copyLink\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<CheckIcon v-if=\"copied && copySuccess\"\n\t\t\t\t\t\t\t:size=\"20\"\n\t\t\t\t\t\t\tclass=\"icon-checkmark-color\" />\n\t\t\t\t\t\t<ClipboardIcon v-else :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcActionButton>\n\t\t\t</NcActions>\n\t\t</div>\n\n\t\t<!-- pending actions -->\n\t\t<NcActions v-if=\"!pending && pendingDataIsMissing\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\t:aria-label=\"actionsTooltip\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:open.sync=\"open\"\n\t\t\t@close=\"onCancel\">\n\t\t\t<!-- pending data menu -->\n\t\t\t<NcActionText v-if=\"errors.pending\"\n\t\t\t\tclass=\"error\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ErrorIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ errors.pending }}\n\t\t\t</NcActionText>\n\t\t\t<NcActionText v-else icon=\"icon-info\">\n\t\t\t\t{{ t('files_sharing', 'Please enter the following required information before creating the share') }}\n\t\t\t</NcActionText>\n\n\t\t\t<!-- password -->\n\t\t\t<NcActionCheckbox v-if=\"pendingPassword\"\n\t\t\t\t:checked.sync=\"isPasswordProtected\"\n\t\t\t\t:disabled=\"config.enforcePasswordForPublicLink || saving\"\n\t\t\t\tclass=\"share-link-password-checkbox\"\n\t\t\t\t@uncheck=\"onPasswordDisable\">\n\t\t\t\t{{ config.enforcePasswordForPublicLink ? t('files_sharing', 'Password protection (enforced)') : t('files_sharing', 'Password protection') }}\n\t\t\t</NcActionCheckbox>\n\n\t\t\t<NcActionInput v-if=\"pendingEnforcedPassword || share.password\"\n\t\t\t\tclass=\"share-link-password\"\n\t\t\t\t:label=\"t('files_sharing', 'Enter a password')\"\n\t\t\t\t:value.sync=\"share.password\"\n\t\t\t\t:disabled=\"saving\"\n\t\t\t\t:required=\"config.enableLinkPasswordByDefault || config.enforcePasswordForPublicLink\"\n\t\t\t\t:minlength=\"isPasswordPolicyEnabled && config.passwordPolicy.minLength\"\n\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t@submit=\"onNewLinkShare(true)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<LockIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionInput>\n\n\t\t\t<NcActionCheckbox v-if=\"pendingDefaultExpirationDate\"\n\t\t\t\t:checked.sync=\"defaultExpirationDateEnabled\"\n\t\t\t\t:disabled=\"pendingEnforcedExpirationDate || saving\"\n\t\t\t\tclass=\"share-link-expiration-date-checkbox\"\n\t\t\t\t@update:model-value=\"onExpirationDateToggleUpdate\">\n\t\t\t\t{{ config.isDefaultExpireDateEnforced ? t('files_sharing', 'Enable link expiration (enforced)') : t('files_sharing', 'Enable link expiration') }}\n\t\t\t</NcActionCheckbox>\n\n\t\t\t<!-- expiration date -->\n\t\t\t<NcActionInput v-if=\"(pendingDefaultExpirationDate || pendingEnforcedExpirationDate) && defaultExpirationDateEnabled\"\n\t\t\t\tdata-cy-files-sharing-expiration-date-input\n\t\t\t\tclass=\"share-link-expire-date\"\n\t\t\t\t:label=\"pendingEnforcedExpirationDate ? t('files_sharing', 'Enter expiration date (enforced)') : t('files_sharing', 'Enter expiration date')\"\n\t\t\t\t:disabled=\"saving\"\n\t\t\t\t:is-native-picker=\"true\"\n\t\t\t\t:hide-label=\"true\"\n\t\t\t\t:value=\"new Date(share.expireDate)\"\n\t\t\t\ttype=\"date\"\n\t\t\t\t:min=\"dateTomorrow\"\n\t\t\t\t:max=\"maxExpirationDateEnforced\"\n\t\t\t\t@change=\"expirationDateChanged($event)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconCalendarBlank :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionInput>\n\n\t\t\t<NcActionButton @click.prevent.stop=\"onNewLinkShare(true)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('files_sharing', 'Create share') }}\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton @click.prevent.stop=\"onCancel\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CloseIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('files_sharing', 'Cancel') }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\n\t\t<!-- actions -->\n\t\t<NcActions v-else-if=\"!loading\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\t:aria-label=\"actionsTooltip\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:open.sync=\"open\"\n\t\t\t@close=\"onMenuClose\">\n\t\t\t<template v-if=\"share\">\n\t\t\t\t<template v-if=\"share.canEdit && canReshare\">\n\t\t\t\t\t<NcActionButton :disabled=\"saving\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t@click.prevent=\"openSharingDetails\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Tune :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ t('files_sharing', 'Customize link') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\n\t\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t\t@click.prevent=\"showQRCode = true\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconQr :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_sharing', 'Generate QR code') }}\n\t\t\t\t</NcActionButton>\n\n\t\t\t\t<NcActionSeparator />\n\n\t\t\t\t<!-- external actions -->\n\t\t\t\t<ExternalShareAction v-for=\"action in externalLinkActions\"\n\t\t\t\t\t:id=\"action.id\"\n\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t:action=\"action\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:share=\"share\" />\n\n\t\t\t\t<!-- external legacy sharing via url (social...) -->\n\t\t\t\t<NcActionLink v-for=\"({ icon, url, name }, actionIndex) in externalLegacyLinkActions\"\n\t\t\t\t\t:key=\"actionIndex\"\n\t\t\t\t\t:href=\"url(shareLink)\"\n\t\t\t\t\t:icon=\"icon\"\n\t\t\t\t\ttarget=\"_blank\">\n\t\t\t\t\t{{ name }}\n\t\t\t\t</NcActionLink>\n\n\t\t\t\t<NcActionButton v-if=\"!isEmailShareType && canReshare\"\n\t\t\t\t\tclass=\"new-share-link\"\n\t\t\t\t\t@click.prevent.stop=\"onNewLinkShare\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<PlusIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_sharing', 'Add another link') }}\n\t\t\t\t</NcActionButton>\n\n\t\t\t\t<NcActionButton v-if=\"share.canDelete\"\n\t\t\t\t\t:disabled=\"saving\"\n\t\t\t\t\t@click.prevent=\"onDelete\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<CloseIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_sharing', 'Unshare') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\n\t\t\t<!-- Create new share -->\n\t\t\t<NcActionButton v-else-if=\"canReshare\"\n\t\t\t\tclass=\"new-share-link\"\n\t\t\t\t:title=\"t('files_sharing', 'Create a new share link')\"\n\t\t\t\t:aria-label=\"t('files_sharing', 'Create a new share link')\"\n\t\t\t\t:icon=\"loading ? 'icon-loading-small' : 'icon-add'\"\n\t\t\t\t@click.prevent.stop=\"onNewLinkShare\" />\n\t\t</NcActions>\n\n\t\t<!-- loading indicator to replace the menu -->\n\t\t<div v-else class=\"icon-loading-small sharing-entry__loading\" />\n\n\t\t<!-- Modal to open whenever we have a QR code -->\n\t\t<NcDialog v-if=\"showQRCode\"\n\t\t\tsize=\"normal\"\n\t\t\t:open.sync=\"showQRCode\"\n\t\t\t:name=\"title\"\n\t\t\t:close-on-click-outside=\"true\"\n\t\t\t@close=\"showQRCode = false\">\n\t\t\t<div class=\"qr-code-dialog\">\n\t\t\t\t<VueQrcode tag=\"img\"\n\t\t\t\t\t:value=\"shareLink\"\n\t\t\t\t\tclass=\"qr-code-dialog__img\" />\n\t\t\t</div>\n\t\t</NcDialog>\n\t</li>\n</template>\n\n<script>\nimport { emit } from '@nextcloud/event-bus'\nimport { generateUrl, getBaseUrl } from '@nextcloud/router'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { ShareType } from '@nextcloud/sharing'\nimport VueQrcode from '@chenfengyuan/vue-qrcode'\nimport moment from '@nextcloud/moment'\nimport Vue from 'vue'\n\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcActionCheckbox from '@nextcloud/vue/dist/Components/NcActionCheckbox.js'\nimport NcActionInput from '@nextcloud/vue/dist/Components/NcActionInput.js'\nimport NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js'\nimport NcActionText from '@nextcloud/vue/dist/Components/NcActionText.js'\nimport NcActionSeparator from '@nextcloud/vue/dist/Components/NcActionSeparator.js'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js'\n\nimport Tune from 'vue-material-design-icons/Tune.vue'\nimport IconCalendarBlank from 'vue-material-design-icons/CalendarBlank.vue'\nimport IconQr from 'vue-material-design-icons/Qrcode.vue'\nimport ErrorIcon from 'vue-material-design-icons/Exclamation.vue'\nimport LockIcon from 'vue-material-design-icons/Lock.vue'\nimport CheckIcon from 'vue-material-design-icons/CheckBold.vue'\nimport ClipboardIcon from 'vue-material-design-icons/ContentCopy.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\nimport PlusIcon from 'vue-material-design-icons/Plus.vue'\n\nimport SharingEntryQuickShareSelect from './SharingEntryQuickShareSelect.vue'\n\nimport ExternalShareAction from './ExternalShareAction.vue'\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport Share from '../models/Share.ts'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default {\n\tname: 'SharingEntryLink',\n\n\tcomponents: {\n\t\tExternalShareAction,\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcActionCheckbox,\n\t\tNcActionInput,\n\t\tNcActionLink,\n\t\tNcActionText,\n\t\tNcActionSeparator,\n\t\tNcAvatar,\n\t\tNcDialog,\n\t\tVueQrcode,\n\t\tTune,\n\t\tIconCalendarBlank,\n\t\tIconQr,\n\t\tErrorIcon,\n\t\tLockIcon,\n\t\tCheckIcon,\n\t\tClipboardIcon,\n\t\tCloseIcon,\n\t\tPlusIcon,\n\t\tSharingEntryQuickShareSelect,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tprops: {\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshareCreationComplete: false,\n\t\t\tcopySuccess: true,\n\t\t\tcopied: false,\n\t\t\tdefaultExpirationDateEnabled: false,\n\n\t\t\t// Are we waiting for password/expiration date\n\t\t\tpending: false,\n\n\t\t\tExternalLegacyLinkActions: OCA.Sharing.ExternalLinkActions.state,\n\t\t\tExternalShareActions: OCA.Sharing.ExternalShareActions.state,\n\t\t\tlogger: getLoggerBuilder()\n\t\t\t\t.setApp('files_sharing')\n\t\t\t\t.detectUser()\n\t\t\t\t.build(),\n\n\t\t\t// tracks whether modal should be opened or not\n\t\t\tshowQRCode: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Link share label\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\ttitle() {\n\t\t\t// if we have a valid existing share (not pending)\n\t\t\tif (this.share && this.share.id) {\n\t\t\t\tif (!this.isShareOwner && this.share.ownerDisplayName) {\n\t\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\t\treturn t('files_sharing', '{shareWith} by {initiator}', {\n\t\t\t\t\t\t\tshareWith: this.share.shareWith,\n\t\t\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\treturn t('files_sharing', 'Shared via link by {initiator}', {\n\t\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (this.share.label && this.share.label.trim() !== '') {\n\t\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\t\tif (this.isFileRequest) {\n\t\t\t\t\t\t\treturn t('files_sharing', 'File request ({label})', {\n\t\t\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn t('files_sharing', 'Mail share ({label})', {\n\t\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\treturn t('files_sharing', 'Share link ({label})', {\n\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\tif (!this.share.shareWith || this.share.shareWith.trim() === '') {\n\t\t\t\t\t\treturn this.isFileRequest\n\t\t\t\t\t\t\t? t('files_sharing', 'File request')\n\t\t\t\t\t\t\t: t('files_sharing', 'Mail share')\n\t\t\t\t\t}\n\t\t\t\t\treturn this.share.shareWith\n\t\t\t\t}\n\n\t\t\t\tif (this.index === null) {\n\t\t\t\t\treturn t('files_sharing', 'Share link')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.index >= 1) {\n\t\t\t\treturn t('files_sharing', 'Share link ({index})', { index: this.index })\n\t\t\t}\n\n\t\t\treturn t('files_sharing', 'Create public link')\n\t\t},\n\n\t\t/**\n\t\t * Show the email on a second line if a label is set for mail shares\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsubtitle() {\n\t\t\tif (this.isEmailShareType\n\t\t\t\t&& this.title !== this.share.shareWith) {\n\t\t\t\treturn this.share.shareWith\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\treturn this.config.enforcePasswordForPublicLink\n\t\t\t\t\t|| !!this.share.password\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\t// TODO: directly save after generation to make sure the share is always protected\n\t\t\t\tVue.set(this.share, 'password', enabled ? await GeneratePassword(true) : '')\n\t\t\t\tVue.set(this.share, 'newPassword', this.share.password)\n\t\t\t},\n\t\t},\n\n\t\tpasswordExpirationTime() {\n\t\t\tif (this.share.passwordExpirationTime === null) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst expirationTime = moment(this.share.passwordExpirationTime)\n\n\t\t\tif (expirationTime.diff(moment()) < 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn expirationTime.fromNow()\n\t\t},\n\n\t\t/**\n\t\t * Is Talk enabled?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisTalkEnabled() {\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Is it possible to protect the password by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalkAvailable() {\n\t\t\treturn this.isPasswordProtected && this.isTalkEnabled\n\t\t},\n\n\t\t/**\n\t\t * Is the current share password protected by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalk: {\n\t\t\tget() {\n\t\t\t\treturn this.share.sendPasswordByTalk\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tthis.share.sendPasswordByTalk = enabled\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Is the current share an email share ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisEmailShareType() {\n\t\t\treturn this.share\n\t\t\t\t? this.share.type === ShareType.Email\n\t\t\t\t: false\n\t\t},\n\n\t\tcanTogglePasswordProtectedByTalkAvailable() {\n\t\t\tif (!this.isPasswordProtected) {\n\t\t\t\t// Makes no sense\n\t\t\t\treturn false\n\t\t\t} else if (this.isEmailShareType && !this.hasUnsavedPassword) {\n\t\t\t\t// For email shares we need a new password in order to enable or\n\t\t\t\t// disable\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Anything else should be fine\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * Pending data.\n\t\t * If the share still doesn't have an id, it is not synced\n\t\t * Therefore this is still not valid and requires user input\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tpendingDataIsMissing() {\n\t\t\treturn this.pendingPassword || this.pendingEnforcedPassword || this.pendingDefaultExpirationDate || this.pendingEnforcedExpirationDate\n\t\t},\n\t\tpendingPassword() {\n\t\t\treturn this.config.enableLinkPasswordByDefault && this.isPendingShare\n\t\t},\n\t\tpendingEnforcedPassword() {\n\t\t\treturn this.config.enforcePasswordForPublicLink && this.isPendingShare\n\t\t},\n\t\tpendingEnforcedExpirationDate() {\n\t\t\treturn this.config.isDefaultExpireDateEnforced && this.isPendingShare\n\t\t},\n\t\tpendingDefaultExpirationDate() {\n\t\t\treturn (this.config.defaultExpirationDate instanceof Date || !isNaN(new Date(this.config.defaultExpirationDate).getTime())) && this.isPendingShare\n\t\t},\n\t\tisPendingShare() {\n\t\t\treturn !!(this.share && !this.share.id)\n\t\t},\n\t\tsharePolicyHasEnforcedProperties() {\n\t\t\treturn this.config.enforcePasswordForPublicLink || this.config.isDefaultExpireDateEnforced\n\t\t},\n\n\t\tenforcedPropertiesMissing() {\n\t\t\t// Ensure share exist and the share policy has required properties\n\t\t\tif (!this.sharePolicyHasEnforcedProperties) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (!this.share) {\n\t\t\t\t// if no share, we can't tell if properties are missing or not so we assume properties are missing\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\t// If share has ID, then this is an incoming link share created from the existing link share\n\t\t\t// Hence assume required properties\n\t\t\tif (this.share.id) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Check if either password or expiration date is missing and enforced\n\t\t\tconst isPasswordMissing = this.config.enforcePasswordForPublicLink && !this.share.password\n\t\t\tconst isExpireDateMissing = this.config.isDefaultExpireDateEnforced && !this.share.expireDate\n\n\t\t\treturn isPasswordMissing || isExpireDateMissing\n\t\t},\n\t\t// if newPassword exists, but is empty, it means\n\t\t// the user deleted the original password\n\t\thasUnsavedPassword() {\n\t\t\treturn this.share.newPassword !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Return the public share link\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tshareLink() {\n\t\t\treturn generateUrl('/s/{token}', { token: this.share.token }, { baseURL: getBaseUrl() })\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message for actions button\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tactionsTooltip() {\n\t\t\treturn t('files_sharing', 'Actions for \"{title}\"', { title: this.title })\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message for copy button\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcopyLinkTooltip() {\n\t\t\tif (this.copied) {\n\t\t\t\tif (this.copySuccess) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\treturn t('files_sharing', 'Cannot copy, please copy the link manually')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Copy public link of \"{title}\" to clipboard', { title: this.title })\n\t\t},\n\n\t\t/**\n\t\t * External additionnai actions for the menu\n\t\t *\n\t\t * @deprecated use OCA.Sharing.ExternalShareActions\n\t\t * @return {Array}\n\t\t */\n\t\texternalLegacyLinkActions() {\n\t\t\treturn this.ExternalLegacyLinkActions.actions\n\t\t},\n\n\t\t/**\n\t\t * Additional actions for the menu\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalLinkActions() {\n\t\t\tconst filterValidAction = (action) => (action.shareType.includes(ShareType.Link) || action.shareType.includes(ShareType.Email)) && !action.advanced\n\t\t\t// filter only the registered actions for said link\n\t\t\treturn this.ExternalShareActions.actions\n\t\t\t\t.filter(filterValidAction)\n\t\t},\n\n\t\tisPasswordPolicyEnabled() {\n\t\t\treturn typeof this.config.passwordPolicy === 'object'\n\t\t},\n\n\t\tcanChangeHideDownload() {\n\t\t\tconst hasDisabledDownload = (shareAttribute) => shareAttribute.scope === 'permissions' && shareAttribute.key === 'download' && shareAttribute.value === false\n\t\t\treturn this.fileInfo.shareAttributes.some(hasDisabledDownload)\n\t\t},\n\n\t\tisFileRequest() {\n\t\t\treturn this.share.isFileRequest\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.defaultExpirationDateEnabled = this.config.defaultExpirationDate instanceof Date\n\t\tif (this.share && this.isNewShare) {\n\t\t\tthis.share.expireDate = this.defaultExpirationDateEnabled ? this.formatDateToString(this.config.defaultExpirationDate) : ''\n\t\t}\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Check if the share requires review\n\t\t *\n\t\t * @param {boolean} shareReviewComplete if the share was reviewed\n\t\t * @return {boolean}\n\t\t */\n\t\tshareRequiresReview(shareReviewComplete) {\n\t\t\t// If a user clicks 'Create share' it means they have reviewed the share\n\t\t\tif (shareReviewComplete) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn this.defaultExpirationDateEnabled || this.config.enableLinkPasswordByDefault\n\t\t},\n\t\t/**\n\t\t * Create a new share link and append it to the list\n\t\t * @param {boolean} shareReviewComplete if the share was reviewed\n\t\t */\n\t\tasync onNewLinkShare(shareReviewComplete = false) {\n\t\t\tthis.logger.debug('onNewLinkShare called (with this.share)', this.share)\n\t\t\t// do not run again if already loading\n\t\t\tif (this.loading) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst shareDefaults = {\n\t\t\t\tshare_type: ShareType.Link,\n\t\t\t}\n\t\t\tif (this.config.isDefaultExpireDateEnforced) {\n\t\t\t\t// default is empty string if not set\n\t\t\t\t// expiration is the share object key, not expireDate\n\t\t\t\tshareDefaults.expiration = this.formatDateToString(this.config.defaultExpirationDate)\n\t\t\t}\n\n\t\t\tthis.logger.debug('Missing required properties?', this.enforcedPropertiesMissing)\n\t\t\t// Do not push yet if we need a password or an expiration date: show pending menu\n\t\t\t// A share would require a review for example is default expiration date is set but not enforced, this allows\n\t\t\t// the user to review the share and remove the expiration date if they don't want it\n\t\t\tif ((this.sharePolicyHasEnforcedProperties && this.enforcedPropertiesMissing) || this.shareRequiresReview(shareReviewComplete === true)) {\n\t\t\t\tthis.pending = true\n\t\t\t\tthis.shareCreationComplete = false\n\n\t\t\t\tthis.logger.info('Share policy requires a review or has mandated properties (password, expirationDate)...')\n\n\t\t\t\t// ELSE, show the pending popovermenu\n\t\t\t\t// if password default or enforced, pre-fill with random one\n\t\t\t\tif (this.config.enableLinkPasswordByDefault || this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\tshareDefaults.password = await GeneratePassword(true)\n\t\t\t\t}\n\n\t\t\t\t// create share & close menu\n\t\t\t\tconst share = new Share(shareDefaults)\n\t\t\t\tconst component = await new Promise(resolve => {\n\t\t\t\t\tthis.$emit('add:share', share, resolve)\n\t\t\t\t})\n\n\t\t\t\t// open the menu on the\n\t\t\t\t// freshly created share component\n\t\t\t\tthis.open = false\n\t\t\t\tthis.pending = false\n\t\t\t\tcomponent.open = true\n\n\t\t\t\t// Nothing is enforced, creating share directly\n\t\t\t} else {\n\n\t\t\t\t// if a share already exists, pushing it\n\t\t\t\tif (this.share && !this.share.id) {\n\t\t\t\t\t// if the share is valid, create it on the server\n\t\t\t\t\tif (this.checkShare(this.share)) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tthis.logger.info('Sending existing share to server', this.share)\n\t\t\t\t\t\t\tawait this.pushNewLinkShare(this.share, true)\n\t\t\t\t\t\t\tthis.shareCreationComplete = true\n\t\t\t\t\t\t\tthis.logger.info('Share created on server', this.share)\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tthis.pending = false\n\t\t\t\t\t\t\tthis.logger.error('Error creating share', e)\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.open = true\n\t\t\t\t\t\tshowError(t('files_sharing', 'Error, please enter proper password and/or expiration date'))\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst share = new Share(shareDefaults)\n\t\t\t\tawait this.pushNewLinkShare(share)\n\t\t\t\tthis.shareCreationComplete = true\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Push a new link share to the server\n\t\t * And update or append to the list\n\t\t * accordingly\n\t\t *\n\t\t * @param {Share} share the new share\n\t\t * @param {boolean} [update] do we update the current share ?\n\t\t */\n\t\tasync pushNewLinkShare(share, update) {\n\t\t\ttry {\n\t\t\t\t// do nothing if we're already pending creation\n\t\t\t\tif (this.loading) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.errors = {}\n\n\t\t\t\tconst path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t\t\tconst options = {\n\t\t\t\t\tpath,\n\t\t\t\t\tshareType: ShareType.Link,\n\t\t\t\t\tpassword: share.password,\n\t\t\t\t\texpireDate: share.expireDate ?? '',\n\t\t\t\t\tattributes: JSON.stringify(this.fileInfo.shareAttributes),\n\t\t\t\t\t// we do not allow setting the publicUpload\n\t\t\t\t\t// before the share creation.\n\t\t\t\t\t// Todo: We also need to fix the createShare method in\n\t\t\t\t\t// lib/Controller/ShareAPIController.php to allow file requests\n\t\t\t\t\t// (currently not supported on create, only update)\n\t\t\t\t}\n\n\t\t\t\tconsole.debug('Creating link share with options', options)\n\t\t\t\tconst newShare = await this.createShare(options)\n\n\t\t\t\tthis.open = false\n\t\t\t\tthis.shareCreationComplete = true\n\t\t\t\tconsole.debug('Link share created', newShare)\n\t\t\t\t// if share already exists, copy link directly on next tick\n\t\t\t\tlet component\n\t\t\t\tif (update) {\n\t\t\t\t\tcomponent = await new Promise(resolve => {\n\t\t\t\t\t\tthis.$emit('update:share', newShare, resolve)\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\t// adding new share to the array and copying link to clipboard\n\t\t\t\t\t// using promise so that we can copy link in the same click function\n\t\t\t\t\t// and avoid firefox copy permissions issue\n\t\t\t\t\tcomponent = await new Promise(resolve => {\n\t\t\t\t\t\tthis.$emit('add:share', newShare, resolve)\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tawait this.getNode()\n\t\t\t\temit('files:node:updated', this.node)\n\n\t\t\t\t// Execute the copy link method\n\t\t\t\t// freshly created share component\n\t\t\t\t// ! somehow does not works on firefox !\n\t\t\t\tif (!this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\t// Only copy the link when the password was not forced,\n\t\t\t\t\t// otherwise the user needs to copy/paste the password before finishing the share.\n\t\t\t\t\tcomponent.copyLink()\n\t\t\t\t}\n\t\t\t\tshowSuccess(t('files_sharing', 'Link share created'))\n\n\t\t\t} catch (data) {\n\t\t\t\tconst message = data?.response?.data?.ocs?.meta?.message\n\t\t\t\tif (!message) {\n\t\t\t\t\tshowError(t('files_sharing', 'Error while creating the share'))\n\t\t\t\t\tconsole.error(data)\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (message.match(/password/i)) {\n\t\t\t\t\tthis.onSyncError('password', message)\n\t\t\t\t} else if (message.match(/date/i)) {\n\t\t\t\t\tthis.onSyncError('expireDate', message)\n\t\t\t\t} else {\n\t\t\t\t\tthis.onSyncError('pending', message)\n\t\t\t\t}\n\t\t\t\tthrow data\n\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t\tthis.shareCreationComplete = true\n\t\t\t}\n\t\t},\n\t\tasync copyLink() {\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(this.shareLink)\n\t\t\t\tshowSuccess(t('files_sharing', 'Link copied'))\n\t\t\t\t// focus and show the tooltip\n\t\t\t\tthis.$refs.copyButton.$el.focus()\n\t\t\t\tthis.copySuccess = true\n\t\t\t\tthis.copied = true\n\t\t\t} catch (error) {\n\t\t\t\tthis.copySuccess = false\n\t\t\t\tthis.copied = true\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.copySuccess = false\n\t\t\t\t\tthis.copied = false\n\t\t\t\t}, 4000)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update newPassword values\n\t\t * of share. If password is set but not newPassword\n\t\t * then the user did not changed the password\n\t\t * If both co-exists, the password have changed and\n\t\t * we show it in plain text.\n\t\t * Then on submit (or menu close), we sync it.\n\t\t *\n\t\t * @param {string} password the changed password\n\t\t */\n\t\tonPasswordChange(password) {\n\t\t\tthis.$set(this.share, 'newPassword', password)\n\t\t},\n\n\t\t/**\n\t\t * Uncheck password protection\n\t\t * We need this method because @update:checked\n\t\t * is ran simultaneously as @uncheck, so we\n\t\t * cannot ensure data is up-to-date\n\t\t */\n\t\tonPasswordDisable() {\n\t\t\tthis.share.password = ''\n\n\t\t\t// reset password state after sync\n\t\t\tthis.$delete(this.share, 'newPassword')\n\n\t\t\t// only update if valid share.\n\t\t\tif (this.share.id) {\n\t\t\t\tthis.queueUpdate('password')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Menu have been closed or password has been submitted.\n\t\t * The only property that does not get\n\t\t * synced automatically is the password\n\t\t * So let's check if we have an unsaved\n\t\t * password.\n\t\t * expireDate is saved on datepicker pick\n\t\t * or close.\n\t\t */\n\t\tonPasswordSubmit() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t\tthis.queueUpdate('password')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update the password along with \"sendPasswordByTalk\".\n\t\t *\n\t\t * If the password was modified the new password is sent; otherwise\n\t\t * updating a mail share would fail, as in that case it is required that\n\t\t * a new password is set when enabling or disabling\n\t\t * \"sendPasswordByTalk\".\n\t\t */\n\t\tonPasswordProtectedByTalkChange() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t}\n\n\t\t\tthis.queueUpdate('sendPasswordByTalk', 'password')\n\t\t},\n\n\t\t/**\n\t\t * Save potential changed data on menu close\n\t\t */\n\t\tonMenuClose() {\n\t\t\tthis.onPasswordSubmit()\n\t\t\tthis.onNoteSubmit()\n\t\t},\n\n\t\t/**\n\t\t * @param enabled True if expiration is enabled\n\t\t */\n\t\tonExpirationDateToggleUpdate(enabled) {\n\t\t\tthis.share.expireDate = enabled ? this.formatDateToString(this.config.defaultExpirationDate) : ''\n\t\t},\n\n\t\texpirationDateChanged(event) {\n\t\t\tconst date = event.target.value\n\t\t\tthis.onExpirationChange(date)\n\t\t\tthis.defaultExpirationDateEnabled = !!date\n\t\t},\n\n\t\t/**\n\t\t * Cancel the share creation\n\t\t * Used in the pending popover\n\t\t */\n\t\tonCancel() {\n\t\t\t// this.share already exists at this point,\n\t\t\t// but is incomplete as not pushed to server\n\t\t\t// YET. We can safely delete the share :)\n\t\t\tif (!this.shareCreationComplete) {\n\t\t\t\tthis.$emit('remove:share', this.share)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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}\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&: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.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-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</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=3d033992&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=3d033992&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=3d033992&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=3d033992&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 \"3d033992\",\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!./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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<ul v-if=\"canLinkShare\"\n\t\t:aria-label=\"t('files_sharing', 'Link shares')\"\n\t\tclass=\"sharing-link-list\">\n\t\t<!-- If no link shares, show the add link default entry -->\n\t\t<SharingEntryLink v-if=\"!hasLinkShares && canReshare\"\n\t\t\t:can-reshare=\"canReshare\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t@add:share=\"addShare\" />\n\n\t\t<!-- Else we display the list -->\n\t\t<template v-if=\"hasShares\">\n\t\t\t<!-- using shares[index] to work with .sync -->\n\t\t\t<SharingEntryLink v-for=\"(share, index) in shares\"\n\t\t\t\t:key=\"share.id\"\n\t\t\t\t:index=\"shares.length > 1 ? index + 1 : null\"\n\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t:share.sync=\"shares[index]\"\n\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t@add:share=\"addShare(...arguments)\"\n\t\t\t\t@update:share=\"awaitForShare(...arguments)\"\n\t\t\t\t@remove:share=\"removeShare\"\n\t\t\t\t@open-sharing-details=\"openSharingDetails(share)\" />\n\t\t</template>\n\t</ul>\n</template>\n\n<script>\nimport { getCapabilities } from '@nextcloud/capabilities'\n\nimport { t } from '@nextcloud/l10n'\n\nimport Share from '../models/Share.js'\nimport SharingEntryLink from '../components/SharingEntryLink.vue'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { ShareType } from '@nextcloud/sharing'\n\nexport default {\n\tname: 'SharingLinkList',\n\n\tcomponents: {\n\t\tSharingEntryLink,\n\t},\n\n\tmixins: [ShareDetails],\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\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcanLinkShare: getCapabilities().files_sharing.public.enabled,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Do we have link shares?\n\t\t * Using this to still show the `new link share`\n\t\t * button regardless of mail shares\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\thasLinkShares() {\n\t\t\treturn this.shares.filter(share => share.type === ShareType.Link).length > 0\n\t\t},\n\n\t\t/**\n\t\t * Do we have any link or email shares?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasShares() {\n\t\t\treturn this.shares.length > 0\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * Add a new share into the link shares list\n\t\t * and return the newly created share component\n\t\t *\n\t\t * @param {Share} share the share to add to the array\n\t\t * @param {Function} resolve a function to run after the share is added and its component initialized\n\t\t */\n\t\taddShare(share, resolve) {\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.push(share)\n\t\t\tthis.awaitForShare(share, resolve)\n\t\t},\n\n\t\t/**\n\t\t * Await for next tick and render after the list updated\n\t\t * Then resolve with the matched vue component of the\n\t\t * provided share object\n\t\t *\n\t\t * @param {Share} share newly created share\n\t\t * @param {Function} resolve a function to execute after\n\t\t */\n\t\tawaitForShare(share, resolve) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tconst newShare = this.$children.find(component => component.share === share)\n\t\t\t\tif (newShare) {\n\t\t\t\t\tresolve(newShare)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\tconst index = this.shares.findIndex(item => item === share)\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.splice(index, 1)\n\t\t},\n\t},\n}\n</script>\n","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)?_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(\" \"),(_vm.share && (!_vm.isEmailShareType || _vm.isFileRequest) && _vm.share.token)?_c('NcActions',{ref:\"copyButton\",staticClass:\"sharing-entry__copy\"},[_c('NcActionButton',{attrs:{\"aria-label\":_vm.copyLinkTooltip,\"title\":_vm.copyLinkTooltip,\"href\":_vm.shareLink},on:{\"click\":function($event){$event.preventDefault();return _vm.copyLink.apply(null, arguments)}},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}],null,false,4269614823)})],1):_vm._e()],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:{\"checked\":_vm.isPasswordProtected,\"disabled\":_vm.config.enforcePasswordForPublicLink || _vm.saving},on:{\"update:checked\":function($event){_vm.isPasswordProtected=$event},\"uncheck\":_vm.onPasswordDisable}},[_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.share.password)?_c('NcActionInput',{staticClass:\"share-link-password\",attrs:{\"label\":_vm.t('files_sharing', 'Enter a password'),\"value\":_vm.share.password,\"disabled\":_vm.saving,\"required\":_vm.config.enableLinkPasswordByDefault || _vm.config.enforcePasswordForPublicLink,\"minlength\":_vm.isPasswordPolicyEnabled && _vm.config.passwordPolicy.minLength,\"autocomplete\":\"new-password\"},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"password\", $event)},\"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)}):_vm._e(),_vm._v(\" \"),(_vm.pendingDefaultExpirationDate)?_c('NcActionCheckbox',{staticClass:\"share-link-expiration-date-checkbox\",attrs:{\"checked\":_vm.defaultExpirationDateEnabled,\"disabled\":_vm.pendingEnforcedExpirationDate || _vm.saving},on:{\"update:checked\":function($event){_vm.defaultExpirationDateEnabled=$event},\"update:model-value\":_vm.onExpirationDateToggleUpdate}},[_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,\"value\":new Date(_vm.share.expireDate),\"type\":\"date\",\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced},on:{\"change\":function($event){return _vm.expirationDateChanged($event)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconCalendarBlank',{attrs:{\"size\":20}})]},proxy:true}],null,false,3418578971)}):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{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},\"close\":_vm.onMenuClose}},[(_vm.share)?[(_vm.share.canEdit && _vm.canReshare)?[_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\")])]:_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.externalLinkActions),function(action){return _c('ExternalShareAction',{key:action.id,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_vm._l((_vm.externalLegacyLinkActions),function({ icon, url, name },actionIndex){return _c('NcActionLink',{key:actionIndex,attrs:{\"href\":url(_vm.shareLink),\"icon\":icon,\"target\":\"_blank\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(name)+\"\\n\\t\\t\\t\")])}),_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('div',{staticClass:\"icon-loading-small 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 { render, staticRenderFns } from \"./SharingLinkList.vue?vue&type=template&id=5f722665\"\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","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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"sharing-entry\">\n\t\t<NcAvatar class=\"sharing-entry__avatar\"\n\t\t\t:is-no-user=\"share.type !== ShareType.User\"\n\t\t\t:user=\"share.shareWith\"\n\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t:menu-position=\"'left'\"\n\t\t\t:url=\"share.shareWithAvatar\" />\n\n\t\t<div class=\"sharing-entry__summary\">\n\t\t\t<component :is=\"share.shareWithLink ? 'a' : 'div'\"\n\t\t\t\t:title=\"tooltip\"\n\t\t\t\t:aria-label=\"tooltip\"\n\t\t\t\t:href=\"share.shareWithLink\"\n\t\t\t\tclass=\"sharing-entry__summary__desc\">\n\t\t\t\t<span>{{ title }}\n\t\t\t\t\t<span v-if=\"!isUnique\" class=\"sharing-entry__summary__desc-unique\"> ({{\n\t\t\t\t\t\tshare.shareWithDisplayNameUnique }})</span>\n\t\t\t\t\t<small v-if=\"hasStatus && share.status.message\">({{ share.status.message }})</small>\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t\t<SharingEntryQuickShareSelect :share=\"share\"\n\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t@open-sharing-details=\"openShareDetailsForCustomSettings(share)\" />\n\t\t</div>\n\t\t<NcButton v-if=\"share.canEdit\"\n\t\t\tclass=\"sharing-entry__action\"\n\t\t\tdata-cy-files-sharing-share-actions\n\t\t\t:aria-label=\"t('files_sharing', 'Open Sharing Details')\"\n\t\t\ttype=\"tertiary\"\n\t\t\t@click=\"openSharingDetails(share)\">\n\t\t\t<template #icon>\n\t\t\t\t<DotsHorizontalIcon :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</li>\n</template>\n\n<script>\nimport { ShareType } from '@nextcloud/sharing'\n\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\n\nimport SharingEntryQuickShareSelect from './SharingEntryQuickShareSelect.vue'\n\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\n\nexport default {\n\tname: 'SharingEntry',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tNcAvatar,\n\t\tDotsHorizontalIcon,\n\t\tNcSelect,\n\t\tSharingEntryQuickShareSelect,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tcomputed: {\n\t\ttitle() {\n\t\t\tlet title = this.share.shareWithDisplayName\n\t\t\tif (this.share.type === ShareType.Group) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'group')})`\n\t\t\t} else if (this.share.type === ShareType.Room) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'conversation')})`\n\t\t\t} else if (this.share.type === ShareType.Remote) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'remote')})`\n\t\t\t} else if (this.share.type === ShareType.RemoteGroup) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'remote group')})`\n\t\t\t} else if (this.share.type === ShareType.Guest) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'guest')})`\n\t\t\t}\n\t\t\tif (!this.isShareOwner && this.share.ownerDisplayName) {\n\t\t\t\ttitle += ' ' + t('files_sharing', 'by {initiator}', {\n\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn title\n\t\t},\n\t\ttooltip() {\n\t\t\tif (this.share.owner !== this.share.uidFileOwner) {\n\t\t\t\tconst data = {\n\t\t\t\t\t// todo: strong or italic?\n\t\t\t\t\t// but the t function escape any html from the data :/\n\t\t\t\t\tuser: this.share.shareWithDisplayName,\n\t\t\t\t\towner: this.share.ownerDisplayName,\n\t\t\t\t}\n\t\t\t\tif (this.share.type === ShareType.Group) {\n\t\t\t\t\treturn t('files_sharing', 'Shared with the group {user} by {owner}', data)\n\t\t\t\t} else if (this.share.type === ShareType.Room) {\n\t\t\t\t\treturn t('files_sharing', 'Shared with the conversation {user} by {owner}', data)\n\t\t\t\t}\n\n\t\t\t\treturn t('files_sharing', 'Shared with {user} by {owner}', data)\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\thasStatus() {\n\t\t\tif (this.share.type !== ShareType.User) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn (typeof this.share.status === 'object' && !Array.isArray(this.share.status))\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Save potential changed data on menu close\n\t\t */\n\t\tonMenuClose() {\n\t\t\tthis.onNoteSubmit()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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</style>\n","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 import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=e994747e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=e994747e&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=e994747e&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=e994747e&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 \"e994747e\",\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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<ul class=\"sharing-sharee-list\" :aria-label=\"t('files_sharing', 'Shares')\">\n\t\t<SharingEntry v-for=\"share in shares\"\n\t\t\t:key=\"share.id\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t:share=\"share\"\n\t\t\t:is-unique=\"isUnique(share)\"\n\t\t\t@open-sharing-details=\"openSharingDetails(share)\" />\n\t</ul>\n</template>\n\n<script>\nimport { t } from '@nextcloud/l10n'\nimport SharingEntry from '../components/SharingEntry.vue'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { ShareType } from '@nextcloud/sharing'\n\nexport default {\n\tname: 'SharingList',\n\n\tcomponents: {\n\t\tSharingEntry,\n\t},\n\n\tmixins: [ShareDetails],\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\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tsetup() {\n\t\treturn {\n\t\t\tt,\n\t\t}\n\t},\n\tcomputed: {\n\t\thasShares() {\n\t\t\treturn this.shares.length === 0\n\t\t},\n\t\tisUnique() {\n\t\t\treturn (share) => {\n\t\t\t\treturn [...this.shares].filter((item) => {\n\t\t\t\t\treturn share.type === ShareType.User && share.shareWithDisplayName === item.shareWithDisplayName\n\t\t\t\t}).length <= 1\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\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(\" (\"+_vm._s(_vm.share.shareWithDisplayNameUnique)+\")\")]):_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.canEdit)?_c('NcButton',{staticClass:\"sharing-entry__action\",attrs:{\"data-cy-files-sharing-share-actions\":\"\",\"aria-label\":_vm.t('files_sharing', 'Open Sharing Details'),\"type\":\"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=5b9a3a03\"\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('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\",\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.READ_ONLY.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ViewIcon',{attrs:{\"size\":20}})]},proxy:true}])},[_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\",\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.ALL.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('EditIcon',{attrs:{\"size\":20}})]},proxy:true}])},[(_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,\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.FILE_DROP.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('UploadIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1083194048)},[_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\",\"checked\":_vm.sharingPermission,\"value\":'custom',\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.expandCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}])},[_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\",\"type\":\"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'),\"value\":_vm.share.label},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"label\", $event)}}}):_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'),\"value\":_vm.share.token},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"token\", $event)},\"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)}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?[_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.isPasswordProtected,\"disabled\":_vm.isPasswordEnforced},on:{\"update:checked\":function($event){_vm.isPasswordProtected=$event}}},[_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\",\"value\":_vm.hasUnsavedPassword ? _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',{attrs:{\"checked\":_vm.isPasswordProtectedByTalk},on:{\"update:checked\":[function($event){_vm.isPasswordProtectedByTalk=$event},_vm.onPasswordProtectedByTalkChange]}},[_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:{\"checked\":_vm.hasExpirationDate,\"disabled\":_vm.isExpiryDateEnforced},on:{\"update:checked\":function($event){_vm.hasExpirationDate=$event}}},[_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\",\"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,\"checked\":_vm.share.hideDownload},on:{\"update:checked\":[function($event){return _vm.$set(_vm.share, \"hideDownload\", $event)},function($event){return _vm.queueUpdate('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,\"checked\":_vm.canDownload,\"data-cy-files-sharing-share-permissions-checkbox\":\"download\"},on:{\"update:checked\":function($event){_vm.canDownload=$event}}},[_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',{attrs:{\"checked\":_vm.writeNoteToRecipientIsChecked},on:{\"update:checked\":function($event){_vm.writeNoteToRecipientIsChecked=$event}}},[_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'),\"value\":_vm.share.note},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"note\", $event)}}})]:_vm._e(),_vm._v(\" \"),(_vm.isPublicShare && _vm.isFolder)?_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.showInGridView},on:{\"update:checked\":function($event){_vm.showInGridView=$event}}},[_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.externalLinkActions),function(action){return _c('ExternalShareAction',{key:action.id,ref:\"externalLinkActions\",refInFor:true,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.setCustomPermissions},on:{\"update:checked\":function($event){_vm.setCustomPermissions=$event}}},[_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,\"checked\":_vm.hasRead,\"data-cy-files-sharing-share-permissions-checkbox\":\"read\"},on:{\"update:checked\":function($event){_vm.hasRead=$event}}},[_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,\"checked\":_vm.canCreate,\"data-cy-files-sharing-share-permissions-checkbox\":\"create\"},on:{\"update:checked\":function($event){_vm.canCreate=$event}}},[_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,\"checked\":_vm.canEdit,\"data-cy-files-sharing-share-permissions-checkbox\":\"update\"},on:{\"update:checked\":function($event){_vm.canEdit=$event}}},[_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,\"checked\":_vm.canReshare,\"data-cy-files-sharing-share-permissions-checkbox\":\"share\"},on:{\"update:checked\":function($event){_vm.canReshare=$event}}},[_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,\"checked\":_vm.canDelete,\"data-cy-files-sharing-share-permissions-checkbox\":\"delete\"},on:{\"update:checked\":function($event){_vm.canDelete=$event}}},[_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(),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__delete\"},[(!_vm.isNewShare)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Delete share'),\"disabled\":false,\"readonly\":false,\"type\":\"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\":16}})]},proxy:true}],null,false,2746485232)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()],1)],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('NcButton',{attrs:{\"type\":\"primary\",\"data-cy-files-sharing-share-editor-action\":\"save\"},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 }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon circle-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CircleOutlineIcon\",\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}\n</script>","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\"","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 }","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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon email-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EmailIcon\",\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}\n</script>","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 }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon share-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ShareCircleIcon\",\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}\n</script>","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\"","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!./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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-circle-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountCircleOutlineIcon\",\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}\n</script>","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!./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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon eye-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EyeIcon\",\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}\n</script>","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 }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon refresh-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"RefreshIcon\",\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}\n</script>","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 \"-!../../../../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 - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div class=\"sharingTabDetailsView\">\n\t\t<div class=\"sharingTabDetailsView__header\">\n\t\t\t<span>\n\t\t\t\t<NcAvatar v-if=\"isUserShare\"\n\t\t\t\t\tclass=\"sharing-entry__avatar\"\n\t\t\t\t\t:is-no-user=\"share.shareType !== ShareType.User\"\n\t\t\t\t\t:user=\"share.shareWith\"\n\t\t\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t\t\t:menu-position=\"'left'\"\n\t\t\t\t\t:url=\"share.shareWithAvatar\" />\n\t\t\t\t<component :is=\"getShareTypeIcon(share.type)\" :size=\"32\" />\n\t\t\t</span>\n\t\t\t<span>\n\t\t\t\t<h1>{{ title }}</h1>\n\t\t\t</span>\n\t\t</div>\n\t\t<div class=\"sharingTabDetailsView__wrapper\">\n\t\t\t<div ref=\"quickPermissions\" class=\"sharingTabDetailsView__quick-permissions\">\n\t\t\t\t<div>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"read-only\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.READ_ONLY.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'View only') }}\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ViewIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"upload-edit\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.ALL.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t<template v-if=\"allowsFileDrop\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Allow upload and editing') }}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Allow editing') }}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<EditIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"allowsFileDrop\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"file-drop\"\n\t\t\t\t\t\t:button-variant=\"true\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.FILE_DROP.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'File request') }}\n\t\t\t\t\t\t<small class=\"subline\">{{ t('files_sharing', 'Upload only') }}</small>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<UploadIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"custom\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"'custom'\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"expandCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Custom permissions') }}\n\t\t\t\t\t\t<small class=\"subline\">{{ customPermissionsList }}</small>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<DotsHorizontalIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"sharingTabDetailsView__advanced-control\">\n\t\t\t\t<NcButton id=\"advancedSectionAccordionAdvancedControl\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\talignment=\"end-reverse\"\n\t\t\t\t\taria-controls=\"advancedSectionAccordionAdvanced\"\n\t\t\t\t\t:aria-expanded=\"advancedControlExpandedValue\"\n\t\t\t\t\t@click=\"advancedSectionAccordionExpanded = !advancedSectionAccordionExpanded\">\n\t\t\t\t\t{{ t('files_sharing', 'Advanced settings') }}\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<MenuDownIcon v-if=\"!advancedSectionAccordionExpanded\" />\n\t\t\t\t\t\t<MenuUpIcon v-else />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<div v-if=\"advancedSectionAccordionExpanded\"\n\t\t\t\tid=\"advancedSectionAccordionAdvanced\"\n\t\t\t\tclass=\"sharingTabDetailsView__advanced\"\n\t\t\t\taria-labelledby=\"advancedSectionAccordionAdvancedControl\"\n\t\t\t\trole=\"region\">\n\t\t\t\t<section>\n\t\t\t\t\t<NcInputField v-if=\"isPublicShare\"\n\t\t\t\t\t\tclass=\"sharingTabDetailsView__label\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Share label')\"\n\t\t\t\t\t\t:value.sync=\"share.label\" />\n\t\t\t\t\t<NcInputField v-if=\"config.allowCustomTokens && isPublicShare && !isNewShare\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Share link token')\"\n\t\t\t\t\t\t:helper-text=\"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.')\"\n\t\t\t\t\t\tshow-trailing-button\n\t\t\t\t\t\t:trailing-button-label=\"loadingToken ? t('files_sharing', 'Generating…') : t('files_sharing', 'Generate new token')\"\n\t\t\t\t\t\t:value.sync=\"share.token\"\n\t\t\t\t\t\t@trailing-button-click=\"generateNewToken\">\n\t\t\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t\t\t<NcLoadingIcon v-if=\"loadingToken\" />\n\t\t\t\t\t\t\t<Refresh v-else :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcInputField>\n\t\t\t\t\t<template v-if=\"isPublicShare\">\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"isPasswordProtected\" :disabled=\"isPasswordEnforced\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Set password') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcPasswordField v-if=\"isPasswordProtected\"\n\t\t\t\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t\t\t\t:value=\"hasUnsavedPassword ? share.newPassword : ''\"\n\t\t\t\t\t\t\t:error=\"passwordError\"\n\t\t\t\t\t\t\t:helper-text=\"errorPasswordLabel || passwordHint\"\n\t\t\t\t\t\t\t:required=\"isPasswordEnforced && isNewShare\"\n\t\t\t\t\t\t\t:label=\"t('files_sharing', 'Password')\"\n\t\t\t\t\t\t\t@update:value=\"onPasswordChange\" />\n\n\t\t\t\t\t\t<!-- Migrate icons and remote -> icon=\"icon-info\"-->\n\t\t\t\t\t\t<span v-if=\"isEmailShareType && passwordExpirationTime\" icon=\"icon-info\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime }) }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span v-else-if=\"isEmailShareType && passwordExpirationTime !== null\" icon=\"icon-error\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Password expired') }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"canTogglePasswordProtectedByTalkAvailable\"\n\t\t\t\t\t\t:checked.sync=\"isPasswordProtectedByTalk\"\n\t\t\t\t\t\t@update:checked=\"onPasswordProtectedByTalkChange\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Video verification') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"hasExpirationDate\" :disabled=\"isExpiryDateEnforced\">\n\t\t\t\t\t\t{{ isExpiryDateEnforced\n\t\t\t\t\t\t\t? t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t\t: t('files_sharing', 'Set expiration date') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcDateTimePickerNative v-if=\"hasExpirationDate\"\n\t\t\t\t\t\tid=\"share-date-picker\"\n\t\t\t\t\t\t:value=\"new Date(share.expireDate ?? dateTomorrow)\"\n\t\t\t\t\t\t:min=\"dateTomorrow\"\n\t\t\t\t\t\t:max=\"maxExpirationDateEnforced\"\n\t\t\t\t\t\thide-label\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Expiration date')\"\n\t\t\t\t\t\t:placeholder=\"t('files_sharing', 'Expiration date')\"\n\t\t\t\t\t\ttype=\"date\"\n\t\t\t\t\t\t@input=\"onExpirationChange\" />\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isPublicShare\"\n\t\t\t\t\t\t:disabled=\"canChangeHideDownload\"\n\t\t\t\t\t\t:checked.sync=\"share.hideDownload\"\n\t\t\t\t\t\t@update:checked=\"queueUpdate('hideDownload')\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Hide download') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-else\n\t\t\t\t\t\t:disabled=\"!canSetDownload\"\n\t\t\t\t\t\t:checked.sync=\"canDownload\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"download\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Allow download and sync') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"writeNoteToRecipientIsChecked\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Note to recipient') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<template v-if=\"writeNoteToRecipientIsChecked\">\n\t\t\t\t\t\t<NcTextArea :label=\"t('files_sharing', 'Note to recipient')\"\n\t\t\t\t\t\t\t:placeholder=\"t('files_sharing', 'Enter a note for the share recipient')\"\n\t\t\t\t\t\t\t:value.sync=\"share.note\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isPublicShare && isFolder\"\n\t\t\t\t\t\t:checked.sync=\"showInGridView\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Show files in grid view') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<ExternalShareAction v-for=\"action in externalLinkActions\"\n\t\t\t\t\t\t:id=\"action.id\"\n\t\t\t\t\t\tref=\"externalLinkActions\"\n\t\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t\t:action=\"action\"\n\t\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t\t:share=\"share\" />\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"setCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Custom permissions') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<section v-if=\"setCustomPermissions\" class=\"custom-permissions-group\">\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canRemoveReadPermission\"\n\t\t\t\t\t\t\t:checked.sync=\"hasRead\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"read\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Read') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isFolder\"\n\t\t\t\t\t\t\t:disabled=\"!canSetCreate\"\n\t\t\t\t\t\t\t:checked.sync=\"canCreate\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"create\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Create') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canSetEdit\"\n\t\t\t\t\t\t\t:checked.sync=\"canEdit\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"update\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Edit') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"resharingIsPossible\"\n\t\t\t\t\t\t\t:disabled=\"!canSetReshare\"\n\t\t\t\t\t\t\t:checked.sync=\"canReshare\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"share\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Share') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canSetDelete\"\n\t\t\t\t\t\t\t:checked.sync=\"canDelete\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"delete\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Delete') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t</section>\n\t\t\t\t\t<div class=\"sharingTabDetailsView__delete\">\n\t\t\t\t\t\t<NcButton v-if=\"!isNewShare\"\n\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Delete share')\"\n\t\t\t\t\t\t\t:disabled=\"false\"\n\t\t\t\t\t\t\t:readonly=\"false\"\n\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t@click.prevent=\"removeShare\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<CloseIcon :size=\"16\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Delete share') }}\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"sharingTabDetailsView__footer\">\n\t\t\t<div class=\"button-group\">\n\t\t\t\t<NcButton data-cy-files-sharing-share-editor-action=\"cancel\"\n\t\t\t\t\t@click=\"cancel\">\n\t\t\t\t\t{{ t('files_sharing', 'Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton type=\"primary\"\n\t\t\t\t\tdata-cy-files-sharing-share-editor-action=\"save\"\n\t\t\t\t\t@click=\"saveShare\">\n\t\t\t\t\t{{ shareButtonText }}\n\t\t\t\t\t<template v-if=\"creating\" #icon>\n\t\t\t\t\t\t<NcLoadingIcon />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { emit } from '@nextcloud/event-bus'\nimport { getLanguage } from '@nextcloud/l10n'\nimport { ShareType } from '@nextcloud/sharing'\nimport { showError } from '@nextcloud/dialogs'\nimport moment from '@nextcloud/moment'\n\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport NcDateTimePickerNative from '@nextcloud/vue/dist/Components/NcDateTimePickerNative.js'\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\nimport NcPasswordField from '@nextcloud/vue/dist/Components/NcPasswordField.js'\nimport NcTextArea from '@nextcloud/vue/dist/Components/NcTextArea.js'\n\nimport CircleIcon from 'vue-material-design-icons/CircleOutline.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\nimport EditIcon from 'vue-material-design-icons/Pencil.vue'\nimport EmailIcon from 'vue-material-design-icons/Email.vue'\nimport LinkIcon from 'vue-material-design-icons/Link.vue'\nimport GroupIcon from 'vue-material-design-icons/AccountGroup.vue'\nimport ShareIcon from 'vue-material-design-icons/ShareCircle.vue'\nimport UserIcon from 'vue-material-design-icons/AccountCircleOutline.vue'\nimport ViewIcon from 'vue-material-design-icons/Eye.vue'\nimport UploadIcon from 'vue-material-design-icons/Upload.vue'\nimport MenuDownIcon from 'vue-material-design-icons/MenuDown.vue'\nimport MenuUpIcon from 'vue-material-design-icons/MenuUp.vue'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\nimport Refresh from 'vue-material-design-icons/Refresh.vue'\n\nimport ExternalShareAction from '../components/ExternalShareAction.vue'\n\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport Share from '../models/Share.ts'\nimport ShareRequests from '../mixins/ShareRequests.js'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport { generateToken } from '../services/TokenService.ts'\nimport logger from '../services/logger.ts'\n\nimport {\n\tATOMIC_PERMISSIONS,\n\tBUNDLED_PERMISSIONS,\n\thasPermissions,\n} from '../lib/SharePermissionsToolBox.js'\n\nexport default {\n\tname: 'SharingDetailsTab',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcDateTimePickerNative,\n\t\tNcInputField,\n\t\tNcLoadingIcon,\n\t\tNcPasswordField,\n\t\tNcTextArea,\n\t\tCloseIcon,\n\t\tCircleIcon,\n\t\tEditIcon,\n\t\tExternalShareAction,\n\t\tLinkIcon,\n\t\tGroupIcon,\n\t\tShareIcon,\n\t\tUserIcon,\n\t\tUploadIcon,\n\t\tViewIcon,\n\t\tMenuDownIcon,\n\t\tMenuUpIcon,\n\t\tDotsHorizontalIcon,\n\t\tRefresh,\n\t},\n\tmixins: [ShareRequests, SharesMixin],\n\tprops: {\n\t\tshareRequestValue: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\twriteNoteToRecipientIsChecked: false,\n\t\t\tsharingPermission: BUNDLED_PERMISSIONS.ALL.toString(),\n\t\t\trevertSharingPermission: BUNDLED_PERMISSIONS.ALL.toString(),\n\t\t\tsetCustomPermissions: false,\n\t\t\tpasswordError: false,\n\t\t\tadvancedSectionAccordionExpanded: false,\n\t\t\tbundledPermissions: BUNDLED_PERMISSIONS,\n\t\t\tisFirstComponentLoad: true,\n\t\t\ttest: false,\n\t\t\tcreating: false,\n\t\t\tinitialToken: this.share.token,\n\t\t\tloadingToken: false,\n\n\t\t\tExternalShareActions: OCA.Sharing.ExternalShareActions.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttitle() {\n\t\t\tswitch (this.share.type) {\n\t\t\tcase ShareType.User:\n\t\t\t\treturn t('files_sharing', 'Share with {userName}', { userName: this.share.shareWithDisplayName })\n\t\t\tcase ShareType.Email:\n\t\t\t return t('files_sharing', 'Share with email {email}', { email: this.share.shareWith })\n\t\t\tcase ShareType.Link:\n\t\t\t\treturn t('files_sharing', 'Share link')\n\t\t\tcase ShareType.Group:\n\t\t\t\treturn t('files_sharing', 'Share with group')\n\t\t\tcase ShareType.Room:\n\t\t\t\treturn t('files_sharing', 'Share in conversation')\n\t\t\tcase ShareType.Remote: {\n\t\t\t\tconst [user, server] = this.share.shareWith.split('@')\n\t\t\t\treturn t('files_sharing', 'Share with {user} on remote server {server}', { user, server })\n\t\t\t}\n\t\t\tcase ShareType.RemoteGroup:\n\t\t\t\treturn t('files_sharing', 'Share with remote group')\n\t\t\tcase ShareType.Guest:\n\t\t\t\treturn t('files_sharing', 'Share with guest')\n\t\t\tdefault: {\n\t\t\t\tif (this.share.id) {\n\t\t\t\t\t// Share already exists\n\t\t\t\t\treturn t('files_sharing', 'Update share')\n\t\t\t\t} else {\n\t\t\t\t\treturn t('files_sharing', 'Create share')\n\t\t\t\t}\n\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Can the sharee edit the shared file ?\n\t\t */\n\t\tcanEdit: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasUpdatePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isEditChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee create the shared file ?\n\t\t */\n\t\tcanCreate: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasCreatePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isCreateChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee delete the shared file ?\n\t\t */\n\t\tcanDelete: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasDeletePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isDeleteChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee reshare the file ?\n\t\t */\n\t\tcanReshare: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasSharePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isReshareChecked: checked })\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Change the default view for public shares from \"list\" to \"grid\"\n\t\t */\n\t\tshowInGridView: {\n\t\t\tget() {\n\t\t\t\treturn this.getShareAttribute('config', 'grid_view', false)\n\t\t\t},\n\t\t\t/** @param {boolean} value If the default view should be changed to \"grid\" */\n\t\t\tset(value) {\n\t\t\t\tthis.setShareAttribute('config', 'grid_view', value)\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Can the sharee download files or only view them ?\n\t\t */\n\t\tcanDownload: {\n\t\t\tget() {\n\t\t\t\treturn this.getShareAttribute('permissions', 'download', true)\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.setShareAttribute('permissions', 'download', checked)\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is this share readable\n\t\t * Needed for some federated shares that might have been added from file requests links\n\t\t */\n\t\thasRead: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasReadPermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isReadChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Does the current share have an expiration date\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasExpirationDate: {\n\t\t\tget() {\n\t\t\t\treturn this.isValidShareAttribute(this.share.expireDate)\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.expireDate = enabled\n\t\t\t\t\t? this.formatDateToString(this.defaultExpiryDate)\n\t\t\t\t\t: ''\n\t\t\t},\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\treturn this.config.enforcePasswordForPublicLink\n\t\t\t\t\t|| !!this.share.password\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.share.password = await GeneratePassword(true)\n\t\t\t\t\tthis.$set(this.share, 'newPassword', this.share.password)\n\t\t\t\t} else {\n\t\t\t\t\tthis.share.password = ''\n\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is the current share a folder ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisSetDownloadButtonVisible() {\n\t\t\tconst allowedMimetypes = [\n\t\t\t\t// Office documents\n\t\t\t\t'application/msword',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t\t\t'application/vnd.ms-powerpoint',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t\t\t'application/vnd.ms-excel',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t'application/vnd.oasis.opendocument.text',\n\t\t\t\t'application/vnd.oasis.opendocument.spreadsheet',\n\t\t\t\t'application/vnd.oasis.opendocument.presentation',\n\t\t\t]\n\n\t\t\treturn this.isFolder || allowedMimetypes.includes(this.fileInfo.mimetype)\n\t\t},\n\t\tisPasswordEnforced() {\n\t\t\treturn this.isPublicShare && this.config.enforcePasswordForPublicLink\n\t\t},\n\t\tdefaultExpiryDate() {\n\t\t\tif ((this.isGroupShare || this.isUserShare) && this.config.isDefaultInternalExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultInternalExpirationDate)\n\t\t\t} else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultRemoteExpireDateEnabled)\n\t\t\t} else if (this.isPublicShare && this.config.isDefaultExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultExpirationDate)\n\t\t\t}\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\t\tisUserShare() {\n\t\t\treturn this.share.type === ShareType.User\n\t\t},\n\t\tisGroupShare() {\n\t\t\treturn this.share.type === ShareType.Group\n\t\t},\n\t\tallowsFileDrop() {\n\t\t\tif (this.isFolder && this.config.isPublicUploadEnabled) {\n\t\t\t\tif (this.share.type === ShareType.Link || this.share.type === ShareType.Email) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\thasFileDropPermissions() {\n\t\t\treturn this.share.permissions === this.bundledPermissions.FILE_DROP\n\t\t},\n\t\tshareButtonText() {\n\t\t\tif (this.isNewShare) {\n\t\t\t\treturn t('files_sharing', 'Save share')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Update share')\n\n\t\t},\n\t\tresharingIsPossible() {\n\t\t\treturn this.config.isResharingAllowed && this.share.type !== ShareType.Link && this.share.type !== ShareType.Email\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can edit the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetEdit() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_UPDATE) || this.canEdit\n\t\t},\n\n\t\t/**\n\t\t * Can the sharer set whether the sharee can create the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetCreate() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_CREATE) || this.canCreate\n\t\t},\n\n\t\t/**\n\t\t * Can the sharer set whether the sharee can delete the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetDelete() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_DELETE) || this.canDelete\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can reshare the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetReshare() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_SHARE) || this.canReshare\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can download the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetDownload() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.canDownload() || this.canDownload)\n\t\t},\n\t\tcanRemoveReadPermission() {\n\t\t\treturn this.allowsFileDrop && (\n\t\t\t\tthis.share.type === ShareType.Link\n\t\t\t\t\t|| this.share.type === ShareType.Email\n\t\t\t)\n\t\t},\n\t\t// if newPassword exists, but is empty, it means\n\t\t// the user deleted the original password\n\t\thasUnsavedPassword() {\n\t\t\treturn this.share.newPassword !== undefined\n\t\t},\n\t\tpasswordExpirationTime() {\n\t\t\tif (!this.isValidShareAttribute(this.share.passwordExpirationTime)) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst expirationTime = moment(this.share.passwordExpirationTime)\n\n\t\t\tif (expirationTime.diff(moment()) < 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn expirationTime.fromNow()\n\t\t},\n\n\t\t/**\n\t\t * Is Talk enabled?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisTalkEnabled() {\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Is it possible to protect the password by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalkAvailable() {\n\t\t\treturn this.isPasswordProtected && this.isTalkEnabled\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalk: {\n\t\t\tget() {\n\t\t\t\treturn this.share.sendPasswordByTalk\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tthis.share.sendPasswordByTalk = enabled\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is the current share an email share ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisEmailShareType() {\n\t\t\treturn this.share\n\t\t\t\t? this.share.type === ShareType.Email\n\t\t\t\t: false\n\t\t},\n\t\tcanTogglePasswordProtectedByTalkAvailable() {\n\t\t\tif (!this.isPublicShare || !this.isPasswordProtected) {\n\t\t\t\t// Makes no sense\n\t\t\t\treturn false\n\t\t\t} else if (this.isEmailShareType && !this.hasUnsavedPassword) {\n\t\t\t\t// For email shares we need a new password in order to enable or\n\t\t\t\t// disable\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Is Talk enabled?\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\t\tcanChangeHideDownload() {\n\t\t\tconst hasDisabledDownload = (shareAttribute) => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.value === false\n\t\t\treturn this.fileInfo.shareAttributes.some(hasDisabledDownload)\n\t\t},\n\t\tcustomPermissionsList() {\n\t\t\t// Key order will be different, because ATOMIC_PERMISSIONS are numbers\n\t\t\tconst translatedPermissions = {\n\t\t\t\t[ATOMIC_PERMISSIONS.READ]: this.t('files_sharing', 'Read'),\n\t\t\t\t[ATOMIC_PERMISSIONS.CREATE]: this.t('files_sharing', 'Create'),\n\t\t\t\t[ATOMIC_PERMISSIONS.UPDATE]: this.t('files_sharing', 'Edit'),\n\t\t\t\t[ATOMIC_PERMISSIONS.SHARE]: this.t('files_sharing', 'Share'),\n\t\t\t\t[ATOMIC_PERMISSIONS.DELETE]: this.t('files_sharing', 'Delete'),\n\t\t\t}\n\n\t\t\treturn [ATOMIC_PERMISSIONS.READ, ATOMIC_PERMISSIONS.CREATE, ATOMIC_PERMISSIONS.UPDATE, ...(this.resharingIsPossible ? [ATOMIC_PERMISSIONS.SHARE] : []), ATOMIC_PERMISSIONS.DELETE]\n\t\t\t\t.filter((permission) => hasPermissions(this.share.permissions, permission))\n\t\t\t\t.map((permission, index) => index === 0\n\t\t\t\t\t? translatedPermissions[permission]\n\t\t\t\t\t: translatedPermissions[permission].toLocaleLowerCase(getLanguage()))\n\t\t\t\t.join(', ')\n\t\t},\n\t\tadvancedControlExpandedValue() {\n\t\t\treturn this.advancedSectionAccordionExpanded ? 'true' : 'false'\n\t\t},\n\t\terrorPasswordLabel() {\n\t\t\tif (this.passwordError) {\n\t\t\t\treturn t('files_sharing', 'Password field cannot be empty')\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\n\t\tpasswordHint() {\n\t\t\tif (this.isNewShare || this.hasUnsavedPassword) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Replace current password')\n\t\t},\n\n\t\t/**\n\t\t * Additional actions for the menu\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalLinkActions() {\n\t\t\tconst filterValidAction = (action) => (action.shareType.includes(ShareType.Link) || action.shareType.includes(ShareType.Email)) && action.advanced\n\t\t\t// filter only the advanced registered actions for said link\n\t\t\treturn this.ExternalShareActions.actions\n\t\t\t\t.filter(filterValidAction)\n\t\t},\n\t},\n\twatch: {\n\t\tsetCustomPermissions(isChecked) {\n\t\t\tif (isChecked) {\n\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t} else {\n\t\t\t\tthis.sharingPermission = this.revertSharingPermission\n\t\t\t}\n\t\t},\n\t},\n\tbeforeMount() {\n\t\tthis.initializePermissions()\n\t\tthis.initializeAttributes()\n\t\tlogger.debug('Share object received', { share: this.share })\n\t\tlogger.debug('Configuration object received', { config: this.config })\n\t},\n\n\tmounted() {\n\t\tthis.$refs.quickPermissions?.querySelector('input:checked')?.focus()\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Set a share attribute on the current share\n\t\t * @param {string} scope The attribute scope\n\t\t * @param {string} key The attribute key\n\t\t * @param {boolean} value The value\n\t\t */\n\t\tsetShareAttribute(scope, key, value) {\n\t\t\tif (!this.share.attributes) {\n\t\t\t\tthis.$set(this.share, 'attributes', [])\n\t\t\t}\n\n\t\t\tconst attribute = this.share.attributes\n\t\t\t\t.find((attr) => attr.scope === scope || attr.key === key)\n\n\t\t\tif (attribute) {\n\t\t\t\tattribute.value = value\n\t\t\t} else {\n\t\t\t\tthis.share.attributes.push({\n\t\t\t\t\tscope,\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get the value of a share attribute\n\t\t * @param {string} scope The attribute scope\n\t\t * @param {string} key The attribute key\n\t\t * @param {undefined|boolean} fallback The fallback to return if not found\n\t\t */\n\t\tgetShareAttribute(scope, key, fallback = undefined) {\n\t\t\tconst attribute = this.share.attributes?.find((attr) => attr.scope === scope && attr.key === key)\n\t\t\treturn attribute?.value ?? fallback\n\t\t},\n\n\t\tasync generateNewToken() {\n\t\t\tif (this.loadingToken) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.loadingToken = true\n\t\t\ttry {\n\t\t\t\tthis.share.token = await generateToken()\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('files_sharing', 'Failed to generate a new token'))\n\t\t\t}\n\t\t\tthis.loadingToken = false\n\t\t},\n\n\t\tcancel() {\n\t\t\tthis.share.token = this.initialToken\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\n\t\tupdateAtomicPermissions({\n\t\t\tisReadChecked = this.hasRead,\n\t\t\tisEditChecked = this.canEdit,\n\t\t\tisCreateChecked = this.canCreate,\n\t\t\tisDeleteChecked = this.canDelete,\n\t\t\tisReshareChecked = this.canReshare,\n\t\t} = {}) {\n\t\t\t// calc permissions if checked\n\t\t\tconst permissions = 0\n\t\t\t\t| (isReadChecked ? ATOMIC_PERMISSIONS.READ : 0)\n\t\t\t\t| (isCreateChecked ? ATOMIC_PERMISSIONS.CREATE : 0)\n\t\t\t\t| (isDeleteChecked ? ATOMIC_PERMISSIONS.DELETE : 0)\n\t\t\t\t| (isEditChecked ? ATOMIC_PERMISSIONS.UPDATE : 0)\n\t\t\t\t| (isReshareChecked ? ATOMIC_PERMISSIONS.SHARE : 0)\n\t\t\tthis.share.permissions = permissions\n\t\t},\n\t\texpandCustomPermissions() {\n\t\t\tif (!this.advancedSectionAccordionExpanded) {\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t}\n\t\t\tthis.toggleCustomPermissions()\n\t\t},\n\t\ttoggleCustomPermissions(selectedPermission) {\n\t\t\tconst isCustomPermissions = this.sharingPermission === 'custom'\n\t\t\tthis.revertSharingPermission = !isCustomPermissions ? selectedPermission : 'custom'\n\t\t\tthis.setCustomPermissions = isCustomPermissions\n\t\t},\n\t\tasync initializeAttributes() {\n\n\t\t\tif (this.isNewShare) {\n\t\t\t\tif (this.isPasswordEnforced && this.isPublicShare) {\n\t\t\t\t\tthis.$set(this.share, 'newPassword', await GeneratePassword(true))\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t}\n\t\t\t\t/* Set default expiration dates if configured */\n\t\t\t\tif (this.isPublicShare && this.config.isDefaultExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultExpirationDate.toDateString()\n\t\t\t\t} else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultRemoteExpirationDateString.toDateString()\n\t\t\t\t} else if (this.config.isDefaultInternalExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultInternalExpirationDate.toDateString()\n\t\t\t\t}\n\n\t\t\t\tif (this.isValidShareAttribute(this.share.expireDate)) {\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t}\n\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If there is an enforced expiry date, then existing shares created before enforcement\n\t\t\t// have no expiry date, hence we set it here.\n\t\t\tif (!this.isValidShareAttribute(this.share.expireDate) && this.isExpiryDateEnforced) {\n\t\t\t\tthis.hasExpirationDate = true\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.isValidShareAttribute(this.share.password)\n\t\t\t\t|| this.isValidShareAttribute(this.share.expireDate)\n\t\t\t\t|| this.isValidShareAttribute(this.share.label)\n\t\t\t) {\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t}\n\n\t\t\tif (this.share.note) {\n\t\t\t\tthis.writeNoteToRecipientIsChecked = true\n\t\t\t}\n\n\t\t},\n\t\thandleShareType() {\n\t\t\tif ('shareType' in this.share) {\n\t\t\t\tthis.share.type = this.share.shareType\n\t\t\t} else if (this.share.share_type) {\n\t\t\t\tthis.share.type = this.share.share_type\n\t\t\t}\n\t\t},\n\t\thandleDefaultPermissions() {\n\t\t\tif (this.isNewShare) {\n\t\t\t\tconst defaultPermissions = this.config.defaultPermissions\n\t\t\t\tif (defaultPermissions === BUNDLED_PERMISSIONS.READ_ONLY || defaultPermissions === BUNDLED_PERMISSIONS.ALL) {\n\t\t\t\t\tthis.sharingPermission = defaultPermissions.toString()\n\t\t\t\t} else {\n\t\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t\t\tthis.share.permissions = defaultPermissions\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t\tthis.setCustomPermissions = true\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Read permission required for share creation\n\t\t\tif (!this.canRemoveReadPermission) {\n\t\t\t\tthis.hasRead = true\n\t\t\t}\n\t\t},\n\t\thandleCustomPermissions() {\n\t\t\tif (!this.isNewShare && (this.hasCustomPermissions || this.share.setCustomPermissions)) {\n\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\tthis.setCustomPermissions = true\n\t\t\t} else if (this.share.permissions) {\n\t\t\t\tthis.sharingPermission = this.share.permissions.toString()\n\t\t\t}\n\t\t},\n\t\tinitializePermissions() {\n\t\t\tthis.handleShareType()\n\t\t\tthis.handleDefaultPermissions()\n\t\t\tthis.handleCustomPermissions()\n\t\t},\n\t\tasync saveShare() {\n\t\t\tconst permissionsAndAttributes = ['permissions', 'attributes', 'note', 'expireDate']\n\t\t\tconst publicShareAttributes = ['label', 'password', 'hideDownload']\n\t\t\tif (this.config.allowCustomTokens) {\n\t\t\t\tpublicShareAttributes.push('token')\n\t\t\t}\n\t\t\tif (this.isPublicShare) {\n\t\t\t\tpermissionsAndAttributes.push(...publicShareAttributes)\n\t\t\t}\n\t\t\tconst sharePermissionsSet = parseInt(this.sharingPermission)\n\t\t\tif (this.setCustomPermissions) {\n\t\t\t\tthis.updateAtomicPermissions()\n\t\t\t} else {\n\t\t\t\tthis.share.permissions = sharePermissionsSet\n\t\t\t}\n\n\t\t\tif (!this.isFolder && this.share.permissions === BUNDLED_PERMISSIONS.ALL) {\n\t\t\t\t// It's not possible to create an existing file.\n\t\t\t\tthis.share.permissions = BUNDLED_PERMISSIONS.ALL_FILE\n\t\t\t}\n\t\t\tif (!this.writeNoteToRecipientIsChecked) {\n\t\t\t\tthis.share.note = ''\n\t\t\t}\n\t\t\tif (this.isPasswordProtected) {\n\t\t\t\tif (this.hasUnsavedPassword && this.isValidShareAttribute(this.share.newPassword)) {\n\t\t\t\t\tthis.share.password = this.share.newPassword\n\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\t} else if (this.isPasswordEnforced && this.isNewShare && !this.isValidShareAttribute(this.share.password)) {\n\t\t\t\t\tthis.passwordError = true\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.share.password = ''\n\t\t\t}\n\n\t\t\tif (!this.hasExpirationDate) {\n\t\t\t\tthis.share.expireDate = ''\n\t\t\t}\n\n\t\t\tif (this.isNewShare) {\n\t\t\t\tconst incomingShare = {\n\t\t\t\t\tpermissions: this.share.permissions,\n\t\t\t\t\tshareType: this.share.type,\n\t\t\t\t\tshareWith: this.share.shareWith,\n\t\t\t\t\tattributes: this.share.attributes,\n\t\t\t\t\tnote: this.share.note,\n\t\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\t}\n\n\t\t\t\tincomingShare.expireDate = this.hasExpirationDate ? this.share.expireDate : ''\n\n\t\t\t\tif (this.isPasswordProtected) {\n\t\t\t\t\tincomingShare.password = this.share.password\n\t\t\t\t}\n\n\t\t\t\tthis.creating = true\n\t\t\t\tconst share = await this.addShare(incomingShare)\n\t\t\t\tthis.creating = false\n\t\t\t\tthis.share = share\n\t\t\t\tthis.$emit('add:share', this.share)\n\t\t\t} else {\n\t\t\t\tthis.$emit('update:share', this.share)\n\t\t\t\temit('update:share', this.share)\n\t\t\t\tthis.queueUpdate(...permissionsAndAttributes)\n\t\t\t}\n\n\t\t\tawait this.getNode()\n\t\t\temit('files:node:updated', this.node)\n\n\t\t\tif (this.$refs.externalLinkActions?.length > 0) {\n\t\t\t\tawait Promise.allSettled(this.$refs.externalLinkActions.map((action) => {\n\t\t\t\t\tif (typeof action.$children.at(0)?.onSave !== 'function') {\n\t\t\t\t\t\treturn Promise.resolve()\n\t\t\t\t\t}\n\t\t\t\t\treturn action.$children.at(0)?.onSave?.()\n\t\t\t\t}))\n\t\t\t}\n\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\t\t/**\n\t\t * Process the new share request\n\t\t *\n\t\t * @param {Share} share incoming share object\n\t\t */\n\t\tasync addShare(share) {\n\t\t\tlogger.debug('Adding a new share from the input for', { share })\n\t\t\tconst path = this.path\n\t\t\ttry {\n\t\t\t\tconst resultingShare = await this.createShare({\n\t\t\t\t\tpath,\n\t\t\t\t\tshareType: share.shareType,\n\t\t\t\t\tshareWith: share.shareWith,\n\t\t\t\t\tpermissions: share.permissions,\n\t\t\t\t\texpireDate: share.expireDate,\n\t\t\t\t\tattributes: JSON.stringify(share.attributes),\n\t\t\t\t\t...(share.note ? { note: share.note } : {}),\n\t\t\t\t\t...(share.password ? { password: share.password } : {}),\n\t\t\t\t})\n\t\t\t\treturn resultingShare\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while adding new share', { error })\n\t\t\t} finally {\n\t\t\t\t// this.loading = false // No loader here yet\n\t\t\t}\n\t\t},\n\t\tasync removeShare() {\n\t\t\tawait this.onDelete()\n\t\t\tawait this.getNode()\n\t\t\temit('files:node:updated', this.node)\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\t\t/**\n\t\t * Update newPassword values\n\t\t * of share. If password is set but not newPassword\n\t\t * then the user did not changed the password\n\t\t * If both co-exists, the password have changed and\n\t\t * we show it in plain text.\n\t\t * Then on submit (or menu close), we sync it.\n\t\t *\n\t\t * @param {string} password the changed password\n\t\t */\n\t\tonPasswordChange(password) {\n\t\t\tif (password === '') {\n\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\tthis.passwordError = this.isNewShare && this.isPasswordEnforced\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.passwordError = !this.isValidShareAttribute(password)\n\t\t\tthis.$set(this.share, 'newPassword', password)\n\t\t},\n\t\t/**\n\t\t * Update the password along with \"sendPasswordByTalk\".\n\t\t *\n\t\t * If the password was modified the new password is sent; otherwise\n\t\t * updating a mail share would fail, as in that case it is required that\n\t\t * a new password is set when enabling or disabling\n\t\t * \"sendPasswordByTalk\".\n\t\t */\n\t\tonPasswordProtectedByTalkChange() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t}\n\n\t\t\tthis.queueUpdate('sendPasswordByTalk', 'password')\n\t\t},\n\t\tisValidShareAttribute(value) {\n\t\t\tif ([null, undefined].includes(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (!(value.trim().length > 0)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t},\n\t\tgetShareTypeIcon(type) {\n\t\t\tswitch (type) {\n\t\t\tcase ShareType.Link:\n\t\t\t\treturn LinkIcon\n\t\t\tcase ShareType.Guest:\n\t\t\t\treturn UserIcon\n\t\t\tcase ShareType.RemoteGroup:\n\t\t\tcase ShareType.Group:\n\t\t\t\treturn GroupIcon\n\t\t\tcase ShareType.Email:\n\t\t\t\treturn EmailIcon\n\t\t\tcase ShareType.Team:\n\t\t\t\treturn CircleIcon\n\t\t\tcase ShareType.Room:\n\t\t\t\treturn ShareIcon\n\t\t\tcase ShareType.Deck:\n\t\t\t\treturn ShareIcon\n\t\t\tcase ShareType.ScienceMesh:\n\t\t\t\treturn ShareIcon\n\t\t\tdefault:\n\t\t\t\treturn null // Or a default icon component if needed\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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</style>\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';\nexport const generateToken = async () => {\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=db4347b0&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=db4347b0&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=db4347b0&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=db4347b0&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 \"db4347b0\",\n null\n \n)\n\nexport default component.exports","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"sharingTab\" :class=\"{ 'icon-loading': loading }\">\n\t\t<!-- error message -->\n\t\t<div v-if=\"error\" class=\"emptycontent\" :class=\"{ emptyContentWithSections: sections.length > 0 }\">\n\t\t\t<div class=\"icon icon-error\" />\n\t\t\t<h2>{{ error }}</h2>\n\t\t</div>\n\n\t\t<!-- shares content -->\n\t\t<div v-show=\"!showSharingDetailsView\"\n\t\t\tclass=\"sharingTab__content\">\n\t\t\t<!-- shared with me information -->\n\t\t\t<ul v-if=\"isSharedWithMe\">\n\t\t\t\t<SharingEntrySimple v-bind=\"sharedWithMe\" class=\"sharing-entry__reshare\">\n\t\t\t\t\t<template #avatar>\n\t\t\t\t\t\t<NcAvatar :user=\"sharedWithMe.user\"\n\t\t\t\t\t\t\t:display-name=\"sharedWithMe.displayName\"\n\t\t\t\t\t\t\tclass=\"sharing-entry__avatar\" />\n\t\t\t\t\t</template>\n\t\t\t\t</SharingEntrySimple>\n\t\t\t</ul>\n\n\t\t\t<section>\n\t\t\t\t<div class=\"section-header\">\n\t\t\t\t\t<h4>{{ t('files_sharing', 'Internal shares') }}</h4>\n\t\t\t\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton class=\"hint-icon\"\n\t\t\t\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Internal shares explanation')\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<InfoIcon :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<p class=\"hint-body\">\n\t\t\t\t\t\t\t{{ internalSharesHelpText }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</NcPopover>\n\t\t\t\t</div>\n\t\t\t\t<!-- add new share input -->\n\t\t\t\t<SharingInput v-if=\"!loading\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:link-shares=\"linkShares\"\n\t\t\t\t\t:reshare=\"reshare\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t:placeholder=\"t('files_sharing', 'Share with accounts and teams')\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\n\t\t\t\t<!-- other shares list -->\n\t\t\t\t<SharingList v-if=\"!loading\"\n\t\t\t\t\tref=\"shareList\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\n\t\t\t\t<!-- inherited shares -->\n\t\t\t\t<SharingInherited v-if=\"canReshare && !loading\" :file-info=\"fileInfo\" />\n\n\t\t\t\t<!-- internal link copy -->\n\t\t\t\t<SharingEntryInternal :file-info=\"fileInfo\" />\n\t\t\t</section>\n\n\t\t\t<section>\n\t\t\t\t<div class=\"section-header\">\n\t\t\t\t\t<h4>{{ t('files_sharing', 'External shares') }}</h4>\n\t\t\t\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton class=\"hint-icon\"\n\t\t\t\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'External shares explanation')\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<InfoIcon :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<p class=\"hint-body\">\n\t\t\t\t\t\t\t{{ externalSharesHelpText }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</NcPopover>\n\t\t\t\t</div>\n\t\t\t\t<SharingInput v-if=\"!loading\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:link-shares=\"linkShares\"\n\t\t\t\t\t:is-external=\"true\"\n\t\t\t\t\t:placeholder=\"t('files_sharing', 'Email, federated cloud id')\"\n\t\t\t\t\t:reshare=\"reshare\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\t\t\t\t<!-- link shares list -->\n\t\t\t\t<SharingLinkList v-if=\"!loading\"\n\t\t\t\t\tref=\"linkShareList\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:shares=\"linkShares\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\t\t\t</section>\n\n\t\t\t<section v-if=\"sections.length > 0 && !showSharingDetailsView\">\n\t\t\t\t<div class=\"section-header\">\n\t\t\t\t\t<h4>{{ t('files_sharing', 'Additional shares') }}</h4>\n\t\t\t\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton class=\"hint-icon\"\n\t\t\t\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Additional shares explanation')\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<InfoIcon :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<p class=\"hint-body\">\n\t\t\t\t\t\t\t{{ additionalSharesHelpText }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</NcPopover>\n\t\t\t\t</div>\n\t\t\t\t<!-- additional entries, use it with cautious -->\n\t\t\t\t<div v-for=\"(section, index) in sections\"\n\t\t\t\t\t:ref=\"'section-' + index\"\n\t\t\t\t\t:key=\"index\"\n\t\t\t\t\tclass=\"sharingTab__additionalContent\">\n\t\t\t\t\t<component :is=\"section($refs['section-'+index], fileInfo)\" :file-info=\"fileInfo\" />\n\t\t\t\t</div>\n\n\t\t\t\t<!-- projects (deprecated as of NC25 (replaced by related_resources) - see instance config \"projects.enabled\" ; ignore this / remove it / move into own section) -->\n\t\t\t\t<div v-if=\"projectsEnabled\"\n\t\t\t\t\tv-show=\"!showSharingDetailsView && fileInfo\"\n\t\t\t\t\tclass=\"sharingTab__additionalContent\">\n\t\t\t\t\t<CollectionList :id=\"`${fileInfo.id}`\"\n\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\t:name=\"fileInfo.name\" />\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t</div>\n\n\t\t<!-- share details -->\n\t\t<SharingDetailsTab v-if=\"showSharingDetailsView\"\n\t\t\t:file-info=\"shareDetailsData.fileInfo\"\n\t\t\t:share=\"shareDetailsData.share\"\n\t\t\t@close-sharing-details=\"toggleShareDetailsView\"\n\t\t\t@add:share=\"addShare\"\n\t\t\t@remove:share=\"removeShare\" />\n\t</div>\n</template>\n\n<script>\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { orderBy } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { CollectionList } from 'nextcloud-vue-collections'\nimport { ShareType } from '@nextcloud/sharing'\n\nimport InfoIcon from 'vue-material-design-icons/Information.vue'\nimport NcPopover from '@nextcloud/vue/dist/Components/NcPopover.js'\n\nimport axios from '@nextcloud/axios'\nimport moment from '@nextcloud/moment'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\n\nimport { shareWithTitle } from '../utils/SharedWithMe.js'\n\nimport Config from '../services/ConfigService.ts'\nimport Share from '../models/Share.ts'\nimport SharingEntryInternal from '../components/SharingEntryInternal.vue'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\nimport SharingInput from '../components/SharingInput.vue'\n\nimport SharingInherited from './SharingInherited.vue'\nimport SharingLinkList from './SharingLinkList.vue'\nimport SharingList from './SharingList.vue'\nimport SharingDetailsTab from './SharingDetailsTab.vue'\n\nimport ShareDetails from '../mixins/ShareDetails.js'\n\nexport default {\n\tname: 'SharingTab',\n\n\tcomponents: {\n\t\tCollectionList,\n\t\tInfoIcon,\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tNcPopover,\n\t\tSharingEntryInternal,\n\t\tSharingEntrySimple,\n\t\tSharingInherited,\n\t\tSharingInput,\n\t\tSharingLinkList,\n\t\tSharingList,\n\t\tSharingDetailsTab,\n\t},\n\tmixins: [ShareDetails],\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tdeleteEvent: null,\n\t\t\terror: '',\n\t\t\texpirationInterval: null,\n\t\t\tloading: true,\n\n\t\t\tfileInfo: null,\n\n\t\t\t// reshare Share object\n\t\t\treshare: null,\n\t\t\tsharedWithMe: {},\n\t\t\tshares: [],\n\t\t\tlinkShares: [],\n\n\t\t\tsections: OCA.Sharing.ShareTabSections.getSections(),\n\t\t\tprojectsEnabled: loadState('core', 'projects_enabled', false),\n\t\t\tshowSharingDetailsView: false,\n\t\t\tshareDetailsData: {},\n\t\t\treturnFocusElement: null,\n\n\t\t\tinternalSharesHelpText: t('files_sharing', 'Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access.'),\n\t\t\texternalSharesHelpText: t('files_sharing', 'Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID.'),\n\t\t\tadditionalSharesHelpText: t('files_sharing', 'Shares that are not part of the internal or external shares. This can be shares from apps or other sources.'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Is this share shared with me?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisSharedWithMe() {\n\t\t\treturn Object.keys(this.sharedWithMe).length > 0\n\t\t},\n\n\t\tcanReshare() {\n\t\t\treturn !!(this.fileInfo.permissions & OC.PERMISSION_SHARE)\n\t\t\t\t|| !!(this.reshare && this.reshare.hasSharePermission && this.config.isResharingAllowed)\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Update current fileInfo and fetch new data\n\t\t *\n\t\t * @param {object} fileInfo the current file FileInfo\n\t\t */\n\t\tasync update(fileInfo) {\n\t\t\tthis.fileInfo = fileInfo\n\t\t\tthis.resetState()\n\t\t\tthis.getShares()\n\t\t},\n\n\t\t/**\n\t\t * Get the existing shares infos\n\t\t */\n\t\tasync getShares() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\n\t\t\t\t// init params\n\t\t\t\tconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\t\t\t\tconst format = 'json'\n\t\t\t\t// TODO: replace with proper getFUllpath implementation of our own FileInfo model\n\t\t\t\tconst path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\n\t\t\t\t// fetch shares\n\t\t\t\tconst fetchShares = axios.get(shareUrl, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\treshares: true,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tconst fetchSharedWithMe = axios.get(shareUrl, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tshared_with_me: true,\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\t// wait for data\n\t\t\t\tconst [shares, sharedWithMe] = await Promise.all([fetchShares, fetchSharedWithMe])\n\t\t\t\tthis.loading = false\n\n\t\t\t\t// process results\n\t\t\t\tthis.processSharedWithMe(sharedWithMe)\n\t\t\t\tthis.processShares(shares)\n\t\t\t} catch (error) {\n\t\t\t\tif (error?.response?.data?.ocs?.meta?.message) {\n\t\t\t\t\tthis.error = error.response.data.ocs.meta.message\n\t\t\t\t} else {\n\t\t\t\t\tthis.error = t('files_sharing', 'Unable to load the shares list')\n\t\t\t\t}\n\t\t\t\tthis.loading = false\n\t\t\t\tconsole.error('Error loading the shares list', error)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Reset the current view to its default state\n\t\t */\n\t\tresetState() {\n\t\t\tclearInterval(this.expirationInterval)\n\t\t\tthis.loading = true\n\t\t\tthis.error = ''\n\t\t\tthis.sharedWithMe = {}\n\t\t\tthis.shares = []\n\t\t\tthis.linkShares = []\n\t\t\tthis.showSharingDetailsView = false\n\t\t\tthis.shareDetailsData = {}\n\t\t},\n\n\t\t/**\n\t\t * Update sharedWithMe.subtitle with the appropriate\n\t\t * expiration time left\n\t\t *\n\t\t * @param {Share} share the sharedWith Share object\n\t\t */\n\t\tupdateExpirationSubtitle(share) {\n\t\t\tconst expiration = moment(share.expireDate).unix()\n\t\t\tthis.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'Expires {relativetime}', {\n\t\t\t\trelativetime: moment(expiration * 1000).fromNow(),\n\t\t\t}))\n\n\t\t\t// share have expired\n\t\t\tif (moment().unix() > expiration) {\n\t\t\t\tclearInterval(this.expirationInterval)\n\t\t\t\t// TODO: clear ui if share is expired\n\t\t\t\tthis.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'this share just expired.'))\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process the current shares data\n\t\t * and init shares[]\n\t\t *\n\t\t * @param {object} share the share ocs api request data\n\t\t * @param {object} share.data the request data\n\t\t */\n\t\tprocessShares({ data }) {\n\t\t\tif (data.ocs && data.ocs.data && data.ocs.data.length > 0) {\n\t\t\t\tconst shares = orderBy(\n\t\t\t\t\tdata.ocs.data.map(share => new Share(share)),\n\t\t\t\t\t[\n\t\t\t\t\t\t// First order by the \"share with\" label\n\t\t\t\t\t\t(share) => share.shareWithDisplayName,\n\t\t\t\t\t\t// Then by the label\n\t\t\t\t\t\t(share) => share.label,\n\t\t\t\t\t\t// And last resort order by createdTime\n\t\t\t\t\t\t(share) => share.createdTime,\n\t\t\t\t\t],\n\t\t\t\t)\n\n\t\t\t\tthis.linkShares = shares.filter(share => share.type === ShareType.Link || share.type === ShareType.Email)\n\t\t\t\tthis.shares = shares.filter(share => share.type !== ShareType.Link && share.type !== ShareType.Email)\n\n\t\t\t\tconsole.debug('Processed', this.linkShares.length, 'link share(s)')\n\t\t\t\tconsole.debug('Processed', this.shares.length, 'share(s)')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process the sharedWithMe share data\n\t\t * and init sharedWithMe\n\t\t *\n\t\t * @param {object} share the share ocs api request data\n\t\t * @param {object} share.data the request data\n\t\t */\n\t\tprocessSharedWithMe({ data }) {\n\t\t\tif (data.ocs && data.ocs.data && data.ocs.data[0]) {\n\t\t\t\tconst share = new Share(data)\n\t\t\t\tconst title = shareWithTitle(share)\n\t\t\t\tconst displayName = share.ownerDisplayName\n\t\t\t\tconst user = share.owner\n\n\t\t\t\tthis.sharedWithMe = {\n\t\t\t\t\tdisplayName,\n\t\t\t\t\ttitle,\n\t\t\t\t\tuser,\n\t\t\t\t}\n\t\t\t\tthis.reshare = share\n\n\t\t\t\t// If we have an expiration date, use it as subtitle\n\t\t\t\t// Refresh the status every 10s and clear if expired\n\t\t\t\tif (share.expireDate && moment(share.expireDate).unix() > moment().unix()) {\n\t\t\t\t\t// first update\n\t\t\t\t\tthis.updateExpirationSubtitle(share)\n\t\t\t\t\t// interval update\n\t\t\t\t\tthis.expirationInterval = setInterval(this.updateExpirationSubtitle, 10000, share)\n\t\t\t\t}\n\t\t\t} else if (this.fileInfo && this.fileInfo.shareOwnerId !== undefined ? this.fileInfo.shareOwnerId !== getCurrentUser().uid : false) {\n\t\t\t\t// Fallback to compare owner and current user.\n\t\t\t\tthis.sharedWithMe = {\n\t\t\t\t\tdisplayName: this.fileInfo.shareOwner,\n\t\t\t\t\ttitle: t(\n\t\t\t\t\t\t'files_sharing',\n\t\t\t\t\t\t'Shared with you by {owner}',\n\t\t\t\t\t\t{ owner: this.fileInfo.shareOwner },\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{ escape: false },\n\t\t\t\t\t),\n\t\t\t\t\tuser: this.fileInfo.shareOwnerId,\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add a new share into the shares list\n\t\t * and return the newly created share component\n\t\t *\n\t\t * @param {Share} share the share to add to the array\n\t\t * @param {Function} [resolve] a function to run after the share is added and its component initialized\n\t\t */\n\t\taddShare(share, resolve = () => { }) {\n\t\t\t// only catching share type MAIL as link shares are added differently\n\t\t\t// meaning: not from the ShareInput\n\t\t\tif (share.type === ShareType.Email) {\n\t\t\t\tthis.linkShares.unshift(share)\n\t\t\t} else {\n\t\t\t\tthis.shares.unshift(share)\n\t\t\t}\n\t\t\tthis.awaitForShare(share, resolve)\n\t\t},\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\t// Get reference for this.linkShares or this.shares\n\t\t\tconst shareList\n\t\t\t\t= share.type === ShareType.Email\n\t\t\t\t\t|| share.type === ShareType.Link\n\t\t\t\t\t? this.linkShares\n\t\t\t\t\t: this.shares\n\t\t\tconst index = shareList.findIndex(item => item.id === share.id)\n\t\t\tif (index !== -1) {\n\t\t\t\tshareList.splice(index, 1)\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Await for next tick and render after the list updated\n\t\t * Then resolve with the matched vue component of the\n\t\t * provided share object\n\t\t *\n\t\t * @param {Share} share newly created share\n\t\t * @param {Function} resolve a function to execute after\n\t\t */\n\t\tawaitForShare(share, resolve) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tlet listComponent = this.$refs.shareList\n\t\t\t\t// Only mail shares comes from the input, link shares\n\t\t\t\t// are managed internally in the SharingLinkList component\n\t\t\t\tif (share.type === ShareType.Email) {\n\t\t\t\t\tlistComponent = this.$refs.linkShareList\n\t\t\t\t}\n\t\t\t\tconst newShare = listComponent.$children.find(component => component.share === share)\n\t\t\t\tif (newShare) {\n\t\t\t\t\tresolve(newShare)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\ttoggleShareDetailsView(eventData) {\n\t\t\tif (!this.showSharingDetailsView) {\n\t\t\t\tconst isAction = Array.from(document.activeElement.classList)\n\t\t\t\t\t.some(className => className.startsWith('action-'))\n\t\t\t\tif (isAction) {\n\t\t\t\t\tconst menuId = document.activeElement.closest('[role=\"menu\"]')?.id\n\t\t\t\t\tthis.returnFocusElement = document.querySelector(`[aria-controls=\"${menuId}\"]`)\n\t\t\t\t} else {\n\t\t\t\t\tthis.returnFocusElement = document.activeElement\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (eventData) {\n\t\t\t\tthis.shareDetailsData = eventData\n\t\t\t}\n\n\t\t\tthis.showSharingDetailsView = !this.showSharingDetailsView\n\n\t\t\tif (!this.showSharingDetailsView) {\n\t\t\t\tthis.$nextTick(() => { // Wait for next tick as the element must be visible to be focused\n\t\t\t\t\tthis.returnFocusElement?.focus()\n\t\t\t\t\tthis.returnFocusElement = null\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\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\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: 44px 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n</style>\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\nconst shareWithTitle = function(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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=15a4df38&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=15a4df38&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=15a4df38&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=15a4df38&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 \"15a4df38\",\n null\n \n)\n\nexport default component.exports","import { o as logger } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { q, F, s, N, t, P, c, l, m, n, a, g, p, b, r, d, h, f, k, j, e, i } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"path\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewFileMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? 1;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {Folder} context the creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nconst getNewFileMenu = function() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewFileMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n};\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n DefaultType2[\"DEFAULT\"] = \"default\";\n DefaultType2[\"HIDDEN\"] = \"hidden\";\n return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n }\n}\nconst registerFileAction = function(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n};\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nconst registerFileListAction = (action) => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n};\nconst getFileListActions = () => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n};\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nconst registerFileListHeaders = function(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n};\nvar InvalidFilenameErrorReason = /* @__PURE__ */ ((InvalidFilenameErrorReason2) => {\n InvalidFilenameErrorReason2[\"ReservedName\"] = \"reserved name\";\n InvalidFilenameErrorReason2[\"Character\"] = \"character\";\n InvalidFilenameErrorReason2[\"Extension\"] = \"extension\";\n return InvalidFilenameErrorReason2;\n})(InvalidFilenameErrorReason || {});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: \"character\", filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({\n filename,\n segment: filename,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({\n filename,\n segment: basename2,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [\".part\", \".filepart\"];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: \"extension\", filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n2) => `(${n2})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i2 = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i2++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch (e2) {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers2.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n FilesSortingMode2[\"Name\"] = \"basename\";\n FilesSortingMode2[\"Modified\"] = \"mtime\";\n FilesSortingMode2[\"Size\"] = \"size\";\n return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: \"basename\",\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n const basename2 = (name) => name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n const identifiers2 = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v.displayname || v.attributes?.displayname || v.basename),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers2, orders);\n}\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n * @param view The view to register\n * @throws `Error` is thrown if a view with the same id is already registered\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`View id ${view.id} is already registered`);\n }\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n * @fires UpdateActiveViewEvent\n * @param view New active view\n */\n setActive(view) {\n this._currentView = view;\n const event = new CustomEvent(\"updateActive\", { detail: view });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nconst getNavigation = function() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n};\nclass Column {\n _column;\n constructor(column) {\n isValidColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst isValidColumn = function(column) {\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n if (column.sort && typeof column.sort !== \"function\") {\n throw new Error(\"Column sortFunction must be a function\");\n }\n if (column.summary && typeof column.summary !== \"function\") {\n throw new Error(\"Column summary must be a function\");\n }\n return true;\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar validator = {};\nvar util = {};\nvar hasRequiredUtil;\nfunction requireUtil() {\n if (hasRequiredUtil) return util;\n hasRequiredUtil = 1;\n (function(exports) {\n const nameStartChar = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n const nameChar = nameStartChar + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n const nameRegexp = \"[\" + nameStartChar + \"][\" + nameChar + \"]*\";\n const regexName = new RegExp(\"^\" + nameRegexp + \"$\");\n const getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n };\n const isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === \"undefined\");\n };\n exports.isExist = function(v) {\n return typeof v !== \"undefined\";\n };\n exports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n };\n exports.merge = function(target, a2, arrayMode) {\n if (a2) {\n const keys = Object.keys(a2);\n const len = keys.length;\n for (let i2 = 0; i2 < len; i2++) {\n if (arrayMode === \"strict\") {\n target[keys[i2]] = [a2[keys[i2]]];\n } else {\n target[keys[i2]] = a2[keys[i2]];\n }\n }\n }\n };\n exports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return \"\";\n }\n };\n exports.isName = isName;\n exports.getAllMatches = getAllMatches;\n exports.nameRegexp = nameRegexp;\n })(util);\n return util;\n}\nvar hasRequiredValidator;\nfunction requireValidator() {\n if (hasRequiredValidator) return validator;\n hasRequiredValidator = 1;\n const util2 = requireUtil();\n const defaultOptions = {\n allowBooleanAttributes: false,\n //A tag can have attributes without any value\n unpairedTags: []\n };\n validator.validate = function(xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n const tags = [];\n let tagFound = false;\n let reachedRoot = false;\n if (xmlData[0] === \"\\uFEFF\") {\n xmlData = xmlData.substr(1);\n }\n for (let i2 = 0; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\" && xmlData[i2 + 1] === \"?\") {\n i2 += 2;\n i2 = readPI(xmlData, i2);\n if (i2.err) return i2;\n } else if (xmlData[i2] === \"<\") {\n let tagStartPos = i2;\n i2++;\n if (xmlData[i2] === \"!\") {\n i2 = readCommentAndCDATA(xmlData, i2);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i2] === \"/\") {\n closingTag = true;\n i2++;\n }\n let tagName = \"\";\n for (; i2 < xmlData.length && xmlData[i2] !== \">\" && xmlData[i2] !== \" \" && xmlData[i2] !== \"\t\" && xmlData[i2] !== \"\\n\" && xmlData[i2] !== \"\\r\"; i2++) {\n tagName += xmlData[i2];\n }\n tagName = tagName.trim();\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substring(0, tagName.length - 1);\n i2--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\" + tagName + \"' is an invalid name.\";\n }\n return getErrorObject(\"InvalidTag\", msg, getLineNumberForPosition(xmlData, i2));\n }\n const result = readAttributeStr(xmlData, i2);\n if (result === false) {\n return getErrorObject(\"InvalidAttr\", \"Attributes for '\" + tagName + \"' have open quote.\", getLineNumberForPosition(xmlData, i2));\n }\n let attrStr = result.value;\n i2 = result.index;\n if (attrStr[attrStr.length - 1] === \"/\") {\n const attrStrStart = i2 - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n } else {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i2));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else if (tags.length === 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject(\n \"InvalidTag\",\n \"Expected closing tag '\" + otg.tagName + \"' (opened in line \" + openPos.line + \", col \" + openPos.col + \") instead of closing tag '\" + tagName + \"'.\",\n getLineNumberForPosition(xmlData, tagStartPos)\n );\n }\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i2 - attrStr.length + isValid.err.line));\n }\n if (reachedRoot === true) {\n return getErrorObject(\"InvalidXml\", \"Multiple possible root nodes found.\", getLineNumberForPosition(xmlData, i2));\n } else if (options.unpairedTags.indexOf(tagName) !== -1) ;\n else {\n tags.push({ tagName, tagStartPos });\n }\n tagFound = true;\n }\n for (i2++; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n if (xmlData[i2 + 1] === \"!\") {\n i2++;\n i2 = readCommentAndCDATA(xmlData, i2);\n continue;\n } else if (xmlData[i2 + 1] === \"?\") {\n i2 = readPI(xmlData, ++i2);\n if (i2.err) return i2;\n } else {\n break;\n }\n } else if (xmlData[i2] === \"&\") {\n const afterAmp = validateAmpersand(xmlData, i2);\n if (afterAmp == -1)\n return getErrorObject(\"InvalidChar\", \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i2));\n i2 = afterAmp;\n } else {\n if (reachedRoot === true && !isWhiteSpace(xmlData[i2])) {\n return getErrorObject(\"InvalidXml\", \"Extra text at the end\", getLineNumberForPosition(xmlData, i2));\n }\n }\n }\n if (xmlData[i2] === \"<\") {\n i2--;\n }\n }\n } else {\n if (isWhiteSpace(xmlData[i2])) {\n continue;\n }\n return getErrorObject(\"InvalidChar\", \"char '\" + xmlData[i2] + \"' is not expected.\", getLineNumberForPosition(xmlData, i2));\n }\n }\n if (!tagFound) {\n return getErrorObject(\"InvalidXml\", \"Start tag expected.\", 1);\n } else if (tags.length == 1) {\n return getErrorObject(\"InvalidTag\", \"Unclosed tag '\" + tags[0].tagName + \"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n } else if (tags.length > 0) {\n return getErrorObject(\"InvalidXml\", \"Invalid '\" + JSON.stringify(tags.map((t2) => t2.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n }\n return true;\n };\n function isWhiteSpace(char) {\n return char === \" \" || char === \"\t\" || char === \"\\n\" || char === \"\\r\";\n }\n function readPI(xmlData, i2) {\n const start = i2;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] == \"?\" || xmlData[i2] == \" \") {\n const tagname = xmlData.substr(start, i2 - start);\n if (i2 > 5 && tagname === \"xml\") {\n return getErrorObject(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", getLineNumberForPosition(xmlData, i2));\n } else if (xmlData[i2] == \"?\" && xmlData[i2 + 1] == \">\") {\n i2++;\n break;\n } else {\n continue;\n }\n }\n }\n return i2;\n }\n function readCommentAndCDATA(xmlData, i2) {\n if (xmlData.length > i2 + 5 && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \"-\") {\n for (i2 += 3; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"-\" && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \">\") {\n i2 += 2;\n break;\n }\n }\n } else if (xmlData.length > i2 + 8 && xmlData[i2 + 1] === \"D\" && xmlData[i2 + 2] === \"O\" && xmlData[i2 + 3] === \"C\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"Y\" && xmlData[i2 + 6] === \"P\" && xmlData[i2 + 7] === \"E\") {\n let angleBracketsCount = 1;\n for (i2 += 8; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n angleBracketsCount++;\n } else if (xmlData[i2] === \">\") {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (xmlData.length > i2 + 9 && xmlData[i2 + 1] === \"[\" && xmlData[i2 + 2] === \"C\" && xmlData[i2 + 3] === \"D\" && xmlData[i2 + 4] === \"A\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"A\" && xmlData[i2 + 7] === \"[\") {\n for (i2 += 8; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"]\" && xmlData[i2 + 1] === \"]\" && xmlData[i2 + 2] === \">\") {\n i2 += 2;\n break;\n }\n }\n }\n return i2;\n }\n const doubleQuote = '\"';\n const singleQuote = \"'\";\n function readAttributeStr(xmlData, i2) {\n let attrStr = \"\";\n let startChar = \"\";\n let tagClosed = false;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === doubleQuote || xmlData[i2] === singleQuote) {\n if (startChar === \"\") {\n startChar = xmlData[i2];\n } else if (startChar !== xmlData[i2]) ;\n else {\n startChar = \"\";\n }\n } else if (xmlData[i2] === \">\") {\n if (startChar === \"\") {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i2];\n }\n if (startChar !== \"\") {\n return false;\n }\n return {\n value: attrStr,\n index: i2,\n tagClosed\n };\n }\n const validAttrStrRegxp = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\n function validateAttributeString(attrStr, options) {\n const matches = util2.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n for (let i2 = 0; i2 < matches.length; i2++) {\n if (matches[i2][1].length === 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' has no space in starting.\", getPositionFromMatch(matches[i2]));\n } else if (matches[i2][3] !== void 0 && matches[i2][4] === void 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' is without value.\", getPositionFromMatch(matches[i2]));\n } else if (matches[i2][3] === void 0 && !options.allowBooleanAttributes) {\n return getErrorObject(\"InvalidAttr\", \"boolean attribute '\" + matches[i2][2] + \"' is not allowed.\", getPositionFromMatch(matches[i2]));\n }\n const attrName = matches[i2][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is an invalid name.\", getPositionFromMatch(matches[i2]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n attrNames[attrName] = 1;\n } else {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is repeated.\", getPositionFromMatch(matches[i2]));\n }\n }\n return true;\n }\n function validateNumberAmpersand(xmlData, i2) {\n let re2 = /\\d/;\n if (xmlData[i2] === \"x\") {\n i2++;\n re2 = /[\\da-fA-F]/;\n }\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \";\")\n return i2;\n if (!xmlData[i2].match(re2))\n break;\n }\n return -1;\n }\n function validateAmpersand(xmlData, i2) {\n i2++;\n if (xmlData[i2] === \";\")\n return -1;\n if (xmlData[i2] === \"#\") {\n i2++;\n return validateNumberAmpersand(xmlData, i2);\n }\n let count = 0;\n for (; i2 < xmlData.length; i2++, count++) {\n if (xmlData[i2].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i2] === \";\")\n break;\n return -1;\n }\n return i2;\n }\n function getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col\n }\n };\n }\n function validateAttrName(attrName) {\n return util2.isName(attrName);\n }\n function validateTagName(tagname) {\n return util2.isName(tagname);\n }\n function getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n }\n function getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n }\n return validator;\n}\nvar OptionsBuilder = {};\nvar hasRequiredOptionsBuilder;\nfunction requireOptionsBuilder() {\n if (hasRequiredOptionsBuilder) return OptionsBuilder;\n hasRequiredOptionsBuilder = 1;\n const defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n removeNSPrefix: false,\n // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false,\n //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true,\n //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [],\n //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function(tagName, jPath, attrs) {\n return tagName;\n }\n // skipEmptyListItem: false\n };\n const buildOptions = function(options) {\n return Object.assign({}, defaultOptions, options);\n };\n OptionsBuilder.buildOptions = buildOptions;\n OptionsBuilder.defaultOptions = defaultOptions;\n return OptionsBuilder;\n}\nvar xmlNode;\nvar hasRequiredXmlNode;\nfunction requireXmlNode() {\n if (hasRequiredXmlNode) return xmlNode;\n hasRequiredXmlNode = 1;\n class XmlNode {\n constructor(tagname) {\n this.tagname = tagname;\n this.child = [];\n this[\":@\"] = {};\n }\n add(key, val) {\n if (key === \"__proto__\") key = \"#__proto__\";\n this.child.push({ [key]: val });\n }\n addChild(node) {\n if (node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if (node[\":@\"] && Object.keys(node[\":@\"]).length > 0) {\n this.child.push({ [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n } else {\n this.child.push({ [node.tagname]: node.child });\n }\n }\n }\n xmlNode = XmlNode;\n return xmlNode;\n}\nvar DocTypeReader;\nvar hasRequiredDocTypeReader;\nfunction requireDocTypeReader() {\n if (hasRequiredDocTypeReader) return DocTypeReader;\n hasRequiredDocTypeReader = 1;\n const util2 = requireUtil();\n function readDocType(xmlData, i2) {\n const entities = {};\n if (xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"C\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"Y\" && xmlData[i2 + 7] === \"P\" && xmlData[i2 + 8] === \"E\") {\n i2 = i2 + 9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\" && !comment) {\n if (hasBody && isEntity(xmlData, i2)) {\n i2 += 7;\n let entityName, val;\n [entityName, val, i2] = readEntityExp(xmlData, i2 + 1);\n if (val.indexOf(\"&\") === -1)\n entities[validateEntityName(entityName)] = {\n regx: RegExp(`&${entityName};`, \"g\"),\n val\n };\n } else if (hasBody && isElement(xmlData, i2)) i2 += 8;\n else if (hasBody && isAttlist(xmlData, i2)) i2 += 8;\n else if (hasBody && isNotation(xmlData, i2)) i2 += 9;\n else comment = true;\n angleBracketsCount++;\n exp = \"\";\n } else if (xmlData[i2] === \">\") {\n if (comment) {\n if (xmlData[i2 - 1] === \"-\" && xmlData[i2 - 2] === \"-\") {\n comment = false;\n angleBracketsCount--;\n }\n } else {\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n } else if (xmlData[i2] === \"[\") {\n hasBody = true;\n } else {\n exp += xmlData[i2];\n }\n }\n if (angleBracketsCount !== 0) {\n throw new Error(`Unclosed DOCTYPE`);\n }\n } else {\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return { entities, i: i2 };\n }\n function readEntityExp(xmlData, i2) {\n let entityName = \"\";\n for (; i2 < xmlData.length && (xmlData[i2] !== \"'\" && xmlData[i2] !== '\"'); i2++) {\n entityName += xmlData[i2];\n }\n entityName = entityName.trim();\n if (entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n const startChar = xmlData[i2++];\n let val = \"\";\n for (; i2 < xmlData.length && xmlData[i2] !== startChar; i2++) {\n val += xmlData[i2];\n }\n return [entityName, val, i2];\n }\n function isEntity(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"N\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"I\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"Y\") return true;\n return false;\n }\n function isElement(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"L\" && xmlData[i2 + 4] === \"E\" && xmlData[i2 + 5] === \"M\" && xmlData[i2 + 6] === \"E\" && xmlData[i2 + 7] === \"N\" && xmlData[i2 + 8] === \"T\") return true;\n return false;\n }\n function isAttlist(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"A\" && xmlData[i2 + 3] === \"T\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"L\" && xmlData[i2 + 6] === \"I\" && xmlData[i2 + 7] === \"S\" && xmlData[i2 + 8] === \"T\") return true;\n return false;\n }\n function isNotation(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"N\" && xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"A\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"I\" && xmlData[i2 + 8] === \"O\" && xmlData[i2 + 9] === \"N\") return true;\n return false;\n }\n function validateEntityName(name) {\n if (util2.isName(name))\n return name;\n else\n throw new Error(`Invalid entity name ${name}`);\n }\n DocTypeReader = readDocType;\n return DocTypeReader;\n}\nvar strnum;\nvar hasRequiredStrnum;\nfunction requireStrnum() {\n if (hasRequiredStrnum) return strnum;\n hasRequiredStrnum = 1;\n const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\n const numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n if (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n }\n if (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n }\n const consider = {\n hex: true,\n leadingZeros: true,\n decimalPoint: \".\",\n eNotation: true\n //skipLike: /regex/\n };\n function toNumber(str, options = {}) {\n options = Object.assign({}, consider, options);\n if (!str || typeof str !== \"string\") return str;\n let trimmedStr = str.trim();\n if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr)) return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n } else {\n const match = numRegex.exec(trimmedStr);\n if (match) {\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]);\n const eNotation = match[4] || match[6];\n if (!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str;\n else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str;\n else {\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n if (numStr.search(/[eE]/) !== -1) {\n if (options.eNotation) return num;\n else return str;\n } else if (eNotation) {\n if (options.eNotation) return num;\n else return str;\n } else if (trimmedStr.indexOf(\".\") !== -1) {\n if (numStr === \"0\" && numTrimmedByZeros === \"\") return num;\n else if (numStr === numTrimmedByZeros) return num;\n else if (sign && numStr === \"-\" + numTrimmedByZeros) return num;\n else return str;\n }\n if (leadingZeros) {\n if (numTrimmedByZeros === numStr) return num;\n else if (sign + numTrimmedByZeros === numStr) return num;\n else return str;\n }\n if (trimmedStr === numStr) return num;\n else if (trimmedStr === sign + numStr) return num;\n return str;\n }\n } else {\n return str;\n }\n }\n }\n function trimZeros(numStr) {\n if (numStr && numStr.indexOf(\".\") !== -1) {\n numStr = numStr.replace(/0+$/, \"\");\n if (numStr === \".\") numStr = \"0\";\n else if (numStr[0] === \".\") numStr = \"0\" + numStr;\n else if (numStr[numStr.length - 1] === \".\") numStr = numStr.substr(0, numStr.length - 1);\n return numStr;\n }\n return numStr;\n }\n strnum = toNumber;\n return strnum;\n}\nvar ignoreAttributes;\nvar hasRequiredIgnoreAttributes;\nfunction requireIgnoreAttributes() {\n if (hasRequiredIgnoreAttributes) return ignoreAttributes;\n hasRequiredIgnoreAttributes = 1;\n function getIgnoreAttributesFn(ignoreAttributes2) {\n if (typeof ignoreAttributes2 === \"function\") {\n return ignoreAttributes2;\n }\n if (Array.isArray(ignoreAttributes2)) {\n return (attrName) => {\n for (const pattern of ignoreAttributes2) {\n if (typeof pattern === \"string\" && attrName === pattern) {\n return true;\n }\n if (pattern instanceof RegExp && pattern.test(attrName)) {\n return true;\n }\n }\n };\n }\n return () => false;\n }\n ignoreAttributes = getIgnoreAttributesFn;\n return ignoreAttributes;\n}\nvar OrderedObjParser_1;\nvar hasRequiredOrderedObjParser;\nfunction requireOrderedObjParser() {\n if (hasRequiredOrderedObjParser) return OrderedObjParser_1;\n hasRequiredOrderedObjParser = 1;\n const util2 = requireUtil();\n const xmlNode2 = requireXmlNode();\n const readDocType = requireDocTypeReader();\n const toNumber = requireStrnum();\n const getIgnoreAttributesFn = requireIgnoreAttributes();\n class OrderedObjParser {\n constructor(options) {\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n \"quot\": { regex: /&(quot|#34|#x22);/g, val: '\"' }\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\": { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 16)) }\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n }\n }\n function addExternalEntities(externalEntities) {\n const entKeys = Object.keys(externalEntities);\n for (let i2 = 0; i2 < entKeys.length; i2++) {\n const ent = entKeys[i2];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\" + ent + \";\", \"g\"),\n val: externalEntities[ent]\n };\n }\n }\n function parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== void 0) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if (val.length > 0) {\n if (!escapeEntities) val = this.replaceEntitiesValue(val);\n const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if (newval === null || newval === void 0) {\n return val;\n } else if (typeof newval !== typeof val || newval !== val) {\n return newval;\n } else if (this.options.trimValues) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n const trimmedVal = val.trim();\n if (trimmedVal === val) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n return val;\n }\n }\n }\n }\n }\n function resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(\":\");\n const prefix = tagname.charAt(0) === \"/\" ? \"/\" : \"\";\n if (tags[0] === \"xmlns\") {\n return \"\";\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n }\n const attrsRegx = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\n function buildAttributesMap(attrStr, jPath, tagName) {\n if (this.options.ignoreAttributes !== true && typeof attrStr === \"string\") {\n const matches = util2.getAllMatches(attrStr, attrsRegx);\n const len = matches.length;\n const attrs = {};\n for (let i2 = 0; i2 < len; i2++) {\n const attrName = this.resolveNameSpace(matches[i2][1]);\n if (this.ignoreAttributesFn(attrName, jPath)) {\n continue;\n }\n let oldVal = matches[i2][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if (aName === \"__proto__\") aName = \"#__proto__\";\n if (oldVal !== void 0) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if (newVal === null || newVal === void 0) {\n attrs[aName] = oldVal;\n } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n attrs[aName] = newVal;\n } else {\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n }\n const parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n const xmlObj = new xmlNode2(\"!xml\");\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for (let i2 = 0; i2 < xmlData.length; i2++) {\n const ch = xmlData[i2];\n if (ch === \"<\") {\n if (xmlData[i2 + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i2, \"Closing Tag is not closed.\");\n let tagName = xmlData.substring(i2 + 2, closeIndex).trim();\n if (this.options.removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n }\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode) {\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n const lastTagName = jPath.substring(jPath.lastIndexOf(\".\") + 1);\n if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n }\n let propIndex = 0;\n if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n propIndex = jPath.lastIndexOf(\".\", jPath.lastIndexOf(\".\") - 1);\n this.tagsNodeStack.pop();\n } else {\n propIndex = jPath.lastIndexOf(\".\");\n }\n jPath = jPath.substring(0, propIndex);\n currentNode = this.tagsNodeStack.pop();\n textData = \"\";\n i2 = closeIndex;\n } else if (xmlData[i2 + 1] === \"?\") {\n let tagData = readTagExp(xmlData, i2, false, \"?>\");\n if (!tagData) throw new Error(\"Pi Tag is not closed.\");\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if (this.options.ignoreDeclaration && tagData.tagName === \"?xml\" || this.options.ignorePiTags) ;\n else {\n const childNode = new xmlNode2(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n }\n i2 = tagData.closeIndex + 1;\n } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n const endIndex = findClosingIndex(xmlData, \"-->\", i2 + 4, \"Comment is not closed.\");\n if (this.options.commentPropName) {\n const comment = xmlData.substring(i2 + 4, endIndex - 2);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n }\n i2 = endIndex;\n } else if (xmlData.substr(i2 + 1, 2) === \"!D\") {\n const result = readDocType(xmlData, i2);\n this.docTypeEntities = result.entities;\n i2 = result.i;\n } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i2 + 9, closeIndex);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n if (val == void 0) val = \"\";\n if (this.options.cdataPropName) {\n currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n } else {\n currentNode.add(this.options.textNodeName, val);\n }\n i2 = closeIndex + 2;\n } else {\n let result = readTagExp(xmlData, i2, this.options.removeNSPrefix);\n let tagName = result.tagName;\n const rawTagName = result.rawTagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode && textData) {\n if (currentNode.tagname !== \"!xml\") {\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n const lastTag = currentNode;\n if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n currentNode = this.tagsNodeStack.pop();\n jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n }\n if (tagName !== xmlObj.tagname) {\n jPath += jPath ? \".\" + tagName : tagName;\n }\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n let tagContent = \"\";\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n i2 = result.closeIndex;\n } else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n i2 = result.closeIndex;\n } else {\n const result2 = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n if (!result2) throw new Error(`Unexpected end of ${rawTagName}`);\n i2 = result2.i;\n tagContent = result2.tagContent;\n }\n const childNode = new xmlNode2(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n if (tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n this.addChild(currentNode, childNode, jPath);\n } else {\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n const childNode = new xmlNode2(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n } else {\n const childNode = new xmlNode2(tagName);\n this.tagsNodeStack.push(currentNode);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n currentNode = childNode;\n }\n textData = \"\";\n i2 = closeIndex;\n }\n }\n } else {\n textData += xmlData[i2];\n }\n }\n return xmlObj.child;\n };\n function addChild(currentNode, childNode, jPath) {\n const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"]);\n if (result === false) ;\n else if (typeof result === \"string\") {\n childNode.tagname = result;\n currentNode.addChild(childNode);\n } else {\n currentNode.addChild(childNode);\n }\n }\n const replaceEntitiesValue = function(val) {\n if (this.options.processEntities) {\n for (let entityName in this.docTypeEntities) {\n const entity = this.docTypeEntities[entityName];\n val = val.replace(entity.regx, entity.val);\n }\n for (let entityName in this.lastEntities) {\n const entity = this.lastEntities[entityName];\n val = val.replace(entity.regex, entity.val);\n }\n if (this.options.htmlEntities) {\n for (let entityName in this.htmlEntities) {\n const entity = this.htmlEntities[entityName];\n val = val.replace(entity.regex, entity.val);\n }\n }\n val = val.replace(this.ampEntity.regex, this.ampEntity.val);\n }\n return val;\n };\n function saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) {\n if (isLeafNode === void 0) isLeafNode = Object.keys(currentNode.child).length === 0;\n textData = this.parseTextData(\n textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode\n );\n if (textData !== void 0 && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n }\n function isItStopNode(stopNodes, jPath, currentTagName) {\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if (allNodesExp === stopNodeExp || jPath === stopNodeExp) return true;\n }\n return false;\n }\n function tagExpWithClosingIndex(xmlData, i2, closingChar = \">\") {\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i2; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if (closingChar[1]) {\n if (xmlData[index + 1] === closingChar[1]) {\n return {\n data: tagExp,\n index\n };\n }\n } else {\n return {\n data: tagExp,\n index\n };\n }\n } else if (ch === \"\t\") {\n ch = \" \";\n }\n tagExp += ch;\n }\n }\n function findClosingIndex(xmlData, str, i2, errMsg) {\n const closingIndex = xmlData.indexOf(str, i2);\n if (closingIndex === -1) {\n throw new Error(errMsg);\n } else {\n return closingIndex + str.length - 1;\n }\n }\n function readTagExp(xmlData, i2, removeNSPrefix, closingChar = \">\") {\n const result = tagExpWithClosingIndex(xmlData, i2 + 1, closingChar);\n if (!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if (separatorIndex !== -1) {\n tagName = tagExp.substring(0, separatorIndex);\n tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n }\n const rawTagName = tagName;\n if (removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n return {\n tagName,\n tagExp,\n closeIndex,\n attrExpPresent,\n rawTagName\n };\n }\n function readStopNodeData(xmlData, tagName, i2) {\n const startIndex = i2;\n let openTagCount = 1;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n if (xmlData[i2 + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i2, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i2 + 2, closeIndex).trim();\n if (closeTagName === tagName) {\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i2),\n i: closeIndex\n };\n }\n }\n i2 = closeIndex;\n } else if (xmlData[i2 + 1] === \"?\") {\n const closeIndex = findClosingIndex(xmlData, \"?>\", i2 + 1, \"StopNode is not closed.\");\n i2 = closeIndex;\n } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n const closeIndex = findClosingIndex(xmlData, \"-->\", i2 + 3, \"StopNode is not closed.\");\n i2 = closeIndex;\n } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"StopNode is not closed.\") - 2;\n i2 = closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i2, \">\");\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n openTagCount++;\n }\n i2 = tagData.closeIndex;\n }\n }\n }\n }\n }\n function parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === \"string\") {\n const newval = val.trim();\n if (newval === \"true\") return true;\n else if (newval === \"false\") return false;\n else return toNumber(val, options);\n } else {\n if (util2.isExist(val)) {\n return val;\n } else {\n return \"\";\n }\n }\n }\n OrderedObjParser_1 = OrderedObjParser;\n return OrderedObjParser_1;\n}\nvar node2json = {};\nvar hasRequiredNode2json;\nfunction requireNode2json() {\n if (hasRequiredNode2json) return node2json;\n hasRequiredNode2json = 1;\n function prettify(node, options) {\n return compress(node, options);\n }\n function compress(arr, options, jPath) {\n let text;\n const compressedObj = {};\n for (let i2 = 0; i2 < arr.length; i2++) {\n const tagObj = arr[i2];\n const property = propName(tagObj);\n let newJpath = \"\";\n if (jPath === void 0) newJpath = property;\n else newJpath = jPath + \".\" + property;\n if (property === options.textNodeName) {\n if (text === void 0) text = tagObj[property];\n else text += \"\" + tagObj[property];\n } else if (property === void 0) {\n continue;\n } else if (tagObj[property]) {\n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n if (tagObj[\":@\"]) {\n assignAttributes(val, tagObj[\":@\"], newJpath, options);\n } else if (Object.keys(val).length === 1 && val[options.textNodeName] !== void 0 && !options.alwaysCreateTextNode) {\n val = val[options.textNodeName];\n } else if (Object.keys(val).length === 0) {\n if (options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n if (compressedObj[property] !== void 0 && compressedObj.hasOwnProperty(property)) {\n if (!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [compressedObj[property]];\n }\n compressedObj[property].push(val);\n } else {\n if (options.isArray(property, newJpath, isLeaf)) {\n compressedObj[property] = [val];\n } else {\n compressedObj[property] = val;\n }\n }\n }\n }\n if (typeof text === \"string\") {\n if (text.length > 0) compressedObj[options.textNodeName] = text;\n } else if (text !== void 0) compressedObj[options.textNodeName] = text;\n return compressedObj;\n }\n function propName(obj) {\n const keys = Object.keys(obj);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n if (key !== \":@\") return key;\n }\n }\n function assignAttributes(obj, attrMap, jpath, options) {\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length;\n for (let i2 = 0; i2 < len; i2++) {\n const atrrName = keys[i2];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [attrMap[atrrName]];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n }\n function isLeafTag(obj, options) {\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n if (propCount === 0) {\n return true;\n }\n if (propCount === 1 && (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)) {\n return true;\n }\n return false;\n }\n node2json.prettify = prettify;\n return node2json;\n}\nvar XMLParser_1;\nvar hasRequiredXMLParser;\nfunction requireXMLParser() {\n if (hasRequiredXMLParser) return XMLParser_1;\n hasRequiredXMLParser = 1;\n const { buildOptions } = requireOptionsBuilder();\n const OrderedObjParser = requireOrderedObjParser();\n const { prettify } = requireNode2json();\n const validator2 = requireValidator();\n class XMLParser {\n constructor(options) {\n this.externalEntities = {};\n this.options = buildOptions(options);\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData, validationOption) {\n if (typeof xmlData === \"string\") ;\n else if (xmlData.toString) {\n xmlData = xmlData.toString();\n } else {\n throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n }\n if (validationOption) {\n if (validationOption === true) validationOption = {};\n const result = validator2.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`);\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if (this.options.preserveOrder || orderedResult === void 0) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value) {\n if (value.indexOf(\"&\") !== -1) {\n throw new Error(\"Entity value can't have '&'\");\n } else if (key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1) {\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\");\n } else if (value === \"&\") {\n throw new Error(\"An entity with value '&' is not permitted\");\n } else {\n this.externalEntities[key] = value;\n }\n }\n }\n XMLParser_1 = XMLParser;\n return XMLParser_1;\n}\nvar orderedJs2Xml;\nvar hasRequiredOrderedJs2Xml;\nfunction requireOrderedJs2Xml() {\n if (hasRequiredOrderedJs2Xml) return orderedJs2Xml;\n hasRequiredOrderedJs2Xml = 1;\n const EOL = \"\\n\";\n function toXml(jArray, options) {\n let indentation = \"\";\n if (options.format && options.indentBy.length > 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n }\n function arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n for (let i2 = 0; i2 < arr.length; i2++) {\n const tagObj = arr[i2];\n const tagName = propName(tagObj);\n if (tagName === void 0) continue;\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName;\n else newJPath = `${jPath}.${tagName}`;\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr2 = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\";\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr2}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n xmlStr += indentation + options.indentBy + tagValue + indentation;\n } else {\n xmlStr += tagValue;\n }\n xmlStr += `</${tagName}>`;\n }\n isPreviousElementTag = true;\n }\n return xmlStr;\n }\n function propName(obj) {\n const keys = Object.keys(obj);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n if (!obj.hasOwnProperty(key)) continue;\n if (key !== \":@\") return key;\n }\n }\n function attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n if (!attrMap.hasOwnProperty(attr)) continue;\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n }\n function isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n }\n function replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i2 = 0; i2 < options.entities.length; i2++) {\n const entity = options.entities[i2];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n }\n orderedJs2Xml = toXml;\n return orderedJs2Xml;\n}\nvar json2xml;\nvar hasRequiredJson2xml;\nfunction requireJson2xml() {\n if (hasRequiredJson2xml) return json2xml;\n hasRequiredJson2xml = 1;\n const buildFromOrderedJs = requireOrderedJs2Xml();\n const getIgnoreAttributesFn = requireIgnoreAttributes();\n const defaultOptions = {\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: \" \",\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a2) {\n return a2;\n },\n attributeValueProcessor: function(attrName, a2) {\n return a2;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },\n //it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n { regex: new RegExp(\"'\", \"g\"), val: \"&apos;\" },\n { regex: new RegExp('\"', \"g\"), val: \"&quot;\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n };\n function Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n this.isAttribute = function() {\n return false;\n };\n } else {\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n this.processTextOrObjNode = processTextOrObjNode;\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = \">\\n\";\n this.newLine = \"\\n\";\n } else {\n this.indentate = function() {\n return \"\";\n };\n this.tagEndChar = \">\";\n this.newLine = \"\";\n }\n }\n Builder.prototype.build = function(jObj) {\n if (this.options.preserveOrder) {\n return buildFromOrderedJs(jObj, this.options);\n } else {\n if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) {\n jObj = {\n [this.options.arrayNodeName]: jObj\n };\n }\n return this.j2x(jObj, 0, []).val;\n }\n };\n Builder.prototype.j2x = function(jObj, level, ajPath) {\n let attrStr = \"\";\n let val = \"\";\n const jPath = ajPath.join(\".\");\n for (let key in jObj) {\n if (!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n if (typeof jObj[key] === \"undefined\") {\n if (this.isAttribute(key)) {\n val += \"\";\n }\n } else if (jObj[key] === null) {\n if (this.isAttribute(key)) {\n val += \"\";\n } else if (key[0] === \"?\") {\n val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n } else {\n val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n }\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, \"\", level);\n } else if (typeof jObj[key] !== \"object\") {\n const attr = this.isAttribute(key);\n if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n attrStr += this.buildAttrPairStr(attr, \"\" + jObj[key]);\n } else if (!attr) {\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, \"\" + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, \"\", level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n let listTagAttr = \"\";\n for (let j2 = 0; j2 < arrLen; j2++) {\n const item = jObj[key][j2];\n if (typeof item === \"undefined\") ;\n else if (item === null) {\n if (key[0] === \"?\") val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n else val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n } else if (typeof item === \"object\") {\n if (this.options.oneListGroup) {\n const result = this.j2x(item, level + 1, ajPath.concat(key));\n listTagVal += result.val;\n if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n listTagAttr += result.attrStr;\n }\n } else {\n listTagVal += this.processTextOrObjNode(item, key, level, ajPath);\n }\n } else {\n if (this.options.oneListGroup) {\n let textValue = this.options.tagValueProcessor(key, item);\n textValue = this.replaceEntitiesValue(textValue);\n listTagVal += textValue;\n } else {\n listTagVal += this.buildTextValNode(item, key, \"\", level);\n }\n }\n }\n if (this.options.oneListGroup) {\n listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n }\n val += listTagVal;\n } else {\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j2 = 0; j2 < L; j2++) {\n attrStr += this.buildAttrPairStr(Ks[j2], \"\" + jObj[key][Ks[j2]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level, ajPath);\n }\n }\n }\n return { attrStr, val };\n };\n Builder.prototype.buildAttrPairStr = function(attrName, val) {\n val = this.options.attributeValueProcessor(attrName, \"\" + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return \" \" + attrName;\n } else return \" \" + attrName + '=\"' + val + '\"';\n };\n function processTextOrObjNode(object, key, level, ajPath) {\n const result = this.j2x(object, level + 1, ajPath.concat(key));\n if (object[this.options.textNodeName] !== void 0 && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n }\n Builder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if (val === \"\") {\n if (key[0] === \"?\") return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n else {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n } else {\n let tagEndExp = \"</\" + key + this.tagEndChar;\n let piClosingChar = \"\";\n if (key[0] === \"?\") {\n piClosingChar = \"?\";\n tagEndExp = \"\";\n }\n if ((attrStr || attrStr === \"\") && val.indexOf(\"<\") === -1) {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + \">\" + val + tagEndExp;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + this.tagEndChar + val + this.indentate(level) + tagEndExp;\n }\n }\n };\n Builder.prototype.closeTag = function(key) {\n let closeTag = \"\";\n if (this.options.unpairedTags.indexOf(key) !== -1) {\n if (!this.options.suppressUnpairedNode) closeTag = \"/\";\n } else if (this.options.suppressEmptyNode) {\n closeTag = \"/\";\n } else {\n closeTag = `></${key}`;\n }\n return closeTag;\n };\n Builder.prototype.buildTextValNode = function(val, key, attrStr, level) {\n if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n return this.indentate(level) + `<![CDATA[${val}]]>` + this.newLine;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n } else if (key[0] === \"?\") {\n return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n } else {\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n if (textValue === \"\") {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + \">\" + textValue + \"</\" + key + this.tagEndChar;\n }\n }\n };\n Builder.prototype.replaceEntitiesValue = function(textValue) {\n if (textValue && textValue.length > 0 && this.options.processEntities) {\n for (let i2 = 0; i2 < this.options.entities.length; i2++) {\n const entity = this.options.entities[i2];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n };\n function indentate(level) {\n return this.options.indentBy.repeat(level);\n }\n function isAttribute(name) {\n if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n return name.substr(this.attrPrefixLen);\n } else {\n return false;\n }\n }\n json2xml = Builder;\n return json2xml;\n}\nvar fxp;\nvar hasRequiredFxp;\nfunction requireFxp() {\n if (hasRequiredFxp) return fxp;\n hasRequiredFxp = 1;\n const validator2 = requireValidator();\n const XMLParser = requireXMLParser();\n const XMLBuilder = requireJson2xml();\n fxp = {\n XMLParser,\n XMLValidator: validator2,\n XMLBuilder\n };\n return fxp;\n}\nvar fxpExports = requireFxp();\nfunction isSvg(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n }\n string = string.trim();\n if (string.length === 0) {\n return false;\n }\n if (fxpExports.XMLValidator.validate(string) !== true) {\n return false;\n }\n let jsonObject;\n const parser = new fxpExports.XMLParser();\n try {\n jsonObject = parser.parse(string);\n } catch {\n return false;\n }\n if (!jsonObject) {\n return false;\n }\n if (!Object.keys(jsonObject).some((x) => x.toLowerCase() === \"svg\")) {\n return false;\n }\n return true;\n}\nclass View {\n _view;\n constructor(view) {\n isValidView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n get loadChildViews() {\n return this._view.loadChildViews;\n }\n}\nconst isValidView = function(view) {\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n if (\"caption\" in view && typeof view.caption !== \"string\") {\n throw new Error(\"View caption must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (\"order\" in view && typeof view.order !== \"number\") {\n throw new Error(\"View order must be a number\");\n }\n if (view.columns) {\n view.columns.forEach((column) => {\n if (!(column instanceof Column)) {\n throw new Error(\"View columns must be an array of Column. Invalid column found\");\n }\n });\n }\n if (view.emptyView && typeof view.emptyView !== \"function\") {\n throw new Error(\"View emptyView must be a function\");\n }\n if (view.parent && typeof view.parent !== \"string\") {\n throw new Error(\"View parent must be a string\");\n }\n if (\"sticky\" in view && typeof view.sticky !== \"boolean\") {\n throw new Error(\"View sticky must be a boolean\");\n }\n if (\"expanded\" in view && typeof view.expanded !== \"boolean\") {\n throw new Error(\"View expanded must be a boolean\");\n }\n if (view.defaultSortKey && typeof view.defaultSortKey !== \"string\") {\n throw new Error(\"View defaultSortKey must be a string\");\n }\n if (view.loadChildViews && typeof view.loadChildViews !== \"function\") {\n throw new Error(\"View loadChildViews must be a function\");\n }\n return true;\n};\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const t2 = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t2[name] = index;\n src[index] = value;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t2.NUMERICIDENTIFIER]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t2.NUMERICIDENTIFIERLOOSE]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t2.BUILDIDENTIFIER]}(?:\\\\.${src[t2.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`);\n createToken(\"FULL\", `^${src[t2.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t2.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t2.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t2.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t2.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t2.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t2.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t2.GTLT]}\\\\s*(${src[t2.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t2.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t2.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t: t2 } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m2 = version.trim().match(options.loose ? re2[t2.LOOSE] : re2[t2.FULL]);\n if (!m2) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m2[1];\n this.minor = +m2[2];\n this.patch = +m2[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m2[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m2[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m2[5] ? m2[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i2 = 0;\n do {\n const a2 = this.prerelease[i2];\n const b2 = other.prerelease[i2];\n debug(\"prerelease compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i2 = 0;\n do {\n const a2 = this.build[i2];\n const b2 = other.build[i2];\n debug(\"build compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i2 = this.prerelease.length;\n while (--i2 >= 0) {\n if (typeof this.prerelease[i2] === \"number\") {\n this.prerelease[i2]++;\n i2 = -2;\n }\n }\n if (i2 === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, event) {\n this.bus.emit(name, event);\n }\n}\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h2) => h2 !== handler)\n );\n }\n emit(name, event) {\n (this.handlers.get(name) || []).forEach((h2) => {\n try {\n h2(event);\n } catch (e2) {\n console.error(\"could not invoke event listener\", e2);\n }\n });\n }\n}\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, event) {\n getBus().emit(name, event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\n}\nconst addNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n};\nconst removeNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n};\nconst getNewFileMenuEntries = function(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a2, b2) => {\n if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n return a2.order - b2.order;\n }\n return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n};\nexport {\n Column,\n DefaultType,\n q as File,\n FileAction,\n FileListAction,\n FileListFilter,\n F as FileType,\n FilesSortingMode,\n s as Folder,\n Header,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n N as Node,\n t as NodeStatus,\n P as Permission,\n View,\n addNewFileMenuEntry,\n c as davGetClient,\n l as davGetDefaultPropfind,\n m as davGetFavoritesReport,\n n as davGetRecentSearch,\n a as davGetRemoteURL,\n g as davGetRootPath,\n p as davParsePermissions,\n b as davRemoteURL,\n r as davResultToNode,\n d as davRootPath,\n h as defaultDavNamespaces,\n f as defaultDavProperties,\n formatFileSize,\n k as getDavNameSpaces,\n j as getDavProperties,\n e as getFavoriteNodes,\n getFileActions,\n getFileListActions,\n getFileListFilters,\n getFileListHeaders,\n getNavigation,\n getNewFileMenuEntries,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n i as registerDavProperty,\n registerFileAction,\n registerFileListAction,\n registerFileListFilter,\n registerFileListHeaders,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateFilename\n};\n"],"names":["module","exports","commonjsRequire","Error","qrcode","fn","createCommonjsModule","f","r","e","n","t","o","i","u","a","code","p","call","length","require","Promise","prototype","then","getSymbolSize","getRowColCoords","version","posCount","Math","floor","size","intervals","ceil","positions","push","reverse","getPositions","coords","pos","posLength","j","Mode","ALPHA_NUM_CHARS","AlphanumericData","data","this","mode","ALPHANUMERIC","getBitsLength","getLength","write","bitBuffer","value","indexOf","put","BitBuffer","buffer","get","index","bufIndex","num","putBit","getLengthInBits","bit","BufferUtil","BitMatrix","alloc","reservedBit","set","row","col","reserved","xor","isReserved","ByteData","BYTE","from","l","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","isValid","level","defaultValue","string","toLowerCase","fromString","Utils","G15_BCH","getBCHDigit","getEncodedBits","mask","d","EXP_TABLE","LOG_TABLE","x","log","exp","mul","y","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","getMaskAt","maskPattern","isNaN","parseInt","undefined","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","last","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","abs","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","Object","keys","bestPattern","lowerPenalty","Infinity","penalty","VersionCheck","Regex","NUMERIC","id","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","toString","NumericData","group","substr","remainingNum","GF","p1","p2","coeff","mod","divident","divisor","result","offset","slice","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","isArray","setupFormatInfo","matrix","bits","createData","segments","forEach","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","Array","ecData","maxDataSize","b","dataSize","encode","max","createCodewords","createSymbol","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","moduleCount","modules","c","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","dark","setupData","bind","create","options","toSJISFunc","setToSJISFunction","Polynomial","Buffer","genPoly","initialize","pad","paddedData","concat","remainder","start","buff","copy","numeric","kanji","byte","replace","RegExp","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","str","test","dijkstra","getStringByteLength","unescape","encodeURIComponent","getSegments","regex","exec","getSegmentsFromString","byteSegs","kanjiSegs","numSegs","alphaNumSegs","isKanjiModeEnabled","sort","s1","s2","map","obj","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","array","reduce","acc","seg","graph","nodes","table","prevNodeIds","nodeGroup","currentNodeIds","node","key","lastCount","prevNodeId","buildGraph","segs","buildNodes","path","find_path","optimizedSegs","curr","prevSeg","toSJISFunction","CODEWORDS_COUNT","digit","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","text","opts","cb","args","arguments","argsNum","isLastArgCb","getContext","resolve","reject","toCanvas","render","toDataURL","renderToDataURL","_","qrData","canvasEl","document","createElement","getCanvasElement","getOptions","getImageWidth","ctx","image","createImageData","qrToImageData","clearRect","width","height","style","clearCanvas","putImageData","type","rendererOpts","quality","getColorAttrib","color","attrib","alpha","hex","toFixed","svgCmd","cmd","qrcodesize","margin","bg","light","moveBy","newRow","lineLength","qrToPath","viewBox","svgTag","hex2rgba","hexCode","split","apply","hexValue","join","g","scale","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","TYPED_ARRAY_SUPPORT","arr","Uint8Array","__proto__","foo","typedArraySupport","K_MAX_LENGTH","arg","allocUnsafe","that","TypeError","ArrayBuffer","byteOffset","byteLength","RangeError","buf","fromArrayLike","fromArrayBuffer","createBuffer","actual","isBuffer","len","checked","val","fromObject","utf8ToBytes","units","codePoint","leadSurrogate","bytes","charCodeAt","isView","Symbol","species","defineProperty","configurable","enumerable","writable","isFinite","remaining","src","dst","blitBuffer","utf8Write","end","newBuf","subarray","sliceLen","target","targetStart","fill","list","_isBuffer","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","output","base64","ieee754","customInspectSymbol","for","SlowBuffer","INSPECT_MAX_BYTES","setPrototypeOf","encodingOrOffset","encoding","isEncoding","isInstance","valueOf","numberIsNaN","toPrimitive","assertSize","mustMatch","loweredCase","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","hexWrite","Number","strLen","parsed","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","hi","lo","utf16leToBytes","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","kMaxLength","proto","console","error","poolSize","allocUnsafeSlow","compare","swap16","swap32","swap64","toLocaleString","equals","inspect","trim","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","_arr","ret","out","hexSliceLookupTable","checkOffset","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","copyWithin","INVALID_BASE64_RE","base64clean","constructor","name","alphabet","i16","single_source_shortest_paths","s","predecessors","costs","closest","v","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","open","PriorityQueue","make","empty","pop","cost","hasOwnProperty","msg","extract_shortest_path_from_predecessor_list","T","queue","sorter","default_sorter","item","shift","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","props","tag","default","$slots","watch","$props","deep","immediate","handler","$el","generate","methods","_this","url","innerHTML","mounted","factory","___CSS_LOADER_EXPORT___","self","ampersandTest","nativeURLSearchParams","URLSearchParams","isSupportObjectConstructor","decodesPlusesCorrectly","isSupportSize","__URLSearchParams__","encodesAmpersandsCorrectly","append","URLSearchParamsPolyfill","iterable","iterator","appendTo","dict","has","getAll","query","propValue","useProxy","Proxy","construct","Function","USPProto","polyfill","toStringTag","callback","thisArg","parseToDict","getOwnPropertyNames","k","values","items","makeIterator","entries","prev","cur","search","match","decode","decodeURIComponent","next","done","pairs","JSON","stringify","prop","window","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","global","freeSelf","Date","now","reWhitespace","reTrimStart","charAt","objectProto","nativeObjectToString","symToStringTag","isOwn","unmasked","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","other","isBinary","nativeMax","nativeMin","service","http","listCollection","collectionId","renameCollection","collectionName","ocs","getCollectionsByResource","resourceType","resourceId","createCollection","post","response","addResource","removeResource","delete","params","state","collections","mutations","addCollections","addCollection","collection","removeCollection","filter","updateCollection","findIndex","_item","actions","fetchCollectionsByResource","baseResourceType","baseResourceId","addResourceToCollection","resources","normalizeComponent","scriptExports","render3","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","CollectionListItem","components","NcAvatar","NcActions","NcActionButton","detailsOpen","newName","computed","getIcon","resource","iconClass","typeClass","limitedResources","iconUrl","mimetype","OC","MimeType","getIconUrl","toggleDetails","showDetails","hideDetails","openRename","catch","$set","setTimeout","_vm","_c","_self","staticClass","attrs","on","_v","_s","class","rename","$event","preventDefault","directives","rawName","expression","domProps","composing","_e","_l","link","_debouncedSearch","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","clearTimeout","cancel","flush","loading","searchCollections","finally","_sfc_main","NcSelect","isActive","Boolean","setup","selectIsOpen","generatingCodes","codes","model","isSelectOpen","find","placeholder","OCP","Collaboration","getTypes","method","title","getLabel","action","trigger","select","selectedOption","id2","setError","showSelect","$refs","focus","hideSelect","isVueComponent","object","_isVue","CollectionList","_m","ref","scopedSlots","_u","option","$$v","Config","_defineProperty","_capabilities","getCapabilities","defaultPermissions","files_sharing","default_permissions","isPublicUploadEnabled","public","upload","federatedShareDocLink","appConfig","core","federatedCloudShareDoc","defaultExpirationDate","isDefaultExpireDateEnabled","defaultExpireDate","setDate","getDate","defaultInternalExpirationDate","isDefaultInternalExpireDateEnabled","defaultInternalExpireDate","defaultRemoteExpirationDateString","isDefaultRemoteExpireDateEnabled","defaultRemoteExpireDate","enforcePasswordForPublicLink","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","defaultExpireDateEnabled","isDefaultInternalExpireDateEnforced","defaultInternalExpireDateEnforced","defaultInternalExpireDateEnabled","isDefaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isPublicShareAllowed","enabled","isMailShareAllowed","sharebymail","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","password","enforced","shouldAlwaysShowUnique","sharee","always_show_unique","allowGroupSharing","maxAutocompleteResults","config","minSearchStringLength","passwordPolicy","password_policy","allowCustomTokens","custom_tokens","getLoggerBuilder","setApp","detectUser","build","Share","ocsData","hide_download","mail_send","attributes","parse","warn","_share","share_type","permissions","owner","uid_owner","ownerDisplayName","displayname_owner","shareWith","share_with","shareWithDisplayName","share_with_displayname","shareWithDisplayNameUnique","share_with_displayname_unique","shareWithLink","share_with_link","shareWithAvatar","share_with_avatar","uidFileOwner","uid_file_owner","displaynameFileOwner","displayname_file_owner","createdTime","stime","expireDate","expiration","date","token","note","label","mailSend","hideDownload","passwordExpirationTime","password_expiration_time","sendPasswordByTalk","send_password_by_talk","itemType","item_type","fileSource","file_source","fileTarget","file_target","fileParent","file_parent","hasReadPermission","PERMISSION_READ","hasCreatePermission","PERMISSION_CREATE","hasDeletePermission","PERMISSION_DELETE","hasUpdatePermission","PERMISSION_UPDATE","hasSharePermission","PERMISSION_SHARE","hasDownloadPermission","some","attribute","scope","isFileRequest","logger","setAttribute","attrUpdate","attr","splice","canEdit","can_edit","canDelete","can_delete","viaFileid","via_fileid","viaPath","via_path","storageId","storage_id","storage","itemSource","item_source","status","required","subtitle","isUnique","ariaExpanded","ariaExpandedValue","_t","SharingEntrySimple","CheckIcon","ClipboardIcon","fileInfo","copied","copySuccess","internalLink","location","protocol","host","generateUrl","copyLinkTooltip","internalLinkSubtitle","copyLink","navigator","clipboard","writeText","showSuccess","shareEntrySimple","actionsComponent","proxy","shareUrl","generateOcsUrl","createShare","_ref","shareType","publicUpload","request","axios","share","emit","errorMessage","meta","message","Notification","showTemporary","deleteShare","updateShare","properties","openSharingDetails","shareRequestObject","handlerInput","suggestions","externalShareRequestObject","mapShareRequestToShareObject","shareDetails","$emit","openShareDetailsForCustomSettings","setCustomPermissions","is_no_user","isNoUser","user","displayName","mixins","ShareRequests","ShareDetails","shares","linkShares","reshare","canReshare","isExternal","recommendations","ShareSearch","OCA","Sharing","externalResults","results","inputPlaceholder","allowRemoteSharing","isValidQuery","noResultText","getRecommendations","onSelected","asyncFind","debounceGetSuggestions","getSuggestions","query_lookup_default","ShareType","Remote","RemoteGroup","User","Group","Team","Room","Guest","Deck","ScienceMesh","Email","format","perPage","exact","rawExactSuggestions","elem","rawSuggestions","exactSuggestions","filterOutExistingShares","formatForMultiselect","lookupEntry","lookupEnabled","condition","allSuggestions","nameCounts","desc","info","debounce","rawRecommendations","getCurrentUser","uid","sharesObj","shareTypeToIcon","icon","iconTitle","Sciencemesh","subname","server","shareWithDescription","uuid","clear-search-on-blur","ATOMIC_PERMISSIONS","NONE","READ","UPDATE","CREATE","DELETE","SHARE","BUNDLED_PERMISSIONS","READ_ONLY","UPLOAD_AND_UPDATE","FILE_DROP","ALL","ALL_FILE","client","getClient","SharesRequests","errors","saving","updateQueue","PQueue","concurrency","reactiveState","hasNote","dateTomorrow","lang","weekdaysShort","dayNamesShort","monthsShort","monthNamesShort","formatLocale","firstDayOfWeek","firstDay","weekdaysMin","monthFormat","isNewShare","isFolder","isPublicShare","Link","isRemoteShare","isShareOwner","isExpiryDateEnforced","hasCustomPermissions","maxExpirationDateEnforced","getNode","async","propfindPayload","getDefaultPropfind","stat","getRootPath","details","resultToNode","fetchNode","checkShare","expirationDate","formatDateToString","UTC","getFullYear","getMonth","toISOString","onExpirationChange","formattedDate","onNoteChange","onNoteSubmit","newNote","$delete","queueUpdate","onDelete","debug","_len","propertyNames","_key","updatedShare","updateSuccessMessage","onSyncError","showError","names","property","propertyEl","focusable","querySelector","debounceQueueUpdate","NcActionLink","NcActionText","SharesMixin","viaFileTargetUrl","fileid","viaFolderName","basename","initiator","folder","SharingEntryInherited","loaded","showInheritedShares","showInheritedSharesIcon","mainTitle","subTitle","toggleTooltip","fullPath","resetState","toggleInheritedShares","fetchInheritedShares","removeShare","stopPropagation","emits","fillColor","_b","$attrs","DropdownIcon","ariaLabel","canViewText","canEditText","fileDropText","customPermissionsText","preSelectedOption","IconEyeOutline","IconPencil","supportsFileDrop","IconFileUpload","IconTune","dropDownPermissionValue","created","subscribe","unmounted","unsubscribe","selectOption","optionLabel","quickShareActions","menuButton","is","_g","handlers","verbose","api","ratio","passwordSet","crypto","getRandomValues","ExternalShareAction","NcActionCheckbox","NcActionInput","NcActionSeparator","NcDialog","VueQrcode","Tune","IconCalendarBlank","IconQr","ErrorIcon","LockIcon","CloseIcon","PlusIcon","SharingEntryQuickShareSelect","shareCreationComplete","defaultExpirationDateEnabled","pending","ExternalLegacyLinkActions","ExternalLinkActions","ExternalShareActions","showQRCode","isEmailShareType","isPasswordProtected","Vue","GeneratePassword","expirationTime","moment","diff","fromNow","isTalkEnabled","appswebroots","spreed","isPasswordProtectedByTalkAvailable","isPasswordProtectedByTalk","canTogglePasswordProtectedByTalkAvailable","hasUnsavedPassword","pendingDataIsMissing","pendingPassword","pendingEnforcedPassword","pendingDefaultExpirationDate","pendingEnforcedExpirationDate","isPendingShare","getTime","sharePolicyHasEnforcedProperties","enforcedPropertiesMissing","isPasswordMissing","isExpireDateMissing","newPassword","shareLink","baseURL","getBaseUrl","actionsTooltip","externalLegacyLinkActions","externalLinkActions","advanced","isPasswordPolicyEnabled","canChangeHideDownload","shareAttributes","shareAttribute","shareRequiresReview","shareReviewComplete","onNewLinkShare","shareDefaults","component","pushNewLinkShare","update","newShare","copyButton","onPasswordChange","onPasswordDisable","onPasswordSubmit","onPasswordProtectedByTalkChange","onMenuClose","onExpirationDateToggleUpdate","expirationDateChanged","event","onCancel","SharingEntryLink","minLength","actionIndex","canLinkShare","hasLinkShares","hasShares","addShare","awaitForShare","$nextTick","$children","NcButton","DotsHorizontalIcon","tooltip","hasStatus","SharingEntry","NcCheckboxRadioSwitch","NcDateTimePickerNative","NcInputField","NcLoadingIcon","NcPasswordField","NcTextArea","CircleIcon","EditIcon","LinkIcon","GroupIcon","ShareIcon","UserIcon","UploadIcon","ViewIcon","MenuDownIcon","MenuUpIcon","Refresh","shareRequestValue","writeNoteToRecipientIsChecked","sharingPermission","revertSharingPermission","passwordError","advancedSectionAccordionExpanded","bundledPermissions","isFirstComponentLoad","creating","initialToken","loadingToken","userName","email","updateAtomicPermissions","isEditChecked","canCreate","isCreateChecked","isDeleteChecked","isReshareChecked","showInGridView","getShareAttribute","setShareAttribute","canDownload","hasRead","isReadChecked","hasExpirationDate","isValidShareAttribute","defaultExpiryDate","isSetDownloadButtonVisible","isPasswordEnforced","isGroupShare","isUserShare","allowsFileDrop","hasFileDropPermissions","shareButtonText","resharingIsPossible","canSetEdit","sharePermissions","canSetCreate","canSetDelete","canSetReshare","canSetDownload","canRemoveReadPermission","customPermissionsList","translatedPermissions","permission","hasPermissions","initialPermissionSet","permissionsToCheck","toLocaleLowerCase","getLanguage","advancedControlExpandedValue","errorPasswordLabel","passwordHint","isChecked","beforeMount","initializePermissions","initializeAttributes","quickPermissions","fallback","generateNewToken","generateToken","expandCustomPermissions","toggleCustomPermissions","selectedPermission","isCustomPermissions","toDateString","handleShareType","handleDefaultPermissions","handleCustomPermissions","saveShare","permissionsAndAttributes","publicShareAttributes","sharePermissionsSet","incomingShare","allSettled","at","onSave","getShareTypeIcon","EmailIcon","refInFor","InfoIcon","NcPopover","SharingEntryInternal","SharingInherited","SharingInput","SharingLinkList","SharingList","SharingDetailsTab","deleteEvent","expirationInterval","sharedWithMe","sections","ShareTabSections","getSections","projectsEnabled","loadState","showSharingDetailsView","shareDetailsData","returnFocusElement","internalSharesHelpText","externalSharesHelpText","additionalSharesHelpText","isSharedWithMe","getShares","fetchShares","reshares","fetchSharedWithMe","shared_with_me","all","processSharedWithMe","processShares","clearInterval","updateExpirationSubtitle","unix","relativetime","orderBy","_ref2","escape","circle","conversation","shareWithTitle","setInterval","shareOwnerId","shareOwner","unshift","shareList","listComponent","linkShareList","toggleShareDetailsView","eventData","activeElement","classList","className","startsWith","menuId","emptyContentWithSections","section","humanList","humanListBinary","formatFileSize","skipSmallSizes","binaryPrefixes","base1000","order","readableFormat","relativeSize","parseFloat","identifiers2","orders","sorting","collator","Intl","Collator","usage","a2","b2","identifier","sortNodes","sortingOptions","sortingMode","sortingOrder","sortFavoritesFirst","favorite","sortFoldersFirst","basename2","displayname","hasRequiredUtil","hasRequiredValidator","validator","util","requireUtil","nameStartChar","nameRegexp","regexName","isExist","isEmptyObject","merge","arrayMode","i2","getValue","isName","getAllMatches","matches","allmatches","startIndex","lastIndex","requireValidator","util2","defaultOptions","allowBooleanAttributes","unpairedTags","isWhiteSpace","char","readPI","xmlData","tagname","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","assign","tags","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","substring","readAttributeStr","attrStr","attrStrStart","validateAttributeString","line","tagClosed","otg","openPos","afterAmp","validateAmpersand","t2","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re2","validateNumberAmpersand","count","lineNumber","lines","hasRequiredOptionsBuilder","xmlNode","hasRequiredXmlNode","DocTypeReader","hasRequiredDocTypeReader","strnum","hasRequiredStrnum","ignoreAttributes","hasRequiredIgnoreAttributes","OrderedObjParser_1","hasRequiredOrderedObjParser","OptionsBuilder","requireIgnoreAttributes","ignoreAttributes2","hasRequiredNode2json","XMLParser_1","hasRequiredXMLParser","orderedJs2Xml","hasRequiredOrderedJs2Xml","json2xml","hasRequiredJson2xml","fxp","hasRequiredFxp","debug_1","hasRequiredDebug","constants","hasRequiredConstants","node2json","requireNode2json","compress","jPath","compressedObj","tagObj","propName","newJpath","textNodeName","isLeaf","isLeafTag","assignAttributes","alwaysCreateTextNode","attrMap","jpath","atrrName","propCount","prettify","requireXMLParser","buildOptions","preserveOrder","attributeNamePrefix","attributesGroupName","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","requireOptionsBuilder","OrderedObjParser","xmlNode2","child","addChild","readDocType","readEntityExp","entityName","isEntity","isElement","isAttlist","isNotation","validateEntityName","entities","hasBody","comment","regx","requireDocTypeReader","toNumber","hexRegex","numRegex","consider","decimalPoint","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","requireStrnum","getIgnoreAttributesFn","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","replaceEntitiesValue","newval","parseValue","resolveNameSpace","prefix","attrsRegx","buildAttributesMap","ignoreAttributesFn","oldVal","aName","newVal","attrCollection","parseXml","xmlObj","currentNode","textData","closeIndex","findClosingIndex","colonIndex","saveTextToParentTag","lastTagName","propIndex","tagsNodeStack","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","docTypeEntities","rawTagName","lastTag","isItStopNode","tagContent","result2","readStopNodeData","entity","ampEntity","currentTagName","allNodesExp","stopNodePath","stopNodeExp","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","requireOrderedObjParser","validator2","validationOption","orderedObjParser","orderedResult","addEntity","requireOrderedJs2Xml","arrToStr","indentation","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","endsWith","attrVal","suppressBooleanAttributes","textValue","jArray","requireDebug","process","env","NODE_DEBUG","requireConstants","MAX_SAFE_INTEGER","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","XMLParser","XMLBuilder","buildFromOrderedJs","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","ajPath","j2x","buildTextValNode","buildObjectNode","repeat","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","listTagAttr","j2","Ks","closeTag","tagEndExp","piClosingChar","requireJson2xml","XMLValidator","requireFxp","hasRequiredRe","parseOptions_1","hasRequiredParseOptions","identifiers","hasRequiredIdentifiers","semver","hasRequiredSemver","parse_1","hasRequiredParse","valid_1","hasRequiredValid","major_1","hasRequiredMajor","re","requireSemver","safeRe","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","parseOptions","looseOption","freeze","loose","emptyOpts","requireParseOptions","compareIdentifiers","anum","bnum","rcompareIdentifiers","requireIdentifiers","SemVer","includePrerelease","m2","LOOSE","FULL","raw","major","minor","patch","prerelease","compareMain","comparePre","compareBuild","release","identifierBase","base","throwErrors","er","requireParse","requireValid","requireMajor"],"sourceRoot":""} \ No newline at end of file
diff --git a/dist/2693-2693.js.map.license b/dist/2693-2693.js.map.license
new file mode 120000
index 00000000000..a56826aca5f
--- /dev/null
+++ b/dist/2693-2693.js.map.license
@@ -0,0 +1 @@
+2693-2693.js.license \ No newline at end of file
diff --git a/dist/9699-9699.js b/dist/9699-9699.js
deleted file mode 100644
index 69c017f15e1..00000000000
--- a/dist/9699-9699.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[9699],{17816:function(t){t.exports=function(){"use strict";function t(){throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs")}var e=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(e,i){var n;n=function(){return function e(i,n,r){function s(o,l){if(!n[o]){if(!i[o]){if(!l&&t)return t();if(a)return a(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var h=n[o]={exports:{}};i[o][0].call(h.exports,(function(t){return s(i[o][1][t]||t)}),h,h.exports,e,i,n,r)}return n[o].exports}for(var a=t,o=0;o<r.length;o++)s(r[o]);return s}({1:[function(t,e,i){e.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},{}],2:[function(t,e,i){var n=t("./utils").getSymbolSize;i.getRowColCoords=function(t){if(1===t)return[];for(var e=Math.floor(t/7)+2,i=n(t),r=145===i?26:2*Math.ceil((i-13)/(2*e-2)),s=[i-7],a=1;a<e-1;a++)s[a]=s[a-1]-r;return s.push(6),s.reverse()},i.getPositions=function(t){for(var e=[],n=i.getRowColCoords(t),r=n.length,s=0;s<r;s++)for(var a=0;a<r;a++)0===s&&0===a||0===s&&a===r-1||s===r-1&&0===a||e.push([n[s],n[a]]);return e}},{"./utils":21}],3:[function(t,e,i){var n=t("./mode"),r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function s(t){this.mode=n.ALPHANUMERIC,this.data=t}s.getBitsLength=function(t){return 11*Math.floor(t/2)+t%2*6},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){var e;for(e=0;e+2<=this.data.length;e+=2){var i=45*r.indexOf(this.data[e]);i+=r.indexOf(this.data[e+1]),t.put(i,11)}this.data.length%2&&t.put(r.indexOf(this.data[e]),6)},e.exports=s},{"./mode":14}],4:[function(t,e,i){function n(){this.buffer=[],this.length=0}n.prototype={get:function(t){var e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(var i=0;i<e;i++)this.putBit(1==(t>>>e-i-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}},e.exports=n},{}],5:[function(t,e,i){var n=t("../utils/buffer");function r(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=n.alloc(t*t),this.reservedBit=n.alloc(t*t)}r.prototype.set=function(t,e,i,n){var r=t*this.size+e;this.data[r]=i,n&&(this.reservedBit[r]=!0)},r.prototype.get=function(t,e){return this.data[t*this.size+e]},r.prototype.xor=function(t,e,i){this.data[t*this.size+e]^=i},r.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]},e.exports=r},{"../utils/buffer":28}],6:[function(t,e,i){var n=t("../utils/buffer"),r=t("./mode");function s(t){this.mode=r.BYTE,this.data=n.from(t)}s.getBitsLength=function(t){return 8*t},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){for(var e=0,i=this.data.length;e<i;e++)t.put(this.data[e],8)},e.exports=s},{"../utils/buffer":28,"./mode":14}],7:[function(t,e,i){var n=t("./error-correction-level"),r=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],s=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];i.getBlocksCount=function(t,e){switch(e){case n.L:return r[4*(t-1)+0];case n.M:return r[4*(t-1)+1];case n.Q:return r[4*(t-1)+2];case n.H:return r[4*(t-1)+3];default:return}},i.getTotalCodewordsCount=function(t,e){switch(e){case n.L:return s[4*(t-1)+0];case n.M:return s[4*(t-1)+1];case n.Q:return s[4*(t-1)+2];case n.H:return s[4*(t-1)+3];default:return}}},{"./error-correction-level":8}],8:[function(t,e,i){i.L={bit:1},i.M={bit:0},i.Q={bit:3},i.H={bit:2},i.isValid=function(t){return t&&void 0!==t.bit&&t.bit>=0&&t.bit<4},i.from=function(t,e){if(i.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"l":case"low":return i.L;case"m":case"medium":return i.M;case"q":case"quartile":return i.Q;case"h":case"high":return i.H;default:throw new Error("Unknown EC Level: "+t)}}(t)}catch(t){return e}}},{}],9:[function(t,e,i){var n=t("./utils").getSymbolSize;i.getPositions=function(t){var e=n(t);return[[0,0],[e-7,0],[0,e-7]]}},{"./utils":21}],10:[function(t,e,i){var n=t("./utils"),r=n.getBCHDigit(1335);i.getEncodedBits=function(t,e){for(var i=t.bit<<3|e,s=i<<10;n.getBCHDigit(s)-r>=0;)s^=1335<<n.getBCHDigit(s)-r;return 21522^(i<<10|s)}},{"./utils":21}],11:[function(t,e,i){var n=t("../utils/buffer"),r=n.alloc(512),s=n.alloc(256);!function(){for(var t=1,e=0;e<255;e++)r[e]=t,s[t]=e,256&(t<<=1)&&(t^=285);for(e=255;e<512;e++)r[e]=r[e-255]}(),i.log=function(t){if(t<1)throw new Error("log("+t+")");return s[t]},i.exp=function(t){return r[t]},i.mul=function(t,e){return 0===t||0===e?0:r[s[t]+s[e]]}},{"../utils/buffer":28}],12:[function(t,e,i){var n=t("./mode"),r=t("./utils");function s(t){this.mode=n.KANJI,this.data=t}s.getBitsLength=function(t){return 13*t},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(t){var e;for(e=0;e<this.data.length;e++){var i=r.toSJIS(this.data[e]);if(i>=33088&&i<=40956)i-=33088;else{if(!(i>=57408&&i<=60351))throw new Error("Invalid SJIS character: "+this.data[e]+"\nMake sure your charset is UTF-8");i-=49472}i=192*(i>>>8&255)+(255&i),t.put(i,13)}},e.exports=s},{"./mode":14,"./utils":21}],13:[function(t,e,i){i.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var n=3,r=3,s=40,a=10;function o(t,e,n){switch(t){case i.Patterns.PATTERN000:return(e+n)%2==0;case i.Patterns.PATTERN001:return e%2==0;case i.Patterns.PATTERN010:return n%3==0;case i.Patterns.PATTERN011:return(e+n)%3==0;case i.Patterns.PATTERN100:return(Math.floor(e/2)+Math.floor(n/3))%2==0;case i.Patterns.PATTERN101:return e*n%2+e*n%3==0;case i.Patterns.PATTERN110:return(e*n%2+e*n%3)%2==0;case i.Patterns.PATTERN111:return(e*n%3+(e+n)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}}i.isValid=function(t){return null!=t&&""!==t&&!isNaN(t)&&t>=0&&t<=7},i.from=function(t){return i.isValid(t)?parseInt(t,10):void 0},i.getPenaltyN1=function(t){for(var e=t.size,i=0,r=0,s=0,a=null,o=null,l=0;l<e;l++){r=s=0,a=o=null;for(var c=0;c<e;c++){var h=t.get(l,c);h===a?r++:(r>=5&&(i+=n+(r-5)),a=h,r=1),(h=t.get(c,l))===o?s++:(s>=5&&(i+=n+(s-5)),o=h,s=1)}r>=5&&(i+=n+(r-5)),s>=5&&(i+=n+(s-5))}return i},i.getPenaltyN2=function(t){for(var e=t.size,i=0,n=0;n<e-1;n++)for(var s=0;s<e-1;s++){var a=t.get(n,s)+t.get(n,s+1)+t.get(n+1,s)+t.get(n+1,s+1);4!==a&&0!==a||i++}return i*r},i.getPenaltyN3=function(t){for(var e=t.size,i=0,n=0,r=0,a=0;a<e;a++){n=r=0;for(var o=0;o<e;o++)n=n<<1&2047|t.get(a,o),o>=10&&(1488===n||93===n)&&i++,r=r<<1&2047|t.get(o,a),o>=10&&(1488===r||93===r)&&i++}return i*s},i.getPenaltyN4=function(t){for(var e=0,i=t.data.length,n=0;n<i;n++)e+=t.data[n];return Math.abs(Math.ceil(100*e/i/5)-10)*a},i.applyMask=function(t,e){for(var i=e.size,n=0;n<i;n++)for(var r=0;r<i;r++)e.isReserved(r,n)||e.xor(r,n,o(t,r,n))},i.getBestMask=function(t,e){for(var n=Object.keys(i.Patterns).length,r=0,s=1/0,a=0;a<n;a++){e(a),i.applyMask(a,t);var o=i.getPenaltyN1(t)+i.getPenaltyN2(t)+i.getPenaltyN3(t)+i.getPenaltyN4(t);i.applyMask(a,t),o<s&&(s=o,r=a)}return r}},{}],14:[function(t,e,i){var n=t("./version-check"),r=t("./regex");i.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},i.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},i.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},i.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},i.MIXED={bit:-1},i.getCharCountIndicator=function(t,e){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!n.isValid(e))throw new Error("Invalid version: "+e);return e>=1&&e<10?t.ccBits[0]:e<27?t.ccBits[1]:t.ccBits[2]},i.getBestModeForData=function(t){return r.testNumeric(t)?i.NUMERIC:r.testAlphanumeric(t)?i.ALPHANUMERIC:r.testKanji(t)?i.KANJI:i.BYTE},i.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")},i.isValid=function(t){return t&&t.bit&&t.ccBits},i.from=function(t,e){if(i.isValid(t))return t;try{return function(t){if("string"!=typeof t)throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return i.NUMERIC;case"alphanumeric":return i.ALPHANUMERIC;case"kanji":return i.KANJI;case"byte":return i.BYTE;default:throw new Error("Unknown mode: "+t)}}(t)}catch(t){return e}}},{"./regex":19,"./version-check":22}],15:[function(t,e,i){var n=t("./mode");function r(t){this.mode=n.NUMERIC,this.data=t.toString()}r.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(t){var e,i,n;for(e=0;e+3<=this.data.length;e+=3)i=this.data.substr(e,3),n=parseInt(i,10),t.put(n,10);var r=this.data.length-e;r>0&&(i=this.data.substr(e),n=parseInt(i,10),t.put(n,3*r+1))},e.exports=r},{"./mode":14}],16:[function(t,e,i){var n=t("../utils/buffer"),r=t("./galois-field");i.mul=function(t,e){for(var i=n.alloc(t.length+e.length-1),s=0;s<t.length;s++)for(var a=0;a<e.length;a++)i[s+a]^=r.mul(t[s],e[a]);return i},i.mod=function(t,e){for(var i=n.from(t);i.length-e.length>=0;){for(var s=i[0],a=0;a<e.length;a++)i[a]^=r.mul(e[a],s);for(var o=0;o<i.length&&0===i[o];)o++;i=i.slice(o)}return i},i.generateECPolynomial=function(t){for(var e=n.from([1]),s=0;s<t;s++)e=i.mul(e,[1,r.exp(s)]);return e}},{"../utils/buffer":28,"./galois-field":11}],17:[function(t,e,i){var n=t("../utils/buffer"),r=t("./utils"),s=t("./error-correction-level"),a=t("./bit-buffer"),o=t("./bit-matrix"),l=t("./alignment-pattern"),c=t("./finder-pattern"),h=t("./mask-pattern"),u=t("./error-correction-code"),d=t("./reed-solomon-encoder"),p=t("./version"),f=t("./format-info"),g=t("./mode"),A=t("./segments"),m=t("isarray");function v(t,e,i){var n,r,s=t.size,a=f.getEncodedBits(e,i);for(n=0;n<15;n++)r=1==(a>>n&1),n<6?t.set(n,8,r,!0):n<8?t.set(n+1,8,r,!0):t.set(s-15+n,8,r,!0),n<8?t.set(8,s-n-1,r,!0):n<9?t.set(8,15-n-1+1,r,!0):t.set(8,15-n-1,r,!0);t.set(s-8,8,1,!0)}function y(t,e,i){var s=new a;i.forEach((function(e){s.put(e.mode.bit,4),s.put(e.getLength(),g.getCharCountIndicator(e.mode,t)),e.write(s)}));var o=8*(r.getSymbolTotalCodewords(t)-u.getTotalCodewordsCount(t,e));for(s.getLengthInBits()+4<=o&&s.put(0,4);s.getLengthInBits()%8!=0;)s.putBit(0);for(var l=(o-s.getLengthInBits())/8,c=0;c<l;c++)s.put(c%2?17:236,8);return function(t,e,i){for(var s=r.getSymbolTotalCodewords(e),a=s-u.getTotalCodewordsCount(e,i),o=u.getBlocksCount(e,i),l=o-s%o,c=Math.floor(s/o),h=Math.floor(a/o),p=h+1,f=c-h,g=new d(f),A=0,m=new Array(o),v=new Array(o),y=0,w=n.from(t.buffer),C=0;C<o;C++){var b=C<l?h:p;m[C]=w.slice(A,A+b),v[C]=g.encode(m[C]),A+=b,y=Math.max(y,b)}var _,E,x=n.alloc(s),S=0;for(_=0;_<y;_++)for(E=0;E<o;E++)_<m[E].length&&(x[S++]=m[E][_]);for(_=0;_<f;_++)for(E=0;E<o;E++)x[S++]=v[E][_];return x}(s,t,e)}function w(t,e,i,n){var s;if(m(t))s=A.fromArray(t);else{if("string"!=typeof t)throw new Error("Invalid data");var a=e;if(!a){var u=A.rawSplit(t);a=p.getBestVersionForData(u,i)}s=A.fromString(t,a||40)}var d=p.getBestVersionForData(s,i);if(!d)throw new Error("The amount of data is too big to be stored in a QR Code");if(e){if(e<d)throw new Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+d+".\n")}else e=d;var f=y(e,i,s),g=r.getSymbolSize(e),w=new o(g);return function(t,e){for(var i=t.size,n=c.getPositions(e),r=0;r<n.length;r++)for(var s=n[r][0],a=n[r][1],o=-1;o<=7;o++)if(!(s+o<=-1||i<=s+o))for(var l=-1;l<=7;l++)a+l<=-1||i<=a+l||(o>=0&&o<=6&&(0===l||6===l)||l>=0&&l<=6&&(0===o||6===o)||o>=2&&o<=4&&l>=2&&l<=4?t.set(s+o,a+l,!0,!0):t.set(s+o,a+l,!1,!0))}(w,e),function(t){for(var e=t.size,i=8;i<e-8;i++){var n=i%2==0;t.set(i,6,n,!0),t.set(6,i,n,!0)}}(w),function(t,e){for(var i=l.getPositions(e),n=0;n<i.length;n++)for(var r=i[n][0],s=i[n][1],a=-2;a<=2;a++)for(var o=-2;o<=2;o++)-2===a||2===a||-2===o||2===o||0===a&&0===o?t.set(r+a,s+o,!0,!0):t.set(r+a,s+o,!1,!0)}(w,e),v(w,i,0),e>=7&&function(t,e){for(var i,n,r,s=t.size,a=p.getEncodedBits(e),o=0;o<18;o++)i=Math.floor(o/3),n=o%3+s-8-3,r=1==(a>>o&1),t.set(i,n,r,!0),t.set(n,i,r,!0)}(w,e),function(t,e){for(var i=t.size,n=-1,r=i-1,s=7,a=0,o=i-1;o>0;o-=2)for(6===o&&o--;;){for(var l=0;l<2;l++)if(!t.isReserved(r,o-l)){var c=!1;a<e.length&&(c=1==(e[a]>>>s&1)),t.set(r,o-l,c),-1==--s&&(a++,s=7)}if((r+=n)<0||i<=r){r-=n,n=-n;break}}}(w,f),isNaN(n)&&(n=h.getBestMask(w,v.bind(null,w,i))),h.applyMask(n,w),v(w,i,n),{modules:w,version:e,errorCorrectionLevel:i,maskPattern:n,segments:s}}i.create=function(t,e){if(void 0===t||""===t)throw new Error("No input text");var i,n,a=s.M;return void 0!==e&&(a=s.from(e.errorCorrectionLevel,s.M),i=p.from(e.version),n=h.from(e.maskPattern),e.toSJISFunc&&r.setToSJISFunction(e.toSJISFunc)),w(t,i,a,n)}},{"../utils/buffer":28,"./alignment-pattern":2,"./bit-buffer":4,"./bit-matrix":5,"./error-correction-code":7,"./error-correction-level":8,"./finder-pattern":9,"./format-info":10,"./mask-pattern":13,"./mode":14,"./reed-solomon-encoder":18,"./segments":20,"./utils":21,"./version":23,isarray:33}],18:[function(t,e,i){var n=t("../utils/buffer"),r=t("./polynomial"),s=t("buffer").Buffer;function a(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}a.prototype.initialize=function(t){this.degree=t,this.genPoly=r.generateECPolynomial(this.degree)},a.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");var e=n.alloc(this.degree),i=s.concat([t,e],t.length+this.degree),a=r.mod(i,this.genPoly),o=this.degree-a.length;if(o>0){var l=n.alloc(this.degree);return a.copy(l,o),l}return a},e.exports=a},{"../utils/buffer":28,"./polynomial":16,buffer:30}],19:[function(t,e,i){var n="[0-9]+",r="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+",s="(?:(?![A-Z0-9 $%*+\\-./:]|"+(r=r.replace(/u/g,"\\u"))+")(?:.|[\r\n]))+";i.KANJI=new RegExp(r,"g"),i.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),i.BYTE=new RegExp(s,"g"),i.NUMERIC=new RegExp(n,"g"),i.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");var a=new RegExp("^"+r+"$"),o=new RegExp("^"+n+"$"),l=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");i.testKanji=function(t){return a.test(t)},i.testNumeric=function(t){return o.test(t)},i.testAlphanumeric=function(t){return l.test(t)}},{}],20:[function(t,e,i){var n=t("./mode"),r=t("./numeric-data"),s=t("./alphanumeric-data"),a=t("./byte-data"),o=t("./kanji-data"),l=t("./regex"),c=t("./utils"),h=t("dijkstrajs");function u(t){return unescape(encodeURIComponent(t)).length}function d(t,e,i){for(var n,r=[];null!==(n=t.exec(i));)r.push({data:n[0],index:n.index,mode:e,length:n[0].length});return r}function p(t){var e,i,r=d(l.NUMERIC,n.NUMERIC,t),s=d(l.ALPHANUMERIC,n.ALPHANUMERIC,t);return c.isKanjiModeEnabled()?(e=d(l.BYTE,n.BYTE,t),i=d(l.KANJI,n.KANJI,t)):(e=d(l.BYTE_KANJI,n.BYTE,t),i=[]),r.concat(s,e,i).sort((function(t,e){return t.index-e.index})).map((function(t){return{data:t.data,mode:t.mode,length:t.length}}))}function f(t,e){switch(e){case n.NUMERIC:return r.getBitsLength(t);case n.ALPHANUMERIC:return s.getBitsLength(t);case n.KANJI:return o.getBitsLength(t);case n.BYTE:return a.getBitsLength(t)}}function g(t,e){var i,l=n.getBestModeForData(t);if((i=n.from(e,l))!==n.BYTE&&i.bit<l.bit)throw new Error('"'+t+'" cannot be encoded with mode '+n.toString(i)+".\n Suggested mode is: "+n.toString(l));switch(i!==n.KANJI||c.isKanjiModeEnabled()||(i=n.BYTE),i){case n.NUMERIC:return new r(t);case n.ALPHANUMERIC:return new s(t);case n.KANJI:return new o(t);case n.BYTE:return new a(t)}}i.fromArray=function(t){return t.reduce((function(t,e){return"string"==typeof e?t.push(g(e,null)):e.data&&t.push(g(e.data,e.mode)),t}),[])},i.fromString=function(t,e){for(var r=function(t,e){for(var i={},r={start:{}},s=["start"],a=0;a<t.length;a++){for(var o=t[a],l=[],c=0;c<o.length;c++){var h=o[c],u=""+a+c;l.push(u),i[u]={node:h,lastCount:0},r[u]={};for(var d=0;d<s.length;d++){var p=s[d];i[p]&&i[p].node.mode===h.mode?(r[p][u]=f(i[p].lastCount+h.length,h.mode)-f(i[p].lastCount,h.mode),i[p].lastCount+=h.length):(i[p]&&(i[p].lastCount=h.length),r[p][u]=f(h.length,h.mode)+4+n.getCharCountIndicator(h.mode,e))}}s=l}for(d=0;d<s.length;d++)r[s[d]].end=0;return{map:r,table:i}}(function(t){for(var e=[],i=0;i<t.length;i++){var r=t[i];switch(r.mode){case n.NUMERIC:e.push([r,{data:r.data,mode:n.ALPHANUMERIC,length:r.length},{data:r.data,mode:n.BYTE,length:r.length}]);break;case n.ALPHANUMERIC:e.push([r,{data:r.data,mode:n.BYTE,length:r.length}]);break;case n.KANJI:e.push([r,{data:r.data,mode:n.BYTE,length:u(r.data)}]);break;case n.BYTE:e.push([{data:r.data,mode:n.BYTE,length:u(r.data)}])}}return e}(p(t,c.isKanjiModeEnabled())),e),s=h.find_path(r.map,"start","end"),a=[],o=1;o<s.length-1;o++)a.push(r.table[s[o]].node);return i.fromArray(a.reduce((function(t,e){var i=t.length-1>=0?t[t.length-1]:null;return i&&i.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)}),[]))},i.rawSplit=function(t){return i.fromArray(p(t,c.isKanjiModeEnabled()))}},{"./alphanumeric-data":3,"./byte-data":6,"./kanji-data":12,"./mode":14,"./numeric-data":15,"./regex":19,"./utils":21,dijkstrajs:31}],21:[function(t,e,i){var n,r=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];i.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return 4*t+17},i.getSymbolTotalCodewords=function(t){return r[t]},i.getBCHDigit=function(t){for(var e=0;0!==t;)e++,t>>>=1;return e},i.setToSJISFunction=function(t){if("function"!=typeof t)throw new Error('"toSJISFunc" is not a valid function.');n=t},i.isKanjiModeEnabled=function(){return void 0!==n},i.toSJIS=function(t){return n(t)}},{}],22:[function(t,e,i){i.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}},{}],23:[function(t,e,i){var n=t("./utils"),r=t("./error-correction-code"),s=t("./error-correction-level"),a=t("./mode"),o=t("./version-check"),l=t("isarray"),c=n.getBCHDigit(7973);function h(t,e){return a.getCharCountIndicator(t,e)+4}function u(t,e){var i=0;return t.forEach((function(t){var n=h(t.mode,e);i+=n+t.getBitsLength()})),i}i.from=function(t,e){return o.isValid(t)?parseInt(t,10):e},i.getCapacity=function(t,e,i){if(!o.isValid(t))throw new Error("Invalid QR Code version");void 0===i&&(i=a.BYTE);var s=8*(n.getSymbolTotalCodewords(t)-r.getTotalCodewordsCount(t,e));if(i===a.MIXED)return s;var l=s-h(i,t);switch(i){case a.NUMERIC:return Math.floor(l/10*3);case a.ALPHANUMERIC:return Math.floor(l/11*2);case a.KANJI:return Math.floor(l/13);case a.BYTE:default:return Math.floor(l/8)}},i.getBestVersionForData=function(t,e){var n,r=s.from(e,s.M);if(l(t)){if(t.length>1)return function(t,e){for(var n=1;n<=40;n++)if(u(t,n)<=i.getCapacity(n,e,a.MIXED))return n}(t,r);if(0===t.length)return 1;n=t[0]}else n=t;return function(t,e,n){for(var r=1;r<=40;r++)if(e<=i.getCapacity(r,n,t))return r}(n.mode,n.getLength(),r)},i.getEncodedBits=function(t){if(!o.isValid(t)||t<7)throw new Error("Invalid QR Code version");for(var e=t<<12;n.getBCHDigit(e)-c>=0;)e^=7973<<n.getBCHDigit(e)-c;return t<<12|e}},{"./error-correction-code":7,"./error-correction-level":8,"./mode":14,"./utils":21,"./version-check":22,isarray:33}],24:[function(t,e,i){var n=t("./can-promise"),r=t("./core/qrcode"),s=t("./renderer/canvas"),a=t("./renderer/svg-tag.js");function o(t,e,i,s,a){var o=[].slice.call(arguments,1),l=o.length,c="function"==typeof o[l-1];if(!c&&!n())throw new Error("Callback required as last argument");if(!c){if(l<1)throw new Error("Too few arguments provided");return 1===l?(i=e,e=s=void 0):2!==l||e.getContext||(s=i,i=e,e=void 0),new Promise((function(n,a){try{var o=r.create(i,s);n(t(o,e,s))}catch(t){a(t)}}))}if(l<2)throw new Error("Too few arguments provided");2===l?(a=i,i=e,e=s=void 0):3===l&&(e.getContext&&void 0===a?(a=s,s=void 0):(a=s,s=i,i=e,e=void 0));try{var h=r.create(i,s);a(null,t(h,e,s))}catch(t){a(t)}}i.create=r.create,i.toCanvas=o.bind(null,s.render),i.toDataURL=o.bind(null,s.renderToDataURL),i.toString=o.bind(null,(function(t,e,i){return a.render(t,i)}))},{"./can-promise":1,"./core/qrcode":17,"./renderer/canvas":25,"./renderer/svg-tag.js":26}],25:[function(t,e,i){var n=t("./utils");i.render=function(t,e,i){var r=i,s=e;void 0!==r||e&&e.getContext||(r=e,e=void 0),e||(s=function(){try{return document.createElement("canvas")}catch(t){throw new Error("You need to specify a canvas element")}}()),r=n.getOptions(r);var a=n.getImageWidth(t.modules.size,r),o=s.getContext("2d"),l=o.createImageData(a,a);return n.qrToImageData(l.data,t,r),function(t,e,i){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=i,e.width=i,e.style.height=i+"px",e.style.width=i+"px"}(o,s,a),o.putImageData(l,0,0),s},i.renderToDataURL=function(t,e,n){var r=n;void 0!==r||e&&e.getContext||(r=e,e=void 0),r||(r={});var s=i.render(t,e,r),a=r.type||"image/png",o=r.rendererOpts||{};return s.toDataURL(a,o.quality)}},{"./utils":27}],26:[function(t,e,i){var n=t("./utils");function r(t,e){var i=t.a/255,n=e+'="'+t.hex+'"';return i<1?n+" "+e+'-opacity="'+i.toFixed(2).slice(1)+'"':n}function s(t,e,i){var n=t+e;return void 0!==i&&(n+=" "+i),n}i.render=function(t,e,i){var a=n.getOptions(e),o=t.modules.size,l=t.modules.data,c=o+2*a.margin,h=a.color.light.a?"<path "+r(a.color.light,"fill")+' d="M0 0h'+c+"v"+c+'H0z"/>':"",u="<path "+r(a.color.dark,"stroke")+' d="'+function(t,e,i){for(var n="",r=0,a=!1,o=0,l=0;l<t.length;l++){var c=Math.floor(l%e),h=Math.floor(l/e);c||a||(a=!0),t[l]?(o++,l>0&&c>0&&t[l-1]||(n+=a?s("M",c+i,.5+h+i):s("m",r,0),r=0,a=!1),c+1<e&&t[l+1]||(n+=s("h",o),o=0)):r++}return n}(l,o,a.margin)+'"/>',d='viewBox="0 0 '+c+" "+c+'"',p='<svg xmlns="http://www.w3.org/2000/svg" '+(a.width?'width="'+a.width+'" height="'+a.width+'" ':"")+d+' shape-rendering="crispEdges">'+h+u+"</svg>\n";return"function"==typeof i&&i(null,p),p}},{"./utils":27}],27:[function(t,e,i){function n(t){if("number"==typeof t&&(t=t.toString()),"string"!=typeof t)throw new Error("Color should be defined as hex string");var e=t.slice().replace("#","").split("");if(e.length<3||5===e.length||e.length>8)throw new Error("Invalid hex color: "+t);3!==e.length&&4!==e.length||(e=Array.prototype.concat.apply([],e.map((function(t){return[t,t]})))),6===e.length&&e.push("F","F");var i=parseInt(e.join(""),16);return{r:i>>24&255,g:i>>16&255,b:i>>8&255,a:255&i,hex:"#"+e.slice(0,6).join("")}}i.getOptions=function(t){t||(t={}),t.color||(t.color={});var e=void 0===t.margin||null===t.margin||t.margin<0?4:t.margin,i=t.width&&t.width>=21?t.width:void 0,r=t.scale||4;return{width:i,scale:i?4:r,margin:e,color:{dark:n(t.color.dark||"#000000ff"),light:n(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}},i.getScale=function(t,e){return e.width&&e.width>=t+2*e.margin?e.width/(t+2*e.margin):e.scale},i.getImageWidth=function(t,e){var n=i.getScale(t,e);return Math.floor((t+2*e.margin)*n)},i.qrToImageData=function(t,e,n){for(var r=e.modules.size,s=e.modules.data,a=i.getScale(r,n),o=Math.floor((r+2*n.margin)*a),l=n.margin*a,c=[n.color.light,n.color.dark],h=0;h<o;h++)for(var u=0;u<o;u++){var d=4*(h*o+u),p=n.color.light;h>=l&&u>=l&&h<o-l&&u<o-l&&(p=c[s[Math.floor((h-l)/a)*r+Math.floor((u-l)/a)]?1:0]),t[d++]=p.r,t[d++]=p.g,t[d++]=p.b,t[d]=p.a}}},{}],28:[function(t,e,i){var n=t("isarray");s.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()}catch(t){return!1}}();var r=s.TYPED_ARRAY_SUPPORT?2147483647:1073741823;function s(t,e,i){return s.TYPED_ARRAY_SUPPORT||this instanceof s?"number"==typeof t?l(this,t):function(t,e,i,n){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,i,n){if(i<0||e.byteLength<i)throw new RangeError("'offset' is out of bounds");if(e.byteLength<i+(n||0))throw new RangeError("'length' is out of bounds");var r;return r=void 0===i&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,i):new Uint8Array(e,i,n),s.TYPED_ARRAY_SUPPORT?r.__proto__=s.prototype:r=c(t,r),r}(t,e,i,n):"string"==typeof e?function(t,e){var i=0|u(e),n=o(t,i),r=n.write(e);return r!==i&&(n=n.slice(0,r)),n}(t,e):function(t,e){if(s.isBuffer(e)){var i=0|a(e.length),n=o(t,i);return 0===n.length||e.copy(n,0,0,i),n}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(r=e.length)!=r?o(t,0):c(t,e);if("Buffer"===e.type&&Array.isArray(e.data))return c(t,e.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}(this,t,e,i):new s(t,e,i)}function a(t){if(t>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return 0|t}function o(t,e){var i;return s.TYPED_ARRAY_SUPPORT?(i=new Uint8Array(e)).__proto__=s.prototype:(null===(i=t)&&(i=new s(e)),i.length=e),i}function l(t,e){var i=o(t,e<0?0:0|a(e));if(!s.TYPED_ARRAY_SUPPORT)for(var n=0;n<e;++n)i[n]=0;return i}function c(t,e){for(var i=e.length<0?0:0|a(e.length),n=o(t,i),r=0;r<i;r+=1)n[r]=255&e[r];return n}function h(t,e){var i;e=e||1/0;for(var n=t.length,r=null,s=[],a=0;a<n;++a){if((i=t.charCodeAt(a))>55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&s.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&s.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(e-=3)>-1&&s.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;s.push(i)}else if(i<2048){if((e-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function u(t){return s.isBuffer(t)?t.length:"undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer)?t.byteLength:("string"!=typeof t&&(t=""+t),0===t.length?0:h(t).length)}s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1})),s.prototype.write=function(t,e,i){void 0===e||void 0===i&&"string"==typeof e?(i=this.length,e=0):isFinite(e)&&(e|=0,isFinite(i)?i|=0:i=void 0);var n=this.length-e;if((void 0===i||i>n)&&(i=n),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");return function(t,e,i,n){return function(t,e,i,n){for(var r=0;r<n&&!(r+i>=e.length||r>=t.length);++r)e[r+i]=t[r];return r}(h(e,t.length-i),t,i,n)}(this,t,e,i)},s.prototype.slice=function(t,e){var i,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e<t&&(e=t),s.TYPED_ARRAY_SUPPORT)(i=this.subarray(t,e)).__proto__=s.prototype;else{var r=e-t;i=new s(r,void 0);for(var a=0;a<r;++a)i[a]=this[a+t]}return i},s.prototype.copy=function(t,e,i,n){if(i||(i=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<i&&(n=i),n===i)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-i&&(n=t.length-e+i);var r,a=n-i;if(this===t&&i<e&&e<n)for(r=a-1;r>=0;--r)t[r+e]=this[r+i];else if(a<1e3||!s.TYPED_ARRAY_SUPPORT)for(r=0;r<a;++r)t[r+e]=this[r+i];else Uint8Array.prototype.set.call(t,this.subarray(i,i+a),e);return a},s.prototype.fill=function(t,e,i){if("string"==typeof t){if("string"==typeof e?(e=0,i=this.length):"string"==typeof i&&(i=this.length),1===t.length){var n=t.charCodeAt(0);n<256&&(t=n)}}else"number"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<i)throw new RangeError("Out of range index");if(i<=e)return this;var r;if(e>>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(r=e;r<i;++r)this[r]=t;else{var a=s.isBuffer(t)?t:new s(t),o=a.length;for(r=0;r<i-e;++r)this[r+e]=a[r%o]}return this},s.concat=function(t,e){if(!n(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return o(null,0);var i;if(void 0===e)for(e=0,i=0;i<t.length;++i)e+=t[i].length;var r=l(null,e),a=0;for(i=0;i<t.length;++i){var c=t[i];if(!s.isBuffer(c))throw new TypeError('"list" argument must be an Array of Buffers');c.copy(r,a),a+=c.length}return r},s.byteLength=u,s.prototype._isBuffer=!0,s.isBuffer=function(t){return!(null==t||!t._isBuffer)},e.exports.alloc=function(t){var e=new s(t);return e.fill(0),e},e.exports.from=function(t){return new s(t)}},{isarray:33}],29:[function(t,e,i){i.byteLength=function(t){var e=l(t),i=e[0],n=e[1];return 3*(i+n)/4-n},i.toByteArray=function(t){var e,i,n=l(t),a=n[0],o=n[1],c=new s(function(t,e,i){return 3*(e+i)/4-i}(0,a,o)),h=0,u=o>0?a-4:a;for(i=0;i<u;i+=4)e=r[t.charCodeAt(i)]<<18|r[t.charCodeAt(i+1)]<<12|r[t.charCodeAt(i+2)]<<6|r[t.charCodeAt(i+3)],c[h++]=e>>16&255,c[h++]=e>>8&255,c[h++]=255&e;return 2===o&&(e=r[t.charCodeAt(i)]<<2|r[t.charCodeAt(i+1)]>>4,c[h++]=255&e),1===o&&(e=r[t.charCodeAt(i)]<<10|r[t.charCodeAt(i+1)]<<4|r[t.charCodeAt(i+2)]>>2,c[h++]=e>>8&255,c[h++]=255&e),c},i.fromByteArray=function(t){for(var e,i=t.length,r=i%3,s=[],a=16383,o=0,l=i-r;o<l;o+=a)s.push(c(t,o,o+a>l?l:o+a));return 1===r?(e=t[i-1],s.push(n[e>>2]+n[e<<4&63]+"==")):2===r&&(e=(t[i-2]<<8)+t[i-1],s.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),s.join("")};for(var n=[],r=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)n[o]=a[o],r[a.charCodeAt(o)]=o;function l(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.indexOf("=");return-1===i&&(i=e),[i,i===e?0:4-i%4]}function c(t,e,i){for(var r,s=[],a=e;a<i;a+=3)r=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(255&t[a+2]),s.push(n[(o=r)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);var o;return s.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},{}],30:[function(t,e,i){var n=t("base64-js"),r=t("ieee754"),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;i.Buffer=l,i.SlowBuffer=function(t){return+t!=t&&(t=0),l.alloc(+t)},i.INSPECT_MAX_BYTES=50;var a=2147483647;function o(t){if(t>a)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,l.prototype),e}function l(t,e,i){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return u(t)}return c(t,e,i)}function c(t,e,i){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!l.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var i=0|f(t,e),n=o(i),r=n.write(t,e);return r!==i&&(n=n.slice(0,r)),n}(t,e);if(ArrayBuffer.isView(t))return d(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(V(t,ArrayBuffer)||t&&V(t.buffer,ArrayBuffer))return function(t,e,i){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(i||0))throw new RangeError('"length" is outside of buffer bounds');var n;return n=void 0===e&&void 0===i?new Uint8Array(t):void 0===i?new Uint8Array(t,e):new Uint8Array(t,e,i),Object.setPrototypeOf(n,l.prototype),n}(t,e,i);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return l.from(n,e,i);var r=function(t){if(l.isBuffer(t)){var e=0|p(t.length),i=o(e);return 0===i.length||t.copy(i,0,0,e),i}return void 0!==t.length?"number"!=typeof t.length||j(t.length)?o(0):d(t):"Buffer"===t.type&&Array.isArray(t.data)?d(t.data):void 0}(t);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return l.from(t[Symbol.toPrimitive]("string"),e,i);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function h(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function u(t){return h(t),o(t<0?0:0|p(t))}function d(t){for(var e=t.length<0?0:0|p(t.length),i=o(e),n=0;n<e;n+=1)i[n]=255&t[n];return i}function p(t){if(t>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|t}function f(t,e){if(l.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||V(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var i=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===i)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":return U(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return $(t).length;default:if(r)return n?-1:U(t).length;e=(""+e).toLowerCase(),r=!0}}function g(t,e,i){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return N(this,e,i);case"utf8":case"utf-8":return S(this,e,i);case"ascii":return k(this,e,i);case"latin1":case"binary":return T(this,e,i);case"base64":return x(this,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,e,i);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function A(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function m(t,e,i,n,r){if(0===t.length)return-1;if("string"==typeof i?(n=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),j(i=+i)&&(i=r?0:t.length-1),i<0&&(i=t.length+i),i>=t.length){if(r)return-1;i=t.length-1}else if(i<0){if(!r)return-1;i=0}if("string"==typeof e&&(e=l.from(e,n)),l.isBuffer(e))return 0===e.length?-1:v(t,e,i,n,r);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(t,e,i):Uint8Array.prototype.lastIndexOf.call(t,e,i):v(t,[e],i,n,r);throw new TypeError("val must be string, number or Buffer")}function v(t,e,i,n,r){var s,a=1,o=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,o/=2,l/=2,i/=2}function c(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(r){var h=-1;for(s=i;s<o;s++)if(c(t,s)===c(e,-1===h?0:s-h)){if(-1===h&&(h=s),s-h+1===l)return h*a}else-1!==h&&(s-=s-h),h=-1}else for(i+l>o&&(i=o-l),s=i;s>=0;s--){for(var u=!0,d=0;d<l;d++)if(c(t,s+d)!==c(e,d)){u=!1;break}if(u)return s}return-1}function y(t,e,i,n){i=Number(i)||0;var r=t.length-i;n?(n=Number(n))>r&&(n=r):n=r;var s=e.length;n>s/2&&(n=s/2);for(var a=0;a<n;++a){var o=parseInt(e.substr(2*a,2),16);if(j(o))return a;t[i+a]=o}return a}function w(t,e,i,n){return F(U(e,t.length-i),t,i,n)}function C(t,e,i,n){return F(function(t){for(var e=[],i=0;i<t.length;++i)e.push(255&t.charCodeAt(i));return e}(e),t,i,n)}function b(t,e,i,n){return C(t,e,i,n)}function _(t,e,i,n){return F($(e),t,i,n)}function E(t,e,i,n){return F(function(t,e){for(var i,n,r,s=[],a=0;a<t.length&&!((e-=2)<0);++a)n=(i=t.charCodeAt(a))>>8,r=i%256,s.push(r),s.push(n);return s}(e,t.length-i),t,i,n)}function x(t,e,i){return 0===e&&i===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,i))}function S(t,e,i){i=Math.min(t.length,i);for(var n=[],r=e;r<i;){var s,a,o,l,c=t[r],h=null,u=c>239?4:c>223?3:c>191?2:1;if(r+u<=i)switch(u){case 1:c<128&&(h=c);break;case 2:128==(192&(s=t[r+1]))&&(l=(31&c)<<6|63&s)>127&&(h=l);break;case 3:s=t[r+1],a=t[r+2],128==(192&s)&&128==(192&a)&&(l=(15&c)<<12|(63&s)<<6|63&a)>2047&&(l<55296||l>57343)&&(h=l);break;case 4:s=t[r+1],a=t[r+2],o=t[r+3],128==(192&s)&&128==(192&a)&&128==(192&o)&&(l=(15&c)<<18|(63&s)<<12|(63&a)<<6|63&o)>65535&&l<1114112&&(h=l)}null===h?(h=65533,u=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),r+=u}return function(t){var e=t.length;if(e<=I)return String.fromCharCode.apply(String,t);for(var i="",n=0;n<e;)i+=String.fromCharCode.apply(String,t.slice(n,n+=I));return i}(n)}i.kMaxLength=a,l.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),l.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}}),"undefined"!=typeof Symbol&&null!=Symbol.species&&l[Symbol.species]===l&&Object.defineProperty(l,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),l.poolSize=8192,l.from=function(t,e,i){return c(t,e,i)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array),l.alloc=function(t,e,i){return function(t,e,i){return h(t),t<=0?o(t):void 0!==e?"string"==typeof i?o(t).fill(e,i):o(t).fill(e):o(t)}(t,e,i)},l.allocUnsafe=function(t){return u(t)},l.allocUnsafeSlow=function(t){return u(t)},l.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==l.prototype},l.compare=function(t,e){if(V(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),V(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(t)||!l.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var i=t.length,n=e.length,r=0,s=Math.min(i,n);r<s;++r)if(t[r]!==e[r]){i=t[r],n=e[r];break}return i<n?-1:n<i?1:0},l.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return l.alloc(0);var i;if(void 0===e)for(e=0,i=0;i<t.length;++i)e+=t[i].length;var n=l.allocUnsafe(e),r=0;for(i=0;i<t.length;++i){var s=t[i];if(V(s,Uint8Array)&&(s=l.from(s)),!l.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(n,r),r+=s.length}return n},l.byteLength=f,l.prototype._isBuffer=!0,l.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)A(this,e,e+1);return this},l.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)A(this,e,e+3),A(this,e+1,e+2);return this},l.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)A(this,e,e+7),A(this,e+1,e+6),A(this,e+2,e+5),A(this,e+3,e+4);return this},l.prototype.toString=function(){var t=this.length;return 0===t?"":0===arguments.length?S(this,0,t):g.apply(this,arguments)},l.prototype.toLocaleString=l.prototype.toString,l.prototype.equals=function(t){if(!l.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===l.compare(this,t)},l.prototype.inspect=function(){var t="",e=i.INSPECT_MAX_BYTES;return t=this.toString("hex",0,e).replace(/(.{2})/g,"$1 ").trim(),this.length>e&&(t+=" ... "),"<Buffer "+t+">"},s&&(l.prototype[s]=l.prototype.inspect),l.prototype.compare=function(t,e,i,n,r){if(V(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),!l.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===i&&(i=t?t.length:0),void 0===n&&(n=0),void 0===r&&(r=this.length),e<0||i>t.length||n<0||r>this.length)throw new RangeError("out of range index");if(n>=r&&e>=i)return 0;if(n>=r)return-1;if(e>=i)return 1;if(this===t)return 0;for(var s=(r>>>=0)-(n>>>=0),a=(i>>>=0)-(e>>>=0),o=Math.min(s,a),c=this.slice(n,r),h=t.slice(e,i),u=0;u<o;++u)if(c[u]!==h[u]){s=c[u],a=h[u];break}return s<a?-1:a<s?1:0},l.prototype.includes=function(t,e,i){return-1!==this.indexOf(t,e,i)},l.prototype.indexOf=function(t,e,i){return m(this,t,e,i,!0)},l.prototype.lastIndexOf=function(t,e,i){return m(this,t,e,i,!1)},l.prototype.write=function(t,e,i,n){if(void 0===e)n="utf8",i=this.length,e=0;else if(void 0===i&&"string"==typeof e)n=e,i=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(i)?(i>>>=0,void 0===n&&(n="utf8")):(n=i,i=void 0)}var r=this.length-e;if((void 0===i||i>r)&&(i=r),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return y(this,t,e,i);case"utf8":case"utf-8":return w(this,t,e,i);case"ascii":return C(this,t,e,i);case"latin1":case"binary":return b(this,t,e,i);case"base64":return _(this,t,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,e,i);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;function k(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;r<i;++r)n+=String.fromCharCode(127&t[r]);return n}function T(t,e,i){var n="";i=Math.min(t.length,i);for(var r=e;r<i;++r)n+=String.fromCharCode(t[r]);return n}function N(t,e,i){var n=t.length;(!e||e<0)&&(e=0),(!i||i<0||i>n)&&(i=n);for(var r="",s=e;s<i;++s)r+=q[t[s]];return r}function D(t,e,i){for(var n=t.slice(e,i),r="",s=0;s<n.length;s+=2)r+=String.fromCharCode(n[s]+256*n[s+1]);return r}function P(t,e,i){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>i)throw new RangeError("Trying to access beyond buffer length")}function R(t,e,i,n,r,s){if(!l.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>r||e<s)throw new RangeError('"value" argument is out of bounds');if(i+n>t.length)throw new RangeError("Index out of range")}function B(t,e,i,n,r,s){if(i+n>t.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function L(t,e,i,n,s){return e=+e,i>>>=0,s||B(t,0,i,4),r.write(t,e,i,n,23,4),i+4}function O(t,e,i,n,s){return e=+e,i>>>=0,s||B(t,0,i,8),r.write(t,e,i,n,52,8),i+8}l.prototype.slice=function(t,e){var i=this.length;(t=~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),(e=void 0===e?i:~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),e<t&&(e=t);var n=this.subarray(t,e);return Object.setPrototypeOf(n,l.prototype),n},l.prototype.readUIntLE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=this[t],r=1,s=0;++s<e&&(r*=256);)n+=this[t+s]*r;return n},l.prototype.readUIntBE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=this[t+--e],r=1;e>0&&(r*=256);)n+=this[t+--e]*r;return n},l.prototype.readUInt8=function(t,e){return t>>>=0,e||P(t,1,this.length),this[t]},l.prototype.readUInt16LE=function(t,e){return t>>>=0,e||P(t,2,this.length),this[t]|this[t+1]<<8},l.prototype.readUInt16BE=function(t,e){return t>>>=0,e||P(t,2,this.length),this[t]<<8|this[t+1]},l.prototype.readUInt32LE=function(t,e){return t>>>=0,e||P(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},l.prototype.readUInt32BE=function(t,e){return t>>>=0,e||P(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},l.prototype.readIntLE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=this[t],r=1,s=0;++s<e&&(r*=256);)n+=this[t+s]*r;return n>=(r*=128)&&(n-=Math.pow(2,8*e)),n},l.prototype.readIntBE=function(t,e,i){t>>>=0,e>>>=0,i||P(t,e,this.length);for(var n=e,r=1,s=this[t+--n];n>0&&(r*=256);)s+=this[t+--n]*r;return s>=(r*=128)&&(s-=Math.pow(2,8*e)),s},l.prototype.readInt8=function(t,e){return t>>>=0,e||P(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},l.prototype.readInt16LE=function(t,e){t>>>=0,e||P(t,2,this.length);var i=this[t]|this[t+1]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt16BE=function(t,e){t>>>=0,e||P(t,2,this.length);var i=this[t+1]|this[t]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt32LE=function(t,e){return t>>>=0,e||P(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},l.prototype.readInt32BE=function(t,e){return t>>>=0,e||P(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},l.prototype.readFloatLE=function(t,e){return t>>>=0,e||P(t,4,this.length),r.read(this,t,!0,23,4)},l.prototype.readFloatBE=function(t,e){return t>>>=0,e||P(t,4,this.length),r.read(this,t,!1,23,4)},l.prototype.readDoubleLE=function(t,e){return t>>>=0,e||P(t,8,this.length),r.read(this,t,!0,52,8)},l.prototype.readDoubleBE=function(t,e){return t>>>=0,e||P(t,8,this.length),r.read(this,t,!1,52,8)},l.prototype.writeUIntLE=function(t,e,i,n){t=+t,e>>>=0,i>>>=0,n||R(this,t,e,i,Math.pow(2,8*i)-1,0);var r=1,s=0;for(this[e]=255&t;++s<i&&(r*=256);)this[e+s]=t/r&255;return e+i},l.prototype.writeUIntBE=function(t,e,i,n){t=+t,e>>>=0,i>>>=0,n||R(this,t,e,i,Math.pow(2,8*i)-1,0);var r=i-1,s=1;for(this[e+r]=255&t;--r>=0&&(s*=256);)this[e+r]=t/s&255;return e+i},l.prototype.writeUInt8=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,1,255,0),this[e]=255&t,e+1},l.prototype.writeUInt16LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeUInt16BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeUInt32LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},l.prototype.writeUInt32BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeIntLE=function(t,e,i,n){if(t=+t,e>>>=0,!n){var r=Math.pow(2,8*i-1);R(this,t,e,i,r-1,-r)}var s=0,a=1,o=0;for(this[e]=255&t;++s<i&&(a*=256);)t<0&&0===o&&0!==this[e+s-1]&&(o=1),this[e+s]=(t/a|0)-o&255;return e+i},l.prototype.writeIntBE=function(t,e,i,n){if(t=+t,e>>>=0,!n){var r=Math.pow(2,8*i-1);R(this,t,e,i,r-1,-r)}var s=i-1,a=1,o=0;for(this[e+s]=255&t;--s>=0&&(a*=256);)t<0&&0===o&&0!==this[e+s+1]&&(o=1),this[e+s]=(t/a|0)-o&255;return e+i},l.prototype.writeInt8=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},l.prototype.writeInt16LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeInt16BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeInt32LE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},l.prototype.writeInt32BE=function(t,e,i){return t=+t,e>>>=0,i||R(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeFloatLE=function(t,e,i){return L(this,t,e,!0,i)},l.prototype.writeFloatBE=function(t,e,i){return L(this,t,e,!1,i)},l.prototype.writeDoubleLE=function(t,e,i){return O(this,t,e,!0,i)},l.prototype.writeDoubleBE=function(t,e,i){return O(this,t,e,!1,i)},l.prototype.copy=function(t,e,i,n){if(!l.isBuffer(t))throw new TypeError("argument should be a Buffer");if(i||(i=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<i&&(n=i),n===i)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(i<0||i>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-i&&(n=t.length-e+i);var r=n-i;if(this===t&&"function"==typeof Uint8Array.prototype.copyWithin)this.copyWithin(e,i,n);else if(this===t&&i<e&&e<n)for(var s=r-1;s>=0;--s)t[s+e]=this[s+i];else Uint8Array.prototype.set.call(t,this.subarray(i,n),e);return r},l.prototype.fill=function(t,e,i,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,i=this.length):"string"==typeof i&&(n=i,i=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!l.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){var r=t.charCodeAt(0);("utf8"===n&&r<128||"latin1"===n)&&(t=r)}}else"number"==typeof t?t&=255:"boolean"==typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<i)throw new RangeError("Out of range index");if(i<=e)return this;var s;if(e>>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(s=e;s<i;++s)this[s]=t;else{var a=l.isBuffer(t)?t:l.from(t,n),o=a.length;if(0===o)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(s=0;s<i-e;++s)this[s+e]=a[s%o]}return this};var M=/[^+/0-9A-Za-z-_]/g;function U(t,e){var i;e=e||1/0;for(var n=t.length,r=null,s=[],a=0;a<n;++a){if((i=t.charCodeAt(a))>55295&&i<57344){if(!r){if(i>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&s.push(239,191,189);continue}r=i;continue}if(i<56320){(e-=3)>-1&&s.push(239,191,189),r=i;continue}i=65536+(r-55296<<10|i-56320)}else r&&(e-=3)>-1&&s.push(239,191,189);if(r=null,i<128){if((e-=1)<0)break;s.push(i)}else if(i<2048){if((e-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function $(t){return n.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(M,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function F(t,e,i,n){for(var r=0;r<n&&!(r+i>=e.length||r>=t.length);++r)e[r+i]=t[r];return r}function V(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function j(t){return t!=t}var q=function(){for(var t="0123456789abcdef",e=new Array(256),i=0;i<16;++i)for(var n=16*i,r=0;r<16;++r)e[n+r]=t[i]+t[r];return e}()},{"base64-js":29,ieee754:32}],31:[function(t,e,i){var n={single_source_shortest_paths:function(t,e,i){var r={},s={};s[e]=0;var a,o,l,c,h,u,d,p=n.PriorityQueue.make();for(p.push(e,0);!p.empty();)for(l in o=(a=p.pop()).value,c=a.cost,h=t[o]||{})h.hasOwnProperty(l)&&(u=c+h[l],d=s[l],(void 0===s[l]||d>u)&&(s[l]=u,p.push(l,u),r[l]=o));if(void 0!==i&&void 0===s[i]){var f=["Could not find a path from ",e," to ",i,"."].join("");throw new Error(f)}return r},extract_shortest_path_from_predecessor_list:function(t,e){for(var i=[],n=e;n;)i.push(n),t[n],n=t[n];return i.reverse(),i},find_path:function(t,e,i){var r=n.single_source_shortest_paths(t,e,i);return n.extract_shortest_path_from_predecessor_list(r,i)},PriorityQueue:{make:function(t){var e,i=n.PriorityQueue,r={};for(e in t=t||{},i)i.hasOwnProperty(e)&&(r[e]=i[e]);return r.queue=[],r.sorter=t.sorter||i.default_sorter,r},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){var i={value:t,cost:e};this.queue.push(i),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};void 0!==e&&(e.exports=n)},{}],32:[function(t,e,i){i.read=function(t,e,i,n,r){var s,a,o=8*r-n-1,l=(1<<o)-1,c=l>>1,h=-7,u=i?r-1:0,d=i?-1:1,p=t[e+u];for(u+=d,s=p&(1<<-h)-1,p>>=-h,h+=o;h>0;s=256*s+t[e+u],u+=d,h-=8);for(a=s&(1<<-h)-1,s>>=-h,h+=n;h>0;a=256*a+t[e+u],u+=d,h-=8);if(0===s)s=1-c;else{if(s===l)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,n),s-=c}return(p?-1:1)*a*Math.pow(2,s-n)},i.write=function(t,e,i,n,r,s){var a,o,l,c=8*s-r-1,h=(1<<c)-1,u=h>>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,f=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,a=h):(a=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-a))<1&&(a--,l*=2),(e+=a+u>=1?d/l:d*Math.pow(2,1-u))*l>=2&&(a++,l/=2),a+u>=h?(o=0,a=h):a+u>=1?(o=(e*l-1)*Math.pow(2,r),a+=u):(o=e*Math.pow(2,u-1)*Math.pow(2,r),a=0));r>=8;t[i+p]=255&o,p+=f,o/=256,r-=8);for(a=a<<r|o,c+=r;c>0;t[i+p]=255&a,p+=f,a/=256,c-=8);t[i+p-f]|=128*g}},{}],33:[function(t,e,i){var n={}.toString;e.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},{}]},{},[24])(24)},e.exports=n()}));return{name:"qrcode",props:{value:null,options:Object,tag:{type:String,default:"canvas"}},render:function(t){return t(this.tag,this.$slots.default)},watch:{$props:{deep:!0,immediate:!0,handler:function(){this.$el&&this.generate()}}},methods:{generate:function(){var t=this,i=this.options,n=this.tag,r=String(this.value);"canvas"===n?e.toCanvas(this.$el,r,i,(function(t){if(t)throw t})):"img"===n?e.toDataURL(r,i,(function(e,i){if(e)throw e;t.$el.src=i})):e.toString(r,i,(function(e,i){if(e)throw e;t.$el.innerHTML=i}))}},mounted:function(){this.generate()}}}()},97380:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\n opacity: 0;\n}\n.linked-icons[data-v-42733c12] {\n display: flex;\n}\n.linked-icons img[data-v-42733c12] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-42733c12]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-42733c12] {\n display: none;\n}\n.popovermenu.open[data-v-42733c12] {\n display: block;\n}\nli.collection-list-item[data-v-42733c12] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-42733c12] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-42733c12] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-42733c12] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-42733c12] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-42733c12] {\n animation: shake-42733c12 0.6s 1 linear;\n}\n@keyframes shake-42733c12 {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}.collection-list *[data-v-8ebb2593] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-8ebb2593] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-8ebb2593] {\n margin-top: auto;\n}\n#collection-select-container[data-v-8ebb2593] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-8ebb2593] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-8ebb2593]:hover {\n opacity: 1;\n}\np.hint[data-v-8ebb2593] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-8ebb2593] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-8ebb2593] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-8ebb2593] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-8ebb2593] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-8ebb2593] {\n padding: 4px;\n}\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\n opacity: 0;\n}","",{version:3,sources:["webpack://./node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css"],names:[],mappings:"AAAA;EACE,6BAA6B;AAC/B;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,YAAY;EACZ,cAAc;EACd,4BAA4B;EAC5B,2BAA2B;EAC3B,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,eAAe;EACf,YAAY;EACZ,eAAe;EACf,2BAA2B;AAC7B;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,YAAY;EACZ,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,6CAA6C;AAC/C;AACA;EACE,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,aAAa;EACb,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,YAAY;EACZ,YAAY;EACZ,4BAA4B;EAC5B,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,kBAAkB;AACpB;AACA;EACE,uBAAuB;EACvB,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,YAAY;AACd;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,2BAA2B;AAC/B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,yBAAyB;AAC7B;AACA,CAAC;EACC,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,SAAS;AACX;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,oCAAoC;EACpC,mBAAmB;AACrB;AACA;EACE,WAAW;EACX,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,8CAA8C;EAC9C,gBAAgB;AAClB;;AAEA,qCAAqC;AACrC;EACE,cAAc;EACd,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;EACd,2DAA2D;AAC7D;AACA;EACE,YAAY;AACd;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,UAAU;AACZ",sourcesContent:[".fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\n opacity: 0;\n}\n.linked-icons[data-v-42733c12] {\n display: flex;\n}\n.linked-icons img[data-v-42733c12] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-42733c12]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-42733c12] {\n display: none;\n}\n.popovermenu.open[data-v-42733c12] {\n display: block;\n}\nli.collection-list-item[data-v-42733c12] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-42733c12] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-42733c12] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-42733c12] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-42733c12] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-42733c12] {\n animation: shake-42733c12 0.6s 1 linear;\n}\n@keyframes shake-42733c12 {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}.collection-list *[data-v-8ebb2593] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-8ebb2593] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-8ebb2593] {\n margin-top: auto;\n}\n#collection-select-container[data-v-8ebb2593] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-8ebb2593] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-8ebb2593]:hover {\n opacity: 1;\n}\np.hint[data-v-8ebb2593] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-8ebb2593] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-8ebb2593] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-8ebb2593] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-8ebb2593] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-8ebb2593] {\n padding: 4px;\n}\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\n opacity: 0;\n}"],sourceRoot:""}]);const o=a},63592:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-e994747e]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-e994747e]{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-e994747e]{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-e994747e],.sharing-entry__summary__desc small[data-v-e994747e]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-e994747e]{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 o=a},88346:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-32cb91ce]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-32cb91ce]{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-32cb91ce]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-32cb91ce]{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 o=a},23815:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry__internal .avatar-external[data-v-1d9a7cfa]{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-1d9a7cfa]{opacity:1;color:var(--color-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,0BAAA",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-success);\n\t}\n}\n"],sourceRoot:""}]);const o=a},98733:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-3d033992]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-3d033992]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-3d033992]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-3d033992]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-3d033992]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-3d033992]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-3d033992] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-3d033992]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-3d033992]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-3d033992],.sharing-entry .action-item~.sharing-entry__loading[data-v-3d033992]{margin-inline-start:0}.sharing-entry .icon-checkmark-color[data-v-3d033992]{opacity:1;color:var(--color-success)}.qr-code-dialog[data-v-3d033992]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-3d033992]{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,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAKF,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,sDACC,SAAA,CACA,0BAAA,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}\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&: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.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-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 o=a},60469:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".share-select[data-v-be1cd266]{display:block}.share-select[data-v-be1cd266] .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-be1cd266] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-be1cd266] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-be1cd266] .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 o=a},86495:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry[data-v-4c49edf4]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-4c49edf4]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-4c49edf4]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-4c49edf4]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-4c49edf4]{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 o=a},67510:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.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 o=a},94906:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharingTabDetailsView[data-v-c672ed08]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-c672ed08]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-c672ed08]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-c672ed08]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-c672ed08]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-c672ed08]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-c672ed08]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-c672ed08]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-c672ed08]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-c672ed08] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-c672ed08] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-c672ed08] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-c672ed08]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-c672ed08]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-c672ed08]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-c672ed08],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-c672ed08]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-c672ed08]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-c672ed08] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-c672ed08]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-c672ed08]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-c672ed08]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-c672ed08]{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-c672ed08]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-c672ed08]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-c672ed08]: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 o=a},91877:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".sharing-entry__inherited .avatar-shared[data-v-4baa5581]{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 o=a},86761:(t,e,i)=>{"use strict";i.d(e,{A:()=>o});var n=i(71354),r=i.n(n),s=i(76314),a=i.n(s)()(r());a.push([t.id,".emptyContentWithSections[data-v-15a4df38]{margin:1rem auto}.sharingTab[data-v-15a4df38]{position:relative;height:100%}.sharingTab__content[data-v-15a4df38]{padding:0 6px}.sharingTab__content section[data-v-15a4df38]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-15a4df38]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-15a4df38]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-15a4df38]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-15a4df38]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-15a4df38]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-15a4df38]{margin:44px 0}.hint-body[data-v-15a4df38]{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,CAEA,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,aAAA,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\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: 44px 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n"],sourceRoot:""}]);const o=a},48318:function(t,e,i){!function(t){"use strict";var e,i=function(){try{if(t.URLSearchParams&&"bar"===new t.URLSearchParams("foo=bar").get("foo"))return t.URLSearchParams}catch(t){}return null}(),n=i&&"a=1"===new i({a:1}).toString(),r=i&&"+"===new i("s=%2B").get("s"),s=i&&"size"in i.prototype,a="__URLSearchParams__",o=!i||((e=new i).append("s"," &"),"s=+%26"===e.toString()),l=p.prototype,c=!(!t.Symbol||!t.Symbol.iterator);if(!(i&&n&&r&&o&&s)){l.append=function(t,e){v(this[a],t,e)},l.delete=function(t){delete this[a][t]},l.get=function(t){var e=this[a];return this.has(t)?e[t][0]:null},l.getAll=function(t){var e=this[a];return this.has(t)?e[t].slice(0):[]},l.has=function(t){return w(this[a],t)},l.set=function(t,e){this[a][t]=[""+e]},l.toString=function(){var t,e,i,n,r=this[a],s=[];for(e in r)for(i=f(e),t=0,n=r[e];t<n.length;t++)s.push(i+"="+f(n[t]));return s.join("&")};var h,u=t.Proxy&&i&&(!r||!o||!n||!s);u?(h=new Proxy(i,{construct:function(t,e){return new t(new p(e[0]).toString())}})).toString=Function.prototype.toString.bind(p):h=p,Object.defineProperty(t,"URLSearchParams",{value:h});var d=t.URLSearchParams.prototype;d.polyfill=!0,!u&&t.Symbol&&(d[t.Symbol.toStringTag]="URLSearchParams"),"forEach"in d||(d.forEach=function(t,e){var i=m(this.toString());Object.getOwnPropertyNames(i).forEach((function(n){i[n].forEach((function(i){t.call(e,i,n,this)}),this)}),this)}),"sort"in d||(d.sort=function(){var t,e,i,n=m(this.toString()),r=[];for(t in n)r.push(t);for(r.sort(),e=0;e<r.length;e++)this.delete(r[e]);for(e=0;e<r.length;e++){var s=r[e],a=n[s];for(i=0;i<a.length;i++)this.append(s,a[i])}}),"keys"in d||(d.keys=function(){var t=[];return this.forEach((function(e,i){t.push(i)})),A(t)}),"values"in d||(d.values=function(){var t=[];return this.forEach((function(e){t.push(e)})),A(t)}),"entries"in d||(d.entries=function(){var t=[];return this.forEach((function(e,i){t.push([i,e])})),A(t)}),c&&(d[t.Symbol.iterator]=d[t.Symbol.iterator]||d.entries),"size"in d||Object.defineProperty(d,"size",{get:function(){var t=m(this.toString());if(d===this)throw new TypeError("Illegal invocation at URLSearchParams.invokeGetter");return Object.keys(t).reduce((function(e,i){return e+t[i].length}),0)}})}function p(t){((t=t||"")instanceof URLSearchParams||t instanceof p)&&(t=t.toString()),this[a]=m(t)}function f(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'\(\)~]|%20|%00/g,(function(t){return e[t]}))}function g(t){return t.replace(/[ +]/g,"%20").replace(/(%[a-f0-9]{2})+/gi,(function(t){return decodeURIComponent(t)}))}function A(e){var i={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return c&&(i[t.Symbol.iterator]=function(){return i}),i}function m(t){var e={};if("object"==typeof t)if(y(t))for(var i=0;i<t.length;i++){var n=t[i];if(!y(n)||2!==n.length)throw new TypeError("Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements");v(e,n[0],n[1])}else for(var r in t)t.hasOwnProperty(r)&&v(e,r,t[r]);else{0===t.indexOf("?")&&(t=t.slice(1));for(var s=t.split("&"),a=0;a<s.length;a++){var o=s[a],l=o.indexOf("=");-1<l?v(e,g(o.slice(0,l)),g(o.slice(l+1))):o&&v(e,g(o),"")}}return e}function v(t,e,i){var n="string"==typeof i?i:null!=i&&"function"==typeof i.toString?i.toString():JSON.stringify(i);w(t,e)?t[e].push(n):t[e]=[n]}function y(t){return!!t&&"[object Array]"===Object.prototype.toString.call(t)}function w(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(void 0!==i.g?i.g:"undefined"!=typeof window?window:this)},42805:(e,i,n)=>{"use strict";n.r(i),n.d(i,{default:()=>Ii});var r=n(21777),s=n(35810),a=n(32981),o=n(63814),l=n(85072),c=n.n(l),h=n(97825),u=n.n(h),d=n(77659),p=n.n(d),f=n(55056),g=n.n(f),A=n(10540),m=n.n(A),v=n(41113),y=n.n(v),w=n(97380),C={};C.styleTagTransform=y(),C.setAttributes=g(),C.insert=p().bind(null,"head"),C.domAPI=u(),C.insertStyleElement=m(),c()(w.A,C),w.A&&w.A.locals&&w.A.locals;var b=n(53334),_=n(41944),E=n(67607);const x=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},S="object"==typeof global&&global&&global.Object===Object&&global;var I="object"==typeof self&&self&&self.Object===Object&&self;const k=S||I||Function("return this")(),T=function(){return k.Date.now()};var N=/\s/;var D=/^\s+/;const P=function(t){return t?t.slice(0,function(t){for(var e=t.length;e--&&N.test(t.charAt(e)););return e}(t)+1).replace(D,""):t},R=k.Symbol;var B=Object.prototype,L=B.hasOwnProperty,O=B.toString,M=R?R.toStringTag:void 0;var U=Object.prototype.toString;var $=R?R.toStringTag:void 0;const F=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":$&&$ in Object(t)?function(t){var e=L.call(t,M),i=t[M];try{t[M]=void 0;var n=!0}catch(t){}var r=O.call(t);return n&&(e?t[M]=i:delete t[M]),r}(t):function(t){return U.call(t)}(t)};var V=/^[-+]0x[0-9a-f]+$/i,j=/^0b[01]+$/i,q=/^0o[0-7]+$/i,z=parseInt;const H=function(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return null!=t&&"object"==typeof t}(t)&&"[object Symbol]"==F(t)}(t))return NaN;if(x(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=x(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=P(t);var i=j.test(t);return i||q.test(t)?z(t.slice(2),i?2:8):V.test(t)?NaN:+t};var G=Math.max,Y=Math.min;var W=n(24764),X=n(57505),Q=n(85471),Z=n(65043);const K=new class{constructor(){this.http=Z.Ay}listCollection(t){return this.http.get((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}))}renameCollection(t,e){return this.http.put((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{collectionName:e}).then((t=>t.data.ocs.data))}getCollectionsByResource(t,e){return this.http.get((0,o.KT)("collaboration/resources/{resourceType}/{resourceId}",{resourceType:t,resourceId:e})).then((t=>t.data.ocs.data))}createCollection(t,e,i){return this.http.post((0,o.KT)("collaboration/resources/{resourceType}/{resourceId}",{resourceType:t,resourceId:e}),{name:i}).then((t=>t.data.ocs.data))}addResource(t,e,i){return i=""+i,this.http.post((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{resourceType:e,resourceId:i}).then((t=>t.data.ocs.data))}removeResource(t,e,i){return this.http.delete((0,o.KT)("collaboration/resources/collections/{collectionId}",{collectionId:t}),{params:{resourceType:e,resourceId:i}}).then((t=>t.data.ocs.data))}search(t){return this.http.get((0,o.KT)("collaboration/resources/collections/search/{query}",{query:t})).then((t=>t.data.ocs.data))}},J=(0,Q.Kh)({collections:[]}),tt={addCollections(t){(0,Q.hZ)(J,"collections",t)},addCollection(t){J.collections.push(t)},removeCollection(t){(0,Q.hZ)(J,"collections",J.collections.filter((e=>e.id!==t)))},updateCollection(t){const e=J.collections.findIndex((e=>e.id===t.id));-1!==e?(0,Q.hZ)(J.collections,e,t):J.collections.push(t)}},et={fetchCollectionsByResource:({resourceType:t,resourceId:e})=>K.getCollectionsByResource(t,e).then((t=>(tt.addCollections(t),t))),createCollection:({baseResourceType:t,baseResourceId:e,resourceType:i,resourceId:n,name:r})=>K.createCollection(t,e,r).then((t=>{tt.addCollection(t),et.addResourceToCollection({collectionId:t.id,resourceType:i,resourceId:n})})),renameCollection:({collectionId:t,name:e})=>K.renameCollection(t,e).then((t=>(tt.updateCollection(t),t))),addResourceToCollection:({collectionId:t,resourceType:e,resourceId:i})=>K.addResource(t,e,i).then((t=>(tt.updateCollection(t),t))),removeResource:({collectionId:t,resourceType:e,resourceId:i})=>K.removeResource(t,e,i).then((t=>{t.resources.length>0?tt.updateCollection(t):tt.removeCollection(t)})),search:t=>K.search(t)};function it(t,e,i,n,r,s,a,o){var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=i,c._compiled=!0),n&&(c.functional=!0),s&&(c._scopeId="data-v-"+s),a?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=l):r&&(l=o?function(){r.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(c.functional){c._injectStyles=l;var h=c.render;c.render=function(t,e){return l.call(e),h(t,e)}}else{var u=c.beforeCreate;c.beforeCreate=u?[].concat(u,l):[l]}return{exports:t,options:c}}const nt=it({name:"CollectionListItem",components:{NcAvatar:_.A,NcActions:W.A,NcActionButton:X.A},props:{collection:{type:Object,default:null}},data:()=>({detailsOpen:!1,newName:null,error:{}}),computed:{getIcon:()=>t=>[t.iconClass],typeClass:()=>t=>"resource-type-"+t.type,limitedResources:()=>t=>t.resources?t.resources.slice(0,2):[],iconUrl:()=>t=>t.mimetype?OC.MimeType.getIconUrl(t.mimetype):t.iconUrl?t.iconUrl:""},methods:{t:b.t,toggleDetails(){this.detailsOpen=!this.detailsOpen},showDetails(){this.detailsOpen=!0},hideDetails(){this.detailsOpen=!1},removeResource(t,e){et.removeResource({collectionId:t.id,resourceType:e.type,resourceId:e.id})},openRename(){this.newName=this.collection.name},renameCollection(){""!==this.newName?et.renameCollection({collectionId:this.collection.id,name:this.newName}).then((t=>{this.newName=null})).catch((t=>{this.$set(this.error,"rename",(0,b.t)("core","Failed to rename the project")),console.error(t),setTimeout((()=>{(0,Q.hZ)(this.error,"rename",null)}),3e3)})):this.newName=null}}},(function(){var t=this,e=t._self._c;return e("li",{staticClass:"collection-list-item"},[e("NcAvatar",{staticClass:"collection-avatar",attrs:{"display-name":t.collection.name,"allow-placeholder":""}}),null===t.newName?e("span",{staticClass:"collection-item-name",attrs:{title:""},on:{click:t.showDetails}},[t._v(t._s(t.collection.name))]):e("form",{class:{shouldshake:t.error.rename},on:{submit:function(e){return e.preventDefault(),t.renameCollection.apply(null,arguments)}}},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.newName,expression:"newName"}],attrs:{type:"text",autocomplete:"off",autocapitalize:"off"},domProps:{value:t.newName},on:{input:function(e){e.target.composing||(t.newName=e.target.value)}}}),e("input",{staticClass:"icon-confirm",attrs:{type:"submit",value:""}})]),t.detailsOpen||null!==t.newName?t._e():e("div",{staticClass:"linked-icons"},t._l(t.limitedResources(t.collection),(function(i){return e("a",{key:i.type+"|"+i.id,class:t.typeClass(i),attrs:{title:i.name,href:i.link}},[e("img",{attrs:{src:t.iconUrl(i)}})])})),0),null===t.newName?e("span",{staticClass:"sharingOptionsGroup"},[e("NcActions",[e("NcActionButton",{attrs:{icon:"icon-info"},on:{click:function(e){return e.preventDefault(),t.toggleDetails.apply(null,arguments)}}},[t._v(" "+t._s(t.detailsOpen?t.t("core","Hide details"):t.t("core","Show details"))+" ")]),e("NcActionButton",{attrs:{icon:"icon-rename"},on:{click:function(e){return e.preventDefault(),t.openRename.apply(null,arguments)}}},[t._v(" "+t._s(t.t("core","Rename project"))+" ")])],1)],1):t._e(),e("transition",{attrs:{name:"fade"}},[t.error.rename?e("div",{staticClass:"error"},[t._v(" "+t._s(t.error.rename)+" ")]):t._e()]),e("transition",{attrs:{name:"fade"}},[t.detailsOpen?e("ul",{staticClass:"resource-list-details"},t._l(t.collection.resources,(function(i){return e("li",{key:i.type+"|"+i.id,class:t.typeClass(i)},[e("a",{attrs:{href:i.link}},[e("img",{attrs:{src:t.iconUrl(i)}}),e("span",{staticClass:"resource-name"},[t._v(t._s(i.name||""))])]),e("span",{staticClass:"icon-close",on:{click:function(e){return t.removeResource(t.collection,i)}}})])})),0):t._e()])],1)}),[],!1,null,"42733c12",null,null).exports,rt=function(t,e,i){var n,r,s,a,o,l,c=0,h=!1,u=!1,d=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function p(e){var i=n,s=r;return n=r=void 0,c=e,a=t.apply(s,i)}function f(t){var i=t-l;return void 0===l||i>=e||i<0||u&&t-c>=s}function g(){var t=T();if(f(t))return A(t);o=setTimeout(g,function(t){var i=e-(t-l);return u?Y(i,s-(t-c)):i}(t))}function A(t){return o=void 0,d&&n?p(t):(n=r=void 0,a)}function m(){var t=T(),i=f(t);if(n=arguments,r=this,l=t,i){if(void 0===o)return function(t){return c=t,o=setTimeout(g,e),h?p(t):a}(l);if(u)return clearTimeout(o),o=setTimeout(g,e),p(l)}return void 0===o&&(o=setTimeout(g,e)),a}return e=H(e)||0,x(i)&&(h=!!i.leading,s=(u="maxWait"in i)?G(H(i.maxWait)||0,e):s,d="trailing"in i?!!i.trailing:d),m.cancel=function(){void 0!==o&&clearTimeout(o),c=0,n=l=r=o=void 0},m.flush=function(){return void 0===o?a:A(T())},m}((function(t,e){""!==t&&(e(!0),et.search(t).then((t=>{this.searchCollections=t})).catch((t=>{console.error("Failed to search for collections",t)})).finally((()=>{e(!1)})))}),500,{}),st={name:"CollectionList",components:{CollectionListItem:nt,NcAvatar:_.A,NcSelect:E.A},props:{type:{type:String,default:null},id:{type:String,default:null},name:{type:String,default:""},isActive:{type:Boolean,default:!0}},setup:()=>({state:J}),data:()=>({selectIsOpen:!1,generatingCodes:!1,codes:void 0,value:null,model:{},searchCollections:[],error:null,isSelectOpen:!1}),computed:{collections(){return this.state.collections.filter((t=>void 0!==t.resources.find((t=>t&&t.id===""+this.id&&t.type===this.type))))},placeholder(){return this.isSelectOpen?(0,b.t)("core","Type to search for existing projects"):(0,b.t)("core","Add to a project")},options(){const t=[];window.OCP.Collaboration.getTypes().sort().forEach((e=>{t.push({method:0,type:e,title:window.OCP.Collaboration.getLabel(e),class:window.OCP.Collaboration.getIcon(e),action:()=>window.OCP.Collaboration.trigger(e)})}));for(const e in this.searchCollections)-1===this.collections.findIndex((t=>t.id===this.searchCollections[e].id))&&t.push({method:1,title:this.searchCollections[e].name,collectionId:this.searchCollections[e].id});return t}},watch:{type(){this.isActive&&et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},id(){this.isActive&&et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},isActive(t){t&&et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})}},mounted(){et.fetchCollectionsByResource({resourceType:this.type,resourceId:this.id})},methods:{t:b.t,select(t,e){0===t.method&&t.action().then((e=>{et.createCollection({baseResourceType:this.type,baseResourceId:this.id,resourceType:t.type,resourceId:e,name:this.name}).catch((t=>{this.setError((0,b.t)("core","Failed to create a project"),t)}))})).catch((t=>{console.error("No resource selected",t)})),1===t.method&&et.addResourceToCollection({collectionId:t.collectionId,resourceType:this.type,resourceId:this.id}).catch((t=>{this.setError((0,b.t)("core","Failed to add the item to the project"),t)}))},search(t,e){rt.bind(this)(t,e)},showSelect(){this.selectIsOpen=!0,this.$refs.select.$el.focus()},hideSelect(){this.selectIsOpen=!1},isVueComponent:t=>t._isVue,setError(t,e){console.error(t,e),this.error=t,setTimeout((()=>{this.error=null}),5e3)}}},at=it(st,(function(){var t=this,e=t._self._c;return t.collections&&t.type&&t.id?e("ul",{staticClass:"collection-list",attrs:{id:"collection-list"}},[e("li",{on:{click:t.showSelect}},[t._m(0),e("div",{attrs:{id:"collection-select-container"}},[e("NcSelect",{ref:"select",attrs:{"aria-label-combobox":t.t("core","Add to a project"),options:t.options,placeholder:t.placeholder,label:"title",limit:5},on:{close:function(e){t.isSelectOpen=!1},open:function(e){t.isSelectOpen=!0},"option:selected":t.select,search:t.search},scopedSlots:t._u([{key:"selected-option",fn:function(i){return[e("span",{staticClass:"option__desc"},[e("span",{staticClass:"option__title"},[t._v(t._s(i.title))])])]}},{key:"option",fn:function(i){return[e("span",{staticClass:"option__wrapper"},[i.class?e("span",{staticClass:"avatar",class:i.class}):2!==i.method?e("NcAvatar",{attrs:{"allow-placeholder":"","display-name":i.title}}):t._e(),e("span",{staticClass:"option__title"},[t._v(t._s(i.title))])],1)]}}],null,!1,2397208459),model:{value:t.value,callback:function(e){t.value=e},expression:"value"}},[e("p",{staticClass:"hint"},[t._v(" "+t._s(t.t("core","Connect items to a project to make them easier to find"))+" ")])])],1)]),e("transition",{attrs:{name:"fade"}},[t.error?e("li",{staticClass:"error"},[t._v(" "+t._s(t.error)+" ")]):t._e()]),t._l(t.collections,(function(t){return e("CollectionListItem",{key:t.id,attrs:{collection:t}})}))],2):t._e()}),[function(){var t=this._self._c;return t("div",{staticClass:"avatar"},[t("span",{staticClass:"icon-projects"})])}],!1,null,"8ebb2593",null,null).exports;var ot=n(77905),lt=n(83241),ct=n(8385),ht=n(19231),ut=n(70995),dt=n(87485);class pt{constructor(){(function(t,e,i){(e=function(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i})(this,"_capabilities",void 0),this._capabilities=(0,dt.F)()}get defaultPermissions(){return this._capabilities.files_sharing?.default_permissions}get isPublicUploadEnabled(){return!0===this._capabilities.files_sharing?.public?.upload}get federatedShareDocLink(){return window.OC.appConfig.core.federatedCloudShareDoc}get defaultExpirationDate(){return this.isDefaultExpireDateEnabled&&null!==this.defaultExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultExpireDate)):null}get defaultInternalExpirationDate(){return this.isDefaultInternalExpireDateEnabled&&null!==this.defaultInternalExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultInternalExpireDate)):null}get defaultRemoteExpirationDateString(){return this.isDefaultRemoteExpireDateEnabled&&null!==this.defaultRemoteExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultRemoteExpireDate)):null}get enforcePasswordForPublicLink(){return!0===window.OC.appConfig.core.enforcePasswordForPublicLink}get enableLinkPasswordByDefault(){return!0===window.OC.appConfig.core.enableLinkPasswordByDefault}get isDefaultExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultExpireDateEnforced}get isDefaultExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultExpireDateEnabled}get isDefaultInternalExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultInternalExpireDateEnforced}get isDefaultInternalExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultInternalExpireDateEnabled}get isDefaultRemoteExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultRemoteExpireDateEnforced}get isDefaultRemoteExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultRemoteExpireDateEnabled}get isRemoteShareAllowed(){return!0===window.OC.appConfig.core.remoteShareAllowed}get isPublicShareAllowed(){return!0===this._capabilities?.files_sharing?.public?.enabled}get isMailShareAllowed(){return!0===this._capabilities?.files_sharing?.sharebymail?.enabled&&!0===this.isPublicShareAllowed}get defaultExpireDate(){return window.OC.appConfig.core.defaultExpireDate}get defaultInternalExpireDate(){return window.OC.appConfig.core.defaultInternalExpireDate}get defaultRemoteExpireDate(){return window.OC.appConfig.core.defaultRemoteExpireDate}get isResharingAllowed(){return!0===window.OC.appConfig.core.resharingAllowed}get isPasswordForMailSharesRequired(){return!0===this._capabilities.files_sharing?.sharebymail?.password?.enforced}get shouldAlwaysShowUnique(){return!0===this._capabilities.files_sharing?.sharee?.always_show_unique}get allowGroupSharing(){return!0===window.OC.appConfig.core.allowGroupSharing}get maxAutocompleteResults(){return parseInt(window.OC.config["sharing.maxAutocompleteResults"],10)||25}get minSearchStringLength(){return parseInt(window.OC.config["sharing.minSearchStringLength"],10)||0}get passwordPolicy(){return this._capabilities?.password_policy||{}}get allowCustomTokens(){return this._capabilities?.files_sharing?.public?.custom_tokens}}var ft=n(35947);const gt=(0,ft.YK)().setApp("files_sharing").detectUser().build();class At{constructor(t){if(function(t,e,i){(e=function(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,"string");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i}(this,"_share",void 0),t.ocs&&t.ocs.data&&t.ocs.data[0]&&(t=t.ocs.data[0]),t.hide_download=!!t.hide_download,t.mail_send=!!t.mail_send,t.attributes&&"string"==typeof t.attributes)try{t.attributes=JSON.parse(t.attributes)}catch(e){console.warn("Could not parse share attributes returned by server",t.attributes)}t.attributes=t.attributes??[],this._share=t}get state(){return this._share}get id(){return this._share.id}get type(){return this._share.share_type}get permissions(){return this._share.permissions}get attributes(){return this._share.attributes}set permissions(t){this._share.permissions=t}get owner(){return this._share.uid_owner}get ownerDisplayName(){return this._share.displayname_owner}get shareWith(){return this._share.share_with}get shareWithDisplayName(){return this._share.share_with_displayname||this._share.share_with}get shareWithDisplayNameUnique(){return this._share.share_with_displayname_unique||this._share.share_with}get shareWithLink(){return this._share.share_with_link}get shareWithAvatar(){return this._share.share_with_avatar}get uidFileOwner(){return this._share.uid_file_owner}get displaynameFileOwner(){return this._share.displayname_file_owner||this._share.uid_file_owner}get createdTime(){return this._share.stime}get expireDate(){return this._share.expiration}set expireDate(t){this._share.expiration=t}get token(){return this._share.token}set token(t){this._share.token=t}get note(){return this._share.note}set note(t){this._share.note=t}get label(){return this._share.label??""}set label(t){this._share.label=t}get mailSend(){return!0===this._share.mail_send}get hideDownload(){return!0===this._share.hide_download}set hideDownload(t){this._share.hide_download=!0===t}get password(){return this._share.password}set password(t){this._share.password=t}get passwordExpirationTime(){return this._share.password_expiration_time}set passwordExpirationTime(t){this._share.password_expiration_time=t}get sendPasswordByTalk(){return this._share.send_password_by_talk}set sendPasswordByTalk(t){this._share.send_password_by_talk=t}get path(){return this._share.path}get itemType(){return this._share.item_type}get mimetype(){return this._share.mimetype}get fileSource(){return this._share.file_source}get fileTarget(){return this._share.file_target}get fileParent(){return this._share.file_parent}get hasReadPermission(){return!!(this.permissions&window.OC.PERMISSION_READ)}get hasCreatePermission(){return!!(this.permissions&window.OC.PERMISSION_CREATE)}get hasDeletePermission(){return!!(this.permissions&window.OC.PERMISSION_DELETE)}get hasUpdatePermission(){return!!(this.permissions&window.OC.PERMISSION_UPDATE)}get hasSharePermission(){return!!(this.permissions&window.OC.PERMISSION_SHARE)}get hasDownloadPermission(){return this.attributes.some((t=>"permissions"===t.scope&&"download"===t.key&&!1===t.value))}get isFileRequest(){return function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"[]";const e=t=>"fileRequest"===t.scope&&"enabled"===t.key&&!0===t.value;try{return JSON.parse(t).some(e)}catch(t){return gt.error("Error while parsing share attributes",{error:t}),!1}}(JSON.stringify(this.attributes))}set hasDownloadPermission(t){this.setAttribute("permissions","download",!!t)}setAttribute(t,e,i){const n={scope:t,key:e,value:i};for(const t in this._share.attributes){const e=this._share.attributes[t];if(e.scope===n.scope&&e.key===n.key)return void this._share.attributes.splice(t,1,n)}this._share.attributes.push(n)}get canEdit(){return!0===this._share.can_edit}get canDelete(){return!0===this._share.can_delete}get viaFileid(){return this._share.via_fileid}get viaPath(){return this._share.via_path}get parent(){return this._share.parent}get storageId(){return this._share.storage_id}get storage(){return this._share.storage}get itemSource(){return this._share.item_source}get status(){return this._share.status}}var mt=n(85168),vt=n(54373),yt=n(31773);const wt={name:"SharingEntrySimple",components:{NcActions:W.A},props:{title:{type:String,default:"",required:!0},subtitle:{type:String,default:""},isUnique:{type:Boolean,default:!0},ariaExpanded:{type:Boolean,default:null}},computed:{ariaExpandedValue(){return null===this.ariaExpanded?this.ariaExpanded:this.ariaExpanded?"true":"false"}}};var Ct=n(86495),bt={};bt.styleTagTransform=y(),bt.setAttributes=g(),bt.insert=p().bind(null,"head"),bt.domAPI=u(),bt.insertStyleElement=m(),c()(Ct.A,bt),Ct.A&&Ct.A.locals&&Ct.A.locals;var _t=n(14486);const Et=(0,_t.A)(wt,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"sharing-entry"},[t._t("avatar"),t._v(" "),e("div",{staticClass:"sharing-entry__desc"},[e("span",{staticClass:"sharing-entry__title"},[t._v(t._s(t.title))]),t._v(" "),t.subtitle?e("p",[t._v("\n\t\t\t"+t._s(t.subtitle)+"\n\t\t")]):t._e()]),t._v(" "),t.$slots.default?e("NcActions",{ref:"actionsComponent",staticClass:"sharing-entry__actions",attrs:{"menu-align":"right","aria-expanded":t.ariaExpandedValue}},[t._t("default")],2):t._e()],2)}),[],!1,null,"4c49edf4",null).exports,xt={name:"SharingEntryInternal",components:{NcActionButton:X.A,SharingEntrySimple:Et,CheckIcon:vt.A,ClipboardIcon:yt.A},props:{fileInfo:{type:Object,default:()=>{},required:!0}},data:()=>({copied:!1,copySuccess:!1}),computed:{internalLink(){return window.location.protocol+"//"+window.location.host+(0,o.Jv)("/f/")+this.fileInfo.id},copyLinkTooltip(){return this.copied?this.copySuccess?"":t("files_sharing","Cannot copy, please copy the link manually"):t("files_sharing","Copy internal link to clipboard")},internalLinkSubtitle(){return"dir"===this.fileInfo.type?t("files_sharing","Only works for people with access to this folder"):t("files_sharing","Only works for people with access to this file")}},methods:{async copyLink(){try{await navigator.clipboard.writeText(this.internalLink),(0,mt.Te)(t("files_sharing","Link copied")),this.$refs.shareEntrySimple.$refs.actionsComponent.$el.focus(),this.copySuccess=!0,this.copied=!0}catch(t){this.copySuccess=!1,this.copied=!0,console.error(t)}finally{setTimeout((()=>{this.copySuccess=!1,this.copied=!1}),4e3)}}}};var St=n(23815),It={};It.styleTagTransform=y(),It.setAttributes=g(),It.insert=p().bind(null,"head"),It.domAPI=u(),It.insertStyleElement=m(),c()(St.A,It),St.A&&St.A.locals&&St.A.locals;const kt=(0,_t.A)(xt,(function(){var t=this,e=t._self._c;return e("ul",[e("SharingEntrySimple",{ref:"shareEntrySimple",staticClass:"sharing-entry__internal",attrs:{title:t.t("files_sharing","Internal link"),subtitle:t.internalLinkSubtitle},scopedSlots:t._u([{key:"avatar",fn:function(){return[e("div",{staticClass:"avatar-external icon-external-white"})]},proxy:!0}])},[t._v(" "),e("NcActionButton",{attrs:{title:t.copyLinkTooltip,"aria-label":t.copyLinkTooltip},on:{click:t.copyLink},scopedSlots:t._u([{key:"icon",fn:function(){return[t.copied&&t.copySuccess?e("CheckIcon",{staticClass:"icon-checkmark-color",attrs:{size:20}}):e("ClipboardIcon",{attrs:{size:20}})]},proxy:!0}])})],1)],1)}),[],!1,null,"1d9a7cfa",null).exports;var Tt=n(17334),Nt=n.n(Tt),Dt=(n(48318),n(61338));const Pt=(0,o.KT)("apps/files_sharing/api/v1/shares"),Rt={methods:{async createShare(e){let{path:i,permissions:n,shareType:r,shareWith:s,publicUpload:a,password:o,sendPasswordByTalk:l,expireDate:c,label:h,note:u,attributes:d}=e;try{const t=await Z.Ay.post(Pt,{path:i,permissions:n,shareType:r,shareWith:s,publicUpload:a,password:o,sendPasswordByTalk:l,expireDate:c,label:h,note:u,attributes:d});if(!t?.data?.ocs)throw t;const e=new At(t.data.ocs.data);return(0,Dt.Ic)("files_sharing:share:created",{share:e}),e}catch(e){console.error("Error while creating share",e);const i=e?.response?.data?.ocs?.meta?.message;throw OC.Notification.showTemporary(i?t("files_sharing","Error creating the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error creating the share"),{type:"error"}),e}},async deleteShare(e){try{const t=await Z.Ay.delete(Pt+`/${e}`);if(!t?.data?.ocs)throw t;return(0,Dt.Ic)("files_sharing:share:deleted",{id:e}),!0}catch(e){console.error("Error while deleting share",e);const i=e?.response?.data?.ocs?.meta?.message;throw OC.Notification.showTemporary(i?t("files_sharing","Error deleting the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error deleting the share"),{type:"error"}),e}},async updateShare(e,i){try{const t=await Z.Ay.put(Pt+`/${e}`,i);if((0,Dt.Ic)("files_sharing:share:updated",{id:e}),t?.data?.ocs)return t.data.ocs.data;throw t}catch(e){if(console.error("Error while updating share",e),400!==e.response.status){const i=e?.response?.data?.ocs?.meta?.message;OC.Notification.showTemporary(i?t("files_sharing","Error updating the share: {errorMessage}",{errorMessage:i}):t("files_sharing","Error updating the share"),{type:"error"})}const i=e.response.data.ocs.meta.message;throw new Error(i)}}}},Bt={methods:{async openSharingDetails(t){let e={};if(t.handler){const i={};this.suggestions&&(i.suggestions=this.suggestions,i.fileInfo=this.fileInfo,i.query=this.query);const n=await t.handler(i);e=this.mapShareRequestToShareObject(n)}else e=this.mapShareRequestToShareObject(t);const i={fileInfo:this.fileInfo,share:e};this.$emit("open-sharing-details",i)},openShareDetailsForCustomSettings(t){t.setCustomPermissions=!0,this.openSharingDetails(t)},mapShareRequestToShareObject(t){if(t.id)return t;const e={attributes:[{value:!0,key:"download",scope:"permissions"}],share_type:t.shareType,share_with:t.shareWith,is_no_user:t.isNoUser,user:t.shareWith,share_with_displayname:t.displayName,subtitle:t.subtitle,permissions:t.permissions??(new pt).defaultPermissions,expiration:""};return new At(e)}}},Lt={name:"SharingInput",components:{NcSelect:E.A},mixins:[Rt,Bt],props:{shares:{type:Array,default:()=>[],required:!0},linkShares:{type:Array,default:()=>[],required:!0},fileInfo:{type:Object,default:()=>{},required:!0},reshare:{type:At,default:null},canReshare:{type:Boolean,required:!0},isExternal:{type:Boolean,default:!1},placeholder:{type:String,default:""}},data:()=>({config:new pt,loading:!1,query:"",recommendations:[],ShareSearch:OCA.Sharing.ShareSearch.state,suggestions:[],value:null}),computed:{externalResults(){return this.ShareSearch.results},inputPlaceholder(){const e=this.config.isRemoteShareAllowed;return this.canReshare?this.placeholder?this.placeholder:e?t("files_sharing","Name, email, or Federated Cloud ID …"):t("files_sharing","Name or email …"):t("files_sharing","Resharing is not allowed")},isValidQuery(){return this.query&&""!==this.query.trim()&&this.query.length>this.config.minSearchStringLength},options(){return this.isValidQuery?this.suggestions:this.recommendations},noResultText(){return this.loading?t("files_sharing","Searching …"):t("files_sharing","No elements found.")}},mounted(){this.isExternal||this.getRecommendations()},methods:{onSelected(t){this.value=null,this.openSharingDetails(t)},async asyncFind(t){this.query=t.trim(),this.isValidQuery&&(this.loading=!0,await this.debounceGetSuggestions(t))},async getSuggestions(e){let i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.loading=!0,!0===(0,dt.F)().files_sharing.sharee.query_lookup_default&&(i=!0);let n=[];this.isExternal?(n.push(ot.I.Remote),n.push(ot.I.RemoteGroup)):n=n.concat([ot.I.User,ot.I.Group,ot.I.Team,ot.I.Room,ot.I.Guest,ot.I.Deck,ot.I.ScienceMesh]),!0===(0,dt.F)().files_sharing.public.enabled&&this.isExternal&&n.push(ot.I.Email);let r=null;try{r=await Z.Ay.get((0,o.KT)("apps/files_sharing/api/v1/sharees"),{params:{format:"json",itemType:"dir"===this.fileInfo.type?"folder":"file",search:e,lookup:i,perPage:this.config.maxAutocompleteResults,shareType:n}})}catch(t){return void console.error("Error fetching suggestions",t)}const s=r.data.ocs.data,a=r.data.ocs.data.exact;s.exact=[];const l=Object.values(a).reduce(((t,e)=>t.concat(e)),[]),c=Object.values(s).reduce(((t,e)=>t.concat(e)),[]),h=this.filterOutExistingShares(l).map((t=>this.formatForMultiselect(t))).sort(((t,e)=>t.shareType-e.shareType)),u=this.filterOutExistingShares(c).map((t=>this.formatForMultiselect(t))).sort(((t,e)=>t.shareType-e.shareType)),d=[];s.lookupEnabled&&!i&&d.push({id:"global-lookup",isNoUser:!0,displayName:t("files_sharing","Search globally"),lookup:!0});const p=this.externalResults.filter((t=>!t.condition||t.condition(this))),f=h.concat(u).concat(p).concat(d),g=f.reduce(((t,e)=>e.displayName?(t[e.displayName]||(t[e.displayName]=0),t[e.displayName]++,t):t),{});this.suggestions=f.map((t=>g[t.displayName]>1&&!t.desc?{...t,desc:t.shareWithDisplayNameUnique}:t)),this.loading=!1,console.info("suggestions",this.suggestions)},debounceGetSuggestions:Nt()((function(){this.getSuggestions(...arguments)}),300),async getRecommendations(){this.loading=!0;let t=null;try{t=await Z.Ay.get((0,o.KT)("apps/files_sharing/api/v1/sharees_recommended"),{params:{format:"json",itemType:this.fileInfo.type}})}catch(t){return void console.error("Error fetching recommendations",t)}const e=this.externalResults.filter((t=>!t.condition||t.condition(this))),i=Object.values(t.data.ocs.data.exact).reduce(((t,e)=>t.concat(e)),[]);this.recommendations=this.filterOutExistingShares(i).map((t=>this.formatForMultiselect(t))).concat(e),this.loading=!1,console.info("recommendations",this.recommendations)},filterOutExistingShares(t){return t.reduce(((t,e)=>{if("object"!=typeof e)return t;try{if(e.value.shareType===ot.I.User){if(e.value.shareWith===(0,r.HW)().uid)return t;if(this.reshare&&e.value.shareWith===this.reshare.owner)return t}if(e.value.shareType===ot.I.Email){if(-1!==this.linkShares.map((t=>t.shareWith)).indexOf(e.value.shareWith.trim()))return t}else{const i=this.shares.reduce(((t,e)=>(t[e.shareWith]=e.type,t)),{}),n=e.value.shareWith.trim();if(n in i&&i[n]===e.value.shareType)return t}t.push(e)}catch{return t}return t}),[])},shareTypeToIcon(e){switch(e){case ot.I.Guest:return{icon:"icon-user",iconTitle:t("files_sharing","Guest")};case ot.I.RemoteGroup:case ot.I.Group:return{icon:"icon-group",iconTitle:t("files_sharing","Group")};case ot.I.Email:return{icon:"icon-mail",iconTitle:t("files_sharing","Email")};case ot.I.Team:return{icon:"icon-teams",iconTitle:t("files_sharing","Team")};case ot.I.Room:return{icon:"icon-room",iconTitle:t("files_sharing","Talk conversation")};case ot.I.Deck:return{icon:"icon-deck",iconTitle:t("files_sharing","Deck board")};case ot.I.Sciencemesh:return{icon:"icon-sciencemesh",iconTitle:t("files_sharing","ScienceMesh")};default:return{}}},formatForMultiselect(e){let i;return i=e.value.shareType===ot.I.User&&this.config.shouldAlwaysShowUnique?e.shareWithDisplayNameUnique??"":e.value.shareType!==ot.I.Remote&&e.value.shareType!==ot.I.RemoteGroup||!e.value.server?e.value.shareType===ot.I.Email?e.value.shareWith:e.shareWithDescription??"":t("files_sharing","on {server}",{server:e.value.server}),{shareWith:e.value.shareWith,shareType:e.value.shareType,user:e.uuid||e.value.shareWith,isNoUser:e.value.shareType!==ot.I.User,displayName:e.name||e.label,subname:i,shareWithDisplayNameUnique:e.shareWithDisplayNameUnique||"",...this.shareTypeToIcon(e.value.shareType)}}}};var Ot=n(67510),Mt={};Mt.styleTagTransform=y(),Mt.setAttributes=g(),Mt.insert=p().bind(null,"head"),Mt.domAPI=u(),Mt.insertStyleElement=m(),c()(Ot.A,Mt),Ot.A&&Ot.A.locals&&Ot.A.locals;const Ut=(0,_t.A)(Lt,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"sharing-search"},[e("label",{staticClass:"hidden-visually",attrs:{for:"sharing-search-input"}},[t._v("\n\t\t"+t._s(t.isExternal?t.t("files_sharing","Enter external recipients"):t.t("files_sharing","Search for internal recipients"))+"\n\t")]),t._v(" "),e("NcSelect",{ref:"select",staticClass:"sharing-search__input",attrs:{"input-id":"sharing-search-input",disabled:!t.canReshare,loading:t.loading,filterable:!1,placeholder:t.inputPlaceholder,"clear-search-on-blur":()=>!1,"user-select":!0,options:t.options,"label-outside":!0},on:{search:t.asyncFind,"option:selected":t.onSelected},scopedSlots:t._u([{key:"no-options",fn:function(e){let{search:i}=e;return[t._v("\n\t\t\t"+t._s(i?t.noResultText:t.placeholder)+"\n\t\t")]}}]),model:{value:t.value,callback:function(e){t.value=e},expression:"value"}})],1)}),[],!1,null,null,null).exports;var $t=n(71225),Ft=n(36647),Vt=n(21261),jt=n(49264);const qt={NONE:0,READ:1,UPDATE:2,CREATE:4,DELETE:8,SHARE:16},zt={READ_ONLY:qt.READ,UPLOAD_AND_UPDATE:qt.READ|qt.UPDATE|qt.CREATE|qt.DELETE,FILE_DROP:qt.CREATE,ALL:qt.UPDATE|qt.CREATE|qt.READ|qt.DELETE|qt.SHARE,ALL_FILE:qt.UPDATE|qt.READ|qt.SHARE};var Ht=n(77815);const Gt=(0,Ht.KU)(),Yt={mixins:[Rt],props:{fileInfo:{type:Object,default:()=>{},required:!0},share:{type:At,default:null},isUnique:{type:Boolean,default:!0}},data(){return{config:new pt,node:null,ShareType:ot.I,errors:{},loading:!1,saving:!1,open:!1,updateQueue:new jt.A({concurrency:1}),reactiveState:this.share?.state}},computed:{path(){return(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/")},hasNote:{get(){return""!==this.share.note},set(t){this.share.note=t?null:""}},dateTomorrow:()=>new Date((new Date).setDate((new Date).getDate()+1)),lang(){const t=window.dayNamesShort?window.dayNamesShort:["Sun.","Mon.","Tue.","Wed.","Thu.","Fri.","Sat."],e=window.monthNamesShort?window.monthNamesShort:["Jan.","Feb.","Mar.","Apr.","May.","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."];return{formatLocale:{firstDayOfWeek:window.firstDay?window.firstDay:0,monthsShort:e,weekdaysMin:t,weekdaysShort:t},monthFormat:"MMM"}},isNewShare(){return!this.share.id},isFolder(){return"dir"===this.fileInfo.type},isPublicShare(){const t=this.share.shareType??this.share.type;return[ot.I.Link,ot.I.Email].includes(t)},isRemoteShare(){return this.share.type===ot.I.RemoteGroup||this.share.type===ot.I.Remote},isShareOwner(){return this.share&&this.share.owner===(0,r.HW)().uid},isExpiryDateEnforced(){return this.isPublicShare?this.config.isDefaultExpireDateEnforced:this.isRemoteShare?this.config.isDefaultRemoteExpireDateEnforced:this.config.isDefaultInternalExpireDateEnforced},hasCustomPermissions(){return![zt.ALL,zt.READ_ONLY,zt.FILE_DROP].includes(this.share.permissions)},maxExpirationDateEnforced(){return this.isExpiryDateEnforced?this.isPublicShare?this.config.defaultExpirationDate:this.isRemoteShare?this.config.defaultRemoteExpirationDateString:this.config.defaultInternalExpirationDate:null}},methods:{async getNode(){const t={path:this.path};try{this.node=await(async t=>{const e=(0,Ht.aN)(),i=await Gt.stat(`${(0,Ht.ei)()}${t}`,{details:!0,data:e});return(0,Ht.pO)(i.data)})(t.path),gt.info("Fetched node:",{node:this.node})}catch(t){gt.error("Error:",t)}},checkShare:t=>(!t.password||"string"==typeof t.password&&""!==t.password.trim())&&!(t.expirationDate&&!t.expirationDate.isValid()),formatDateToString:t=>new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())).toISOString().split("T")[0],onExpirationChange(t){const e=t?this.formatDateToString(new Date(t)):"";this.share.expireDate=e},onNoteChange(t){this.$set(this.share,"newNote",t.trim())},onNoteSubmit(){this.share.newNote&&(this.share.note=this.share.newNote,this.$delete(this.share,"newNote"),this.queueUpdate("note"))},async onDelete(){try{this.loading=!0,this.open=!1,await this.deleteShare(this.share.id),console.debug("Share deleted",this.share.id);const e="file"===this.share.itemType?t("files_sharing",'File "{path}" has been unshared',{path:this.share.path}):t("files_sharing",'Folder "{path}" has been unshared',{path:this.share.path});(0,mt.Te)(e),this.$emit("remove:share",this.share),await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node)}catch(t){this.open=!0}finally{this.loading=!1}},queueUpdate(){for(var e=arguments.length,i=new Array(e),n=0;n<e;n++)i[n]=arguments[n];if(0!==i.length){if(this.share.id){const e={};return i.forEach((t=>{"object"==typeof this.share[t]?e[t]=JSON.stringify(this.share[t]):e[t]=this.share[t].toString()})),void this.updateQueue.add((async()=>{this.saving=!0,this.errors={};try{const t=await this.updateShare(this.share.id,e);i.indexOf("password")>=0&&(this.$delete(this.share,"newPassword"),this.share.passwordExpirationTime=t.password_expiration_time),this.$delete(this.errors,i[0]),(0,mt.Te)(this.updateSuccessMessage(i))}catch(e){gt.error("Could not update share",{error:e,share:this.share,propertyNames:i});const{message:n}=e;n&&""!==n?(this.onSyncError(i[0],n),(0,mt.Qg)(n)):(0,mt.Qg)(t("files_sharing","Could not update share"))}finally{this.saving=!1}}))}console.debug("Updated local share",this.share)}},updateSuccessMessage(e){if(1!==e.length)return t("files_sharing","Share saved");switch(e[0]){case"expireDate":return t("files_sharing","Share expiry date saved");case"hideDownload":return t("files_sharing","Share hide-download state saved");case"label":return t("files_sharing","Share label saved");case"note":return t("files_sharing","Share note for recipient saved");case"password":return t("files_sharing","Share password saved");case"permissions":return t("files_sharing","Share permissions saved");default:return t("files_sharing","Share saved")}},onSyncError(t,e){switch(this.open=!0,t){case"password":case"pending":case"expireDate":case"label":case"note":{this.$set(this.errors,t,e);let i=this.$refs[t];if(i){i.$el&&(i=i.$el);const t=i.querySelector(".focusable");t&&t.focus()}break}case"sendPasswordByTalk":this.$set(this.errors,t,e),this.share.sendPasswordByTalk=!this.share.sendPasswordByTalk}},debounceQueueUpdate:Nt()((function(t){this.queueUpdate(t)}),500)}},Wt={name:"SharingEntryInherited",components:{NcActionButton:X.A,NcActionLink:Ft.A,NcActionText:Vt.A,NcAvatar:_.A,SharingEntrySimple:Et},mixins:[Yt],props:{share:{type:At,required:!0}},computed:{viaFileTargetUrl(){return(0,o.Jv)("/f/{fileid}",{fileid:this.share.viaFileid})},viaFolderName(){return(0,$t.P8)(this.share.viaPath)}}};var Xt=n(88346),Qt={};Qt.styleTagTransform=y(),Qt.setAttributes=g(),Qt.insert=p().bind(null,"head"),Qt.domAPI=u(),Qt.insertStyleElement=m(),c()(Xt.A,Qt),Xt.A&&Xt.A.locals&&Xt.A.locals;const Zt=(0,_t.A)(Wt,(function(){var t=this,e=t._self._c;return e("SharingEntrySimple",{key:t.share.id,staticClass:"sharing-entry__inherited",attrs:{title:t.share.shareWithDisplayName},scopedSlots:t._u([{key:"avatar",fn:function(){return[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{user:t.share.shareWith,"display-name":t.share.shareWithDisplayName}})]},proxy:!0}])},[t._v(" "),e("NcActionText",{attrs:{icon:"icon-user"}},[t._v("\n\t\t"+t._s(t.t("files_sharing","Added by {initiator}",{initiator:t.share.ownerDisplayName}))+"\n\t")]),t._v(" "),t.share.viaPath&&t.share.viaFileid?e("NcActionLink",{attrs:{icon:"icon-folder",href:t.viaFileTargetUrl}},[t._v("\n\t\t"+t._s(t.t("files_sharing","Via “{folder}”",{folder:t.viaFolderName}))+"\n\t")]):t._e(),t._v(" "),t.share.canDelete?e("NcActionButton",{attrs:{icon:"icon-close"},on:{click:function(e){return e.preventDefault(),t.onDelete.apply(null,arguments)}}},[t._v("\n\t\t"+t._s(t.t("files_sharing","Unshare"))+"\n\t")]):t._e()],1)}),[],!1,null,"32cb91ce",null).exports,Kt={name:"SharingInherited",components:{NcActionButton:X.A,SharingEntryInherited:Zt,SharingEntrySimple:Et},props:{fileInfo:{type:Object,default:()=>{},required:!0}},data:()=>({loaded:!1,loading:!1,showInheritedShares:!1,shares:[]}),computed:{showInheritedSharesIcon(){return this.loading?"icon-loading-small":this.showInheritedShares?"icon-triangle-n":"icon-triangle-s"},mainTitle:()=>t("files_sharing","Others with access"),subTitle(){return this.showInheritedShares&&0===this.shares.length?t("files_sharing","No other accounts with access found"):""},toggleTooltip(){return"dir"===this.fileInfo.type?t("files_sharing","Toggle list of others with access to this directory"):t("files_sharing","Toggle list of others with access to this file")},fullPath(){return`${this.fileInfo.path}/${this.fileInfo.name}`.replace("//","/")}},watch:{fileInfo(){this.resetState()}},methods:{toggleInheritedShares(){this.showInheritedShares=!this.showInheritedShares,this.showInheritedShares?this.fetchInheritedShares():this.resetState()},async fetchInheritedShares(){this.loading=!0;try{const t=(0,o.KT)("apps/files_sharing/api/v1/shares/inherited?format=json&path={path}",{path:this.fullPath}),e=await Z.Ay.get(t);this.shares=e.data.ocs.data.map((t=>new At(t))).sort(((t,e)=>e.createdTime-t.createdTime)),console.info(this.shares),this.loaded=!0}catch(e){OC.Notification.showTemporary(t("files_sharing","Unable to fetch inherited shares"),{type:"error"})}finally{this.loading=!1}},resetState(){this.loaded=!1,this.loading=!1,this.showInheritedShares=!1,this.shares=[]},removeShare(t){const e=this.shares.findIndex((e=>e===t));this.shares.splice(e,1)}}};var Jt=n(91877),te={};te.styleTagTransform=y(),te.setAttributes=g(),te.insert=p().bind(null,"head"),te.domAPI=u(),te.insertStyleElement=m(),c()(Jt.A,te),Jt.A&&Jt.A.locals&&Jt.A.locals;const ee=(0,_t.A)(Kt,(function(){var t=this,e=t._self._c;return t.shares.length?e("ul",{attrs:{id:"sharing-inherited-shares"}},[e("SharingEntrySimple",{staticClass:"sharing-entry__inherited",attrs:{title:t.mainTitle,subtitle:t.subTitle,"aria-expanded":t.showInheritedShares},scopedSlots:t._u([{key:"avatar",fn:function(){return[e("div",{staticClass:"avatar-shared icon-more-white"})]},proxy:!0}],null,!1,1184892072)},[t._v(" "),e("NcActionButton",{attrs:{icon:t.showInheritedSharesIcon,"aria-label":t.toggleTooltip,title:t.toggleTooltip},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.toggleInheritedShares.apply(null,arguments)}}})],1),t._v(" "),t._l(t.shares,(function(i){return e("SharingEntryInherited",{key:i.id,attrs:{"file-info":t.fileInfo,share:i},on:{"remove:share":t.removeShare}})}))],2):t._e()}),[],!1,null,"4baa5581",null).exports;var ie=n(17816),ne=n.n(ie),re=n(1641),se=n(44131),ae=n(15502),oe=n(94219);const le={name:"TuneIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ce=(0,_t.A)(le,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon tune-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,he={name:"CalendarBlankIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ue=(0,_t.A)(he,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon calendar-blank-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,de={name:"QrcodeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},pe=(0,_t.A)(de,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon qrcode-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,fe={name:"ExclamationIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ge=(0,_t.A)(fe,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon exclamation-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Ae={name:"LockIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},me=(0,_t.A)(Ae,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon lock-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,ve={name:"CheckBoldIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ye=(0,_t.A)(ve,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon check-bold-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var we=n(66001),Ce=n(96078);const be={name:"TriangleSmallDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},_e=(0,_t.A)(be,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon triangle-small-down-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M8 9H16L12 16"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Ee={name:"EyeOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},xe=(0,_t.A)(Ee,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon eye-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var Se=n(2413);const Ie={name:"FileUploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ke=(0,_t.A)(Ie,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon file-upload-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,Te={name:"SharingEntryQuickShareSelect",components:{DropdownIcon:_e,NcActions:W.A,NcActionButton:X.A},mixins:[Yt,Bt],props:{share:{type:Object,required:!0}},emits:["open-sharing-details"],data:()=>({selectedOption:""}),computed:{ariaLabel(){return t("files_sharing",'Quick share options, the current selected is "{selectedOption}"',{selectedOption:this.selectedOption})},canViewText:()=>t("files_sharing","View only"),canEditText:()=>t("files_sharing","Can edit"),fileDropText:()=>t("files_sharing","File request"),customPermissionsText:()=>t("files_sharing","Custom permissions"),preSelectedOption(){return(this.share.permissions&~qt.SHARE)===zt.READ_ONLY?this.canViewText:this.share.permissions===zt.ALL||this.share.permissions===zt.ALL_FILE?this.canEditText:(this.share.permissions&~qt.SHARE)===zt.FILE_DROP?this.fileDropText:this.customPermissionsText},options(){const t=[{label:this.canViewText,icon:xe},{label:this.canEditText,icon:Se.A}];return this.supportsFileDrop&&t.push({label:this.fileDropText,icon:ke}),t.push({label:this.customPermissionsText,icon:ce}),t},supportsFileDrop(){if(this.isFolder&&this.config.isPublicUploadEnabled){const t=this.share.type??this.share.shareType;return[ot.I.Link,ot.I.Email].includes(t)}return!1},dropDownPermissionValue(){switch(this.selectedOption){case this.canEditText:return this.isFolder?zt.ALL:zt.ALL_FILE;case this.fileDropText:return zt.FILE_DROP;case this.customPermissionsText:return"custom";case this.canViewText:default:return zt.READ_ONLY}}},created(){this.selectedOption=this.preSelectedOption},mounted(){(0,Dt.B1)("update:share",(t=>{t.id===this.share.id&&(this.share.permissions=t.permissions,this.selectedOption=this.preSelectedOption)}))},unmounted(){(0,Dt.al)("update:share")},methods:{selectOption(t){this.selectedOption=t,t===this.customPermissionsText?this.$emit("open-sharing-details"):(this.share.permissions=this.dropDownPermissionValue,this.queueUpdate("permissions"),this.$refs.quickShareActions.$refs.menuButton.$el.focus())}}},Ne=Te;var De=n(60469),Pe={};Pe.styleTagTransform=y(),Pe.setAttributes=g(),Pe.insert=p().bind(null,"head"),Pe.domAPI=u(),Pe.insertStyleElement=m(),c()(De.A,Pe),De.A&&De.A.locals&&De.A.locals;const Re=(0,_t.A)(Ne,(function(){var t=this,e=t._self._c;return e("NcActions",{ref:"quickShareActions",staticClass:"share-select",attrs:{"menu-name":t.selectedOption,"aria-label":t.ariaLabel,type:"tertiary-no-background",disabled:!t.share.canEdit,"force-name":""},scopedSlots:t._u([{key:"icon",fn:function(){return[e("DropdownIcon",{attrs:{size:15}})]},proxy:!0}])},[t._v(" "),t._l(t.options,(function(i){return e("NcActionButton",{key:i.label,attrs:{type:"radio","model-value":i.label===t.selectedOption,"close-after-click":""},on:{click:function(e){return t.selectOption(i.label)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(i.icon,{tag:"component"})]},proxy:!0}],null,!0)},[t._v("\n\t\t"+t._s(i.label)+"\n\t")])}))],2)}),[],!1,null,"be1cd266",null).exports,Be={name:"ExternalShareAction",props:{id:{type:String,required:!0},action:{type:Object,default:()=>({})},fileInfo:{type:Object,default:()=>{},required:!0},share:{type:At,default:null}},computed:{data(){return this.action.data(this)}}},Le=(0,_t.A)(Be,(function(){var t=this;return(0,t._self._c)(t.data.is,t._g(t._b({tag:"Component"},"Component",t.data,!1),t.action.handlers),[t._v("\n\t"+t._s(t.data.text)+"\n")])}),[],!1,null,null,null).exports,Oe=new pt;async function Me(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(Oe.passwordPolicy.api&&Oe.passwordPolicy.api.generate)try{const e=await Z.Ay.get(Oe.passwordPolicy.api.generate);if(e.data.ocs.data.password)return t&&(0,mt.Te)((0,b.Tl)("files_sharing","Password created successfully")),e.data.ocs.data.password}catch(e){console.info("Error generating password from password_policy",e),t&&(0,mt.Qg)((0,b.Tl)("files_sharing","Error generating password from password policy"))}const e=new Uint8Array(10),i=52/255;self.crypto.getRandomValues(e);let n="";for(let t=0;t<e.length;t++)n+="abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789".charAt(e[t]*i);return n}const Ue={name:"SharingEntryLink",components:{ExternalShareAction:Le,NcActions:W.A,NcActionButton:X.A,NcActionCheckbox:re.N,NcActionInput:se.A,NcActionLink:Ft.A,NcActionText:Vt.A,NcActionSeparator:ae.A,NcAvatar:_.A,NcDialog:oe.A,VueQrcode:ne(),Tune:ce,IconCalendarBlank:ue,IconQr:pe,ErrorIcon:ge,LockIcon:me,CheckIcon:ye,ClipboardIcon:yt.A,CloseIcon:we.A,PlusIcon:Ce.A,SharingEntryQuickShareSelect:Re},mixins:[Yt,Bt],props:{canReshare:{type:Boolean,default:!0},index:{type:Number,default:null}},data:()=>({shareCreationComplete:!1,copySuccess:!0,copied:!1,defaultExpirationDateEnabled:!1,pending:!1,ExternalLegacyLinkActions:OCA.Sharing.ExternalLinkActions.state,ExternalShareActions:OCA.Sharing.ExternalShareActions.state,logger:(0,ft.YK)().setApp("files_sharing").detectUser().build(),showQRCode:!1}),computed:{title(){if(this.share&&this.share.id){if(!this.isShareOwner&&this.share.ownerDisplayName)return this.isEmailShareType?t("files_sharing","{shareWith} by {initiator}",{shareWith:this.share.shareWith,initiator:this.share.ownerDisplayName}):t("files_sharing","Shared via link by {initiator}",{initiator:this.share.ownerDisplayName});if(this.share.label&&""!==this.share.label.trim())return this.isEmailShareType?this.isFileRequest?t("files_sharing","File request ({label})",{label:this.share.label.trim()}):t("files_sharing","Mail share ({label})",{label:this.share.label.trim()}):t("files_sharing","Share link ({label})",{label:this.share.label.trim()});if(this.isEmailShareType)return this.share.shareWith&&""!==this.share.shareWith.trim()?this.share.shareWith:this.isFileRequest?t("files_sharing","File request"):t("files_sharing","Mail share");if(null===this.index)return t("files_sharing","Share link")}return this.index>=1?t("files_sharing","Share link ({index})",{index:this.index}):t("files_sharing","Create public link")},subtitle(){return this.isEmailShareType&&this.title!==this.share.shareWith?this.share.shareWith:null},isPasswordProtected:{get(){return this.config.enforcePasswordForPublicLink||!!this.share.password},async set(t){Q.Ay.set(this.share,"password",t?await Me(!0):""),Q.Ay.set(this.share,"newPassword",this.share.password)}},passwordExpirationTime(){if(null===this.share.passwordExpirationTime)return null;const t=(0,ht.A)(this.share.passwordExpirationTime);return!(t.diff((0,ht.A)())<0)&&t.fromNow()},isTalkEnabled:()=>void 0!==OC.appswebroots.spreed,isPasswordProtectedByTalkAvailable(){return this.isPasswordProtected&&this.isTalkEnabled},isPasswordProtectedByTalk:{get(){return this.share.sendPasswordByTalk},async set(t){this.share.sendPasswordByTalk=t}},isEmailShareType(){return!!this.share&&this.share.type===ot.I.Email},canTogglePasswordProtectedByTalkAvailable(){return!(!this.isPasswordProtected||this.isEmailShareType&&!this.hasUnsavedPassword)},pendingDataIsMissing(){return this.pendingPassword||this.pendingEnforcedPassword||this.pendingDefaultExpirationDate||this.pendingEnforcedExpirationDate},pendingPassword(){return this.config.enableLinkPasswordByDefault&&this.isPendingShare},pendingEnforcedPassword(){return this.config.enforcePasswordForPublicLink&&this.isPendingShare},pendingEnforcedExpirationDate(){return this.config.isDefaultExpireDateEnforced&&this.isPendingShare},pendingDefaultExpirationDate(){return(this.config.defaultExpirationDate instanceof Date||!isNaN(new Date(this.config.defaultExpirationDate).getTime()))&&this.isPendingShare},isPendingShare(){return!(!this.share||this.share.id)},sharePolicyHasEnforcedProperties(){return this.config.enforcePasswordForPublicLink||this.config.isDefaultExpireDateEnforced},enforcedPropertiesMissing(){if(!this.sharePolicyHasEnforcedProperties)return!1;if(!this.share)return!0;if(this.share.id)return!0;const t=this.config.enforcePasswordForPublicLink&&!this.share.password,e=this.config.isDefaultExpireDateEnforced&&!this.share.expireDate;return t||e},hasUnsavedPassword(){return void 0!==this.share.newPassword},shareLink(){return(0,o.Jv)("/s/{token}",{token:this.share.token},{baseURL:(0,o.$_)()})},actionsTooltip(){return t("files_sharing",'Actions for "{title}"',{title:this.title})},copyLinkTooltip(){return this.copied?this.copySuccess?"":t("files_sharing","Cannot copy, please copy the link manually"):t("files_sharing",'Copy public link of "{title}" to clipboard',{title:this.title})},externalLegacyLinkActions(){return this.ExternalLegacyLinkActions.actions},externalLinkActions(){return this.ExternalShareActions.actions.filter((t=>(t.shareType.includes(ot.I.Link)||t.shareType.includes(ot.I.Email))&&!t.advanced))},isPasswordPolicyEnabled(){return"object"==typeof this.config.passwordPolicy},canChangeHideDownload(){return this.fileInfo.shareAttributes.some((t=>"permissions"===t.scope&&"download"===t.key&&!1===t.value))},isFileRequest(){return this.share.isFileRequest}},mounted(){this.defaultExpirationDateEnabled=this.config.defaultExpirationDate instanceof Date,this.share&&this.isNewShare&&(this.share.expireDate=this.defaultExpirationDateEnabled?this.formatDateToString(this.config.defaultExpirationDate):"")},methods:{shareRequiresReview(t){return!t&&(this.defaultExpirationDateEnabled||this.config.enableLinkPasswordByDefault)},async onNewLinkShare(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.logger.debug("onNewLinkShare called (with this.share)",this.share),this.loading)return;const i={share_type:ot.I.Link};if(this.config.isDefaultExpireDateEnforced&&(i.expiration=this.formatDateToString(this.config.defaultExpirationDate)),this.logger.debug("Missing required properties?",this.enforcedPropertiesMissing),this.sharePolicyHasEnforcedProperties&&this.enforcedPropertiesMissing||this.shareRequiresReview(!0===e)){this.pending=!0,this.shareCreationComplete=!1,this.logger.info("Share policy requires a review or has mandated properties (password, expirationDate)..."),(this.config.enableLinkPasswordByDefault||this.config.enforcePasswordForPublicLink)&&(i.password=await Me(!0));const t=new At(i),e=await new Promise((e=>{this.$emit("add:share",t,e)}));this.open=!1,this.pending=!1,e.open=!0}else{if(this.share&&!this.share.id){if(this.checkShare(this.share)){try{this.logger.info("Sending existing share to server",this.share),await this.pushNewLinkShare(this.share,!0),this.shareCreationComplete=!0,this.logger.info("Share created on server",this.share)}catch(t){return this.pending=!1,this.logger.error("Error creating share",t),!1}return!0}return this.open=!0,(0,mt.Qg)(t("files_sharing","Error, please enter proper password and/or expiration date")),!1}const e=new At(i);await this.pushNewLinkShare(e),this.shareCreationComplete=!0}},async pushNewLinkShare(e,i){try{if(this.loading)return!0;this.loading=!0,this.errors={};const n={path:(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),shareType:ot.I.Link,password:e.password,expireDate:e.expireDate??"",attributes:JSON.stringify(this.fileInfo.shareAttributes)};console.debug("Creating link share with options",n);const r=await this.createShare(n);let s;this.open=!1,this.shareCreationComplete=!0,console.debug("Link share created",r),s=i?await new Promise((t=>{this.$emit("update:share",r,t)})):await new Promise((t=>{this.$emit("add:share",r,t)})),await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node),this.config.enforcePasswordForPublicLink||s.copyLink(),(0,mt.Te)(t("files_sharing","Link share created"))}catch(e){const i=e?.response?.data?.ocs?.meta?.message;if(!i)return(0,mt.Qg)(t("files_sharing","Error while creating the share")),void console.error(e);throw i.match(/password/i)?this.onSyncError("password",i):i.match(/date/i)?this.onSyncError("expireDate",i):this.onSyncError("pending",i),e}finally{this.loading=!1,this.shareCreationComplete=!0}},async copyLink(){try{await navigator.clipboard.writeText(this.shareLink),(0,mt.Te)(t("files_sharing","Link copied")),this.$refs.copyButton.$el.focus(),this.copySuccess=!0,this.copied=!0}catch(t){this.copySuccess=!1,this.copied=!0,console.error(t)}finally{setTimeout((()=>{this.copySuccess=!1,this.copied=!1}),4e3)}},onPasswordChange(t){this.$set(this.share,"newPassword",t)},onPasswordDisable(){this.share.password="",this.$delete(this.share,"newPassword"),this.share.id&&this.queueUpdate("password")},onPasswordSubmit(){this.hasUnsavedPassword&&(this.share.password=this.share.newPassword.trim(),this.queueUpdate("password"))},onPasswordProtectedByTalkChange(){this.hasUnsavedPassword&&(this.share.password=this.share.newPassword.trim()),this.queueUpdate("sendPasswordByTalk","password")},onMenuClose(){this.onPasswordSubmit(),this.onNoteSubmit()},onExpirationDateToggleUpdate(t){this.share.expireDate=t?this.formatDateToString(this.config.defaultExpirationDate):""},expirationDateChanged(t){const e=t.target.value;this.onExpirationChange(e),this.defaultExpirationDateEnabled=!!e},onCancel(){this.shareCreationComplete||this.$emit("remove:share",this.share)}}},$e=Ue;var Fe=n(98733),Ve={};Ve.styleTagTransform=y(),Ve.setAttributes=g(),Ve.insert=p().bind(null,"head"),Ve.domAPI=u(),Ve.insertStyleElement=m(),c()(Fe.A,Ve),Fe.A&&Fe.A.locals&&Fe.A.locals;const je={name:"SharingLinkList",components:{SharingEntryLink:(0,_t.A)($e,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"sharing-entry sharing-entry__link",class:{"sharing-entry--share":t.share}},[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":!0,"icon-class":t.isEmailShareType?"avatar-link-share icon-mail-white":"avatar-link-share icon-public-white"}}),t._v(" "),e("div",{staticClass:"sharing-entry__summary"},[e("div",{staticClass:"sharing-entry__desc"},[e("span",{staticClass:"sharing-entry__title",attrs:{title:t.title}},[t._v("\n\t\t\t\t"+t._s(t.title)+"\n\t\t\t")]),t._v(" "),t.subtitle?e("p",[t._v("\n\t\t\t\t"+t._s(t.subtitle)+"\n\t\t\t")]):t._e(),t._v(" "),t.share&&void 0!==t.share.permissions?e("SharingEntryQuickShareSelect",{attrs:{share:t.share,"file-info":t.fileInfo},on:{"open-sharing-details":function(e){return t.openShareDetailsForCustomSettings(t.share)}}}):t._e()],1),t._v(" "),t.share&&(!t.isEmailShareType||t.isFileRequest)&&t.share.token?e("NcActions",{ref:"copyButton",staticClass:"sharing-entry__copy"},[e("NcActionButton",{attrs:{"aria-label":t.copyLinkTooltip,title:t.copyLinkTooltip,href:t.shareLink},on:{click:function(e){return e.preventDefault(),t.copyLink.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.copied&&t.copySuccess?e("CheckIcon",{staticClass:"icon-checkmark-color",attrs:{size:20}}):e("ClipboardIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,4269614823)})],1):t._e()],1),t._v(" "),!t.pending&&t.pendingDataIsMissing?e("NcActions",{staticClass:"sharing-entry__actions",attrs:{"aria-label":t.actionsTooltip,"menu-align":"right",open:t.open},on:{"update:open":function(e){t.open=e},close:t.onCancel}},[t.errors.pending?e("NcActionText",{staticClass:"error",scopedSlots:t._u([{key:"icon",fn:function(){return[e("ErrorIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1966124155)},[t._v("\n\t\t\t"+t._s(t.errors.pending)+"\n\t\t")]):e("NcActionText",{attrs:{icon:"icon-info"}},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Please enter the following required information before creating the share"))+"\n\t\t")]),t._v(" "),t.pendingPassword?e("NcActionCheckbox",{staticClass:"share-link-password-checkbox",attrs:{checked:t.isPasswordProtected,disabled:t.config.enforcePasswordForPublicLink||t.saving},on:{"update:checked":function(e){t.isPasswordProtected=e},uncheck:t.onPasswordDisable}},[t._v("\n\t\t\t"+t._s(t.config.enforcePasswordForPublicLink?t.t("files_sharing","Password protection (enforced)"):t.t("files_sharing","Password protection"))+"\n\t\t")]):t._e(),t._v(" "),t.pendingEnforcedPassword||t.share.password?e("NcActionInput",{staticClass:"share-link-password",attrs:{label:t.t("files_sharing","Enter a password"),value:t.share.password,disabled:t.saving,required:t.config.enableLinkPasswordByDefault||t.config.enforcePasswordForPublicLink,minlength:t.isPasswordPolicyEnabled&&t.config.passwordPolicy.minLength,autocomplete:"new-password"},on:{"update:value":function(e){return t.$set(t.share,"password",e)},submit:function(e){return t.onNewLinkShare(!0)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("LockIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2056568168)}):t._e(),t._v(" "),t.pendingDefaultExpirationDate?e("NcActionCheckbox",{staticClass:"share-link-expiration-date-checkbox",attrs:{checked:t.defaultExpirationDateEnabled,disabled:t.pendingEnforcedExpirationDate||t.saving},on:{"update:checked":function(e){t.defaultExpirationDateEnabled=e},"update:model-value":t.onExpirationDateToggleUpdate}},[t._v("\n\t\t\t"+t._s(t.config.isDefaultExpireDateEnforced?t.t("files_sharing","Enable link expiration (enforced)"):t.t("files_sharing","Enable link expiration"))+"\n\t\t")]):t._e(),t._v(" "),(t.pendingDefaultExpirationDate||t.pendingEnforcedExpirationDate)&&t.defaultExpirationDateEnabled?e("NcActionInput",{staticClass:"share-link-expire-date",attrs:{"data-cy-files-sharing-expiration-date-input":"",label:t.pendingEnforcedExpirationDate?t.t("files_sharing","Enter expiration date (enforced)"):t.t("files_sharing","Enter expiration date"),disabled:t.saving,"is-native-picker":!0,"hide-label":!0,value:new Date(t.share.expireDate),type:"date",min:t.dateTomorrow,max:t.maxExpirationDateEnforced},on:{change:function(e){return t.expirationDateChanged(e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconCalendarBlank",{attrs:{size:20}})]},proxy:!0}],null,!1,3418578971)}):t._e(),t._v(" "),e("NcActionButton",{on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onNewLinkShare(!0)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CheckIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2630571749)},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Create share"))+"\n\t\t")]),t._v(" "),e("NcActionButton",{on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onCancel.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)},[t._v("\n\t\t\t"+t._s(t.t("files_sharing","Cancel"))+"\n\t\t")])],1):t.loading?e("div",{staticClass:"icon-loading-small sharing-entry__loading"}):e("NcActions",{staticClass:"sharing-entry__actions",attrs:{"aria-label":t.actionsTooltip,"menu-align":"right",open:t.open},on:{"update:open":function(e){t.open=e},close:t.onMenuClose}},[t.share?[t.share.canEdit&&t.canReshare?[e("NcActionButton",{attrs:{disabled:t.saving,"close-after-click":!0},on:{click:function(e){return e.preventDefault(),t.openSharingDetails.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Tune",{attrs:{size:20}})]},proxy:!0}],null,!1,1300586850)},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Customize link"))+"\n\t\t\t\t")])]:t._e(),t._v(" "),e("NcActionButton",{attrs:{"close-after-click":!0},on:{click:function(e){e.preventDefault(),t.showQRCode=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconQr",{attrs:{size:20}})]},proxy:!0}],null,!1,1082198240)},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Generate QR code"))+"\n\t\t\t")]),t._v(" "),e("NcActionSeparator"),t._v(" "),t._l(t.externalLinkActions,(function(i){return e("ExternalShareAction",{key:i.id,attrs:{id:i.id,action:i,"file-info":t.fileInfo,share:t.share}})})),t._v(" "),t._l(t.externalLegacyLinkActions,(function(i,n){let{icon:r,url:s,name:a}=i;return e("NcActionLink",{key:n,attrs:{href:s(t.shareLink),icon:r,target:"_blank"}},[t._v("\n\t\t\t\t"+t._s(a)+"\n\t\t\t")])})),t._v(" "),!t.isEmailShareType&&t.canReshare?e("NcActionButton",{staticClass:"new-share-link",on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onNewLinkShare.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("PlusIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2953566425)},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Add another link"))+"\n\t\t\t")]):t._e(),t._v(" "),t.share.canDelete?e("NcActionButton",{attrs:{disabled:t.saving},on:{click:function(e){return e.preventDefault(),t.onDelete.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,2428343285)},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Unshare"))+"\n\t\t\t")]):t._e()]:t.canReshare?e("NcActionButton",{staticClass:"new-share-link",attrs:{title:t.t("files_sharing","Create a new share link"),"aria-label":t.t("files_sharing","Create a new share link"),icon:t.loading?"icon-loading-small":"icon-add"},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.onNewLinkShare.apply(null,arguments)}}}):t._e()],2),t._v(" "),t.showQRCode?e("NcDialog",{attrs:{size:"normal",open:t.showQRCode,name:t.title,"close-on-click-outside":!0},on:{"update:open":function(e){t.showQRCode=e},close:function(e){t.showQRCode=!1}}},[e("div",{staticClass:"qr-code-dialog"},[e("VueQrcode",{staticClass:"qr-code-dialog__img",attrs:{tag:"img",value:t.shareLink}})],1)]):t._e()],1)}),[],!1,null,"3d033992",null).exports},mixins:[Bt],props:{fileInfo:{type:Object,default:()=>{},required:!0},shares:{type:Array,default:()=>[],required:!0},canReshare:{type:Boolean,required:!0}},data:()=>({canLinkShare:(0,dt.F)().files_sharing.public.enabled}),computed:{hasLinkShares(){return this.shares.filter((t=>t.type===ot.I.Link)).length>0},hasShares(){return this.shares.length>0}},methods:{t:b.t,addShare(t,e){this.shares.push(t),this.awaitForShare(t,e)},awaitForShare(t,e){this.$nextTick((()=>{const i=this.$children.find((e=>e.share===t));i&&e(i)}))},removeShare(t){const e=this.shares.findIndex((e=>e===t));this.shares.splice(e,1)}}},qe=(0,_t.A)(je,(function(){var t=this,e=t._self._c;return t.canLinkShare?e("ul",{staticClass:"sharing-link-list",attrs:{"aria-label":t.t("files_sharing","Link shares")}},[!t.hasLinkShares&&t.canReshare?e("SharingEntryLink",{attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo},on:{"add:share":t.addShare}}):t._e(),t._v(" "),t.hasShares?t._l(t.shares,(function(i,n){return e("SharingEntryLink",{key:i.id,attrs:{index:t.shares.length>1?n+1:null,"can-reshare":t.canReshare,share:t.shares[n],"file-info":t.fileInfo},on:{"update:share":[function(e){return t.$set(t.shares,n,e)},function(e){return t.awaitForShare(...arguments)}],"add:share":function(e){return t.addShare(...arguments)},"remove:share":t.removeShare,"open-sharing-details":function(e){return t.openSharingDetails(i)}}})})):t._e()],2):t._e()}),[],!1,null,null,null).exports;var ze=n(26690);const He={name:"SharingEntry",components:{NcButton:ut.A,NcAvatar:_.A,DotsHorizontalIcon:ze.A,NcSelect:E.A,SharingEntryQuickShareSelect:Re},mixins:[Yt,Bt],computed:{title(){let e=this.share.shareWithDisplayName;return this.share.type===ot.I.Group?e+=` (${t("files_sharing","group")})`:this.share.type===ot.I.Room?e+=` (${t("files_sharing","conversation")})`:this.share.type===ot.I.Remote?e+=` (${t("files_sharing","remote")})`:this.share.type===ot.I.RemoteGroup?e+=` (${t("files_sharing","remote group")})`:this.share.type===ot.I.Guest&&(e+=` (${t("files_sharing","guest")})`),!this.isShareOwner&&this.share.ownerDisplayName&&(e+=" "+t("files_sharing","by {initiator}",{initiator:this.share.ownerDisplayName})),e},tooltip(){if(this.share.owner!==this.share.uidFileOwner){const e={user:this.share.shareWithDisplayName,owner:this.share.ownerDisplayName};return this.share.type===ot.I.Group?t("files_sharing","Shared with the group {user} by {owner}",e):this.share.type===ot.I.Room?t("files_sharing","Shared with the conversation {user} by {owner}",e):t("files_sharing","Shared with {user} by {owner}",e)}return null},hasStatus(){return this.share.type===ot.I.User&&"object"==typeof this.share.status&&!Array.isArray(this.share.status)}},methods:{onMenuClose(){this.onNoteSubmit()}}};var Ge=n(63592),Ye={};Ye.styleTagTransform=y(),Ye.setAttributes=g(),Ye.insert=p().bind(null,"head"),Ye.domAPI=u(),Ye.insertStyleElement=m(),c()(Ge.A,Ye),Ge.A&&Ge.A.locals&&Ge.A.locals;const We={name:"SharingList",components:{SharingEntry:(0,_t.A)(He,(function(){var t=this,e=t._self._c;return e("li",{staticClass:"sharing-entry"},[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":t.share.type!==t.ShareType.User,user:t.share.shareWith,"display-name":t.share.shareWithDisplayName,"menu-position":"left",url:t.share.shareWithAvatar}}),t._v(" "),e("div",{staticClass:"sharing-entry__summary"},[e(t.share.shareWithLink?"a":"div",{tag:"component",staticClass:"sharing-entry__summary__desc",attrs:{title:t.tooltip,"aria-label":t.tooltip,href:t.share.shareWithLink}},[e("span",[t._v(t._s(t.title)+"\n\t\t\t\t"),t.isUnique?t._e():e("span",{staticClass:"sharing-entry__summary__desc-unique"},[t._v(" ("+t._s(t.share.shareWithDisplayNameUnique)+")")]),t._v(" "),t.hasStatus&&t.share.status.message?e("small",[t._v("("+t._s(t.share.status.message)+")")]):t._e()])]),t._v(" "),e("SharingEntryQuickShareSelect",{attrs:{share:t.share,"file-info":t.fileInfo},on:{"open-sharing-details":function(e){return t.openShareDetailsForCustomSettings(t.share)}}})],1),t._v(" "),t.share.canEdit?e("NcButton",{staticClass:"sharing-entry__action",attrs:{"data-cy-files-sharing-share-actions":"","aria-label":t.t("files_sharing","Open Sharing Details"),type:"tertiary"},on:{click:function(e){return t.openSharingDetails(t.share)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("DotsHorizontalIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1700783217)}):t._e()],1)}),[],!1,null,"e994747e",null).exports},mixins:[Bt],props:{fileInfo:{type:Object,default:()=>{},required:!0},shares:{type:Array,default:()=>[],required:!0}},setup:()=>({t:b.t}),computed:{hasShares(){return 0===this.shares.length},isUnique(){return t=>[...this.shares].filter((e=>t.type===ot.I.User&&t.shareWithDisplayName===e.shareWithDisplayName)).length<=1}}},Xe=(0,_t.A)(We,(function(){var t=this,e=t._self._c;return e("ul",{staticClass:"sharing-sharee-list",attrs:{"aria-label":t.t("files_sharing","Shares")}},t._l(t.shares,(function(i){return e("SharingEntry",{key:i.id,attrs:{"file-info":t.fileInfo,share:i,"is-unique":t.isUnique(i)},on:{"open-sharing-details":function(e){return t.openSharingDetails(i)}}})})),1)}),[],!1,null,null,null).exports;var Qe=n(32073),Ze=n(18319),Ke=n(16879),Je=n(59892),ti=n(16044),ei=n(177);const ii={name:"CircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ni=(0,_t.A)(ii,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon circle-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,ri={name:"EmailIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},si=(0,_t.A)(ri,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon email-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var ai=n(36600),oi=n(43261);const li={name:"ShareCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ci=(0,_t.A)(li,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon share-circle-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,hi={name:"AccountCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ui=(0,_t.A)(hi,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon account-circle-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,di={name:"EyeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},pi=(0,_t.A)(di,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon eye-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var fi=n(65422),gi=n(25384),Ai=n(33388);const mi={name:"RefreshIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},vi=(0,_t.A)(mi,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon refresh-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("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"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,yi={name:"SharingDetailsTab",components:{NcAvatar:_.A,NcButton:ut.A,NcCheckboxRadioSwitch:Qe.A,NcDateTimePickerNative:Ze.A,NcInputField:Ke.A,NcLoadingIcon:Je.A,NcPasswordField:ti.A,NcTextArea:ei.A,CloseIcon:we.A,CircleIcon:ni,EditIcon:Se.A,ExternalShareAction:Le,LinkIcon:ai.A,GroupIcon:oi.A,ShareIcon:ci,UserIcon:ui,UploadIcon:fi.A,ViewIcon:pi,MenuDownIcon:gi.A,MenuUpIcon:Ai.A,DotsHorizontalIcon:ze.A,Refresh:vi},mixins:[Rt,Yt],props:{shareRequestValue:{type:Object,required:!1},fileInfo:{type:Object,required:!0},share:{type:Object,required:!0}},data(){return{writeNoteToRecipientIsChecked:!1,sharingPermission:zt.ALL.toString(),revertSharingPermission:zt.ALL.toString(),setCustomPermissions:!1,passwordError:!1,advancedSectionAccordionExpanded:!1,bundledPermissions:zt,isFirstComponentLoad:!0,test:!1,creating:!1,initialToken:this.share.token,loadingToken:!1,ExternalShareActions:OCA.Sharing.ExternalShareActions.state}},computed:{title(){switch(this.share.type){case ot.I.User:return t("files_sharing","Share with {userName}",{userName:this.share.shareWithDisplayName});case ot.I.Email:return t("files_sharing","Share with email {email}",{email:this.share.shareWith});case ot.I.Link:return t("files_sharing","Share link");case ot.I.Group:return t("files_sharing","Share with group");case ot.I.Room:return t("files_sharing","Share in conversation");case ot.I.Remote:{const[e,i]=this.share.shareWith.split("@");return t("files_sharing","Share with {user} on remote server {server}",{user:e,server:i})}case ot.I.RemoteGroup:return t("files_sharing","Share with remote group");case ot.I.Guest:return t("files_sharing","Share with guest");default:return this.share.id?t("files_sharing","Update share"):t("files_sharing","Create share")}},canEdit:{get(){return this.share.hasUpdatePermission},set(t){this.updateAtomicPermissions({isEditChecked:t})}},canCreate:{get(){return this.share.hasCreatePermission},set(t){this.updateAtomicPermissions({isCreateChecked:t})}},canDelete:{get(){return this.share.hasDeletePermission},set(t){this.updateAtomicPermissions({isDeleteChecked:t})}},canReshare:{get(){return this.share.hasSharePermission},set(t){this.updateAtomicPermissions({isReshareChecked:t})}},showInGridView:{get(){return this.getShareAttribute("config","grid_view",!1)},set(t){this.setShareAttribute("config","grid_view",t)}},canDownload:{get(){return this.getShareAttribute("permissions","download",!0)},set(t){this.setShareAttribute("permissions","download",t)}},hasRead:{get(){return this.share.hasReadPermission},set(t){this.updateAtomicPermissions({isReadChecked:t})}},hasExpirationDate:{get(){return this.isValidShareAttribute(this.share.expireDate)},set(t){this.share.expireDate=t?this.formatDateToString(this.defaultExpiryDate):""}},isPasswordProtected:{get(){return this.config.enforcePasswordForPublicLink||!!this.share.password},async set(t){t?(this.share.password=await Me(!0),this.$set(this.share,"newPassword",this.share.password)):(this.share.password="",this.$delete(this.share,"newPassword"))}},isFolder(){return"dir"===this.fileInfo.type},isSetDownloadButtonVisible(){return this.isFolder||["application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.oasis.opendocument.text","application/vnd.oasis.opendocument.spreadsheet","application/vnd.oasis.opendocument.presentation"].includes(this.fileInfo.mimetype)},isPasswordEnforced(){return this.isPublicShare&&this.config.enforcePasswordForPublicLink},defaultExpiryDate(){return(this.isGroupShare||this.isUserShare)&&this.config.isDefaultInternalExpireDateEnabled?new Date(this.config.defaultInternalExpirationDate):this.isRemoteShare&&this.config.isDefaultRemoteExpireDateEnabled?new Date(this.config.defaultRemoteExpireDateEnabled):this.isPublicShare&&this.config.isDefaultExpireDateEnabled?new Date(this.config.defaultExpirationDate):new Date((new Date).setDate((new Date).getDate()+1))},isUserShare(){return this.share.type===ot.I.User},isGroupShare(){return this.share.type===ot.I.Group},allowsFileDrop(){return!(!this.isFolder||!this.config.isPublicUploadEnabled||this.share.type!==ot.I.Link&&this.share.type!==ot.I.Email)},hasFileDropPermissions(){return this.share.permissions===this.bundledPermissions.FILE_DROP},shareButtonText(){return this.isNewShare?t("files_sharing","Save share"):t("files_sharing","Update share")},resharingIsPossible(){return this.config.isResharingAllowed&&this.share.type!==ot.I.Link&&this.share.type!==ot.I.Email},canSetEdit(){return this.fileInfo.sharePermissions&OC.PERMISSION_UPDATE||this.canEdit},canSetCreate(){return this.fileInfo.sharePermissions&OC.PERMISSION_CREATE||this.canCreate},canSetDelete(){return this.fileInfo.sharePermissions&OC.PERMISSION_DELETE||this.canDelete},canSetReshare(){return this.fileInfo.sharePermissions&OC.PERMISSION_SHARE||this.canReshare},canSetDownload(){return this.fileInfo.canDownload()||this.canDownload},canRemoveReadPermission(){return this.allowsFileDrop&&(this.share.type===ot.I.Link||this.share.type===ot.I.Email)},hasUnsavedPassword(){return void 0!==this.share.newPassword},passwordExpirationTime(){if(!this.isValidShareAttribute(this.share.passwordExpirationTime))return null;const t=(0,ht.A)(this.share.passwordExpirationTime);return!(t.diff((0,ht.A)())<0)&&t.fromNow()},isTalkEnabled:()=>void 0!==OC.appswebroots.spreed,isPasswordProtectedByTalkAvailable(){return this.isPasswordProtected&&this.isTalkEnabled},isPasswordProtectedByTalk:{get(){return this.share.sendPasswordByTalk},async set(t){this.share.sendPasswordByTalk=t}},isEmailShareType(){return!!this.share&&this.share.type===ot.I.Email},canTogglePasswordProtectedByTalkAvailable(){return!(!this.isPublicShare||!this.isPasswordProtected||this.isEmailShareType&&!this.hasUnsavedPassword||void 0===OC.appswebroots.spreed)},canChangeHideDownload(){return this.fileInfo.shareAttributes.some((t=>"download"===t.key&&"permissions"===t.scope&&!1===t.value))},customPermissionsList(){const t={[qt.READ]:this.t("files_sharing","Read"),[qt.CREATE]:this.t("files_sharing","Create"),[qt.UPDATE]:this.t("files_sharing","Edit"),[qt.SHARE]:this.t("files_sharing","Share"),[qt.DELETE]:this.t("files_sharing","Delete")};return[qt.READ,qt.CREATE,qt.UPDATE,...this.resharingIsPossible?[qt.SHARE]:[],qt.DELETE].filter((t=>{return e=this.share.permissions,i=t,e!==qt.NONE&&(e&i)===i;var e,i})).map(((e,i)=>0===i?t[e]:t[e].toLocaleLowerCase((0,b.Z0)()))).join(", ")},advancedControlExpandedValue(){return this.advancedSectionAccordionExpanded?"true":"false"},errorPasswordLabel(){if(this.passwordError)return t("files_sharing","Password field can't be empty")},passwordHint(){if(!this.isNewShare&&!this.hasUnsavedPassword)return t("files_sharing","Replace current password")},externalLinkActions(){return this.ExternalShareActions.actions.filter((t=>(t.shareType.includes(ot.I.Link)||t.shareType.includes(ot.I.Email))&&t.advanced))}},watch:{setCustomPermissions(t){this.sharingPermission=t?"custom":this.revertSharingPermission}},beforeMount(){this.initializePermissions(),this.initializeAttributes(),gt.debug("Share object received",{share:this.share}),gt.debug("Configuration object received",{config:this.config})},mounted(){this.$refs.quickPermissions?.querySelector("input:checked")?.focus()},methods:{setShareAttribute(t,e,i){this.share.attributes||this.$set(this.share,"attributes",[]);const n=this.share.attributes.find((i=>i.scope===t||i.key===e));n?n.value=i:this.share.attributes.push({scope:t,key:e,value:i})},getShareAttribute(t,e){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;const n=this.share.attributes?.find((i=>i.scope===t&&i.key===e));return n?.value??i},async generateNewToken(){if(!this.loadingToken){this.loadingToken=!0;try{this.share.token=await(async()=>{const{data:t}=await Z.Ay.get((0,o.KT)("/apps/files_sharing/api/v1/token"));return t.ocs.data.token})()}catch(e){(0,mt.Qg)(t("files_sharing","Failed to generate a new token"))}this.loadingToken=!1}},cancel(){this.share.token=this.initialToken,this.$emit("close-sharing-details")},updateAtomicPermissions(){let{isReadChecked:t=this.hasRead,isEditChecked:e=this.canEdit,isCreateChecked:i=this.canCreate,isDeleteChecked:n=this.canDelete,isReshareChecked:r=this.canReshare}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const s=(t?qt.READ:0)|(i?qt.CREATE:0)|(n?qt.DELETE:0)|(e?qt.UPDATE:0)|(r?qt.SHARE:0);this.share.permissions=s},expandCustomPermissions(){this.advancedSectionAccordionExpanded||(this.advancedSectionAccordionExpanded=!0),this.toggleCustomPermissions()},toggleCustomPermissions(t){const e="custom"===this.sharingPermission;this.revertSharingPermission=e?"custom":t,this.setCustomPermissions=e},async initializeAttributes(){if(this.isNewShare)return this.isPasswordEnforced&&this.isPublicShare&&(this.$set(this.share,"newPassword",await Me(!0)),this.advancedSectionAccordionExpanded=!0),this.isPublicShare&&this.config.isDefaultExpireDateEnabled?this.share.expireDate=this.config.defaultExpirationDate.toDateString():this.isRemoteShare&&this.config.isDefaultRemoteExpireDateEnabled?this.share.expireDate=this.config.defaultRemoteExpirationDateString.toDateString():this.config.isDefaultInternalExpireDateEnabled&&(this.share.expireDate=this.config.defaultInternalExpirationDate.toDateString()),void(this.isValidShareAttribute(this.share.expireDate)&&(this.advancedSectionAccordionExpanded=!0));!this.isValidShareAttribute(this.share.expireDate)&&this.isExpiryDateEnforced&&(this.hasExpirationDate=!0),(this.isValidShareAttribute(this.share.password)||this.isValidShareAttribute(this.share.expireDate)||this.isValidShareAttribute(this.share.label))&&(this.advancedSectionAccordionExpanded=!0),this.share.note&&(this.writeNoteToRecipientIsChecked=!0)},handleShareType(){"shareType"in this.share?this.share.type=this.share.shareType:this.share.share_type&&(this.share.type=this.share.share_type)},handleDefaultPermissions(){if(this.isNewShare){const t=this.config.defaultPermissions;t===zt.READ_ONLY||t===zt.ALL?this.sharingPermission=t.toString():(this.sharingPermission="custom",this.share.permissions=t,this.advancedSectionAccordionExpanded=!0,this.setCustomPermissions=!0)}this.canRemoveReadPermission||(this.hasRead=!0)},handleCustomPermissions(){this.isNewShare||!this.hasCustomPermissions&&!this.share.setCustomPermissions?this.share.permissions&&(this.sharingPermission=this.share.permissions.toString()):(this.sharingPermission="custom",this.advancedSectionAccordionExpanded=!0,this.setCustomPermissions=!0)},initializePermissions(){this.handleShareType(),this.handleDefaultPermissions(),this.handleCustomPermissions()},async saveShare(){const t=["permissions","attributes","note","expireDate"],e=["label","password","hideDownload"];this.config.allowCustomTokens&&e.push("token"),this.isPublicShare&&t.push(...e);const i=parseInt(this.sharingPermission);if(this.setCustomPermissions?this.updateAtomicPermissions():this.share.permissions=i,this.isFolder||this.share.permissions!==zt.ALL||(this.share.permissions=zt.ALL_FILE),this.writeNoteToRecipientIsChecked||(this.share.note=""),this.isPasswordProtected?this.hasUnsavedPassword&&this.isValidShareAttribute(this.share.newPassword)?(this.share.password=this.share.newPassword,this.$delete(this.share,"newPassword")):this.isPasswordEnforced&&this.isNewShare&&!this.isValidShareAttribute(this.share.password)&&(this.passwordError=!0):this.share.password="",this.hasExpirationDate||(this.share.expireDate=""),this.isNewShare){const t={permissions:this.share.permissions,shareType:this.share.type,shareWith:this.share.shareWith,attributes:this.share.attributes,note:this.share.note,fileInfo:this.fileInfo};t.expireDate=this.hasExpirationDate?this.share.expireDate:"",this.isPasswordProtected&&(t.password=this.share.password),this.creating=!0;const e=await this.addShare(t);this.creating=!1,this.share=e,this.$emit("add:share",this.share)}else this.$emit("update:share",this.share),(0,Dt.Ic)("update:share",this.share),this.queueUpdate(...t);await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node),this.$refs.externalLinkActions?.length>0&&await Promise.allSettled(this.$refs.externalLinkActions.map((t=>"function"!=typeof t.$children.at(0)?.onSave?Promise.resolve():t.$children.at(0)?.onSave?.()))),this.$emit("close-sharing-details")},async addShare(t){gt.debug("Adding a new share from the input for",{share:t});const e=this.path;try{return await this.createShare({path:e,shareType:t.shareType,shareWith:t.shareWith,permissions:t.permissions,expireDate:t.expireDate,attributes:JSON.stringify(t.attributes),...t.note?{note:t.note}:{},...t.password?{password:t.password}:{}})}catch(t){gt.error("Error while adding new share",{error:t})}},async removeShare(){await this.onDelete(),await this.getNode(),(0,Dt.Ic)("files:node:updated",this.node),this.$emit("close-sharing-details")},onPasswordChange(t){if(""===t)return this.$delete(this.share,"newPassword"),void(this.passwordError=this.isNewShare&&this.isPasswordEnforced);this.passwordError=!this.isValidShareAttribute(t),this.$set(this.share,"newPassword",t)},onPasswordProtectedByTalkChange(){this.hasUnsavedPassword&&(this.share.password=this.share.newPassword.trim()),this.queueUpdate("sendPasswordByTalk","password")},isValidShareAttribute:t=>![null,void 0].includes(t)&&t.trim().length>0,getShareTypeIcon(t){switch(t){case ot.I.Link:return ai.A;case ot.I.Guest:return ui;case ot.I.RemoteGroup:case ot.I.Group:return oi.A;case ot.I.Email:return si;case ot.I.Team:return ni;case ot.I.Room:case ot.I.Deck:case ot.I.ScienceMesh:return ci;default:return null}}}};var wi=n(94906),Ci={};Ci.styleTagTransform=y(),Ci.setAttributes=g(),Ci.insert=p().bind(null,"head"),Ci.domAPI=u(),Ci.insertStyleElement=m(),c()(wi.A,Ci),wi.A&&wi.A.locals&&wi.A.locals;const bi=(0,_t.A)(yi,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"sharingTabDetailsView"},[e("div",{staticClass:"sharingTabDetailsView__header"},[e("span",[t.isUserShare?e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{"is-no-user":t.share.shareType!==t.ShareType.User,user:t.share.shareWith,"display-name":t.share.shareWithDisplayName,"menu-position":"left",url:t.share.shareWithAvatar}}):t._e(),t._v(" "),e(t.getShareTypeIcon(t.share.type),{tag:"component",attrs:{size:32}})],1),t._v(" "),e("span",[e("h1",[t._v(t._s(t.title))])])]),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__wrapper"},[e("div",{ref:"quickPermissions",staticClass:"sharingTabDetailsView__quick-permissions"},[e("div",[e("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"read-only",checked:t.sharingPermission,value:t.bundledPermissions.READ_ONLY.toString(),name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.toggleCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("ViewIcon",{attrs:{size:20}})]},proxy:!0}])},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","View only"))+"\n\t\t\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"upload-edit",checked:t.sharingPermission,value:t.bundledPermissions.ALL.toString(),name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.toggleCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("EditIcon",{attrs:{size:20}})]},proxy:!0}])},[t.allowsFileDrop?[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Allow upload and editing"))+"\n\t\t\t\t\t")]:[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Allow editing"))+"\n\t\t\t\t\t")]],2),t._v(" "),t.allowsFileDrop?e("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-sharing-share-permissions-bundle":"file-drop","button-variant":!0,checked:t.sharingPermission,value:t.bundledPermissions.FILE_DROP.toString(),name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.toggleCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("UploadIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,1083194048)},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","File request"))+"\n\t\t\t\t\t"),e("small",{staticClass:"subline"},[t._v(t._s(t.t("files_sharing","Upload only")))])]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{"button-variant":!0,"data-cy-files-sharing-share-permissions-bundle":"custom",checked:t.sharingPermission,value:"custom",name:"sharing_permission_radio",type:"radio","button-variant-grouped":"vertical"},on:{"update:checked":[function(e){t.sharingPermission=e},t.expandCustomPermissions]},scopedSlots:t._u([{key:"icon",fn:function(){return[e("DotsHorizontalIcon",{attrs:{size:20}})]},proxy:!0}])},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Custom permissions"))+"\n\t\t\t\t\t"),e("small",{staticClass:"subline"},[t._v(t._s(t.customPermissionsList))])])],1)]),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__advanced-control"},[e("NcButton",{attrs:{id:"advancedSectionAccordionAdvancedControl",type:"tertiary",alignment:"end-reverse","aria-controls":"advancedSectionAccordionAdvanced","aria-expanded":t.advancedControlExpandedValue},on:{click:function(e){t.advancedSectionAccordionExpanded=!t.advancedSectionAccordionExpanded}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.advancedSectionAccordionExpanded?e("MenuUpIcon"):e("MenuDownIcon")]},proxy:!0}])},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Advanced settings"))+"\n\t\t\t\t")])],1),t._v(" "),t.advancedSectionAccordionExpanded?e("div",{staticClass:"sharingTabDetailsView__advanced",attrs:{id:"advancedSectionAccordionAdvanced","aria-labelledby":"advancedSectionAccordionAdvancedControl",role:"region"}},[e("section",[t.isPublicShare?e("NcInputField",{staticClass:"sharingTabDetailsView__label",attrs:{autocomplete:"off",label:t.t("files_sharing","Share label"),value:t.share.label},on:{"update:value":function(e){return t.$set(t.share,"label",e)}}}):t._e(),t._v(" "),t.config.allowCustomTokens&&t.isPublicShare&&!t.isNewShare?e("NcInputField",{attrs:{autocomplete:"off",label:t.t("files_sharing","Share link token"),"helper-text":t.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":t.loadingToken?t.t("files_sharing","Generating…"):t.t("files_sharing","Generate new token"),value:t.share.token},on:{"update:value":function(e){return t.$set(t.share,"token",e)},"trailing-button-click":t.generateNewToken},scopedSlots:t._u([{key:"trailing-button-icon",fn:function(){return[t.loadingToken?e("NcLoadingIcon"):e("Refresh",{attrs:{size:20}})]},proxy:!0}],null,!1,4228062821)}):t._e(),t._v(" "),t.isPublicShare?[e("NcCheckboxRadioSwitch",{attrs:{checked:t.isPasswordProtected,disabled:t.isPasswordEnforced},on:{"update:checked":function(e){t.isPasswordProtected=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Set password"))+"\n\t\t\t\t\t")]),t._v(" "),t.isPasswordProtected?e("NcPasswordField",{attrs:{autocomplete:"new-password",value:t.hasUnsavedPassword?t.share.newPassword:"",error:t.passwordError,"helper-text":t.errorPasswordLabel||t.passwordHint,required:t.isPasswordEnforced&&t.isNewShare,label:t.t("files_sharing","Password")},on:{"update:value":t.onPasswordChange}}):t._e(),t._v(" "),t.isEmailShareType&&t.passwordExpirationTime?e("span",{attrs:{icon:"icon-info"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Password expires {passwordExpirationTime}",{passwordExpirationTime:t.passwordExpirationTime}))+"\n\t\t\t\t\t")]):t.isEmailShareType&&null!==t.passwordExpirationTime?e("span",{attrs:{icon:"icon-error"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Password expired"))+"\n\t\t\t\t\t")]):t._e()]:t._e(),t._v(" "),t.canTogglePasswordProtectedByTalkAvailable?e("NcCheckboxRadioSwitch",{attrs:{checked:t.isPasswordProtectedByTalk},on:{"update:checked":[function(e){t.isPasswordProtectedByTalk=e},t.onPasswordProtectedByTalkChange]}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Video verification"))+"\n\t\t\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.hasExpirationDate,disabled:t.isExpiryDateEnforced},on:{"update:checked":function(e){t.hasExpirationDate=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.isExpiryDateEnforced?t.t("files_sharing","Expiration date (enforced)"):t.t("files_sharing","Set expiration date"))+"\n\t\t\t\t")]),t._v(" "),t.hasExpirationDate?e("NcDateTimePickerNative",{attrs:{id:"share-date-picker",value:new Date(t.share.expireDate??t.dateTomorrow),min:t.dateTomorrow,max:t.maxExpirationDateEnforced,"hide-label":"",label:t.t("files_sharing","Expiration date"),placeholder:t.t("files_sharing","Expiration date"),type:"date"},on:{input:t.onExpirationChange}}):t._e(),t._v(" "),t.isPublicShare?e("NcCheckboxRadioSwitch",{attrs:{disabled:t.canChangeHideDownload,checked:t.share.hideDownload},on:{"update:checked":[function(e){return t.$set(t.share,"hideDownload",e)},function(e){return t.queueUpdate("hideDownload")}]}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Hide download"))+"\n\t\t\t\t")]):e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetDownload,checked:t.canDownload,"data-cy-files-sharing-share-permissions-checkbox":"download"},on:{"update:checked":function(e){t.canDownload=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Allow download and sync"))+"\n\t\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.writeNoteToRecipientIsChecked},on:{"update:checked":function(e){t.writeNoteToRecipientIsChecked=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Note to recipient"))+"\n\t\t\t\t")]),t._v(" "),t.writeNoteToRecipientIsChecked?[e("NcTextArea",{attrs:{label:t.t("files_sharing","Note to recipient"),placeholder:t.t("files_sharing","Enter a note for the share recipient"),value:t.share.note},on:{"update:value":function(e){return t.$set(t.share,"note",e)}}})]:t._e(),t._v(" "),t.isPublicShare&&t.isFolder?e("NcCheckboxRadioSwitch",{attrs:{checked:t.showInGridView},on:{"update:checked":function(e){t.showInGridView=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Show files in grid view"))+"\n\t\t\t\t")]):t._e(),t._v(" "),t._l(t.externalLinkActions,(function(i){return e("ExternalShareAction",{key:i.id,ref:"externalLinkActions",refInFor:!0,attrs:{id:i.id,action:i,"file-info":t.fileInfo,share:t.share}})})),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{checked:t.setCustomPermissions},on:{"update:checked":function(e){t.setCustomPermissions=e}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("files_sharing","Custom permissions"))+"\n\t\t\t\t")]),t._v(" "),t.setCustomPermissions?e("section",{staticClass:"custom-permissions-group"},[e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canRemoveReadPermission,checked:t.hasRead,"data-cy-files-sharing-share-permissions-checkbox":"read"},on:{"update:checked":function(e){t.hasRead=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Read"))+"\n\t\t\t\t\t")]),t._v(" "),t.isFolder?e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetCreate,checked:t.canCreate,"data-cy-files-sharing-share-permissions-checkbox":"create"},on:{"update:checked":function(e){t.canCreate=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Create"))+"\n\t\t\t\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetEdit,checked:t.canEdit,"data-cy-files-sharing-share-permissions-checkbox":"update"},on:{"update:checked":function(e){t.canEdit=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Edit"))+"\n\t\t\t\t\t")]),t._v(" "),t.resharingIsPossible?e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetReshare,checked:t.canReshare,"data-cy-files-sharing-share-permissions-checkbox":"share"},on:{"update:checked":function(e){t.canReshare=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Share"))+"\n\t\t\t\t\t")]):t._e(),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{disabled:!t.canSetDelete,checked:t.canDelete,"data-cy-files-sharing-share-permissions-checkbox":"delete"},on:{"update:checked":function(e){t.canDelete=e}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Delete"))+"\n\t\t\t\t\t")])],1):t._e(),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__delete"},[t.isNewShare?t._e():e("NcButton",{attrs:{"aria-label":t.t("files_sharing","Delete share"),disabled:!1,readonly:!1,type:"tertiary"},on:{click:function(e){return e.preventDefault(),t.removeShare.apply(null,arguments)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("CloseIcon",{attrs:{size:16}})]},proxy:!0}],null,!1,2746485232)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("files_sharing","Delete share"))+"\n\t\t\t\t\t")])],1)],2)]):t._e()]),t._v(" "),e("div",{staticClass:"sharingTabDetailsView__footer"},[e("div",{staticClass:"button-group"},[e("NcButton",{attrs:{"data-cy-files-sharing-share-editor-action":"cancel"},on:{click:t.cancel}},[t._v("\n\t\t\t\t"+t._s(t.t("files_sharing","Cancel"))+"\n\t\t\t")]),t._v(" "),e("NcButton",{attrs:{type:"primary","data-cy-files-sharing-share-editor-action":"save"},on:{click:t.saveShare},scopedSlots:t._u([t.creating?{key:"icon",fn:function(){return[e("NcLoadingIcon")]},proxy:!0}:null],null,!0)},[t._v("\n\t\t\t\t"+t._s(t.shareButtonText)+"\n\t\t\t\t")])],1)])])}),[],!1,null,"c672ed08",null).exports,_i={name:"SharingTab",components:{CollectionList:at,InfoIcon:lt.A,NcAvatar:_.A,NcButton:ut.A,NcPopover:ct.N,SharingEntryInternal:kt,SharingEntrySimple:Et,SharingInherited:ee,SharingInput:Ut,SharingLinkList:qe,SharingList:Xe,SharingDetailsTab:bi},mixins:[Bt],data:()=>({config:new pt,deleteEvent:null,error:"",expirationInterval:null,loading:!0,fileInfo:null,reshare:null,sharedWithMe:{},shares:[],linkShares:[],sections:OCA.Sharing.ShareTabSections.getSections(),projectsEnabled:(0,a.C)("core","projects_enabled",!1),showSharingDetailsView:!1,shareDetailsData:{},returnFocusElement:null,internalSharesHelpText:t("files_sharing","Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access."),externalSharesHelpText:t("files_sharing","Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID."),additionalSharesHelpText:t("files_sharing","Shares that are not part of the internal or external shares. This can be shares from apps or other sources.")}),computed:{isSharedWithMe(){return Object.keys(this.sharedWithMe).length>0},canReshare(){return!!(this.fileInfo.permissions&OC.PERMISSION_SHARE)||!!(this.reshare&&this.reshare.hasSharePermission&&this.config.isResharingAllowed)}},methods:{async update(t){this.fileInfo=t,this.resetState(),this.getShares()},async getShares(){try{this.loading=!0;const t=(0,o.KT)("apps/files_sharing/api/v1/shares"),e="json",i=(this.fileInfo.path+"/"+this.fileInfo.name).replace("//","/"),n=Z.Ay.get(t,{params:{format:e,path:i,reshares:!0}}),r=Z.Ay.get(t,{params:{format:e,path:i,shared_with_me:!0}}),[s,a]=await Promise.all([n,r]);this.loading=!1,this.processSharedWithMe(a),this.processShares(s)}catch(e){this.error=e?.response?.data?.ocs?.meta?.message?e.response.data.ocs.meta.message:t("files_sharing","Unable to load the shares list"),this.loading=!1,console.error("Error loading the shares list",e)}},resetState(){clearInterval(this.expirationInterval),this.loading=!0,this.error="",this.sharedWithMe={},this.shares=[],this.linkShares=[],this.showSharingDetailsView=!1,this.shareDetailsData={}},updateExpirationSubtitle(e){const i=(0,ht.A)(e.expireDate).unix();this.$set(this.sharedWithMe,"subtitle",t("files_sharing","Expires {relativetime}",{relativetime:(0,ht.A)(1e3*i).fromNow()})),(0,ht.A)().unix()>i&&(clearInterval(this.expirationInterval),this.$set(this.sharedWithMe,"subtitle",t("files_sharing","this share just expired.")))},processShares(t){let{data:e}=t;if(e.ocs&&e.ocs.data&&e.ocs.data.length>0){const t=(0,s.My)(e.ocs.data.map((t=>new At(t))),[t=>t.shareWithDisplayName,t=>t.label,t=>t.createdTime]);this.linkShares=t.filter((t=>t.type===ot.I.Link||t.type===ot.I.Email)),this.shares=t.filter((t=>t.type!==ot.I.Link&&t.type!==ot.I.Email)),console.debug("Processed",this.linkShares.length,"link share(s)"),console.debug("Processed",this.shares.length,"share(s)")}},processSharedWithMe(e){let{data:i}=e;if(i.ocs&&i.ocs.data&&i.ocs.data[0]){const e=new At(i),n=function(e){return e.type===ot.I.Group?t("files_sharing","Shared with you and the group {group} by {owner}",{group:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):e.type===ot.I.Team?t("files_sharing","Shared with you and {circle} by {owner}",{circle:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):e.type===ot.I.Room?e.shareWithDisplayName?t("files_sharing","Shared with you and the conversation {conversation} by {owner}",{conversation:e.shareWithDisplayName,owner:e.ownerDisplayName},void 0,{escape:!1}):t("files_sharing","Shared with you in a conversation by {owner}",{owner:e.ownerDisplayName},void 0,{escape:!1}):t("files_sharing","Shared with you by {owner}",{owner:e.ownerDisplayName},void 0,{escape:!1})}(e),r=e.ownerDisplayName,s=e.owner;this.sharedWithMe={displayName:r,title:n,user:s},this.reshare=e,e.expireDate&&(0,ht.A)(e.expireDate).unix()>(0,ht.A)().unix()&&(this.updateExpirationSubtitle(e),this.expirationInterval=setInterval(this.updateExpirationSubtitle,1e4,e))}else this.fileInfo&&void 0!==this.fileInfo.shareOwnerId&&this.fileInfo.shareOwnerId!==(0,r.HW)().uid&&(this.sharedWithMe={displayName:this.fileInfo.shareOwner,title:t("files_sharing","Shared with you by {owner}",{owner:this.fileInfo.shareOwner},void 0,{escape:!1}),user:this.fileInfo.shareOwnerId})},addShare(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>{};t.type===ot.I.Email?this.linkShares.unshift(t):this.shares.unshift(t),this.awaitForShare(t,e)},removeShare(t){const e=t.type===ot.I.Email||t.type===ot.I.Link?this.linkShares:this.shares,i=e.findIndex((e=>e.id===t.id));-1!==i&&e.splice(i,1)},awaitForShare(t,e){this.$nextTick((()=>{let i=this.$refs.shareList;t.type===ot.I.Email&&(i=this.$refs.linkShareList);const n=i.$children.find((e=>e.share===t));n&&e(n)}))},toggleShareDetailsView(t){if(!this.showSharingDetailsView)if(Array.from(document.activeElement.classList).some((t=>t.startsWith("action-")))){const t=document.activeElement.closest('[role="menu"]')?.id;this.returnFocusElement=document.querySelector(`[aria-controls="${t}"]`)}else this.returnFocusElement=document.activeElement;t&&(this.shareDetailsData=t),this.showSharingDetailsView=!this.showSharingDetailsView,this.showSharingDetailsView||this.$nextTick((()=>{this.returnFocusElement?.focus(),this.returnFocusElement=null}))}}},Ei=_i;var xi=n(86761),Si={};Si.styleTagTransform=y(),Si.setAttributes=g(),Si.insert=p().bind(null,"head"),Si.domAPI=u(),Si.insertStyleElement=m(),c()(xi.A,Si),xi.A&&xi.A.locals&&xi.A.locals;const Ii=(0,_t.A)(Ei,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"sharingTab",class:{"icon-loading":t.loading}},[t.error?e("div",{staticClass:"emptycontent",class:{emptyContentWithSections:t.sections.length>0}},[e("div",{staticClass:"icon icon-error"}),t._v(" "),e("h2",[t._v(t._s(t.error))])]):t._e(),t._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:!t.showSharingDetailsView,expression:"!showSharingDetailsView"}],staticClass:"sharingTab__content"},[t.isSharedWithMe?e("ul",[e("SharingEntrySimple",t._b({staticClass:"sharing-entry__reshare",scopedSlots:t._u([{key:"avatar",fn:function(){return[e("NcAvatar",{staticClass:"sharing-entry__avatar",attrs:{user:t.sharedWithMe.user,"display-name":t.sharedWithMe.displayName}})]},proxy:!0}],null,!1,3197855346)},"SharingEntrySimple",t.sharedWithMe,!1))],1):t._e(),t._v(" "),e("section",[e("div",{staticClass:"section-header"},[e("h4",[t._v(t._s(t.t("files_sharing","Internal shares")))]),t._v(" "),e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary-no-background","aria-label":t.t("files_sharing","Internal shares explanation")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("InfoIcon",{attrs:{size:20}})]},proxy:!0}])})]},proxy:!0}])},[t._v(" "),e("p",{staticClass:"hint-body"},[t._v("\n\t\t\t\t\t\t"+t._s(t.internalSharesHelpText)+"\n\t\t\t\t\t")])])],1),t._v(" "),t.loading?t._e():e("SharingInput",{attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,"link-shares":t.linkShares,reshare:t.reshare,shares:t.shares,placeholder:t.t("files_sharing","Share with accounts and teams")},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.loading?t._e():e("SharingList",{ref:"shareList",attrs:{shares:t.shares,"file-info":t.fileInfo},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.canReshare&&!t.loading?e("SharingInherited",{attrs:{"file-info":t.fileInfo}}):t._e(),t._v(" "),e("SharingEntryInternal",{attrs:{"file-info":t.fileInfo}})],1),t._v(" "),e("section",[e("div",{staticClass:"section-header"},[e("h4",[t._v(t._s(t.t("files_sharing","External shares")))]),t._v(" "),e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary-no-background","aria-label":t.t("files_sharing","External shares explanation")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("InfoIcon",{attrs:{size:20}})]},proxy:!0}])})]},proxy:!0}])},[t._v(" "),e("p",{staticClass:"hint-body"},[t._v("\n\t\t\t\t\t\t"+t._s(t.externalSharesHelpText)+"\n\t\t\t\t\t")])])],1),t._v(" "),t.loading?t._e():e("SharingInput",{attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,"link-shares":t.linkShares,"is-external":!0,placeholder:t.t("files_sharing","Email, federated cloud id"),reshare:t.reshare,shares:t.shares},on:{"open-sharing-details":t.toggleShareDetailsView}}),t._v(" "),t.loading?t._e():e("SharingLinkList",{ref:"linkShareList",attrs:{"can-reshare":t.canReshare,"file-info":t.fileInfo,shares:t.linkShares},on:{"open-sharing-details":t.toggleShareDetailsView}})],1),t._v(" "),t.sections.length>0&&!t.showSharingDetailsView?e("section",[e("div",{staticClass:"section-header"},[e("h4",[t._v(t._s(t.t("files_sharing","Additional shares")))]),t._v(" "),e("NcPopover",{attrs:{"popup-role":"dialog"},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("NcButton",{staticClass:"hint-icon",attrs:{type:"tertiary-no-background","aria-label":t.t("files_sharing","Additional shares explanation")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("InfoIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,915383693)})]},proxy:!0}],null,!1,1027936137)},[t._v(" "),e("p",{staticClass:"hint-body"},[t._v("\n\t\t\t\t\t\t"+t._s(t.additionalSharesHelpText)+"\n\t\t\t\t\t")])])],1),t._v(" "),t._l(t.sections,(function(i,n){return e("div",{key:n,ref:"section-"+n,refInFor:!0,staticClass:"sharingTab__additionalContent"},[e(i(t.$refs["section-"+n],t.fileInfo),{tag:"component",attrs:{"file-info":t.fileInfo}})],1)})),t._v(" "),t.projectsEnabled?e("div",{directives:[{name:"show",rawName:"v-show",value:!t.showSharingDetailsView&&t.fileInfo,expression:"!showSharingDetailsView && fileInfo"}],staticClass:"sharingTab__additionalContent"},[e("CollectionList",{attrs:{id:`${t.fileInfo.id}`,type:"file",name:t.fileInfo.name}})],1):t._e()],2):t._e()]),t._v(" "),t.showSharingDetailsView?e("SharingDetailsTab",{attrs:{"file-info":t.shareDetailsData.fileInfo,share:t.shareDetailsData.share},on:{"close-sharing-details":t.toggleShareDetailsView,"add:share":t.addShare,"remove:share":t.removeShare}}):t._e()],1)}),[],!1,null,"15a4df38",null).exports},27518:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e"},27514:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e"},79722:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e"},86886:t=>{"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e"},35810:(t,e,i)=>{"use strict";i.d(e,{Al:()=>n.r,H4:()=>n.c,My:()=>u,Q$:()=>n.e,R3:()=>n.n,VL:()=>n.l,lJ:()=>n.d,pt:()=>n.F,ur:()=>d,v7:()=>c});var n=i(68251),r=(i(43627),i(53334)),s=i(380),a=i(65606);Error;const o=["B","KB","MB","GB","TB","PB"],l=["B","KiB","MiB","GiB","TiB","PiB"];function c(t,e=!1,i=!1,n=!1){i=i&&!n,"string"==typeof t&&(t=Number(t));let s=t>0?Math.floor(Math.log(t)/Math.log(n?1e3:1024)):0;s=Math.min((i?l.length:o.length)-1,s);const a=i?l[s]:o[s];let c=(t/Math.pow(n?1e3:1024,s)).toFixed(1);return!0===e&&0===s?("0.0"!==c?"< 1 ":"0 ")+(i?l[1]:o[1]):(c=s<2?parseFloat(c).toFixed(0):parseFloat(c).toLocaleString((0,r.lO)()),c+" "+a)}function h(t){return t instanceof Date?t.toISOString():String(t)}function u(t,e,i){i=i??[];const n=(e=e??[t=>t]).map(((t,e)=>"asc"===(i[e]??"asc")?1:-1)),s=Intl.Collator([(0,r.Z0)(),(0,r.lO)()],{numeric:!0,usage:"sort"});return[...t].sort(((t,i)=>{for(const[r,a]of e.entries()){const e=s.compare(h(a(t)),h(a(i)));if(0!==e)return e*n[r]}return 0}))}function d(t,e={}){const i={sortingMode:"basename",sortingOrder:"asc",...e};return u(t,[...i.sortFavoritesFirst?[t=>1!==t.attributes?.favorite]:[],...i.sortFoldersFirst?[t=>"folder"!==t.type]:[],..."basename"!==i.sortingMode?[t=>t[i.sortingMode]]:[],t=>{return(e=t.displayname||t.attributes?.displayname||t.basename).lastIndexOf(".")>0?e.slice(0,e.lastIndexOf(".")):e;var e},t=>t.basename],[...i.sortFavoritesFirst?["asc"]:[],...i.sortFoldersFirst?["asc"]:[],..."mtime"===i.sortingMode?["asc"===i.sortingOrder?"desc":"asc"]:[],..."mtime"!==i.sortingMode&&"basename"!==i.sortingMode?[i.sortingOrder]:[],i.sortingOrder,i.sortingOrder])}var p,f,g={},A={};function m(){return p||(p=1,function(t){const e=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",i="["+e+"]["+e+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",n=new RegExp("^"+i+"$");t.isExist=function(t){return void 0!==t},t.isEmptyObject=function(t){return 0===Object.keys(t).length},t.merge=function(t,e,i){if(e){const n=Object.keys(e),r=n.length;for(let s=0;s<r;s++)t[n[s]]="strict"===i?[e[n[s]]]:e[n[s]]}},t.getValue=function(e){return t.isExist(e)?e:""},t.isName=function(t){return!(null==n.exec(t))},t.getAllMatches=function(t,e){const i=[];let n=e.exec(t);for(;n;){const r=[];r.startIndex=e.lastIndex-n[0].length;const s=n.length;for(let t=0;t<s;t++)r.push(n[t]);i.push(r),n=e.exec(t)}return i},t.nameRegexp=i}(A)),A}function v(){if(f)return g;f=1;const t=m(),e={allowBooleanAttributes:!1,unpairedTags:[]};function i(t){return" "===t||"\t"===t||"\n"===t||"\r"===t}function n(t,e){const i=e;for(;e<t.length;e++)if("?"!=t[e]&&" "!=t[e]);else{const n=t.substr(i,e-i);if(e>5&&"xml"===n)return u("InvalidXml","XML declaration allowed only at the start of the document.",p(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}}return e}function r(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e<t.length;e++)if("-"===t[e]&&"-"===t[e+1]&&">"===t[e+2]){e+=2;break}}else if(t.length>e+8&&"D"===t[e+1]&&"O"===t[e+2]&&"C"===t[e+3]&&"T"===t[e+4]&&"Y"===t[e+5]&&"P"===t[e+6]&&"E"===t[e+7]){let i=1;for(e+=8;e<t.length;e++)if("<"===t[e])i++;else if(">"===t[e]&&(i--,0===i))break}else if(t.length>e+9&&"["===t[e+1]&&"C"===t[e+2]&&"D"===t[e+3]&&"A"===t[e+4]&&"T"===t[e+5]&&"A"===t[e+6]&&"["===t[e+7])for(e+=8;e<t.length;e++)if("]"===t[e]&&"]"===t[e+1]&&">"===t[e+2]){e+=2;break}return e}g.validate=function(s,a){a=Object.assign({},e,a);const l=[];let d=!1,f=!1;"\ufeff"===s[0]&&(s=s.substr(1));for(let e=0;e<s.length;e++)if("<"===s[e]&&"?"===s[e+1]){if(e+=2,e=n(s,e),e.err)return e}else{if("<"!==s[e]){if(i(s[e]))continue;return u("InvalidChar","char '"+s[e]+"' is not expected.",p(s,e))}{let A=e;if(e++,"!"===s[e]){e=r(s,e);continue}{let m=!1;"/"===s[e]&&(m=!0,e++);let v="";for(;e<s.length&&">"!==s[e]&&" "!==s[e]&&"\t"!==s[e]&&"\n"!==s[e]&&"\r"!==s[e];e++)v+=s[e];if(v=v.trim(),"/"===v[v.length-1]&&(v=v.substring(0,v.length-1),e--),g=v,!t.isName(g)){let t;return t=0===v.trim().length?"Invalid space after '<'.":"Tag '"+v+"' is an invalid name.",u("InvalidTag",t,p(s,e))}const y=o(s,e);if(!1===y)return u("InvalidAttr","Attributes for '"+v+"' have open quote.",p(s,e));let w=y.value;if(e=y.index,"/"===w[w.length-1]){const t=e-w.length;w=w.substring(0,w.length-1);const i=c(w,a);if(!0!==i)return u(i.err.code,i.err.msg,p(s,t+i.err.line));d=!0}else if(m){if(!y.tagClosed)return u("InvalidTag","Closing tag '"+v+"' doesn't have proper closing.",p(s,e));if(w.trim().length>0)return u("InvalidTag","Closing tag '"+v+"' can't have attributes or invalid starting.",p(s,A));if(0===l.length)return u("InvalidTag","Closing tag '"+v+"' has not been opened.",p(s,A));{const t=l.pop();if(v!==t.tagName){let e=p(s,t.tagStartPos);return u("InvalidTag","Expected closing tag '"+t.tagName+"' (opened in line "+e.line+", col "+e.col+") instead of closing tag '"+v+"'.",p(s,A))}0==l.length&&(f=!0)}}else{const t=c(w,a);if(!0!==t)return u(t.err.code,t.err.msg,p(s,e-w.length+t.err.line));if(!0===f)return u("InvalidXml","Multiple possible root nodes found.",p(s,e));-1!==a.unpairedTags.indexOf(v)||l.push({tagName:v,tagStartPos:A}),d=!0}for(e++;e<s.length;e++)if("<"===s[e]){if("!"===s[e+1]){e++,e=r(s,e);continue}if("?"!==s[e+1])break;if(e=n(s,++e),e.err)return e}else if("&"===s[e]){const t=h(s,e);if(-1==t)return u("InvalidChar","char '&' is not expected.",p(s,e));e=t}else if(!0===f&&!i(s[e]))return u("InvalidXml","Extra text at the end",p(s,e));"<"===s[e]&&e--}}}var g;return d?1==l.length?u("InvalidTag","Unclosed tag '"+l[0].tagName+"'.",p(s,l[0].tagStartPos)):!(l.length>0)||u("InvalidXml","Invalid '"+JSON.stringify(l.map((t=>t.tagName)),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):u("InvalidXml","Start tag expected.",1)};const s='"',a="'";function o(t,e){let i="",n="",r=!1;for(;e<t.length;e++){if(t[e]===s||t[e]===a)""===n?n=t[e]:n!==t[e]||(n="");else if(">"===t[e]&&""===n){r=!0;break}i+=t[e]}return""===n&&{value:i,index:e,tagClosed:r}}const l=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function c(e,i){const n=t.getAllMatches(e,l),r={};for(let t=0;t<n.length;t++){if(0===n[t][1].length)return u("InvalidAttr","Attribute '"+n[t][2]+"' has no space in starting.",A(n[t]));if(void 0!==n[t][3]&&void 0===n[t][4])return u("InvalidAttr","Attribute '"+n[t][2]+"' is without value.",A(n[t]));if(void 0===n[t][3]&&!i.allowBooleanAttributes)return u("InvalidAttr","boolean attribute '"+n[t][2]+"' is not allowed.",A(n[t]));const e=n[t][2];if(!d(e))return u("InvalidAttr","Attribute '"+e+"' is an invalid name.",A(n[t]));if(r.hasOwnProperty(e))return u("InvalidAttr","Attribute '"+e+"' is repeated.",A(n[t]));r[e]=1}return!0}function h(t,e){if(";"===t[++e])return-1;if("#"===t[e])return function(t,e){let i=/\d/;for("x"===t[e]&&(e++,i=/[\da-fA-F]/);e<t.length;e++){if(";"===t[e])return e;if(!t[e].match(i))break}return-1}(t,++e);let i=0;for(;e<t.length;e++,i++)if(!(t[e].match(/\w/)&&i<20)){if(";"===t[e])break;return-1}return e}function u(t,e,i){return{err:{code:t,msg:e,line:i.line||i,col:i.col}}}function d(e){return t.isName(e)}function p(t,e){const i=t.substring(0,e).split(/\r?\n/);return{line:i.length,col:i[i.length-1].length+1}}function A(t){return t.startIndex+t[1].length}return g}var y,w,C,b,_,E,x,S,I,k,T,N={};function D(){return I?S:(I=1,S=function(t){return"function"==typeof t?t:Array.isArray(t)?e=>{for(const i of t){if("string"==typeof i&&e===i)return!0;if(i instanceof RegExp&&i.test(e))return!0}}:()=>!1})}var P,R,B,L,O,M,U,$,F,V,j,q,z,H={};function G(){if(P)return H;function t(r,s,a){let o;const l={};for(let c=0;c<r.length;c++){const h=r[c],u=e(h);let d="";if(d=void 0===a?u:a+"."+u,u===s.textNodeName)void 0===o?o=h[u]:o+=""+h[u];else{if(void 0===u)continue;if(h[u]){let e=t(h[u],s,d);const r=n(e,s);h[":@"]?i(e,h[":@"],d,s):1!==Object.keys(e).length||void 0===e[s.textNodeName]||s.alwaysCreateTextNode?0===Object.keys(e).length&&(s.alwaysCreateTextNode?e[s.textNodeName]="":e=""):e=e[s.textNodeName],void 0!==l[u]&&l.hasOwnProperty(u)?(Array.isArray(l[u])||(l[u]=[l[u]]),l[u].push(e)):s.isArray(u,d,r)?l[u]=[e]:l[u]=e}}}return"string"==typeof o?o.length>0&&(l[s.textNodeName]=o):void 0!==o&&(l[s.textNodeName]=o),l}function e(t){const e=Object.keys(t);for(let t=0;t<e.length;t++){const i=e[t];if(":@"!==i)return i}}function i(t,e,i,n){if(e){const r=Object.keys(e),s=r.length;for(let a=0;a<s;a++){const s=r[a];n.isArray(s,i+"."+s,!0,!0)?t[s]=[e[s]]:t[s]=e[s]}}}function n(t,e){const{textNodeName:i}=e,n=Object.keys(t).length;return 0===n||!(1!==n||!t[i]&&"boolean"!=typeof t[i]&&0!==t[i])}return P=1,H.prettify=function(e,i){return t(e,i)},H}function Y(){if(B)return R;B=1;const{buildOptions:t}=function(){if(y)return N;y=1;const t={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,i){return t}};return N.buildOptions=function(e){return Object.assign({},t,e)},N.defaultOptions=t,N}(),e=function(){if(T)return k;T=1;const t=m(),e=C?w:(C=1,w=class{constructor(t){this.tagname=t,this.child=[],this[":@"]={}}add(t,e){"__proto__"===t&&(t="#__proto__"),this.child.push({[t]:e})}addChild(t){"__proto__"===t.tagname&&(t.tagname="#__proto__"),t[":@"]&&Object.keys(t[":@"]).length>0?this.child.push({[t.tagname]:t.child,":@":t[":@"]}):this.child.push({[t.tagname]:t.child})}}),i=function(){if(_)return b;_=1;const t=m();function e(t,e){let i="";for(;e<t.length&&"'"!==t[e]&&'"'!==t[e];e++)i+=t[e];if(i=i.trim(),-1!==i.indexOf(" "))throw new Error("External entites are not supported");const n=t[e++];let r="";for(;e<t.length&&t[e]!==n;e++)r+=t[e];return[i,r,e]}function i(t,e){return"!"===t[e+1]&&"E"===t[e+2]&&"N"===t[e+3]&&"T"===t[e+4]&&"I"===t[e+5]&&"T"===t[e+6]&&"Y"===t[e+7]}function n(t,e){return"!"===t[e+1]&&"E"===t[e+2]&&"L"===t[e+3]&&"E"===t[e+4]&&"M"===t[e+5]&&"E"===t[e+6]&&"N"===t[e+7]&&"T"===t[e+8]}function r(t,e){return"!"===t[e+1]&&"A"===t[e+2]&&"T"===t[e+3]&&"T"===t[e+4]&&"L"===t[e+5]&&"I"===t[e+6]&&"S"===t[e+7]&&"T"===t[e+8]}function s(t,e){return"!"===t[e+1]&&"N"===t[e+2]&&"O"===t[e+3]&&"T"===t[e+4]&&"A"===t[e+5]&&"T"===t[e+6]&&"I"===t[e+7]&&"O"===t[e+8]&&"N"===t[e+9]}function a(e){if(t.isName(e))return e;throw new Error(`Invalid entity name ${e}`)}return b=function(t,o){const l={};if("O"!==t[o+3]||"C"!==t[o+4]||"T"!==t[o+5]||"Y"!==t[o+6]||"P"!==t[o+7]||"E"!==t[o+8])throw new Error("Invalid Tag instead of DOCTYPE");{o+=9;let c=1,h=!1,u=!1,d="";for(;o<t.length;o++)if("<"!==t[o]||u)if(">"===t[o]){if(u?"-"===t[o-1]&&"-"===t[o-2]&&(u=!1,c--):c--,0===c)break}else"["===t[o]?h=!0:d+=t[o];else{if(h&&i(t,o)){let i,n;o+=7,[i,n,o]=e(t,o+1),-1===n.indexOf("&")&&(l[a(i)]={regx:RegExp(`&${i};`,"g"),val:n})}else h&&n(t,o)||h&&r(t,o)?o+=8:h&&s(t,o)?o+=9:u=!0;c++,d=""}if(0!==c)throw new Error("Unclosed DOCTYPE")}return{entities:l,i:o}}}(),n=function(){if(x)return E;x=1;const t=/^[-+]?0x[a-fA-F0-9]+$/,e=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const i={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};return E=function(n,r={}){if(r=Object.assign({},i,r),!n||"string"!=typeof n)return n;let s=n.trim();if(void 0!==r.skipLike&&r.skipLike.test(s))return n;if(r.hex&&t.test(s))return Number.parseInt(s,16);{const t=e.exec(s);if(t){const e=t[1],i=t[2];let o=(a=t[3])&&-1!==a.indexOf(".")?("."===(a=a.replace(/0+$/,""))?a="0":"."===a[0]?a="0"+a:"."===a[a.length-1]&&(a=a.substr(0,a.length-1)),a):a;const l=t[4]||t[6];if(!r.leadingZeros&&i.length>0&&e&&"."!==s[2])return n;if(!r.leadingZeros&&i.length>0&&!e&&"."!==s[1])return n;{const t=Number(s),a=""+t;return-1!==a.search(/[eE]/)||l?r.eNotation?t:n:-1!==s.indexOf(".")?"0"===a&&""===o||a===o||e&&a==="-"+o?t:n:i?o===a||e+o===a?t:n:s===a||s===e+a?t:n}}return n}var a}}(),r=D();function s(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const n=e[i];this.lastEntities[n]={regex:new RegExp("&"+n+";","g"),val:t[n]}}}function a(t,e,i,n,r,s,a){if(void 0!==t&&(this.options.trimValues&&!n&&(t=t.trim()),t.length>0)){a||(t=this.replaceEntitiesValue(t));const n=this.options.tagValueProcessor(e,t,i,r,s);return null==n?t:typeof n!=typeof t||n!==t?n:this.options.trimValues||t.trim()===t?y(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function o(t){if(this.options.removeNSPrefix){const e=t.split(":"),i="/"===t.charAt(0)?"/":"";if("xmlns"===e[0])return"";2===e.length&&(t=i+e[1])}return t}const l=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function c(e,i,n){if(!0!==this.options.ignoreAttributes&&"string"==typeof e){const n=t.getAllMatches(e,l),r=n.length,s={};for(let t=0;t<r;t++){const e=this.resolveNameSpace(n[t][1]);if(this.ignoreAttributesFn(e,i))continue;let r=n[t][4],a=this.options.attributeNamePrefix+e;if(e.length)if(this.options.transformAttributeName&&(a=this.options.transformAttributeName(a)),"__proto__"===a&&(a="#__proto__"),void 0!==r){this.options.trimValues&&(r=r.trim()),r=this.replaceEntitiesValue(r);const t=this.options.attributeValueProcessor(e,r,i);s[a]=null==t?r:typeof t!=typeof r||t!==r?t:y(r,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(s[a]=!0)}if(!Object.keys(s).length)return;if(this.options.attributesGroupName){const t={};return t[this.options.attributesGroupName]=s,t}return s}}const h=function(t){t=t.replace(/\r\n?/g,"\n");const n=new e("!xml");let r=n,s="",a="";for(let o=0;o<t.length;o++)if("<"===t[o])if("/"===t[o+1]){const e=g(t,">",o,"Closing Tag is not closed.");let i=t.substring(o+2,e).trim();if(this.options.removeNSPrefix){const t=i.indexOf(":");-1!==t&&(i=i.substr(t+1))}this.options.transformTagName&&(i=this.options.transformTagName(i)),r&&(s=this.saveTextToParentTag(s,r,a));const n=a.substring(a.lastIndexOf(".")+1);if(i&&-1!==this.options.unpairedTags.indexOf(i))throw new Error(`Unpaired tag can not be used as closing tag: </${i}>`);let l=0;n&&-1!==this.options.unpairedTags.indexOf(n)?(l=a.lastIndexOf(".",a.lastIndexOf(".")-1),this.tagsNodeStack.pop()):l=a.lastIndexOf("."),a=a.substring(0,l),r=this.tagsNodeStack.pop(),s="",o=e}else if("?"===t[o+1]){let i=A(t,o,!1,"?>");if(!i)throw new Error("Pi Tag is not closed.");if(s=this.saveTextToParentTag(s,r,a),this.options.ignoreDeclaration&&"?xml"===i.tagName||this.options.ignorePiTags);else{const t=new e(i.tagName);t.add(this.options.textNodeName,""),i.tagName!==i.tagExp&&i.attrExpPresent&&(t[":@"]=this.buildAttributesMap(i.tagExp,a,i.tagName)),this.addChild(r,t,a)}o=i.closeIndex+1}else if("!--"===t.substr(o+1,3)){const e=g(t,"--\x3e",o+4,"Comment is not closed.");if(this.options.commentPropName){const i=t.substring(o+4,e-2);s=this.saveTextToParentTag(s,r,a),r.add(this.options.commentPropName,[{[this.options.textNodeName]:i}])}o=e}else if("!D"===t.substr(o+1,2)){const e=i(t,o);this.docTypeEntities=e.entities,o=e.i}else if("!["===t.substr(o+1,2)){const e=g(t,"]]>",o,"CDATA is not closed.")-2,i=t.substring(o+9,e);s=this.saveTextToParentTag(s,r,a);let n=this.parseTextData(i,r.tagname,a,!0,!1,!0,!0);null==n&&(n=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[{[this.options.textNodeName]:i}]):r.add(this.options.textNodeName,n),o=e+2}else{let i=A(t,o,this.options.removeNSPrefix),l=i.tagName;const c=i.rawTagName;let h=i.tagExp,u=i.attrExpPresent,d=i.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),r&&s&&"!xml"!==r.tagname&&(s=this.saveTextToParentTag(s,r,a,!1));const p=r;if(p&&-1!==this.options.unpairedTags.indexOf(p.tagname)&&(r=this.tagsNodeStack.pop(),a=a.substring(0,a.lastIndexOf("."))),l!==n.tagname&&(a+=a?"."+l:l),this.isItStopNode(this.options.stopNodes,a,l)){let n="";if(h.length>0&&h.lastIndexOf("/")===h.length-1)"/"===l[l.length-1]?(l=l.substr(0,l.length-1),a=a.substr(0,a.length-1),h=l):h=h.substr(0,h.length-1),o=i.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(l))o=i.closeIndex;else{const e=this.readStopNodeData(t,c,d+1);if(!e)throw new Error(`Unexpected end of ${c}`);o=e.i,n=e.tagContent}const s=new e(l);l!==h&&u&&(s[":@"]=this.buildAttributesMap(h,a,l)),n&&(n=this.parseTextData(n,l,a,!0,u,!0,!0)),a=a.substr(0,a.lastIndexOf(".")),s.add(this.options.textNodeName,n),this.addChild(r,s,a)}else{if(h.length>0&&h.lastIndexOf("/")===h.length-1){"/"===l[l.length-1]?(l=l.substr(0,l.length-1),a=a.substr(0,a.length-1),h=l):h=h.substr(0,h.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));const t=new e(l);l!==h&&u&&(t[":@"]=this.buildAttributesMap(h,a,l)),this.addChild(r,t,a),a=a.substr(0,a.lastIndexOf("."))}else{const t=new e(l);this.tagsNodeStack.push(r),l!==h&&u&&(t[":@"]=this.buildAttributesMap(h,a,l)),this.addChild(r,t,a),r=t}s="",o=d}}else s+=t[o];return n.child};function u(t,e,i){const n=this.options.updateTag(e.tagname,i,e[":@"]);!1===n||("string"==typeof n?(e.tagname=n,t.addChild(e)):t.addChild(e))}const d=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const i=this.docTypeEntities[e];t=t.replace(i.regx,i.val)}for(let e in this.lastEntities){const i=this.lastEntities[e];t=t.replace(i.regex,i.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const i=this.htmlEntities[e];t=t.replace(i.regex,i.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function p(t,e,i,n){return t&&(void 0===n&&(n=0===Object.keys(e.child).length),void 0!==(t=this.parseTextData(t,e.tagname,i,!1,!!e[":@"]&&0!==Object.keys(e[":@"]).length,n))&&""!==t&&e.add(this.options.textNodeName,t),t=""),t}function f(t,e,i){const n="*."+i;for(const i in t){const r=t[i];if(n===r||e===r)return!0}return!1}function g(t,e,i,n){const r=t.indexOf(e,i);if(-1===r)throw new Error(n);return r+e.length-1}function A(t,e,i,n=">"){const r=function(t,e,i=">"){let n,r="";for(let s=e;s<t.length;s++){let e=t[s];if(n)e===n&&(n="");else if('"'===e||"'"===e)n=e;else if(e===i[0]){if(!i[1])return{data:r,index:s};if(t[s+1]===i[1])return{data:r,index:s}}else"\t"===e&&(e=" ");r+=e}}(t,e+1,n);if(!r)return;let s=r.data;const a=r.index,o=s.search(/\s/);let l=s,c=!0;-1!==o&&(l=s.substring(0,o),s=s.substring(o+1).trimStart());const h=l;if(i){const t=l.indexOf(":");-1!==t&&(l=l.substr(t+1),c=l!==r.data.substr(t+1))}return{tagName:l,tagExp:s,closeIndex:a,attrExpPresent:c,rawTagName:h}}function v(t,e,i){const n=i;let r=1;for(;i<t.length;i++)if("<"===t[i])if("/"===t[i+1]){const s=g(t,">",i,`${e} is not closed`);if(t.substring(i+2,s).trim()===e&&(r--,0===r))return{tagContent:t.substring(n,i),i:s};i=s}else if("?"===t[i+1])i=g(t,"?>",i+1,"StopNode is not closed.");else if("!--"===t.substr(i+1,3))i=g(t,"--\x3e",i+3,"StopNode is not closed.");else if("!["===t.substr(i+1,2))i=g(t,"]]>",i,"StopNode is not closed.")-2;else{const n=A(t,i,">");n&&((n&&n.tagName)===e&&"/"!==n.tagExp[n.tagExp.length-1]&&r++,i=n.closeIndex)}}function y(e,i,r){if(i&&"string"==typeof e){const t=e.trim();return"true"===t||"false"!==t&&n(e,r)}return t.isExist(e)?e:""}return k=class{constructor(t){this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>String.fromCharCode(Number.parseInt(e,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>String.fromCharCode(Number.parseInt(e,16))}},this.addExternalEntities=s,this.parseXml=h,this.parseTextData=a,this.resolveNameSpace=o,this.buildAttributesMap=c,this.isItStopNode=f,this.replaceEntitiesValue=d,this.readStopNodeData=v,this.saveTextToParentTag=p,this.addChild=u,this.ignoreAttributesFn=r(this.options.ignoreAttributes)}}}(),{prettify:i}=G(),n=v();return R=class{constructor(e){this.externalEntities={},this.options=t(e)}parse(t,r){if("string"==typeof t);else{if(!t.toString)throw new Error("XML data is accepted in String or Bytes[] form.");t=t.toString()}if(r){!0===r&&(r={});const e=n.validate(t,r);if(!0!==e)throw Error(`${e.err.msg}:${e.err.line}:${e.err.col}`)}const s=new e(this.options);s.addExternalEntities(this.externalEntities);const a=s.parseXml(t);return this.options.preserveOrder||void 0===a?a:i(a,this.options)}addEntity(t,e){if(-1!==e.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==t.indexOf("&")||-1!==t.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'");if("&"===e)throw new Error("An entity with value '&' is not permitted");this.externalEntities[t]=e}}}function W(){if(O)return L;function t(s,a,o,l){let c="",h=!1;for(let u=0;u<s.length;u++){const d=s[u],p=e(d);if(void 0===p)continue;let f="";if(f=0===o.length?p:`${o}.${p}`,p===a.textNodeName){let t=d[p];n(f,a)||(t=a.tagValueProcessor(p,t),t=r(t,a)),h&&(c+=l),c+=t,h=!1;continue}if(p===a.cdataPropName){h&&(c+=l),c+=`<![CDATA[${d[p][0][a.textNodeName]}]]>`,h=!1;continue}if(p===a.commentPropName){c+=l+`\x3c!--${d[p][0][a.textNodeName]}--\x3e`,h=!0;continue}if("?"===p[0]){const t=i(d[":@"],a),e="?xml"===p?"":l;let n=d[p][0][a.textNodeName];n=0!==n.length?" "+n:"",c+=e+`<${p}${n}${t}?>`,h=!0;continue}let g=l;""!==g&&(g+=a.indentBy);const A=l+`<${p}${i(d[":@"],a)}`,m=t(d[p],a,f,g);-1!==a.unpairedTags.indexOf(p)?a.suppressUnpairedNode?c+=A+">":c+=A+"/>":m&&0!==m.length||!a.suppressEmptyNode?m&&m.endsWith(">")?c+=A+`>${m}${l}</${p}>`:(c+=A+">",m&&""!==l&&(m.includes("/>")||m.includes("</"))?c+=l+a.indentBy+m+l:c+=m,c+=`</${p}>`):c+=A+"/>",h=!0}return c}function e(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const n=e[i];if(t.hasOwnProperty(n)&&":@"!==n)return n}}function i(t,e){let i="";if(t&&!e.ignoreAttributes)for(let n in t){if(!t.hasOwnProperty(n))continue;let s=e.attributeValueProcessor(n,t[n]);s=r(s,e),!0===s&&e.suppressBooleanAttributes?i+=` ${n.substr(e.attributeNamePrefix.length)}`:i+=` ${n.substr(e.attributeNamePrefix.length)}="${s}"`}return i}function n(t,e){let i=(t=t.substr(0,t.length-e.textNodeName.length-1)).substr(t.lastIndexOf(".")+1);for(let n in e.stopNodes)if(e.stopNodes[n]===t||e.stopNodes[n]==="*."+i)return!0;return!1}function r(t,e){if(t&&t.length>0&&e.processEntities)for(let i=0;i<e.entities.length;i++){const n=e.entities[i];t=t.replace(n.regex,n.val)}return t}return O=1,L=function(e,i){let n="";return i.format&&i.indentBy.length>0&&(n="\n"),t(e,i,"",n)}}function X(){if(j)return V;j=1;const t="object"==typeof a&&a.env&&a.env.NODE_DEBUG&&/\bsemver\b/i.test(a.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};return V=t}function Q(){if(z)return q;z=1;const t=Number.MAX_SAFE_INTEGER||9007199254740991;return q={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:t,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}}!function(){if(F)return $;F=1;const t=v(),e=Y(),i=function(){if(U)return M;U=1;const t=W(),e=D(),i={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function n(t){this.options=Object.assign({},i,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=e(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=a),this.processTextOrObjNode=r,this.options.format?(this.indentate=s,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function r(t,e,i,n){const r=this.j2x(t,i+1,n.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,r.attrStr,i):this.buildObjectNode(r.val,e,r.attrStr,i)}function s(t){return this.options.indentBy.repeat(t)}function a(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}return n.prototype.build=function(e){return this.options.preserveOrder?t(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0,[]).val)},n.prototype.j2x=function(t,e,i){let n="",r="";const s=i.join(".");for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(r+="");else if(null===t[a])this.isAttribute(a)?r+="":"?"===a[0]?r+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:r+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(t[a]instanceof Date)r+=this.buildTextValNode(t[a],a,"",e);else if("object"!=typeof t[a]){const i=this.isAttribute(a);if(i&&!this.ignoreAttributesFn(i,s))n+=this.buildAttrPairStr(i,""+t[a]);else if(!i)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,""+t[a]);r+=this.replaceEntitiesValue(e)}else r+=this.buildTextValNode(t[a],a,"",e)}else if(Array.isArray(t[a])){const n=t[a].length;let s="",o="";for(let l=0;l<n;l++){const n=t[a][l];if(void 0===n);else if(null===n)"?"===a[0]?r+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:r+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if("object"==typeof n)if(this.options.oneListGroup){const t=this.j2x(n,e+1,i.concat(a));s+=t.val,this.options.attributesGroupName&&n.hasOwnProperty(this.options.attributesGroupName)&&(o+=t.attrStr)}else s+=this.processTextOrObjNode(n,a,e,i);else if(this.options.oneListGroup){let t=this.options.tagValueProcessor(a,n);t=this.replaceEntitiesValue(t),s+=t}else s+=this.buildTextValNode(n,a,"",e)}this.options.oneListGroup&&(s=this.buildObjectNode(s,a,o,e)),r+=s}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const e=Object.keys(t[a]),i=e.length;for(let r=0;r<i;r++)n+=this.buildAttrPairStr(e[r],""+t[a][e[r]])}else r+=this.processTextOrObjNode(t[a],a,e,i);return{attrStr:n,val:r}},n.prototype.buildAttrPairStr=function(t,e){return e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+e+'"'},n.prototype.buildObjectNode=function(t,e,i,n){if(""===t)return"?"===e[0]?this.indentate(n)+"<"+e+i+"?"+this.tagEndChar:this.indentate(n)+"<"+e+i+this.closeTag(e)+this.tagEndChar;{let r="</"+e+this.tagEndChar,s="";return"?"===e[0]&&(s="?",r=""),!i&&""!==i||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===s.length?this.indentate(n)+`\x3c!--${t}--\x3e`+this.newLine:this.indentate(n)+"<"+e+i+s+this.tagEndChar+t+this.indentate(n)+r:this.indentate(n)+"<"+e+i+s+">"+t+r}},n.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`></${t}`,e},n.prototype.buildTextValNode=function(t,e,i,n){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName)return this.indentate(n)+`<![CDATA[${t}]]>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\x3c!--${t}--\x3e`+this.newLine;if("?"===e[0])return this.indentate(n)+"<"+e+i+"?"+this.tagEndChar;{let r=this.options.tagValueProcessor(e,t);return r=this.replaceEntitiesValue(r),""===r?this.indentate(n)+"<"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(n)+"<"+e+i+">"+r+"</"+e+this.tagEndChar}},n.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){const i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t},M=n}();$={XMLParser:e,XMLValidator:t,XMLBuilder:i}}();var Z,K,J,tt,et,it,nt,rt,st,at,ot,lt,ct,ht={exports:{}};function ut(){if(nt)return it;nt=1;const t=X(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:i}=Q(),{safeRe:n,t:r}=(Z||(Z=1,function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:r}=Q(),s=X(),a=(e=t.exports={}).re=[],o=e.safeRe=[],l=e.src=[],c=e.t={};let h=0;const u="[a-zA-Z0-9-]",d=[["\\s",1],["\\d",r],[u,n]],p=(t,e,i)=>{const n=(t=>{for(const[e,i]of d)t=t.split(`${e}*`).join(`${e}{0,${i}}`).split(`${e}+`).join(`${e}{1,${i}}`);return t})(e),r=h++;s(t,r,e),c[t]=r,l[r]=e,a[r]=new RegExp(e,i?"g":void 0),o[r]=new RegExp(n,i?"g":void 0)};p("NUMERICIDENTIFIER","0|[1-9]\\d*"),p("NUMERICIDENTIFIERLOOSE","\\d+"),p("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${u}*`),p("MAINVERSION",`(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})\\.(${l[c.NUMERICIDENTIFIER]})`),p("MAINVERSIONLOOSE",`(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})\\.(${l[c.NUMERICIDENTIFIERLOOSE]})`),p("PRERELEASEIDENTIFIER",`(?:${l[c.NUMERICIDENTIFIER]}|${l[c.NONNUMERICIDENTIFIER]})`),p("PRERELEASEIDENTIFIERLOOSE",`(?:${l[c.NUMERICIDENTIFIERLOOSE]}|${l[c.NONNUMERICIDENTIFIER]})`),p("PRERELEASE",`(?:-(${l[c.PRERELEASEIDENTIFIER]}(?:\\.${l[c.PRERELEASEIDENTIFIER]})*))`),p("PRERELEASELOOSE",`(?:-?(${l[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[c.PRERELEASEIDENTIFIERLOOSE]})*))`),p("BUILDIDENTIFIER",`${u}+`),p("BUILD",`(?:\\+(${l[c.BUILDIDENTIFIER]}(?:\\.${l[c.BUILDIDENTIFIER]})*))`),p("FULLPLAIN",`v?${l[c.MAINVERSION]}${l[c.PRERELEASE]}?${l[c.BUILD]}?`),p("FULL",`^${l[c.FULLPLAIN]}$`),p("LOOSEPLAIN",`[v=\\s]*${l[c.MAINVERSIONLOOSE]}${l[c.PRERELEASELOOSE]}?${l[c.BUILD]}?`),p("LOOSE",`^${l[c.LOOSEPLAIN]}$`),p("GTLT","((?:<|>)?=?)"),p("XRANGEIDENTIFIERLOOSE",`${l[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),p("XRANGEIDENTIFIER",`${l[c.NUMERICIDENTIFIER]}|x|X|\\*`),p("XRANGEPLAIN",`[v=\\s]*(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:\\.(${l[c.XRANGEIDENTIFIER]})(?:${l[c.PRERELEASE]})?${l[c.BUILD]}?)?)?`),p("XRANGEPLAINLOOSE",`[v=\\s]*(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[c.XRANGEIDENTIFIERLOOSE]})(?:${l[c.PRERELEASELOOSE]})?${l[c.BUILD]}?)?)?`),p("XRANGE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAIN]}$`),p("XRANGELOOSE",`^${l[c.GTLT]}\\s*${l[c.XRANGEPLAINLOOSE]}$`),p("COERCEPLAIN",`(^|[^\\d])(\\d{1,${i}})(?:\\.(\\d{1,${i}}))?(?:\\.(\\d{1,${i}}))?`),p("COERCE",`${l[c.COERCEPLAIN]}(?:$|[^\\d])`),p("COERCEFULL",l[c.COERCEPLAIN]+`(?:${l[c.PRERELEASE]})?(?:${l[c.BUILD]})?(?:$|[^\\d])`),p("COERCERTL",l[c.COERCE],!0),p("COERCERTLFULL",l[c.COERCEFULL],!0),p("LONETILDE","(?:~>?)"),p("TILDETRIM",`(\\s*)${l[c.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",p("TILDE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAIN]}$`),p("TILDELOOSE",`^${l[c.LONETILDE]}${l[c.XRANGEPLAINLOOSE]}$`),p("LONECARET","(?:\\^)"),p("CARETTRIM",`(\\s*)${l[c.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",p("CARET",`^${l[c.LONECARET]}${l[c.XRANGEPLAIN]}$`),p("CARETLOOSE",`^${l[c.LONECARET]}${l[c.XRANGEPLAINLOOSE]}$`),p("COMPARATORLOOSE",`^${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]})$|^$`),p("COMPARATOR",`^${l[c.GTLT]}\\s*(${l[c.FULLPLAIN]})$|^$`),p("COMPARATORTRIM",`(\\s*)${l[c.GTLT]}\\s*(${l[c.LOOSEPLAIN]}|${l[c.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",p("HYPHENRANGE",`^\\s*(${l[c.XRANGEPLAIN]})\\s+-\\s+(${l[c.XRANGEPLAIN]})\\s*$`),p("HYPHENRANGELOOSE",`^\\s*(${l[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[c.XRANGEPLAINLOOSE]})\\s*$`),p("STAR","(<|>)?=?\\s*\\*"),p("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),p("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(ht,ht.exports)),ht.exports),s=function(){if(J)return K;J=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return K=i=>i?"object"!=typeof i?t:i:e}(),{compareIdentifiers:a}=function(){if(et)return tt;et=1;const t=/^[0-9]+$/,e=(e,i)=>{const n=t.test(e),r=t.test(i);return n&&r&&(e=+e,i=+i),e===i?0:n&&!r?-1:r&&!n?1:e<i?-1:1};return tt={compareIdentifiers:e,rcompareIdentifiers:(t,i)=>e(i,t)}}();class o{constructor(a,l){if(l=s(l),a instanceof o){if(a.loose===!!l.loose&&a.includePrerelease===!!l.includePrerelease)return a;a=a.version}else if("string"!=typeof a)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof a}".`);if(a.length>e)throw new TypeError(`version is longer than ${e} characters`);t("SemVer",a,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;const c=a.trim().match(l.loose?n[r.LOOSE]:n[r.FULL]);if(!c)throw new TypeError(`Invalid Version: ${a}`);if(this.raw=a,this.major=+c[1],this.minor=+c[2],this.patch=+c[3],this.major>i||this.major<0)throw new TypeError("Invalid major version");if(this.minor>i||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>i||this.patch<0)throw new TypeError("Invalid patch version");c[4]?this.prerelease=c[4].split(".").map((t=>{if(/^[0-9]+$/.test(t)){const e=+t;if(e>=0&&e<i)return e}return t})):this.prerelease=[],this.build=c[5]?c[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(t("SemVer.compare",this.version,this.options,e),!(e instanceof o)){if("string"==typeof e&&e===this.version)return 0;e=new o(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(t){return t instanceof o||(t=new o(t,this.options)),a(this.major,t.major)||a(this.minor,t.minor)||a(this.patch,t.patch)}comparePre(e){if(e instanceof o||(e=new o(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let i=0;do{const n=this.prerelease[i],r=e.prerelease[i];if(t("prerelease compare",i,n,r),void 0===n&&void 0===r)return 0;if(void 0===r)return 1;if(void 0===n)return-1;if(n!==r)return a(n,r)}while(++i)}compareBuild(e){e instanceof o||(e=new o(e,this.options));let i=0;do{const n=this.build[i],r=e.build[i];if(t("build compare",i,n,r),void 0===n&&void 0===r)return 0;if(void 0===r)return 1;if(void 0===n)return-1;if(n!==r)return a(n,r)}while(++i)}inc(t,e,i){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",e,i);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",e,i);break;case"prepatch":this.prerelease.length=0,this.inc("patch",e,i),this.inc("pre",e,i);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",e,i),this.inc("pre",e,i);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":{const t=Number(i)?1:0;if(!e&&!1===i)throw new Error("invalid increment argument: identifier is empty");if(0===this.prerelease.length)this.prerelease=[t];else{let n=this.prerelease.length;for(;--n>=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);if(-1===n){if(e===this.prerelease.join(".")&&!1===i)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(t)}}if(e){let n=[e,t];!1===i&&(n=[e]),0===a(this.prerelease[0],e)?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return it=o}!function(){if(ot)return at;ot=1;const t=function(){if(st)return rt;st=1;const t=ut();return rt=(e,i,n=!1)=>{if(e instanceof t)return e;try{return new t(e,i)}catch(t){if(!n)return null;throw t}}}();at=(e,i)=>{const n=t(e,i);return n?n.version:null}}(),function(){if(ct)return lt;ct=1;const t=ut();lt=(e,i)=>new t(e,i).major}(),s.m}}]);
-//# sourceMappingURL=9699-9699.js.map?v=ed4cbb01b839b4397369 \ No newline at end of file
diff --git a/dist/9699-9699.js.map b/dist/9699-9699.js.map
deleted file mode 100644
index 310cdb7b26b..00000000000
--- a/dist/9699-9699.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"9699-9699.js?v=ed4cbb01b839b4397369","mappings":"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","sources":["webpack:///nextcloud/node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=e994747e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=32cb91ce&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=1d9a7cfa&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=3d033992&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=be1cd266&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=4c49edf4&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=9d62dc72&prod&lang=scss","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=c672ed08&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=4baa5581&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=15a4df38&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/url-search-params-polyfill/index.js","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?0ae8","webpack://nextcloud/./node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css?bb25","webpack:///nextcloud/node_modules/lodash-es/isObject.js","webpack:///nextcloud/node_modules/lodash-es/_freeGlobal.js","webpack:///nextcloud/node_modules/lodash-es/_root.js","webpack:///nextcloud/node_modules/lodash-es/now.js","webpack:///nextcloud/node_modules/lodash-es/_trimmedEndIndex.js","webpack:///nextcloud/node_modules/lodash-es/_baseTrim.js","webpack:///nextcloud/node_modules/lodash-es/_Symbol.js","webpack:///nextcloud/node_modules/lodash-es/_getRawTag.js","webpack:///nextcloud/node_modules/lodash-es/_objectToString.js","webpack:///nextcloud/node_modules/lodash-es/_baseGetTag.js","webpack:///nextcloud/node_modules/lodash-es/toNumber.js","webpack:///nextcloud/node_modules/lodash-es/isSymbol.js","webpack:///nextcloud/node_modules/lodash-es/isObjectLike.js","webpack:///nextcloud/node_modules/lodash-es/debounce.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/dist/index.mjs","webpack:///nextcloud/apps/files_sharing/src/services/ConfigService.ts","webpack:///nextcloud/apps/files_sharing/src/services/logger.ts","webpack:///nextcloud/apps/files_sharing/src/models/Share.ts","webpack:///nextcloud/apps/files_sharing/src/services/SharingService.ts","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?6c02","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?3197","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?cb12","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?0c02","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?bec5","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?4c20","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?65df","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareRequests.js","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareDetails.js","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?73bc","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?3d7c","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?45a6","webpack:///nextcloud/apps/files_sharing/src/lib/SharePermissionsToolBox.js","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files_sharing/src/mixins/SharesMixin.js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?2e22","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?0e5a","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?77d5","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?cec5","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?1677","webpack://nextcloud/./apps/files_sharing/src/views/SharingLinkList.vue?de0b","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Tune.vue?7202","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue?vue&type=template&id=18d04e6a","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/CalendarBlank.vue?3d12","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarBlank.vue?vue&type=template&id=41fe7db9","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Qrcode.vue?b80a","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue?vue&type=template&id=aba87788","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Exclamation.vue?46e6","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue?vue&type=template&id=03239926","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Lock.vue?93ae","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue?vue&type=template&id=6d856da2","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/CheckBold.vue?7500","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue?vue&type=template&id=5603f41f","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/TriangleSmallDown.vue?8651","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=template&id=1eed3dd9","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/EyeOutline.vue?9ce8","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=template&id=e26de6f6","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FileUpload.vue?c468","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue?vue&type=template&id=caa55e94","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?c5e4","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?4441","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?0b36","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue","webpack://nextcloud/./apps/files_sharing/src/components/ExternalShareAction.vue?9bf3","webpack://nextcloud/./apps/files_sharing/src/components/ExternalShareAction.vue?82b4","webpack:///nextcloud/apps/files_sharing/src/utils/GeneratePassword.ts","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?91f2","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?af90","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?64e9","webpack://nextcloud/./apps/files_sharing/src/views/SharingLinkList.vue?a70b","webpack://nextcloud/./apps/files_sharing/src/views/SharingList.vue?e340","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?3f13","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?10a7","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?f8d7","webpack://nextcloud/./apps/files_sharing/src/views/SharingList.vue?9f9c","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?7f2e","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CircleOutline.vue?68bc","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=template&id=c013567c","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Email.vue?3953","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=7dd7f6aa","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ShareCircle.vue?a1b2","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=template&id=0e958886","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountCircleOutline.vue?a068","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=template&id=5b2fe1de","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Eye.vue?157b","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=4ae2345c","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Refresh.vue?0940","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue?vue&type=template&id=2864f909","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue","webpack:///nextcloud/apps/files_sharing/src/services/TokenService.ts","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?da22","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?10fc","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue","webpack:///nextcloud/apps/files_sharing/src/utils/SharedWithMe.js","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?0b28","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?6997","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs"],"sourcesContent":["/*!\n * vue-qrcode v1.0.2\n * https://fengyuanchen.github.io/vue-qrcode\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2020-01-18T06:04:33.222Z\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global = global || self, global.VueQrcode = factory());\n}(this, (function () { 'use strict';\n\n\tfunction commonjsRequire () {\n\t\tthrow new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs');\n\t}\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\tvar qrcode = createCommonjsModule(function (module, exports) {\n\t(function(f){{module.exports=f();}})(function(){return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof commonjsRequire&&commonjsRequire;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t);}return n[i].exports}for(var u=\"function\"==typeof commonjsRequire&&commonjsRequire,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n\t// can-promise has a crash in some versions of react native that dont have\n\t// standard global objects\n\t// https://github.com/soldair/node-qrcode/issues/157\n\n\tmodule.exports = function () {\n\t return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n\t};\n\n\t},{}],2:[function(require,module,exports){\n\t/**\n\t * Alignment pattern are fixed reference pattern in defined positions\n\t * in a matrix symbology, which enables the decode software to re-synchronise\n\t * the coordinate mapping of the image modules in the event of moderate amounts\n\t * of distortion of the image.\n\t *\n\t * Alignment patterns are present only in QR Code symbols of version 2 or larger\n\t * and their number depends on the symbol version.\n\t */\n\n\tvar getSymbolSize = require('./utils').getSymbolSize;\n\n\t/**\n\t * Calculate the row/column coordinates of the center module of each alignment pattern\n\t * for the specified QR Code version.\n\t *\n\t * The alignment patterns are positioned symmetrically on either side of the diagonal\n\t * running from the top left corner of the symbol to the bottom right corner.\n\t *\n\t * Since positions are simmetrical only half of the coordinates are returned.\n\t * Each item of the array will represent in turn the x and y coordinate.\n\t * @see {@link getPositions}\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinate\n\t */\n\texports.getRowColCoords = function getRowColCoords (version) {\n\t if (version === 1) return []\n\n\t var posCount = Math.floor(version / 7) + 2;\n\t var size = getSymbolSize(version);\n\t var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2;\n\t var positions = [size - 7]; // Last coord is always (size - 7)\n\n\t for (var i = 1; i < posCount - 1; i++) {\n\t positions[i] = positions[i - 1] - intervals;\n\t }\n\n\t positions.push(6); // First coord is always 6\n\n\t return positions.reverse()\n\t};\n\n\t/**\n\t * Returns an array containing the positions of each alignment pattern.\n\t * Each array's element represent the center point of the pattern as (x, y) coordinates\n\t *\n\t * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n\t * and filtering out the items that overlaps with finder pattern\n\t *\n\t * @example\n\t * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n\t * The alignment patterns, therefore, are to be centered on (row, column)\n\t * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n\t * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n\t * and are not therefore used for alignment patterns.\n\t *\n\t * var pos = getPositions(7)\n\t * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinates\n\t */\n\texports.getPositions = function getPositions (version) {\n\t var coords = [];\n\t var pos = exports.getRowColCoords(version);\n\t var posLength = pos.length;\n\n\t for (var i = 0; i < posLength; i++) {\n\t for (var j = 0; j < posLength; j++) {\n\t // Skip if position is occupied by finder patterns\n\t if ((i === 0 && j === 0) || // top-left\n\t (i === 0 && j === posLength - 1) || // bottom-left\n\t (i === posLength - 1 && j === 0)) { // top-right\n\t continue\n\t }\n\n\t coords.push([pos[i], pos[j]]);\n\t }\n\t }\n\n\t return coords\n\t};\n\n\t},{\"./utils\":21}],3:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\n\t/**\n\t * Array of characters available in alphanumeric mode\n\t *\n\t * As per QR Code specification, to each character\n\t * is assigned a value from 0 to 44 which in this case coincides\n\t * with the array index\n\t *\n\t * @type {Array}\n\t */\n\tvar ALPHA_NUM_CHARS = [\n\t '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n\t 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n\t 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n\t ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n\t];\n\n\tfunction AlphanumericData (data) {\n\t this.mode = Mode.ALPHANUMERIC;\n\t this.data = data;\n\t}\n\n\tAlphanumericData.getBitsLength = function getBitsLength (length) {\n\t return 11 * Math.floor(length / 2) + 6 * (length % 2)\n\t};\n\n\tAlphanumericData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n\t return AlphanumericData.getBitsLength(this.data.length)\n\t};\n\n\tAlphanumericData.prototype.write = function write (bitBuffer) {\n\t var i;\n\n\t // Input data characters are divided into groups of two characters\n\t // and encoded as 11-bit binary codes.\n\t for (i = 0; i + 2 <= this.data.length; i += 2) {\n\t // The character value of the first character is multiplied by 45\n\t var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45;\n\n\t // The character value of the second digit is added to the product\n\t value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1]);\n\n\t // The sum is then stored as 11-bit binary number\n\t bitBuffer.put(value, 11);\n\t }\n\n\t // If the number of input data characters is not a multiple of two,\n\t // the character value of the final character is encoded as a 6-bit binary number.\n\t if (this.data.length % 2) {\n\t bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6);\n\t }\n\t};\n\n\tmodule.exports = AlphanumericData;\n\n\t},{\"./mode\":14}],4:[function(require,module,exports){\n\tfunction BitBuffer () {\n\t this.buffer = [];\n\t this.length = 0;\n\t}\n\n\tBitBuffer.prototype = {\n\n\t get: function (index) {\n\t var bufIndex = Math.floor(index / 8);\n\t return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n\t },\n\n\t put: function (num, length) {\n\t for (var i = 0; i < length; i++) {\n\t this.putBit(((num >>> (length - i - 1)) & 1) === 1);\n\t }\n\t },\n\n\t getLengthInBits: function () {\n\t return this.length\n\t },\n\n\t putBit: function (bit) {\n\t var bufIndex = Math.floor(this.length / 8);\n\t if (this.buffer.length <= bufIndex) {\n\t this.buffer.push(0);\n\t }\n\n\t if (bit) {\n\t this.buffer[bufIndex] |= (0x80 >>> (this.length % 8));\n\t }\n\n\t this.length++;\n\t }\n\t};\n\n\tmodule.exports = BitBuffer;\n\n\t},{}],5:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\n\t/**\n\t * Helper class to handle QR Code symbol modules\n\t *\n\t * @param {Number} size Symbol size\n\t */\n\tfunction BitMatrix (size) {\n\t if (!size || size < 1) {\n\t throw new Error('BitMatrix size must be defined and greater than 0')\n\t }\n\n\t this.size = size;\n\t this.data = BufferUtil.alloc(size * size);\n\t this.reservedBit = BufferUtil.alloc(size * size);\n\t}\n\n\t/**\n\t * Set bit value at specified location\n\t * If reserved flag is set, this bit will be ignored during masking process\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @param {Boolean} value\n\t * @param {Boolean} reserved\n\t */\n\tBitMatrix.prototype.set = function (row, col, value, reserved) {\n\t var index = row * this.size + col;\n\t this.data[index] = value;\n\t if (reserved) this.reservedBit[index] = true;\n\t};\n\n\t/**\n\t * Returns bit value at specified location\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @return {Boolean}\n\t */\n\tBitMatrix.prototype.get = function (row, col) {\n\t return this.data[row * this.size + col]\n\t};\n\n\t/**\n\t * Applies xor operator at specified location\n\t * (used during masking process)\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @param {Boolean} value\n\t */\n\tBitMatrix.prototype.xor = function (row, col, value) {\n\t this.data[row * this.size + col] ^= value;\n\t};\n\n\t/**\n\t * Check if bit at specified location is reserved\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @return {Boolean}\n\t */\n\tBitMatrix.prototype.isReserved = function (row, col) {\n\t return this.reservedBit[row * this.size + col]\n\t};\n\n\tmodule.exports = BitMatrix;\n\n\t},{\"../utils/buffer\":28}],6:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Mode = require('./mode');\n\n\tfunction ByteData (data) {\n\t this.mode = Mode.BYTE;\n\t this.data = BufferUtil.from(data);\n\t}\n\n\tByteData.getBitsLength = function getBitsLength (length) {\n\t return length * 8\n\t};\n\n\tByteData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tByteData.prototype.getBitsLength = function getBitsLength () {\n\t return ByteData.getBitsLength(this.data.length)\n\t};\n\n\tByteData.prototype.write = function (bitBuffer) {\n\t for (var i = 0, l = this.data.length; i < l; i++) {\n\t bitBuffer.put(this.data[i], 8);\n\t }\n\t};\n\n\tmodule.exports = ByteData;\n\n\t},{\"../utils/buffer\":28,\"./mode\":14}],7:[function(require,module,exports){\n\tvar ECLevel = require('./error-correction-level');\r\n\r\n\tvar EC_BLOCKS_TABLE = [\r\n\t// L M Q H\r\n\t 1, 1, 1, 1,\r\n\t 1, 1, 1, 1,\r\n\t 1, 1, 2, 2,\r\n\t 1, 2, 2, 4,\r\n\t 1, 2, 4, 4,\r\n\t 2, 4, 4, 4,\r\n\t 2, 4, 6, 5,\r\n\t 2, 4, 6, 6,\r\n\t 2, 5, 8, 8,\r\n\t 4, 5, 8, 8,\r\n\t 4, 5, 8, 11,\r\n\t 4, 8, 10, 11,\r\n\t 4, 9, 12, 16,\r\n\t 4, 9, 16, 16,\r\n\t 6, 10, 12, 18,\r\n\t 6, 10, 17, 16,\r\n\t 6, 11, 16, 19,\r\n\t 6, 13, 18, 21,\r\n\t 7, 14, 21, 25,\r\n\t 8, 16, 20, 25,\r\n\t 8, 17, 23, 25,\r\n\t 9, 17, 23, 34,\r\n\t 9, 18, 25, 30,\r\n\t 10, 20, 27, 32,\r\n\t 12, 21, 29, 35,\r\n\t 12, 23, 34, 37,\r\n\t 12, 25, 34, 40,\r\n\t 13, 26, 35, 42,\r\n\t 14, 28, 38, 45,\r\n\t 15, 29, 40, 48,\r\n\t 16, 31, 43, 51,\r\n\t 17, 33, 45, 54,\r\n\t 18, 35, 48, 57,\r\n\t 19, 37, 51, 60,\r\n\t 19, 38, 53, 63,\r\n\t 20, 40, 56, 66,\r\n\t 21, 43, 59, 70,\r\n\t 22, 45, 62, 74,\r\n\t 24, 47, 65, 77,\r\n\t 25, 49, 68, 81\r\n\t];\r\n\r\n\tvar EC_CODEWORDS_TABLE = [\r\n\t// L M Q H\r\n\t 7, 10, 13, 17,\r\n\t 10, 16, 22, 28,\r\n\t 15, 26, 36, 44,\r\n\t 20, 36, 52, 64,\r\n\t 26, 48, 72, 88,\r\n\t 36, 64, 96, 112,\r\n\t 40, 72, 108, 130,\r\n\t 48, 88, 132, 156,\r\n\t 60, 110, 160, 192,\r\n\t 72, 130, 192, 224,\r\n\t 80, 150, 224, 264,\r\n\t 96, 176, 260, 308,\r\n\t 104, 198, 288, 352,\r\n\t 120, 216, 320, 384,\r\n\t 132, 240, 360, 432,\r\n\t 144, 280, 408, 480,\r\n\t 168, 308, 448, 532,\r\n\t 180, 338, 504, 588,\r\n\t 196, 364, 546, 650,\r\n\t 224, 416, 600, 700,\r\n\t 224, 442, 644, 750,\r\n\t 252, 476, 690, 816,\r\n\t 270, 504, 750, 900,\r\n\t 300, 560, 810, 960,\r\n\t 312, 588, 870, 1050,\r\n\t 336, 644, 952, 1110,\r\n\t 360, 700, 1020, 1200,\r\n\t 390, 728, 1050, 1260,\r\n\t 420, 784, 1140, 1350,\r\n\t 450, 812, 1200, 1440,\r\n\t 480, 868, 1290, 1530,\r\n\t 510, 924, 1350, 1620,\r\n\t 540, 980, 1440, 1710,\r\n\t 570, 1036, 1530, 1800,\r\n\t 570, 1064, 1590, 1890,\r\n\t 600, 1120, 1680, 1980,\r\n\t 630, 1204, 1770, 2100,\r\n\t 660, 1260, 1860, 2220,\r\n\t 720, 1316, 1950, 2310,\r\n\t 750, 1372, 2040, 2430\r\n\t];\r\n\r\n\t/**\r\n\t * Returns the number of error correction block that the QR Code should contain\r\n\t * for the specified version and error correction level.\r\n\t *\r\n\t * @param {Number} version QR Code version\r\n\t * @param {Number} errorCorrectionLevel Error correction level\r\n\t * @return {Number} Number of error correction blocks\r\n\t */\r\n\texports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n\t switch (errorCorrectionLevel) {\r\n\t case ECLevel.L:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n\t case ECLevel.M:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n\t case ECLevel.Q:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n\t case ECLevel.H:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n\t default:\r\n\t return undefined\r\n\t }\r\n\t};\r\n\r\n\t/**\r\n\t * Returns the number of error correction codewords to use for the specified\r\n\t * version and error correction level.\r\n\t *\r\n\t * @param {Number} version QR Code version\r\n\t * @param {Number} errorCorrectionLevel Error correction level\r\n\t * @return {Number} Number of error correction codewords\r\n\t */\r\n\texports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n\t switch (errorCorrectionLevel) {\r\n\t case ECLevel.L:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n\t case ECLevel.M:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n\t case ECLevel.Q:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n\t case ECLevel.H:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n\t default:\r\n\t return undefined\r\n\t }\r\n\t};\r\n\n\t},{\"./error-correction-level\":8}],8:[function(require,module,exports){\n\texports.L = { bit: 1 };\n\texports.M = { bit: 0 };\n\texports.Q = { bit: 3 };\n\texports.H = { bit: 2 };\n\n\tfunction fromString (string) {\n\t if (typeof string !== 'string') {\n\t throw new Error('Param is not a string')\n\t }\n\n\t var lcStr = string.toLowerCase();\n\n\t switch (lcStr) {\n\t case 'l':\n\t case 'low':\n\t return exports.L\n\n\t case 'm':\n\t case 'medium':\n\t return exports.M\n\n\t case 'q':\n\t case 'quartile':\n\t return exports.Q\n\n\t case 'h':\n\t case 'high':\n\t return exports.H\n\n\t default:\n\t throw new Error('Unknown EC Level: ' + string)\n\t }\n\t}\n\n\texports.isValid = function isValid (level) {\n\t return level && typeof level.bit !== 'undefined' &&\n\t level.bit >= 0 && level.bit < 4\n\t};\n\n\texports.from = function from (value, defaultValue) {\n\t if (exports.isValid(value)) {\n\t return value\n\t }\n\n\t try {\n\t return fromString(value)\n\t } catch (e) {\n\t return defaultValue\n\t }\n\t};\n\n\t},{}],9:[function(require,module,exports){\n\tvar getSymbolSize = require('./utils').getSymbolSize;\n\tvar FINDER_PATTERN_SIZE = 7;\n\n\t/**\n\t * Returns an array containing the positions of each finder pattern.\n\t * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinates\n\t */\n\texports.getPositions = function getPositions (version) {\n\t var size = getSymbolSize(version);\n\n\t return [\n\t // top-left\n\t [0, 0],\n\t // top-right\n\t [size - FINDER_PATTERN_SIZE, 0],\n\t // bottom-left\n\t [0, size - FINDER_PATTERN_SIZE]\n\t ]\n\t};\n\n\t},{\"./utils\":21}],10:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\n\tvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\n\tvar G15_BCH = Utils.getBCHDigit(G15);\n\n\t/**\n\t * Returns format information with relative error correction bits\n\t *\n\t * The format information is a 15-bit sequence containing 5 data bits,\n\t * with 10 error correction bits calculated using the (15, 5) BCH code.\n\t *\n\t * @param {Number} errorCorrectionLevel Error correction level\n\t * @param {Number} mask Mask pattern\n\t * @return {Number} Encoded format information bits\n\t */\n\texports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n\t var data = ((errorCorrectionLevel.bit << 3) | mask);\n\t var d = data << 10;\n\n\t while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n\t d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH));\n\t }\n\n\t // xor final data with mask pattern in order to ensure that\n\t // no combination of Error Correction Level and data mask pattern\n\t // will result in an all-zero data string\n\t return ((data << 10) | d) ^ G15_MASK\n\t};\n\n\t},{\"./utils\":21}],11:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\n\tvar EXP_TABLE = BufferUtil.alloc(512);\n\tvar LOG_TABLE = BufferUtil.alloc(256)\n\t/**\n\t * Precompute the log and anti-log tables for faster computation later\n\t *\n\t * For each possible value in the galois field 2^8, we will pre-compute\n\t * the logarithm and anti-logarithm (exponential) of this value\n\t *\n\t * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n\t */\n\t;(function initTables () {\n\t var x = 1;\n\t for (var i = 0; i < 255; i++) {\n\t EXP_TABLE[i] = x;\n\t LOG_TABLE[x] = i;\n\n\t x <<= 1; // multiply by 2\n\n\t // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n\t // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n\t if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n\t x ^= 0x11D;\n\t }\n\t }\n\n\t // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n\t // stay inside the bounds (because we will mainly use this table for the multiplication of\n\t // two GF numbers, no more).\n\t // @see {@link mul}\n\t for (i = 255; i < 512; i++) {\n\t EXP_TABLE[i] = EXP_TABLE[i - 255];\n\t }\n\t}());\n\n\t/**\n\t * Returns log value of n inside Galois Field\n\t *\n\t * @param {Number} n\n\t * @return {Number}\n\t */\n\texports.log = function log (n) {\n\t if (n < 1) throw new Error('log(' + n + ')')\n\t return LOG_TABLE[n]\n\t};\n\n\t/**\n\t * Returns anti-log value of n inside Galois Field\n\t *\n\t * @param {Number} n\n\t * @return {Number}\n\t */\n\texports.exp = function exp (n) {\n\t return EXP_TABLE[n]\n\t};\n\n\t/**\n\t * Multiplies two number inside Galois Field\n\t *\n\t * @param {Number} x\n\t * @param {Number} y\n\t * @return {Number}\n\t */\n\texports.mul = function mul (x, y) {\n\t if (x === 0 || y === 0) return 0\n\n\t // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n\t // @see {@link initTables}\n\t return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n\t};\n\n\t},{\"../utils/buffer\":28}],12:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\tvar Utils = require('./utils');\n\n\tfunction KanjiData (data) {\n\t this.mode = Mode.KANJI;\n\t this.data = data;\n\t}\n\n\tKanjiData.getBitsLength = function getBitsLength (length) {\n\t return length * 13\n\t};\n\n\tKanjiData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tKanjiData.prototype.getBitsLength = function getBitsLength () {\n\t return KanjiData.getBitsLength(this.data.length)\n\t};\n\n\tKanjiData.prototype.write = function (bitBuffer) {\n\t var i;\n\n\t // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n\t // These byte values are shifted from the JIS X 0208 values.\n\t // JIS X 0208 gives details of the shift coded representation.\n\t for (i = 0; i < this.data.length; i++) {\n\t var value = Utils.toSJIS(this.data[i]);\n\n\t // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n\t if (value >= 0x8140 && value <= 0x9FFC) {\n\t // Subtract 0x8140 from Shift JIS value\n\t value -= 0x8140;\n\n\t // For characters with Shift JIS values from 0xE040 to 0xEBBF\n\t } else if (value >= 0xE040 && value <= 0xEBBF) {\n\t // Subtract 0xC140 from Shift JIS value\n\t value -= 0xC140;\n\t } else {\n\t throw new Error(\n\t 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n\t 'Make sure your charset is UTF-8')\n\t }\n\n\t // Multiply most significant byte of result by 0xC0\n\t // and add least significant byte to product\n\t value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff);\n\n\t // Convert result to a 13-bit binary string\n\t bitBuffer.put(value, 13);\n\t }\n\t};\n\n\tmodule.exports = KanjiData;\n\n\t},{\"./mode\":14,\"./utils\":21}],13:[function(require,module,exports){\n\t/**\n\t * Data mask pattern reference\n\t * @type {Object}\n\t */\n\texports.Patterns = {\n\t PATTERN000: 0,\n\t PATTERN001: 1,\n\t PATTERN010: 2,\n\t PATTERN011: 3,\n\t PATTERN100: 4,\n\t PATTERN101: 5,\n\t PATTERN110: 6,\n\t PATTERN111: 7\n\t};\n\n\t/**\n\t * Weighted penalty scores for the undesirable features\n\t * @type {Object}\n\t */\n\tvar PenaltyScores = {\n\t N1: 3,\n\t N2: 3,\n\t N3: 40,\n\t N4: 10\n\t};\n\n\t/**\n\t * Check if mask pattern value is valid\n\t *\n\t * @param {Number} mask Mask pattern\n\t * @return {Boolean} true if valid, false otherwise\n\t */\n\texports.isValid = function isValid (mask) {\n\t return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n\t};\n\n\t/**\n\t * Returns mask pattern from a value.\n\t * If value is not valid, returns undefined\n\t *\n\t * @param {Number|String} value Mask pattern value\n\t * @return {Number} Valid mask pattern or undefined\n\t */\n\texports.from = function from (value) {\n\t return exports.isValid(value) ? parseInt(value, 10) : undefined\n\t};\n\n\t/**\n\t* Find adjacent modules in row/column with the same color\n\t* and assign a penalty value.\n\t*\n\t* Points: N1 + i\n\t* i is the amount by which the number of adjacent modules of the same color exceeds 5\n\t*/\n\texports.getPenaltyN1 = function getPenaltyN1 (data) {\n\t var size = data.size;\n\t var points = 0;\n\t var sameCountCol = 0;\n\t var sameCountRow = 0;\n\t var lastCol = null;\n\t var lastRow = null;\n\n\t for (var row = 0; row < size; row++) {\n\t sameCountCol = sameCountRow = 0;\n\t lastCol = lastRow = null;\n\n\t for (var col = 0; col < size; col++) {\n\t var module = data.get(row, col);\n\t if (module === lastCol) {\n\t sameCountCol++;\n\t } else {\n\t if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);\n\t lastCol = module;\n\t sameCountCol = 1;\n\t }\n\n\t module = data.get(col, row);\n\t if (module === lastRow) {\n\t sameCountRow++;\n\t } else {\n\t if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);\n\t lastRow = module;\n\t sameCountRow = 1;\n\t }\n\t }\n\n\t if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);\n\t if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);\n\t }\n\n\t return points\n\t};\n\n\t/**\n\t * Find 2x2 blocks with the same color and assign a penalty value\n\t *\n\t * Points: N2 * (m - 1) * (n - 1)\n\t */\n\texports.getPenaltyN2 = function getPenaltyN2 (data) {\n\t var size = data.size;\n\t var points = 0;\n\n\t for (var row = 0; row < size - 1; row++) {\n\t for (var col = 0; col < size - 1; col++) {\n\t var last = data.get(row, col) +\n\t data.get(row, col + 1) +\n\t data.get(row + 1, col) +\n\t data.get(row + 1, col + 1);\n\n\t if (last === 4 || last === 0) points++;\n\t }\n\t }\n\n\t return points * PenaltyScores.N2\n\t};\n\n\t/**\n\t * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n\t * preceded or followed by light area 4 modules wide\n\t *\n\t * Points: N3 * number of pattern found\n\t */\n\texports.getPenaltyN3 = function getPenaltyN3 (data) {\n\t var size = data.size;\n\t var points = 0;\n\t var bitsCol = 0;\n\t var bitsRow = 0;\n\n\t for (var row = 0; row < size; row++) {\n\t bitsCol = bitsRow = 0;\n\t for (var col = 0; col < size; col++) {\n\t bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col);\n\t if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++;\n\n\t bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row);\n\t if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++;\n\t }\n\t }\n\n\t return points * PenaltyScores.N3\n\t};\n\n\t/**\n\t * Calculate proportion of dark modules in entire symbol\n\t *\n\t * Points: N4 * k\n\t *\n\t * k is the rating of the deviation of the proportion of dark modules\n\t * in the symbol from 50% in steps of 5%\n\t */\n\texports.getPenaltyN4 = function getPenaltyN4 (data) {\n\t var darkCount = 0;\n\t var modulesCount = data.data.length;\n\n\t for (var i = 0; i < modulesCount; i++) darkCount += data.data[i];\n\n\t var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10);\n\n\t return k * PenaltyScores.N4\n\t};\n\n\t/**\n\t * Return mask value at given position\n\t *\n\t * @param {Number} maskPattern Pattern reference value\n\t * @param {Number} i Row\n\t * @param {Number} j Column\n\t * @return {Boolean} Mask value\n\t */\n\tfunction getMaskAt (maskPattern, i, j) {\n\t switch (maskPattern) {\n\t case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n\t case exports.Patterns.PATTERN001: return i % 2 === 0\n\t case exports.Patterns.PATTERN010: return j % 3 === 0\n\t case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n\t case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n\t case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n\t case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n\t case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n\t default: throw new Error('bad maskPattern:' + maskPattern)\n\t }\n\t}\n\n\t/**\n\t * Apply a mask pattern to a BitMatrix\n\t *\n\t * @param {Number} pattern Pattern reference number\n\t * @param {BitMatrix} data BitMatrix data\n\t */\n\texports.applyMask = function applyMask (pattern, data) {\n\t var size = data.size;\n\n\t for (var col = 0; col < size; col++) {\n\t for (var row = 0; row < size; row++) {\n\t if (data.isReserved(row, col)) continue\n\t data.xor(row, col, getMaskAt(pattern, row, col));\n\t }\n\t }\n\t};\n\n\t/**\n\t * Returns the best mask pattern for data\n\t *\n\t * @param {BitMatrix} data\n\t * @return {Number} Mask pattern reference number\n\t */\n\texports.getBestMask = function getBestMask (data, setupFormatFunc) {\n\t var numPatterns = Object.keys(exports.Patterns).length;\n\t var bestPattern = 0;\n\t var lowerPenalty = Infinity;\n\n\t for (var p = 0; p < numPatterns; p++) {\n\t setupFormatFunc(p);\n\t exports.applyMask(p, data);\n\n\t // Calculate penalty\n\t var penalty =\n\t exports.getPenaltyN1(data) +\n\t exports.getPenaltyN2(data) +\n\t exports.getPenaltyN3(data) +\n\t exports.getPenaltyN4(data);\n\n\t // Undo previously applied mask\n\t exports.applyMask(p, data);\n\n\t if (penalty < lowerPenalty) {\n\t lowerPenalty = penalty;\n\t bestPattern = p;\n\t }\n\t }\n\n\t return bestPattern\n\t};\n\n\t},{}],14:[function(require,module,exports){\n\tvar VersionCheck = require('./version-check');\n\tvar Regex = require('./regex');\n\n\t/**\n\t * Numeric mode encodes data from the decimal digit set (0 - 9)\n\t * (byte values 30HEX to 39HEX).\n\t * Normally, 3 data characters are represented by 10 bits.\n\t *\n\t * @type {Object}\n\t */\n\texports.NUMERIC = {\n\t id: 'Numeric',\n\t bit: 1 << 0,\n\t ccBits: [10, 12, 14]\n\t};\n\n\t/**\n\t * Alphanumeric mode encodes data from a set of 45 characters,\n\t * i.e. 10 numeric digits (0 - 9),\n\t * 26 alphabetic characters (A - Z),\n\t * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n\t * Normally, two input characters are represented by 11 bits.\n\t *\n\t * @type {Object}\n\t */\n\texports.ALPHANUMERIC = {\n\t id: 'Alphanumeric',\n\t bit: 1 << 1,\n\t ccBits: [9, 11, 13]\n\t};\n\n\t/**\n\t * In byte mode, data is encoded at 8 bits per character.\n\t *\n\t * @type {Object}\n\t */\n\texports.BYTE = {\n\t id: 'Byte',\n\t bit: 1 << 2,\n\t ccBits: [8, 16, 16]\n\t};\n\n\t/**\n\t * The Kanji mode efficiently encodes Kanji characters in accordance with\n\t * the Shift JIS system based on JIS X 0208.\n\t * The Shift JIS values are shifted from the JIS X 0208 values.\n\t * JIS X 0208 gives details of the shift coded representation.\n\t * Each two-byte character value is compacted to a 13-bit binary codeword.\n\t *\n\t * @type {Object}\n\t */\n\texports.KANJI = {\n\t id: 'Kanji',\n\t bit: 1 << 3,\n\t ccBits: [8, 10, 12]\n\t};\n\n\t/**\n\t * Mixed mode will contain a sequences of data in a combination of any of\n\t * the modes described above\n\t *\n\t * @type {Object}\n\t */\n\texports.MIXED = {\n\t bit: -1\n\t};\n\n\t/**\n\t * Returns the number of bits needed to store the data length\n\t * according to QR Code specifications.\n\t *\n\t * @param {Mode} mode Data mode\n\t * @param {Number} version QR Code version\n\t * @return {Number} Number of bits\n\t */\n\texports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n\t if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n\t if (!VersionCheck.isValid(version)) {\n\t throw new Error('Invalid version: ' + version)\n\t }\n\n\t if (version >= 1 && version < 10) return mode.ccBits[0]\n\t else if (version < 27) return mode.ccBits[1]\n\t return mode.ccBits[2]\n\t};\n\n\t/**\n\t * Returns the most efficient mode to store the specified data\n\t *\n\t * @param {String} dataStr Input data string\n\t * @return {Mode} Best mode\n\t */\n\texports.getBestModeForData = function getBestModeForData (dataStr) {\n\t if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n\t else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n\t else if (Regex.testKanji(dataStr)) return exports.KANJI\n\t else return exports.BYTE\n\t};\n\n\t/**\n\t * Return mode name as string\n\t *\n\t * @param {Mode} mode Mode object\n\t * @returns {String} Mode name\n\t */\n\texports.toString = function toString (mode) {\n\t if (mode && mode.id) return mode.id\n\t throw new Error('Invalid mode')\n\t};\n\n\t/**\n\t * Check if input param is a valid mode object\n\t *\n\t * @param {Mode} mode Mode object\n\t * @returns {Boolean} True if valid mode, false otherwise\n\t */\n\texports.isValid = function isValid (mode) {\n\t return mode && mode.bit && mode.ccBits\n\t};\n\n\t/**\n\t * Get mode object from its name\n\t *\n\t * @param {String} string Mode name\n\t * @returns {Mode} Mode object\n\t */\n\tfunction fromString (string) {\n\t if (typeof string !== 'string') {\n\t throw new Error('Param is not a string')\n\t }\n\n\t var lcStr = string.toLowerCase();\n\n\t switch (lcStr) {\n\t case 'numeric':\n\t return exports.NUMERIC\n\t case 'alphanumeric':\n\t return exports.ALPHANUMERIC\n\t case 'kanji':\n\t return exports.KANJI\n\t case 'byte':\n\t return exports.BYTE\n\t default:\n\t throw new Error('Unknown mode: ' + string)\n\t }\n\t}\n\n\t/**\n\t * Returns mode from a value.\n\t * If value is not a valid mode, returns defaultValue\n\t *\n\t * @param {Mode|String} value Encoding mode\n\t * @param {Mode} defaultValue Fallback value\n\t * @return {Mode} Encoding mode\n\t */\n\texports.from = function from (value, defaultValue) {\n\t if (exports.isValid(value)) {\n\t return value\n\t }\n\n\t try {\n\t return fromString(value)\n\t } catch (e) {\n\t return defaultValue\n\t }\n\t};\n\n\t},{\"./regex\":19,\"./version-check\":22}],15:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\n\tfunction NumericData (data) {\n\t this.mode = Mode.NUMERIC;\n\t this.data = data.toString();\n\t}\n\n\tNumericData.getBitsLength = function getBitsLength (length) {\n\t return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n\t};\n\n\tNumericData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tNumericData.prototype.getBitsLength = function getBitsLength () {\n\t return NumericData.getBitsLength(this.data.length)\n\t};\n\n\tNumericData.prototype.write = function write (bitBuffer) {\n\t var i, group, value;\n\n\t // The input data string is divided into groups of three digits,\n\t // and each group is converted to its 10-bit binary equivalent.\n\t for (i = 0; i + 3 <= this.data.length; i += 3) {\n\t group = this.data.substr(i, 3);\n\t value = parseInt(group, 10);\n\n\t bitBuffer.put(value, 10);\n\t }\n\n\t // If the number of input digits is not an exact multiple of three,\n\t // the final one or two digits are converted to 4 or 7 bits respectively.\n\t var remainingNum = this.data.length - i;\n\t if (remainingNum > 0) {\n\t group = this.data.substr(i);\n\t value = parseInt(group, 10);\n\n\t bitBuffer.put(value, remainingNum * 3 + 1);\n\t }\n\t};\n\n\tmodule.exports = NumericData;\n\n\t},{\"./mode\":14}],16:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar GF = require('./galois-field');\n\n\t/**\n\t * Multiplies two polynomials inside Galois Field\n\t *\n\t * @param {Buffer} p1 Polynomial\n\t * @param {Buffer} p2 Polynomial\n\t * @return {Buffer} Product of p1 and p2\n\t */\n\texports.mul = function mul (p1, p2) {\n\t var coeff = BufferUtil.alloc(p1.length + p2.length - 1);\n\n\t for (var i = 0; i < p1.length; i++) {\n\t for (var j = 0; j < p2.length; j++) {\n\t coeff[i + j] ^= GF.mul(p1[i], p2[j]);\n\t }\n\t }\n\n\t return coeff\n\t};\n\n\t/**\n\t * Calculate the remainder of polynomials division\n\t *\n\t * @param {Buffer} divident Polynomial\n\t * @param {Buffer} divisor Polynomial\n\t * @return {Buffer} Remainder\n\t */\n\texports.mod = function mod (divident, divisor) {\n\t var result = BufferUtil.from(divident);\n\n\t while ((result.length - divisor.length) >= 0) {\n\t var coeff = result[0];\n\n\t for (var i = 0; i < divisor.length; i++) {\n\t result[i] ^= GF.mul(divisor[i], coeff);\n\t }\n\n\t // remove all zeros from buffer head\n\t var offset = 0;\n\t while (offset < result.length && result[offset] === 0) offset++;\n\t result = result.slice(offset);\n\t }\n\n\t return result\n\t};\n\n\t/**\n\t * Generate an irreducible generator polynomial of specified degree\n\t * (used by Reed-Solomon encoder)\n\t *\n\t * @param {Number} degree Degree of the generator polynomial\n\t * @return {Buffer} Buffer containing polynomial coefficients\n\t */\n\texports.generateECPolynomial = function generateECPolynomial (degree) {\n\t var poly = BufferUtil.from([1]);\n\t for (var i = 0; i < degree; i++) {\n\t poly = exports.mul(poly, [1, GF.exp(i)]);\n\t }\n\n\t return poly\n\t};\n\n\t},{\"../utils/buffer\":28,\"./galois-field\":11}],17:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Utils = require('./utils');\n\tvar ECLevel = require('./error-correction-level');\n\tvar BitBuffer = require('./bit-buffer');\n\tvar BitMatrix = require('./bit-matrix');\n\tvar AlignmentPattern = require('./alignment-pattern');\n\tvar FinderPattern = require('./finder-pattern');\n\tvar MaskPattern = require('./mask-pattern');\n\tvar ECCode = require('./error-correction-code');\n\tvar ReedSolomonEncoder = require('./reed-solomon-encoder');\n\tvar Version = require('./version');\n\tvar FormatInfo = require('./format-info');\n\tvar Mode = require('./mode');\n\tvar Segments = require('./segments');\n\tvar isArray = require('isarray');\n\n\t/**\n\t * QRCode for JavaScript\n\t *\n\t * modified by Ryan Day for nodejs support\n\t * Copyright (c) 2011 Ryan Day\n\t *\n\t * Licensed under the MIT license:\n\t * http://www.opensource.org/licenses/mit-license.php\n\t *\n\t//---------------------------------------------------------------------\n\t// QRCode for JavaScript\n\t//\n\t// Copyright (c) 2009 Kazuhiko Arase\n\t//\n\t// URL: http://www.d-project.com/\n\t//\n\t// Licensed under the MIT license:\n\t// http://www.opensource.org/licenses/mit-license.php\n\t//\n\t// The word \"QR Code\" is registered trademark of\n\t// DENSO WAVE INCORPORATED\n\t// http://www.denso-wave.com/qrcode/faqpatent-e.html\n\t//\n\t//---------------------------------------------------------------------\n\t*/\n\n\t/**\n\t * Add finder patterns bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupFinderPattern (matrix, version) {\n\t var size = matrix.size;\n\t var pos = FinderPattern.getPositions(version);\n\n\t for (var i = 0; i < pos.length; i++) {\n\t var row = pos[i][0];\n\t var col = pos[i][1];\n\n\t for (var r = -1; r <= 7; r++) {\n\t if (row + r <= -1 || size <= row + r) continue\n\n\t for (var c = -1; c <= 7; c++) {\n\t if (col + c <= -1 || size <= col + c) continue\n\n\t if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n\t (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n\t (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n\t matrix.set(row + r, col + c, true, true);\n\t } else {\n\t matrix.set(row + r, col + c, false, true);\n\t }\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Add timing pattern bits to matrix\n\t *\n\t * Note: this function must be called before {@link setupAlignmentPattern}\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t */\n\tfunction setupTimingPattern (matrix) {\n\t var size = matrix.size;\n\n\t for (var r = 8; r < size - 8; r++) {\n\t var value = r % 2 === 0;\n\t matrix.set(r, 6, value, true);\n\t matrix.set(6, r, value, true);\n\t }\n\t}\n\n\t/**\n\t * Add alignment patterns bits to matrix\n\t *\n\t * Note: this function must be called after {@link setupTimingPattern}\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupAlignmentPattern (matrix, version) {\n\t var pos = AlignmentPattern.getPositions(version);\n\n\t for (var i = 0; i < pos.length; i++) {\n\t var row = pos[i][0];\n\t var col = pos[i][1];\n\n\t for (var r = -2; r <= 2; r++) {\n\t for (var c = -2; c <= 2; c++) {\n\t if (r === -2 || r === 2 || c === -2 || c === 2 ||\n\t (r === 0 && c === 0)) {\n\t matrix.set(row + r, col + c, true, true);\n\t } else {\n\t matrix.set(row + r, col + c, false, true);\n\t }\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Add version info bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupVersionInfo (matrix, version) {\n\t var size = matrix.size;\n\t var bits = Version.getEncodedBits(version);\n\t var row, col, mod;\n\n\t for (var i = 0; i < 18; i++) {\n\t row = Math.floor(i / 3);\n\t col = i % 3 + size - 8 - 3;\n\t mod = ((bits >> i) & 1) === 1;\n\n\t matrix.set(row, col, mod, true);\n\t matrix.set(col, row, mod, true);\n\t }\n\t}\n\n\t/**\n\t * Add format info bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @param {Number} maskPattern Mask pattern reference value\n\t */\n\tfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n\t var size = matrix.size;\n\t var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern);\n\t var i, mod;\n\n\t for (i = 0; i < 15; i++) {\n\t mod = ((bits >> i) & 1) === 1;\n\n\t // vertical\n\t if (i < 6) {\n\t matrix.set(i, 8, mod, true);\n\t } else if (i < 8) {\n\t matrix.set(i + 1, 8, mod, true);\n\t } else {\n\t matrix.set(size - 15 + i, 8, mod, true);\n\t }\n\n\t // horizontal\n\t if (i < 8) {\n\t matrix.set(8, size - i - 1, mod, true);\n\t } else if (i < 9) {\n\t matrix.set(8, 15 - i - 1 + 1, mod, true);\n\t } else {\n\t matrix.set(8, 15 - i - 1, mod, true);\n\t }\n\t }\n\n\t // fixed module\n\t matrix.set(size - 8, 8, 1, true);\n\t}\n\n\t/**\n\t * Add encoded data bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Buffer} data Data codewords\n\t */\n\tfunction setupData (matrix, data) {\n\t var size = matrix.size;\n\t var inc = -1;\n\t var row = size - 1;\n\t var bitIndex = 7;\n\t var byteIndex = 0;\n\n\t for (var col = size - 1; col > 0; col -= 2) {\n\t if (col === 6) col--;\n\n\t while (true) {\n\t for (var c = 0; c < 2; c++) {\n\t if (!matrix.isReserved(row, col - c)) {\n\t var dark = false;\n\n\t if (byteIndex < data.length) {\n\t dark = (((data[byteIndex] >>> bitIndex) & 1) === 1);\n\t }\n\n\t matrix.set(row, col - c, dark);\n\t bitIndex--;\n\n\t if (bitIndex === -1) {\n\t byteIndex++;\n\t bitIndex = 7;\n\t }\n\t }\n\t }\n\n\t row += inc;\n\n\t if (row < 0 || size <= row) {\n\t row -= inc;\n\t inc = -inc;\n\t break\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Create encoded codewords from data input\n\t *\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @param {ByteData} data Data input\n\t * @return {Buffer} Buffer containing encoded codewords\n\t */\n\tfunction createData (version, errorCorrectionLevel, segments) {\n\t // Prepare data buffer\n\t var buffer = new BitBuffer();\n\n\t segments.forEach(function (data) {\n\t // prefix data with mode indicator (4 bits)\n\t buffer.put(data.mode.bit, 4);\n\n\t // Prefix data with character count indicator.\n\t // The character count indicator is a string of bits that represents the\n\t // number of characters that are being encoded.\n\t // The character count indicator must be placed after the mode indicator\n\t // and must be a certain number of bits long, depending on the QR version\n\t // and data mode\n\t // @see {@link Mode.getCharCountIndicator}.\n\t buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version));\n\n\t // add binary data sequence to buffer\n\t data.write(buffer);\n\t });\n\n\t // Calculate required number of bits\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\t var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;\n\n\t // Add a terminator.\n\t // If the bit string is shorter than the total number of required bits,\n\t // a terminator of up to four 0s must be added to the right side of the string.\n\t // If the bit string is more than four bits shorter than the required number of bits,\n\t // add four 0s to the end.\n\t if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n\t buffer.put(0, 4);\n\t }\n\n\t // If the bit string is fewer than four bits shorter, add only the number of 0s that\n\t // are needed to reach the required number of bits.\n\n\t // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n\t // pad the string on the right with 0s to make the string's length a multiple of 8.\n\t while (buffer.getLengthInBits() % 8 !== 0) {\n\t buffer.putBit(0);\n\t }\n\n\t // Add pad bytes if the string is still shorter than the total number of required bits.\n\t // Extend the buffer to fill the data capacity of the symbol corresponding to\n\t // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n\t // and 00010001 (0x11) alternately.\n\t var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8;\n\t for (var i = 0; i < remainingByte; i++) {\n\t buffer.put(i % 2 ? 0x11 : 0xEC, 8);\n\t }\n\n\t return createCodewords(buffer, version, errorCorrectionLevel)\n\t}\n\n\t/**\n\t * Encode input data with Reed-Solomon and return codewords with\n\t * relative error correction bits\n\t *\n\t * @param {BitBuffer} bitBuffer Data to encode\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @return {Buffer} Buffer containing encoded codewords\n\t */\n\tfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n\t // Total codewords for this QR code version (Data + Error correction)\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\n\t // Total number of error correction codewords\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\n\t // Total number of data codewords\n\t var dataTotalCodewords = totalCodewords - ecTotalCodewords;\n\n\t // Total number of blocks\n\t var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel);\n\n\t // Calculate how many blocks each group should contain\n\t var blocksInGroup2 = totalCodewords % ecTotalBlocks;\n\t var blocksInGroup1 = ecTotalBlocks - blocksInGroup2;\n\n\t var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks);\n\n\t var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks);\n\t var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1;\n\n\t // Number of EC codewords is the same for both groups\n\t var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1;\n\n\t // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n\t var rs = new ReedSolomonEncoder(ecCount);\n\n\t var offset = 0;\n\t var dcData = new Array(ecTotalBlocks);\n\t var ecData = new Array(ecTotalBlocks);\n\t var maxDataSize = 0;\n\t var buffer = BufferUtil.from(bitBuffer.buffer);\n\n\t // Divide the buffer into the required number of blocks\n\t for (var b = 0; b < ecTotalBlocks; b++) {\n\t var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2;\n\n\t // extract a block of data from buffer\n\t dcData[b] = buffer.slice(offset, offset + dataSize);\n\n\t // Calculate EC codewords for this data block\n\t ecData[b] = rs.encode(dcData[b]);\n\n\t offset += dataSize;\n\t maxDataSize = Math.max(maxDataSize, dataSize);\n\t }\n\n\t // Create final data\n\t // Interleave the data and error correction codewords from each block\n\t var data = BufferUtil.alloc(totalCodewords);\n\t var index = 0;\n\t var i, r;\n\n\t // Add data codewords\n\t for (i = 0; i < maxDataSize; i++) {\n\t for (r = 0; r < ecTotalBlocks; r++) {\n\t if (i < dcData[r].length) {\n\t data[index++] = dcData[r][i];\n\t }\n\t }\n\t }\n\n\t // Apped EC codewords\n\t for (i = 0; i < ecCount; i++) {\n\t for (r = 0; r < ecTotalBlocks; r++) {\n\t data[index++] = ecData[r][i];\n\t }\n\t }\n\n\t return data\n\t}\n\n\t/**\n\t * Build QR Code symbol\n\t *\n\t * @param {String} data Input string\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n\t * @param {MaskPattern} maskPattern Mask pattern\n\t * @return {Object} Object containing symbol data\n\t */\n\tfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n\t var segments;\n\n\t if (isArray(data)) {\n\t segments = Segments.fromArray(data);\n\t } else if (typeof data === 'string') {\n\t var estimatedVersion = version;\n\n\t if (!estimatedVersion) {\n\t var rawSegments = Segments.rawSplit(data);\n\n\t // Estimate best version that can contain raw splitted segments\n\t estimatedVersion = Version.getBestVersionForData(rawSegments,\n\t errorCorrectionLevel);\n\t }\n\n\t // Build optimized segments\n\t // If estimated version is undefined, try with the highest version\n\t segments = Segments.fromString(data, estimatedVersion || 40);\n\t } else {\n\t throw new Error('Invalid data')\n\t }\n\n\t // Get the min version that can contain data\n\t var bestVersion = Version.getBestVersionForData(segments,\n\t errorCorrectionLevel);\n\n\t // If no version is found, data cannot be stored\n\t if (!bestVersion) {\n\t throw new Error('The amount of data is too big to be stored in a QR Code')\n\t }\n\n\t // If not specified, use min version as default\n\t if (!version) {\n\t version = bestVersion;\n\n\t // Check if the specified version can contain the data\n\t } else if (version < bestVersion) {\n\t throw new Error('\\n' +\n\t 'The chosen QR Code version cannot contain this amount of data.\\n' +\n\t 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n\t )\n\t }\n\n\t var dataBits = createData(version, errorCorrectionLevel, segments);\n\n\t // Allocate matrix buffer\n\t var moduleCount = Utils.getSymbolSize(version);\n\t var modules = new BitMatrix(moduleCount);\n\n\t // Add function modules\n\t setupFinderPattern(modules, version);\n\t setupTimingPattern(modules);\n\t setupAlignmentPattern(modules, version);\n\n\t // Add temporary dummy bits for format info just to set them as reserved.\n\t // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n\t // since the masking operation must be performed only on the encoding region.\n\t // These blocks will be replaced with correct values later in code.\n\t setupFormatInfo(modules, errorCorrectionLevel, 0);\n\n\t if (version >= 7) {\n\t setupVersionInfo(modules, version);\n\t }\n\n\t // Add data codewords\n\t setupData(modules, dataBits);\n\n\t if (isNaN(maskPattern)) {\n\t // Find best mask pattern\n\t maskPattern = MaskPattern.getBestMask(modules,\n\t setupFormatInfo.bind(null, modules, errorCorrectionLevel));\n\t }\n\n\t // Apply mask pattern\n\t MaskPattern.applyMask(maskPattern, modules);\n\n\t // Replace format info bits with correct values\n\t setupFormatInfo(modules, errorCorrectionLevel, maskPattern);\n\n\t return {\n\t modules: modules,\n\t version: version,\n\t errorCorrectionLevel: errorCorrectionLevel,\n\t maskPattern: maskPattern,\n\t segments: segments\n\t }\n\t}\n\n\t/**\n\t * QR Code\n\t *\n\t * @param {String | Array} data Input data\n\t * @param {Object} options Optional configurations\n\t * @param {Number} options.version QR Code version\n\t * @param {String} options.errorCorrectionLevel Error correction level\n\t * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n\t */\n\texports.create = function create (data, options) {\n\t if (typeof data === 'undefined' || data === '') {\n\t throw new Error('No input text')\n\t }\n\n\t var errorCorrectionLevel = ECLevel.M;\n\t var version;\n\t var mask;\n\n\t if (typeof options !== 'undefined') {\n\t // Use higher error correction level as default\n\t errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M);\n\t version = Version.from(options.version);\n\t mask = MaskPattern.from(options.maskPattern);\n\n\t if (options.toSJISFunc) {\n\t Utils.setToSJISFunction(options.toSJISFunc);\n\t }\n\t }\n\n\t return createSymbol(data, version, errorCorrectionLevel, mask)\n\t};\n\n\t},{\"../utils/buffer\":28,\"./alignment-pattern\":2,\"./bit-buffer\":4,\"./bit-matrix\":5,\"./error-correction-code\":7,\"./error-correction-level\":8,\"./finder-pattern\":9,\"./format-info\":10,\"./mask-pattern\":13,\"./mode\":14,\"./reed-solomon-encoder\":18,\"./segments\":20,\"./utils\":21,\"./version\":23,\"isarray\":33}],18:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Polynomial = require('./polynomial');\n\tvar Buffer = require('buffer').Buffer;\n\n\tfunction ReedSolomonEncoder (degree) {\n\t this.genPoly = undefined;\n\t this.degree = degree;\n\n\t if (this.degree) this.initialize(this.degree);\n\t}\n\n\t/**\n\t * Initialize the encoder.\n\t * The input param should correspond to the number of error correction codewords.\n\t *\n\t * @param {Number} degree\n\t */\n\tReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n\t // create an irreducible generator polynomial\n\t this.degree = degree;\n\t this.genPoly = Polynomial.generateECPolynomial(this.degree);\n\t};\n\n\t/**\n\t * Encodes a chunk of data\n\t *\n\t * @param {Buffer} data Buffer containing input data\n\t * @return {Buffer} Buffer containing encoded data\n\t */\n\tReedSolomonEncoder.prototype.encode = function encode (data) {\n\t if (!this.genPoly) {\n\t throw new Error('Encoder not initialized')\n\t }\n\n\t // Calculate EC for this data block\n\t // extends data size to data+genPoly size\n\t var pad = BufferUtil.alloc(this.degree);\n\t var paddedData = Buffer.concat([data, pad], data.length + this.degree);\n\n\t // The error correction codewords are the remainder after dividing the data codewords\n\t // by a generator polynomial\n\t var remainder = Polynomial.mod(paddedData, this.genPoly);\n\n\t // return EC data blocks (last n byte, where n is the degree of genPoly)\n\t // If coefficients number in remainder are less than genPoly degree,\n\t // pad with 0s to the left to reach the needed number of coefficients\n\t var start = this.degree - remainder.length;\n\t if (start > 0) {\n\t var buff = BufferUtil.alloc(this.degree);\n\t remainder.copy(buff, start);\n\n\t return buff\n\t }\n\n\t return remainder\n\t};\n\n\tmodule.exports = ReedSolomonEncoder;\n\n\t},{\"../utils/buffer\":28,\"./polynomial\":16,\"buffer\":30}],19:[function(require,module,exports){\n\tvar numeric = '[0-9]+';\n\tvar alphanumeric = '[A-Z $%*+\\\\-./:]+';\n\tvar kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n\t '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n\t '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n\t '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+';\n\tkanji = kanji.replace(/u/g, '\\\\u');\n\n\tvar byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+';\n\n\texports.KANJI = new RegExp(kanji, 'g');\n\texports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g');\n\texports.BYTE = new RegExp(byte, 'g');\n\texports.NUMERIC = new RegExp(numeric, 'g');\n\texports.ALPHANUMERIC = new RegExp(alphanumeric, 'g');\n\n\tvar TEST_KANJI = new RegExp('^' + kanji + '$');\n\tvar TEST_NUMERIC = new RegExp('^' + numeric + '$');\n\tvar TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$');\n\n\texports.testKanji = function testKanji (str) {\n\t return TEST_KANJI.test(str)\n\t};\n\n\texports.testNumeric = function testNumeric (str) {\n\t return TEST_NUMERIC.test(str)\n\t};\n\n\texports.testAlphanumeric = function testAlphanumeric (str) {\n\t return TEST_ALPHANUMERIC.test(str)\n\t};\n\n\t},{}],20:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\tvar NumericData = require('./numeric-data');\n\tvar AlphanumericData = require('./alphanumeric-data');\n\tvar ByteData = require('./byte-data');\n\tvar KanjiData = require('./kanji-data');\n\tvar Regex = require('./regex');\n\tvar Utils = require('./utils');\n\tvar dijkstra = require('dijkstrajs');\n\n\t/**\n\t * Returns UTF8 byte length\n\t *\n\t * @param {String} str Input string\n\t * @return {Number} Number of byte\n\t */\n\tfunction getStringByteLength (str) {\n\t return unescape(encodeURIComponent(str)).length\n\t}\n\n\t/**\n\t * Get a list of segments of the specified mode\n\t * from a string\n\t *\n\t * @param {Mode} mode Segment mode\n\t * @param {String} str String to process\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction getSegments (regex, mode, str) {\n\t var segments = [];\n\t var result;\n\n\t while ((result = regex.exec(str)) !== null) {\n\t segments.push({\n\t data: result[0],\n\t index: result.index,\n\t mode: mode,\n\t length: result[0].length\n\t });\n\t }\n\n\t return segments\n\t}\n\n\t/**\n\t * Extracts a series of segments with the appropriate\n\t * modes from a string\n\t *\n\t * @param {String} dataStr Input string\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction getSegmentsFromString (dataStr) {\n\t var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr);\n\t var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr);\n\t var byteSegs;\n\t var kanjiSegs;\n\n\t if (Utils.isKanjiModeEnabled()) {\n\t byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr);\n\t kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr);\n\t } else {\n\t byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr);\n\t kanjiSegs = [];\n\t }\n\n\t var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs);\n\n\t return segs\n\t .sort(function (s1, s2) {\n\t return s1.index - s2.index\n\t })\n\t .map(function (obj) {\n\t return {\n\t data: obj.data,\n\t mode: obj.mode,\n\t length: obj.length\n\t }\n\t })\n\t}\n\n\t/**\n\t * Returns how many bits are needed to encode a string of\n\t * specified length with the specified mode\n\t *\n\t * @param {Number} length String length\n\t * @param {Mode} mode Segment mode\n\t * @return {Number} Bit length\n\t */\n\tfunction getSegmentBitsLength (length, mode) {\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return NumericData.getBitsLength(length)\n\t case Mode.ALPHANUMERIC:\n\t return AlphanumericData.getBitsLength(length)\n\t case Mode.KANJI:\n\t return KanjiData.getBitsLength(length)\n\t case Mode.BYTE:\n\t return ByteData.getBitsLength(length)\n\t }\n\t}\n\n\t/**\n\t * Merges adjacent segments which have the same mode\n\t *\n\t * @param {Array} segs Array of object with segments data\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction mergeSegments (segs) {\n\t return segs.reduce(function (acc, curr) {\n\t var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null;\n\t if (prevSeg && prevSeg.mode === curr.mode) {\n\t acc[acc.length - 1].data += curr.data;\n\t return acc\n\t }\n\n\t acc.push(curr);\n\t return acc\n\t }, [])\n\t}\n\n\t/**\n\t * Generates a list of all possible nodes combination which\n\t * will be used to build a segments graph.\n\t *\n\t * Nodes are divided by groups. Each group will contain a list of all the modes\n\t * in which is possible to encode the given text.\n\t *\n\t * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n\t * The group for '12345' will contain then 3 objects, one for each\n\t * possible encoding mode.\n\t *\n\t * Each node represents a possible segment.\n\t *\n\t * @param {Array} segs Array of object with segments data\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction buildNodes (segs) {\n\t var nodes = [];\n\t for (var i = 0; i < segs.length; i++) {\n\t var seg = segs[i];\n\n\t switch (seg.mode) {\n\t case Mode.NUMERIC:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n\t { data: seg.data, mode: Mode.BYTE, length: seg.length }\n\t ]);\n\t break\n\t case Mode.ALPHANUMERIC:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.BYTE, length: seg.length }\n\t ]);\n\t break\n\t case Mode.KANJI:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n\t ]);\n\t break\n\t case Mode.BYTE:\n\t nodes.push([\n\t { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n\t ]);\n\t }\n\t }\n\n\t return nodes\n\t}\n\n\t/**\n\t * Builds a graph from a list of nodes.\n\t * All segments in each node group will be connected with all the segments of\n\t * the next group and so on.\n\t *\n\t * At each connection will be assigned a weight depending on the\n\t * segment's byte length.\n\t *\n\t * @param {Array} nodes Array of object with segments data\n\t * @param {Number} version QR Code version\n\t * @return {Object} Graph of all possible segments\n\t */\n\tfunction buildGraph (nodes, version) {\n\t var table = {};\n\t var graph = {'start': {}};\n\t var prevNodeIds = ['start'];\n\n\t for (var i = 0; i < nodes.length; i++) {\n\t var nodeGroup = nodes[i];\n\t var currentNodeIds = [];\n\n\t for (var j = 0; j < nodeGroup.length; j++) {\n\t var node = nodeGroup[j];\n\t var key = '' + i + j;\n\n\t currentNodeIds.push(key);\n\t table[key] = { node: node, lastCount: 0 };\n\t graph[key] = {};\n\n\t for (var n = 0; n < prevNodeIds.length; n++) {\n\t var prevNodeId = prevNodeIds[n];\n\n\t if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n\t graph[prevNodeId][key] =\n\t getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n\t getSegmentBitsLength(table[prevNodeId].lastCount, node.mode);\n\n\t table[prevNodeId].lastCount += node.length;\n\t } else {\n\t if (table[prevNodeId]) table[prevNodeId].lastCount = node.length;\n\n\t graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n\t 4 + Mode.getCharCountIndicator(node.mode, version); // switch cost\n\t }\n\t }\n\t }\n\n\t prevNodeIds = currentNodeIds;\n\t }\n\n\t for (n = 0; n < prevNodeIds.length; n++) {\n\t graph[prevNodeIds[n]]['end'] = 0;\n\t }\n\n\t return { map: graph, table: table }\n\t}\n\n\t/**\n\t * Builds a segment from a specified data and mode.\n\t * If a mode is not specified, the more suitable will be used.\n\t *\n\t * @param {String} data Input data\n\t * @param {Mode | String} modesHint Data mode\n\t * @return {Segment} Segment\n\t */\n\tfunction buildSingleSegment (data, modesHint) {\n\t var mode;\n\t var bestMode = Mode.getBestModeForData(data);\n\n\t mode = Mode.from(modesHint, bestMode);\n\n\t // Make sure data can be encoded\n\t if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n\t throw new Error('\"' + data + '\"' +\n\t ' cannot be encoded with mode ' + Mode.toString(mode) +\n\t '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n\t }\n\n\t // Use Mode.BYTE if Kanji support is disabled\n\t if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n\t mode = Mode.BYTE;\n\t }\n\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return new NumericData(data)\n\n\t case Mode.ALPHANUMERIC:\n\t return new AlphanumericData(data)\n\n\t case Mode.KANJI:\n\t return new KanjiData(data)\n\n\t case Mode.BYTE:\n\t return new ByteData(data)\n\t }\n\t}\n\n\t/**\n\t * Builds a list of segments from an array.\n\t * Array can contain Strings or Objects with segment's info.\n\t *\n\t * For each item which is a string, will be generated a segment with the given\n\t * string and the more appropriate encoding mode.\n\t *\n\t * For each item which is an object, will be generated a segment with the given\n\t * data and mode.\n\t * Objects must contain at least the property \"data\".\n\t * If property \"mode\" is not present, the more suitable mode will be used.\n\t *\n\t * @param {Array} array Array of objects with segments data\n\t * @return {Array} Array of Segments\n\t */\n\texports.fromArray = function fromArray (array) {\n\t return array.reduce(function (acc, seg) {\n\t if (typeof seg === 'string') {\n\t acc.push(buildSingleSegment(seg, null));\n\t } else if (seg.data) {\n\t acc.push(buildSingleSegment(seg.data, seg.mode));\n\t }\n\n\t return acc\n\t }, [])\n\t};\n\n\t/**\n\t * Builds an optimized sequence of segments from a string,\n\t * which will produce the shortest possible bitstream.\n\t *\n\t * @param {String} data Input string\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of segments\n\t */\n\texports.fromString = function fromString (data, version) {\n\t var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled());\n\n\t var nodes = buildNodes(segs);\n\t var graph = buildGraph(nodes, version);\n\t var path = dijkstra.find_path(graph.map, 'start', 'end');\n\n\t var optimizedSegs = [];\n\t for (var i = 1; i < path.length - 1; i++) {\n\t optimizedSegs.push(graph.table[path[i]].node);\n\t }\n\n\t return exports.fromArray(mergeSegments(optimizedSegs))\n\t};\n\n\t/**\n\t * Splits a string in various segments with the modes which\n\t * best represent their content.\n\t * The produced segments are far from being optimized.\n\t * The output of this function is only used to estimate a QR Code version\n\t * which may contain the data.\n\t *\n\t * @param {string} data Input string\n\t * @return {Array} Array of segments\n\t */\n\texports.rawSplit = function rawSplit (data) {\n\t return exports.fromArray(\n\t getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\t )\n\t};\n\n\t},{\"./alphanumeric-data\":3,\"./byte-data\":6,\"./kanji-data\":12,\"./mode\":14,\"./numeric-data\":15,\"./regex\":19,\"./utils\":21,\"dijkstrajs\":31}],21:[function(require,module,exports){\n\tvar toSJISFunction;\n\tvar CODEWORDS_COUNT = [\n\t 0, // Not used\n\t 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n\t 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n\t 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n\t 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n\t];\n\n\t/**\n\t * Returns the QR Code size for the specified version\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} size of QR code\n\t */\n\texports.getSymbolSize = function getSymbolSize (version) {\n\t if (!version) throw new Error('\"version\" cannot be null or undefined')\n\t if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n\t return version * 4 + 17\n\t};\n\n\t/**\n\t * Returns the total number of codewords used to store data and EC information.\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} Data length in bits\n\t */\n\texports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n\t return CODEWORDS_COUNT[version]\n\t};\n\n\t/**\n\t * Encode data with Bose-Chaudhuri-Hocquenghem\n\t *\n\t * @param {Number} data Value to encode\n\t * @return {Number} Encoded value\n\t */\n\texports.getBCHDigit = function (data) {\n\t var digit = 0;\n\n\t while (data !== 0) {\n\t digit++;\n\t data >>>= 1;\n\t }\n\n\t return digit\n\t};\n\n\texports.setToSJISFunction = function setToSJISFunction (f) {\n\t if (typeof f !== 'function') {\n\t throw new Error('\"toSJISFunc\" is not a valid function.')\n\t }\n\n\t toSJISFunction = f;\n\t};\n\n\texports.isKanjiModeEnabled = function () {\n\t return typeof toSJISFunction !== 'undefined'\n\t};\n\n\texports.toSJIS = function toSJIS (kanji) {\n\t return toSJISFunction(kanji)\n\t};\n\n\t},{}],22:[function(require,module,exports){\n\t/**\n\t * Check if QR Code version is valid\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Boolean} true if valid version, false otherwise\n\t */\n\texports.isValid = function isValid (version) {\n\t return !isNaN(version) && version >= 1 && version <= 40\n\t};\n\n\t},{}],23:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\tvar ECCode = require('./error-correction-code');\n\tvar ECLevel = require('./error-correction-level');\n\tvar Mode = require('./mode');\n\tvar VersionCheck = require('./version-check');\n\tvar isArray = require('isarray');\n\n\t// Generator polynomial used to encode version information\n\tvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\n\tvar G18_BCH = Utils.getBCHDigit(G18);\n\n\tfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n\t for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n\t if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n\t return currentVersion\n\t }\n\t }\n\n\t return undefined\n\t}\n\n\tfunction getReservedBitsCount (mode, version) {\n\t // Character count indicator + mode indicator bits\n\t return Mode.getCharCountIndicator(mode, version) + 4\n\t}\n\n\tfunction getTotalBitsFromDataArray (segments, version) {\n\t var totalBits = 0;\n\n\t segments.forEach(function (data) {\n\t var reservedBits = getReservedBitsCount(data.mode, version);\n\t totalBits += reservedBits + data.getBitsLength();\n\t });\n\n\t return totalBits\n\t}\n\n\tfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n\t for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n\t var length = getTotalBitsFromDataArray(segments, currentVersion);\n\t if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n\t return currentVersion\n\t }\n\t }\n\n\t return undefined\n\t}\n\n\t/**\n\t * Returns version number from a value.\n\t * If value is not a valid version, returns defaultValue\n\t *\n\t * @param {Number|String} value QR Code version\n\t * @param {Number} defaultValue Fallback value\n\t * @return {Number} QR Code version number\n\t */\n\texports.from = function from (value, defaultValue) {\n\t if (VersionCheck.isValid(value)) {\n\t return parseInt(value, 10)\n\t }\n\n\t return defaultValue\n\t};\n\n\t/**\n\t * Returns how much data can be stored with the specified QR code version\n\t * and error correction level\n\t *\n\t * @param {Number} version QR Code version (1-40)\n\t * @param {Number} errorCorrectionLevel Error correction level\n\t * @param {Mode} mode Data mode\n\t * @return {Number} Quantity of storable data\n\t */\n\texports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n\t if (!VersionCheck.isValid(version)) {\n\t throw new Error('Invalid QR Code version')\n\t }\n\n\t // Use Byte mode as default\n\t if (typeof mode === 'undefined') mode = Mode.BYTE;\n\n\t // Total codewords for this QR code version (Data + Error correction)\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\n\t // Total number of error correction codewords\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\n\t // Total number of data codewords\n\t var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;\n\n\t if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n\t var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version);\n\n\t // Return max number of storable codewords\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return Math.floor((usableBits / 10) * 3)\n\n\t case Mode.ALPHANUMERIC:\n\t return Math.floor((usableBits / 11) * 2)\n\n\t case Mode.KANJI:\n\t return Math.floor(usableBits / 13)\n\n\t case Mode.BYTE:\n\t default:\n\t return Math.floor(usableBits / 8)\n\t }\n\t};\n\n\t/**\n\t * Returns the minimum version needed to contain the amount of data\n\t *\n\t * @param {Segment} data Segment of data\n\t * @param {Number} [errorCorrectionLevel=H] Error correction level\n\t * @param {Mode} mode Data mode\n\t * @return {Number} QR Code version\n\t */\n\texports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n\t var seg;\n\n\t var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M);\n\n\t if (isArray(data)) {\n\t if (data.length > 1) {\n\t return getBestVersionForMixedData(data, ecl)\n\t }\n\n\t if (data.length === 0) {\n\t return 1\n\t }\n\n\t seg = data[0];\n\t } else {\n\t seg = data;\n\t }\n\n\t return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n\t};\n\n\t/**\n\t * Returns version information with relative error correction bits\n\t *\n\t * The version information is included in QR Code symbols of version 7 or larger.\n\t * It consists of an 18-bit sequence containing 6 data bits,\n\t * with 12 error correction bits calculated using the (18, 6) Golay code.\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} Encoded version info bits\n\t */\n\texports.getEncodedBits = function getEncodedBits (version) {\n\t if (!VersionCheck.isValid(version) || version < 7) {\n\t throw new Error('Invalid QR Code version')\n\t }\n\n\t var d = version << 12;\n\n\t while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n\t d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH));\n\t }\n\n\t return (version << 12) | d\n\t};\n\n\t},{\"./error-correction-code\":7,\"./error-correction-level\":8,\"./mode\":14,\"./utils\":21,\"./version-check\":22,\"isarray\":33}],24:[function(require,module,exports){\n\n\tvar canPromise = require('./can-promise');\n\n\tvar QRCode = require('./core/qrcode');\n\tvar CanvasRenderer = require('./renderer/canvas');\n\tvar SvgRenderer = require('./renderer/svg-tag.js');\n\n\tfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n\t var args = [].slice.call(arguments, 1);\n\t var argsNum = args.length;\n\t var isLastArgCb = typeof args[argsNum - 1] === 'function';\n\n\t if (!isLastArgCb && !canPromise()) {\n\t throw new Error('Callback required as last argument')\n\t }\n\n\t if (isLastArgCb) {\n\t if (argsNum < 2) {\n\t throw new Error('Too few arguments provided')\n\t }\n\n\t if (argsNum === 2) {\n\t cb = text;\n\t text = canvas;\n\t canvas = opts = undefined;\n\t } else if (argsNum === 3) {\n\t if (canvas.getContext && typeof cb === 'undefined') {\n\t cb = opts;\n\t opts = undefined;\n\t } else {\n\t cb = opts;\n\t opts = text;\n\t text = canvas;\n\t canvas = undefined;\n\t }\n\t }\n\t } else {\n\t if (argsNum < 1) {\n\t throw new Error('Too few arguments provided')\n\t }\n\n\t if (argsNum === 1) {\n\t text = canvas;\n\t canvas = opts = undefined;\n\t } else if (argsNum === 2 && !canvas.getContext) {\n\t opts = text;\n\t text = canvas;\n\t canvas = undefined;\n\t }\n\n\t return new Promise(function (resolve, reject) {\n\t try {\n\t var data = QRCode.create(text, opts);\n\t resolve(renderFunc(data, canvas, opts));\n\t } catch (e) {\n\t reject(e);\n\t }\n\t })\n\t }\n\n\t try {\n\t var data = QRCode.create(text, opts);\n\t cb(null, renderFunc(data, canvas, opts));\n\t } catch (e) {\n\t cb(e);\n\t }\n\t}\n\n\texports.create = QRCode.create;\n\texports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render);\n\texports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL);\n\n\t// only svg for now.\n\texports.toString = renderCanvas.bind(null, function (data, _, opts) {\n\t return SvgRenderer.render(data, opts)\n\t});\n\n\t},{\"./can-promise\":1,\"./core/qrcode\":17,\"./renderer/canvas\":25,\"./renderer/svg-tag.js\":26}],25:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tfunction clearCanvas (ctx, canvas, size) {\n\t ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n\t if (!canvas.style) canvas.style = {};\n\t canvas.height = size;\n\t canvas.width = size;\n\t canvas.style.height = size + 'px';\n\t canvas.style.width = size + 'px';\n\t}\n\n\tfunction getCanvasElement () {\n\t try {\n\t return document.createElement('canvas')\n\t } catch (e) {\n\t throw new Error('You need to specify a canvas element')\n\t }\n\t}\n\n\texports.render = function render (qrData, canvas, options) {\n\t var opts = options;\n\t var canvasEl = canvas;\n\n\t if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n\t opts = canvas;\n\t canvas = undefined;\n\t }\n\n\t if (!canvas) {\n\t canvasEl = getCanvasElement();\n\t }\n\n\t opts = Utils.getOptions(opts);\n\t var size = Utils.getImageWidth(qrData.modules.size, opts);\n\n\t var ctx = canvasEl.getContext('2d');\n\t var image = ctx.createImageData(size, size);\n\t Utils.qrToImageData(image.data, qrData, opts);\n\n\t clearCanvas(ctx, canvasEl, size);\n\t ctx.putImageData(image, 0, 0);\n\n\t return canvasEl\n\t};\n\n\texports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n\t var opts = options;\n\n\t if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n\t opts = canvas;\n\t canvas = undefined;\n\t }\n\n\t if (!opts) opts = {};\n\n\t var canvasEl = exports.render(qrData, canvas, opts);\n\n\t var type = opts.type || 'image/png';\n\t var rendererOpts = opts.rendererOpts || {};\n\n\t return canvasEl.toDataURL(type, rendererOpts.quality)\n\t};\n\n\t},{\"./utils\":27}],26:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tfunction getColorAttrib (color, attrib) {\n\t var alpha = color.a / 255;\n\t var str = attrib + '=\"' + color.hex + '\"';\n\n\t return alpha < 1\n\t ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n\t : str\n\t}\n\n\tfunction svgCmd (cmd, x, y) {\n\t var str = cmd + x;\n\t if (typeof y !== 'undefined') str += ' ' + y;\n\n\t return str\n\t}\n\n\tfunction qrToPath (data, size, margin) {\n\t var path = '';\n\t var moveBy = 0;\n\t var newRow = false;\n\t var lineLength = 0;\n\n\t for (var i = 0; i < data.length; i++) {\n\t var col = Math.floor(i % size);\n\t var row = Math.floor(i / size);\n\n\t if (!col && !newRow) newRow = true;\n\n\t if (data[i]) {\n\t lineLength++;\n\n\t if (!(i > 0 && col > 0 && data[i - 1])) {\n\t path += newRow\n\t ? svgCmd('M', col + margin, 0.5 + row + margin)\n\t : svgCmd('m', moveBy, 0);\n\n\t moveBy = 0;\n\t newRow = false;\n\t }\n\n\t if (!(col + 1 < size && data[i + 1])) {\n\t path += svgCmd('h', lineLength);\n\t lineLength = 0;\n\t }\n\t } else {\n\t moveBy++;\n\t }\n\t }\n\n\t return path\n\t}\n\n\texports.render = function render (qrData, options, cb) {\n\t var opts = Utils.getOptions(options);\n\t var size = qrData.modules.size;\n\t var data = qrData.modules.data;\n\t var qrcodesize = size + opts.margin * 2;\n\n\t var bg = !opts.color.light.a\n\t ? ''\n\t : '<path ' + getColorAttrib(opts.color.light, 'fill') +\n\t ' d=\"M0 0h' + qrcodesize + 'v' + qrcodesize + 'H0z\"/>';\n\n\t var path =\n\t '<path ' + getColorAttrib(opts.color.dark, 'stroke') +\n\t ' d=\"' + qrToPath(data, size, opts.margin) + '\"/>';\n\n\t var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"';\n\n\t var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" ';\n\n\t var svgTag = '<svg xmlns=\"http://www.w3.org/2000/svg\" ' + width + viewBox + ' shape-rendering=\"crispEdges\">' + bg + path + '</svg>\\n';\n\n\t if (typeof cb === 'function') {\n\t cb(null, svgTag);\n\t }\n\n\t return svgTag\n\t};\n\n\t},{\"./utils\":27}],27:[function(require,module,exports){\n\tfunction hex2rgba (hex) {\n\t if (typeof hex === 'number') {\n\t hex = hex.toString();\n\t }\n\n\t if (typeof hex !== 'string') {\n\t throw new Error('Color should be defined as hex string')\n\t }\n\n\t var hexCode = hex.slice().replace('#', '').split('');\n\t if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n\t throw new Error('Invalid hex color: ' + hex)\n\t }\n\n\t // Convert from short to long form (fff -> ffffff)\n\t if (hexCode.length === 3 || hexCode.length === 4) {\n\t hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n\t return [c, c]\n\t }));\n\t }\n\n\t // Add default alpha value\n\t if (hexCode.length === 6) hexCode.push('F', 'F');\n\n\t var hexValue = parseInt(hexCode.join(''), 16);\n\n\t return {\n\t r: (hexValue >> 24) & 255,\n\t g: (hexValue >> 16) & 255,\n\t b: (hexValue >> 8) & 255,\n\t a: hexValue & 255,\n\t hex: '#' + hexCode.slice(0, 6).join('')\n\t }\n\t}\n\n\texports.getOptions = function getOptions (options) {\n\t if (!options) options = {};\n\t if (!options.color) options.color = {};\n\n\t var margin = typeof options.margin === 'undefined' ||\n\t options.margin === null ||\n\t options.margin < 0 ? 4 : options.margin;\n\n\t var width = options.width && options.width >= 21 ? options.width : undefined;\n\t var scale = options.scale || 4;\n\n\t return {\n\t width: width,\n\t scale: width ? 4 : scale,\n\t margin: margin,\n\t color: {\n\t dark: hex2rgba(options.color.dark || '#000000ff'),\n\t light: hex2rgba(options.color.light || '#ffffffff')\n\t },\n\t type: options.type,\n\t rendererOpts: options.rendererOpts || {}\n\t }\n\t};\n\n\texports.getScale = function getScale (qrSize, opts) {\n\t return opts.width && opts.width >= qrSize + opts.margin * 2\n\t ? opts.width / (qrSize + opts.margin * 2)\n\t : opts.scale\n\t};\n\n\texports.getImageWidth = function getImageWidth (qrSize, opts) {\n\t var scale = exports.getScale(qrSize, opts);\n\t return Math.floor((qrSize + opts.margin * 2) * scale)\n\t};\n\n\texports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n\t var size = qr.modules.size;\n\t var data = qr.modules.data;\n\t var scale = exports.getScale(size, opts);\n\t var symbolSize = Math.floor((size + opts.margin * 2) * scale);\n\t var scaledMargin = opts.margin * scale;\n\t var palette = [opts.color.light, opts.color.dark];\n\n\t for (var i = 0; i < symbolSize; i++) {\n\t for (var j = 0; j < symbolSize; j++) {\n\t var posDst = (i * symbolSize + j) * 4;\n\t var pxColor = opts.color.light;\n\n\t if (i >= scaledMargin && j >= scaledMargin &&\n\t i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n\t var iSrc = Math.floor((i - scaledMargin) / scale);\n\t var jSrc = Math.floor((j - scaledMargin) / scale);\n\t pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0];\n\t }\n\n\t imgData[posDst++] = pxColor.r;\n\t imgData[posDst++] = pxColor.g;\n\t imgData[posDst++] = pxColor.b;\n\t imgData[posDst] = pxColor.a;\n\t }\n\t }\n\t};\n\n\t},{}],28:[function(require,module,exports){\n\n\tvar isArray = require('isarray');\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances be augmented?\n\t try {\n\t var arr = new Uint8Array(1);\n\t arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }};\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tvar K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT\n\t ? 0x7fffffff\n\t : 0x3fffffff;\n\n\tfunction Buffer (arg, offset, length) {\n\t if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n\t return new Buffer(arg, offset, length)\n\t }\n\n\t if (typeof arg === 'number') {\n\t return allocUnsafe(this, arg)\n\t }\n\n\t return from(this, arg, offset, length)\n\t}\n\n\tif (Buffer.TYPED_ARRAY_SUPPORT) {\n\t Buffer.prototype.__proto__ = Uint8Array.prototype;\n\t Buffer.__proto__ = Uint8Array;\n\n\t // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n\t if (typeof Symbol !== 'undefined' && Symbol.species &&\n\t Buffer[Symbol.species] === Buffer) {\n\t Object.defineProperty(Buffer, Symbol.species, {\n\t value: null,\n\t configurable: true,\n\t enumerable: false,\n\t writable: false\n\t });\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction isnan (val) {\n\t return val !== val // eslint-disable-line no-self-compare\n\t}\n\n\tfunction createBuffer (that, length) {\n\t var buf;\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t buf = new Uint8Array(length);\n\t buf.__proto__ = Buffer.prototype;\n\t } else {\n\t // Fallback: Return an object instance of the Buffer class\n\t buf = that;\n\t if (buf === null) {\n\t buf = new Buffer(length);\n\t }\n\t buf.length = length;\n\t }\n\n\t return buf\n\t}\n\n\tfunction allocUnsafe (that, size) {\n\t var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n\t if (!Buffer.TYPED_ARRAY_SUPPORT) {\n\t for (var i = 0; i < size; ++i) {\n\t buf[i] = 0;\n\t }\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromString (that, string) {\n\t var length = byteLength(string) | 0;\n\t var buf = createBuffer(that, length);\n\n\t var actual = buf.write(string);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (that, array) {\n\t var length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t var buf = createBuffer(that, length);\n\t for (var i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayBuffer (that, array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\\'offset\\' is out of bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\\'length\\' is out of bounds')\n\t }\n\n\t var buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new Uint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new Uint8Array(array, byteOffset);\n\t } else {\n\t buf = new Uint8Array(array, byteOffset, length);\n\t }\n\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t // Return an augmented `Uint8Array` instance, for best performance\n\t buf.__proto__ = Buffer.prototype;\n\t } else {\n\t // Fallback: Return an object instance of the Buffer class\n\t buf = fromArrayLike(that, buf);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromObject (that, obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t var len = checked(obj.length) | 0;\n\t var buf = createBuffer(that, len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj) {\n\t if ((typeof ArrayBuffer !== 'undefined' &&\n\t obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n\t if (typeof obj.length !== 'number' || isnan(obj.length)) {\n\t return createBuffer(that, 0)\n\t }\n\t return fromArrayLike(that, obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(that, obj.data)\n\t }\n\t }\n\n\t throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t var codePoint;\n\t var length = string.length;\n\t var leadSurrogate = null;\n\t var bytes = [];\n\n\t for (var i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction byteLength (string) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n\t (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t string = '' + string;\n\t }\n\n\t var len = string.length;\n\t if (len === 0) return 0\n\n\t return utf8ToBytes(string).length\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t for (var i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction from (that, value, offset, length) {\n\t if (typeof value === 'number') {\n\t throw new TypeError('\"value\" argument must not be a number')\n\t }\n\n\t if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n\t return fromArrayBuffer(that, value, offset, length)\n\t }\n\n\t if (typeof value === 'string') {\n\t return fromString(that, value)\n\t }\n\n\t return fromObject(that, value)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length])\n\t } else if (isFinite(offset)) {\n\t offset = offset | 0;\n\t if (isFinite(length)) {\n\t length = length | 0;\n\t } else {\n\t length = undefined;\n\t }\n\t }\n\n\t var remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t return utf8Write(this, string, offset, length)\n\t};\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t var len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t var newBuf;\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t newBuf.__proto__ = Buffer.prototype;\n\t } else {\n\t var sliceLen = end - start;\n\t newBuf = new Buffer(sliceLen, undefined);\n\t for (var i = 0; i < sliceLen; ++i) {\n\t newBuf[i] = this[i + start];\n\t }\n\t }\n\n\t return newBuf\n\t};\n\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t var len = end - start;\n\t var i;\n\n\t if (this === target && start < targetStart && targetStart < end) {\n\t // descending copy from end\n\t for (i = len - 1; i >= 0; --i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n\t // ascending copy from start\n\t for (i = 0; i < len; ++i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else {\n\t Uint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, start + len),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\tBuffer.prototype.fill = function fill (val, start, end) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t end = this.length;\n\t }\n\t if (val.length === 1) {\n\t var code = val.charCodeAt(0);\n\t if (code < 256) {\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t var i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t var bytes = Buffer.isBuffer(val)\n\t ? val\n\t : new Buffer(val);\n\t var len = bytes.length;\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return createBuffer(null, 0)\n\t }\n\n\t var i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t var buffer = allocUnsafe(null, length);\n\t var pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t var buf = list[i];\n\t if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t buf.copy(buffer, pos);\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tBuffer.byteLength = byteLength;\n\n\tBuffer.prototype._isBuffer = true;\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return !!(b != null && b._isBuffer)\n\t};\n\n\tmodule.exports.alloc = function (size) {\n\t var buffer = new Buffer(size);\n\t buffer.fill(0);\n\t return buffer\n\t};\n\n\tmodule.exports.from = function (data) {\n\t return new Buffer(data)\n\t};\n\n\t},{\"isarray\":33}],29:[function(require,module,exports){\n\n\texports.byteLength = byteLength;\n\texports.toByteArray = toByteArray;\n\texports.fromByteArray = fromByteArray;\n\n\tvar lookup = [];\n\tvar revLookup = [];\n\tvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\n\tvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\tfor (var i = 0, len = code.length; i < len; ++i) {\n\t lookup[i] = code[i];\n\t revLookup[code.charCodeAt(i)] = i;\n\t}\n\n\t// Support decoding URL-safe base64 strings, as Node.js does.\n\t// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\trevLookup['-'.charCodeAt(0)] = 62;\n\trevLookup['_'.charCodeAt(0)] = 63;\n\n\tfunction getLens (b64) {\n\t var len = b64.length;\n\n\t if (len % 4 > 0) {\n\t throw new Error('Invalid string. Length must be a multiple of 4')\n\t }\n\n\t // Trim off extra bytes after placeholder bytes are found\n\t // See: https://github.com/beatgammit/base64-js/issues/42\n\t var validLen = b64.indexOf('=');\n\t if (validLen === -1) validLen = len;\n\n\t var placeHoldersLen = validLen === len\n\t ? 0\n\t : 4 - (validLen % 4);\n\n\t return [validLen, placeHoldersLen]\n\t}\n\n\t// base64 is 4/3 + up to two characters of the original data\n\tfunction byteLength (b64) {\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction _byteLength (b64, validLen, placeHoldersLen) {\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction toByteArray (b64) {\n\t var tmp;\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\n\t var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n\t var curByte = 0;\n\n\t // if there are placeholders, only get up to the last complete 4 chars\n\t var len = placeHoldersLen > 0\n\t ? validLen - 4\n\t : validLen;\n\n\t var i;\n\t for (i = 0; i < len; i += 4) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 18) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 12) |\n\t (revLookup[b64.charCodeAt(i + 2)] << 6) |\n\t revLookup[b64.charCodeAt(i + 3)];\n\t arr[curByte++] = (tmp >> 16) & 0xFF;\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 2) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 2) |\n\t (revLookup[b64.charCodeAt(i + 1)] >> 4);\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 1) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 10) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 4) |\n\t (revLookup[b64.charCodeAt(i + 2)] >> 2);\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t return arr\n\t}\n\n\tfunction tripletToBase64 (num) {\n\t return lookup[num >> 18 & 0x3F] +\n\t lookup[num >> 12 & 0x3F] +\n\t lookup[num >> 6 & 0x3F] +\n\t lookup[num & 0x3F]\n\t}\n\n\tfunction encodeChunk (uint8, start, end) {\n\t var tmp;\n\t var output = [];\n\t for (var i = start; i < end; i += 3) {\n\t tmp =\n\t ((uint8[i] << 16) & 0xFF0000) +\n\t ((uint8[i + 1] << 8) & 0xFF00) +\n\t (uint8[i + 2] & 0xFF);\n\t output.push(tripletToBase64(tmp));\n\t }\n\t return output.join('')\n\t}\n\n\tfunction fromByteArray (uint8) {\n\t var tmp;\n\t var len = uint8.length;\n\t var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\t var parts = [];\n\t var maxChunkLength = 16383; // must be multiple of 3\n\n\t // go through the array every three bytes, we'll deal with trailing stuff later\n\t for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n\t parts.push(encodeChunk(\n\t uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n\t ));\n\t }\n\n\t // pad the end with zeros, but make sure to not forget the extra bytes\n\t if (extraBytes === 1) {\n\t tmp = uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 2] +\n\t lookup[(tmp << 4) & 0x3F] +\n\t '=='\n\t );\n\t } else if (extraBytes === 2) {\n\t tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 10] +\n\t lookup[(tmp >> 4) & 0x3F] +\n\t lookup[(tmp << 2) & 0x3F] +\n\t '='\n\t );\n\t }\n\n\t return parts.join('')\n\t}\n\n\t},{}],30:[function(require,module,exports){\n\n\tvar base64 = require('base64-js');\n\tvar ieee754 = require('ieee754');\n\tvar customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n\t ? Symbol.for('nodejs.util.inspect.custom')\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tvar K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t var arr = new Uint8Array(1);\n\t var proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, Uint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t var buf = new Uint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\t// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n\tif (typeof Symbol !== 'undefined' && Symbol.species != null &&\n\t Buffer[Symbol.species] === Buffer) {\n\t Object.defineProperty(Buffer, Symbol.species, {\n\t value: null,\n\t configurable: true,\n\t enumerable: false,\n\t writable: false\n\t });\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (ArrayBuffer.isView(value)) {\n\t return fromArrayLike(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, ArrayBuffer) ||\n\t (value && isInstance(value.buffer, ArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t var valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t var b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(\n\t value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n\t )\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, Uint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpretted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t var length = byteLength(string, encoding) | 0;\n\t var buf = createBuffer(length);\n\n\t var actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t var length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t var buf = createBuffer(length);\n\t for (var i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t var buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new Uint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new Uint8Array(array, byteOffset);\n\t } else {\n\t buf = new Uint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t var len = checked(obj.length) | 0;\n\t var buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t var x = a.length;\n\t var y = b.length;\n\n\t for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t var i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t var buffer = Buffer.allocUnsafe(length);\n\t var pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t var buf = list[i];\n\t if (isInstance(buf, Uint8Array)) {\n\t buf = Buffer.from(buf);\n\t }\n\t if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t buf.copy(buffer, pos);\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t var len = string.length;\n\t var mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t var loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t var loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t var i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t var len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (var i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t var len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (var i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t var len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (var i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t var length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t var str = '';\n\t var max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return '<Buffer ' + str + '>'\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, Uint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t var x = thisEnd - thisStart;\n\t var y = end - start;\n\t var len = Math.min(x, y);\n\n\t var thisCopy = this.slice(thisStart, thisEnd);\n\t var targetCopy = target.slice(start, end);\n\n\t for (var i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof Uint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t var indexSize = 1;\n\t var arrLength = arr.length;\n\t var valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t var i;\n\t if (dir) {\n\t var foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t var found = true;\n\t for (var j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t var remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t var strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t for (var i = 0; i < length; ++i) {\n\t var parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction latin1Write (buf, string, offset, length) {\n\t return asciiWrite(buf, string, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t var remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t var loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Write(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t var res = [];\n\n\t var i = start;\n\t while (i < end) {\n\t var firstByte = buf[i];\n\t var codePoint = null;\n\t var bytesPerSequence = (firstByte > 0xEF) ? 4\n\t : (firstByte > 0xDF) ? 3\n\t : (firstByte > 0xBF) ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t var len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t var res = '';\n\t var i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t var ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t var ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t var len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t var out = '';\n\t for (var i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t var bytes = buf.slice(start, end);\n\t var res = '';\n\t for (var i = 0; i < bytes.length; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t var len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t var newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var val = this[offset];\n\t var mul = 1;\n\t var i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t var val = this[offset + --byteLength];\n\t var mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var val = this[offset];\n\t var mul = 1;\n\t var i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var i = byteLength;\n\t var mul = 1;\n\t var val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t var val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t var val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t var mul = 1;\n\t var i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t var i = byteLength - 1;\n\t var mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t var limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t var i = 0;\n\t var mul = 1;\n\t var sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t var limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t var i = byteLength - 1;\n\t var mul = 1;\n\t var sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t var len = end - start;\n\n\t if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else if (this === target && start < targetStart && targetStart < end) {\n\t // descending copy from end\n\t for (var i = len - 1; i >= 0; --i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else {\n\t Uint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t var code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t var i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t var bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t var len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t var codePoint;\n\t var length = string.length;\n\t var leadSurrogate = null;\n\t var bytes = [];\n\n\t for (var i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t var byteArray = [];\n\t for (var i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t var c, hi, lo;\n\t var byteArray = [];\n\t for (var i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t for (var i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tvar hexSliceLookupTable = (function () {\n\t var alphabet = '0123456789abcdef';\n\t var table = new Array(256);\n\t for (var i = 0; i < 16; ++i) {\n\t var i16 = i * 16;\n\t for (var j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t},{\"base64-js\":29,\"ieee754\":32}],31:[function(require,module,exports){\n\n\t/******************************************************************************\n\t * Created 2008-08-19.\n\t *\n\t * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n\t *\n\t * Copyright (C) 2008\n\t * Wyatt Baldwin <self@wyattbaldwin.com>\n\t * All rights reserved\n\t *\n\t * Licensed under the MIT license.\n\t *\n\t * http://www.opensource.org/licenses/mit-license.php\n\t *\n\t * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\t * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\t * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\t * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\t * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\t * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n\t * THE SOFTWARE.\n\t *****************************************************************************/\n\tvar dijkstra = {\n\t single_source_shortest_paths: function(graph, s, d) {\n\t // Predecessor map for each node that has been encountered.\n\t // node ID => predecessor node ID\n\t var predecessors = {};\n\n\t // Costs of shortest paths from s to all nodes encountered.\n\t // node ID => cost\n\t var costs = {};\n\t costs[s] = 0;\n\n\t // Costs of shortest paths from s to all nodes encountered; differs from\n\t // `costs` in that it provides easy access to the node that currently has\n\t // the known shortest path from s.\n\t // XXX: Do we actually need both `costs` and `open`?\n\t var open = dijkstra.PriorityQueue.make();\n\t open.push(s, 0);\n\n\t var closest,\n\t u, v,\n\t cost_of_s_to_u,\n\t adjacent_nodes,\n\t cost_of_e,\n\t cost_of_s_to_u_plus_cost_of_e,\n\t cost_of_s_to_v,\n\t first_visit;\n\t while (!open.empty()) {\n\t // In the nodes remaining in graph that have a known cost from s,\n\t // find the node, u, that currently has the shortest path from s.\n\t closest = open.pop();\n\t u = closest.value;\n\t cost_of_s_to_u = closest.cost;\n\n\t // Get nodes adjacent to u...\n\t adjacent_nodes = graph[u] || {};\n\n\t // ...and explore the edges that connect u to those nodes, updating\n\t // the cost of the shortest paths to any or all of those nodes as\n\t // necessary. v is the node across the current edge from u.\n\t for (v in adjacent_nodes) {\n\t if (adjacent_nodes.hasOwnProperty(v)) {\n\t // Get the cost of the edge running from u to v.\n\t cost_of_e = adjacent_nodes[v];\n\n\t // Cost of s to u plus the cost of u to v across e--this is *a*\n\t // cost from s to v that may or may not be less than the current\n\t // known cost to v.\n\t cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n\t // If we haven't visited v yet OR if the current known cost from s to\n\t // v is greater than the new cost we just found (cost of s to u plus\n\t // cost of u to v across e), update v's cost in the cost list and\n\t // update v's predecessor in the predecessor list (it's now u).\n\t cost_of_s_to_v = costs[v];\n\t first_visit = (typeof costs[v] === 'undefined');\n\t if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n\t costs[v] = cost_of_s_to_u_plus_cost_of_e;\n\t open.push(v, cost_of_s_to_u_plus_cost_of_e);\n\t predecessors[v] = u;\n\t }\n\t }\n\t }\n\t }\n\n\t if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n\t var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n\t throw new Error(msg);\n\t }\n\n\t return predecessors;\n\t },\n\n\t extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n\t var nodes = [];\n\t var u = d;\n\t var predecessor;\n\t while (u) {\n\t nodes.push(u);\n\t predecessor = predecessors[u];\n\t u = predecessors[u];\n\t }\n\t nodes.reverse();\n\t return nodes;\n\t },\n\n\t find_path: function(graph, s, d) {\n\t var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n\t return dijkstra.extract_shortest_path_from_predecessor_list(\n\t predecessors, d);\n\t },\n\n\t /**\n\t * A very naive priority queue implementation.\n\t */\n\t PriorityQueue: {\n\t make: function (opts) {\n\t var T = dijkstra.PriorityQueue,\n\t t = {},\n\t key;\n\t opts = opts || {};\n\t for (key in T) {\n\t if (T.hasOwnProperty(key)) {\n\t t[key] = T[key];\n\t }\n\t }\n\t t.queue = [];\n\t t.sorter = opts.sorter || T.default_sorter;\n\t return t;\n\t },\n\n\t default_sorter: function (a, b) {\n\t return a.cost - b.cost;\n\t },\n\n\t /**\n\t * Add a new item to the queue and ensure the highest priority element\n\t * is at the front of the queue.\n\t */\n\t push: function (value, cost) {\n\t var item = {value: value, cost: cost};\n\t this.queue.push(item);\n\t this.queue.sort(this.sorter);\n\t },\n\n\t /**\n\t * Return the highest priority element in the queue.\n\t */\n\t pop: function () {\n\t return this.queue.shift();\n\t },\n\n\t empty: function () {\n\t return this.queue.length === 0;\n\t }\n\t }\n\t};\n\n\n\t// node.js module exports\n\tif (typeof module !== 'undefined') {\n\t module.exports = dijkstra;\n\t}\n\n\t},{}],32:[function(require,module,exports){\n\texports.read = function (buffer, offset, isLE, mLen, nBytes) {\n\t var e, m;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var nBits = -7;\n\t var i = isLE ? (nBytes - 1) : 0;\n\t var d = isLE ? -1 : 1;\n\t var s = buffer[offset + i];\n\n\t i += d;\n\n\t e = s & ((1 << (-nBits)) - 1);\n\t s >>= (-nBits);\n\t nBits += eLen;\n\t for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t m = e & ((1 << (-nBits)) - 1);\n\t e >>= (-nBits);\n\t nBits += mLen;\n\t for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t if (e === 0) {\n\t e = 1 - eBias;\n\t } else if (e === eMax) {\n\t return m ? NaN : ((s ? -1 : 1) * Infinity)\n\t } else {\n\t m = m + Math.pow(2, mLen);\n\t e = e - eBias;\n\t }\n\t return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n\t};\n\n\texports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n\t var e, m, c;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n\t var i = isLE ? 0 : (nBytes - 1);\n\t var d = isLE ? 1 : -1;\n\t var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n\t value = Math.abs(value);\n\n\t if (isNaN(value) || value === Infinity) {\n\t m = isNaN(value) ? 1 : 0;\n\t e = eMax;\n\t } else {\n\t e = Math.floor(Math.log(value) / Math.LN2);\n\t if (value * (c = Math.pow(2, -e)) < 1) {\n\t e--;\n\t c *= 2;\n\t }\n\t if (e + eBias >= 1) {\n\t value += rt / c;\n\t } else {\n\t value += rt * Math.pow(2, 1 - eBias);\n\t }\n\t if (value * c >= 2) {\n\t e++;\n\t c /= 2;\n\t }\n\n\t if (e + eBias >= eMax) {\n\t m = 0;\n\t e = eMax;\n\t } else if (e + eBias >= 1) {\n\t m = ((value * c) - 1) * Math.pow(2, mLen);\n\t e = e + eBias;\n\t } else {\n\t m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n\t e = 0;\n\t }\n\t }\n\n\t for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n\t e = (e << mLen) | m;\n\t eLen += mLen;\n\t for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n\t buffer[offset + i - d] |= s * 128;\n\t};\n\n\t},{}],33:[function(require,module,exports){\n\tvar toString = {}.toString;\n\n\tmodule.exports = Array.isArray || function (arr) {\n\t return toString.call(arr) == '[object Array]';\n\t};\n\n\t},{}]},{},[24])(24)\n\t});\n\n\n\t});\n\n\tvar index = {\n\t name: 'qrcode',\n\t props: {\n\t /**\n\t * The value of the QR code.\n\t */\n\t value: null,\n\n\t /**\n\t * The options for the QR code generator.\n\t * {@link https://github.com/soldair/node-qrcode#qr-code-options}\n\t */\n\t options: Object,\n\n\t /**\n\t * The tag name of the component's root element.\n\t */\n\t tag: {\n\t type: String,\n\t default: 'canvas'\n\t }\n\t },\n\t render: function render(createElement) {\n\t return createElement(this.tag, this.$slots.default);\n\t },\n\t watch: {\n\t $props: {\n\t deep: true,\n\t immediate: true,\n\n\t /**\n\t * Update the QR code when props changed.\n\t */\n\t handler: function handler() {\n\t if (this.$el) {\n\t this.generate();\n\t }\n\t }\n\t }\n\t },\n\t methods: {\n\t /**\n\t * Generate QR code.\n\t */\n\t generate: function generate() {\n\t var _this = this;\n\n\t var options = this.options,\n\t tag = this.tag;\n\t var value = String(this.value);\n\n\t if (tag === 'canvas') {\n\t qrcode.toCanvas(this.$el, value, options, function (error) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\t });\n\t } else if (tag === 'img') {\n\t qrcode.toDataURL(value, options, function (error, url) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\n\t _this.$el.src = url;\n\t });\n\t } else {\n\t qrcode.toString(value, options, function (error, string) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\n\t _this.$el.innerHTML = string;\n\t });\n\t }\n\t }\n\t },\n\t mounted: function mounted() {\n\t this.generate();\n\t }\n\t};\n\n\treturn index;\n\n})));\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\n opacity: 0;\n}\n.linked-icons[data-v-42733c12] {\n display: flex;\n}\n.linked-icons img[data-v-42733c12] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-42733c12]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-42733c12] {\n display: none;\n}\n.popovermenu.open[data-v-42733c12] {\n display: block;\n}\nli.collection-list-item[data-v-42733c12] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-42733c12] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-42733c12] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-42733c12] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-42733c12] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-42733c12] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-42733c12] {\n animation: shake-42733c12 0.6s 1 linear;\n}\n@keyframes shake-42733c12 {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}.collection-list *[data-v-8ebb2593] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-8ebb2593] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-8ebb2593] {\n margin-top: auto;\n}\n#collection-select-container[data-v-8ebb2593] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-8ebb2593] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-8ebb2593]:hover {\n opacity: 1;\n}\np.hint[data-v-8ebb2593] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-8ebb2593] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-8ebb2593] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-8ebb2593] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-8ebb2593] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-8ebb2593] {\n padding: 4px;\n}\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\n opacity: 0;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/nextcloud-vue-collections/dist/assets/index-CJAYjuyf.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,6BAA6B;AAC/B;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,YAAY;EACZ,cAAc;EACd,4BAA4B;EAC5B,2BAA2B;EAC3B,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,eAAe;EACf,YAAY;EACZ,eAAe;EACf,2BAA2B;AAC7B;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,YAAY;EACZ,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,6CAA6C;AAC/C;AACA;EACE,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,aAAa;EACb,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,YAAY;EACZ,YAAY;EACZ,4BAA4B;EAC5B,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,kBAAkB;AACpB;AACA;EACE,uBAAuB;EACvB,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,YAAY;AACd;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,2BAA2B;AAC/B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,yBAAyB;AAC7B;AACA,CAAC;EACC,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,SAAS;AACX;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,oCAAoC;EACpC,mBAAmB;AACrB;AACA;EACE,WAAW;EACX,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,8CAA8C;EAC9C,gBAAgB;AAClB;;AAEA,qCAAqC;AACrC;EACE,cAAc;EACd,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;EACd,2DAA2D;AAC7D;AACA;EACE,YAAY;AACd;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,UAAU;AACZ\",\"sourcesContent\":[\".fade-enter-active[data-v-42733c12], .fade-leave-active[data-v-42733c12] {\\n transition: opacity 0.3s ease;\\n}\\n.fade-enter[data-v-42733c12], .fade-leave-to[data-v-42733c12] {\\n opacity: 0;\\n}\\n.linked-icons[data-v-42733c12] {\\n display: flex;\\n}\\n.linked-icons img[data-v-42733c12] {\\n padding: 12px;\\n height: 44px;\\n display: block;\\n background-repeat: no-repeat;\\n background-position: center;\\n opacity: 0.7;\\n}\\n.linked-icons img[data-v-42733c12]:hover {\\n opacity: 1;\\n}\\n.popovermenu[data-v-42733c12] {\\n display: none;\\n}\\n.popovermenu.open[data-v-42733c12] {\\n display: block;\\n}\\nli.collection-list-item[data-v-42733c12] {\\n flex-wrap: wrap;\\n height: auto;\\n cursor: pointer;\\n margin-bottom: 0 !important;\\n}\\nli.collection-list-item .collection-avatar[data-v-42733c12] {\\n margin-top: 6px;\\n}\\nli.collection-list-item form[data-v-42733c12], li.collection-list-item .collection-item-name[data-v-42733c12] {\\n flex-basis: 10%;\\n flex-grow: 1;\\n display: flex;\\n}\\nli.collection-list-item .collection-item-name[data-v-42733c12] {\\n padding: 12px 9px;\\n}\\nli.collection-list-item input[data-v-42733c12] {\\n margin-top: 4px;\\n border-color: var(--color-border-maxcontrast);\\n}\\nli.collection-list-item input[type=text][data-v-42733c12] {\\n flex-grow: 1;\\n}\\nli.collection-list-item .error[data-v-42733c12] {\\n flex-basis: 100%;\\n width: 100%;\\n}\\nli.collection-list-item .resource-list-details[data-v-42733c12] {\\n flex-basis: 100%;\\n width: 100%;\\n}\\nli.collection-list-item .resource-list-details li[data-v-42733c12] {\\n display: flex;\\n margin-left: 44px;\\n border-radius: 3px;\\n cursor: pointer;\\n}\\nli.collection-list-item .resource-list-details li[data-v-42733c12]:hover {\\n background-color: var(--color-background-dark);\\n}\\nli.collection-list-item .resource-list-details li a[data-v-42733c12] {\\n flex-grow: 1;\\n padding: 3px;\\n max-width: calc(100% - 30px);\\n display: flex;\\n}\\nli.collection-list-item .resource-list-details span[data-v-42733c12] {\\n display: inline-block;\\n vertical-align: top;\\n margin-right: 10px;\\n}\\nli.collection-list-item .resource-list-details span.resource-name[data-v-42733c12] {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n position: relative;\\n vertical-align: top;\\n white-space: nowrap;\\n flex-grow: 1;\\n padding: 4px;\\n}\\nli.collection-list-item .resource-list-details img[data-v-42733c12] {\\n width: 24px;\\n height: 24px;\\n}\\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12] {\\n opacity: 0.7;\\n}\\nli.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-42733c12]:focus {\\n opacity: 1;\\n}\\n.shouldshake[data-v-42733c12] {\\n animation: shake-42733c12 0.6s 1 linear;\\n}\\n@keyframes shake-42733c12 {\\n0% {\\n transform: translate(15px);\\n}\\n20% {\\n transform: translate(-15px);\\n}\\n40% {\\n transform: translate(7px);\\n}\\n60% {\\n transform: translate(-7px);\\n}\\n80% {\\n transform: translate(3px);\\n}\\n100% {\\n transform: translate(0px);\\n}\\n}.collection-list *[data-v-8ebb2593] {\\n box-sizing: border-box;\\n}\\n.collection-list > li[data-v-8ebb2593] {\\n display: flex;\\n align-items: start;\\n gap: 12px;\\n}\\n.collection-list > li > .avatar[data-v-8ebb2593] {\\n margin-top: auto;\\n}\\n#collection-select-container[data-v-8ebb2593] {\\n display: flex;\\n flex-direction: column;\\n}\\n.v-select span.avatar[data-v-8ebb2593] {\\n display: block;\\n padding: 16px;\\n opacity: 0.7;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.v-select span.avatar[data-v-8ebb2593]:hover {\\n opacity: 1;\\n}\\np.hint[data-v-8ebb2593] {\\n z-index: 1;\\n margin-top: -16px;\\n padding: 8px 8px;\\n color: var(--color-text-maxcontrast);\\n line-height: normal;\\n}\\ndiv.avatar[data-v-8ebb2593] {\\n width: 32px;\\n height: 32px;\\n margin: 0;\\n padding: 8px;\\n background-color: var(--color-background-dark);\\n margin-top: 30px;\\n}\\n\\n/** TODO provide white icon in core */\\n.icon-projects[data-v-8ebb2593] {\\n display: block;\\n padding: 8px;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.option__wrapper[data-v-8ebb2593] {\\n display: flex;\\n}\\n.option__wrapper .avatar[data-v-8ebb2593] {\\n display: block;\\n background-color: var(--color-background-darker) !important;\\n}\\n.option__wrapper .option__title[data-v-8ebb2593] {\\n padding: 4px;\\n}\\n.fade-enter-active[data-v-8ebb2593], .fade-leave-active[data-v-8ebb2593] {\\n transition: opacity 0.5s;\\n}\\n.fade-enter[data-v-8ebb2593], .fade-leave-to[data-v-8ebb2593] {\\n opacity: 0;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-e994747e]{display:flex;align-items:center;height:44px}.sharing-entry__summary[data-v-e994747e]{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-e994747e]{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-e994747e],.sharing-entry__summary__desc small[data-v-e994747e]{color:var(--color-text-maxcontrast)}.sharing-entry__summary__desc-unique[data-v-e994747e]{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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-32cb91ce]{display:flex;align-items:center;height:44px}.sharing-entry__desc[data-v-32cb91ce]{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-32cb91ce]{color:var(--color-text-maxcontrast)}.sharing-entry__actions[data-v-32cb91ce]{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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__internal .avatar-external[data-v-1d9a7cfa]{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-1d9a7cfa]{opacity:1;color:var(--color-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,0BAAA\",\"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-success);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-3d033992]{display:flex;align-items:center;min-height:44px}.sharing-entry__summary[data-v-3d033992]{padding:8px;padding-inline-start:10px;display:flex;justify-content:space-between;flex:1 0;min-width:0}.sharing-entry__desc[data-v-3d033992]{display:flex;flex-direction:column;line-height:1.2em}.sharing-entry__desc p[data-v-3d033992]{color:var(--color-text-maxcontrast)}.sharing-entry__desc__title[data-v-3d033992]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-3d033992]{border-top:1px solid var(--color-border)}.sharing-entry[data-v-3d033992] .avatar-link-share{background-color:var(--color-primary-element)}.sharing-entry .sharing-entry__action--public-upload[data-v-3d033992]{border-bottom:1px solid var(--color-border)}.sharing-entry__loading[data-v-3d033992]{width:44px;height:44px;margin:0;padding:14px;margin-inline-start:auto}.sharing-entry .action-item~.action-item[data-v-3d033992],.sharing-entry .action-item~.sharing-entry__loading[data-v-3d033992]{margin-inline-start:0}.sharing-entry .icon-checkmark-color[data-v-3d033992]{opacity:1;color:var(--color-success)}.qr-code-dialog[data-v-3d033992]{display:flex;width:100%;justify-content:center}.qr-code-dialog__img[data-v-3d033992]{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,CAGA,sCACC,YAAA,CACA,qBAAA,CACA,iBAAA,CAEA,wCACC,mCAAA,CAGD,6CACC,sBAAA,CACA,eAAA,CACA,kBAAA,CAKF,mGACC,wCAAA,CAIF,mDACC,6CAAA,CAGD,sEACC,2CAAA,CAGD,yCACC,UAAA,CACA,WAAA,CACA,QAAA,CACA,YAAA,CACA,wBAAA,CAOA,+HAEC,qBAAA,CAIF,sDACC,SAAA,CACA,0BAAA,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}\\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&: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.icon-checkmark-color {\\n\\t\\topacity: 1;\\n\\t\\tcolor: var(--color-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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.share-select[data-v-be1cd266]{display:block}.share-select[data-v-be1cd266] .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-be1cd266] .action-item__menutoggle .button-vue__text{font-weight:normal !important}.share-select[data-v-be1cd266] .action-item__menutoggle .button-vue__icon{height:24px !important;min-height:24px !important;width:24px !important;min-width:24px !important}.share-select[data-v-be1cd266] .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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-4c49edf4]{display:flex;align-items:center;min-height:44px}.sharing-entry__desc[data-v-4c49edf4]{padding:8px;padding-inline-start:10px;line-height:1.2em;position:relative;flex:1 1;min-width:0}.sharing-entry__desc p[data-v-4c49edf4]{color:var(--color-text-maxcontrast)}.sharing-entry__title[data-v-4c49edf4]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:inherit}.sharing-entry__actions[data-v-4c49edf4]{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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharingTabDetailsView[data-v-c672ed08]{display:flex;flex-direction:column;width:100%;margin:0 auto;position:relative;height:100%;overflow:hidden}.sharingTabDetailsView__header[data-v-c672ed08]{display:flex;align-items:center;box-sizing:border-box;margin:.2em}.sharingTabDetailsView__header span[data-v-c672ed08]{display:flex;align-items:center}.sharingTabDetailsView__header span h1[data-v-c672ed08]{font-size:15px;padding-inline-start:.3em}.sharingTabDetailsView__wrapper[data-v-c672ed08]{position:relative;overflow:scroll;flex-shrink:1;padding:4px;padding-inline-end:12px}.sharingTabDetailsView__quick-permissions[data-v-c672ed08]{display:flex;justify-content:center;width:100%;margin:0 auto;border-radius:0}.sharingTabDetailsView__quick-permissions div[data-v-c672ed08]{width:100%}.sharingTabDetailsView__quick-permissions div span[data-v-c672ed08]{width:100%}.sharingTabDetailsView__quick-permissions div span span[data-v-c672ed08]:nth-child(1){align-items:center;justify-content:center;padding:.1em}.sharingTabDetailsView__quick-permissions div span[data-v-c672ed08] label span{display:flex;flex-direction:column}.sharingTabDetailsView__quick-permissions div span[data-v-c672ed08] span.checkbox-content__text.checkbox-radio-switch__text{flex-wrap:wrap}.sharingTabDetailsView__quick-permissions div span[data-v-c672ed08] span.checkbox-content__text.checkbox-radio-switch__text .subline{display:block;flex-basis:100%}.sharingTabDetailsView__advanced-control[data-v-c672ed08]{width:100%}.sharingTabDetailsView__advanced-control button[data-v-c672ed08]{margin-top:.5em}.sharingTabDetailsView__advanced[data-v-c672ed08]{width:100%;margin-bottom:.5em;text-align:start;padding-inline-start:0}.sharingTabDetailsView__advanced section textarea[data-v-c672ed08],.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-c672ed08]{width:100%}.sharingTabDetailsView__advanced section textarea[data-v-c672ed08]{height:80px;margin:0}.sharingTabDetailsView__advanced section span[data-v-c672ed08] label{padding-inline-start:0 !important;background-color:initial !important;border:none !important}.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-c672ed08]{padding-inline-start:1.5em}.sharingTabDetailsView__label[data-v-c672ed08]{padding-block-end:6px}.sharingTabDetailsView__delete>button[data-v-c672ed08]:first-child{color:#df0707}.sharingTabDetailsView__footer[data-v-c672ed08]{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-c672ed08]{display:flex;justify-content:space-between;width:100%;margin-top:16px}.sharingTabDetailsView__footer .button-group button[data-v-c672ed08]{margin-inline-start:16px}.sharingTabDetailsView__footer .button-group button[data-v-c672ed08]: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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__inherited .avatar-shared[data-v-4baa5581]{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\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.emptyContentWithSections[data-v-15a4df38]{margin:1rem auto}.sharingTab[data-v-15a4df38]{position:relative;height:100%}.sharingTab__content[data-v-15a4df38]{padding:0 6px}.sharingTab__content section[data-v-15a4df38]{padding-bottom:16px}.sharingTab__content section .section-header[data-v-15a4df38]{margin-top:2px;margin-bottom:2px;display:flex;align-items:center;padding-bottom:4px}.sharingTab__content section .section-header h4[data-v-15a4df38]{margin:0;font-size:16px}.sharingTab__content section .section-header .visually-hidden[data-v-15a4df38]{display:none}.sharingTab__content section .section-header .hint-icon[data-v-15a4df38]{color:var(--color-primary-element)}.sharingTab__content>section[data-v-15a4df38]:not(:last-child){border-bottom:2px solid var(--color-border)}.sharingTab__additionalContent[data-v-15a4df38]{margin:44px 0}.hint-body[data-v-15a4df38]{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,CAEA,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,aAAA,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\\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: 44px 0;\\n\\t}\\n}\\n\\n.hint-body {\\n\\tmax-width: 300px;\\n\\tpadding: var(--border-radius-element);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**!\n * url-search-params-polyfill\n *\n * @author Jerry Bendy (https://github.com/jerrybendy)\n * @licence MIT\n */\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = (function() {\n // #41 Fix issue in RN\n try {\n if (self.URLSearchParams && (new self.URLSearchParams('foo=bar')).get('foo') === 'bar') {\n return self.URLSearchParams;\n }\n } catch (e) {}\n return null;\n })(),\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n isSupportSize = nativeURLSearchParams && 'size' in nativeURLSearchParams.prototype,\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly && isSupportSize) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype['delete'] = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return hasOwnProperty(this [__URLSearchParams__], name);\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var useProxy = self.Proxy && nativeURLSearchParams && (!decodesPlusesCorrectly || !encodesAmpersandsCorrectly || !isSupportObjectConstructor || !isSupportSize);\n var propValue;\n if (useProxy) {\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n propValue = new Proxy(nativeURLSearchParams, {\n construct: function (target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n })\n // Chrome <=60 .toString() on a function proxy got error \"Function.prototype.toString is not generic\"\n propValue.toString = Function.prototype.toString.bind(URLSearchParamsPolyfill);\n } else {\n propValue = URLSearchParamsPolyfill;\n }\n\n /*\n * Apply polyfill to global object and append other prototype into it\n */\n Object.defineProperty(self, 'URLSearchParams', {\n value: propValue\n });\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n // Fix #54, `toString.call(new URLSearchParams)` will return correct value when Proxy not used\n if (!useProxy && self.Symbol) {\n USPProto[self.Symbol.toStringTag] = 'URLSearchParams';\n }\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n if (!('forEach' in USPProto)) {\n USPProto.forEach = function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n }\n\n /**\n * Sort all name-value pairs\n */\n if (!('sort' in USPProto)) {\n USPProto.sort = function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this['delete'](keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n }\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('keys' in USPProto)) {\n USPProto.keys = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('values' in USPProto)) {\n USPProto.values = function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('entries' in USPProto)) {\n USPProto.entries = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n }\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n if (!('size' in USPProto)) {\n Object.defineProperty(USPProto, 'size', {\n get: function () {\n var dict = parseToDict(this.toString())\n if (USPProto === this) {\n throw new TypeError('Illegal invocation at URLSearchParams.invokeGetter')\n }\n return Object.keys(dict).reduce(function (prev, cur) {\n return prev + dict[cur].length;\n }, 0);\n }\n });\n }\n\n function encode(str) {\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return str\n .replace(/[ +]/g, '%20')\n .replace(/(%[a-f0-9]{2})+/ig, function(match) {\n return decodeURIComponent(match);\n });\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n // if `search` is an array, treat it as a sequence\n if (isArray(search)) {\n for (var i = 0; i < search.length; i++) {\n var item = search[i];\n if (isArray(item) && item.length === 2) {\n appendTo(dict, item[0], item[1]);\n } else {\n throw new TypeError(\"Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements\");\n }\n }\n\n } else {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key]);\n }\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n );\n\n // #47 Prevent using `hasOwnProperty` as a property name\n if (hasOwnProperty(dict, name)) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n function isArray(val) {\n return !!val && '[object Array]' === Object.prototype.toString.call(val);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sharingTab\",class:{ 'icon-loading': _vm.loading }},[(_vm.error)?_c('div',{staticClass:\"emptycontent\",class:{ emptyContentWithSections: _vm.sections.length > 0 }},[_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,\"display-name\":_vm.sharedWithMe.displayName}})]},proxy:true}],null,false,3197855346)},'SharingEntrySimple',_vm.sharedWithMe,false))],1):_vm._e(),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'Internal shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"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}])})]},proxy:true}])},[_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)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"reshare\":_vm.reshare,\"shares\":_vm.shares,\"placeholder\":_vm.t('files_sharing', 'Share with accounts and teams')},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingList',{ref:\"shareList\",attrs:{\"shares\":_vm.shares,\"file-info\":_vm.fileInfo},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(_vm.canReshare && !_vm.loading)?_c('SharingInherited',{attrs:{\"file-info\":_vm.fileInfo}}):_vm._e(),_vm._v(\" \"),_c('SharingEntryInternal',{attrs:{\"file-info\":_vm.fileInfo}})],1),_vm._v(\" \"),_c('section',[_c('div',{staticClass:\"section-header\"},[_c('h4',[_vm._v(_vm._s(_vm.t('files_sharing', 'External shares')))]),_vm._v(\" \"),_c('NcPopover',{attrs:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"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}])})]},proxy:true}])},[_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)?_c('SharingInput',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"link-shares\":_vm.linkShares,\"is-external\":true,\"placeholder\":_vm.t('files_sharing', 'Email, federated cloud id'),\"reshare\":_vm.reshare,\"shares\":_vm.shares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('SharingLinkList',{ref:\"linkShareList\",attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo,\"shares\":_vm.linkShares},on:{\"open-sharing-details\":_vm.toggleShareDetailsView}}):_vm._e()],1),_vm._v(\" \"),(_vm.sections.length > 0 && !_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:{\"popup-role\":\"dialog\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{staticClass:\"hint-icon\",attrs:{\"type\":\"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,1027936137)},[_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.sections),function(section,index){return _c('div',{key:index,ref:'section-' + index,refInFor:true,staticClass:\"sharingTab__additionalContent\"},[_c(section(_vm.$refs['section-'+index], _vm.fileInfo),{tag:\"component\",attrs:{\"file-info\":_vm.fileInfo}})],1)}),_vm._v(\" \"),(_vm.projectsEnabled)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showSharingDetailsView && _vm.fileInfo),expression:\"!showSharingDetailsView && fileInfo\"}],staticClass:\"sharingTab__additionalContent\"},[_c('CollectionList',{attrs:{\"id\":`${_vm.fileInfo.id}`,\"type\":\"file\",\"name\":_vm.fileInfo.name}})],1):_vm._e()],2):_vm._e()]),_vm._v(\" \"),(_vm.showSharingDetailsView)?_c('SharingDetailsTab',{attrs:{\"file-info\":_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 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-CJAYjuyf.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-CJAYjuyf.css\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import './assets/index-CJAYjuyf.css';\nimport { t } from \"@nextcloud/l10n\";\nimport NcAvatar from \"@nextcloud/vue/dist/Components/NcAvatar.js\";\nimport NcSelect from \"@nextcloud/vue/dist/Components/NcSelect.js\";\nimport debounce from \"lodash-es/debounce.js\";\nimport NcActions from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport NcActionButton from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport { reactive, set } from \"vue\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nclass CollectionService {\n constructor() {\n this.http = axios;\n }\n listCollection(collectionId) {\n return this.http.get(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }));\n }\n renameCollection(collectionId, collectionName) {\n return this.http.put(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), {\n collectionName\n }).then((result) => {\n return result.data.ocs.data;\n });\n }\n getCollectionsByResource(resourceType, resourceId) {\n return this.http.get(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId })).then((result) => {\n return result.data.ocs.data;\n });\n }\n createCollection(resourceType, resourceId, name) {\n return this.http.post(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId }), {\n name\n }).then((response) => {\n return response.data.ocs.data;\n });\n }\n addResource(collectionId, resourceType, resourceId) {\n resourceId = \"\" + resourceId;\n return this.http.post(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), {\n resourceType,\n resourceId\n }).then((response) => {\n return response.data.ocs.data;\n });\n }\n removeResource(collectionId, resourceType, resourceId) {\n return this.http.delete(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { params: { resourceType, resourceId } }).then((response) => {\n return response.data.ocs.data;\n });\n }\n search(query) {\n return this.http.get(generateOcsUrl(\"collaboration/resources/collections/search/{query}\", { query })).then((response) => {\n return response.data.ocs.data;\n });\n }\n}\nconst service = new CollectionService();\nconst state = reactive({\n collections: []\n});\nconst mutations = {\n addCollections(collections) {\n set(state, \"collections\", collections);\n },\n addCollection(collection) {\n state.collections.push(collection);\n },\n removeCollection(collectionId) {\n set(state, \"collections\", state.collections.filter((item) => item.id !== collectionId));\n },\n updateCollection(collection) {\n const index = state.collections.findIndex((_item) => _item.id === collection.id);\n if (index !== -1) {\n set(state.collections, index, collection);\n } else {\n state.collections.push(collection);\n }\n }\n};\nconst actions = {\n fetchCollectionsByResource({ resourceType, resourceId }) {\n return service.getCollectionsByResource(resourceType, resourceId).then((collections) => {\n mutations.addCollections(collections);\n return collections;\n });\n },\n createCollection({ baseResourceType, baseResourceId, resourceType, resourceId, name }) {\n return service.createCollection(baseResourceType, baseResourceId, name).then((collection) => {\n mutations.addCollection(collection);\n actions.addResourceToCollection({\n collectionId: collection.id,\n resourceType,\n resourceId\n });\n });\n },\n renameCollection({ collectionId, name }) {\n return service.renameCollection(collectionId, name).then((collection) => {\n mutations.updateCollection(collection);\n return collection;\n });\n },\n addResourceToCollection({ collectionId, resourceType, resourceId }) {\n return service.addResource(collectionId, resourceType, resourceId).then((collection) => {\n mutations.updateCollection(collection);\n return collection;\n });\n },\n removeResource({ collectionId, resourceType, resourceId }) {\n return service.removeResource(collectionId, resourceType, resourceId).then((collection) => {\n if (collection.resources.length > 0) {\n mutations.updateCollection(collection);\n } else {\n mutations.removeCollection(collection);\n }\n });\n },\n search(query) {\n return service.search(query);\n }\n};\nfunction normalizeComponent(scriptExports, render3, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render3) {\n options.render = render3;\n options.staticRenderFns = staticRenderFns;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n );\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst _sfc_main$1 = {\n name: \"CollectionListItem\",\n components: {\n NcAvatar,\n NcActions,\n NcActionButton\n },\n props: {\n collection: {\n type: Object,\n default: null\n }\n },\n data() {\n return {\n detailsOpen: false,\n newName: null,\n error: {}\n };\n },\n computed: {\n getIcon() {\n return (resource) => [resource.iconClass];\n },\n typeClass() {\n return (resource) => \"resource-type-\" + resource.type;\n },\n limitedResources() {\n return (collection) => collection.resources ? collection.resources.slice(0, 2) : [];\n },\n iconUrl() {\n return (resource) => {\n if (resource.mimetype) {\n return OC.MimeType.getIconUrl(resource.mimetype);\n }\n if (resource.iconUrl) {\n return resource.iconUrl;\n }\n return \"\";\n };\n }\n },\n methods: {\n t,\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = true;\n },\n hideDetails() {\n this.detailsOpen = false;\n },\n removeResource(collection, resource) {\n actions.removeResource({\n collectionId: collection.id,\n resourceType: resource.type,\n resourceId: resource.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName === \"\") {\n this.newName = null;\n return;\n }\n actions.renameCollection({\n collectionId: this.collection.id,\n name: this.newName\n }).then((collection) => {\n this.newName = null;\n }).catch((e) => {\n this.$set(this.error, \"rename\", t(\"core\", \"Failed to rename the project\"));\n console.error(e);\n setTimeout(() => {\n set(this.error, \"rename\", null);\n }, 3e3);\n });\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"collection-list-item\" }, [_c(\"NcAvatar\", { staticClass: \"collection-avatar\", attrs: { \"display-name\": _vm.collection.name, \"allow-placeholder\": \"\" } }), _vm.newName === null ? _c(\"span\", { staticClass: \"collection-item-name\", attrs: { \"title\": \"\" }, on: { \"click\": _vm.showDetails } }, [_vm._v(_vm._s(_vm.collection.name))]) : _c(\"form\", { class: { \"shouldshake\": _vm.error.rename }, on: { \"submit\": function($event) {\n $event.preventDefault();\n return _vm.renameCollection.apply(null, arguments);\n } } }, [_c(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: _vm.newName, expression: \"newName\" }], attrs: { \"type\": \"text\", \"autocomplete\": \"off\", \"autocapitalize\": \"off\" }, domProps: { \"value\": _vm.newName }, on: { \"input\": function($event) {\n if ($event.target.composing) return;\n _vm.newName = $event.target.value;\n } } }), _c(\"input\", { staticClass: \"icon-confirm\", attrs: { \"type\": \"submit\", \"value\": \"\" } })]), !_vm.detailsOpen && _vm.newName === null ? _c(\"div\", { staticClass: \"linked-icons\" }, _vm._l(_vm.limitedResources(_vm.collection), function(resource) {\n return _c(\"a\", { key: resource.type + \"|\" + resource.id, class: _vm.typeClass(resource), attrs: { \"title\": resource.name, \"href\": resource.link } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource) } })]);\n }), 0) : _vm._e(), _vm.newName === null ? _c(\"span\", { staticClass: \"sharingOptionsGroup\" }, [_c(\"NcActions\", [_c(\"NcActionButton\", { attrs: { \"icon\": \"icon-info\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.toggleDetails.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.detailsOpen ? _vm.t(\"core\", \"Hide details\") : _vm.t(\"core\", \"Show details\")) + \" \")]), _c(\"NcActionButton\", { attrs: { \"icon\": \"icon-rename\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.openRename.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.t(\"core\", \"Rename project\")) + \" \")])], 1)], 1) : _vm._e(), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error.rename ? _c(\"div\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error.rename) + \" \")]) : _vm._e()]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.detailsOpen ? _c(\"ul\", { staticClass: \"resource-list-details\" }, _vm._l(_vm.collection.resources, function(resource) {\n return _c(\"li\", { key: resource.type + \"|\" + resource.id, class: _vm.typeClass(resource) }, [_c(\"a\", { attrs: { \"href\": resource.link } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource) } }), _c(\"span\", { staticClass: \"resource-name\" }, [_vm._v(_vm._s(resource.name || \"\"))])]), _c(\"span\", { staticClass: \"icon-close\", on: { \"click\": function($event) {\n return _vm.removeResource(_vm.collection, resource);\n } } })]);\n }), 0) : _vm._e()])], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"42733c12\",\n null,\n null\n);\nconst CollectionListItem = __component__$1.exports;\nconst METHOD_CREATE_COLLECTION = 0;\nconst METHOD_ADD_TO_COLLECTION = 1;\nconst _debouncedSearch = debounce(\n function(query, loading) {\n if (query !== \"\") {\n loading(true);\n actions.search(query).then((collections) => {\n this.searchCollections = collections;\n }).catch((e) => {\n console.error(\"Failed to search for collections\", e);\n }).finally(() => {\n loading(false);\n });\n }\n },\n 500,\n {}\n);\nconst _sfc_main = {\n name: \"CollectionList\",\n components: {\n CollectionListItem,\n NcAvatar,\n NcSelect\n },\n props: {\n /**\n * Resource type identifier\n */\n type: {\n type: String,\n default: null\n },\n /**\n * Unique id of the resource\n */\n id: {\n type: String,\n default: null\n },\n /**\n * Name of the resource\n */\n name: {\n type: String,\n default: \"\"\n },\n isActive: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n return {\n state\n };\n },\n data() {\n return {\n selectIsOpen: false,\n generatingCodes: false,\n codes: void 0,\n value: null,\n model: {},\n searchCollections: [],\n error: null,\n isSelectOpen: false\n };\n },\n computed: {\n collections() {\n return this.state.collections.filter((collection) => {\n return typeof collection.resources.find((resource) => resource && resource.id === \"\" + this.id && resource.type === this.type) !== \"undefined\";\n });\n },\n placeholder() {\n return this.isSelectOpen ? t(\"core\", \"Type to search for existing projects\") : t(\"core\", \"Add to a project\");\n },\n options() {\n const options = [];\n window.OCP.Collaboration.getTypes().sort().forEach((type) => {\n options.push({\n method: METHOD_CREATE_COLLECTION,\n type,\n title: window.OCP.Collaboration.getLabel(type),\n class: window.OCP.Collaboration.getIcon(type),\n action: () => window.OCP.Collaboration.trigger(type)\n });\n });\n for (const index in this.searchCollections) {\n if (this.collections.findIndex((collection) => collection.id === this.searchCollections[index].id) === -1) {\n options.push({\n method: METHOD_ADD_TO_COLLECTION,\n title: this.searchCollections[index].name,\n collectionId: this.searchCollections[index].id\n });\n }\n }\n return options;\n }\n },\n watch: {\n type() {\n if (this.isActive) {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n },\n id() {\n if (this.isActive) {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n },\n isActive(isActive) {\n if (isActive) {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n }\n },\n mounted() {\n actions.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n },\n methods: {\n t,\n select(selectedOption, id) {\n if (selectedOption.method === METHOD_CREATE_COLLECTION) {\n selectedOption.action().then((id2) => {\n actions.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: selectedOption.type,\n resourceId: id2,\n name: this.name\n }).catch((e) => {\n this.setError(t(\"core\", \"Failed to create a project\"), e);\n });\n }).catch((e) => {\n console.error(\"No resource selected\", e);\n });\n }\n if (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n actions.addResourceToCollection({\n collectionId: selectedOption.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((e) => {\n this.setError(t(\"core\", \"Failed to add the item to the project\"), e);\n });\n }\n },\n search(query, loading) {\n _debouncedSearch.bind(this)(query, loading);\n },\n showSelect() {\n this.selectIsOpen = true;\n this.$refs.select.$el.focus();\n },\n hideSelect() {\n this.selectIsOpen = false;\n },\n isVueComponent(object) {\n return object._isVue;\n },\n setError(error, e) {\n console.error(error, e);\n this.error = error;\n setTimeout(() => {\n this.error = null;\n }, 5e3);\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _vm.collections && _vm.type && _vm.id ? _c(\"ul\", { staticClass: \"collection-list\", attrs: { \"id\": \"collection-list\" } }, [_c(\"li\", { on: { \"click\": _vm.showSelect } }, [_vm._m(0), _c(\"div\", { attrs: { \"id\": \"collection-select-container\" } }, [_c(\"NcSelect\", { ref: \"select\", attrs: { \"aria-label-combobox\": _vm.t(\"core\", \"Add to a project\"), \"options\": _vm.options, \"placeholder\": _vm.placeholder, \"label\": \"title\", \"limit\": 5 }, on: { \"close\": function($event) {\n _vm.isSelectOpen = false;\n }, \"open\": function($event) {\n _vm.isSelectOpen = true;\n }, \"option:selected\": _vm.select, \"search\": _vm.search }, scopedSlots: _vm._u([{ key: \"selected-option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__desc\" }, [_c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])])];\n } }, { key: \"option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__wrapper\" }, [option.class ? _c(\"span\", { staticClass: \"avatar\", class: option.class }) : option.method !== 2 ? _c(\"NcAvatar\", { attrs: { \"allow-placeholder\": \"\", \"display-name\": option.title } }) : _vm._e(), _c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])], 1)];\n } }], null, false, 2397208459), model: { value: _vm.value, callback: function($$v) {\n _vm.value = $$v;\n }, expression: \"value\" } }, [_c(\"p\", { staticClass: \"hint\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"core\", \"Connect items to a project to make them easier to find\")) + \" \")])])], 1)]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error ? _c(\"li\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error) + \" \")]) : _vm._e()]), _vm._l(_vm.collections, function(collection) {\n return _c(\"CollectionListItem\", { key: collection.id, attrs: { \"collection\": collection } });\n })], 2) : _vm._e();\n};\nvar _sfc_staticRenderFns = [function() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"avatar\" }, [_c(\"span\", { staticClass: \"icon-projects\" })]);\n}];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"8ebb2593\",\n null,\n null\n);\nconst CollectionList = __component__.exports;\nexport {\n CollectionList,\n CollectionListItem\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';\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 * 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 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 // eslint-disable-next-line camelcase\n return this._capabilities?.files_sharing?.sharebymail?.enabled === true\n // eslint-disable-next-line camelcase\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","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('files_sharing')\n .detectUser()\n .build();\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { isFileRequest } from '../services/SharingService';\nexport default class Share {\n _share;\n /**\n * Create the share object\n *\n * @param {object} 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 // 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 (e) {\n console.warn('Could not parse share attributes returned by server', ocsData.attributes);\n }\n }\n ocsData.attributes = ocsData.attributes ?? [];\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 {object} 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 * @return {string} date with YYYY-MM-DD format\n */\n get expireDate() {\n return this._share.expiration;\n }\n /**\n * Set the expiration date\n * @param {string} 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 }\n /**\n * Hide the download button on public page\n */\n set hideDownload(state) {\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 * Password expiration time\n * @return {string} date with YYYY-MM-DD format\n */\n get passwordExpirationTime() {\n return this._share.password_expiration_time;\n }\n /**\n * Password expiration time\n * @param {string} 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 {boolean} 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 * @return {string} '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","/**\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 { Folder, File, Permission, davRemoteURL, davRootPath } from '@nextcloud/files';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport axios from '@nextcloud/axios';\nimport logger from './logger';\nconst headers = {\n 'Content-Type': 'application/json',\n};\nconst ocsEntryToNode = async function (ocsEntry) {\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 ocsEntry.item_type = ocsEntry.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 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 = `${davRemoteURL}${davRootPath}/${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 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,\n permissions: ocsEntry?.item_permissions || ocsEntry?.permissions,\n root: davRootPath,\n attributes: {\n ...ocsEntry,\n 'has-preview': hasPreview,\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 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};\nconst getShares = function (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};\nconst getSharedWithYou = function () {\n return getShares(true);\n};\nconst getSharedWithOthers = function () {\n return getShares();\n};\nconst getRemoteShares = function () {\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};\nconst getPendingShares = function () {\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};\nconst getRemotePendingShares = function () {\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};\nconst getDeletedShares = function () {\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 * @param attributes the share attributes json-encoded array\n */\nexport const 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 * @param nodes Nodes to group\n * @param key The attribute to group by\n */\nconst groupBy = function (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};\nexport const getContents = async (sharedWithYou = true, sharedWithOthers = true, pendingShares = false, deletedshares = false, filterTypes = []) => {\n const promises = [];\n if (sharedWithYou) {\n promises.push(getSharedWithYou(), getRemoteShares());\n }\n if (sharedWithOthers) {\n promises.push(getSharedWithOthers());\n }\n if (pendingShares) {\n promises.push(getPendingShares(), getRemotePendingShares());\n }\n if (deletedshares) {\n promises.push(getDeletedShares());\n }\n const responses = await Promise.all(promises);\n const data = responses.map((response) => response.data.ocs.data).flat();\n let contents = (await Promise.all(data.map(ocsEntryToNode)))\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: `${davRemoteURL}${davRootPath}`,\n owner: getCurrentUser()?.uid || null,\n }),\n contents,\n };\n};\n","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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"sharing-entry\">\n\t\t<slot name=\"avatar\" />\n\t\t<div class=\"sharing-entry__desc\">\n\t\t\t<span class=\"sharing-entry__title\">{{ title }}</span>\n\t\t\t<p v-if=\"subtitle\">\n\t\t\t\t{{ subtitle }}\n\t\t\t</p>\n\t\t</div>\n\t\t<NcActions v-if=\"$slots['default']\"\n\t\t\tref=\"actionsComponent\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:aria-expanded=\"ariaExpandedValue\">\n\t\t\t<slot />\n\t\t</NcActions>\n\t</li>\n</template>\n\n<script>\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\n\nexport default {\n\tname: 'SharingEntrySimple',\n\n\tcomponents: {\n\t\tNcActions,\n\t},\n\n\tprops: {\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\trequired: true,\n\t\t},\n\t\tsubtitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tisUnique: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tariaExpanded: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tariaExpandedValue() {\n\t\t\tif (this.ariaExpanded === null) {\n\t\t\t\treturn this.ariaExpanded\n\t\t\t}\n\t\t\treturn this.ariaExpanded ? 'true' : 'false'\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=4c49edf4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=4c49edf4&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=4c49edf4&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=4c49edf4&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 \"4c49edf4\",\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\"},[_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.$slots['default'])?_c('NcActions',{ref:\"actionsComponent\",staticClass:\"sharing-entry__actions\",attrs:{\"menu-align\":\"right\",\"aria-expanded\":_vm.ariaExpandedValue}},[_vm._t(\"default\")],2):_vm._e()],2)\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!./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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<ul>\n\t\t<SharingEntrySimple ref=\"shareEntrySimple\"\n\t\t\tclass=\"sharing-entry__internal\"\n\t\t\t:title=\"t('files_sharing', 'Internal link')\"\n\t\t\t:subtitle=\"internalLinkSubtitle\">\n\t\t\t<template #avatar>\n\t\t\t\t<div class=\"avatar-external icon-external-white\" />\n\t\t\t</template>\n\n\t\t\t<NcActionButton :title=\"copyLinkTooltip\"\n\t\t\t\t:aria-label=\"copyLinkTooltip\"\n\t\t\t\t@click=\"copyLink\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckIcon v-if=\"copied && copySuccess\"\n\t\t\t\t\t\t:size=\"20\"\n\t\t\t\t\t\tclass=\"icon-checkmark-color\" />\n\t\t\t\t\t<ClipboardIcon v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionButton>\n\t\t</SharingEntrySimple>\n\t</ul>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { showSuccess } from '@nextcloud/dialogs'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\n\nimport CheckIcon from 'vue-material-design-icons/Check.vue'\nimport ClipboardIcon from 'vue-material-design-icons/ContentCopy.vue'\n\nimport SharingEntrySimple from './SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingEntryInternal',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tSharingEntrySimple,\n\t\tCheckIcon,\n\t\tClipboardIcon,\n\t},\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},\n\n\tdata() {\n\t\treturn {\n\t\t\tcopied: false,\n\t\t\tcopySuccess: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Get the internal link to this file id\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tinternalLink() {\n\t\t\treturn window.location.protocol + '//' + window.location.host + generateUrl('/f/') + this.fileInfo.id\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcopyLinkTooltip() {\n\t\t\tif (this.copied) {\n\t\t\t\tif (this.copySuccess) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\treturn t('files_sharing', 'Cannot copy, please copy the link manually')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Copy internal link to clipboard')\n\t\t},\n\n\t\tinternalLinkSubtitle() {\n\t\t\tif (this.fileInfo.type === 'dir') {\n\t\t\t\treturn t('files_sharing', 'Only works for people with access to this folder')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Only works for people with access to this file')\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync copyLink() {\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(this.internalLink)\n\t\t\t\tshowSuccess(t('files_sharing', 'Link copied'))\n\t\t\t\tthis.$refs.shareEntrySimple.$refs.actionsComponent.$el.focus()\n\t\t\t\tthis.copySuccess = true\n\t\t\t\tthis.copied = true\n\t\t\t} catch (error) {\n\t\t\t\tthis.copySuccess = false\n\t\t\t\tthis.copied = true\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.copySuccess = false\n\t\t\t\t\tthis.copied = false\n\t\t\t\t}, 4000)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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-success);\n\t}\n}\n</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=1d9a7cfa&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=1d9a7cfa&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=1d9a7cfa&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=1d9a7cfa&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 \"1d9a7cfa\",\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\":\"sharing-search-input\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.isExternal ? _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\":\"sharing-search-input\",\"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: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n// TODO: remove when ie not supported\nimport 'url-search-params-polyfill'\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\nimport Share from '../models/Share.ts'\nimport { emit } from '@nextcloud/event-bus'\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\tconsole.error('Error while creating share', error)\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error creating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error creating the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow 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\tconsole.error('Error while deleting share', error)\n\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\terrorMessage ? t('files_sharing', 'Error deleting the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error deleting the share'),\n\t\t\t\t\t{ type: 'error' },\n\t\t\t\t)\n\t\t\t\tthrow 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\tconsole.error('Error while updating share', error)\n\t\t\t\tif (error.response.status !== 400) {\n\t\t\t\t\tconst errorMessage = error?.response?.data?.ocs?.meta?.message\n\t\t\t\t\tOC.Notification.showTemporary(\n\t\t\t\t\t\terrorMessage ? t('files_sharing', 'Error updating the share: {errorMessage}', { errorMessage }) : t('files_sharing', 'Error updating the share'),\n\t\t\t\t\t\t{ type: 'error' },\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst message = error.response.data.ocs.meta.message\n\t\t\t\tthrow new Error(message)\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Share from '../models/Share.ts'\nimport Config from '../services/ConfigService.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\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\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\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","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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"sharing-search\">\n\t\t<label class=\"hidden-visually\" for=\"sharing-search-input\">\n\t\t\t{{ isExternal ? t('files_sharing', 'Enter external recipients')\n\t\t\t\t: t('files_sharing', 'Search for internal recipients') }}\n\t\t</label>\n\t\t<NcSelect ref=\"select\"\n\t\t\tv-model=\"value\"\n\t\t\tinput-id=\"sharing-search-input\"\n\t\t\tclass=\"sharing-search__input\"\n\t\t\t:disabled=\"!canReshare\"\n\t\t\t:loading=\"loading\"\n\t\t\t:filterable=\"false\"\n\t\t\t:placeholder=\"inputPlaceholder\"\n\t\t\t:clear-search-on-blur=\"() => false\"\n\t\t\t:user-select=\"true\"\n\t\t\t:options=\"options\"\n\t\t\t:label-outside=\"true\"\n\t\t\t@search=\"asyncFind\"\n\t\t\t@option:selected=\"onSelected\">\n\t\t\t<template #no-options=\"{ search }\">\n\t\t\t\t{{ search ? noResultText : placeholder }}\n\t\t\t</template>\n\t\t</NcSelect>\n\t</div>\n</template>\n\n<script>\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport axios from '@nextcloud/axios'\nimport debounce from 'debounce'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\n\nimport Config from '../services/ConfigService.ts'\nimport Share from '../models/Share.ts'\nimport ShareRequests from '../mixins/ShareRequests.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { ShareType } from '@nextcloud/sharing'\n\nexport default {\n\tname: 'SharingInput',\n\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\n\tmixins: [ShareRequests, ShareDetails],\n\n\tprops: {\n\t\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tlinkShares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\treshare: {\n\t\t\ttype: Share,\n\t\t\tdefault: null,\n\t\t},\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tisExternal: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tloading: false,\n\t\t\tquery: '',\n\t\t\trecommendations: [],\n\t\t\tShareSearch: OCA.Sharing.ShareSearch.state,\n\t\t\tsuggestions: [],\n\t\t\tvalue: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Implement ShareSearch\n\t\t * allows external appas to inject new\n\t\t * results into the autocomplete dropdown\n\t\t * Used for the guests app\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalResults() {\n\t\t\treturn this.ShareSearch.results\n\t\t},\n\t\tinputPlaceholder() {\n\t\t\tconst allowRemoteSharing = this.config.isRemoteShareAllowed\n\n\t\t\tif (!this.canReshare) {\n\t\t\t\treturn t('files_sharing', 'Resharing is not allowed')\n\t\t\t}\n\t\t\tif (this.placeholder) {\n\t\t\t\treturn this.placeholder\n\t\t\t}\n\n\t\t\t// We can always search with email addresses for users too\n\t\t\tif (!allowRemoteSharing) {\n\t\t\t\treturn t('files_sharing', 'Name or email …')\n\t\t\t}\n\n\t\t\treturn t('files_sharing', 'Name, email, or Federated Cloud ID …')\n\t\t},\n\n\t\tisValidQuery() {\n\t\t\treturn this.query && this.query.trim() !== '' && this.query.length > this.config.minSearchStringLength\n\t\t},\n\n\t\toptions() {\n\t\t\tif (this.isValidQuery) {\n\t\t\t\treturn this.suggestions\n\t\t\t}\n\t\t\treturn this.recommendations\n\t\t},\n\n\t\tnoResultText() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn t('files_sharing', 'Searching …')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'No elements found.')\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.isExternal) {\n\t\t\t// We can only recommend users, groups etc for internal shares\n\t\t\tthis.getRecommendations()\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonSelected(option) {\n\t\t\tthis.value = null // Reset selected option\n\t\t\tthis.openSharingDetails(option)\n\t\t},\n\n\t\tasync asyncFind(query) {\n\t\t\t// save current query to check if we display\n\t\t\t// recommendations or search results\n\t\t\tthis.query = query.trim()\n\t\t\tif (this.isValidQuery) {\n\t\t\t\t// start loading now to have proper ux feedback\n\t\t\t\t// during the debounce\n\t\t\t\tthis.loading = true\n\t\t\t\tawait this.debounceGetSuggestions(query)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get suggestions\n\t\t *\n\t\t * @param {string} search the search query\n\t\t * @param {boolean} [lookup] search on lookup server\n\t\t */\n\t\tasync getSuggestions(search, lookup = false) {\n\t\t\tthis.loading = true\n\n\t\t\tif (getCapabilities().files_sharing.sharee.query_lookup_default === true) {\n\t\t\t\tlookup = true\n\t\t\t}\n\n\t\t\tlet shareType = []\n\n\t\t\tif (this.isExternal) {\n\t\t\t\tshareType.push(ShareType.Remote)\n\t\t\t\tshareType.push(ShareType.RemoteGroup)\n\t\t\t} else {\n\t\t\t\t// Merge shareType array\n\t\t\t\tshareType = shareType.concat([\n\t\t\t\t\tShareType.User,\n\t\t\t\t\tShareType.Group,\n\t\t\t\t\tShareType.Team,\n\t\t\t\t\tShareType.Room,\n\t\t\t\t\tShareType.Guest,\n\t\t\t\t\tShareType.Deck,\n\t\t\t\t\tShareType.ScienceMesh,\n\t\t\t\t])\n\n\t\t\t}\n\n\t\t\tif (getCapabilities().files_sharing.public.enabled === true && this.isExternal) {\n\t\t\t\tshareType.push(ShareType.Email)\n\t\t\t}\n\n\t\t\tlet request = null\n\t\t\ttry {\n\t\t\t\trequest = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees'), {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat: 'json',\n\t\t\t\t\t\titemType: this.fileInfo.type === 'dir' ? 'folder' : 'file',\n\t\t\t\t\t\tsearch,\n\t\t\t\t\t\tlookup,\n\t\t\t\t\t\tperPage: this.config.maxAutocompleteResults,\n\t\t\t\t\t\tshareType,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error fetching suggestions', error)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst data = request.data.ocs.data\n\t\t\tconst exact = request.data.ocs.data.exact\n\t\t\tdata.exact = [] // removing exact from general results\n\n\t\t\t// flatten array of arrays\n\t\t\tconst rawExactSuggestions = Object.values(exact).reduce((arr, elem) => arr.concat(elem), [])\n\t\t\tconst rawSuggestions = Object.values(data).reduce((arr, elem) => arr.concat(elem), [])\n\n\t\t\t// remove invalid data and format to user-select layout\n\t\t\tconst exactSuggestions = this.filterOutExistingShares(rawExactSuggestions)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t// sort by type so we can get user&groups first...\n\t\t\t\t.sort((a, b) => a.shareType - b.shareType)\n\t\t\tconst suggestions = this.filterOutExistingShares(rawSuggestions)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t// sort by type so we can get user&groups first...\n\t\t\t\t.sort((a, b) => a.shareType - b.shareType)\n\n\t\t\t// lookup clickable entry\n\t\t\t// show if enabled and not already requested\n\t\t\tconst lookupEntry = []\n\t\t\tif (data.lookupEnabled && !lookup) {\n\t\t\t\tlookupEntry.push({\n\t\t\t\t\tid: 'global-lookup',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tdisplayName: t('files_sharing', 'Search globally'),\n\t\t\t\t\tlookup: true,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// if there is a condition specified, filter it\n\t\t\tconst externalResults = this.externalResults.filter(result => !result.condition || result.condition(this))\n\n\t\t\tconst allSuggestions = exactSuggestions.concat(suggestions).concat(externalResults).concat(lookupEntry)\n\n\t\t\t// Count occurrences of display names in order to provide a distinguishable description if needed\n\t\t\tconst nameCounts = allSuggestions.reduce((nameCounts, result) => {\n\t\t\t\tif (!result.displayName) {\n\t\t\t\t\treturn nameCounts\n\t\t\t\t}\n\t\t\t\tif (!nameCounts[result.displayName]) {\n\t\t\t\t\tnameCounts[result.displayName] = 0\n\t\t\t\t}\n\t\t\t\tnameCounts[result.displayName]++\n\t\t\t\treturn nameCounts\n\t\t\t}, {})\n\n\t\t\tthis.suggestions = allSuggestions.map(item => {\n\t\t\t\t// Make sure that items with duplicate displayName get the shareWith applied as a description\n\t\t\t\tif (nameCounts[item.displayName] > 1 && !item.desc) {\n\t\t\t\t\treturn { ...item, desc: item.shareWithDisplayNameUnique }\n\t\t\t\t}\n\t\t\t\treturn item\n\t\t\t})\n\n\t\t\tthis.loading = false\n\t\t\tconsole.info('suggestions', this.suggestions)\n\t\t},\n\n\t\t/**\n\t\t * Debounce getSuggestions\n\t\t *\n\t\t * @param {...*} args the arguments\n\t\t */\n\t\tdebounceGetSuggestions: debounce(function(...args) {\n\t\t\tthis.getSuggestions(...args)\n\t\t}, 300),\n\n\t\t/**\n\t\t * Get the sharing recommendations\n\t\t */\n\t\tasync getRecommendations() {\n\t\t\tthis.loading = true\n\n\t\t\tlet request = null\n\t\t\ttry {\n\t\t\t\trequest = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees_recommended'), {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat: 'json',\n\t\t\t\t\t\titemType: this.fileInfo.type,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error fetching recommendations', error)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Add external results from the OCA.Sharing.ShareSearch api\n\t\t\tconst externalResults = this.externalResults.filter(result => !result.condition || result.condition(this))\n\n\t\t\t// flatten array of arrays\n\t\t\tconst rawRecommendations = Object.values(request.data.ocs.data.exact)\n\t\t\t\t.reduce((arr, elem) => arr.concat(elem), [])\n\n\t\t\t// remove invalid data and format to user-select layout\n\t\t\tthis.recommendations = this.filterOutExistingShares(rawRecommendations)\n\t\t\t\t.map(share => this.formatForMultiselect(share))\n\t\t\t\t.concat(externalResults)\n\n\t\t\tthis.loading = false\n\t\t\tconsole.info('recommendations', this.recommendations)\n\t\t},\n\n\t\t/**\n\t\t * Filter out existing shares from\n\t\t * the provided shares search results\n\t\t *\n\t\t * @param {object[]} shares the array of shares object\n\t\t * @return {object[]}\n\t\t */\n\t\tfilterOutExistingShares(shares) {\n\t\t\treturn shares.reduce((arr, share) => {\n\t\t\t\t// only check proper objects\n\t\t\t\tif (typeof share !== 'object') {\n\t\t\t\t\treturn arr\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tif (share.value.shareType === ShareType.User) {\n\t\t\t\t\t\t// filter out current user\n\t\t\t\t\t\tif (share.value.shareWith === getCurrentUser().uid) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// filter out the owner of the share\n\t\t\t\t\t\tif (this.reshare && share.value.shareWith === this.reshare.owner) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// filter out existing mail shares\n\t\t\t\t\tif (share.value.shareType === ShareType.Email) {\n\t\t\t\t\t\tconst emails = this.linkShares.map(elem => elem.shareWith)\n\t\t\t\t\t\tif (emails.indexOf(share.value.shareWith.trim()) !== -1) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t} else { // filter out existing shares\n\t\t\t\t\t\t// creating an object of uid => type\n\t\t\t\t\t\tconst sharesObj = this.shares.reduce((obj, elem) => {\n\t\t\t\t\t\t\tobj[elem.shareWith] = elem.type\n\t\t\t\t\t\t\treturn obj\n\t\t\t\t\t\t}, {})\n\n\t\t\t\t\t\t// if shareWith is the same and the share type too, ignore it\n\t\t\t\t\t\tconst key = share.value.shareWith.trim()\n\t\t\t\t\t\tif (key in sharesObj\n\t\t\t\t\t\t\t&& sharesObj[key] === share.value.shareType) {\n\t\t\t\t\t\t\treturn arr\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// ALL GOOD\n\t\t\t\t\t// let's add the suggestion\n\t\t\t\t\tarr.push(share)\n\t\t\t\t} catch {\n\t\t\t\t\treturn arr\n\t\t\t\t}\n\t\t\t\treturn arr\n\t\t\t}, [])\n\t\t},\n\n\t\t/**\n\t\t * Get the icon based on the share type\n\t\t *\n\t\t * @param {number} type the share type\n\t\t * @return {string} the icon class\n\t\t */\n\t\tshareTypeToIcon(type) {\n\t\t\tswitch (type) {\n\t\t\tcase ShareType.Guest:\n\t\t\t\t// default is a user, other icons are here to differentiate\n\t\t\t\t// themselves from it, so let's not display the user icon\n\t\t\t\t// case ShareType.Remote:\n\t\t\t\t// case ShareType.User:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Guest'),\n\t\t\t\t}\n\t\t\tcase ShareType.RemoteGroup:\n\t\t\tcase ShareType.Group:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-group',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Group'),\n\t\t\t\t}\n\t\t\tcase ShareType.Email:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-mail',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Email'),\n\t\t\t\t}\n\t\t\tcase ShareType.Team:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-teams',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Team'),\n\t\t\t\t}\n\t\t\tcase ShareType.Room:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-room',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Talk conversation'),\n\t\t\t\t}\n\t\t\tcase ShareType.Deck:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-deck',\n\t\t\t\t\ticonTitle: t('files_sharing', 'Deck board'),\n\t\t\t\t}\n\t\t\tcase ShareType.Sciencemesh:\n\t\t\t\treturn {\n\t\t\t\t\ticon: 'icon-sciencemesh',\n\t\t\t\t\ticonTitle: t('files_sharing', 'ScienceMesh'),\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn {}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Format shares for the multiselect options\n\t\t *\n\t\t * @param {object} result select entry item\n\t\t * @return {object}\n\t\t */\n\t\tformatForMultiselect(result) {\n\t\t\tlet subname\n\t\t\tif (result.value.shareType === ShareType.User && this.config.shouldAlwaysShowUnique) {\n\t\t\t\tsubname = result.shareWithDisplayNameUnique ?? ''\n\t\t\t} else if ((result.value.shareType === ShareType.Remote\n\t\t\t\t\t|| result.value.shareType === ShareType.RemoteGroup\n\t\t\t) && result.value.server) {\n\t\t\t\tsubname = t('files_sharing', 'on {server}', { server: result.value.server })\n\t\t\t} else if (result.value.shareType === ShareType.Email) {\n\t\t\t\tsubname = result.value.shareWith\n\t\t\t} else {\n\t\t\t\tsubname = result.shareWithDescription ?? ''\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tshareWith: result.value.shareWith,\n\t\t\t\tshareType: result.value.shareType,\n\t\t\t\tuser: result.uuid || result.value.shareWith,\n\t\t\t\tisNoUser: result.value.shareType !== ShareType.User,\n\t\t\t\tdisplayName: result.name || result.label,\n\t\t\t\tsubname,\n\t\t\t\tshareWithDisplayNameUnique: result.shareWithDisplayNameUnique || '',\n\t\t\t\t...this.shareTypeToIcon(result.value.shareType),\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\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</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=9d62dc72&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=9d62dc72&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharingInput.vue?vue&type=template&id=9d62dc72\"\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=9d62dc72&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","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.shares.length)?_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}],null,false,1184892072)},[_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):_vm._e()\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\nexport const 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 * 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","import { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\nexport const fetchNode = async (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: 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 { ShareType } from '@nextcloud/sharing'\nimport { emit } from '@nextcloud/event-bus'\n\nimport PQueue from 'p-queue'\nimport debounce from 'debounce'\n\nimport Share from '../models/Share.ts'\nimport SharesRequests from './ShareRequests.js'\nimport Config from '../services/ConfigService.ts'\nimport logger from '../services/logger.ts'\n\nimport {\n\tBUNDLED_PERMISSIONS,\n} from '../lib/SharePermissionsToolBox.js'\nimport { fetchNode } from '../../../files/src/services/WebdavClient.ts'\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// 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\thasCustomPermissions() {\n\t\t\tconst bundledPermissions = [\n\t\t\t\tBUNDLED_PERMISSIONS.ALL,\n\t\t\t\tBUNDLED_PERMISSIONS.READ_ONLY,\n\t\t\t\tBUNDLED_PERMISSIONS.FILE_DROP,\n\t\t\t]\n\t\t\treturn !bundledPermissions.includes(this.share.permissions)\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},\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.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\tconst formattedDate = date ? this.formatDateToString(new Date(date)) : ''\n\t\t\tthis.share.expireDate = formattedDate\n\t\t},\n\n\t\t/**\n\t\t * Note changed, let's save it to a different key\n\t\t *\n\t\t * @param {string} note the share note\n\t\t */\n\t\tonNoteChange(note) {\n\t\t\tthis.$set(this.share, 'newNote', note.trim())\n\t\t},\n\n\t\t/**\n\t\t * When the note change, we trim, save and dispatch\n\t\t *\n\t\t */\n\t\tonNoteSubmit() {\n\t\t\tif (this.share.newNote) {\n\t\t\t\tthis.share.note = this.share.newNote\n\t\t\t\tthis.$delete(this.share, 'newNote')\n\t\t\t\tthis.queueUpdate('note')\n\t\t\t}\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\tconsole.debug('Share deleted', this.share.id)\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: this.share.path })\n\t\t\t\t\t: t('files_sharing', 'Folder \"{path}\" has been unshared', { path: this.share.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 (error) {\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<string>} 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\tpropertyNames.forEach(name => {\n\t\t\t\t\tif ((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\tthis.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.indexOf('password') >= 0) {\n\t\t\t\t\t\t\t// reset password state after sync\n\t\t\t\t\t\t\tthis.$delete(this.share, 'newPassword')\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\tthis.$delete(this.errors, propertyNames[0])\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\tthis.onSyncError(propertyNames[0], message)\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\treturn\n\t\t\t}\n\n\t\t\t// This share does not exists on the server yet\n\t\t\tconsole.debug('Updated local 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\tcase 'expireDate':\n\t\t\t\treturn t('files_sharing', 'Share expiry date saved')\n\t\t\tcase 'hideDownload':\n\t\t\t\treturn t('files_sharing', 'Share hide-download state saved')\n\t\t\tcase 'label':\n\t\t\t\treturn t('files_sharing', 'Share label saved')\n\t\t\tcase 'note':\n\t\t\t\treturn t('files_sharing', 'Share note for recipient saved')\n\t\t\tcase 'password':\n\t\t\t\treturn t('files_sharing', 'Share password saved')\n\t\t\tcase 'permissions':\n\t\t\t\treturn t('files_sharing', 'Share permissions saved')\n\t\t\tdefault:\n\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\t// re-open menu if closed\n\t\t\tthis.open = true\n\t\t\tswitch (property) {\n\t\t\tcase 'password':\n\t\t\tcase 'pending':\n\t\t\tcase 'expireDate':\n\t\t\tcase 'label':\n\t\t\tcase 'note': {\n\t\t\t\t// show error\n\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\tlet propertyEl = this.$refs[property]\n\t\t\t\tif (propertyEl) {\n\t\t\t\t\tif (propertyEl.$el) {\n\t\t\t\t\t\tpropertyEl = propertyEl.$el\n\t\t\t\t\t}\n\t\t\t\t\t// focus if there is a focusable action element\n\t\t\t\t\tconst focusable = propertyEl.querySelector('.focusable')\n\t\t\t\t\tif (focusable) {\n\t\t\t\t\t\tfocusable.focus()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase 'sendPasswordByTalk': {\n\t\t\t\t// show error\n\t\t\t\tthis.$set(this.errors, property, message)\n\n\t\t\t\t// Restore previous state\n\t\t\t\tthis.share.sendPasswordByTalk = !this.share.sendPasswordByTalk\n\t\t\t\tbreak\n\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!./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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<SharingEntrySimple :key=\"share.id\"\n\t\tclass=\"sharing-entry__inherited\"\n\t\t:title=\"share.shareWithDisplayName\">\n\t\t<template #avatar>\n\t\t\t<NcAvatar :user=\"share.shareWith\"\n\t\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t\tclass=\"sharing-entry__avatar\" />\n\t\t</template>\n\t\t<NcActionText icon=\"icon-user\">\n\t\t\t{{ t('files_sharing', 'Added by {initiator}', { initiator: share.ownerDisplayName }) }}\n\t\t</NcActionText>\n\t\t<NcActionLink v-if=\"share.viaPath && share.viaFileid\"\n\t\t\ticon=\"icon-folder\"\n\t\t\t:href=\"viaFileTargetUrl\">\n\t\t\t{{ t('files_sharing', 'Via “{folder}”', {folder: viaFolderName} ) }}\n\t\t</NcActionLink>\n\t\t<NcActionButton v-if=\"share.canDelete\"\n\t\t\ticon=\"icon-close\"\n\t\t\t@click.prevent=\"onDelete\">\n\t\t\t{{ t('files_sharing', 'Unshare') }}\n\t\t</NcActionButton>\n\t</SharingEntrySimple>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { basename } from '@nextcloud/paths'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js'\nimport NcActionText from '@nextcloud/vue/dist/Components/NcActionText.js'\n\n// eslint-disable-next-line no-unused-vars\nimport Share from '../models/Share.js'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingEntryInherited',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tNcActionLink,\n\t\tNcActionText,\n\t\tNcAvatar,\n\t\tSharingEntrySimple,\n\t},\n\n\tmixins: [SharesMixin],\n\n\tprops: {\n\t\tshare: {\n\t\t\ttype: Share,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tviaFileTargetUrl() {\n\t\t\treturn generateUrl('/f/{fileid}', {\n\t\t\t\tfileid: this.share.viaFileid,\n\t\t\t})\n\t\t},\n\n\t\tviaFolderName() {\n\t\t\treturn basename(this.share.viaPath)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=32cb91ce&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=32cb91ce&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=32cb91ce&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=32cb91ce&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 \"32cb91ce\",\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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<ul v-if=\"shares.length\" id=\"sharing-inherited-shares\">\n\t\t<!-- Main collapsible entry -->\n\t\t<SharingEntrySimple class=\"sharing-entry__inherited\"\n\t\t\t:title=\"mainTitle\"\n\t\t\t:subtitle=\"subTitle\"\n\t\t\t:aria-expanded=\"showInheritedShares\">\n\t\t\t<template #avatar>\n\t\t\t\t<div class=\"avatar-shared icon-more-white\" />\n\t\t\t</template>\n\t\t\t<NcActionButton :icon=\"showInheritedSharesIcon\"\n\t\t\t\t:aria-label=\"toggleTooltip\"\n\t\t\t\t:title=\"toggleTooltip\"\n\t\t\t\t@click.prevent.stop=\"toggleInheritedShares\" />\n\t\t</SharingEntrySimple>\n\n\t\t<!-- Inherited shares list -->\n\t\t<SharingEntryInherited v-for=\"share in shares\"\n\t\t\t:key=\"share.id\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t:share=\"share\"\n\t\t\t@remove:share=\"removeShare\" />\n\t</ul>\n</template>\n\n<script>\nimport { generateOcsUrl } from '@nextcloud/router'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport axios from '@nextcloud/axios'\n\nimport Share from '../models/Share.ts'\nimport SharingEntryInherited from '../components/SharingEntryInherited.vue'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\n\nexport default {\n\tname: 'SharingInherited',\n\n\tcomponents: {\n\t\tNcActionButton,\n\t\tSharingEntryInherited,\n\t\tSharingEntrySimple,\n\t},\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},\n\n\tdata() {\n\t\treturn {\n\t\t\tloaded: false,\n\t\t\tloading: false,\n\t\t\tshowInheritedShares: false,\n\t\t\tshares: [],\n\t\t}\n\t},\n\tcomputed: {\n\t\tshowInheritedSharesIcon() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn 'icon-loading-small'\n\t\t\t}\n\t\t\tif (this.showInheritedShares) {\n\t\t\t\treturn 'icon-triangle-n'\n\t\t\t}\n\t\t\treturn 'icon-triangle-s'\n\t\t},\n\t\tmainTitle() {\n\t\t\treturn t('files_sharing', 'Others with access')\n\t\t},\n\t\tsubTitle() {\n\t\t\treturn (this.showInheritedShares && this.shares.length === 0)\n\t\t\t\t? t('files_sharing', 'No other accounts with access found')\n\t\t\t\t: ''\n\t\t},\n\t\ttoggleTooltip() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t\t\t? t('files_sharing', 'Toggle list of others with access to this directory')\n\t\t\t\t: t('files_sharing', 'Toggle list of others with access to this file')\n\t\t},\n\t\tfullPath() {\n\t\t\tconst path = `${this.fileInfo.path}/${this.fileInfo.name}`\n\t\t\treturn path.replace('//', '/')\n\t\t},\n\t},\n\twatch: {\n\t\tfileInfo() {\n\t\t\tthis.resetState()\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Toggle the list view and fetch/reset the state\n\t\t */\n\t\ttoggleInheritedShares() {\n\t\t\tthis.showInheritedShares = !this.showInheritedShares\n\t\t\tif (this.showInheritedShares) {\n\t\t\t\tthis.fetchInheritedShares()\n\t\t\t} else {\n\t\t\t\tthis.resetState()\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Fetch the Inherited Shares array\n\t\t */\n\t\tasync fetchInheritedShares() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst url = generateOcsUrl('apps/files_sharing/api/v1/shares/inherited?format=json&path={path}', { path: this.fullPath })\n\t\t\t\tconst shares = await axios.get(url)\n\t\t\t\tthis.shares = shares.data.ocs.data\n\t\t\t\t\t.map(share => new Share(share))\n\t\t\t\t\t.sort((a, b) => b.createdTime - a.createdTime)\n\t\t\t\tconsole.info(this.shares)\n\t\t\t\tthis.loaded = true\n\t\t\t} catch (error) {\n\t\t\t\tOC.Notification.showTemporary(t('files_sharing', 'Unable to fetch inherited shares'), { type: 'error' })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Reset current component state\n\t\t */\n\t\tresetState() {\n\t\t\tthis.loaded = false\n\t\t\tthis.loading = false\n\t\t\tthis.showInheritedShares = false\n\t\t\tthis.shares = []\n\t\t},\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\tconst index = this.shares.findIndex(item => item === share)\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.splice(index, 1)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=4baa5581&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=4baa5581&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=4baa5581&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=4baa5581&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 \"4baa5581\",\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.hasLinkShares && _vm.canReshare)?_c('SharingEntryLink',{attrs:{\"can-reshare\":_vm.canReshare,\"file-info\":_vm.fileInfo},on:{\"add:share\":_vm.addShare}}):_vm._e(),_vm._v(\" \"),(_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()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon tune-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TuneIcon\",\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}\n</script>","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\"","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 }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlank.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarBlank.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon calendar-blank-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CalendarBlankIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./CalendarBlank.vue?vue&type=template&id=41fe7db9\"\nimport script from \"./CalendarBlank.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarBlank.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-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,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\"}},[(_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!./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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon qrcode-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"QrcodeIcon\",\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}\n</script>","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!./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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon exclamation-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ExclamationIcon\",\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}\n</script>","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!./Lock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon lock-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"LockIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Lock.vue?vue&type=template&id=6d856da2\"\nimport script from \"./Lock.vue?vue&type=script&lang=js\"\nexport * from \"./Lock.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-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,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar 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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon check-bold-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CheckBoldIcon\",\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}\n</script>","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 }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon triangle-small-down-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M8 9H16L12 16\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TriangleSmallDownIcon\",\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}\n</script>","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\"","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 \"-!../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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon eye-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EyeOutlineIcon\",\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}\n</script>","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 }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon file-upload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileUploadIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileUpload.vue?vue&type=template&id=caa55e94\"\nimport script from \"./FileUpload.vue?vue&type=script&lang=js\"\nexport * from \"./FileUpload.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 file-upload-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\":\"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\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-->\n<template>\n\t<NcActions ref=\"quickShareActions\"\n\t\tclass=\"share-select\"\n\t\t:menu-name=\"selectedOption\"\n\t\t:aria-label=\"ariaLabel\"\n\t\ttype=\"tertiary-no-background\"\n\t\t:disabled=\"!share.canEdit\"\n\t\tforce-name>\n\t\t<template #icon>\n\t\t\t<DropdownIcon :size=\"15\" />\n\t\t</template>\n\t\t<NcActionButton v-for=\"option in options\"\n\t\t\t:key=\"option.label\"\n\t\t\ttype=\"radio\"\n\t\t\t:model-value=\"option.label === selectedOption\"\n\t\t\tclose-after-click\n\t\t\t@click=\"selectOption(option.label)\">\n\t\t\t<template #icon>\n\t\t\t\t<component :is=\"option.icon\" />\n\t\t\t</template>\n\t\t\t{{ option.label }}\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n\n<script>\nimport { ShareType } from '@nextcloud/sharing'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport DropdownIcon from 'vue-material-design-icons/TriangleSmallDown.vue'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport IconEyeOutline from 'vue-material-design-icons/EyeOutline.vue'\nimport IconPencil from 'vue-material-design-icons/Pencil.vue'\nimport IconFileUpload from 'vue-material-design-icons/FileUpload.vue'\nimport IconTune from 'vue-material-design-icons/Tune.vue'\n\nimport {\n\tBUNDLED_PERMISSIONS,\n\tATOMIC_PERMISSIONS,\n} from '../lib/SharePermissionsToolBox.js'\n\nexport default {\n\tname: 'SharingEntryQuickShareSelect',\n\n\tcomponents: {\n\t\tDropdownIcon,\n\t\tNcActions,\n\t\tNcActionButton,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tprops: {\n\t\tshare: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\temits: ['open-sharing-details'],\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedOption: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tariaLabel() {\n\t\t\treturn t('files_sharing', 'Quick share options, the current selected is \"{selectedOption}\"', { selectedOption: this.selectedOption })\n\t\t},\n\t\tcanViewText() {\n\t\t\treturn t('files_sharing', 'View only')\n\t\t},\n\t\tcanEditText() {\n\t\t\treturn t('files_sharing', 'Can edit')\n\t\t},\n\t\tfileDropText() {\n\t\t\treturn t('files_sharing', 'File request')\n\t\t},\n\t\tcustomPermissionsText() {\n\t\t\treturn t('files_sharing', 'Custom permissions')\n\t\t},\n\t\tpreSelectedOption() {\n\t\t\t// We remove the share permission for the comparison as it is not relevant for bundled permissions.\n\t\t\tif ((this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE) === BUNDLED_PERMISSIONS.READ_ONLY) {\n\t\t\t\treturn this.canViewText\n\t\t\t} else if (this.share.permissions === BUNDLED_PERMISSIONS.ALL || this.share.permissions === BUNDLED_PERMISSIONS.ALL_FILE) {\n\t\t\t\treturn this.canEditText\n\t\t\t} else if ((this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE) === BUNDLED_PERMISSIONS.FILE_DROP) {\n\t\t\t\treturn this.fileDropText\n\t\t\t}\n\n\t\t\treturn this.customPermissionsText\n\n\t\t},\n\t\toptions() {\n\t\t\tconst options = [{\n\t\t\t\tlabel: this.canViewText,\n\t\t\t\ticon: IconEyeOutline,\n\t\t\t}, {\n\t\t\t\tlabel: this.canEditText,\n\t\t\t\ticon: IconPencil,\n\t\t\t}]\n\t\t\tif (this.supportsFileDrop) {\n\t\t\t\toptions.push({\n\t\t\t\t\tlabel: this.fileDropText,\n\t\t\t\t\ticon: IconFileUpload,\n\t\t\t\t})\n\t\t\t}\n\t\t\toptions.push({\n\t\t\t\tlabel: this.customPermissionsText,\n\t\t\t\ticon: IconTune,\n\t\t\t})\n\n\t\t\treturn options\n\t\t},\n\t\tsupportsFileDrop() {\n\t\t\tif (this.isFolder && this.config.isPublicUploadEnabled) {\n\t\t\t\tconst shareType = this.share.type ?? this.share.shareType\n\t\t\t\treturn [ShareType.Link, ShareType.Email].includes(shareType)\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tdropDownPermissionValue() {\n\t\t\tswitch (this.selectedOption) {\n\t\t\tcase this.canEditText:\n\t\t\t\treturn this.isFolder ? BUNDLED_PERMISSIONS.ALL : BUNDLED_PERMISSIONS.ALL_FILE\n\t\t\tcase this.fileDropText:\n\t\t\t\treturn BUNDLED_PERMISSIONS.FILE_DROP\n\t\t\tcase this.customPermissionsText:\n\t\t\t\treturn 'custom'\n\t\t\tcase this.canViewText:\n\t\t\tdefault:\n\t\t\t\treturn BUNDLED_PERMISSIONS.READ_ONLY\n\t\t\t}\n\t\t},\n\t},\n\n\tcreated() {\n\t\tthis.selectedOption = this.preSelectedOption\n\t},\n\tmounted() {\n\t\tsubscribe('update:share', (share) => {\n\t\t\tif (share.id === this.share.id) {\n\t\t\t\tthis.share.permissions = share.permissions\n\t\t\t\tthis.selectedOption = this.preSelectedOption\n\t\t\t}\n\t\t})\n\t},\n\tunmounted() {\n\t\tunsubscribe('update:share')\n\t},\n\tmethods: {\n\t\tselectOption(optionLabel) {\n\t\t\tthis.selectedOption = optionLabel\n\t\t\tif (optionLabel === this.customPermissionsText) {\n\t\t\t\tthis.$emit('open-sharing-details')\n\t\t\t} else {\n\t\t\t\tthis.share.permissions = this.dropDownPermissionValue\n\t\t\t\tthis.queueUpdate('permissions')\n\t\t\t\t// TODO: Add a focus method to NcActions or configurable returnFocus enabling to NcActionButton with closeAfterClick\n\t\t\t\tthis.$refs.quickShareActions.$refs.menuButton.$el.focus()\n\t\t\t}\n\t\t},\n\t},\n\n}\n</script>\n\n<style lang=\"scss\" scoped>\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</style>\n","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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=be1cd266&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=be1cd266&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=be1cd266&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=be1cd266&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 \"be1cd266\",\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,\"type\":\"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 }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalShareAction.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!./ExternalShareAction.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<Component :is=\"data.is\"\n\t\tv-bind=\"data\"\n\t\tv-on=\"action.handlers\">\n\t\t{{ data.text }}\n\t</Component>\n</template>\n\n<script>\nimport Share from '../models/Share.ts'\n\nexport default {\n\tname: 'ExternalShareAction',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\taction: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\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},\n\n\tcomputed: {\n\t\tdata() {\n\t\t\treturn this.action.data(this)\n\t\t},\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./ExternalShareAction.vue?vue&type=template&id=2812a40a\"\nimport script from \"./ExternalShareAction.vue?vue&type=script&lang=js\"\nexport * from \"./ExternalShareAction.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: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport Config from '../services/ConfigService.ts';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\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 {boolean} 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 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 console.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 self.crypto.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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li :class=\"{ 'sharing-entry--share': share }\"\n\t\tclass=\"sharing-entry sharing-entry__link\">\n\t\t<NcAvatar :is-no-user=\"true\"\n\t\t\t:icon-class=\"isEmailShareType ? 'avatar-link-share icon-mail-white' : 'avatar-link-share icon-public-white'\"\n\t\t\tclass=\"sharing-entry__avatar\" />\n\n\t\t<div class=\"sharing-entry__summary\">\n\t\t\t<div class=\"sharing-entry__desc\">\n\t\t\t\t<span class=\"sharing-entry__title\" :title=\"title\">\n\t\t\t\t\t{{ title }}\n\t\t\t\t</span>\n\t\t\t\t<p v-if=\"subtitle\">\n\t\t\t\t\t{{ subtitle }}\n\t\t\t\t</p>\n\t\t\t\t<SharingEntryQuickShareSelect v-if=\"share && share.permissions !== undefined\"\n\t\t\t\t\t:share=\"share\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t@open-sharing-details=\"openShareDetailsForCustomSettings(share)\" />\n\t\t\t</div>\n\n\t\t\t<!-- clipboard -->\n\t\t\t<NcActions v-if=\"share && (!isEmailShareType || isFileRequest) && share.token\" ref=\"copyButton\" class=\"sharing-entry__copy\">\n\t\t\t\t<NcActionButton :aria-label=\"copyLinkTooltip\"\n\t\t\t\t\t:title=\"copyLinkTooltip\"\n\t\t\t\t\t:href=\"shareLink\"\n\t\t\t\t\t@click.prevent=\"copyLink\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<CheckIcon v-if=\"copied && copySuccess\"\n\t\t\t\t\t\t\t:size=\"20\"\n\t\t\t\t\t\t\tclass=\"icon-checkmark-color\" />\n\t\t\t\t\t\t<ClipboardIcon v-else :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcActionButton>\n\t\t\t</NcActions>\n\t\t</div>\n\n\t\t<!-- pending actions -->\n\t\t<NcActions v-if=\"!pending && pendingDataIsMissing\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\t:aria-label=\"actionsTooltip\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:open.sync=\"open\"\n\t\t\t@close=\"onCancel\">\n\t\t\t<!-- pending data menu -->\n\t\t\t<NcActionText v-if=\"errors.pending\"\n\t\t\t\tclass=\"error\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ErrorIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ errors.pending }}\n\t\t\t</NcActionText>\n\t\t\t<NcActionText v-else icon=\"icon-info\">\n\t\t\t\t{{ t('files_sharing', 'Please enter the following required information before creating the share') }}\n\t\t\t</NcActionText>\n\n\t\t\t<!-- password -->\n\t\t\t<NcActionCheckbox v-if=\"pendingPassword\"\n\t\t\t\t:checked.sync=\"isPasswordProtected\"\n\t\t\t\t:disabled=\"config.enforcePasswordForPublicLink || saving\"\n\t\t\t\tclass=\"share-link-password-checkbox\"\n\t\t\t\t@uncheck=\"onPasswordDisable\">\n\t\t\t\t{{ config.enforcePasswordForPublicLink ? t('files_sharing', 'Password protection (enforced)') : t('files_sharing', 'Password protection') }}\n\t\t\t</NcActionCheckbox>\n\n\t\t\t<NcActionInput v-if=\"pendingEnforcedPassword || share.password\"\n\t\t\t\tclass=\"share-link-password\"\n\t\t\t\t:label=\"t('files_sharing', 'Enter a password')\"\n\t\t\t\t:value.sync=\"share.password\"\n\t\t\t\t:disabled=\"saving\"\n\t\t\t\t:required=\"config.enableLinkPasswordByDefault || config.enforcePasswordForPublicLink\"\n\t\t\t\t:minlength=\"isPasswordPolicyEnabled && config.passwordPolicy.minLength\"\n\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t@submit=\"onNewLinkShare(true)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<LockIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionInput>\n\n\t\t\t<NcActionCheckbox v-if=\"pendingDefaultExpirationDate\"\n\t\t\t\t:checked.sync=\"defaultExpirationDateEnabled\"\n\t\t\t\t:disabled=\"pendingEnforcedExpirationDate || saving\"\n\t\t\t\tclass=\"share-link-expiration-date-checkbox\"\n\t\t\t\t@update:model-value=\"onExpirationDateToggleUpdate\">\n\t\t\t\t{{ config.isDefaultExpireDateEnforced ? t('files_sharing', 'Enable link expiration (enforced)') : t('files_sharing', 'Enable link expiration') }}\n\t\t\t</NcActionCheckbox>\n\n\t\t\t<!-- expiration date -->\n\t\t\t<NcActionInput v-if=\"(pendingDefaultExpirationDate || pendingEnforcedExpirationDate) && defaultExpirationDateEnabled\"\n\t\t\t\tdata-cy-files-sharing-expiration-date-input\n\t\t\t\tclass=\"share-link-expire-date\"\n\t\t\t\t:label=\"pendingEnforcedExpirationDate ? t('files_sharing', 'Enter expiration date (enforced)') : t('files_sharing', 'Enter expiration date')\"\n\t\t\t\t:disabled=\"saving\"\n\t\t\t\t:is-native-picker=\"true\"\n\t\t\t\t:hide-label=\"true\"\n\t\t\t\t:value=\"new Date(share.expireDate)\"\n\t\t\t\ttype=\"date\"\n\t\t\t\t:min=\"dateTomorrow\"\n\t\t\t\t:max=\"maxExpirationDateEnforced\"\n\t\t\t\t@change=\"expirationDateChanged($event)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconCalendarBlank :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionInput>\n\n\t\t\t<NcActionButton @click.prevent.stop=\"onNewLinkShare(true)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CheckIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('files_sharing', 'Create share') }}\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton @click.prevent.stop=\"onCancel\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CloseIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('files_sharing', 'Cancel') }}\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\n\t\t<!-- actions -->\n\t\t<NcActions v-else-if=\"!loading\"\n\t\t\tclass=\"sharing-entry__actions\"\n\t\t\t:aria-label=\"actionsTooltip\"\n\t\t\tmenu-align=\"right\"\n\t\t\t:open.sync=\"open\"\n\t\t\t@close=\"onMenuClose\">\n\t\t\t<template v-if=\"share\">\n\t\t\t\t<template v-if=\"share.canEdit && canReshare\">\n\t\t\t\t\t<NcActionButton :disabled=\"saving\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t@click.prevent=\"openSharingDetails\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Tune :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ t('files_sharing', 'Customize link') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</template>\n\n\t\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t\t@click.prevent=\"showQRCode = true\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconQr :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_sharing', 'Generate QR code') }}\n\t\t\t\t</NcActionButton>\n\n\t\t\t\t<NcActionSeparator />\n\n\t\t\t\t<!-- external actions -->\n\t\t\t\t<ExternalShareAction v-for=\"action in externalLinkActions\"\n\t\t\t\t\t:id=\"action.id\"\n\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t:action=\"action\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:share=\"share\" />\n\n\t\t\t\t<!-- external legacy sharing via url (social...) -->\n\t\t\t\t<NcActionLink v-for=\"({ icon, url, name }, actionIndex) in externalLegacyLinkActions\"\n\t\t\t\t\t:key=\"actionIndex\"\n\t\t\t\t\t:href=\"url(shareLink)\"\n\t\t\t\t\t:icon=\"icon\"\n\t\t\t\t\ttarget=\"_blank\">\n\t\t\t\t\t{{ name }}\n\t\t\t\t</NcActionLink>\n\n\t\t\t\t<NcActionButton v-if=\"!isEmailShareType && canReshare\"\n\t\t\t\t\tclass=\"new-share-link\"\n\t\t\t\t\t@click.prevent.stop=\"onNewLinkShare\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<PlusIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_sharing', 'Add another link') }}\n\t\t\t\t</NcActionButton>\n\n\t\t\t\t<NcActionButton v-if=\"share.canDelete\"\n\t\t\t\t\t:disabled=\"saving\"\n\t\t\t\t\t@click.prevent=\"onDelete\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<CloseIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('files_sharing', 'Unshare') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\n\t\t\t<!-- Create new share -->\n\t\t\t<NcActionButton v-else-if=\"canReshare\"\n\t\t\t\tclass=\"new-share-link\"\n\t\t\t\t:title=\"t('files_sharing', 'Create a new share link')\"\n\t\t\t\t:aria-label=\"t('files_sharing', 'Create a new share link')\"\n\t\t\t\t:icon=\"loading ? 'icon-loading-small' : 'icon-add'\"\n\t\t\t\t@click.prevent.stop=\"onNewLinkShare\" />\n\t\t</NcActions>\n\n\t\t<!-- loading indicator to replace the menu -->\n\t\t<div v-else class=\"icon-loading-small sharing-entry__loading\" />\n\n\t\t<!-- Modal to open whenever we have a QR code -->\n\t\t<NcDialog v-if=\"showQRCode\"\n\t\t\tsize=\"normal\"\n\t\t\t:open.sync=\"showQRCode\"\n\t\t\t:name=\"title\"\n\t\t\t:close-on-click-outside=\"true\"\n\t\t\t@close=\"showQRCode = false\">\n\t\t\t<div class=\"qr-code-dialog\">\n\t\t\t\t<VueQrcode tag=\"img\"\n\t\t\t\t\t:value=\"shareLink\"\n\t\t\t\t\tclass=\"qr-code-dialog__img\" />\n\t\t\t</div>\n\t\t</NcDialog>\n\t</li>\n</template>\n\n<script>\nimport { emit } from '@nextcloud/event-bus'\nimport { generateUrl, getBaseUrl } from '@nextcloud/router'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { ShareType } from '@nextcloud/sharing'\nimport VueQrcode from '@chenfengyuan/vue-qrcode'\nimport moment from '@nextcloud/moment'\nimport Vue from 'vue'\n\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcActionCheckbox from '@nextcloud/vue/dist/Components/NcActionCheckbox.js'\nimport NcActionInput from '@nextcloud/vue/dist/Components/NcActionInput.js'\nimport NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js'\nimport NcActionText from '@nextcloud/vue/dist/Components/NcActionText.js'\nimport NcActionSeparator from '@nextcloud/vue/dist/Components/NcActionSeparator.js'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js'\n\nimport Tune from 'vue-material-design-icons/Tune.vue'\nimport IconCalendarBlank from 'vue-material-design-icons/CalendarBlank.vue'\nimport IconQr from 'vue-material-design-icons/Qrcode.vue'\nimport ErrorIcon from 'vue-material-design-icons/Exclamation.vue'\nimport LockIcon from 'vue-material-design-icons/Lock.vue'\nimport CheckIcon from 'vue-material-design-icons/CheckBold.vue'\nimport ClipboardIcon from 'vue-material-design-icons/ContentCopy.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\nimport PlusIcon from 'vue-material-design-icons/Plus.vue'\n\nimport SharingEntryQuickShareSelect from './SharingEntryQuickShareSelect.vue'\n\nimport ExternalShareAction from './ExternalShareAction.vue'\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport Share from '../models/Share.ts'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default {\n\tname: 'SharingEntryLink',\n\n\tcomponents: {\n\t\tExternalShareAction,\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcActionCheckbox,\n\t\tNcActionInput,\n\t\tNcActionLink,\n\t\tNcActionText,\n\t\tNcActionSeparator,\n\t\tNcAvatar,\n\t\tNcDialog,\n\t\tVueQrcode,\n\t\tTune,\n\t\tIconCalendarBlank,\n\t\tIconQr,\n\t\tErrorIcon,\n\t\tLockIcon,\n\t\tCheckIcon,\n\t\tClipboardIcon,\n\t\tCloseIcon,\n\t\tPlusIcon,\n\t\tSharingEntryQuickShareSelect,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tprops: {\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tindex: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshareCreationComplete: false,\n\t\t\tcopySuccess: true,\n\t\t\tcopied: false,\n\t\t\tdefaultExpirationDateEnabled: false,\n\n\t\t\t// Are we waiting for password/expiration date\n\t\t\tpending: false,\n\n\t\t\tExternalLegacyLinkActions: OCA.Sharing.ExternalLinkActions.state,\n\t\t\tExternalShareActions: OCA.Sharing.ExternalShareActions.state,\n\t\t\tlogger: getLoggerBuilder()\n\t\t\t\t.setApp('files_sharing')\n\t\t\t\t.detectUser()\n\t\t\t\t.build(),\n\n\t\t\t// tracks whether modal should be opened or not\n\t\t\tshowQRCode: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Link share label\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\ttitle() {\n\t\t\t// if we have a valid existing share (not pending)\n\t\t\tif (this.share && this.share.id) {\n\t\t\t\tif (!this.isShareOwner && this.share.ownerDisplayName) {\n\t\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\t\treturn t('files_sharing', '{shareWith} by {initiator}', {\n\t\t\t\t\t\t\tshareWith: this.share.shareWith,\n\t\t\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\treturn t('files_sharing', 'Shared via link by {initiator}', {\n\t\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (this.share.label && this.share.label.trim() !== '') {\n\t\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\t\tif (this.isFileRequest) {\n\t\t\t\t\t\t\treturn t('files_sharing', 'File request ({label})', {\n\t\t\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn t('files_sharing', 'Mail share ({label})', {\n\t\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\treturn t('files_sharing', 'Share link ({label})', {\n\t\t\t\t\t\tlabel: this.share.label.trim(),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (this.isEmailShareType) {\n\t\t\t\t\tif (!this.share.shareWith || this.share.shareWith.trim() === '') {\n\t\t\t\t\t\treturn this.isFileRequest\n\t\t\t\t\t\t\t? t('files_sharing', 'File request')\n\t\t\t\t\t\t\t: t('files_sharing', 'Mail share')\n\t\t\t\t\t}\n\t\t\t\t\treturn this.share.shareWith\n\t\t\t\t}\n\n\t\t\t\tif (this.index === null) {\n\t\t\t\t\treturn t('files_sharing', 'Share link')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.index >= 1) {\n\t\t\t\treturn t('files_sharing', 'Share link ({index})', { index: this.index })\n\t\t\t}\n\n\t\t\treturn t('files_sharing', 'Create public link')\n\t\t},\n\n\t\t/**\n\t\t * Show the email on a second line if a label is set for mail shares\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsubtitle() {\n\t\t\tif (this.isEmailShareType\n\t\t\t\t&& this.title !== this.share.shareWith) {\n\t\t\t\treturn this.share.shareWith\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\treturn this.config.enforcePasswordForPublicLink\n\t\t\t\t\t|| !!this.share.password\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\t// TODO: directly save after generation to make sure the share is always protected\n\t\t\t\tVue.set(this.share, 'password', enabled ? await GeneratePassword(true) : '')\n\t\t\t\tVue.set(this.share, 'newPassword', this.share.password)\n\t\t\t},\n\t\t},\n\n\t\tpasswordExpirationTime() {\n\t\t\tif (this.share.passwordExpirationTime === null) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst expirationTime = moment(this.share.passwordExpirationTime)\n\n\t\t\tif (expirationTime.diff(moment()) < 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn expirationTime.fromNow()\n\t\t},\n\n\t\t/**\n\t\t * Is Talk enabled?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisTalkEnabled() {\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Is it possible to protect the password by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalkAvailable() {\n\t\t\treturn this.isPasswordProtected && this.isTalkEnabled\n\t\t},\n\n\t\t/**\n\t\t * Is the current share password protected by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalk: {\n\t\t\tget() {\n\t\t\t\treturn this.share.sendPasswordByTalk\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tthis.share.sendPasswordByTalk = enabled\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Is the current share an email share ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisEmailShareType() {\n\t\t\treturn this.share\n\t\t\t\t? this.share.type === ShareType.Email\n\t\t\t\t: false\n\t\t},\n\n\t\tcanTogglePasswordProtectedByTalkAvailable() {\n\t\t\tif (!this.isPasswordProtected) {\n\t\t\t\t// Makes no sense\n\t\t\t\treturn false\n\t\t\t} else if (this.isEmailShareType && !this.hasUnsavedPassword) {\n\t\t\t\t// For email shares we need a new password in order to enable or\n\t\t\t\t// disable\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Anything else should be fine\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * Pending data.\n\t\t * If the share still doesn't have an id, it is not synced\n\t\t * Therefore this is still not valid and requires user input\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tpendingDataIsMissing() {\n\t\t\treturn this.pendingPassword || this.pendingEnforcedPassword || this.pendingDefaultExpirationDate || this.pendingEnforcedExpirationDate\n\t\t},\n\t\tpendingPassword() {\n\t\t\treturn this.config.enableLinkPasswordByDefault && this.isPendingShare\n\t\t},\n\t\tpendingEnforcedPassword() {\n\t\t\treturn this.config.enforcePasswordForPublicLink && this.isPendingShare\n\t\t},\n\t\tpendingEnforcedExpirationDate() {\n\t\t\treturn this.config.isDefaultExpireDateEnforced && this.isPendingShare\n\t\t},\n\t\tpendingDefaultExpirationDate() {\n\t\t\treturn (this.config.defaultExpirationDate instanceof Date || !isNaN(new Date(this.config.defaultExpirationDate).getTime())) && this.isPendingShare\n\t\t},\n\t\tisPendingShare() {\n\t\t\treturn !!(this.share && !this.share.id)\n\t\t},\n\t\tsharePolicyHasEnforcedProperties() {\n\t\t\treturn this.config.enforcePasswordForPublicLink || this.config.isDefaultExpireDateEnforced\n\t\t},\n\n\t\tenforcedPropertiesMissing() {\n\t\t\t// Ensure share exist and the share policy has required properties\n\t\t\tif (!this.sharePolicyHasEnforcedProperties) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (!this.share) {\n\t\t\t\t// if no share, we can't tell if properties are missing or not so we assume properties are missing\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\t// If share has ID, then this is an incoming link share created from the existing link share\n\t\t\t// Hence assume required properties\n\t\t\tif (this.share.id) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Check if either password or expiration date is missing and enforced\n\t\t\tconst isPasswordMissing = this.config.enforcePasswordForPublicLink && !this.share.password\n\t\t\tconst isExpireDateMissing = this.config.isDefaultExpireDateEnforced && !this.share.expireDate\n\n\t\t\treturn isPasswordMissing || isExpireDateMissing\n\t\t},\n\t\t// if newPassword exists, but is empty, it means\n\t\t// the user deleted the original password\n\t\thasUnsavedPassword() {\n\t\t\treturn this.share.newPassword !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Return the public share link\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tshareLink() {\n\t\t\treturn generateUrl('/s/{token}', { token: this.share.token }, { baseURL: getBaseUrl() })\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message for actions button\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tactionsTooltip() {\n\t\t\treturn t('files_sharing', 'Actions for \"{title}\"', { title: this.title })\n\t\t},\n\n\t\t/**\n\t\t * Tooltip message for copy button\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcopyLinkTooltip() {\n\t\t\tif (this.copied) {\n\t\t\t\tif (this.copySuccess) {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\treturn t('files_sharing', 'Cannot copy, please copy the link manually')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Copy public link of \"{title}\" to clipboard', { title: this.title })\n\t\t},\n\n\t\t/**\n\t\t * External additionnai actions for the menu\n\t\t *\n\t\t * @deprecated use OCA.Sharing.ExternalShareActions\n\t\t * @return {Array}\n\t\t */\n\t\texternalLegacyLinkActions() {\n\t\t\treturn this.ExternalLegacyLinkActions.actions\n\t\t},\n\n\t\t/**\n\t\t * Additional actions for the menu\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalLinkActions() {\n\t\t\tconst filterValidAction = (action) => (action.shareType.includes(ShareType.Link) || action.shareType.includes(ShareType.Email)) && !action.advanced\n\t\t\t// filter only the registered actions for said link\n\t\t\treturn this.ExternalShareActions.actions\n\t\t\t\t.filter(filterValidAction)\n\t\t},\n\n\t\tisPasswordPolicyEnabled() {\n\t\t\treturn typeof this.config.passwordPolicy === 'object'\n\t\t},\n\n\t\tcanChangeHideDownload() {\n\t\t\tconst hasDisabledDownload = (shareAttribute) => shareAttribute.scope === 'permissions' && shareAttribute.key === 'download' && shareAttribute.value === false\n\t\t\treturn this.fileInfo.shareAttributes.some(hasDisabledDownload)\n\t\t},\n\n\t\tisFileRequest() {\n\t\t\treturn this.share.isFileRequest\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.defaultExpirationDateEnabled = this.config.defaultExpirationDate instanceof Date\n\t\tif (this.share && this.isNewShare) {\n\t\t\tthis.share.expireDate = this.defaultExpirationDateEnabled ? this.formatDateToString(this.config.defaultExpirationDate) : ''\n\t\t}\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Check if the share requires review\n\t\t *\n\t\t * @param {boolean} shareReviewComplete if the share was reviewed\n\t\t * @return {boolean}\n\t\t */\n\t\tshareRequiresReview(shareReviewComplete) {\n\t\t\t// If a user clicks 'Create share' it means they have reviewed the share\n\t\t\tif (shareReviewComplete) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn this.defaultExpirationDateEnabled || this.config.enableLinkPasswordByDefault\n\t\t},\n\t\t/**\n\t\t * Create a new share link and append it to the list\n\t\t * @param {boolean} shareReviewComplete if the share was reviewed\n\t\t */\n\t\tasync onNewLinkShare(shareReviewComplete = false) {\n\t\t\tthis.logger.debug('onNewLinkShare called (with this.share)', this.share)\n\t\t\t// do not run again if already loading\n\t\t\tif (this.loading) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst shareDefaults = {\n\t\t\t\tshare_type: ShareType.Link,\n\t\t\t}\n\t\t\tif (this.config.isDefaultExpireDateEnforced) {\n\t\t\t\t// default is empty string if not set\n\t\t\t\t// expiration is the share object key, not expireDate\n\t\t\t\tshareDefaults.expiration = this.formatDateToString(this.config.defaultExpirationDate)\n\t\t\t}\n\n\t\t\tthis.logger.debug('Missing required properties?', this.enforcedPropertiesMissing)\n\t\t\t// Do not push yet if we need a password or an expiration date: show pending menu\n\t\t\t// A share would require a review for example is default expiration date is set but not enforced, this allows\n\t\t\t// the user to review the share and remove the expiration date if they don't want it\n\t\t\tif ((this.sharePolicyHasEnforcedProperties && this.enforcedPropertiesMissing) || this.shareRequiresReview(shareReviewComplete === true)) {\n\t\t\t\tthis.pending = true\n\t\t\t\tthis.shareCreationComplete = false\n\n\t\t\t\tthis.logger.info('Share policy requires a review or has mandated properties (password, expirationDate)...')\n\n\t\t\t\t// ELSE, show the pending popovermenu\n\t\t\t\t// if password default or enforced, pre-fill with random one\n\t\t\t\tif (this.config.enableLinkPasswordByDefault || this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\tshareDefaults.password = await GeneratePassword(true)\n\t\t\t\t}\n\n\t\t\t\t// create share & close menu\n\t\t\t\tconst share = new Share(shareDefaults)\n\t\t\t\tconst component = await new Promise(resolve => {\n\t\t\t\t\tthis.$emit('add:share', share, resolve)\n\t\t\t\t})\n\n\t\t\t\t// open the menu on the\n\t\t\t\t// freshly created share component\n\t\t\t\tthis.open = false\n\t\t\t\tthis.pending = false\n\t\t\t\tcomponent.open = true\n\n\t\t\t\t// Nothing is enforced, creating share directly\n\t\t\t} else {\n\n\t\t\t\t// if a share already exists, pushing it\n\t\t\t\tif (this.share && !this.share.id) {\n\t\t\t\t\t// if the share is valid, create it on the server\n\t\t\t\t\tif (this.checkShare(this.share)) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tthis.logger.info('Sending existing share to server', this.share)\n\t\t\t\t\t\t\tawait this.pushNewLinkShare(this.share, true)\n\t\t\t\t\t\t\tthis.shareCreationComplete = true\n\t\t\t\t\t\t\tthis.logger.info('Share created on server', this.share)\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tthis.pending = false\n\t\t\t\t\t\t\tthis.logger.error('Error creating share', e)\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.open = true\n\t\t\t\t\t\tshowError(t('files_sharing', 'Error, please enter proper password and/or expiration date'))\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst share = new Share(shareDefaults)\n\t\t\t\tawait this.pushNewLinkShare(share)\n\t\t\t\tthis.shareCreationComplete = true\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Push a new link share to the server\n\t\t * And update or append to the list\n\t\t * accordingly\n\t\t *\n\t\t * @param {Share} share the new share\n\t\t * @param {boolean} [update] do we update the current share ?\n\t\t */\n\t\tasync pushNewLinkShare(share, update) {\n\t\t\ttry {\n\t\t\t\t// do nothing if we're already pending creation\n\t\t\t\tif (this.loading) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tthis.loading = true\n\t\t\t\tthis.errors = {}\n\n\t\t\t\tconst path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\t\t\t\tconst options = {\n\t\t\t\t\tpath,\n\t\t\t\t\tshareType: ShareType.Link,\n\t\t\t\t\tpassword: share.password,\n\t\t\t\t\texpireDate: share.expireDate ?? '',\n\t\t\t\t\tattributes: JSON.stringify(this.fileInfo.shareAttributes),\n\t\t\t\t\t// we do not allow setting the publicUpload\n\t\t\t\t\t// before the share creation.\n\t\t\t\t\t// Todo: We also need to fix the createShare method in\n\t\t\t\t\t// lib/Controller/ShareAPIController.php to allow file requests\n\t\t\t\t\t// (currently not supported on create, only update)\n\t\t\t\t}\n\n\t\t\t\tconsole.debug('Creating link share with options', options)\n\t\t\t\tconst newShare = await this.createShare(options)\n\n\t\t\t\tthis.open = false\n\t\t\t\tthis.shareCreationComplete = true\n\t\t\t\tconsole.debug('Link share created', newShare)\n\t\t\t\t// if share already exists, copy link directly on next tick\n\t\t\t\tlet component\n\t\t\t\tif (update) {\n\t\t\t\t\tcomponent = await new Promise(resolve => {\n\t\t\t\t\t\tthis.$emit('update:share', newShare, resolve)\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\t// adding new share to the array and copying link to clipboard\n\t\t\t\t\t// using promise so that we can copy link in the same click function\n\t\t\t\t\t// and avoid firefox copy permissions issue\n\t\t\t\t\tcomponent = await new Promise(resolve => {\n\t\t\t\t\t\tthis.$emit('add:share', newShare, resolve)\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tawait this.getNode()\n\t\t\t\temit('files:node:updated', this.node)\n\n\t\t\t\t// Execute the copy link method\n\t\t\t\t// freshly created share component\n\t\t\t\t// ! somehow does not works on firefox !\n\t\t\t\tif (!this.config.enforcePasswordForPublicLink) {\n\t\t\t\t\t// Only copy the link when the password was not forced,\n\t\t\t\t\t// otherwise the user needs to copy/paste the password before finishing the share.\n\t\t\t\t\tcomponent.copyLink()\n\t\t\t\t}\n\t\t\t\tshowSuccess(t('files_sharing', 'Link share created'))\n\n\t\t\t} catch (data) {\n\t\t\t\tconst message = data?.response?.data?.ocs?.meta?.message\n\t\t\t\tif (!message) {\n\t\t\t\t\tshowError(t('files_sharing', 'Error while creating the share'))\n\t\t\t\t\tconsole.error(data)\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (message.match(/password/i)) {\n\t\t\t\t\tthis.onSyncError('password', message)\n\t\t\t\t} else if (message.match(/date/i)) {\n\t\t\t\t\tthis.onSyncError('expireDate', message)\n\t\t\t\t} else {\n\t\t\t\t\tthis.onSyncError('pending', message)\n\t\t\t\t}\n\t\t\t\tthrow data\n\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t\tthis.shareCreationComplete = true\n\t\t\t}\n\t\t},\n\t\tasync copyLink() {\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(this.shareLink)\n\t\t\t\tshowSuccess(t('files_sharing', 'Link copied'))\n\t\t\t\t// focus and show the tooltip\n\t\t\t\tthis.$refs.copyButton.$el.focus()\n\t\t\t\tthis.copySuccess = true\n\t\t\t\tthis.copied = true\n\t\t\t} catch (error) {\n\t\t\t\tthis.copySuccess = false\n\t\t\t\tthis.copied = true\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.copySuccess = false\n\t\t\t\t\tthis.copied = false\n\t\t\t\t}, 4000)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update newPassword values\n\t\t * of share. If password is set but not newPassword\n\t\t * then the user did not changed the password\n\t\t * If both co-exists, the password have changed and\n\t\t * we show it in plain text.\n\t\t * Then on submit (or menu close), we sync it.\n\t\t *\n\t\t * @param {string} password the changed password\n\t\t */\n\t\tonPasswordChange(password) {\n\t\t\tthis.$set(this.share, 'newPassword', password)\n\t\t},\n\n\t\t/**\n\t\t * Uncheck password protection\n\t\t * We need this method because @update:checked\n\t\t * is ran simultaneously as @uncheck, so we\n\t\t * cannot ensure data is up-to-date\n\t\t */\n\t\tonPasswordDisable() {\n\t\t\tthis.share.password = ''\n\n\t\t\t// reset password state after sync\n\t\t\tthis.$delete(this.share, 'newPassword')\n\n\t\t\t// only update if valid share.\n\t\t\tif (this.share.id) {\n\t\t\t\tthis.queueUpdate('password')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Menu have been closed or password has been submitted.\n\t\t * The only property that does not get\n\t\t * synced automatically is the password\n\t\t * So let's check if we have an unsaved\n\t\t * password.\n\t\t * expireDate is saved on datepicker pick\n\t\t * or close.\n\t\t */\n\t\tonPasswordSubmit() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t\tthis.queueUpdate('password')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update the password along with \"sendPasswordByTalk\".\n\t\t *\n\t\t * If the password was modified the new password is sent; otherwise\n\t\t * updating a mail share would fail, as in that case it is required that\n\t\t * a new password is set when enabling or disabling\n\t\t * \"sendPasswordByTalk\".\n\t\t */\n\t\tonPasswordProtectedByTalkChange() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t}\n\n\t\t\tthis.queueUpdate('sendPasswordByTalk', 'password')\n\t\t},\n\n\t\t/**\n\t\t * Save potential changed data on menu close\n\t\t */\n\t\tonMenuClose() {\n\t\t\tthis.onPasswordSubmit()\n\t\t\tthis.onNoteSubmit()\n\t\t},\n\n\t\t/**\n\t\t * @param enabled True if expiration is enabled\n\t\t */\n\t\tonExpirationDateToggleUpdate(enabled) {\n\t\t\tthis.share.expireDate = enabled ? this.formatDateToString(this.config.defaultExpirationDate) : ''\n\t\t},\n\n\t\texpirationDateChanged(event) {\n\t\t\tconst date = event.target.value\n\t\t\tthis.onExpirationChange(date)\n\t\t\tthis.defaultExpirationDateEnabled = !!date\n\t\t},\n\n\t\t/**\n\t\t * Cancel the share creation\n\t\t * Used in the pending popover\n\t\t */\n\t\tonCancel() {\n\t\t\t// this.share already exists at this point,\n\t\t\t// but is incomplete as not pushed to server\n\t\t\t// YET. We can safely delete the share :)\n\t\t\tif (!this.shareCreationComplete) {\n\t\t\t\tthis.$emit('remove:share', this.share)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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}\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&: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.icon-checkmark-color {\n\t\topacity: 1;\n\t\tcolor: var(--color-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</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=3d033992&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=3d033992&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=3d033992&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=3d033992&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 \"3d033992\",\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!./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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<ul v-if=\"canLinkShare\"\n\t\t:aria-label=\"t('files_sharing', 'Link shares')\"\n\t\tclass=\"sharing-link-list\">\n\t\t<!-- If no link shares, show the add link default entry -->\n\t\t<SharingEntryLink v-if=\"!hasLinkShares && canReshare\"\n\t\t\t:can-reshare=\"canReshare\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t@add:share=\"addShare\" />\n\n\t\t<!-- Else we display the list -->\n\t\t<template v-if=\"hasShares\">\n\t\t\t<!-- using shares[index] to work with .sync -->\n\t\t\t<SharingEntryLink v-for=\"(share, index) in shares\"\n\t\t\t\t:key=\"share.id\"\n\t\t\t\t:index=\"shares.length > 1 ? index + 1 : null\"\n\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t:share.sync=\"shares[index]\"\n\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t@add:share=\"addShare(...arguments)\"\n\t\t\t\t@update:share=\"awaitForShare(...arguments)\"\n\t\t\t\t@remove:share=\"removeShare\"\n\t\t\t\t@open-sharing-details=\"openSharingDetails(share)\" />\n\t\t</template>\n\t</ul>\n</template>\n\n<script>\nimport { getCapabilities } from '@nextcloud/capabilities'\n\nimport { t } from '@nextcloud/l10n'\n\nimport Share from '../models/Share.js'\nimport SharingEntryLink from '../components/SharingEntryLink.vue'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { ShareType } from '@nextcloud/sharing'\n\nexport default {\n\tname: 'SharingLinkList',\n\n\tcomponents: {\n\t\tSharingEntryLink,\n\t},\n\n\tmixins: [ShareDetails],\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\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t\tcanReshare: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcanLinkShare: getCapabilities().files_sharing.public.enabled,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Do we have link shares?\n\t\t * Using this to still show the `new link share`\n\t\t * button regardless of mail shares\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\thasLinkShares() {\n\t\t\treturn this.shares.filter(share => share.type === ShareType.Link).length > 0\n\t\t},\n\n\t\t/**\n\t\t * Do we have any link or email shares?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasShares() {\n\t\t\treturn this.shares.length > 0\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * Add a new share into the link shares list\n\t\t * and return the newly created share component\n\t\t *\n\t\t * @param {Share} share the share to add to the array\n\t\t * @param {Function} resolve a function to run after the share is added and its component initialized\n\t\t */\n\t\taddShare(share, resolve) {\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.push(share)\n\t\t\tthis.awaitForShare(share, resolve)\n\t\t},\n\n\t\t/**\n\t\t * Await for next tick and render after the list updated\n\t\t * Then resolve with the matched vue component of the\n\t\t * provided share object\n\t\t *\n\t\t * @param {Share} share newly created share\n\t\t * @param {Function} resolve a function to execute after\n\t\t */\n\t\tawaitForShare(share, resolve) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tconst newShare = this.$children.find(component => component.share === share)\n\t\t\t\tif (newShare) {\n\t\t\t\t\tresolve(newShare)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\tconst index = this.shares.findIndex(item => item === share)\n\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\tthis.shares.splice(index, 1)\n\t\t},\n\t},\n}\n</script>\n","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)?_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(\" \"),(_vm.share && (!_vm.isEmailShareType || _vm.isFileRequest) && _vm.share.token)?_c('NcActions',{ref:\"copyButton\",staticClass:\"sharing-entry__copy\"},[_c('NcActionButton',{attrs:{\"aria-label\":_vm.copyLinkTooltip,\"title\":_vm.copyLinkTooltip,\"href\":_vm.shareLink},on:{\"click\":function($event){$event.preventDefault();return _vm.copyLink.apply(null, arguments)}},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}],null,false,4269614823)})],1):_vm._e()],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:{\"checked\":_vm.isPasswordProtected,\"disabled\":_vm.config.enforcePasswordForPublicLink || _vm.saving},on:{\"update:checked\":function($event){_vm.isPasswordProtected=$event},\"uncheck\":_vm.onPasswordDisable}},[_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.share.password)?_c('NcActionInput',{staticClass:\"share-link-password\",attrs:{\"label\":_vm.t('files_sharing', 'Enter a password'),\"value\":_vm.share.password,\"disabled\":_vm.saving,\"required\":_vm.config.enableLinkPasswordByDefault || _vm.config.enforcePasswordForPublicLink,\"minlength\":_vm.isPasswordPolicyEnabled && _vm.config.passwordPolicy.minLength,\"autocomplete\":\"new-password\"},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"password\", $event)},\"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)}):_vm._e(),_vm._v(\" \"),(_vm.pendingDefaultExpirationDate)?_c('NcActionCheckbox',{staticClass:\"share-link-expiration-date-checkbox\",attrs:{\"checked\":_vm.defaultExpirationDateEnabled,\"disabled\":_vm.pendingEnforcedExpirationDate || _vm.saving},on:{\"update:checked\":function($event){_vm.defaultExpirationDateEnabled=$event},\"update:model-value\":_vm.onExpirationDateToggleUpdate}},[_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,\"value\":new Date(_vm.share.expireDate),\"type\":\"date\",\"min\":_vm.dateTomorrow,\"max\":_vm.maxExpirationDateEnforced},on:{\"change\":function($event){return _vm.expirationDateChanged($event)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconCalendarBlank',{attrs:{\"size\":20}})]},proxy:true}],null,false,3418578971)}):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{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},\"close\":_vm.onMenuClose}},[(_vm.share)?[(_vm.share.canEdit && _vm.canReshare)?[_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\")])]:_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.externalLinkActions),function(action){return _c('ExternalShareAction',{key:action.id,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_vm._l((_vm.externalLegacyLinkActions),function({ icon, url, name },actionIndex){return _c('NcActionLink',{key:actionIndex,attrs:{\"href\":url(_vm.shareLink),\"icon\":icon,\"target\":\"_blank\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(name)+\"\\n\\t\\t\\t\")])}),_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('div',{staticClass:\"icon-loading-small 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 { render, staticRenderFns } from \"./SharingLinkList.vue?vue&type=template&id=5f722665\"\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","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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"sharing-entry\">\n\t\t<NcAvatar class=\"sharing-entry__avatar\"\n\t\t\t:is-no-user=\"share.type !== ShareType.User\"\n\t\t\t:user=\"share.shareWith\"\n\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t:menu-position=\"'left'\"\n\t\t\t:url=\"share.shareWithAvatar\" />\n\n\t\t<div class=\"sharing-entry__summary\">\n\t\t\t<component :is=\"share.shareWithLink ? 'a' : 'div'\"\n\t\t\t\t:title=\"tooltip\"\n\t\t\t\t:aria-label=\"tooltip\"\n\t\t\t\t:href=\"share.shareWithLink\"\n\t\t\t\tclass=\"sharing-entry__summary__desc\">\n\t\t\t\t<span>{{ title }}\n\t\t\t\t\t<span v-if=\"!isUnique\" class=\"sharing-entry__summary__desc-unique\"> ({{\n\t\t\t\t\t\tshare.shareWithDisplayNameUnique }})</span>\n\t\t\t\t\t<small v-if=\"hasStatus && share.status.message\">({{ share.status.message }})</small>\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t\t<SharingEntryQuickShareSelect :share=\"share\"\n\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t@open-sharing-details=\"openShareDetailsForCustomSettings(share)\" />\n\t\t</div>\n\t\t<NcButton v-if=\"share.canEdit\"\n\t\t\tclass=\"sharing-entry__action\"\n\t\t\tdata-cy-files-sharing-share-actions\n\t\t\t:aria-label=\"t('files_sharing', 'Open Sharing Details')\"\n\t\t\ttype=\"tertiary\"\n\t\t\t@click=\"openSharingDetails(share)\">\n\t\t\t<template #icon>\n\t\t\t\t<DotsHorizontalIcon :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</li>\n</template>\n\n<script>\nimport { ShareType } from '@nextcloud/sharing'\n\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\n\nimport SharingEntryQuickShareSelect from './SharingEntryQuickShareSelect.vue'\n\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport ShareDetails from '../mixins/ShareDetails.js'\n\nexport default {\n\tname: 'SharingEntry',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tNcAvatar,\n\t\tDotsHorizontalIcon,\n\t\tNcSelect,\n\t\tSharingEntryQuickShareSelect,\n\t},\n\n\tmixins: [SharesMixin, ShareDetails],\n\n\tcomputed: {\n\t\ttitle() {\n\t\t\tlet title = this.share.shareWithDisplayName\n\t\t\tif (this.share.type === ShareType.Group) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'group')})`\n\t\t\t} else if (this.share.type === ShareType.Room) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'conversation')})`\n\t\t\t} else if (this.share.type === ShareType.Remote) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'remote')})`\n\t\t\t} else if (this.share.type === ShareType.RemoteGroup) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'remote group')})`\n\t\t\t} else if (this.share.type === ShareType.Guest) {\n\t\t\t\ttitle += ` (${t('files_sharing', 'guest')})`\n\t\t\t}\n\t\t\tif (!this.isShareOwner && this.share.ownerDisplayName) {\n\t\t\t\ttitle += ' ' + t('files_sharing', 'by {initiator}', {\n\t\t\t\t\tinitiator: this.share.ownerDisplayName,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn title\n\t\t},\n\t\ttooltip() {\n\t\t\tif (this.share.owner !== this.share.uidFileOwner) {\n\t\t\t\tconst data = {\n\t\t\t\t\t// todo: strong or italic?\n\t\t\t\t\t// but the t function escape any html from the data :/\n\t\t\t\t\tuser: this.share.shareWithDisplayName,\n\t\t\t\t\towner: this.share.ownerDisplayName,\n\t\t\t\t}\n\t\t\t\tif (this.share.type === ShareType.Group) {\n\t\t\t\t\treturn t('files_sharing', 'Shared with the group {user} by {owner}', data)\n\t\t\t\t} else if (this.share.type === ShareType.Room) {\n\t\t\t\t\treturn t('files_sharing', 'Shared with the conversation {user} by {owner}', data)\n\t\t\t\t}\n\n\t\t\t\treturn t('files_sharing', 'Shared with {user} by {owner}', data)\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\thasStatus() {\n\t\t\tif (this.share.type !== ShareType.User) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn (typeof this.share.status === 'object' && !Array.isArray(this.share.status))\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Save potential changed data on menu close\n\t\t */\n\t\tonMenuClose() {\n\t\t\tthis.onNoteSubmit()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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</style>\n","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 import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=e994747e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=e994747e&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=e994747e&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=e994747e&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 \"e994747e\",\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 - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<ul class=\"sharing-sharee-list\" :aria-label=\"t('files_sharing', 'Shares')\">\n\t\t<SharingEntry v-for=\"share in shares\"\n\t\t\t:key=\"share.id\"\n\t\t\t:file-info=\"fileInfo\"\n\t\t\t:share=\"share\"\n\t\t\t:is-unique=\"isUnique(share)\"\n\t\t\t@open-sharing-details=\"openSharingDetails(share)\" />\n\t</ul>\n</template>\n\n<script>\nimport { t } from '@nextcloud/l10n'\nimport SharingEntry from '../components/SharingEntry.vue'\nimport ShareDetails from '../mixins/ShareDetails.js'\nimport { ShareType } from '@nextcloud/sharing'\n\nexport default {\n\tname: 'SharingList',\n\n\tcomponents: {\n\t\tSharingEntry,\n\t},\n\n\tmixins: [ShareDetails],\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\tshares: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tsetup() {\n\t\treturn {\n\t\t\tt,\n\t\t}\n\t},\n\tcomputed: {\n\t\thasShares() {\n\t\t\treturn this.shares.length === 0\n\t\t},\n\t\tisUnique() {\n\t\t\treturn (share) => {\n\t\t\t\treturn [...this.shares].filter((item) => {\n\t\t\t\t\treturn share.type === ShareType.User && share.shareWithDisplayName === item.shareWithDisplayName\n\t\t\t\t}).length <= 1\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\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(\" (\"+_vm._s(_vm.share.shareWithDisplayNameUnique)+\")\")]):_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.canEdit)?_c('NcButton',{staticClass:\"sharing-entry__action\",attrs:{\"data-cy-files-sharing-share-actions\":\"\",\"aria-label\":_vm.t('files_sharing', 'Open Sharing Details'),\"type\":\"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=5b9a3a03\"\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('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\",\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.READ_ONLY.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ViewIcon',{attrs:{\"size\":20}})]},proxy:true}])},[_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\",\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.ALL.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('EditIcon',{attrs:{\"size\":20}})]},proxy:true}])},[(_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,\"checked\":_vm.sharingPermission,\"value\":_vm.bundledPermissions.FILE_DROP.toString(),\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.toggleCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('UploadIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,1083194048)},[_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\",\"checked\":_vm.sharingPermission,\"value\":'custom',\"name\":\"sharing_permission_radio\",\"type\":\"radio\",\"button-variant-grouped\":\"vertical\"},on:{\"update:checked\":[function($event){_vm.sharingPermission=$event},_vm.expandCustomPermissions]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}])},[_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\",\"type\":\"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'),\"value\":_vm.share.label},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"label\", $event)}}}):_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'),\"value\":_vm.share.token},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"token\", $event)},\"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)}):_vm._e(),_vm._v(\" \"),(_vm.isPublicShare)?[_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.isPasswordProtected,\"disabled\":_vm.isPasswordEnforced},on:{\"update:checked\":function($event){_vm.isPasswordProtected=$event}}},[_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\",\"value\":_vm.hasUnsavedPassword ? _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',{attrs:{\"checked\":_vm.isPasswordProtectedByTalk},on:{\"update:checked\":[function($event){_vm.isPasswordProtectedByTalk=$event},_vm.onPasswordProtectedByTalkChange]}},[_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:{\"checked\":_vm.hasExpirationDate,\"disabled\":_vm.isExpiryDateEnforced},on:{\"update:checked\":function($event){_vm.hasExpirationDate=$event}}},[_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\",\"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,\"checked\":_vm.share.hideDownload},on:{\"update:checked\":[function($event){return _vm.$set(_vm.share, \"hideDownload\", $event)},function($event){return _vm.queueUpdate('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,\"checked\":_vm.canDownload,\"data-cy-files-sharing-share-permissions-checkbox\":\"download\"},on:{\"update:checked\":function($event){_vm.canDownload=$event}}},[_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',{attrs:{\"checked\":_vm.writeNoteToRecipientIsChecked},on:{\"update:checked\":function($event){_vm.writeNoteToRecipientIsChecked=$event}}},[_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'),\"value\":_vm.share.note},on:{\"update:value\":function($event){return _vm.$set(_vm.share, \"note\", $event)}}})]:_vm._e(),_vm._v(\" \"),(_vm.isPublicShare && _vm.isFolder)?_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.showInGridView},on:{\"update:checked\":function($event){_vm.showInGridView=$event}}},[_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.externalLinkActions),function(action){return _c('ExternalShareAction',{key:action.id,ref:\"externalLinkActions\",refInFor:true,attrs:{\"id\":action.id,\"action\":action,\"file-info\":_vm.fileInfo,\"share\":_vm.share}})}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.setCustomPermissions},on:{\"update:checked\":function($event){_vm.setCustomPermissions=$event}}},[_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,\"checked\":_vm.hasRead,\"data-cy-files-sharing-share-permissions-checkbox\":\"read\"},on:{\"update:checked\":function($event){_vm.hasRead=$event}}},[_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,\"checked\":_vm.canCreate,\"data-cy-files-sharing-share-permissions-checkbox\":\"create\"},on:{\"update:checked\":function($event){_vm.canCreate=$event}}},[_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,\"checked\":_vm.canEdit,\"data-cy-files-sharing-share-permissions-checkbox\":\"update\"},on:{\"update:checked\":function($event){_vm.canEdit=$event}}},[_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,\"checked\":_vm.canReshare,\"data-cy-files-sharing-share-permissions-checkbox\":\"share\"},on:{\"update:checked\":function($event){_vm.canReshare=$event}}},[_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,\"checked\":_vm.canDelete,\"data-cy-files-sharing-share-permissions-checkbox\":\"delete\"},on:{\"update:checked\":function($event){_vm.canDelete=$event}}},[_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(),_vm._v(\" \"),_c('div',{staticClass:\"sharingTabDetailsView__delete\"},[(!_vm.isNewShare)?_c('NcButton',{attrs:{\"aria-label\":_vm.t('files_sharing', 'Delete share'),\"disabled\":false,\"readonly\":false,\"type\":\"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\":16}})]},proxy:true}],null,false,2746485232)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files_sharing', 'Delete share'))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()],1)],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('NcButton',{attrs:{\"type\":\"primary\",\"data-cy-files-sharing-share-editor-action\":\"save\"},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 }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon circle-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CircleOutlineIcon\",\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}\n</script>","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\"","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 }","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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon email-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EmailIcon\",\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}\n</script>","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 }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon share-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ShareCircleIcon\",\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}\n</script>","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\"","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!./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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-circle-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountCircleOutlineIcon\",\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}\n</script>","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!./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\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon eye-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"EyeIcon\",\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}\n</script>","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 }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon refresh-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path 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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"RefreshIcon\",\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}\n</script>","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 \"-!../../../../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 - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div class=\"sharingTabDetailsView\">\n\t\t<div class=\"sharingTabDetailsView__header\">\n\t\t\t<span>\n\t\t\t\t<NcAvatar v-if=\"isUserShare\"\n\t\t\t\t\tclass=\"sharing-entry__avatar\"\n\t\t\t\t\t:is-no-user=\"share.shareType !== ShareType.User\"\n\t\t\t\t\t:user=\"share.shareWith\"\n\t\t\t\t\t:display-name=\"share.shareWithDisplayName\"\n\t\t\t\t\t:menu-position=\"'left'\"\n\t\t\t\t\t:url=\"share.shareWithAvatar\" />\n\t\t\t\t<component :is=\"getShareTypeIcon(share.type)\" :size=\"32\" />\n\t\t\t</span>\n\t\t\t<span>\n\t\t\t\t<h1>{{ title }}</h1>\n\t\t\t</span>\n\t\t</div>\n\t\t<div class=\"sharingTabDetailsView__wrapper\">\n\t\t\t<div ref=\"quickPermissions\" class=\"sharingTabDetailsView__quick-permissions\">\n\t\t\t\t<div>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"read-only\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.READ_ONLY.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'View only') }}\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ViewIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"upload-edit\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.ALL.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t<template v-if=\"allowsFileDrop\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Allow upload and editing') }}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Allow editing') }}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<EditIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"allowsFileDrop\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"file-drop\"\n\t\t\t\t\t\t:button-variant=\"true\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"bundledPermissions.FILE_DROP.toString()\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"toggleCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'File request') }}\n\t\t\t\t\t\t<small class=\"subline\">{{ t('files_sharing', 'Upload only') }}</small>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<UploadIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :button-variant=\"true\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-bundle=\"custom\"\n\t\t\t\t\t\t:checked.sync=\"sharingPermission\"\n\t\t\t\t\t\t:value=\"'custom'\"\n\t\t\t\t\t\tname=\"sharing_permission_radio\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tbutton-variant-grouped=\"vertical\"\n\t\t\t\t\t\t@update:checked=\"expandCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Custom permissions') }}\n\t\t\t\t\t\t<small class=\"subline\">{{ customPermissionsList }}</small>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<DotsHorizontalIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"sharingTabDetailsView__advanced-control\">\n\t\t\t\t<NcButton id=\"advancedSectionAccordionAdvancedControl\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\talignment=\"end-reverse\"\n\t\t\t\t\taria-controls=\"advancedSectionAccordionAdvanced\"\n\t\t\t\t\t:aria-expanded=\"advancedControlExpandedValue\"\n\t\t\t\t\t@click=\"advancedSectionAccordionExpanded = !advancedSectionAccordionExpanded\">\n\t\t\t\t\t{{ t('files_sharing', 'Advanced settings') }}\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<MenuDownIcon v-if=\"!advancedSectionAccordionExpanded\" />\n\t\t\t\t\t\t<MenuUpIcon v-else />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<div v-if=\"advancedSectionAccordionExpanded\"\n\t\t\t\tid=\"advancedSectionAccordionAdvanced\"\n\t\t\t\tclass=\"sharingTabDetailsView__advanced\"\n\t\t\t\taria-labelledby=\"advancedSectionAccordionAdvancedControl\"\n\t\t\t\trole=\"region\">\n\t\t\t\t<section>\n\t\t\t\t\t<NcInputField v-if=\"isPublicShare\"\n\t\t\t\t\t\tclass=\"sharingTabDetailsView__label\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Share label')\"\n\t\t\t\t\t\t:value.sync=\"share.label\" />\n\t\t\t\t\t<NcInputField v-if=\"config.allowCustomTokens && isPublicShare && !isNewShare\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Share link token')\"\n\t\t\t\t\t\t:helper-text=\"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.')\"\n\t\t\t\t\t\tshow-trailing-button\n\t\t\t\t\t\t:trailing-button-label=\"loadingToken ? t('files_sharing', 'Generating…') : t('files_sharing', 'Generate new token')\"\n\t\t\t\t\t\t:value.sync=\"share.token\"\n\t\t\t\t\t\t@trailing-button-click=\"generateNewToken\">\n\t\t\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t\t\t<NcLoadingIcon v-if=\"loadingToken\" />\n\t\t\t\t\t\t\t<Refresh v-else :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcInputField>\n\t\t\t\t\t<template v-if=\"isPublicShare\">\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"isPasswordProtected\" :disabled=\"isPasswordEnforced\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Set password') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcPasswordField v-if=\"isPasswordProtected\"\n\t\t\t\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t\t\t\t:value=\"hasUnsavedPassword ? share.newPassword : ''\"\n\t\t\t\t\t\t\t:error=\"passwordError\"\n\t\t\t\t\t\t\t:helper-text=\"errorPasswordLabel || passwordHint\"\n\t\t\t\t\t\t\t:required=\"isPasswordEnforced && isNewShare\"\n\t\t\t\t\t\t\t:label=\"t('files_sharing', 'Password')\"\n\t\t\t\t\t\t\t@update:value=\"onPasswordChange\" />\n\n\t\t\t\t\t\t<!-- Migrate icons and remote -> icon=\"icon-info\"-->\n\t\t\t\t\t\t<span v-if=\"isEmailShareType && passwordExpirationTime\" icon=\"icon-info\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Password expires {passwordExpirationTime}', { passwordExpirationTime }) }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span v-else-if=\"isEmailShareType && passwordExpirationTime !== null\" icon=\"icon-error\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Password expired') }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"canTogglePasswordProtectedByTalkAvailable\"\n\t\t\t\t\t\t:checked.sync=\"isPasswordProtectedByTalk\"\n\t\t\t\t\t\t@update:checked=\"onPasswordProtectedByTalkChange\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Video verification') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"hasExpirationDate\" :disabled=\"isExpiryDateEnforced\">\n\t\t\t\t\t\t{{ isExpiryDateEnforced\n\t\t\t\t\t\t\t? t('files_sharing', 'Expiration date (enforced)')\n\t\t\t\t\t\t\t: t('files_sharing', 'Set expiration date') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcDateTimePickerNative v-if=\"hasExpirationDate\"\n\t\t\t\t\t\tid=\"share-date-picker\"\n\t\t\t\t\t\t:value=\"new Date(share.expireDate ?? dateTomorrow)\"\n\t\t\t\t\t\t:min=\"dateTomorrow\"\n\t\t\t\t\t\t:max=\"maxExpirationDateEnforced\"\n\t\t\t\t\t\thide-label\n\t\t\t\t\t\t:label=\"t('files_sharing', 'Expiration date')\"\n\t\t\t\t\t\t:placeholder=\"t('files_sharing', 'Expiration date')\"\n\t\t\t\t\t\ttype=\"date\"\n\t\t\t\t\t\t@input=\"onExpirationChange\" />\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isPublicShare\"\n\t\t\t\t\t\t:disabled=\"canChangeHideDownload\"\n\t\t\t\t\t\t:checked.sync=\"share.hideDownload\"\n\t\t\t\t\t\t@update:checked=\"queueUpdate('hideDownload')\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Hide download') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-else\n\t\t\t\t\t\t:disabled=\"!canSetDownload\"\n\t\t\t\t\t\t:checked.sync=\"canDownload\"\n\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"download\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Allow download and sync') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"writeNoteToRecipientIsChecked\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Note to recipient') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<template v-if=\"writeNoteToRecipientIsChecked\">\n\t\t\t\t\t\t<NcTextArea :label=\"t('files_sharing', 'Note to recipient')\"\n\t\t\t\t\t\t\t:placeholder=\"t('files_sharing', 'Enter a note for the share recipient')\"\n\t\t\t\t\t\t\t:value.sync=\"share.note\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isPublicShare && isFolder\"\n\t\t\t\t\t\t:checked.sync=\"showInGridView\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Show files in grid view') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<ExternalShareAction v-for=\"action in externalLinkActions\"\n\t\t\t\t\t\t:id=\"action.id\"\n\t\t\t\t\t\tref=\"externalLinkActions\"\n\t\t\t\t\t\t:key=\"action.id\"\n\t\t\t\t\t\t:action=\"action\"\n\t\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t\t:share=\"share\" />\n\t\t\t\t\t<NcCheckboxRadioSwitch :checked.sync=\"setCustomPermissions\">\n\t\t\t\t\t\t{{ t('files_sharing', 'Custom permissions') }}\n\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t<section v-if=\"setCustomPermissions\" class=\"custom-permissions-group\">\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canRemoveReadPermission\"\n\t\t\t\t\t\t\t:checked.sync=\"hasRead\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"read\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Read') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"isFolder\"\n\t\t\t\t\t\t\t:disabled=\"!canSetCreate\"\n\t\t\t\t\t\t\t:checked.sync=\"canCreate\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"create\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Create') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canSetEdit\"\n\t\t\t\t\t\t\t:checked.sync=\"canEdit\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"update\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Edit') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch v-if=\"resharingIsPossible\"\n\t\t\t\t\t\t\t:disabled=\"!canSetReshare\"\n\t\t\t\t\t\t\t:checked.sync=\"canReshare\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"share\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Share') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t\t<NcCheckboxRadioSwitch :disabled=\"!canSetDelete\"\n\t\t\t\t\t\t\t:checked.sync=\"canDelete\"\n\t\t\t\t\t\t\tdata-cy-files-sharing-share-permissions-checkbox=\"delete\">\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Delete') }}\n\t\t\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t\t</section>\n\t\t\t\t\t<div class=\"sharingTabDetailsView__delete\">\n\t\t\t\t\t\t<NcButton v-if=\"!isNewShare\"\n\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Delete share')\"\n\t\t\t\t\t\t\t:disabled=\"false\"\n\t\t\t\t\t\t\t:readonly=\"false\"\n\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t@click.prevent=\"removeShare\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<CloseIcon :size=\"16\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t{{ t('files_sharing', 'Delete share') }}\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</div>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"sharingTabDetailsView__footer\">\n\t\t\t<div class=\"button-group\">\n\t\t\t\t<NcButton data-cy-files-sharing-share-editor-action=\"cancel\"\n\t\t\t\t\t@click=\"cancel\">\n\t\t\t\t\t{{ t('files_sharing', 'Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton type=\"primary\"\n\t\t\t\t\tdata-cy-files-sharing-share-editor-action=\"save\"\n\t\t\t\t\t@click=\"saveShare\">\n\t\t\t\t\t{{ shareButtonText }}\n\t\t\t\t\t<template v-if=\"creating\" #icon>\n\t\t\t\t\t\t<NcLoadingIcon />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { emit } from '@nextcloud/event-bus'\nimport { getLanguage } from '@nextcloud/l10n'\nimport { ShareType } from '@nextcloud/sharing'\nimport { showError } from '@nextcloud/dialogs'\nimport moment from '@nextcloud/moment'\n\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport NcDateTimePickerNative from '@nextcloud/vue/dist/Components/NcDateTimePickerNative.js'\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\nimport NcPasswordField from '@nextcloud/vue/dist/Components/NcPasswordField.js'\nimport NcTextArea from '@nextcloud/vue/dist/Components/NcTextArea.js'\n\nimport CircleIcon from 'vue-material-design-icons/CircleOutline.vue'\nimport CloseIcon from 'vue-material-design-icons/Close.vue'\nimport EditIcon from 'vue-material-design-icons/Pencil.vue'\nimport EmailIcon from 'vue-material-design-icons/Email.vue'\nimport LinkIcon from 'vue-material-design-icons/Link.vue'\nimport GroupIcon from 'vue-material-design-icons/AccountGroup.vue'\nimport ShareIcon from 'vue-material-design-icons/ShareCircle.vue'\nimport UserIcon from 'vue-material-design-icons/AccountCircleOutline.vue'\nimport ViewIcon from 'vue-material-design-icons/Eye.vue'\nimport UploadIcon from 'vue-material-design-icons/Upload.vue'\nimport MenuDownIcon from 'vue-material-design-icons/MenuDown.vue'\nimport MenuUpIcon from 'vue-material-design-icons/MenuUp.vue'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\nimport Refresh from 'vue-material-design-icons/Refresh.vue'\n\nimport ExternalShareAction from '../components/ExternalShareAction.vue'\n\nimport GeneratePassword from '../utils/GeneratePassword.ts'\nimport Share from '../models/Share.ts'\nimport ShareRequests from '../mixins/ShareRequests.js'\nimport SharesMixin from '../mixins/SharesMixin.js'\nimport { generateToken } from '../services/TokenService.ts'\nimport logger from '../services/logger.ts'\n\nimport {\n\tATOMIC_PERMISSIONS,\n\tBUNDLED_PERMISSIONS,\n\thasPermissions,\n} from '../lib/SharePermissionsToolBox.js'\n\nexport default {\n\tname: 'SharingDetailsTab',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcDateTimePickerNative,\n\t\tNcInputField,\n\t\tNcLoadingIcon,\n\t\tNcPasswordField,\n\t\tNcTextArea,\n\t\tCloseIcon,\n\t\tCircleIcon,\n\t\tEditIcon,\n\t\tExternalShareAction,\n\t\tLinkIcon,\n\t\tGroupIcon,\n\t\tShareIcon,\n\t\tUserIcon,\n\t\tUploadIcon,\n\t\tViewIcon,\n\t\tMenuDownIcon,\n\t\tMenuUpIcon,\n\t\tDotsHorizontalIcon,\n\t\tRefresh,\n\t},\n\tmixins: [ShareRequests, SharesMixin],\n\tprops: {\n\t\tshareRequestValue: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tshare: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\twriteNoteToRecipientIsChecked: false,\n\t\t\tsharingPermission: BUNDLED_PERMISSIONS.ALL.toString(),\n\t\t\trevertSharingPermission: BUNDLED_PERMISSIONS.ALL.toString(),\n\t\t\tsetCustomPermissions: false,\n\t\t\tpasswordError: false,\n\t\t\tadvancedSectionAccordionExpanded: false,\n\t\t\tbundledPermissions: BUNDLED_PERMISSIONS,\n\t\t\tisFirstComponentLoad: true,\n\t\t\ttest: false,\n\t\t\tcreating: false,\n\t\t\tinitialToken: this.share.token,\n\t\t\tloadingToken: false,\n\n\t\t\tExternalShareActions: OCA.Sharing.ExternalShareActions.state,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttitle() {\n\t\t\tswitch (this.share.type) {\n\t\t\tcase ShareType.User:\n\t\t\t\treturn t('files_sharing', 'Share with {userName}', { userName: this.share.shareWithDisplayName })\n\t\t\tcase ShareType.Email:\n\t\t\t return t('files_sharing', 'Share with email {email}', { email: this.share.shareWith })\n\t\t\tcase ShareType.Link:\n\t\t\t\treturn t('files_sharing', 'Share link')\n\t\t\tcase ShareType.Group:\n\t\t\t\treturn t('files_sharing', 'Share with group')\n\t\t\tcase ShareType.Room:\n\t\t\t\treturn t('files_sharing', 'Share in conversation')\n\t\t\tcase ShareType.Remote: {\n\t\t\t\tconst [user, server] = this.share.shareWith.split('@')\n\t\t\t\treturn t('files_sharing', 'Share with {user} on remote server {server}', { user, server })\n\t\t\t}\n\t\t\tcase ShareType.RemoteGroup:\n\t\t\t\treturn t('files_sharing', 'Share with remote group')\n\t\t\tcase ShareType.Guest:\n\t\t\t\treturn t('files_sharing', 'Share with guest')\n\t\t\tdefault: {\n\t\t\t\tif (this.share.id) {\n\t\t\t\t\t// Share already exists\n\t\t\t\t\treturn t('files_sharing', 'Update share')\n\t\t\t\t} else {\n\t\t\t\t\treturn t('files_sharing', 'Create share')\n\t\t\t\t}\n\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Can the sharee edit the shared file ?\n\t\t */\n\t\tcanEdit: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasUpdatePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isEditChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee create the shared file ?\n\t\t */\n\t\tcanCreate: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasCreatePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isCreateChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee delete the shared file ?\n\t\t */\n\t\tcanDelete: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasDeletePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isDeleteChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Can the sharee reshare the file ?\n\t\t */\n\t\tcanReshare: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasSharePermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isReshareChecked: checked })\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Change the default view for public shares from \"list\" to \"grid\"\n\t\t */\n\t\tshowInGridView: {\n\t\t\tget() {\n\t\t\t\treturn this.getShareAttribute('config', 'grid_view', false)\n\t\t\t},\n\t\t\t/** @param {boolean} value If the default view should be changed to \"grid\" */\n\t\t\tset(value) {\n\t\t\t\tthis.setShareAttribute('config', 'grid_view', value)\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Can the sharee download files or only view them ?\n\t\t */\n\t\tcanDownload: {\n\t\t\tget() {\n\t\t\t\treturn this.getShareAttribute('permissions', 'download', true)\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.setShareAttribute('permissions', 'download', checked)\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is this share readable\n\t\t * Needed for some federated shares that might have been added from file requests links\n\t\t */\n\t\thasRead: {\n\t\t\tget() {\n\t\t\t\treturn this.share.hasReadPermission\n\t\t\t},\n\t\t\tset(checked) {\n\t\t\t\tthis.updateAtomicPermissions({ isReadChecked: checked })\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Does the current share have an expiration date\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasExpirationDate: {\n\t\t\tget() {\n\t\t\t\treturn this.isValidShareAttribute(this.share.expireDate)\n\t\t\t},\n\t\t\tset(enabled) {\n\t\t\t\tthis.share.expireDate = enabled\n\t\t\t\t\t? this.formatDateToString(this.defaultExpiryDate)\n\t\t\t\t\t: ''\n\t\t\t},\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\treturn this.config.enforcePasswordForPublicLink\n\t\t\t\t\t|| !!this.share.password\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.share.password = await GeneratePassword(true)\n\t\t\t\t\tthis.$set(this.share, 'newPassword', this.share.password)\n\t\t\t\t} else {\n\t\t\t\t\tthis.share.password = ''\n\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is the current share a folder ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisFolder() {\n\t\t\treturn this.fileInfo.type === 'dir'\n\t\t},\n\t\t/**\n\t\t * @return {boolean}\n\t\t */\n\t\tisSetDownloadButtonVisible() {\n\t\t\tconst allowedMimetypes = [\n\t\t\t\t// Office documents\n\t\t\t\t'application/msword',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t\t\t'application/vnd.ms-powerpoint',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t\t\t'application/vnd.ms-excel',\n\t\t\t\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t\t\t'application/vnd.oasis.opendocument.text',\n\t\t\t\t'application/vnd.oasis.opendocument.spreadsheet',\n\t\t\t\t'application/vnd.oasis.opendocument.presentation',\n\t\t\t]\n\n\t\t\treturn this.isFolder || allowedMimetypes.includes(this.fileInfo.mimetype)\n\t\t},\n\t\tisPasswordEnforced() {\n\t\t\treturn this.isPublicShare && this.config.enforcePasswordForPublicLink\n\t\t},\n\t\tdefaultExpiryDate() {\n\t\t\tif ((this.isGroupShare || this.isUserShare) && this.config.isDefaultInternalExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultInternalExpirationDate)\n\t\t\t} else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultRemoteExpireDateEnabled)\n\t\t\t} else if (this.isPublicShare && this.config.isDefaultExpireDateEnabled) {\n\t\t\t\treturn new Date(this.config.defaultExpirationDate)\n\t\t\t}\n\t\t\treturn new Date(new Date().setDate(new Date().getDate() + 1))\n\t\t},\n\t\tisUserShare() {\n\t\t\treturn this.share.type === ShareType.User\n\t\t},\n\t\tisGroupShare() {\n\t\t\treturn this.share.type === ShareType.Group\n\t\t},\n\t\tallowsFileDrop() {\n\t\t\tif (this.isFolder && this.config.isPublicUploadEnabled) {\n\t\t\t\tif (this.share.type === ShareType.Link || this.share.type === ShareType.Email) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\thasFileDropPermissions() {\n\t\t\treturn this.share.permissions === this.bundledPermissions.FILE_DROP\n\t\t},\n\t\tshareButtonText() {\n\t\t\tif (this.isNewShare) {\n\t\t\t\treturn t('files_sharing', 'Save share')\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Update share')\n\n\t\t},\n\t\tresharingIsPossible() {\n\t\t\treturn this.config.isResharingAllowed && this.share.type !== ShareType.Link && this.share.type !== ShareType.Email\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can edit the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetEdit() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_UPDATE) || this.canEdit\n\t\t},\n\n\t\t/**\n\t\t * Can the sharer set whether the sharee can create the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetCreate() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_CREATE) || this.canCreate\n\t\t},\n\n\t\t/**\n\t\t * Can the sharer set whether the sharee can delete the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetDelete() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_DELETE) || this.canDelete\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can reshare the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetReshare() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.sharePermissions & OC.PERMISSION_SHARE) || this.canReshare\n\t\t},\n\t\t/**\n\t\t * Can the sharer set whether the sharee can download the file ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanSetDownload() {\n\t\t\t// If the owner revoked the permission after the resharer granted it\n\t\t\t// the share still has the permission, and the resharer is still\n\t\t\t// allowed to revoke it too (but not to grant it again).\n\t\t\treturn (this.fileInfo.canDownload() || this.canDownload)\n\t\t},\n\t\tcanRemoveReadPermission() {\n\t\t\treturn this.allowsFileDrop && (\n\t\t\t\tthis.share.type === ShareType.Link\n\t\t\t\t\t|| this.share.type === ShareType.Email\n\t\t\t)\n\t\t},\n\t\t// if newPassword exists, but is empty, it means\n\t\t// the user deleted the original password\n\t\thasUnsavedPassword() {\n\t\t\treturn this.share.newPassword !== undefined\n\t\t},\n\t\tpasswordExpirationTime() {\n\t\t\tif (!this.isValidShareAttribute(this.share.passwordExpirationTime)) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst expirationTime = moment(this.share.passwordExpirationTime)\n\n\t\t\tif (expirationTime.diff(moment()) < 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn expirationTime.fromNow()\n\t\t},\n\n\t\t/**\n\t\t * Is Talk enabled?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisTalkEnabled() {\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\n\t\t/**\n\t\t * Is it possible to protect the password by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalkAvailable() {\n\t\t\treturn this.isPasswordProtected && this.isTalkEnabled\n\t\t},\n\t\t/**\n\t\t * Is the current share password protected by Talk?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisPasswordProtectedByTalk: {\n\t\t\tget() {\n\t\t\t\treturn this.share.sendPasswordByTalk\n\t\t\t},\n\t\t\tasync set(enabled) {\n\t\t\t\tthis.share.sendPasswordByTalk = enabled\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Is the current share an email share ?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisEmailShareType() {\n\t\t\treturn this.share\n\t\t\t\t? this.share.type === ShareType.Email\n\t\t\t\t: false\n\t\t},\n\t\tcanTogglePasswordProtectedByTalkAvailable() {\n\t\t\tif (!this.isPublicShare || !this.isPasswordProtected) {\n\t\t\t\t// Makes no sense\n\t\t\t\treturn false\n\t\t\t} else if (this.isEmailShareType && !this.hasUnsavedPassword) {\n\t\t\t\t// For email shares we need a new password in order to enable or\n\t\t\t\t// disable\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Is Talk enabled?\n\t\t\treturn OC.appswebroots.spreed !== undefined\n\t\t},\n\t\tcanChangeHideDownload() {\n\t\t\tconst hasDisabledDownload = (shareAttribute) => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.value === false\n\t\t\treturn this.fileInfo.shareAttributes.some(hasDisabledDownload)\n\t\t},\n\t\tcustomPermissionsList() {\n\t\t\t// Key order will be different, because ATOMIC_PERMISSIONS are numbers\n\t\t\tconst translatedPermissions = {\n\t\t\t\t[ATOMIC_PERMISSIONS.READ]: this.t('files_sharing', 'Read'),\n\t\t\t\t[ATOMIC_PERMISSIONS.CREATE]: this.t('files_sharing', 'Create'),\n\t\t\t\t[ATOMIC_PERMISSIONS.UPDATE]: this.t('files_sharing', 'Edit'),\n\t\t\t\t[ATOMIC_PERMISSIONS.SHARE]: this.t('files_sharing', 'Share'),\n\t\t\t\t[ATOMIC_PERMISSIONS.DELETE]: this.t('files_sharing', 'Delete'),\n\t\t\t}\n\n\t\t\treturn [ATOMIC_PERMISSIONS.READ, ATOMIC_PERMISSIONS.CREATE, ATOMIC_PERMISSIONS.UPDATE, ...(this.resharingIsPossible ? [ATOMIC_PERMISSIONS.SHARE] : []), ATOMIC_PERMISSIONS.DELETE]\n\t\t\t\t.filter((permission) => hasPermissions(this.share.permissions, permission))\n\t\t\t\t.map((permission, index) => index === 0\n\t\t\t\t\t? translatedPermissions[permission]\n\t\t\t\t\t: translatedPermissions[permission].toLocaleLowerCase(getLanguage()))\n\t\t\t\t.join(', ')\n\t\t},\n\t\tadvancedControlExpandedValue() {\n\t\t\treturn this.advancedSectionAccordionExpanded ? 'true' : 'false'\n\t\t},\n\t\terrorPasswordLabel() {\n\t\t\tif (this.passwordError) {\n\t\t\t\treturn t('files_sharing', \"Password field can't be empty\")\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\n\t\tpasswordHint() {\n\t\t\tif (this.isNewShare || this.hasUnsavedPassword) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn t('files_sharing', 'Replace current password')\n\t\t},\n\n\t\t/**\n\t\t * Additional actions for the menu\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\texternalLinkActions() {\n\t\t\tconst filterValidAction = (action) => (action.shareType.includes(ShareType.Link) || action.shareType.includes(ShareType.Email)) && action.advanced\n\t\t\t// filter only the advanced registered actions for said link\n\t\t\treturn this.ExternalShareActions.actions\n\t\t\t\t.filter(filterValidAction)\n\t\t},\n\t},\n\twatch: {\n\t\tsetCustomPermissions(isChecked) {\n\t\t\tif (isChecked) {\n\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t} else {\n\t\t\t\tthis.sharingPermission = this.revertSharingPermission\n\t\t\t}\n\t\t},\n\t},\n\tbeforeMount() {\n\t\tthis.initializePermissions()\n\t\tthis.initializeAttributes()\n\t\tlogger.debug('Share object received', { share: this.share })\n\t\tlogger.debug('Configuration object received', { config: this.config })\n\t},\n\n\tmounted() {\n\t\tthis.$refs.quickPermissions?.querySelector('input:checked')?.focus()\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Set a share attribute on the current share\n\t\t * @param {string} scope The attribute scope\n\t\t * @param {string} key The attribute key\n\t\t * @param {boolean} value The value\n\t\t */\n\t\tsetShareAttribute(scope, key, value) {\n\t\t\tif (!this.share.attributes) {\n\t\t\t\tthis.$set(this.share, 'attributes', [])\n\t\t\t}\n\n\t\t\tconst attribute = this.share.attributes\n\t\t\t\t.find((attr) => attr.scope === scope || attr.key === key)\n\n\t\t\tif (attribute) {\n\t\t\t\tattribute.value = value\n\t\t\t} else {\n\t\t\t\tthis.share.attributes.push({\n\t\t\t\t\tscope,\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get the value of a share attribute\n\t\t * @param {string} scope The attribute scope\n\t\t * @param {string} key The attribute key\n\t\t * @param {undefined|boolean} fallback The fallback to return if not found\n\t\t */\n\t\tgetShareAttribute(scope, key, fallback = undefined) {\n\t\t\tconst attribute = this.share.attributes?.find((attr) => attr.scope === scope && attr.key === key)\n\t\t\treturn attribute?.value ?? fallback\n\t\t},\n\n\t\tasync generateNewToken() {\n\t\t\tif (this.loadingToken) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.loadingToken = true\n\t\t\ttry {\n\t\t\t\tthis.share.token = await generateToken()\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('files_sharing', 'Failed to generate a new token'))\n\t\t\t}\n\t\t\tthis.loadingToken = false\n\t\t},\n\n\t\tcancel() {\n\t\t\tthis.share.token = this.initialToken\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\n\t\tupdateAtomicPermissions({\n\t\t\tisReadChecked = this.hasRead,\n\t\t\tisEditChecked = this.canEdit,\n\t\t\tisCreateChecked = this.canCreate,\n\t\t\tisDeleteChecked = this.canDelete,\n\t\t\tisReshareChecked = this.canReshare,\n\t\t} = {}) {\n\t\t\t// calc permissions if checked\n\t\t\tconst permissions = 0\n\t\t\t\t| (isReadChecked ? ATOMIC_PERMISSIONS.READ : 0)\n\t\t\t\t| (isCreateChecked ? ATOMIC_PERMISSIONS.CREATE : 0)\n\t\t\t\t| (isDeleteChecked ? ATOMIC_PERMISSIONS.DELETE : 0)\n\t\t\t\t| (isEditChecked ? ATOMIC_PERMISSIONS.UPDATE : 0)\n\t\t\t\t| (isReshareChecked ? ATOMIC_PERMISSIONS.SHARE : 0)\n\t\t\tthis.share.permissions = permissions\n\t\t},\n\t\texpandCustomPermissions() {\n\t\t\tif (!this.advancedSectionAccordionExpanded) {\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t}\n\t\t\tthis.toggleCustomPermissions()\n\t\t},\n\t\ttoggleCustomPermissions(selectedPermission) {\n\t\t\tconst isCustomPermissions = this.sharingPermission === 'custom'\n\t\t\tthis.revertSharingPermission = !isCustomPermissions ? selectedPermission : 'custom'\n\t\t\tthis.setCustomPermissions = isCustomPermissions\n\t\t},\n\t\tasync initializeAttributes() {\n\n\t\t\tif (this.isNewShare) {\n\t\t\t\tif (this.isPasswordEnforced && this.isPublicShare) {\n\t\t\t\t\tthis.$set(this.share, 'newPassword', await GeneratePassword(true))\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t}\n\t\t\t\t/* Set default expiration dates if configured */\n\t\t\t\tif (this.isPublicShare && this.config.isDefaultExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultExpirationDate.toDateString()\n\t\t\t\t} else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultRemoteExpirationDateString.toDateString()\n\t\t\t\t} else if (this.config.isDefaultInternalExpireDateEnabled) {\n\t\t\t\t\tthis.share.expireDate = this.config.defaultInternalExpirationDate.toDateString()\n\t\t\t\t}\n\n\t\t\t\tif (this.isValidShareAttribute(this.share.expireDate)) {\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t}\n\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// If there is an enforced expiry date, then existing shares created before enforcement\n\t\t\t// have no expiry date, hence we set it here.\n\t\t\tif (!this.isValidShareAttribute(this.share.expireDate) && this.isExpiryDateEnforced) {\n\t\t\t\tthis.hasExpirationDate = true\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.isValidShareAttribute(this.share.password)\n\t\t\t\t|| this.isValidShareAttribute(this.share.expireDate)\n\t\t\t\t|| this.isValidShareAttribute(this.share.label)\n\t\t\t) {\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t}\n\n\t\t\tif (this.share.note) {\n\t\t\t\tthis.writeNoteToRecipientIsChecked = true\n\t\t\t}\n\n\t\t},\n\t\thandleShareType() {\n\t\t\tif ('shareType' in this.share) {\n\t\t\t\tthis.share.type = this.share.shareType\n\t\t\t} else if (this.share.share_type) {\n\t\t\t\tthis.share.type = this.share.share_type\n\t\t\t}\n\t\t},\n\t\thandleDefaultPermissions() {\n\t\t\tif (this.isNewShare) {\n\t\t\t\tconst defaultPermissions = this.config.defaultPermissions\n\t\t\t\tif (defaultPermissions === BUNDLED_PERMISSIONS.READ_ONLY || defaultPermissions === BUNDLED_PERMISSIONS.ALL) {\n\t\t\t\t\tthis.sharingPermission = defaultPermissions.toString()\n\t\t\t\t} else {\n\t\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t\t\tthis.share.permissions = defaultPermissions\n\t\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\t\tthis.setCustomPermissions = true\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Read permission required for share creation\n\t\t\tif (!this.canRemoveReadPermission) {\n\t\t\t\tthis.hasRead = true\n\t\t\t}\n\t\t},\n\t\thandleCustomPermissions() {\n\t\t\tif (!this.isNewShare && (this.hasCustomPermissions || this.share.setCustomPermissions)) {\n\t\t\t\tthis.sharingPermission = 'custom'\n\t\t\t\tthis.advancedSectionAccordionExpanded = true\n\t\t\t\tthis.setCustomPermissions = true\n\t\t\t} else if (this.share.permissions) {\n\t\t\t\tthis.sharingPermission = this.share.permissions.toString()\n\t\t\t}\n\t\t},\n\t\tinitializePermissions() {\n\t\t\tthis.handleShareType()\n\t\t\tthis.handleDefaultPermissions()\n\t\t\tthis.handleCustomPermissions()\n\t\t},\n\t\tasync saveShare() {\n\t\t\tconst permissionsAndAttributes = ['permissions', 'attributes', 'note', 'expireDate']\n\t\t\tconst publicShareAttributes = ['label', 'password', 'hideDownload']\n\t\t\tif (this.config.allowCustomTokens) {\n\t\t\t\tpublicShareAttributes.push('token')\n\t\t\t}\n\t\t\tif (this.isPublicShare) {\n\t\t\t\tpermissionsAndAttributes.push(...publicShareAttributes)\n\t\t\t}\n\t\t\tconst sharePermissionsSet = parseInt(this.sharingPermission)\n\t\t\tif (this.setCustomPermissions) {\n\t\t\t\tthis.updateAtomicPermissions()\n\t\t\t} else {\n\t\t\t\tthis.share.permissions = sharePermissionsSet\n\t\t\t}\n\n\t\t\tif (!this.isFolder && this.share.permissions === BUNDLED_PERMISSIONS.ALL) {\n\t\t\t\t// It's not possible to create an existing file.\n\t\t\t\tthis.share.permissions = BUNDLED_PERMISSIONS.ALL_FILE\n\t\t\t}\n\t\t\tif (!this.writeNoteToRecipientIsChecked) {\n\t\t\t\tthis.share.note = ''\n\t\t\t}\n\t\t\tif (this.isPasswordProtected) {\n\t\t\t\tif (this.hasUnsavedPassword && this.isValidShareAttribute(this.share.newPassword)) {\n\t\t\t\t\tthis.share.password = this.share.newPassword\n\t\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\t} else if (this.isPasswordEnforced && this.isNewShare && !this.isValidShareAttribute(this.share.password)) {\n\t\t\t\t\tthis.passwordError = true\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.share.password = ''\n\t\t\t}\n\n\t\t\tif (!this.hasExpirationDate) {\n\t\t\t\tthis.share.expireDate = ''\n\t\t\t}\n\n\t\t\tif (this.isNewShare) {\n\t\t\t\tconst incomingShare = {\n\t\t\t\t\tpermissions: this.share.permissions,\n\t\t\t\t\tshareType: this.share.type,\n\t\t\t\t\tshareWith: this.share.shareWith,\n\t\t\t\t\tattributes: this.share.attributes,\n\t\t\t\t\tnote: this.share.note,\n\t\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\t}\n\n\t\t\t\tincomingShare.expireDate = this.hasExpirationDate ? this.share.expireDate : ''\n\n\t\t\t\tif (this.isPasswordProtected) {\n\t\t\t\t\tincomingShare.password = this.share.password\n\t\t\t\t}\n\n\t\t\t\tthis.creating = true\n\t\t\t\tconst share = await this.addShare(incomingShare)\n\t\t\t\tthis.creating = false\n\t\t\t\tthis.share = share\n\t\t\t\tthis.$emit('add:share', this.share)\n\t\t\t} else {\n\t\t\t\tthis.$emit('update:share', this.share)\n\t\t\t\temit('update:share', this.share)\n\t\t\t\tthis.queueUpdate(...permissionsAndAttributes)\n\t\t\t}\n\n\t\t\tawait this.getNode()\n\t\t\temit('files:node:updated', this.node)\n\n\t\t\tif (this.$refs.externalLinkActions?.length > 0) {\n\t\t\t\tawait Promise.allSettled(this.$refs.externalLinkActions.map((action) => {\n\t\t\t\t\tif (typeof action.$children.at(0)?.onSave !== 'function') {\n\t\t\t\t\t\treturn Promise.resolve()\n\t\t\t\t\t}\n\t\t\t\t\treturn action.$children.at(0)?.onSave?.()\n\t\t\t\t}))\n\t\t\t}\n\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\t\t/**\n\t\t * Process the new share request\n\t\t *\n\t\t * @param {Share} share incoming share object\n\t\t */\n\t\tasync addShare(share) {\n\t\t\tlogger.debug('Adding a new share from the input for', { share })\n\t\t\tconst path = this.path\n\t\t\ttry {\n\t\t\t\tconst resultingShare = await this.createShare({\n\t\t\t\t\tpath,\n\t\t\t\t\tshareType: share.shareType,\n\t\t\t\t\tshareWith: share.shareWith,\n\t\t\t\t\tpermissions: share.permissions,\n\t\t\t\t\texpireDate: share.expireDate,\n\t\t\t\t\tattributes: JSON.stringify(share.attributes),\n\t\t\t\t\t...(share.note ? { note: share.note } : {}),\n\t\t\t\t\t...(share.password ? { password: share.password } : {}),\n\t\t\t\t})\n\t\t\t\treturn resultingShare\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error while adding new share', { error })\n\t\t\t} finally {\n\t\t\t\t// this.loading = false // No loader here yet\n\t\t\t}\n\t\t},\n\t\tasync removeShare() {\n\t\t\tawait this.onDelete()\n\t\t\tawait this.getNode()\n\t\t\temit('files:node:updated', this.node)\n\t\t\tthis.$emit('close-sharing-details')\n\t\t},\n\t\t/**\n\t\t * Update newPassword values\n\t\t * of share. If password is set but not newPassword\n\t\t * then the user did not changed the password\n\t\t * If both co-exists, the password have changed and\n\t\t * we show it in plain text.\n\t\t * Then on submit (or menu close), we sync it.\n\t\t *\n\t\t * @param {string} password the changed password\n\t\t */\n\t\tonPasswordChange(password) {\n\t\t\tif (password === '') {\n\t\t\t\tthis.$delete(this.share, 'newPassword')\n\t\t\t\tthis.passwordError = this.isNewShare && this.isPasswordEnforced\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.passwordError = !this.isValidShareAttribute(password)\n\t\t\tthis.$set(this.share, 'newPassword', password)\n\t\t},\n\t\t/**\n\t\t * Update the password along with \"sendPasswordByTalk\".\n\t\t *\n\t\t * If the password was modified the new password is sent; otherwise\n\t\t * updating a mail share would fail, as in that case it is required that\n\t\t * a new password is set when enabling or disabling\n\t\t * \"sendPasswordByTalk\".\n\t\t */\n\t\tonPasswordProtectedByTalkChange() {\n\t\t\tif (this.hasUnsavedPassword) {\n\t\t\t\tthis.share.password = this.share.newPassword.trim()\n\t\t\t}\n\n\t\t\tthis.queueUpdate('sendPasswordByTalk', 'password')\n\t\t},\n\t\tisValidShareAttribute(value) {\n\t\t\tif ([null, undefined].includes(value)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (!(value.trim().length > 0)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t},\n\t\tgetShareTypeIcon(type) {\n\t\t\tswitch (type) {\n\t\t\tcase ShareType.Link:\n\t\t\t\treturn LinkIcon\n\t\t\tcase ShareType.Guest:\n\t\t\t\treturn UserIcon\n\t\t\tcase ShareType.RemoteGroup:\n\t\t\tcase ShareType.Group:\n\t\t\t\treturn GroupIcon\n\t\t\tcase ShareType.Email:\n\t\t\t\treturn EmailIcon\n\t\t\tcase ShareType.Team:\n\t\t\t\treturn CircleIcon\n\t\t\tcase ShareType.Room:\n\t\t\t\treturn ShareIcon\n\t\t\tcase ShareType.Deck:\n\t\t\t\treturn ShareIcon\n\t\t\tcase ShareType.ScienceMesh:\n\t\t\t\treturn ShareIcon\n\t\t\tdefault:\n\t\t\t\treturn null // Or a default icon component if needed\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\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</style>\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';\nexport const generateToken = async () => {\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=c672ed08&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=c672ed08&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=c672ed08&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=c672ed08&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 \"c672ed08\",\n null\n \n)\n\nexport default component.exports","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"sharingTab\" :class=\"{ 'icon-loading': loading }\">\n\t\t<!-- error message -->\n\t\t<div v-if=\"error\" class=\"emptycontent\" :class=\"{ emptyContentWithSections: sections.length > 0 }\">\n\t\t\t<div class=\"icon icon-error\" />\n\t\t\t<h2>{{ error }}</h2>\n\t\t</div>\n\n\t\t<!-- shares content -->\n\t\t<div v-show=\"!showSharingDetailsView\"\n\t\t\tclass=\"sharingTab__content\">\n\t\t\t<!-- shared with me information -->\n\t\t\t<ul v-if=\"isSharedWithMe\">\n\t\t\t\t<SharingEntrySimple v-bind=\"sharedWithMe\" class=\"sharing-entry__reshare\">\n\t\t\t\t\t<template #avatar>\n\t\t\t\t\t\t<NcAvatar :user=\"sharedWithMe.user\"\n\t\t\t\t\t\t\t:display-name=\"sharedWithMe.displayName\"\n\t\t\t\t\t\t\tclass=\"sharing-entry__avatar\" />\n\t\t\t\t\t</template>\n\t\t\t\t</SharingEntrySimple>\n\t\t\t</ul>\n\n\t\t\t<section>\n\t\t\t\t<div class=\"section-header\">\n\t\t\t\t\t<h4>{{ t('files_sharing', 'Internal shares') }}</h4>\n\t\t\t\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton class=\"hint-icon\"\n\t\t\t\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Internal shares explanation')\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<InfoIcon :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<p class=\"hint-body\">\n\t\t\t\t\t\t\t{{ internalSharesHelpText }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</NcPopover>\n\t\t\t\t</div>\n\t\t\t\t<!-- add new share input -->\n\t\t\t\t<SharingInput v-if=\"!loading\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:link-shares=\"linkShares\"\n\t\t\t\t\t:reshare=\"reshare\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t:placeholder=\"t('files_sharing', 'Share with accounts and teams')\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\n\t\t\t\t<!-- other shares list -->\n\t\t\t\t<SharingList v-if=\"!loading\"\n\t\t\t\t\tref=\"shareList\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\n\t\t\t\t<!-- inherited shares -->\n\t\t\t\t<SharingInherited v-if=\"canReshare && !loading\" :file-info=\"fileInfo\" />\n\n\t\t\t\t<!-- internal link copy -->\n\t\t\t\t<SharingEntryInternal :file-info=\"fileInfo\" />\n\t\t\t</section>\n\n\t\t\t<section>\n\t\t\t\t<div class=\"section-header\">\n\t\t\t\t\t<h4>{{ t('files_sharing', 'External shares') }}</h4>\n\t\t\t\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton class=\"hint-icon\"\n\t\t\t\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'External shares explanation')\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<InfoIcon :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<p class=\"hint-body\">\n\t\t\t\t\t\t\t{{ externalSharesHelpText }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</NcPopover>\n\t\t\t\t</div>\n\t\t\t\t<SharingInput v-if=\"!loading\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:link-shares=\"linkShares\"\n\t\t\t\t\t:is-external=\"true\"\n\t\t\t\t\t:placeholder=\"t('files_sharing', 'Email, federated cloud id')\"\n\t\t\t\t\t:reshare=\"reshare\"\n\t\t\t\t\t:shares=\"shares\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\t\t\t\t<!-- link shares list -->\n\t\t\t\t<SharingLinkList v-if=\"!loading\"\n\t\t\t\t\tref=\"linkShareList\"\n\t\t\t\t\t:can-reshare=\"canReshare\"\n\t\t\t\t\t:file-info=\"fileInfo\"\n\t\t\t\t\t:shares=\"linkShares\"\n\t\t\t\t\t@open-sharing-details=\"toggleShareDetailsView\" />\n\t\t\t</section>\n\n\t\t\t<section v-if=\"sections.length > 0 && !showSharingDetailsView\">\n\t\t\t\t<div class=\"section-header\">\n\t\t\t\t\t<h4>{{ t('files_sharing', 'Additional shares') }}</h4>\n\t\t\t\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t\t<NcButton class=\"hint-icon\"\n\t\t\t\t\t\t\t\ttype=\"tertiary-no-background\"\n\t\t\t\t\t\t\t\t:aria-label=\"t('files_sharing', 'Additional shares explanation')\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<InfoIcon :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<p class=\"hint-body\">\n\t\t\t\t\t\t\t{{ additionalSharesHelpText }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</NcPopover>\n\t\t\t\t</div>\n\t\t\t\t<!-- additional entries, use it with cautious -->\n\t\t\t\t<div v-for=\"(section, index) in sections\"\n\t\t\t\t\t:ref=\"'section-' + index\"\n\t\t\t\t\t:key=\"index\"\n\t\t\t\t\tclass=\"sharingTab__additionalContent\">\n\t\t\t\t\t<component :is=\"section($refs['section-'+index], fileInfo)\" :file-info=\"fileInfo\" />\n\t\t\t\t</div>\n\n\t\t\t\t<!-- projects (deprecated as of NC25 (replaced by related_resources) - see instance config \"projects.enabled\" ; ignore this / remove it / move into own section) -->\n\t\t\t\t<div v-if=\"projectsEnabled\"\n\t\t\t\t\tv-show=\"!showSharingDetailsView && fileInfo\"\n\t\t\t\t\tclass=\"sharingTab__additionalContent\">\n\t\t\t\t\t<CollectionList :id=\"`${fileInfo.id}`\"\n\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\t:name=\"fileInfo.name\" />\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t</div>\n\n\t\t<!-- share details -->\n\t\t<SharingDetailsTab v-if=\"showSharingDetailsView\"\n\t\t\t:file-info=\"shareDetailsData.fileInfo\"\n\t\t\t:share=\"shareDetailsData.share\"\n\t\t\t@close-sharing-details=\"toggleShareDetailsView\"\n\t\t\t@add:share=\"addShare\"\n\t\t\t@remove:share=\"removeShare\" />\n\t</div>\n</template>\n\n<script>\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { orderBy } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { CollectionList } from 'nextcloud-vue-collections'\nimport { ShareType } from '@nextcloud/sharing'\n\nimport InfoIcon from 'vue-material-design-icons/Information.vue'\nimport NcPopover from '@nextcloud/vue/dist/Components/NcPopover.js'\n\nimport axios from '@nextcloud/axios'\nimport moment from '@nextcloud/moment'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\n\nimport { shareWithTitle } from '../utils/SharedWithMe.js'\n\nimport Config from '../services/ConfigService.ts'\nimport Share from '../models/Share.ts'\nimport SharingEntryInternal from '../components/SharingEntryInternal.vue'\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue'\nimport SharingInput from '../components/SharingInput.vue'\n\nimport SharingInherited from './SharingInherited.vue'\nimport SharingLinkList from './SharingLinkList.vue'\nimport SharingList from './SharingList.vue'\nimport SharingDetailsTab from './SharingDetailsTab.vue'\n\nimport ShareDetails from '../mixins/ShareDetails.js'\n\nexport default {\n\tname: 'SharingTab',\n\n\tcomponents: {\n\t\tCollectionList,\n\t\tInfoIcon,\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tNcPopover,\n\t\tSharingEntryInternal,\n\t\tSharingEntrySimple,\n\t\tSharingInherited,\n\t\tSharingInput,\n\t\tSharingLinkList,\n\t\tSharingList,\n\t\tSharingDetailsTab,\n\t},\n\tmixins: [ShareDetails],\n\n\tdata() {\n\t\treturn {\n\t\t\tconfig: new Config(),\n\t\t\tdeleteEvent: null,\n\t\t\terror: '',\n\t\t\texpirationInterval: null,\n\t\t\tloading: true,\n\n\t\t\tfileInfo: null,\n\n\t\t\t// reshare Share object\n\t\t\treshare: null,\n\t\t\tsharedWithMe: {},\n\t\t\tshares: [],\n\t\t\tlinkShares: [],\n\n\t\t\tsections: OCA.Sharing.ShareTabSections.getSections(),\n\t\t\tprojectsEnabled: loadState('core', 'projects_enabled', false),\n\t\t\tshowSharingDetailsView: false,\n\t\t\tshareDetailsData: {},\n\t\t\treturnFocusElement: null,\n\n\t\t\tinternalSharesHelpText: t('files_sharing', 'Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access.'),\n\t\t\texternalSharesHelpText: t('files_sharing', 'Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID.'),\n\t\t\tadditionalSharesHelpText: t('files_sharing', 'Shares that are not part of the internal or external shares. This can be shares from apps or other sources.'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Is this share shared with me?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisSharedWithMe() {\n\t\t\treturn Object.keys(this.sharedWithMe).length > 0\n\t\t},\n\n\t\tcanReshare() {\n\t\t\treturn !!(this.fileInfo.permissions & OC.PERMISSION_SHARE)\n\t\t\t\t|| !!(this.reshare && this.reshare.hasSharePermission && this.config.isResharingAllowed)\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Update current fileInfo and fetch new data\n\t\t *\n\t\t * @param {object} fileInfo the current file FileInfo\n\t\t */\n\t\tasync update(fileInfo) {\n\t\t\tthis.fileInfo = fileInfo\n\t\t\tthis.resetState()\n\t\t\tthis.getShares()\n\t\t},\n\n\t\t/**\n\t\t * Get the existing shares infos\n\t\t */\n\t\tasync getShares() {\n\t\t\ttry {\n\t\t\t\tthis.loading = true\n\n\t\t\t\t// init params\n\t\t\t\tconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares')\n\t\t\t\tconst format = 'json'\n\t\t\t\t// TODO: replace with proper getFUllpath implementation of our own FileInfo model\n\t\t\t\tconst path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/')\n\n\t\t\t\t// fetch shares\n\t\t\t\tconst fetchShares = axios.get(shareUrl, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\treshares: true,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tconst fetchSharedWithMe = axios.get(shareUrl, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\tformat,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tshared_with_me: true,\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\t// wait for data\n\t\t\t\tconst [shares, sharedWithMe] = await Promise.all([fetchShares, fetchSharedWithMe])\n\t\t\t\tthis.loading = false\n\n\t\t\t\t// process results\n\t\t\t\tthis.processSharedWithMe(sharedWithMe)\n\t\t\t\tthis.processShares(shares)\n\t\t\t} catch (error) {\n\t\t\t\tif (error?.response?.data?.ocs?.meta?.message) {\n\t\t\t\t\tthis.error = error.response.data.ocs.meta.message\n\t\t\t\t} else {\n\t\t\t\t\tthis.error = t('files_sharing', 'Unable to load the shares list')\n\t\t\t\t}\n\t\t\t\tthis.loading = false\n\t\t\t\tconsole.error('Error loading the shares list', error)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Reset the current view to its default state\n\t\t */\n\t\tresetState() {\n\t\t\tclearInterval(this.expirationInterval)\n\t\t\tthis.loading = true\n\t\t\tthis.error = ''\n\t\t\tthis.sharedWithMe = {}\n\t\t\tthis.shares = []\n\t\t\tthis.linkShares = []\n\t\t\tthis.showSharingDetailsView = false\n\t\t\tthis.shareDetailsData = {}\n\t\t},\n\n\t\t/**\n\t\t * Update sharedWithMe.subtitle with the appropriate\n\t\t * expiration time left\n\t\t *\n\t\t * @param {Share} share the sharedWith Share object\n\t\t */\n\t\tupdateExpirationSubtitle(share) {\n\t\t\tconst expiration = moment(share.expireDate).unix()\n\t\t\tthis.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'Expires {relativetime}', {\n\t\t\t\trelativetime: moment(expiration * 1000).fromNow(),\n\t\t\t}))\n\n\t\t\t// share have expired\n\t\t\tif (moment().unix() > expiration) {\n\t\t\t\tclearInterval(this.expirationInterval)\n\t\t\t\t// TODO: clear ui if share is expired\n\t\t\t\tthis.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'this share just expired.'))\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process the current shares data\n\t\t * and init shares[]\n\t\t *\n\t\t * @param {object} share the share ocs api request data\n\t\t * @param {object} share.data the request data\n\t\t */\n\t\tprocessShares({ data }) {\n\t\t\tif (data.ocs && data.ocs.data && data.ocs.data.length > 0) {\n\t\t\t\tconst shares = orderBy(\n\t\t\t\t\tdata.ocs.data.map(share => new Share(share)),\n\t\t\t\t\t[\n\t\t\t\t\t\t// First order by the \"share with\" label\n\t\t\t\t\t\t(share) => share.shareWithDisplayName,\n\t\t\t\t\t\t// Then by the label\n\t\t\t\t\t\t(share) => share.label,\n\t\t\t\t\t\t// And last resort order by createdTime\n\t\t\t\t\t\t(share) => share.createdTime,\n\t\t\t\t\t],\n\t\t\t\t)\n\n\t\t\t\tthis.linkShares = shares.filter(share => share.type === ShareType.Link || share.type === ShareType.Email)\n\t\t\t\tthis.shares = shares.filter(share => share.type !== ShareType.Link && share.type !== ShareType.Email)\n\n\t\t\t\tconsole.debug('Processed', this.linkShares.length, 'link share(s)')\n\t\t\t\tconsole.debug('Processed', this.shares.length, 'share(s)')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Process the sharedWithMe share data\n\t\t * and init sharedWithMe\n\t\t *\n\t\t * @param {object} share the share ocs api request data\n\t\t * @param {object} share.data the request data\n\t\t */\n\t\tprocessSharedWithMe({ data }) {\n\t\t\tif (data.ocs && data.ocs.data && data.ocs.data[0]) {\n\t\t\t\tconst share = new Share(data)\n\t\t\t\tconst title = shareWithTitle(share)\n\t\t\t\tconst displayName = share.ownerDisplayName\n\t\t\t\tconst user = share.owner\n\n\t\t\t\tthis.sharedWithMe = {\n\t\t\t\t\tdisplayName,\n\t\t\t\t\ttitle,\n\t\t\t\t\tuser,\n\t\t\t\t}\n\t\t\t\tthis.reshare = share\n\n\t\t\t\t// If we have an expiration date, use it as subtitle\n\t\t\t\t// Refresh the status every 10s and clear if expired\n\t\t\t\tif (share.expireDate && moment(share.expireDate).unix() > moment().unix()) {\n\t\t\t\t\t// first update\n\t\t\t\t\tthis.updateExpirationSubtitle(share)\n\t\t\t\t\t// interval update\n\t\t\t\t\tthis.expirationInterval = setInterval(this.updateExpirationSubtitle, 10000, share)\n\t\t\t\t}\n\t\t\t} else if (this.fileInfo && this.fileInfo.shareOwnerId !== undefined ? this.fileInfo.shareOwnerId !== getCurrentUser().uid : false) {\n\t\t\t\t// Fallback to compare owner and current user.\n\t\t\t\tthis.sharedWithMe = {\n\t\t\t\t\tdisplayName: this.fileInfo.shareOwner,\n\t\t\t\t\ttitle: t(\n\t\t\t\t\t\t'files_sharing',\n\t\t\t\t\t\t'Shared with you by {owner}',\n\t\t\t\t\t\t{ owner: this.fileInfo.shareOwner },\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{ escape: false },\n\t\t\t\t\t),\n\t\t\t\t\tuser: this.fileInfo.shareOwnerId,\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add a new share into the shares list\n\t\t * and return the newly created share component\n\t\t *\n\t\t * @param {Share} share the share to add to the array\n\t\t * @param {Function} [resolve] a function to run after the share is added and its component initialized\n\t\t */\n\t\taddShare(share, resolve = () => { }) {\n\t\t\t// only catching share type MAIL as link shares are added differently\n\t\t\t// meaning: not from the ShareInput\n\t\t\tif (share.type === ShareType.Email) {\n\t\t\t\tthis.linkShares.unshift(share)\n\t\t\t} else {\n\t\t\t\tthis.shares.unshift(share)\n\t\t\t}\n\t\t\tthis.awaitForShare(share, resolve)\n\t\t},\n\t\t/**\n\t\t * Remove a share from the shares list\n\t\t *\n\t\t * @param {Share} share the share to remove\n\t\t */\n\t\tremoveShare(share) {\n\t\t\t// Get reference for this.linkShares or this.shares\n\t\t\tconst shareList\n\t\t\t\t= share.type === ShareType.Email\n\t\t\t\t\t|| share.type === ShareType.Link\n\t\t\t\t\t? this.linkShares\n\t\t\t\t\t: this.shares\n\t\t\tconst index = shareList.findIndex(item => item.id === share.id)\n\t\t\tif (index !== -1) {\n\t\t\t\tshareList.splice(index, 1)\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Await for next tick and render after the list updated\n\t\t * Then resolve with the matched vue component of the\n\t\t * provided share object\n\t\t *\n\t\t * @param {Share} share newly created share\n\t\t * @param {Function} resolve a function to execute after\n\t\t */\n\t\tawaitForShare(share, resolve) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tlet listComponent = this.$refs.shareList\n\t\t\t\t// Only mail shares comes from the input, link shares\n\t\t\t\t// are managed internally in the SharingLinkList component\n\t\t\t\tif (share.type === ShareType.Email) {\n\t\t\t\t\tlistComponent = this.$refs.linkShareList\n\t\t\t\t}\n\t\t\t\tconst newShare = listComponent.$children.find(component => component.share === share)\n\t\t\t\tif (newShare) {\n\t\t\t\t\tresolve(newShare)\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\ttoggleShareDetailsView(eventData) {\n\t\t\tif (!this.showSharingDetailsView) {\n\t\t\t\tconst isAction = Array.from(document.activeElement.classList)\n\t\t\t\t\t.some(className => className.startsWith('action-'))\n\t\t\t\tif (isAction) {\n\t\t\t\t\tconst menuId = document.activeElement.closest('[role=\"menu\"]')?.id\n\t\t\t\t\tthis.returnFocusElement = document.querySelector(`[aria-controls=\"${menuId}\"]`)\n\t\t\t\t} else {\n\t\t\t\t\tthis.returnFocusElement = document.activeElement\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (eventData) {\n\t\t\t\tthis.shareDetailsData = eventData\n\t\t\t}\n\n\t\t\tthis.showSharingDetailsView = !this.showSharingDetailsView\n\n\t\t\tif (!this.showSharingDetailsView) {\n\t\t\t\tthis.$nextTick(() => { // Wait for next tick as the element must be visible to be focused\n\t\t\t\t\tthis.returnFocusElement?.focus()\n\t\t\t\t\tthis.returnFocusElement = null\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\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\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: 44px 0;\n\t}\n}\n\n.hint-body {\n\tmax-width: 300px;\n\tpadding: var(--border-radius-element);\n}\n</style>\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\nconst shareWithTitle = function(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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=15a4df38&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=15a4df38&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=15a4df38&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=15a4df38&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 \"15a4df38\",\n null\n \n)\n\nexport default component.exports","import { o as logger } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { q, F, s, N, t, P, c, l, m, n, a, g, p, b, r, d, h, f, k, j, e, i } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"path\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewFileMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? 1;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {Folder} context the creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nconst getNewFileMenu = function() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewFileMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n};\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n DefaultType2[\"DEFAULT\"] = \"default\";\n DefaultType2[\"HIDDEN\"] = \"hidden\";\n return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n }\n}\nconst registerFileAction = function(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n};\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nconst registerFileListAction = (action) => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n};\nconst getFileListActions = () => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n};\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nconst registerFileListHeaders = function(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n};\nvar InvalidFilenameErrorReason = /* @__PURE__ */ ((InvalidFilenameErrorReason2) => {\n InvalidFilenameErrorReason2[\"ReservedName\"] = \"reserved name\";\n InvalidFilenameErrorReason2[\"Character\"] = \"character\";\n InvalidFilenameErrorReason2[\"Extension\"] = \"extension\";\n return InvalidFilenameErrorReason2;\n})(InvalidFilenameErrorReason || {});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: \"character\", filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({\n filename,\n segment: filename,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({\n filename,\n segment: basename2,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [\".part\", \".filepart\"];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: \"extension\", filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n2) => `(${n2})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i2 = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i2++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch (e2) {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers2.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n FilesSortingMode2[\"Name\"] = \"basename\";\n FilesSortingMode2[\"Modified\"] = \"mtime\";\n FilesSortingMode2[\"Size\"] = \"size\";\n return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: \"basename\",\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n const basename2 = (name) => name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n const identifiers2 = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v.displayname || v.attributes?.displayname || v.basename),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers2, orders);\n}\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n * @param view The view to register\n * @throws `Error` is thrown if a view with the same id is already registered\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`View id ${view.id} is already registered`);\n }\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n * @fires UpdateActiveViewEvent\n * @param view New active view\n */\n setActive(view) {\n this._currentView = view;\n const event = new CustomEvent(\"updateActive\", { detail: view });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nconst getNavigation = function() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n};\nclass Column {\n _column;\n constructor(column) {\n isValidColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst isValidColumn = function(column) {\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n if (column.sort && typeof column.sort !== \"function\") {\n throw new Error(\"Column sortFunction must be a function\");\n }\n if (column.summary && typeof column.summary !== \"function\") {\n throw new Error(\"Column summary must be a function\");\n }\n return true;\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar validator = {};\nvar util = {};\nvar hasRequiredUtil;\nfunction requireUtil() {\n if (hasRequiredUtil) return util;\n hasRequiredUtil = 1;\n (function(exports) {\n const nameStartChar = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n const nameChar = nameStartChar + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n const nameRegexp = \"[\" + nameStartChar + \"][\" + nameChar + \"]*\";\n const regexName = new RegExp(\"^\" + nameRegexp + \"$\");\n const getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n };\n const isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === \"undefined\");\n };\n exports.isExist = function(v) {\n return typeof v !== \"undefined\";\n };\n exports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n };\n exports.merge = function(target, a2, arrayMode) {\n if (a2) {\n const keys = Object.keys(a2);\n const len = keys.length;\n for (let i2 = 0; i2 < len; i2++) {\n if (arrayMode === \"strict\") {\n target[keys[i2]] = [a2[keys[i2]]];\n } else {\n target[keys[i2]] = a2[keys[i2]];\n }\n }\n }\n };\n exports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return \"\";\n }\n };\n exports.isName = isName;\n exports.getAllMatches = getAllMatches;\n exports.nameRegexp = nameRegexp;\n })(util);\n return util;\n}\nvar hasRequiredValidator;\nfunction requireValidator() {\n if (hasRequiredValidator) return validator;\n hasRequiredValidator = 1;\n const util2 = requireUtil();\n const defaultOptions = {\n allowBooleanAttributes: false,\n //A tag can have attributes without any value\n unpairedTags: []\n };\n validator.validate = function(xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n const tags = [];\n let tagFound = false;\n let reachedRoot = false;\n if (xmlData[0] === \"\\uFEFF\") {\n xmlData = xmlData.substr(1);\n }\n for (let i2 = 0; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\" && xmlData[i2 + 1] === \"?\") {\n i2 += 2;\n i2 = readPI(xmlData, i2);\n if (i2.err) return i2;\n } else if (xmlData[i2] === \"<\") {\n let tagStartPos = i2;\n i2++;\n if (xmlData[i2] === \"!\") {\n i2 = readCommentAndCDATA(xmlData, i2);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i2] === \"/\") {\n closingTag = true;\n i2++;\n }\n let tagName = \"\";\n for (; i2 < xmlData.length && xmlData[i2] !== \">\" && xmlData[i2] !== \" \" && xmlData[i2] !== \"\t\" && xmlData[i2] !== \"\\n\" && xmlData[i2] !== \"\\r\"; i2++) {\n tagName += xmlData[i2];\n }\n tagName = tagName.trim();\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substring(0, tagName.length - 1);\n i2--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\" + tagName + \"' is an invalid name.\";\n }\n return getErrorObject(\"InvalidTag\", msg, getLineNumberForPosition(xmlData, i2));\n }\n const result = readAttributeStr(xmlData, i2);\n if (result === false) {\n return getErrorObject(\"InvalidAttr\", \"Attributes for '\" + tagName + \"' have open quote.\", getLineNumberForPosition(xmlData, i2));\n }\n let attrStr = result.value;\n i2 = result.index;\n if (attrStr[attrStr.length - 1] === \"/\") {\n const attrStrStart = i2 - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n } else {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i2));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else if (tags.length === 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject(\n \"InvalidTag\",\n \"Expected closing tag '\" + otg.tagName + \"' (opened in line \" + openPos.line + \", col \" + openPos.col + \") instead of closing tag '\" + tagName + \"'.\",\n getLineNumberForPosition(xmlData, tagStartPos)\n );\n }\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i2 - attrStr.length + isValid.err.line));\n }\n if (reachedRoot === true) {\n return getErrorObject(\"InvalidXml\", \"Multiple possible root nodes found.\", getLineNumberForPosition(xmlData, i2));\n } else if (options.unpairedTags.indexOf(tagName) !== -1) ;\n else {\n tags.push({ tagName, tagStartPos });\n }\n tagFound = true;\n }\n for (i2++; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n if (xmlData[i2 + 1] === \"!\") {\n i2++;\n i2 = readCommentAndCDATA(xmlData, i2);\n continue;\n } else if (xmlData[i2 + 1] === \"?\") {\n i2 = readPI(xmlData, ++i2);\n if (i2.err) return i2;\n } else {\n break;\n }\n } else if (xmlData[i2] === \"&\") {\n const afterAmp = validateAmpersand(xmlData, i2);\n if (afterAmp == -1)\n return getErrorObject(\"InvalidChar\", \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i2));\n i2 = afterAmp;\n } else {\n if (reachedRoot === true && !isWhiteSpace(xmlData[i2])) {\n return getErrorObject(\"InvalidXml\", \"Extra text at the end\", getLineNumberForPosition(xmlData, i2));\n }\n }\n }\n if (xmlData[i2] === \"<\") {\n i2--;\n }\n }\n } else {\n if (isWhiteSpace(xmlData[i2])) {\n continue;\n }\n return getErrorObject(\"InvalidChar\", \"char '\" + xmlData[i2] + \"' is not expected.\", getLineNumberForPosition(xmlData, i2));\n }\n }\n if (!tagFound) {\n return getErrorObject(\"InvalidXml\", \"Start tag expected.\", 1);\n } else if (tags.length == 1) {\n return getErrorObject(\"InvalidTag\", \"Unclosed tag '\" + tags[0].tagName + \"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n } else if (tags.length > 0) {\n return getErrorObject(\"InvalidXml\", \"Invalid '\" + JSON.stringify(tags.map((t2) => t2.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n }\n return true;\n };\n function isWhiteSpace(char) {\n return char === \" \" || char === \"\t\" || char === \"\\n\" || char === \"\\r\";\n }\n function readPI(xmlData, i2) {\n const start = i2;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] == \"?\" || xmlData[i2] == \" \") {\n const tagname = xmlData.substr(start, i2 - start);\n if (i2 > 5 && tagname === \"xml\") {\n return getErrorObject(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", getLineNumberForPosition(xmlData, i2));\n } else if (xmlData[i2] == \"?\" && xmlData[i2 + 1] == \">\") {\n i2++;\n break;\n } else {\n continue;\n }\n }\n }\n return i2;\n }\n function readCommentAndCDATA(xmlData, i2) {\n if (xmlData.length > i2 + 5 && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \"-\") {\n for (i2 += 3; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"-\" && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \">\") {\n i2 += 2;\n break;\n }\n }\n } else if (xmlData.length > i2 + 8 && xmlData[i2 + 1] === \"D\" && xmlData[i2 + 2] === \"O\" && xmlData[i2 + 3] === \"C\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"Y\" && xmlData[i2 + 6] === \"P\" && xmlData[i2 + 7] === \"E\") {\n let angleBracketsCount = 1;\n for (i2 += 8; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n angleBracketsCount++;\n } else if (xmlData[i2] === \">\") {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (xmlData.length > i2 + 9 && xmlData[i2 + 1] === \"[\" && xmlData[i2 + 2] === \"C\" && xmlData[i2 + 3] === \"D\" && xmlData[i2 + 4] === \"A\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"A\" && xmlData[i2 + 7] === \"[\") {\n for (i2 += 8; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"]\" && xmlData[i2 + 1] === \"]\" && xmlData[i2 + 2] === \">\") {\n i2 += 2;\n break;\n }\n }\n }\n return i2;\n }\n const doubleQuote = '\"';\n const singleQuote = \"'\";\n function readAttributeStr(xmlData, i2) {\n let attrStr = \"\";\n let startChar = \"\";\n let tagClosed = false;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === doubleQuote || xmlData[i2] === singleQuote) {\n if (startChar === \"\") {\n startChar = xmlData[i2];\n } else if (startChar !== xmlData[i2]) ;\n else {\n startChar = \"\";\n }\n } else if (xmlData[i2] === \">\") {\n if (startChar === \"\") {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i2];\n }\n if (startChar !== \"\") {\n return false;\n }\n return {\n value: attrStr,\n index: i2,\n tagClosed\n };\n }\n const validAttrStrRegxp = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\n function validateAttributeString(attrStr, options) {\n const matches = util2.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n for (let i2 = 0; i2 < matches.length; i2++) {\n if (matches[i2][1].length === 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' has no space in starting.\", getPositionFromMatch(matches[i2]));\n } else if (matches[i2][3] !== void 0 && matches[i2][4] === void 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' is without value.\", getPositionFromMatch(matches[i2]));\n } else if (matches[i2][3] === void 0 && !options.allowBooleanAttributes) {\n return getErrorObject(\"InvalidAttr\", \"boolean attribute '\" + matches[i2][2] + \"' is not allowed.\", getPositionFromMatch(matches[i2]));\n }\n const attrName = matches[i2][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is an invalid name.\", getPositionFromMatch(matches[i2]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n attrNames[attrName] = 1;\n } else {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is repeated.\", getPositionFromMatch(matches[i2]));\n }\n }\n return true;\n }\n function validateNumberAmpersand(xmlData, i2) {\n let re2 = /\\d/;\n if (xmlData[i2] === \"x\") {\n i2++;\n re2 = /[\\da-fA-F]/;\n }\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \";\")\n return i2;\n if (!xmlData[i2].match(re2))\n break;\n }\n return -1;\n }\n function validateAmpersand(xmlData, i2) {\n i2++;\n if (xmlData[i2] === \";\")\n return -1;\n if (xmlData[i2] === \"#\") {\n i2++;\n return validateNumberAmpersand(xmlData, i2);\n }\n let count = 0;\n for (; i2 < xmlData.length; i2++, count++) {\n if (xmlData[i2].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i2] === \";\")\n break;\n return -1;\n }\n return i2;\n }\n function getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col\n }\n };\n }\n function validateAttrName(attrName) {\n return util2.isName(attrName);\n }\n function validateTagName(tagname) {\n return util2.isName(tagname);\n }\n function getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n }\n function getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n }\n return validator;\n}\nvar OptionsBuilder = {};\nvar hasRequiredOptionsBuilder;\nfunction requireOptionsBuilder() {\n if (hasRequiredOptionsBuilder) return OptionsBuilder;\n hasRequiredOptionsBuilder = 1;\n const defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n removeNSPrefix: false,\n // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false,\n //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true,\n //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [],\n //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function(tagName, jPath, attrs) {\n return tagName;\n }\n // skipEmptyListItem: false\n };\n const buildOptions = function(options) {\n return Object.assign({}, defaultOptions, options);\n };\n OptionsBuilder.buildOptions = buildOptions;\n OptionsBuilder.defaultOptions = defaultOptions;\n return OptionsBuilder;\n}\nvar xmlNode;\nvar hasRequiredXmlNode;\nfunction requireXmlNode() {\n if (hasRequiredXmlNode) return xmlNode;\n hasRequiredXmlNode = 1;\n class XmlNode {\n constructor(tagname) {\n this.tagname = tagname;\n this.child = [];\n this[\":@\"] = {};\n }\n add(key, val) {\n if (key === \"__proto__\") key = \"#__proto__\";\n this.child.push({ [key]: val });\n }\n addChild(node) {\n if (node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if (node[\":@\"] && Object.keys(node[\":@\"]).length > 0) {\n this.child.push({ [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n } else {\n this.child.push({ [node.tagname]: node.child });\n }\n }\n }\n xmlNode = XmlNode;\n return xmlNode;\n}\nvar DocTypeReader;\nvar hasRequiredDocTypeReader;\nfunction requireDocTypeReader() {\n if (hasRequiredDocTypeReader) return DocTypeReader;\n hasRequiredDocTypeReader = 1;\n const util2 = requireUtil();\n function readDocType(xmlData, i2) {\n const entities = {};\n if (xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"C\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"Y\" && xmlData[i2 + 7] === \"P\" && xmlData[i2 + 8] === \"E\") {\n i2 = i2 + 9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\" && !comment) {\n if (hasBody && isEntity(xmlData, i2)) {\n i2 += 7;\n let entityName, val;\n [entityName, val, i2] = readEntityExp(xmlData, i2 + 1);\n if (val.indexOf(\"&\") === -1)\n entities[validateEntityName(entityName)] = {\n regx: RegExp(`&${entityName};`, \"g\"),\n val\n };\n } else if (hasBody && isElement(xmlData, i2)) i2 += 8;\n else if (hasBody && isAttlist(xmlData, i2)) i2 += 8;\n else if (hasBody && isNotation(xmlData, i2)) i2 += 9;\n else comment = true;\n angleBracketsCount++;\n exp = \"\";\n } else if (xmlData[i2] === \">\") {\n if (comment) {\n if (xmlData[i2 - 1] === \"-\" && xmlData[i2 - 2] === \"-\") {\n comment = false;\n angleBracketsCount--;\n }\n } else {\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n } else if (xmlData[i2] === \"[\") {\n hasBody = true;\n } else {\n exp += xmlData[i2];\n }\n }\n if (angleBracketsCount !== 0) {\n throw new Error(`Unclosed DOCTYPE`);\n }\n } else {\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return { entities, i: i2 };\n }\n function readEntityExp(xmlData, i2) {\n let entityName = \"\";\n for (; i2 < xmlData.length && (xmlData[i2] !== \"'\" && xmlData[i2] !== '\"'); i2++) {\n entityName += xmlData[i2];\n }\n entityName = entityName.trim();\n if (entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n const startChar = xmlData[i2++];\n let val = \"\";\n for (; i2 < xmlData.length && xmlData[i2] !== startChar; i2++) {\n val += xmlData[i2];\n }\n return [entityName, val, i2];\n }\n function isEntity(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"N\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"I\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"Y\") return true;\n return false;\n }\n function isElement(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"L\" && xmlData[i2 + 4] === \"E\" && xmlData[i2 + 5] === \"M\" && xmlData[i2 + 6] === \"E\" && xmlData[i2 + 7] === \"N\" && xmlData[i2 + 8] === \"T\") return true;\n return false;\n }\n function isAttlist(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"A\" && xmlData[i2 + 3] === \"T\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"L\" && xmlData[i2 + 6] === \"I\" && xmlData[i2 + 7] === \"S\" && xmlData[i2 + 8] === \"T\") return true;\n return false;\n }\n function isNotation(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"N\" && xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"A\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"I\" && xmlData[i2 + 8] === \"O\" && xmlData[i2 + 9] === \"N\") return true;\n return false;\n }\n function validateEntityName(name) {\n if (util2.isName(name))\n return name;\n else\n throw new Error(`Invalid entity name ${name}`);\n }\n DocTypeReader = readDocType;\n return DocTypeReader;\n}\nvar strnum;\nvar hasRequiredStrnum;\nfunction requireStrnum() {\n if (hasRequiredStrnum) return strnum;\n hasRequiredStrnum = 1;\n const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\n const numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n if (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n }\n if (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n }\n const consider = {\n hex: true,\n leadingZeros: true,\n decimalPoint: \".\",\n eNotation: true\n //skipLike: /regex/\n };\n function toNumber(str, options = {}) {\n options = Object.assign({}, consider, options);\n if (!str || typeof str !== \"string\") return str;\n let trimmedStr = str.trim();\n if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr)) return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n } else {\n const match = numRegex.exec(trimmedStr);\n if (match) {\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]);\n const eNotation = match[4] || match[6];\n if (!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str;\n else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str;\n else {\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n if (numStr.search(/[eE]/) !== -1) {\n if (options.eNotation) return num;\n else return str;\n } else if (eNotation) {\n if (options.eNotation) return num;\n else return str;\n } else if (trimmedStr.indexOf(\".\") !== -1) {\n if (numStr === \"0\" && numTrimmedByZeros === \"\") return num;\n else if (numStr === numTrimmedByZeros) return num;\n else if (sign && numStr === \"-\" + numTrimmedByZeros) return num;\n else return str;\n }\n if (leadingZeros) {\n if (numTrimmedByZeros === numStr) return num;\n else if (sign + numTrimmedByZeros === numStr) return num;\n else return str;\n }\n if (trimmedStr === numStr) return num;\n else if (trimmedStr === sign + numStr) return num;\n return str;\n }\n } else {\n return str;\n }\n }\n }\n function trimZeros(numStr) {\n if (numStr && numStr.indexOf(\".\") !== -1) {\n numStr = numStr.replace(/0+$/, \"\");\n if (numStr === \".\") numStr = \"0\";\n else if (numStr[0] === \".\") numStr = \"0\" + numStr;\n else if (numStr[numStr.length - 1] === \".\") numStr = numStr.substr(0, numStr.length - 1);\n return numStr;\n }\n return numStr;\n }\n strnum = toNumber;\n return strnum;\n}\nvar ignoreAttributes;\nvar hasRequiredIgnoreAttributes;\nfunction requireIgnoreAttributes() {\n if (hasRequiredIgnoreAttributes) return ignoreAttributes;\n hasRequiredIgnoreAttributes = 1;\n function getIgnoreAttributesFn(ignoreAttributes2) {\n if (typeof ignoreAttributes2 === \"function\") {\n return ignoreAttributes2;\n }\n if (Array.isArray(ignoreAttributes2)) {\n return (attrName) => {\n for (const pattern of ignoreAttributes2) {\n if (typeof pattern === \"string\" && attrName === pattern) {\n return true;\n }\n if (pattern instanceof RegExp && pattern.test(attrName)) {\n return true;\n }\n }\n };\n }\n return () => false;\n }\n ignoreAttributes = getIgnoreAttributesFn;\n return ignoreAttributes;\n}\nvar OrderedObjParser_1;\nvar hasRequiredOrderedObjParser;\nfunction requireOrderedObjParser() {\n if (hasRequiredOrderedObjParser) return OrderedObjParser_1;\n hasRequiredOrderedObjParser = 1;\n const util2 = requireUtil();\n const xmlNode2 = requireXmlNode();\n const readDocType = requireDocTypeReader();\n const toNumber = requireStrnum();\n const getIgnoreAttributesFn = requireIgnoreAttributes();\n class OrderedObjParser {\n constructor(options) {\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n \"quot\": { regex: /&(quot|#34|#x22);/g, val: '\"' }\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\": { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 16)) }\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n }\n }\n function addExternalEntities(externalEntities) {\n const entKeys = Object.keys(externalEntities);\n for (let i2 = 0; i2 < entKeys.length; i2++) {\n const ent = entKeys[i2];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\" + ent + \";\", \"g\"),\n val: externalEntities[ent]\n };\n }\n }\n function parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== void 0) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if (val.length > 0) {\n if (!escapeEntities) val = this.replaceEntitiesValue(val);\n const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if (newval === null || newval === void 0) {\n return val;\n } else if (typeof newval !== typeof val || newval !== val) {\n return newval;\n } else if (this.options.trimValues) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n const trimmedVal = val.trim();\n if (trimmedVal === val) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n return val;\n }\n }\n }\n }\n }\n function resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(\":\");\n const prefix = tagname.charAt(0) === \"/\" ? \"/\" : \"\";\n if (tags[0] === \"xmlns\") {\n return \"\";\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n }\n const attrsRegx = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\n function buildAttributesMap(attrStr, jPath, tagName) {\n if (this.options.ignoreAttributes !== true && typeof attrStr === \"string\") {\n const matches = util2.getAllMatches(attrStr, attrsRegx);\n const len = matches.length;\n const attrs = {};\n for (let i2 = 0; i2 < len; i2++) {\n const attrName = this.resolveNameSpace(matches[i2][1]);\n if (this.ignoreAttributesFn(attrName, jPath)) {\n continue;\n }\n let oldVal = matches[i2][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if (aName === \"__proto__\") aName = \"#__proto__\";\n if (oldVal !== void 0) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if (newVal === null || newVal === void 0) {\n attrs[aName] = oldVal;\n } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n attrs[aName] = newVal;\n } else {\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n }\n const parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n const xmlObj = new xmlNode2(\"!xml\");\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for (let i2 = 0; i2 < xmlData.length; i2++) {\n const ch = xmlData[i2];\n if (ch === \"<\") {\n if (xmlData[i2 + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i2, \"Closing Tag is not closed.\");\n let tagName = xmlData.substring(i2 + 2, closeIndex).trim();\n if (this.options.removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n }\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode) {\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n const lastTagName = jPath.substring(jPath.lastIndexOf(\".\") + 1);\n if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n }\n let propIndex = 0;\n if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n propIndex = jPath.lastIndexOf(\".\", jPath.lastIndexOf(\".\") - 1);\n this.tagsNodeStack.pop();\n } else {\n propIndex = jPath.lastIndexOf(\".\");\n }\n jPath = jPath.substring(0, propIndex);\n currentNode = this.tagsNodeStack.pop();\n textData = \"\";\n i2 = closeIndex;\n } else if (xmlData[i2 + 1] === \"?\") {\n let tagData = readTagExp(xmlData, i2, false, \"?>\");\n if (!tagData) throw new Error(\"Pi Tag is not closed.\");\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if (this.options.ignoreDeclaration && tagData.tagName === \"?xml\" || this.options.ignorePiTags) ;\n else {\n const childNode = new xmlNode2(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n }\n i2 = tagData.closeIndex + 1;\n } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n const endIndex = findClosingIndex(xmlData, \"-->\", i2 + 4, \"Comment is not closed.\");\n if (this.options.commentPropName) {\n const comment = xmlData.substring(i2 + 4, endIndex - 2);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n }\n i2 = endIndex;\n } else if (xmlData.substr(i2 + 1, 2) === \"!D\") {\n const result = readDocType(xmlData, i2);\n this.docTypeEntities = result.entities;\n i2 = result.i;\n } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i2 + 9, closeIndex);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n if (val == void 0) val = \"\";\n if (this.options.cdataPropName) {\n currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n } else {\n currentNode.add(this.options.textNodeName, val);\n }\n i2 = closeIndex + 2;\n } else {\n let result = readTagExp(xmlData, i2, this.options.removeNSPrefix);\n let tagName = result.tagName;\n const rawTagName = result.rawTagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode && textData) {\n if (currentNode.tagname !== \"!xml\") {\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n const lastTag = currentNode;\n if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n currentNode = this.tagsNodeStack.pop();\n jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n }\n if (tagName !== xmlObj.tagname) {\n jPath += jPath ? \".\" + tagName : tagName;\n }\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n let tagContent = \"\";\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n i2 = result.closeIndex;\n } else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n i2 = result.closeIndex;\n } else {\n const result2 = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n if (!result2) throw new Error(`Unexpected end of ${rawTagName}`);\n i2 = result2.i;\n tagContent = result2.tagContent;\n }\n const childNode = new xmlNode2(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n if (tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n this.addChild(currentNode, childNode, jPath);\n } else {\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n const childNode = new xmlNode2(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n } else {\n const childNode = new xmlNode2(tagName);\n this.tagsNodeStack.push(currentNode);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n currentNode = childNode;\n }\n textData = \"\";\n i2 = closeIndex;\n }\n }\n } else {\n textData += xmlData[i2];\n }\n }\n return xmlObj.child;\n };\n function addChild(currentNode, childNode, jPath) {\n const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"]);\n if (result === false) ;\n else if (typeof result === \"string\") {\n childNode.tagname = result;\n currentNode.addChild(childNode);\n } else {\n currentNode.addChild(childNode);\n }\n }\n const replaceEntitiesValue = function(val) {\n if (this.options.processEntities) {\n for (let entityName in this.docTypeEntities) {\n const entity = this.docTypeEntities[entityName];\n val = val.replace(entity.regx, entity.val);\n }\n for (let entityName in this.lastEntities) {\n const entity = this.lastEntities[entityName];\n val = val.replace(entity.regex, entity.val);\n }\n if (this.options.htmlEntities) {\n for (let entityName in this.htmlEntities) {\n const entity = this.htmlEntities[entityName];\n val = val.replace(entity.regex, entity.val);\n }\n }\n val = val.replace(this.ampEntity.regex, this.ampEntity.val);\n }\n return val;\n };\n function saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) {\n if (isLeafNode === void 0) isLeafNode = Object.keys(currentNode.child).length === 0;\n textData = this.parseTextData(\n textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode\n );\n if (textData !== void 0 && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n }\n function isItStopNode(stopNodes, jPath, currentTagName) {\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if (allNodesExp === stopNodeExp || jPath === stopNodeExp) return true;\n }\n return false;\n }\n function tagExpWithClosingIndex(xmlData, i2, closingChar = \">\") {\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i2; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if (closingChar[1]) {\n if (xmlData[index + 1] === closingChar[1]) {\n return {\n data: tagExp,\n index\n };\n }\n } else {\n return {\n data: tagExp,\n index\n };\n }\n } else if (ch === \"\t\") {\n ch = \" \";\n }\n tagExp += ch;\n }\n }\n function findClosingIndex(xmlData, str, i2, errMsg) {\n const closingIndex = xmlData.indexOf(str, i2);\n if (closingIndex === -1) {\n throw new Error(errMsg);\n } else {\n return closingIndex + str.length - 1;\n }\n }\n function readTagExp(xmlData, i2, removeNSPrefix, closingChar = \">\") {\n const result = tagExpWithClosingIndex(xmlData, i2 + 1, closingChar);\n if (!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if (separatorIndex !== -1) {\n tagName = tagExp.substring(0, separatorIndex);\n tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n }\n const rawTagName = tagName;\n if (removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n return {\n tagName,\n tagExp,\n closeIndex,\n attrExpPresent,\n rawTagName\n };\n }\n function readStopNodeData(xmlData, tagName, i2) {\n const startIndex = i2;\n let openTagCount = 1;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n if (xmlData[i2 + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i2, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i2 + 2, closeIndex).trim();\n if (closeTagName === tagName) {\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i2),\n i: closeIndex\n };\n }\n }\n i2 = closeIndex;\n } else if (xmlData[i2 + 1] === \"?\") {\n const closeIndex = findClosingIndex(xmlData, \"?>\", i2 + 1, \"StopNode is not closed.\");\n i2 = closeIndex;\n } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n const closeIndex = findClosingIndex(xmlData, \"-->\", i2 + 3, \"StopNode is not closed.\");\n i2 = closeIndex;\n } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"StopNode is not closed.\") - 2;\n i2 = closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i2, \">\");\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n openTagCount++;\n }\n i2 = tagData.closeIndex;\n }\n }\n }\n }\n }\n function parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === \"string\") {\n const newval = val.trim();\n if (newval === \"true\") return true;\n else if (newval === \"false\") return false;\n else return toNumber(val, options);\n } else {\n if (util2.isExist(val)) {\n return val;\n } else {\n return \"\";\n }\n }\n }\n OrderedObjParser_1 = OrderedObjParser;\n return OrderedObjParser_1;\n}\nvar node2json = {};\nvar hasRequiredNode2json;\nfunction requireNode2json() {\n if (hasRequiredNode2json) return node2json;\n hasRequiredNode2json = 1;\n function prettify(node, options) {\n return compress(node, options);\n }\n function compress(arr, options, jPath) {\n let text;\n const compressedObj = {};\n for (let i2 = 0; i2 < arr.length; i2++) {\n const tagObj = arr[i2];\n const property = propName(tagObj);\n let newJpath = \"\";\n if (jPath === void 0) newJpath = property;\n else newJpath = jPath + \".\" + property;\n if (property === options.textNodeName) {\n if (text === void 0) text = tagObj[property];\n else text += \"\" + tagObj[property];\n } else if (property === void 0) {\n continue;\n } else if (tagObj[property]) {\n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n if (tagObj[\":@\"]) {\n assignAttributes(val, tagObj[\":@\"], newJpath, options);\n } else if (Object.keys(val).length === 1 && val[options.textNodeName] !== void 0 && !options.alwaysCreateTextNode) {\n val = val[options.textNodeName];\n } else if (Object.keys(val).length === 0) {\n if (options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n if (compressedObj[property] !== void 0 && compressedObj.hasOwnProperty(property)) {\n if (!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [compressedObj[property]];\n }\n compressedObj[property].push(val);\n } else {\n if (options.isArray(property, newJpath, isLeaf)) {\n compressedObj[property] = [val];\n } else {\n compressedObj[property] = val;\n }\n }\n }\n }\n if (typeof text === \"string\") {\n if (text.length > 0) compressedObj[options.textNodeName] = text;\n } else if (text !== void 0) compressedObj[options.textNodeName] = text;\n return compressedObj;\n }\n function propName(obj) {\n const keys = Object.keys(obj);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n if (key !== \":@\") return key;\n }\n }\n function assignAttributes(obj, attrMap, jpath, options) {\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length;\n for (let i2 = 0; i2 < len; i2++) {\n const atrrName = keys[i2];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [attrMap[atrrName]];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n }\n function isLeafTag(obj, options) {\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n if (propCount === 0) {\n return true;\n }\n if (propCount === 1 && (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)) {\n return true;\n }\n return false;\n }\n node2json.prettify = prettify;\n return node2json;\n}\nvar XMLParser_1;\nvar hasRequiredXMLParser;\nfunction requireXMLParser() {\n if (hasRequiredXMLParser) return XMLParser_1;\n hasRequiredXMLParser = 1;\n const { buildOptions } = requireOptionsBuilder();\n const OrderedObjParser = requireOrderedObjParser();\n const { prettify } = requireNode2json();\n const validator2 = requireValidator();\n class XMLParser {\n constructor(options) {\n this.externalEntities = {};\n this.options = buildOptions(options);\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData, validationOption) {\n if (typeof xmlData === \"string\") ;\n else if (xmlData.toString) {\n xmlData = xmlData.toString();\n } else {\n throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n }\n if (validationOption) {\n if (validationOption === true) validationOption = {};\n const result = validator2.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`);\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if (this.options.preserveOrder || orderedResult === void 0) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value) {\n if (value.indexOf(\"&\") !== -1) {\n throw new Error(\"Entity value can't have '&'\");\n } else if (key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1) {\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\");\n } else if (value === \"&\") {\n throw new Error(\"An entity with value '&' is not permitted\");\n } else {\n this.externalEntities[key] = value;\n }\n }\n }\n XMLParser_1 = XMLParser;\n return XMLParser_1;\n}\nvar orderedJs2Xml;\nvar hasRequiredOrderedJs2Xml;\nfunction requireOrderedJs2Xml() {\n if (hasRequiredOrderedJs2Xml) return orderedJs2Xml;\n hasRequiredOrderedJs2Xml = 1;\n const EOL = \"\\n\";\n function toXml(jArray, options) {\n let indentation = \"\";\n if (options.format && options.indentBy.length > 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n }\n function arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n for (let i2 = 0; i2 < arr.length; i2++) {\n const tagObj = arr[i2];\n const tagName = propName(tagObj);\n if (tagName === void 0) continue;\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName;\n else newJPath = `${jPath}.${tagName}`;\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr2 = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\";\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr2}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n xmlStr += indentation + options.indentBy + tagValue + indentation;\n } else {\n xmlStr += tagValue;\n }\n xmlStr += `</${tagName}>`;\n }\n isPreviousElementTag = true;\n }\n return xmlStr;\n }\n function propName(obj) {\n const keys = Object.keys(obj);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n if (!obj.hasOwnProperty(key)) continue;\n if (key !== \":@\") return key;\n }\n }\n function attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n if (!attrMap.hasOwnProperty(attr)) continue;\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n }\n function isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n }\n function replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i2 = 0; i2 < options.entities.length; i2++) {\n const entity = options.entities[i2];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n }\n orderedJs2Xml = toXml;\n return orderedJs2Xml;\n}\nvar json2xml;\nvar hasRequiredJson2xml;\nfunction requireJson2xml() {\n if (hasRequiredJson2xml) return json2xml;\n hasRequiredJson2xml = 1;\n const buildFromOrderedJs = requireOrderedJs2Xml();\n const getIgnoreAttributesFn = requireIgnoreAttributes();\n const defaultOptions = {\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: \" \",\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a2) {\n return a2;\n },\n attributeValueProcessor: function(attrName, a2) {\n return a2;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },\n //it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n { regex: new RegExp(\"'\", \"g\"), val: \"&apos;\" },\n { regex: new RegExp('\"', \"g\"), val: \"&quot;\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n };\n function Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n this.isAttribute = function() {\n return false;\n };\n } else {\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n this.processTextOrObjNode = processTextOrObjNode;\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = \">\\n\";\n this.newLine = \"\\n\";\n } else {\n this.indentate = function() {\n return \"\";\n };\n this.tagEndChar = \">\";\n this.newLine = \"\";\n }\n }\n Builder.prototype.build = function(jObj) {\n if (this.options.preserveOrder) {\n return buildFromOrderedJs(jObj, this.options);\n } else {\n if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) {\n jObj = {\n [this.options.arrayNodeName]: jObj\n };\n }\n return this.j2x(jObj, 0, []).val;\n }\n };\n Builder.prototype.j2x = function(jObj, level, ajPath) {\n let attrStr = \"\";\n let val = \"\";\n const jPath = ajPath.join(\".\");\n for (let key in jObj) {\n if (!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n if (typeof jObj[key] === \"undefined\") {\n if (this.isAttribute(key)) {\n val += \"\";\n }\n } else if (jObj[key] === null) {\n if (this.isAttribute(key)) {\n val += \"\";\n } else if (key[0] === \"?\") {\n val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n } else {\n val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n }\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, \"\", level);\n } else if (typeof jObj[key] !== \"object\") {\n const attr = this.isAttribute(key);\n if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n attrStr += this.buildAttrPairStr(attr, \"\" + jObj[key]);\n } else if (!attr) {\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, \"\" + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, \"\", level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n let listTagAttr = \"\";\n for (let j2 = 0; j2 < arrLen; j2++) {\n const item = jObj[key][j2];\n if (typeof item === \"undefined\") ;\n else if (item === null) {\n if (key[0] === \"?\") val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n else val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n } else if (typeof item === \"object\") {\n if (this.options.oneListGroup) {\n const result = this.j2x(item, level + 1, ajPath.concat(key));\n listTagVal += result.val;\n if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n listTagAttr += result.attrStr;\n }\n } else {\n listTagVal += this.processTextOrObjNode(item, key, level, ajPath);\n }\n } else {\n if (this.options.oneListGroup) {\n let textValue = this.options.tagValueProcessor(key, item);\n textValue = this.replaceEntitiesValue(textValue);\n listTagVal += textValue;\n } else {\n listTagVal += this.buildTextValNode(item, key, \"\", level);\n }\n }\n }\n if (this.options.oneListGroup) {\n listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n }\n val += listTagVal;\n } else {\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j2 = 0; j2 < L; j2++) {\n attrStr += this.buildAttrPairStr(Ks[j2], \"\" + jObj[key][Ks[j2]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level, ajPath);\n }\n }\n }\n return { attrStr, val };\n };\n Builder.prototype.buildAttrPairStr = function(attrName, val) {\n val = this.options.attributeValueProcessor(attrName, \"\" + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return \" \" + attrName;\n } else return \" \" + attrName + '=\"' + val + '\"';\n };\n function processTextOrObjNode(object, key, level, ajPath) {\n const result = this.j2x(object, level + 1, ajPath.concat(key));\n if (object[this.options.textNodeName] !== void 0 && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n }\n Builder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if (val === \"\") {\n if (key[0] === \"?\") return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n else {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n } else {\n let tagEndExp = \"</\" + key + this.tagEndChar;\n let piClosingChar = \"\";\n if (key[0] === \"?\") {\n piClosingChar = \"?\";\n tagEndExp = \"\";\n }\n if ((attrStr || attrStr === \"\") && val.indexOf(\"<\") === -1) {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + \">\" + val + tagEndExp;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + this.tagEndChar + val + this.indentate(level) + tagEndExp;\n }\n }\n };\n Builder.prototype.closeTag = function(key) {\n let closeTag = \"\";\n if (this.options.unpairedTags.indexOf(key) !== -1) {\n if (!this.options.suppressUnpairedNode) closeTag = \"/\";\n } else if (this.options.suppressEmptyNode) {\n closeTag = \"/\";\n } else {\n closeTag = `></${key}`;\n }\n return closeTag;\n };\n Builder.prototype.buildTextValNode = function(val, key, attrStr, level) {\n if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n return this.indentate(level) + `<![CDATA[${val}]]>` + this.newLine;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n } else if (key[0] === \"?\") {\n return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n } else {\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n if (textValue === \"\") {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + \">\" + textValue + \"</\" + key + this.tagEndChar;\n }\n }\n };\n Builder.prototype.replaceEntitiesValue = function(textValue) {\n if (textValue && textValue.length > 0 && this.options.processEntities) {\n for (let i2 = 0; i2 < this.options.entities.length; i2++) {\n const entity = this.options.entities[i2];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n };\n function indentate(level) {\n return this.options.indentBy.repeat(level);\n }\n function isAttribute(name) {\n if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n return name.substr(this.attrPrefixLen);\n } else {\n return false;\n }\n }\n json2xml = Builder;\n return json2xml;\n}\nvar fxp;\nvar hasRequiredFxp;\nfunction requireFxp() {\n if (hasRequiredFxp) return fxp;\n hasRequiredFxp = 1;\n const validator2 = requireValidator();\n const XMLParser = requireXMLParser();\n const XMLBuilder = requireJson2xml();\n fxp = {\n XMLParser,\n XMLValidator: validator2,\n XMLBuilder\n };\n return fxp;\n}\nvar fxpExports = requireFxp();\nfunction isSvg(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n }\n string = string.trim();\n if (string.length === 0) {\n return false;\n }\n if (fxpExports.XMLValidator.validate(string) !== true) {\n return false;\n }\n let jsonObject;\n const parser = new fxpExports.XMLParser();\n try {\n jsonObject = parser.parse(string);\n } catch {\n return false;\n }\n if (!jsonObject) {\n return false;\n }\n if (!Object.keys(jsonObject).some((x) => x.toLowerCase() === \"svg\")) {\n return false;\n }\n return true;\n}\nclass View {\n _view;\n constructor(view) {\n isValidView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n get loadChildViews() {\n return this._view.loadChildViews;\n }\n}\nconst isValidView = function(view) {\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n if (\"caption\" in view && typeof view.caption !== \"string\") {\n throw new Error(\"View caption must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (\"order\" in view && typeof view.order !== \"number\") {\n throw new Error(\"View order must be a number\");\n }\n if (view.columns) {\n view.columns.forEach((column) => {\n if (!(column instanceof Column)) {\n throw new Error(\"View columns must be an array of Column. Invalid column found\");\n }\n });\n }\n if (view.emptyView && typeof view.emptyView !== \"function\") {\n throw new Error(\"View emptyView must be a function\");\n }\n if (view.parent && typeof view.parent !== \"string\") {\n throw new Error(\"View parent must be a string\");\n }\n if (\"sticky\" in view && typeof view.sticky !== \"boolean\") {\n throw new Error(\"View sticky must be a boolean\");\n }\n if (\"expanded\" in view && typeof view.expanded !== \"boolean\") {\n throw new Error(\"View expanded must be a boolean\");\n }\n if (view.defaultSortKey && typeof view.defaultSortKey !== \"string\") {\n throw new Error(\"View defaultSortKey must be a string\");\n }\n if (view.loadChildViews && typeof view.loadChildViews !== \"function\") {\n throw new Error(\"View loadChildViews must be a function\");\n }\n return true;\n};\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const t2 = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t2[name] = index;\n src[index] = value;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t2.NUMERICIDENTIFIER]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t2.NUMERICIDENTIFIERLOOSE]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t2.BUILDIDENTIFIER]}(?:\\\\.${src[t2.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`);\n createToken(\"FULL\", `^${src[t2.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t2.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t2.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t2.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t2.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t2.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t2.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t2.GTLT]}\\\\s*(${src[t2.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t2.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t2.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t: t2 } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m2 = version.trim().match(options.loose ? re2[t2.LOOSE] : re2[t2.FULL]);\n if (!m2) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m2[1];\n this.minor = +m2[2];\n this.patch = +m2[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m2[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m2[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m2[5] ? m2[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i2 = 0;\n do {\n const a2 = this.prerelease[i2];\n const b2 = other.prerelease[i2];\n debug(\"prerelease compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i2 = 0;\n do {\n const a2 = this.build[i2];\n const b2 = other.build[i2];\n debug(\"build compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i2 = this.prerelease.length;\n while (--i2 >= 0) {\n if (typeof this.prerelease[i2] === \"number\") {\n this.prerelease[i2]++;\n i2 = -2;\n }\n }\n if (i2 === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, event) {\n this.bus.emit(name, event);\n }\n}\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h2) => h2 !== handler)\n );\n }\n emit(name, event) {\n (this.handlers.get(name) || []).forEach((h2) => {\n try {\n h2(event);\n } catch (e2) {\n console.error(\"could not invoke event listener\", e2);\n }\n });\n }\n}\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, event) {\n getBus().emit(name, event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\n}\nconst addNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n};\nconst removeNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n};\nconst getNewFileMenuEntries = function(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a2, b2) => {\n if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n return a2.order - b2.order;\n }\n return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n};\nexport {\n Column,\n DefaultType,\n q as File,\n FileAction,\n FileListAction,\n FileListFilter,\n F as FileType,\n FilesSortingMode,\n s as Folder,\n Header,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n N as Node,\n t as NodeStatus,\n P as Permission,\n View,\n addNewFileMenuEntry,\n c as davGetClient,\n l as davGetDefaultPropfind,\n m as davGetFavoritesReport,\n n as davGetRecentSearch,\n a as davGetRemoteURL,\n g as davGetRootPath,\n p as davParsePermissions,\n b as davRemoteURL,\n r as davResultToNode,\n d as davRootPath,\n h as defaultDavNamespaces,\n f as defaultDavProperties,\n formatFileSize,\n k as getDavNameSpaces,\n j as getDavProperties,\n e as getFavoriteNodes,\n getFileActions,\n getFileListActions,\n getFileListFilters,\n getFileListHeaders,\n getNavigation,\n getNewFileMenuEntries,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n i as registerDavProperty,\n registerFileAction,\n registerFileListAction,\n registerFileListFilter,\n registerFileListHeaders,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateFilename\n};\n"],"names":["module","exports","commonjsRequire","Error","qrcode","fn","createCommonjsModule","f","r","e","n","t","o","i","u","a","code","p","call","length","require","Promise","prototype","then","getSymbolSize","getRowColCoords","version","posCount","Math","floor","size","intervals","ceil","positions","push","reverse","getPositions","coords","pos","posLength","j","Mode","ALPHA_NUM_CHARS","AlphanumericData","data","this","mode","ALPHANUMERIC","getBitsLength","getLength","write","bitBuffer","value","indexOf","put","BitBuffer","buffer","get","index","bufIndex","num","putBit","getLengthInBits","bit","BufferUtil","BitMatrix","alloc","reservedBit","set","row","col","reserved","xor","isReserved","ByteData","BYTE","from","l","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","isValid","level","defaultValue","string","toLowerCase","fromString","Utils","G15_BCH","getBCHDigit","getEncodedBits","mask","d","EXP_TABLE","LOG_TABLE","x","log","exp","mul","y","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","getMaskAt","maskPattern","isNaN","parseInt","undefined","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","last","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","abs","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","Object","keys","bestPattern","lowerPenalty","Infinity","penalty","VersionCheck","Regex","NUMERIC","id","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","toString","NumericData","group","substr","remainingNum","GF","p1","p2","coeff","mod","divident","divisor","result","offset","slice","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","isArray","setupFormatInfo","matrix","bits","createData","segments","forEach","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","Array","ecData","maxDataSize","b","dataSize","encode","max","createCodewords","createSymbol","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","moduleCount","modules","c","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","dark","setupData","bind","create","options","toSJISFunc","setToSJISFunction","Polynomial","Buffer","genPoly","initialize","pad","paddedData","concat","remainder","start","buff","copy","numeric","kanji","byte","replace","RegExp","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","str","test","dijkstra","getStringByteLength","unescape","encodeURIComponent","getSegments","regex","exec","getSegmentsFromString","byteSegs","kanjiSegs","numSegs","alphaNumSegs","isKanjiModeEnabled","sort","s1","s2","map","obj","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","array","reduce","acc","seg","graph","nodes","table","prevNodeIds","nodeGroup","currentNodeIds","node","key","lastCount","prevNodeId","buildGraph","segs","buildNodes","path","find_path","optimizedSegs","curr","prevSeg","toSJISFunction","CODEWORDS_COUNT","digit","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","text","opts","cb","args","arguments","argsNum","isLastArgCb","getContext","resolve","reject","toCanvas","render","toDataURL","renderToDataURL","_","qrData","canvasEl","document","createElement","getCanvasElement","getOptions","getImageWidth","ctx","image","createImageData","qrToImageData","clearRect","width","height","style","clearCanvas","putImageData","type","rendererOpts","quality","getColorAttrib","color","attrib","alpha","hex","toFixed","svgCmd","cmd","qrcodesize","margin","bg","light","moveBy","newRow","lineLength","qrToPath","viewBox","svgTag","hex2rgba","hexCode","split","apply","hexValue","join","g","scale","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","TYPED_ARRAY_SUPPORT","arr","Uint8Array","__proto__","foo","typedArraySupport","K_MAX_LENGTH","arg","allocUnsafe","that","TypeError","ArrayBuffer","byteOffset","byteLength","RangeError","buf","fromArrayLike","fromArrayBuffer","createBuffer","actual","isBuffer","len","checked","val","fromObject","utf8ToBytes","units","codePoint","leadSurrogate","bytes","charCodeAt","isView","Symbol","species","defineProperty","configurable","enumerable","writable","isFinite","remaining","src","dst","blitBuffer","utf8Write","end","newBuf","subarray","sliceLen","target","targetStart","fill","list","_isBuffer","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","lookup","output","base64","ieee754","customInspectSymbol","for","SlowBuffer","INSPECT_MAX_BYTES","setPrototypeOf","encodingOrOffset","encoding","isEncoding","isInstance","valueOf","numberIsNaN","toPrimitive","assertSize","mustMatch","loweredCase","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","hexWrite","Number","strLen","parsed","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","hi","lo","utf16leToBytes","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","kMaxLength","proto","console","error","poolSize","allocUnsafeSlow","compare","swap16","swap32","swap64","toLocaleString","equals","inspect","trim","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","_arr","ret","out","hexSliceLookupTable","checkOffset","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","copyWithin","INVALID_BASE64_RE","base64clean","constructor","name","alphabet","i16","single_source_shortest_paths","s","predecessors","costs","closest","v","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","open","PriorityQueue","make","empty","pop","cost","hasOwnProperty","msg","extract_shortest_path_from_predecessor_list","T","queue","sorter","default_sorter","item","shift","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","props","tag","default","$slots","watch","$props","deep","immediate","handler","$el","generate","methods","_this","url","innerHTML","mounted","factory","___CSS_LOADER_EXPORT___","self","ampersandTest","nativeURLSearchParams","URLSearchParams","isSupportObjectConstructor","decodesPlusesCorrectly","isSupportSize","__URLSearchParams__","encodesAmpersandsCorrectly","append","URLSearchParamsPolyfill","iterable","iterator","appendTo","dict","has","getAll","query","propValue","useProxy","Proxy","construct","Function","USPProto","polyfill","toStringTag","callback","thisArg","parseToDict","getOwnPropertyNames","k","values","items","makeIterator","entries","prev","cur","search","match","decode","decodeURIComponent","next","done","pairs","JSON","stringify","prop","window","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","global","freeSelf","Date","now","reWhitespace","reTrimStart","charAt","objectProto","nativeObjectToString","symToStringTag","isOwn","unmasked","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","other","isBinary","nativeMax","nativeMin","service","http","listCollection","collectionId","renameCollection","collectionName","ocs","getCollectionsByResource","resourceType","resourceId","createCollection","post","response","addResource","removeResource","delete","params","state","collections","mutations","addCollections","addCollection","collection","removeCollection","filter","updateCollection","findIndex","_item","actions","fetchCollectionsByResource","baseResourceType","baseResourceId","addResourceToCollection","resources","normalizeComponent","scriptExports","render3","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","CollectionListItem","components","NcAvatar","NcActions","NcActionButton","detailsOpen","newName","computed","getIcon","resource","iconClass","typeClass","limitedResources","iconUrl","mimetype","OC","MimeType","getIconUrl","toggleDetails","showDetails","hideDetails","openRename","catch","$set","setTimeout","_vm","_c","_self","staticClass","attrs","on","_v","_s","class","rename","$event","preventDefault","directives","rawName","expression","domProps","composing","_e","_l","link","_debouncedSearch","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","clearTimeout","cancel","flush","loading","searchCollections","finally","_sfc_main","NcSelect","isActive","Boolean","setup","selectIsOpen","generatingCodes","codes","model","isSelectOpen","find","placeholder","OCP","Collaboration","getTypes","method","title","getLabel","action","trigger","select","selectedOption","id2","setError","showSelect","$refs","focus","hideSelect","isVueComponent","object","_isVue","CollectionList","_m","ref","scopedSlots","_u","option","$$v","Config","_defineProperty","_capabilities","getCapabilities","defaultPermissions","files_sharing","default_permissions","isPublicUploadEnabled","public","upload","federatedShareDocLink","appConfig","core","federatedCloudShareDoc","defaultExpirationDate","isDefaultExpireDateEnabled","defaultExpireDate","setDate","getDate","defaultInternalExpirationDate","isDefaultInternalExpireDateEnabled","defaultInternalExpireDate","defaultRemoteExpirationDateString","isDefaultRemoteExpireDateEnabled","defaultRemoteExpireDate","enforcePasswordForPublicLink","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","defaultExpireDateEnabled","isDefaultInternalExpireDateEnforced","defaultInternalExpireDateEnforced","defaultInternalExpireDateEnabled","isDefaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isPublicShareAllowed","enabled","isMailShareAllowed","sharebymail","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","password","enforced","shouldAlwaysShowUnique","sharee","always_show_unique","allowGroupSharing","maxAutocompleteResults","config","minSearchStringLength","passwordPolicy","password_policy","allowCustomTokens","custom_tokens","getLoggerBuilder","setApp","detectUser","build","Share","ocsData","hide_download","mail_send","attributes","parse","warn","_share","share_type","permissions","owner","uid_owner","ownerDisplayName","displayname_owner","shareWith","share_with","shareWithDisplayName","share_with_displayname","shareWithDisplayNameUnique","share_with_displayname_unique","shareWithLink","share_with_link","shareWithAvatar","share_with_avatar","uidFileOwner","uid_file_owner","displaynameFileOwner","displayname_file_owner","createdTime","stime","expireDate","expiration","date","token","note","label","mailSend","hideDownload","passwordExpirationTime","password_expiration_time","sendPasswordByTalk","send_password_by_talk","itemType","item_type","fileSource","file_source","fileTarget","file_target","fileParent","file_parent","hasReadPermission","PERMISSION_READ","hasCreatePermission","PERMISSION_CREATE","hasDeletePermission","PERMISSION_DELETE","hasUpdatePermission","PERMISSION_UPDATE","hasSharePermission","PERMISSION_SHARE","hasDownloadPermission","some","attribute","scope","isFileRequest","logger","setAttribute","attrUpdate","attr","splice","canEdit","can_edit","canDelete","can_delete","viaFileid","via_fileid","viaPath","via_path","storageId","storage_id","storage","itemSource","item_source","status","required","subtitle","isUnique","ariaExpanded","ariaExpandedValue","_t","SharingEntrySimple","CheckIcon","ClipboardIcon","fileInfo","copied","copySuccess","internalLink","location","protocol","host","generateUrl","copyLinkTooltip","internalLinkSubtitle","copyLink","navigator","clipboard","writeText","showSuccess","shareEntrySimple","actionsComponent","proxy","shareUrl","generateOcsUrl","createShare","_ref","shareType","publicUpload","request","axios","share","emit","errorMessage","meta","message","Notification","showTemporary","deleteShare","updateShare","properties","openSharingDetails","shareRequestObject","handlerInput","suggestions","externalShareRequestObject","mapShareRequestToShareObject","shareDetails","$emit","openShareDetailsForCustomSettings","setCustomPermissions","is_no_user","isNoUser","user","displayName","mixins","ShareRequests","ShareDetails","shares","linkShares","reshare","canReshare","isExternal","recommendations","ShareSearch","OCA","Sharing","externalResults","results","inputPlaceholder","allowRemoteSharing","isValidQuery","noResultText","getRecommendations","onSelected","asyncFind","debounceGetSuggestions","getSuggestions","query_lookup_default","ShareType","Remote","RemoteGroup","User","Group","Team","Room","Guest","Deck","ScienceMesh","Email","format","perPage","exact","rawExactSuggestions","elem","rawSuggestions","exactSuggestions","filterOutExistingShares","formatForMultiselect","lookupEntry","lookupEnabled","condition","allSuggestions","nameCounts","desc","info","debounce","rawRecommendations","getCurrentUser","uid","sharesObj","shareTypeToIcon","icon","iconTitle","Sciencemesh","subname","server","shareWithDescription","uuid","clear-search-on-blur","ATOMIC_PERMISSIONS","NONE","READ","UPDATE","CREATE","DELETE","SHARE","BUNDLED_PERMISSIONS","READ_ONLY","UPLOAD_AND_UPDATE","FILE_DROP","ALL","ALL_FILE","client","getClient","SharesRequests","errors","saving","updateQueue","PQueue","concurrency","reactiveState","hasNote","dateTomorrow","lang","weekdaysShort","dayNamesShort","monthsShort","monthNamesShort","formatLocale","firstDayOfWeek","firstDay","weekdaysMin","monthFormat","isNewShare","isFolder","isPublicShare","Link","isRemoteShare","isShareOwner","isExpiryDateEnforced","hasCustomPermissions","maxExpirationDateEnforced","getNode","async","propfindPayload","getDefaultPropfind","stat","getRootPath","details","resultToNode","fetchNode","checkShare","expirationDate","formatDateToString","UTC","getFullYear","getMonth","toISOString","onExpirationChange","formattedDate","onNoteChange","onNoteSubmit","newNote","$delete","queueUpdate","onDelete","debug","_len","propertyNames","_key","updatedShare","updateSuccessMessage","onSyncError","showError","names","property","propertyEl","focusable","querySelector","debounceQueueUpdate","NcActionLink","NcActionText","SharesMixin","viaFileTargetUrl","fileid","viaFolderName","basename","initiator","folder","SharingEntryInherited","loaded","showInheritedShares","showInheritedSharesIcon","mainTitle","subTitle","toggleTooltip","fullPath","resetState","toggleInheritedShares","fetchInheritedShares","removeShare","stopPropagation","emits","fillColor","_b","$attrs","DropdownIcon","ariaLabel","canViewText","canEditText","fileDropText","customPermissionsText","preSelectedOption","IconEyeOutline","IconPencil","supportsFileDrop","IconFileUpload","IconTune","dropDownPermissionValue","created","subscribe","unmounted","unsubscribe","selectOption","optionLabel","quickShareActions","menuButton","is","_g","handlers","verbose","api","ratio","passwordSet","crypto","getRandomValues","ExternalShareAction","NcActionCheckbox","NcActionInput","NcActionSeparator","NcDialog","VueQrcode","Tune","IconCalendarBlank","IconQr","ErrorIcon","LockIcon","CloseIcon","PlusIcon","SharingEntryQuickShareSelect","shareCreationComplete","defaultExpirationDateEnabled","pending","ExternalLegacyLinkActions","ExternalLinkActions","ExternalShareActions","showQRCode","isEmailShareType","isPasswordProtected","Vue","GeneratePassword","expirationTime","moment","diff","fromNow","isTalkEnabled","appswebroots","spreed","isPasswordProtectedByTalkAvailable","isPasswordProtectedByTalk","canTogglePasswordProtectedByTalkAvailable","hasUnsavedPassword","pendingDataIsMissing","pendingPassword","pendingEnforcedPassword","pendingDefaultExpirationDate","pendingEnforcedExpirationDate","isPendingShare","getTime","sharePolicyHasEnforcedProperties","enforcedPropertiesMissing","isPasswordMissing","isExpireDateMissing","newPassword","shareLink","baseURL","getBaseUrl","actionsTooltip","externalLegacyLinkActions","externalLinkActions","advanced","isPasswordPolicyEnabled","canChangeHideDownload","shareAttributes","shareAttribute","shareRequiresReview","shareReviewComplete","onNewLinkShare","shareDefaults","component","pushNewLinkShare","update","newShare","copyButton","onPasswordChange","onPasswordDisable","onPasswordSubmit","onPasswordProtectedByTalkChange","onMenuClose","onExpirationDateToggleUpdate","expirationDateChanged","event","onCancel","SharingEntryLink","minLength","actionIndex","canLinkShare","hasLinkShares","hasShares","addShare","awaitForShare","$nextTick","$children","NcButton","DotsHorizontalIcon","tooltip","hasStatus","SharingEntry","NcCheckboxRadioSwitch","NcDateTimePickerNative","NcInputField","NcLoadingIcon","NcPasswordField","NcTextArea","CircleIcon","EditIcon","LinkIcon","GroupIcon","ShareIcon","UserIcon","UploadIcon","ViewIcon","MenuDownIcon","MenuUpIcon","Refresh","shareRequestValue","writeNoteToRecipientIsChecked","sharingPermission","revertSharingPermission","passwordError","advancedSectionAccordionExpanded","bundledPermissions","isFirstComponentLoad","creating","initialToken","loadingToken","userName","email","updateAtomicPermissions","isEditChecked","canCreate","isCreateChecked","isDeleteChecked","isReshareChecked","showInGridView","getShareAttribute","setShareAttribute","canDownload","hasRead","isReadChecked","hasExpirationDate","isValidShareAttribute","defaultExpiryDate","isSetDownloadButtonVisible","isPasswordEnforced","isGroupShare","isUserShare","allowsFileDrop","hasFileDropPermissions","shareButtonText","resharingIsPossible","canSetEdit","sharePermissions","canSetCreate","canSetDelete","canSetReshare","canSetDownload","canRemoveReadPermission","customPermissionsList","translatedPermissions","permission","hasPermissions","initialPermissionSet","permissionsToCheck","toLocaleLowerCase","getLanguage","advancedControlExpandedValue","errorPasswordLabel","passwordHint","isChecked","beforeMount","initializePermissions","initializeAttributes","quickPermissions","fallback","generateNewToken","generateToken","expandCustomPermissions","toggleCustomPermissions","selectedPermission","isCustomPermissions","toDateString","handleShareType","handleDefaultPermissions","handleCustomPermissions","saveShare","permissionsAndAttributes","publicShareAttributes","sharePermissionsSet","incomingShare","allSettled","at","onSave","getShareTypeIcon","EmailIcon","refInFor","InfoIcon","NcPopover","SharingEntryInternal","SharingInherited","SharingInput","SharingLinkList","SharingList","SharingDetailsTab","deleteEvent","expirationInterval","sharedWithMe","sections","ShareTabSections","getSections","projectsEnabled","loadState","showSharingDetailsView","shareDetailsData","returnFocusElement","internalSharesHelpText","externalSharesHelpText","additionalSharesHelpText","isSharedWithMe","getShares","fetchShares","reshares","fetchSharedWithMe","shared_with_me","all","processSharedWithMe","processShares","clearInterval","updateExpirationSubtitle","unix","relativetime","orderBy","_ref2","escape","circle","conversation","shareWithTitle","setInterval","shareOwnerId","shareOwner","unshift","shareList","listComponent","linkShareList","toggleShareDetailsView","eventData","activeElement","classList","className","startsWith","menuId","emptyContentWithSections","section","humanList","humanListBinary","formatFileSize","skipSmallSizes","binaryPrefixes","base1000","order","readableFormat","relativeSize","parseFloat","identifiers2","orders","sorting","collator","Intl","Collator","usage","a2","b2","identifier","sortNodes","sortingOptions","sortingMode","sortingOrder","sortFavoritesFirst","favorite","sortFoldersFirst","basename2","displayname","hasRequiredUtil","hasRequiredValidator","validator","util","requireUtil","nameStartChar","nameRegexp","regexName","isExist","isEmptyObject","merge","arrayMode","i2","getValue","isName","getAllMatches","matches","allmatches","startIndex","lastIndex","requireValidator","util2","defaultOptions","allowBooleanAttributes","unpairedTags","isWhiteSpace","char","readPI","xmlData","tagname","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","assign","tags","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","substring","readAttributeStr","attrStr","attrStrStart","validateAttributeString","line","tagClosed","otg","openPos","afterAmp","validateAmpersand","t2","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re2","validateNumberAmpersand","count","lineNumber","lines","hasRequiredOptionsBuilder","xmlNode","hasRequiredXmlNode","DocTypeReader","hasRequiredDocTypeReader","strnum","hasRequiredStrnum","ignoreAttributes","hasRequiredIgnoreAttributes","OrderedObjParser_1","hasRequiredOrderedObjParser","OptionsBuilder","requireIgnoreAttributes","ignoreAttributes2","hasRequiredNode2json","XMLParser_1","hasRequiredXMLParser","orderedJs2Xml","hasRequiredOrderedJs2Xml","json2xml","hasRequiredJson2xml","fxp","hasRequiredFxp","debug_1","hasRequiredDebug","constants","hasRequiredConstants","node2json","requireNode2json","compress","jPath","compressedObj","tagObj","propName","newJpath","textNodeName","isLeaf","isLeafTag","assignAttributes","alwaysCreateTextNode","attrMap","jpath","atrrName","propCount","prettify","requireXMLParser","buildOptions","preserveOrder","attributeNamePrefix","attributesGroupName","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","requireOptionsBuilder","OrderedObjParser","xmlNode2","child","addChild","readDocType","readEntityExp","entityName","isEntity","isElement","isAttlist","isNotation","validateEntityName","entities","hasBody","comment","regx","requireDocTypeReader","toNumber","hexRegex","numRegex","consider","decimalPoint","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","requireStrnum","getIgnoreAttributesFn","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","replaceEntitiesValue","newval","parseValue","resolveNameSpace","prefix","attrsRegx","buildAttributesMap","ignoreAttributesFn","oldVal","aName","newVal","attrCollection","parseXml","xmlObj","currentNode","textData","closeIndex","findClosingIndex","colonIndex","saveTextToParentTag","lastTagName","propIndex","tagsNodeStack","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","docTypeEntities","rawTagName","lastTag","isItStopNode","tagContent","result2","readStopNodeData","entity","ampEntity","currentTagName","allNodesExp","stopNodePath","stopNodeExp","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","requireOrderedObjParser","validator2","validationOption","orderedObjParser","orderedResult","addEntity","requireOrderedJs2Xml","arrToStr","indentation","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","endsWith","attrVal","suppressBooleanAttributes","textValue","jArray","requireDebug","process","env","NODE_DEBUG","requireConstants","MAX_SAFE_INTEGER","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","XMLParser","XMLBuilder","buildFromOrderedJs","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","ajPath","j2x","buildTextValNode","buildObjectNode","repeat","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","listTagAttr","j2","Ks","closeTag","tagEndExp","piClosingChar","requireJson2xml","XMLValidator","requireFxp","hasRequiredRe","parseOptions_1","hasRequiredParseOptions","identifiers","hasRequiredIdentifiers","semver","hasRequiredSemver","parse_1","hasRequiredParse","valid_1","hasRequiredValid","major_1","hasRequiredMajor","re","requireSemver","safeRe","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","parseOptions","looseOption","freeze","loose","emptyOpts","requireParseOptions","compareIdentifiers","anum","bnum","rcompareIdentifiers","requireIdentifiers","SemVer","includePrerelease","m2","LOOSE","FULL","raw","major","minor","patch","prerelease","compareMain","comparePre","compareBuild","release","identifierBase","base","throwErrors","er","requireParse","requireValid","requireMajor"],"sourceRoot":""} \ No newline at end of file
diff --git a/dist/9699-9699.js.map.license b/dist/9699-9699.js.map.license
deleted file mode 120000
index 74615185ea1..00000000000
--- a/dist/9699-9699.js.map.license
+++ /dev/null
@@ -1 +0,0 @@
-9699-9699.js.license \ No newline at end of file
diff --git a/dist/core-legacy-unified-search.js b/dist/core-legacy-unified-search.js
index dece0b635d1..f303ca75805 100644
--- a/dist/core-legacy-unified-search.js
+++ b/dist/core-legacy-unified-search.js
@@ -1,2 +1,2 @@
-(()=>{"use strict";var e,i,r,a={44870:(e,i,r)=>{var a=r(35947),s=r(21777),o=r(53334),c=r(85471),l=r(17334),d=r.n(l),u=r(61338),h=r(85168),A=r(57505),f=r(24764),p=r(28326),g=r(2769),C=r(82182),b=r(61443);const m={name:"LegacySearchResult",components:{NcHighlight:r(26517).N},props:{thumbnailUrl:{type:String,default:null},title:{type:String,required:!0},subline:{type:String,default:null},resourceUrl:{type:String,default:null},icon:{type:String,default:""},rounded:{type:Boolean,default:!1},query:{type:String,default:""},focused:{type:Boolean,default:!1}},data(){return{hasValidThumbnail:this.thumbnailUrl&&""!==this.thumbnailUrl.trim(),loaded:!1}},computed:{isIconUrl(){if(this.icon.startsWith("/"))return!0;try{new URL(this.icon)}catch{return!1}return!0}},watch:{thumbnailUrl(){this.hasValidThumbnail=this.thumbnailUrl&&""!==this.thumbnailUrl.trim(),this.loaded=!1}},methods:{reEmitEvent(t){this.$emit(t.type,t)},onError(){this.hasValidThumbnail=!1},onLoad(){this.loaded=!0}}};var v=r(85072),_=r.n(v),y=r(97825),x=r.n(y),w=r(77659),k=r.n(w),$=r(55056),S=r.n($),B=r(10540),D=r.n(B),I=r(41113),E=r.n(I),q=r(23940),L={};L.styleTagTransform=E(),L.setAttributes=S(),L.insert=k().bind(null,"head"),L.domAPI=x(),L.insertStyleElement=D(),_()(q.A,L),q.A&&q.A.locals&&q.A.locals;var U=r(14486);const N=(0,U.A)(m,(function(){var t=this,e=t._self._c;return e("a",{staticClass:"unified-search__result",class:{"unified-search__result--focused":t.focused},attrs:{href:t.resourceUrl||"#"},on:{click:t.reEmitEvent,focus:t.reEmitEvent}},[e("div",{staticClass:"unified-search__result-icon",class:{"unified-search__result-icon--rounded":t.rounded,"unified-search__result-icon--no-preview":!t.hasValidThumbnail&&!t.loaded,"unified-search__result-icon--with-thumbnail":t.hasValidThumbnail&&t.loaded,[t.icon]:!t.loaded&&!t.isIconUrl},style:{backgroundImage:t.isIconUrl?`url(${t.icon})`:""}},[t.hasValidThumbnail?e("img",{directives:[{name:"show",rawName:"v-show",value:t.loaded,expression:"loaded"}],attrs:{src:t.thumbnailUrl,alt:""},on:{error:t.onError,load:t.onLoad}}):t._e()]),t._v(" "),e("span",{staticClass:"unified-search__result-content"},[e("span",{staticClass:"unified-search__result-line-one",attrs:{title:t.title}},[e("NcHighlight",{attrs:{text:t.title,search:t.query}})],1),t._v(" "),t.subline?e("span",{staticClass:"unified-search__result-line-two",attrs:{title:t.subline}},[t._v(t._s(t.subline))]):t._e()])])}),[],!1,null,"0d55d2bc",null).exports,R={name:"SearchResultPlaceholders",data:()=>({light:null,dark:null}),mounted(){const t=getComputedStyle(document.documentElement);this.dark=t.getPropertyValue("--color-placeholder-dark"),this.light=t.getPropertyValue("--color-placeholder-light")},methods:{randWidth:()=>Math.floor(20*Math.random())+30}};var T=r(77026),F={};F.styleTagTransform=E(),F.setAttributes=S(),F.insert=k().bind(null,"head"),F.domAPI=x(),F.insertStyleElement=D(),_()(T.A,F),T.A&&T.A.locals&&T.A.locals;const P=(0,U.A)(R,(function(){var t=this,e=t._self._c;return e("ul",[e("svg",{staticClass:"unified-search__result-placeholder-gradient"},[e("defs",[e("linearGradient",{attrs:{id:"unified-search__result-placeholder-gradient"}},[e("stop",{attrs:{offset:"0%","stop-color":t.light}},[e("animate",{attrs:{attributeName:"stop-color",values:`${t.light}; ${t.light}; ${t.dark}; ${t.dark}; ${t.light}`,dur:"2s",repeatCount:"indefinite"}})]),t._v(" "),e("stop",{attrs:{offset:"100%","stop-color":t.dark}},[e("animate",{attrs:{attributeName:"stop-color",values:`${t.dark}; ${t.light}; ${t.light}; ${t.dark}; ${t.dark}`,dur:"2s",repeatCount:"indefinite"}})])],1)],1)]),t._v(" "),t._l([1,2,3],(function(n){return e("li",{key:n},[e("svg",{staticClass:"unified-search__result-placeholder",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"url(#unified-search__result-placeholder-gradient)"}},[e("rect",{staticClass:"unified-search__result-placeholder-icon"}),t._v(" "),e("rect",{staticClass:"unified-search__result-placeholder-line-one"}),t._v(" "),e("rect",{staticClass:"unified-search__result-placeholder-line-two",style:{width:`calc(${t.randWidth()}%)`}})])])}))],2)}),[],!1,null,"77826dca",null).exports;var z=r(63814),O=r(32981),j=r(65043);const M=(0,O.C)("unified-search","limit-default"),G=(0,O.C)("unified-search","min-search-length",1),Q=(0,O.C)("unified-search","live-search",!0),W=/(^|\s)in:([a-z_-]+)/gi,K=/(^|\s)-in:([a-z_-]+)/gi;async function V(){try{const{data:t}=await j.Ay.get((0,z.KT)("search/providers"),{params:{from:window.location.pathname.replace("/index.php","")+window.location.search}});if("ocs"in t&&"data"in t.ocs&&Array.isArray(t.ocs.data)&&t.ocs.data.length>0)return t.ocs.data}catch(t){console.error(t)}return[]}function Y(t){let{type:e,query:n,cursor:i}=t;const r=j.Ay.CancelToken.source();return{request:async()=>j.Ay.get((0,z.KT)("search/providers/{type}/search",{type:e}),{cancelToken:r.token,params:{term:n,cursor:i,from:window.location.pathname.replace("/index.php","")+window.location.search}}),cancel:r.cancel}}const H={name:"LegacyUnifiedSearch",components:{Magnify:b.A,NcActionButton:A.A,NcActions:f.A,NcEmptyContent:p.A,NcHeaderMenu:g.A,SearchResult:N,SearchResultPlaceholders:P,NcTextField:C.A},data:()=>({types:[],cursors:{},limits:{},loading:{},reached:{},requests:[],results:{},query:"",focused:null,triggered:!1,defaultLimit:M,minSearchLength:G,enableLiveSearch:Q,open:!1}),computed:{typesIDs(){return this.types.map((t=>t.id))},typesNames(){return this.types.map((t=>t.name))},typesMap(){return this.types.reduce(((t,e)=>(t[e.id]=e.name,t)),{})},ariaLabel:()=>t("core","Search"),hasResults(){return 0!==Object.keys(this.results).length},orderedResults(){return this.typesIDs.filter((t=>t in this.results)).map((t=>({type:t,list:this.results[t]})))},availableFilters(){return Object.keys(this.results)},usedFiltersIn(){let t;const e=[];for(;null!==(t=W.exec(this.query));)e.push(t[2]);return e},usedFiltersNot(){let t;const e=[];for(;null!==(t=K.exec(this.query));)e.push(t[2]);return e},validQueryTitle(){return this.triggered?t("core","No results for {query}",{query:this.query}):t("core","Press Enter to start searching")},shortQueryDescription(){return this.isShortQuery?n("core","Please enter {minSearchLength} character or more to search","Please enter {minSearchLength} characters or more to search",this.minSearchLength,{minSearchLength:this.minSearchLength}):""},isShortQuery(){return this.query&&this.query.trim().length<G},isValidQuery(){return this.query&&""!==this.query.trim()&&!this.isShortQuery},isDoneSearching(){return Object.values(this.reached).every((t=>!1===t))},isLoading(){return Object.values(this.loading).some((t=>!0===t))}},async created(){this.types=await V(),this.logger.debug("Unified Search initialized with the following providers",this.types)},beforeDestroy(){(0,u.al)("files:navigation:changed",this.onNavigationChange)},mounted(){(0,u.B1)("files:navigation:changed",this.onNavigationChange),OCP.Accessibility.disableKeyboardShortcuts()||document.addEventListener("keydown",(t=>{t.ctrlKey&&"KeyF"===t.code&&!this.open?(t.preventDefault(),this.open=!0):t.ctrlKey&&"f"===t.key&&this.open&&(this.open=!1),this.open&&("ArrowDown"===t.key&&this.focusNext(t),"ArrowUp"===t.key&&this.focusPrev(t))}))},methods:{async onOpen(){this.types=await V()},onClose(){(0,u.Ic)("nextcloud:unified-search.close")},onNavigationChange(){this.$el?.querySelector?.('form[role="search"]')?.reset?.()},onReset(){(0,u.Ic)("nextcloud:unified-search.reset"),this.logger.debug("Search reset"),this.query="",this.resetState(),this.focusInput()},async resetState(){this.cursors={},this.limits={},this.reached={},this.results={},this.focused=null,this.triggered=!1,await this.cancelPendingRequests()},async cancelPendingRequests(){const t=this.requests.slice(0);this.requests=[],await Promise.all(t.map((t=>t())))},focusInput(){this.$nextTick((()=>{this.$refs.input.focus(),this.$refs.input.select()}))},onInputEnter(){this.hasResults?this.getResultsList()[0].click():this.onInput()},async onInput(){if((0,u.Ic)("nextcloud:unified-search.search",{query:this.query}),""===this.query.trim()||this.isShortQuery){for(const t of this.typesIDs)this.$delete(this.results,t);return}let t=this.typesIDs,e=this.query;this.usedFiltersNot.length>0&&(t=this.typesIDs.filter((t=>-1===this.usedFiltersNot.indexOf(t)))),this.usedFiltersIn.length>0&&(t=this.typesIDs.filter((t=>this.usedFiltersIn.indexOf(t)>-1))),e=e.replace(W,"").replace(K,""),await this.resetState(),this.triggered=!0,t.length?(this.$set(this.loading,"all",!0),this.logger.debug(`Searching ${e} in`,t),Promise.all(t.map((async t=>{try{const{request:n,cancel:i}=Y({type:t,query:e});this.requests.push(i);const{data:r}=await n();return r.ocs.data.entries.length>0?this.$set(this.results,t,r.ocs.data.entries):this.$delete(this.results,t),r.ocs.data.cursor?this.$set(this.cursors,t,r.ocs.data.cursor):r.ocs.data.isPaginated||this.$set(this.limits,t,this.defaultLimit),r.ocs.data.entries.length<this.defaultLimit&&this.$set(this.reached,t,!0),null===this.focused&&(this.focused=0),1}catch(e){return this.$delete(this.results,t),e.response&&e.response.status?(this.logger.error(`Error searching for ${this.typesMap[t]}`,e),(0,h.Qg)(this.t("core","An error occurred while searching for {type}",{type:this.typesMap[t]})),0):2}}))).then((t=>{t.some((t=>2===t))||(this.loading={})}))):this.logger.error("No types to search in")},onInputDebounced:Q?d()((function(t){this.onInput(t)}),500):function(){this.triggered=!1},async loadMore(t){if(!this.loading[t]){if(this.cursors[t]){const{request:e,cancel:n}=Y({type:t,query:this.query,cursor:this.cursors[t]});this.requests.push(n);const{data:i}=await e();i.ocs.data.cursor&&this.$set(this.cursors,t,i.ocs.data.cursor),i.ocs.data.entries.length>0&&this.results[t].push(...i.ocs.data.entries),i.ocs.data.entries.length<this.defaultLimit&&this.$set(this.reached,t,!0)}else this.limits[t]&&this.limits[t]>=0&&(this.limits[t]+=this.defaultLimit,this.limits[t]>=this.results[t].length&&this.$set(this.reached,t,!0));null!==this.focused&&this.$nextTick((()=>{this.focusIndex(this.focused)}))}},limitIfAny(t,e){return e in this.limits?t.slice(0,this.limits[e]):t},getResultsList(){return this.$el.querySelectorAll(".unified-search__results .unified-search__result")},focusFirst(t){const e=this.getResultsList();e&&e.length>0&&(t&&t.preventDefault(),this.focused=0,this.focusIndex(this.focused))},focusNext(t){if(null===this.focused)return void this.focusFirst(t);const e=this.getResultsList();e&&e.length>0&&this.focused+1<e.length&&(t.preventDefault(),this.focused++,this.focusIndex(this.focused))},focusPrev(t){if(null===this.focused)return void this.focusFirst(t);const e=this.getResultsList();e&&e.length>0&&this.focused>0&&(t.preventDefault(),this.focused--,this.focusIndex(this.focused))},focusIndex(t){const e=this.getResultsList();e&&e[t]&&e[t].focus()},setFocusedIndex(t){const e=t.target,n=[...this.getResultsList()].findIndex((t=>t===e));n>-1&&(this.focused=n)},onClickFilter(t){this.query=`${this.query} ${t}`.replace(/ {2}/g," ").trim(),this.onInput()}}};var Z=r(86531),J={};J.styleTagTransform=E(),J.setAttributes=S(),J.insert=k().bind(null,"head"),J.domAPI=x(),J.insertStyleElement=D(),_()(Z.A,J),Z.A&&Z.A.locals&&Z.A.locals;const X=(0,U.A)(H,(function(){var t=this,e=t._self._c;return e("NcHeaderMenu",{staticClass:"unified-search",attrs:{id:"unified-search","exclude-click-outside-selectors":[".popover"],open:t.open,"aria-label":t.ariaLabel},on:{"update:open":function(e){t.open=e},open:t.onOpen,close:t.onClose},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("Magnify",{staticClass:"unified-search__trigger-icon",attrs:{size:20}})]},proxy:!0}])},[t._v(" "),e("div",{staticClass:"unified-search__input-wrapper"},[e("div",{staticClass:"unified-search__input-row"},[e("NcTextField",{ref:"input",staticClass:"unified-search__form-input",class:{"unified-search__form-input--with-reset":!!t.query},attrs:{value:t.query,"trailing-button-icon":"close",label:t.ariaLabel,"trailing-button-label":t.t("core","Reset search"),"show-trailing-button":""!==t.query,"aria-describedby":"unified-search-desc",placeholder:t.t("core","Search {types} …",{types:t.typesNames.join(", ")})},on:{"update:value":function(e){t.query=e},"trailing-button-click":t.onReset,input:t.onInputDebounced}}),t._v(" "),e("p",{staticClass:"hidden-visually",attrs:{id:"unified-search-desc"}},[t._v("\n\t\t\t\t"+t._s(t.t("core","Search starts once you start typing and results may be reached with the arrow keys"))+"\n\t\t\t")]),t._v(" "),t.availableFilters.length>1?e("NcActions",{staticClass:"unified-search__filters",attrs:{placement:"bottom-end",container:".unified-search__input-wrapper"}},t._l(t.availableFilters,(function(n){return e("NcActionButton",{key:n,attrs:{icon:"icon-filter"},on:{click:function(e){return e.stopPropagation(),t.onClickFilter(`in:${n}`)}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("core","Search for {name} only",{name:t.typesMap[n]}))+"\n\t\t\t\t")])})),1):t._e()],1)]),t._v(" "),t.hasResults?t._l(t.orderedResults,(function(n,i){let{list:r,type:a}=n;return[e("h2",{key:a,staticClass:"unified-search__results-header"},[t._v("\n\t\t\t"+t._s(t.typesMap[a])+"\n\t\t")]),t._v(" "),e("ul",{key:a,staticClass:"unified-search__results",class:`unified-search__results-${a}`,attrs:{"aria-label":t.typesMap[a]}},[t._l(t.limitIfAny(r,a),(function(n,r){return e("li",{key:n.resourceUrl},[e("SearchResult",t._b({attrs:{query:t.query,focused:0===t.focused&&0===i&&0===r},on:{focus:t.setFocusedIndex}},"SearchResult",n,!1))],1)})),t._v(" "),e("li",[t.reached[a]?t._e():e("SearchResult",{staticClass:"unified-search__result-more",attrs:{title:t.loading[a]?t.t("core","Loading more results …"):t.t("core","Load more results"),"icon-class":t.loading[a]?"icon-loading-small":""},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.loadMore(a)},focus:t.setFocusedIndex}})],1)],2)]})):[t.isLoading?e("SearchResultPlaceholders"):t.isValidQuery?e("NcEmptyContent",{attrs:{title:t.validQueryTitle},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Magnify")]},proxy:!0}],null,!1,931131664)}):!t.isLoading||t.isShortQuery?e("NcEmptyContent",{attrs:{title:t.t("core","Start typing to search"),description:t.shortQueryDescription},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Magnify")]},proxy:!0}],null,!1,931131664)}):t._e()]],2)}),[],!1,null,"7def0bbf",null).exports;r.nc=(0,s.aV)();const tt=(0,a.YK)().setApp("unified-search").detectUser().build();c.Ay.mixin({data:()=>({logger:tt}),methods:{t:o.Tl,n:o.zw}}),new c.Ay({el:"#unified-search",name:"UnifiedSearchRoot",render:t=>t(X)})},23940:(t,e,n)=>{n.d(e,{A:()=>o});var i=n(71354),r=n.n(i),a=n(76314),s=n.n(a)()(r());s.push([t.id,".unified-search__result[data-v-0d55d2bc]{display:flex;align-items:center;height:44px;padding:10px;border:2px solid rgba(0,0,0,0);border-radius:var(--border-radius-large) !important}.unified-search__result--focused[data-v-0d55d2bc]{background-color:var(--color-background-hover)}.unified-search__result[data-v-0d55d2bc]:active,.unified-search__result[data-v-0d55d2bc]:hover,.unified-search__result[data-v-0d55d2bc]:focus{background-color:var(--color-background-hover);border:2px solid var(--color-border-maxcontrast)}.unified-search__result *[data-v-0d55d2bc]{cursor:pointer}.unified-search__result-icon[data-v-0d55d2bc]{overflow:hidden;width:44px;height:44px;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center center;background-size:32px}.unified-search__result-icon--rounded[data-v-0d55d2bc]{border-radius:22px}.unified-search__result-icon--no-preview[data-v-0d55d2bc]{background-size:32px}.unified-search__result-icon--with-thumbnail[data-v-0d55d2bc]{background-size:cover}.unified-search__result-icon--with-thumbnail[data-v-0d55d2bc]:not(.unified-search__result-icon--rounded){max-width:42px;max-height:42px;border:1px solid var(--color-border)}.unified-search__result-icon img[data-v-0d55d2bc]{width:100%;height:100%;object-fit:cover;object-position:center}.unified-search__result-icon[data-v-0d55d2bc],.unified-search__result-actions[data-v-0d55d2bc]{flex:0 0 44px}.unified-search__result-content[data-v-0d55d2bc]{display:flex;align-items:center;flex:1 1 100%;flex-wrap:wrap;min-width:0;padding-inline-start:10px}.unified-search__result-line-one[data-v-0d55d2bc],.unified-search__result-line-two[data-v-0d55d2bc]{overflow:hidden;flex:1 1 100%;margin:1px 0;white-space:nowrap;text-overflow:ellipsis;color:inherit;font-size:inherit}.unified-search__result-line-two[data-v-0d55d2bc]{opacity:.7;font-size:var(--default-font-size)}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/LegacySearchResult.vue"],names:[],mappings:"AAMA,yCACC,YAAA,CACA,kBAAA,CACA,WANgB,CAOhB,YANQ,CAOR,8BAAA,CACA,mDAAA,CAEA,kDACC,8CAAA,CAGD,8IAGC,8CAAA,CACA,gDAAA,CAGD,2CACC,cAAA,CAGD,8CACC,eAAA,CACA,UA5Be,CA6Bf,WA7Be,CA8Bf,kCAAA,CACA,2BAAA,CACA,iCAAA,CACA,oBAAA,CACA,uDACC,kBAAA,CAED,0DACC,oBAAA,CAED,8DACC,qBAAA,CAED,yGAEC,cAAA,CACA,eAAA,CACA,oCAAA,CAGD,kDAEC,UAAA,CACA,WAAA,CAEA,gBAAA,CACA,sBAAA,CAIF,+FAEC,aAAA,CAGD,iDACC,YAAA,CACA,kBAAA,CACA,aAAA,CACA,cAAA,CAEA,WAAA,CACA,yBAvEO,CA0ER,oGAEC,eAAA,CACA,aAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,aAAA,CACA,iBAAA,CAED,kDACC,UAAA,CACA,kCAAA",sourcesContent:['\n@use "sass:math";\n\n$clickable-area: 44px;\n$margin: 10px;\n\n.unified-search__result {\n\tdisplay: flex;\n\talign-items: center;\n\theight: $clickable-area;\n\tpadding: $margin;\n\tborder: 2px solid transparent;\n\tborder-radius: var(--border-radius-large) !important;\n\n\t&--focused {\n\t\tbackground-color: var(--color-background-hover);\n\t}\n\n\t&:active,\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder: 2px solid var(--color-border-maxcontrast);\n\t}\n\n\t* {\n\t\tcursor: pointer;\n\t}\n\n\t&-icon {\n\t\toverflow: hidden;\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\tborder-radius: var(--border-radius);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center center;\n\t\tbackground-size: 32px;\n\t\t&--rounded {\n\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t}\n\t\t&--no-preview {\n\t\t\tbackground-size: 32px;\n\t\t}\n\t\t&--with-thumbnail {\n\t\t\tbackground-size: cover;\n\t\t}\n\t\t&--with-thumbnail:not(&--rounded) {\n\t\t\t// compensate for border\n\t\t\tmax-width: $clickable-area - 2px;\n\t\t\tmax-height: $clickable-area - 2px;\n\t\t\tborder: 1px solid var(--color-border);\n\t\t}\n\n\t\timg {\n\t\t\t// Make sure to keep ratio\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\n\t\t\tobject-fit: cover;\n\t\t\tobject-position: center;\n\t\t}\n\t}\n\n\t&-icon,\n\t&-actions {\n\t\tflex: 0 0 $clickable-area;\n\t}\n\n\t&-content {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex: 1 1 100%;\n\t\tflex-wrap: wrap;\n\t\t// Set to minimum and gro from it\n\t\tmin-width: 0;\n\t\tpadding-inline-start: $margin;\n\t}\n\n\t&-line-one,\n\t&-line-two {\n\t\toverflow: hidden;\n\t\tflex: 1 1 100%;\n\t\tmargin: 1px 0;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Use the same color as the `a`\n\t\tcolor: inherit;\n\t\tfont-size: inherit;\n\t}\n\t&-line-two {\n\t\topacity: .7;\n\t\tfont-size: var(--default-font-size);\n\t}\n}\n\n'],sourceRoot:""}]);const o=s},77026:(t,e,n)=>{n.d(e,{A:()=>o});var i=n(71354),r=n.n(i),a=n(76314),s=n.n(a)()(r());s.push([t.id,".unified-search__result-placeholder-gradient[data-v-77826dca]{position:fixed;height:0;width:0;z-index:-1}.unified-search__result-placeholder[data-v-77826dca]{width:calc(100% - 2*10px);height:44px;margin:10px}.unified-search__result-placeholder-icon[data-v-77826dca]{width:44px;height:44px;rx:var(--border-radius);ry:var(--border-radius)}.unified-search__result-placeholder-line-one[data-v-77826dca],.unified-search__result-placeholder-line-two[data-v-77826dca]{width:calc(100% - 54px);height:1em;x:54px}.unified-search__result-placeholder-line-one[data-v-77826dca]{y:5px}.unified-search__result-placeholder-line-two[data-v-77826dca]{y:25px}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/SearchResultPlaceholders.vue"],names:[],mappings:"AAIA,8DACC,cAAA,CACA,QAAA,CACA,OAAA,CACA,UAAA,CAGD,qDACC,yBAAA,CACA,WAZgB,CAahB,WAZQ,CAcR,0DACC,UAhBe,CAiBf,WAjBe,CAkBf,uBAAA,CACA,uBAAA,CAGD,4HAEC,uBAAA,CACA,UAAA,CACA,MAAA,CAGD,8DACC,KAAA,CAGD,8DACC,MAAA",sourcesContent:["\n$clickable-area: 44px;\n$margin: 10px;\n\n.unified-search__result-placeholder-gradient {\n\tposition: fixed;\n\theight: 0;\n\twidth: 0;\n\tz-index: -1;\n}\n\n.unified-search__result-placeholder {\n\twidth: calc(100% - 2 * #{$margin});\n\theight: $clickable-area;\n\tmargin: $margin;\n\n\t&-icon {\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\trx: var(--border-radius);\n\t\try: var(--border-radius);\n\t}\n\n\t&-line-one,\n\t&-line-two {\n\t\twidth: calc(100% - #{$margin + $clickable-area});\n\t\theight: 1em;\n\t\tx: $margin + $clickable-area;\n\t}\n\n\t&-line-one {\n\t\ty: 5px;\n\t}\n\n\t&-line-two {\n\t\ty: 25px;\n\t}\n}\n\n"],sourceRoot:""}]);const o=s},86531:(t,e,n)=>{n.d(e,{A:()=>o});var i=n(71354),r=n.n(i),a=n(76314),s=n.n(a)()(r());s.push([t.id,".unified-search__trigger-icon[data-v-7def0bbf]{color:var(--color-background-plain-text) !important}.unified-search__input-wrapper[data-v-7def0bbf]{position:sticky;z-index:2;top:0;display:inline-flex;flex-direction:column;align-items:center;width:100%;background-color:var(--color-main-background)}.unified-search__input-wrapper label[for=unified-search__input][data-v-7def0bbf]{align-self:flex-start;font-weight:bold;font-size:19px;margin-inline-start:13px}.unified-search__input-row[data-v-7def0bbf]{display:flex;width:100%;align-items:center}.unified-search__filters[data-v-7def0bbf]{margin-block:10px;margin-inline:5px 0;padding-top:5px}.unified-search__filters ul[data-v-7def0bbf]{display:inline-flex;justify-content:space-between}.unified-search__form[data-v-7def0bbf]{position:relative;width:100%;margin:10px 0}.unified-search__form[data-v-7def0bbf]::after{inset-inline-start:auto 10px}.unified-search__form-input[data-v-7def0bbf],.unified-search__form-reset[data-v-7def0bbf]{margin:5px}.unified-search__form-input[data-v-7def0bbf]{width:100%;height:34px;padding:10px}.unified-search__form-input[data-v-7def0bbf]:focus,.unified-search__form-input[data-v-7def0bbf]:focus-visible,.unified-search__form-input[data-v-7def0bbf]:active{border-color:2px solid var(--color-main-text) !important;box-shadow:0 0 0 2px var(--color-main-background) !important}.unified-search__form-input[data-v-7def0bbf],.unified-search__form-input[placeholder][data-v-7def0bbf],.unified-search__form-input[data-v-7def0bbf]::placeholder{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.unified-search__form-input[data-v-7def0bbf]::-webkit-search-decoration,.unified-search__form-input[data-v-7def0bbf]::-webkit-search-cancel-button,.unified-search__form-input[data-v-7def0bbf]::-webkit-search-results-button,.unified-search__form-input[data-v-7def0bbf]::-webkit-search-results-decoration{-webkit-appearance:none}.unified-search__form-reset[data-v-7def0bbf],.unified-search__form-submit[data-v-7def0bbf]{position:absolute;top:0;inset-inline-end:4px;width:24px;height:24px;min-height:30px;padding:0;opacity:.5;border:none;background-color:rgba(0,0,0,0);margin-inline-end:0}.unified-search__form-reset[data-v-7def0bbf]:hover,.unified-search__form-reset[data-v-7def0bbf]:focus,.unified-search__form-reset[data-v-7def0bbf]:active,.unified-search__form-submit[data-v-7def0bbf]:hover,.unified-search__form-submit[data-v-7def0bbf]:focus,.unified-search__form-submit[data-v-7def0bbf]:active{opacity:1}.unified-search__form-submit[data-v-7def0bbf]{inset-inline-end:28px}.unified-search__results[data-v-7def0bbf]{display:flex;flex-direction:column;gap:4px}.unified-search__results-header[data-v-7def0bbf]{display:block;margin:10px;margin-bottom:6px;margin-inline-start:13px;color:var(--color-primary-element);font-size:19px;font-weight:bold}.unified-search[data-v-7def0bbf] .unified-search__result-more{color:var(--color-text-maxcontrast)}.unified-search .empty-content[data-v-7def0bbf]{margin:10vh 0}.unified-search .empty-content[data-v-7def0bbf] .empty-content__title{font-weight:normal;font-size:var(--default-font-size);text-align:center}","",{version:3,sources:["webpack://./core/src/views/LegacyUnifiedSearch.vue"],names:[],mappings:"AAQC,+CACC,mDAAA,CAGD,gDACC,eAAA,CAEA,SAAA,CACA,KAAA,CACA,mBAAA,CACA,qBAAA,CACA,kBAAA,CACA,UAAA,CACA,6CAAA,CAEA,iFACC,qBAAA,CACA,gBAAA,CACA,cAAA,CACA,wBAAA,CAIF,4CACC,YAAA,CACA,UAAA,CACA,kBAAA,CAGD,0CACC,iBAnCO,CAoCP,mBAAA,CACA,eAAA,CACA,6CACC,mBAAA,CACA,6BAAA,CAIF,uCACC,iBAAA,CACA,UAAA,CACA,aAAA,CAGA,8CACA,4BAAA,CAGA,0FAEC,UAAA,CAGD,6CACC,UAAA,CACA,WA5DY,CA6DZ,YA5Da,CA8Db,kKAGC,wDAAA,CACA,4DAAA,CAGD,iKAGC,eAAA,CACA,kBAAA,CACA,sBAAA,CAID,+SAIC,uBAAA,CAIF,2FAEC,iBAAA,CACA,KAAA,CACA,oBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,SAAA,CACA,UAAA,CACA,WAAA,CACA,8BAAA,CACA,mBAAA,CAEA,uTAGC,SAAA,CAIF,8CACC,qBAAA,CAIF,0CACC,YAAA,CACA,qBAAA,CACA,OAAA,CAEA,iDACC,aAAA,CACA,WAzHM,CA0HN,iBAAA,CACA,wBAAA,CACA,kCAAA,CACA,cAAA,CACA,gBAAA,CAIF,8DACC,mCAAA,CAGD,gDACC,aAAA,CAEA,sEACC,kBAAA,CACA,kCAAA,CACA,iBAAA",sourcesContent:['\n@use "sass:math";\n\n$margin: 10px;\n$input-height: 34px;\n$input-padding: 10px;\n\n.unified-search {\n\t&__trigger-icon {\n\t\tcolor: var(--color-background-plain-text) !important;\n\t}\n\n\t&__input-wrapper {\n\t\tposition: sticky;\n\t\t// above search results\n\t\tz-index: 2;\n\t\ttop: 0;\n\t\tdisplay: inline-flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\twidth: 100%;\n\t\tbackground-color: var(--color-main-background);\n\n\t\tlabel[for="unified-search__input"] {\n\t\t\talign-self: flex-start;\n\t\t\tfont-weight: bold;\n\t\t\tfont-size: 19px;\n\t\t\tmargin-inline-start: 13px;\n\t\t}\n\t}\n\n\t&__input-row {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\talign-items: center;\n\t}\n\n\t&__filters {\n\t\tmargin-block: $margin;\n\t\tmargin-inline: math.div($margin, 2) 0;\n\t\tpadding-top: 5px;\n\t\tul {\n\t\t\tdisplay: inline-flex;\n\t\t\tjustify-content: space-between;\n\t\t}\n\t}\n\n\t&__form {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\tmargin: $margin 0;\n\n\t\t// Loading spinner\n\t\t&::after {\n\t\tinset-inline-start: auto $input-padding;\n\t\t}\n\n\t\t&-input,\n\t\t&-reset {\n\t\t\tmargin: math.div($input-padding, 2);\n\t\t}\n\n\t\t&-input {\n\t\t\twidth: 100%;\n\t\t\theight: $input-height;\n\t\t\tpadding: $input-padding;\n\n\t\t\t&:focus,\n\t\t\t&:focus-visible,\n\t\t\t&:active {\n\t\t\t\tborder-color: 2px solid var(--color-main-text) !important;\n\t\t\t\tbox-shadow: 0 0 0 2px var(--color-main-background) !important;\n\t\t\t}\n\n\t\t\t&,\n\t\t\t&[placeholder],\n\t\t\t&::placeholder {\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\n\t\t\t// Hide webkit clear search\n\t\t\t&::-webkit-search-decoration,\n\t\t\t&::-webkit-search-cancel-button,\n\t\t\t&::-webkit-search-results-button,\n\t\t\t&::-webkit-search-results-decoration {\n\t\t\t\t-webkit-appearance: none;\n\t\t\t}\n\t\t}\n\n\t\t&-reset,\n\t\t&-submit {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tinset-inline-end: 4px;\n\t\t\twidth: $input-height - $input-padding;\n\t\t\theight: $input-height - $input-padding;\n\t\t\tmin-height: 30px;\n\t\t\tpadding: 0;\n\t\t\topacity: .5;\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t\tmargin-inline-end: 0;\n\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t&-submit {\n\t\t\tinset-inline-end: 28px;\n\t\t}\n\t}\n\n\t&__results {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 4px;\n\n\t\t&-header {\n\t\t\tdisplay: block;\n\t\t\tmargin: $margin;\n\t\t\tmargin-bottom: $margin - 4px;\n\t\t\tmargin-inline-start: 13px;\n\t\t\tcolor: var(--color-primary-element);\n\t\t\tfont-size: 19px;\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n\n\t:deep(.unified-search__result-more) {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t.empty-content {\n\t\tmargin: 10vh 0;\n\n\t\t:deep(.empty-content__title) {\n\t\t\tfont-weight: normal;\n\t\t\tfont-size: var(--default-font-size);\n\t\t\ttext-align: center;\n\t\t}\n\t}\n}\n\n'],sourceRoot:""}]);const o=s}},s={};function o(t){var e=s[t];if(void 0!==e)return e.exports;var n=s[t]={id:t,loaded:!1,exports:{}};return a[t].call(n.exports,n,n.exports,o),n.loaded=!0,n.exports}o.m=a,e=[],o.O=(t,n,i,r)=>{if(!n){var a=1/0;for(d=0;d<e.length;d++){n=e[d][0],i=e[d][1],r=e[d][2];for(var s=!0,c=0;c<n.length;c++)(!1&r||a>=r)&&Object.keys(o.O).every((t=>o.O[t](n[c])))?n.splice(c--,1):(s=!1,r<a&&(a=r));if(s){e.splice(d--,1);var l=i();void 0!==l&&(t=l)}}return t}r=r||0;for(var d=e.length;d>0&&e[d-1][2]>r;d--)e[d]=e[d-1];e[d]=[n,i,r]},o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.f={},o.e=t=>Promise.all(Object.keys(o.f).reduce(((e,n)=>(o.f[n](t,e),e)),[])),o.u=t=>t+"-"+t+".js?v="+{2441:"fc741cf57e9647f370a3",5862:"7b9b02dc0a1b898066ef",7874:"3ea1c62ce5f0e7d75e81"}[t],o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i={},r="nextcloud:",o.l=(t,e,n,a)=>{if(i[t])i[t].push(e);else{var s,c;if(void 0!==n)for(var l=document.getElementsByTagName("script"),d=0;d<l.length;d++){var u=l[d];if(u.getAttribute("src")==t||u.getAttribute("data-webpack")==r+n){s=u;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",r+n),s.src=t),i[t]=[e];var h=(e,n)=>{s.onerror=s.onload=null,clearTimeout(A);var r=i[t];if(delete i[t],s.parentNode&&s.parentNode.removeChild(s),r&&r.forEach((t=>t(n))),e)return e(n)},A=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),o.j=1684,(()=>{var t;o.g.importScripts&&(t=o.g.location+"");var e=o.g.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");if(n.length)for(var i=n.length-1;i>-1&&(!t||!/^http(s?):/.test(t));)t=n[i--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=t})(),(()=>{o.b=document.baseURI||self.location.href;var t={1684:0};o.f.j=(e,n)=>{var i=o.o(t,e)?t[e]:void 0;if(0!==i)if(i)n.push(i[2]);else{var r=new Promise(((n,r)=>i=t[e]=[n,r]));n.push(i[2]=r);var a=o.p+o.u(e),s=new Error;o.l(a,(n=>{if(o.o(t,e)&&(0!==(i=t[e])&&(t[e]=void 0),i)){var r=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.src;s.message="Loading chunk "+e+" failed.\n("+r+": "+a+")",s.name="ChunkLoadError",s.type=r,s.request=a,i[1](s)}}),"chunk-"+e,e)}},o.O.j=e=>0===t[e];var e=(e,n)=>{var i,r,a=n[0],s=n[1],c=n[2],l=0;if(a.some((e=>0!==t[e]))){for(i in s)o.o(s,i)&&(o.m[i]=s[i]);if(c)var d=c(o)}for(e&&e(n);l<a.length;l++)r=a[l],o.o(t,r)&&t[r]&&t[r][0](),t[r]=0;return o.O(d)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))})(),o.nc=void 0;var c=o.O(void 0,[4208],(()=>o(44870)));c=o.O(c)})();
-//# sourceMappingURL=core-legacy-unified-search.js.map?v=9699b0f2d1435c3a35b3 \ No newline at end of file
+(()=>{"use strict";var e,i,r,a={8192:(e,i,r)=>{var a=r(35947),s=r(21777),o=r(53334),c=r(85471),d=r(17334),l=r.n(d),u=r(61338),h=r(85168),A=r(57505),p=r(24764),f=r(28326),g=r(2769),C=r(82182),m=r(61443);const v={name:"LegacySearchResult",components:{NcHighlight:r(26517).N},props:{thumbnailUrl:{type:String,default:null},title:{type:String,required:!0},subline:{type:String,default:null},resourceUrl:{type:String,default:null},icon:{type:String,default:""},rounded:{type:Boolean,default:!1},query:{type:String,default:""},focused:{type:Boolean,default:!1}},data(){return{hasValidThumbnail:this.thumbnailUrl&&""!==this.thumbnailUrl.trim(),loaded:!1}},computed:{isIconUrl(){if(this.icon.startsWith("/"))return!0;try{new URL(this.icon)}catch{return!1}return!0}},watch:{thumbnailUrl(){this.hasValidThumbnail=this.thumbnailUrl&&""!==this.thumbnailUrl.trim(),this.loaded=!1}},methods:{reEmitEvent(t){this.$emit(t.type,t)},onError(){this.hasValidThumbnail=!1},onLoad(){this.loaded=!0}}};var _=r(85072),b=r.n(_),y=r(97825),x=r.n(y),w=r(77659),k=r.n(w),$=r(55056),S=r.n($),B=r(10540),D=r.n(B),I=r(41113),E=r.n(I),q=r(23940),L={};L.styleTagTransform=E(),L.setAttributes=S(),L.insert=k().bind(null,"head"),L.domAPI=x(),L.insertStyleElement=D(),b()(q.A,L),q.A&&q.A.locals&&q.A.locals;var U=r(14486);const N=(0,U.A)(v,(function(){var t=this,e=t._self._c;return e("a",{staticClass:"unified-search__result",class:{"unified-search__result--focused":t.focused},attrs:{href:t.resourceUrl||"#"},on:{click:t.reEmitEvent,focus:t.reEmitEvent}},[e("div",{staticClass:"unified-search__result-icon",class:{"unified-search__result-icon--rounded":t.rounded,"unified-search__result-icon--no-preview":!t.hasValidThumbnail&&!t.loaded,"unified-search__result-icon--with-thumbnail":t.hasValidThumbnail&&t.loaded,[t.icon]:!t.loaded&&!t.isIconUrl},style:{backgroundImage:t.isIconUrl?`url(${t.icon})`:""}},[t.hasValidThumbnail?e("img",{directives:[{name:"show",rawName:"v-show",value:t.loaded,expression:"loaded"}],attrs:{src:t.thumbnailUrl,alt:""},on:{error:t.onError,load:t.onLoad}}):t._e()]),t._v(" "),e("span",{staticClass:"unified-search__result-content"},[e("span",{staticClass:"unified-search__result-line-one",attrs:{title:t.title}},[e("NcHighlight",{attrs:{text:t.title,search:t.query}})],1),t._v(" "),t.subline?e("span",{staticClass:"unified-search__result-line-two",attrs:{title:t.subline}},[t._v(t._s(t.subline))]):t._e()])])}),[],!1,null,"0d55d2bc",null).exports,R={name:"SearchResultPlaceholders",data:()=>({light:null,dark:null}),mounted(){const t=getComputedStyle(document.documentElement);this.dark=t.getPropertyValue("--color-placeholder-dark"),this.light=t.getPropertyValue("--color-placeholder-light")},methods:{randWidth:()=>Math.floor(20*Math.random())+30}};var T=r(77026),F={};F.styleTagTransform=E(),F.setAttributes=S(),F.insert=k().bind(null,"head"),F.domAPI=x(),F.insertStyleElement=D(),b()(T.A,F),T.A&&T.A.locals&&T.A.locals;const P=(0,U.A)(R,(function(){var t=this,e=t._self._c;return e("ul",[e("svg",{staticClass:"unified-search__result-placeholder-gradient"},[e("defs",[e("linearGradient",{attrs:{id:"unified-search__result-placeholder-gradient"}},[e("stop",{attrs:{offset:"0%","stop-color":t.light}},[e("animate",{attrs:{attributeName:"stop-color",values:`${t.light}; ${t.light}; ${t.dark}; ${t.dark}; ${t.light}`,dur:"2s",repeatCount:"indefinite"}})]),t._v(" "),e("stop",{attrs:{offset:"100%","stop-color":t.dark}},[e("animate",{attrs:{attributeName:"stop-color",values:`${t.dark}; ${t.light}; ${t.light}; ${t.dark}; ${t.dark}`,dur:"2s",repeatCount:"indefinite"}})])],1)],1)]),t._v(" "),t._l([1,2,3],(function(n){return e("li",{key:n},[e("svg",{staticClass:"unified-search__result-placeholder",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"url(#unified-search__result-placeholder-gradient)"}},[e("rect",{staticClass:"unified-search__result-placeholder-icon"}),t._v(" "),e("rect",{staticClass:"unified-search__result-placeholder-line-one"}),t._v(" "),e("rect",{staticClass:"unified-search__result-placeholder-line-two",style:{width:`calc(${t.randWidth()}%)`}})])])}))],2)}),[],!1,null,"77826dca",null).exports;var z=r(63814),O=r(32981),j=r(65043);const M=(0,O.C)("unified-search","limit-default"),G=(0,O.C)("unified-search","min-search-length",1),Q=(0,O.C)("unified-search","live-search",!0),W=/(^|\s)in:([a-z_-]+)/gi,K=/(^|\s)-in:([a-z_-]+)/gi;async function V(){try{const{data:t}=await j.Ay.get((0,z.KT)("search/providers"),{params:{from:window.location.pathname.replace("/index.php","")+window.location.search}});if("ocs"in t&&"data"in t.ocs&&Array.isArray(t.ocs.data)&&t.ocs.data.length>0)return t.ocs.data}catch(t){console.error(t)}return[]}function Y(t){let{type:e,query:n,cursor:i}=t;const r=j.Ay.CancelToken.source();return{request:async()=>j.Ay.get((0,z.KT)("search/providers/{type}/search",{type:e}),{cancelToken:r.token,params:{term:n,cursor:i,from:window.location.pathname.replace("/index.php","")+window.location.search}}),cancel:r.cancel}}const H={name:"LegacyUnifiedSearch",components:{Magnify:m.A,NcActionButton:A.A,NcActions:p.A,NcEmptyContent:f.A,NcHeaderMenu:g.A,SearchResult:N,SearchResultPlaceholders:P,NcTextField:C.A},data:()=>({types:[],cursors:{},limits:{},loading:{},reached:{},requests:[],results:{},query:"",focused:null,triggered:!1,defaultLimit:M,minSearchLength:G,enableLiveSearch:Q,open:!1}),computed:{typesIDs(){return this.types.map((t=>t.id))},typesNames(){return this.types.map((t=>t.name))},typesMap(){return this.types.reduce(((t,e)=>(t[e.id]=e.name,t)),{})},ariaLabel:()=>t("core","Search"),hasResults(){return 0!==Object.keys(this.results).length},orderedResults(){return this.typesIDs.filter((t=>t in this.results)).map((t=>({type:t,list:this.results[t]})))},availableFilters(){return Object.keys(this.results)},usedFiltersIn(){let t;const e=[];for(;null!==(t=W.exec(this.query));)e.push(t[2]);return e},usedFiltersNot(){let t;const e=[];for(;null!==(t=K.exec(this.query));)e.push(t[2]);return e},validQueryTitle(){return this.triggered?t("core","No results for {query}",{query:this.query}):t("core","Press Enter to start searching")},shortQueryDescription(){return this.isShortQuery?n("core","Please enter {minSearchLength} character or more to search","Please enter {minSearchLength} characters or more to search",this.minSearchLength,{minSearchLength:this.minSearchLength}):""},isShortQuery(){return this.query&&this.query.trim().length<G},isValidQuery(){return this.query&&""!==this.query.trim()&&!this.isShortQuery},isDoneSearching(){return Object.values(this.reached).every((t=>!1===t))},isLoading(){return Object.values(this.loading).some((t=>!0===t))}},async created(){this.types=await V(),this.logger.debug("Unified Search initialized with the following providers",this.types)},beforeDestroy(){(0,u.al)("files:navigation:changed",this.onNavigationChange)},mounted(){(0,u.B1)("files:navigation:changed",this.onNavigationChange),OCP.Accessibility.disableKeyboardShortcuts()||document.addEventListener("keydown",(t=>{t.ctrlKey&&"KeyF"===t.code&&!this.open?(t.preventDefault(),this.open=!0):t.ctrlKey&&"f"===t.key&&this.open&&(this.open=!1),this.open&&("ArrowDown"===t.key&&this.focusNext(t),"ArrowUp"===t.key&&this.focusPrev(t))}))},methods:{async onOpen(){this.types=await V()},onClose(){(0,u.Ic)("nextcloud:unified-search.close")},onNavigationChange(){this.$el?.querySelector?.('form[role="search"]')?.reset?.()},onReset(){(0,u.Ic)("nextcloud:unified-search.reset"),this.logger.debug("Search reset"),this.query="",this.resetState(),this.focusInput()},async resetState(){this.cursors={},this.limits={},this.reached={},this.results={},this.focused=null,this.triggered=!1,await this.cancelPendingRequests()},async cancelPendingRequests(){const t=this.requests.slice(0);this.requests=[],await Promise.all(t.map((t=>t())))},focusInput(){this.$nextTick((()=>{this.$refs.input.focus(),this.$refs.input.select()}))},onInputEnter(){this.hasResults?this.getResultsList()[0].click():this.onInput()},async onInput(){if((0,u.Ic)("nextcloud:unified-search.search",{query:this.query}),""===this.query.trim()||this.isShortQuery){for(const t of this.typesIDs)this.$delete(this.results,t);return}let t=this.typesIDs,e=this.query;this.usedFiltersNot.length>0&&(t=this.typesIDs.filter((t=>-1===this.usedFiltersNot.indexOf(t)))),this.usedFiltersIn.length>0&&(t=this.typesIDs.filter((t=>this.usedFiltersIn.indexOf(t)>-1))),e=e.replace(W,"").replace(K,""),await this.resetState(),this.triggered=!0,t.length?(this.$set(this.loading,"all",!0),this.logger.debug(`Searching ${e} in`,t),Promise.all(t.map((async t=>{try{const{request:n,cancel:i}=Y({type:t,query:e});this.requests.push(i);const{data:r}=await n();return r.ocs.data.entries.length>0?this.$set(this.results,t,r.ocs.data.entries):this.$delete(this.results,t),r.ocs.data.cursor?this.$set(this.cursors,t,r.ocs.data.cursor):r.ocs.data.isPaginated||this.$set(this.limits,t,this.defaultLimit),r.ocs.data.entries.length<this.defaultLimit&&this.$set(this.reached,t,!0),null===this.focused&&(this.focused=0),1}catch(e){return this.$delete(this.results,t),e.response&&e.response.status?(this.logger.error(`Error searching for ${this.typesMap[t]}`,e),(0,h.Qg)(this.t("core","An error occurred while searching for {type}",{type:this.typesMap[t]})),0):2}}))).then((t=>{t.some((t=>2===t))||(this.loading={})}))):this.logger.error("No types to search in")},onInputDebounced:Q?l()((function(t){this.onInput(t)}),500):function(){this.triggered=!1},async loadMore(t){if(!this.loading[t]){if(this.cursors[t]){const{request:e,cancel:n}=Y({type:t,query:this.query,cursor:this.cursors[t]});this.requests.push(n);const{data:i}=await e();i.ocs.data.cursor&&this.$set(this.cursors,t,i.ocs.data.cursor),i.ocs.data.entries.length>0&&this.results[t].push(...i.ocs.data.entries),i.ocs.data.entries.length<this.defaultLimit&&this.$set(this.reached,t,!0)}else this.limits[t]&&this.limits[t]>=0&&(this.limits[t]+=this.defaultLimit,this.limits[t]>=this.results[t].length&&this.$set(this.reached,t,!0));null!==this.focused&&this.$nextTick((()=>{this.focusIndex(this.focused)}))}},limitIfAny(t,e){return e in this.limits?t.slice(0,this.limits[e]):t},getResultsList(){return this.$el.querySelectorAll(".unified-search__results .unified-search__result")},focusFirst(t){const e=this.getResultsList();e&&e.length>0&&(t&&t.preventDefault(),this.focused=0,this.focusIndex(this.focused))},focusNext(t){if(null===this.focused)return void this.focusFirst(t);const e=this.getResultsList();e&&e.length>0&&this.focused+1<e.length&&(t.preventDefault(),this.focused++,this.focusIndex(this.focused))},focusPrev(t){if(null===this.focused)return void this.focusFirst(t);const e=this.getResultsList();e&&e.length>0&&this.focused>0&&(t.preventDefault(),this.focused--,this.focusIndex(this.focused))},focusIndex(t){const e=this.getResultsList();e&&e[t]&&e[t].focus()},setFocusedIndex(t){const e=t.target,n=[...this.getResultsList()].findIndex((t=>t===e));n>-1&&(this.focused=n)},onClickFilter(t){this.query=`${this.query} ${t}`.replace(/ {2}/g," ").trim(),this.onInput()}}};var Z=r(88435),J={};J.styleTagTransform=E(),J.setAttributes=S(),J.insert=k().bind(null,"head"),J.domAPI=x(),J.insertStyleElement=D(),b()(Z.A,J),Z.A&&Z.A.locals&&Z.A.locals;const X=(0,U.A)(H,(function(){var t=this,e=t._self._c;return e("NcHeaderMenu",{staticClass:"unified-search",attrs:{id:"unified-search","exclude-click-outside-selectors":[".popover"],open:t.open,"aria-label":t.ariaLabel},on:{"update:open":function(e){t.open=e},open:t.onOpen,close:t.onClose},scopedSlots:t._u([{key:"trigger",fn:function(){return[e("Magnify",{staticClass:"unified-search__trigger-icon",attrs:{size:20}})]},proxy:!0}])},[t._v(" "),e("div",{staticClass:"unified-search__input-wrapper"},[e("div",{staticClass:"unified-search__input-row"},[e("NcTextField",{ref:"input",staticClass:"unified-search__form-input",class:{"unified-search__form-input--with-reset":!!t.query},attrs:{value:t.query,"trailing-button-icon":"close",label:t.ariaLabel,"trailing-button-label":t.t("core","Reset search"),"show-trailing-button":""!==t.query,"aria-describedby":"unified-search-desc",placeholder:t.t("core","Search {types} …",{types:t.typesNames.join(", ")})},on:{"update:value":function(e){t.query=e},"trailing-button-click":t.onReset,input:t.onInputDebounced}}),t._v(" "),e("p",{staticClass:"hidden-visually",attrs:{id:"unified-search-desc"}},[t._v("\n\t\t\t\t"+t._s(t.t("core","Search starts once you start typing and results may be reached with the arrow keys"))+"\n\t\t\t")]),t._v(" "),t.availableFilters.length>1?e("NcActions",{staticClass:"unified-search__filters",attrs:{placement:"bottom-end",container:".unified-search__input-wrapper"}},t._l(t.availableFilters,(function(n){return e("NcActionButton",{key:n,attrs:{icon:"icon-filter"},on:{click:function(e){return e.stopPropagation(),t.onClickFilter(`in:${n}`)}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("core","Search for {name} only",{name:t.typesMap[n]}))+"\n\t\t\t\t")])})),1):t._e()],1)]),t._v(" "),t.hasResults?t._l(t.orderedResults,(function(n,i){let{list:r,type:a}=n;return[e("h2",{key:a,staticClass:"unified-search__results-header"},[t._v("\n\t\t\t"+t._s(t.typesMap[a])+"\n\t\t")]),t._v(" "),e("ul",{key:a,staticClass:"unified-search__results",class:`unified-search__results-${a}`,attrs:{"aria-label":t.typesMap[a]}},[t._l(t.limitIfAny(r,a),(function(n,r){return e("li",{key:n.resourceUrl},[e("SearchResult",t._b({attrs:{query:t.query,focused:0===t.focused&&0===i&&0===r},on:{focus:t.setFocusedIndex}},"SearchResult",n,!1))],1)})),t._v(" "),e("li",[t.reached[a]?t._e():e("SearchResult",{staticClass:"unified-search__result-more",attrs:{title:t.loading[a]?t.t("core","Loading more results …"):t.t("core","Load more results"),"icon-class":t.loading[a]?"icon-loading-small":""},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.loadMore(a)},focus:t.setFocusedIndex}})],1)],2)]})):[t.isLoading?e("SearchResultPlaceholders"):t.isValidQuery?e("NcEmptyContent",{attrs:{title:t.validQueryTitle},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Magnify")]},proxy:!0}],null,!1,931131664)}):!t.isLoading||t.isShortQuery?e("NcEmptyContent",{attrs:{title:t.t("core","Start typing to search"),description:t.shortQueryDescription},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Magnify")]},proxy:!0}],null,!1,931131664)}):t._e()]],2)}),[],!1,null,"d7d405f2",null).exports;r.nc=(0,s.aV)();const tt=(0,a.YK)().setApp("unified-search").detectUser().build();c.Ay.mixin({data:()=>({logger:tt}),methods:{t:o.Tl,n:o.zw}}),new c.Ay({el:"#unified-search",name:"UnifiedSearchRoot",render:t=>t(X)})},23940:(t,e,n)=>{n.d(e,{A:()=>o});var i=n(71354),r=n.n(i),a=n(76314),s=n.n(a)()(r());s.push([t.id,".unified-search__result[data-v-0d55d2bc]{display:flex;align-items:center;height:44px;padding:10px;border:2px solid rgba(0,0,0,0);border-radius:var(--border-radius-large) !important}.unified-search__result--focused[data-v-0d55d2bc]{background-color:var(--color-background-hover)}.unified-search__result[data-v-0d55d2bc]:active,.unified-search__result[data-v-0d55d2bc]:hover,.unified-search__result[data-v-0d55d2bc]:focus{background-color:var(--color-background-hover);border:2px solid var(--color-border-maxcontrast)}.unified-search__result *[data-v-0d55d2bc]{cursor:pointer}.unified-search__result-icon[data-v-0d55d2bc]{overflow:hidden;width:44px;height:44px;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center center;background-size:32px}.unified-search__result-icon--rounded[data-v-0d55d2bc]{border-radius:22px}.unified-search__result-icon--no-preview[data-v-0d55d2bc]{background-size:32px}.unified-search__result-icon--with-thumbnail[data-v-0d55d2bc]{background-size:cover}.unified-search__result-icon--with-thumbnail[data-v-0d55d2bc]:not(.unified-search__result-icon--rounded){max-width:42px;max-height:42px;border:1px solid var(--color-border)}.unified-search__result-icon img[data-v-0d55d2bc]{width:100%;height:100%;object-fit:cover;object-position:center}.unified-search__result-icon[data-v-0d55d2bc],.unified-search__result-actions[data-v-0d55d2bc]{flex:0 0 44px}.unified-search__result-content[data-v-0d55d2bc]{display:flex;align-items:center;flex:1 1 100%;flex-wrap:wrap;min-width:0;padding-inline-start:10px}.unified-search__result-line-one[data-v-0d55d2bc],.unified-search__result-line-two[data-v-0d55d2bc]{overflow:hidden;flex:1 1 100%;margin:1px 0;white-space:nowrap;text-overflow:ellipsis;color:inherit;font-size:inherit}.unified-search__result-line-two[data-v-0d55d2bc]{opacity:.7;font-size:var(--default-font-size)}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/LegacySearchResult.vue"],names:[],mappings:"AAMA,yCACC,YAAA,CACA,kBAAA,CACA,WANgB,CAOhB,YANQ,CAOR,8BAAA,CACA,mDAAA,CAEA,kDACC,8CAAA,CAGD,8IAGC,8CAAA,CACA,gDAAA,CAGD,2CACC,cAAA,CAGD,8CACC,eAAA,CACA,UA5Be,CA6Bf,WA7Be,CA8Bf,kCAAA,CACA,2BAAA,CACA,iCAAA,CACA,oBAAA,CACA,uDACC,kBAAA,CAED,0DACC,oBAAA,CAED,8DACC,qBAAA,CAED,yGAEC,cAAA,CACA,eAAA,CACA,oCAAA,CAGD,kDAEC,UAAA,CACA,WAAA,CAEA,gBAAA,CACA,sBAAA,CAIF,+FAEC,aAAA,CAGD,iDACC,YAAA,CACA,kBAAA,CACA,aAAA,CACA,cAAA,CAEA,WAAA,CACA,yBAvEO,CA0ER,oGAEC,eAAA,CACA,aAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,aAAA,CACA,iBAAA,CAED,kDACC,UAAA,CACA,kCAAA",sourcesContent:['\n@use "sass:math";\n\n$clickable-area: 44px;\n$margin: 10px;\n\n.unified-search__result {\n\tdisplay: flex;\n\talign-items: center;\n\theight: $clickable-area;\n\tpadding: $margin;\n\tborder: 2px solid transparent;\n\tborder-radius: var(--border-radius-large) !important;\n\n\t&--focused {\n\t\tbackground-color: var(--color-background-hover);\n\t}\n\n\t&:active,\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder: 2px solid var(--color-border-maxcontrast);\n\t}\n\n\t* {\n\t\tcursor: pointer;\n\t}\n\n\t&-icon {\n\t\toverflow: hidden;\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\tborder-radius: var(--border-radius);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center center;\n\t\tbackground-size: 32px;\n\t\t&--rounded {\n\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t}\n\t\t&--no-preview {\n\t\t\tbackground-size: 32px;\n\t\t}\n\t\t&--with-thumbnail {\n\t\t\tbackground-size: cover;\n\t\t}\n\t\t&--with-thumbnail:not(&--rounded) {\n\t\t\t// compensate for border\n\t\t\tmax-width: $clickable-area - 2px;\n\t\t\tmax-height: $clickable-area - 2px;\n\t\t\tborder: 1px solid var(--color-border);\n\t\t}\n\n\t\timg {\n\t\t\t// Make sure to keep ratio\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\n\t\t\tobject-fit: cover;\n\t\t\tobject-position: center;\n\t\t}\n\t}\n\n\t&-icon,\n\t&-actions {\n\t\tflex: 0 0 $clickable-area;\n\t}\n\n\t&-content {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex: 1 1 100%;\n\t\tflex-wrap: wrap;\n\t\t// Set to minimum and gro from it\n\t\tmin-width: 0;\n\t\tpadding-inline-start: $margin;\n\t}\n\n\t&-line-one,\n\t&-line-two {\n\t\toverflow: hidden;\n\t\tflex: 1 1 100%;\n\t\tmargin: 1px 0;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Use the same color as the `a`\n\t\tcolor: inherit;\n\t\tfont-size: inherit;\n\t}\n\t&-line-two {\n\t\topacity: .7;\n\t\tfont-size: var(--default-font-size);\n\t}\n}\n\n'],sourceRoot:""}]);const o=s},77026:(t,e,n)=>{n.d(e,{A:()=>o});var i=n(71354),r=n.n(i),a=n(76314),s=n.n(a)()(r());s.push([t.id,".unified-search__result-placeholder-gradient[data-v-77826dca]{position:fixed;height:0;width:0;z-index:-1}.unified-search__result-placeholder[data-v-77826dca]{width:calc(100% - 2*10px);height:44px;margin:10px}.unified-search__result-placeholder-icon[data-v-77826dca]{width:44px;height:44px;rx:var(--border-radius);ry:var(--border-radius)}.unified-search__result-placeholder-line-one[data-v-77826dca],.unified-search__result-placeholder-line-two[data-v-77826dca]{width:calc(100% - 54px);height:1em;x:54px}.unified-search__result-placeholder-line-one[data-v-77826dca]{y:5px}.unified-search__result-placeholder-line-two[data-v-77826dca]{y:25px}","",{version:3,sources:["webpack://./core/src/components/UnifiedSearch/SearchResultPlaceholders.vue"],names:[],mappings:"AAIA,8DACC,cAAA,CACA,QAAA,CACA,OAAA,CACA,UAAA,CAGD,qDACC,yBAAA,CACA,WAZgB,CAahB,WAZQ,CAcR,0DACC,UAhBe,CAiBf,WAjBe,CAkBf,uBAAA,CACA,uBAAA,CAGD,4HAEC,uBAAA,CACA,UAAA,CACA,MAAA,CAGD,8DACC,KAAA,CAGD,8DACC,MAAA",sourcesContent:["\n$clickable-area: 44px;\n$margin: 10px;\n\n.unified-search__result-placeholder-gradient {\n\tposition: fixed;\n\theight: 0;\n\twidth: 0;\n\tz-index: -1;\n}\n\n.unified-search__result-placeholder {\n\twidth: calc(100% - 2 * #{$margin});\n\theight: $clickable-area;\n\tmargin: $margin;\n\n\t&-icon {\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\trx: var(--border-radius);\n\t\try: var(--border-radius);\n\t}\n\n\t&-line-one,\n\t&-line-two {\n\t\twidth: calc(100% - #{$margin + $clickable-area});\n\t\theight: 1em;\n\t\tx: $margin + $clickable-area;\n\t}\n\n\t&-line-one {\n\t\ty: 5px;\n\t}\n\n\t&-line-two {\n\t\ty: 25px;\n\t}\n}\n\n"],sourceRoot:""}]);const o=s},88435:(t,e,n)=>{n.d(e,{A:()=>o});var i=n(71354),r=n.n(i),a=n(76314),s=n.n(a)()(r());s.push([t.id,".unified-search__trigger-icon[data-v-d7d405f2]{color:var(--color-background-plain-text) !important}.unified-search__input-wrapper[data-v-d7d405f2]{position:sticky;z-index:2;top:0;display:inline-flex;flex-direction:column;align-items:center;width:100%;background-color:var(--color-main-background)}.unified-search__input-wrapper label[for=unified-search__input][data-v-d7d405f2]{align-self:flex-start;font-weight:bold;font-size:19px;margin-inline-start:13px}.unified-search__input-row[data-v-d7d405f2]{display:flex;width:100%;align-items:center}.unified-search__filters[data-v-d7d405f2]{margin-block:10px;margin-inline:5px 0;padding-top:5px}.unified-search__filters ul[data-v-d7d405f2]{display:inline-flex;justify-content:space-between}.unified-search__form[data-v-d7d405f2]{position:relative;width:100%;margin:10px 0}.unified-search__form[data-v-d7d405f2]::after{inset-inline-start:auto 10px}.unified-search__form-input[data-v-d7d405f2],.unified-search__form-reset[data-v-d7d405f2]{margin:5px}.unified-search__form-input[data-v-d7d405f2]{width:100%;height:34px;padding:10px}.unified-search__form-input[data-v-d7d405f2]:focus,.unified-search__form-input[data-v-d7d405f2]:focus-visible,.unified-search__form-input[data-v-d7d405f2]:active{border-color:2px solid var(--color-main-text) !important;box-shadow:0 0 0 2px var(--color-main-background) !important}.unified-search__form-input[data-v-d7d405f2],.unified-search__form-input[placeholder][data-v-d7d405f2],.unified-search__form-input[data-v-d7d405f2]::placeholder{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.unified-search__form-input[data-v-d7d405f2]::-webkit-search-decoration,.unified-search__form-input[data-v-d7d405f2]::-webkit-search-cancel-button,.unified-search__form-input[data-v-d7d405f2]::-webkit-search-results-button,.unified-search__form-input[data-v-d7d405f2]::-webkit-search-results-decoration{-webkit-appearance:none}.unified-search__form-reset[data-v-d7d405f2],.unified-search__form-submit[data-v-d7d405f2]{position:absolute;top:0;inset-inline-end:4px;width:24px;height:24px;min-height:30px;padding:0;opacity:.5;border:none;background-color:rgba(0,0,0,0);margin-inline-end:0}.unified-search__form-reset[data-v-d7d405f2]:hover,.unified-search__form-reset[data-v-d7d405f2]:focus,.unified-search__form-reset[data-v-d7d405f2]:active,.unified-search__form-submit[data-v-d7d405f2]:hover,.unified-search__form-submit[data-v-d7d405f2]:focus,.unified-search__form-submit[data-v-d7d405f2]:active{opacity:1}.unified-search__form-submit[data-v-d7d405f2]{inset-inline-end:28px}.unified-search__results[data-v-d7d405f2]{display:flex;flex-direction:column;gap:4px}.unified-search__results-header[data-v-d7d405f2]{display:block;margin:10px;margin-bottom:6px;margin-inline-start:13px;color:var(--color-primary-element);font-size:19px;font-weight:bold}.unified-search[data-v-d7d405f2] .unified-search__result-more{color:var(--color-text-maxcontrast)}.unified-search .empty-content[data-v-d7d405f2]{margin:10vh 0}.unified-search .empty-content[data-v-d7d405f2] .empty-content__title{font-weight:normal;font-size:var(--default-font-size);text-align:center}","",{version:3,sources:["webpack://./core/src/views/LegacyUnifiedSearch.vue"],names:[],mappings:"AAQC,+CACC,mDAAA,CAGD,gDACC,eAAA,CAEA,SAAA,CACA,KAAA,CACA,mBAAA,CACA,qBAAA,CACA,kBAAA,CACA,UAAA,CACA,6CAAA,CAEA,iFACC,qBAAA,CACA,gBAAA,CACA,cAAA,CACA,wBAAA,CAIF,4CACC,YAAA,CACA,UAAA,CACA,kBAAA,CAGD,0CACC,iBAnCO,CAoCP,mBAAA,CACA,eAAA,CACA,6CACC,mBAAA,CACA,6BAAA,CAIF,uCACC,iBAAA,CACA,UAAA,CACA,aAAA,CAGA,8CACA,4BAAA,CAGA,0FAEC,UAAA,CAGD,6CACC,UAAA,CACA,WA5DY,CA6DZ,YA5Da,CA8Db,kKAGC,wDAAA,CACA,4DAAA,CAGD,iKAGC,eAAA,CACA,kBAAA,CACA,sBAAA,CAID,+SAIC,uBAAA,CAIF,2FAEC,iBAAA,CACA,KAAA,CACA,oBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,SAAA,CACA,UAAA,CACA,WAAA,CACA,8BAAA,CACA,mBAAA,CAEA,uTAGC,SAAA,CAIF,8CACC,qBAAA,CAIF,0CACC,YAAA,CACA,qBAAA,CACA,OAAA,CAEA,iDACC,aAAA,CACA,WAzHM,CA0HN,iBAAA,CACA,wBAAA,CACA,kCAAA,CACA,cAAA,CACA,gBAAA,CAIF,8DACC,mCAAA,CAGD,gDACC,aAAA,CAEA,sEACC,kBAAA,CACA,kCAAA,CACA,iBAAA",sourcesContent:['\n@use "sass:math";\n\n$margin: 10px;\n$input-height: 34px;\n$input-padding: 10px;\n\n.unified-search {\n\t&__trigger-icon {\n\t\tcolor: var(--color-background-plain-text) !important;\n\t}\n\n\t&__input-wrapper {\n\t\tposition: sticky;\n\t\t// above search results\n\t\tz-index: 2;\n\t\ttop: 0;\n\t\tdisplay: inline-flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\twidth: 100%;\n\t\tbackground-color: var(--color-main-background);\n\n\t\tlabel[for="unified-search__input"] {\n\t\t\talign-self: flex-start;\n\t\t\tfont-weight: bold;\n\t\t\tfont-size: 19px;\n\t\t\tmargin-inline-start: 13px;\n\t\t}\n\t}\n\n\t&__input-row {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\talign-items: center;\n\t}\n\n\t&__filters {\n\t\tmargin-block: $margin;\n\t\tmargin-inline: math.div($margin, 2) 0;\n\t\tpadding-top: 5px;\n\t\tul {\n\t\t\tdisplay: inline-flex;\n\t\t\tjustify-content: space-between;\n\t\t}\n\t}\n\n\t&__form {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\tmargin: $margin 0;\n\n\t\t// Loading spinner\n\t\t&::after {\n\t\tinset-inline-start: auto $input-padding;\n\t\t}\n\n\t\t&-input,\n\t\t&-reset {\n\t\t\tmargin: math.div($input-padding, 2);\n\t\t}\n\n\t\t&-input {\n\t\t\twidth: 100%;\n\t\t\theight: $input-height;\n\t\t\tpadding: $input-padding;\n\n\t\t\t&:focus,\n\t\t\t&:focus-visible,\n\t\t\t&:active {\n\t\t\t\tborder-color: 2px solid var(--color-main-text) !important;\n\t\t\t\tbox-shadow: 0 0 0 2px var(--color-main-background) !important;\n\t\t\t}\n\n\t\t\t&,\n\t\t\t&[placeholder],\n\t\t\t&::placeholder {\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\n\t\t\t// Hide webkit clear search\n\t\t\t&::-webkit-search-decoration,\n\t\t\t&::-webkit-search-cancel-button,\n\t\t\t&::-webkit-search-results-button,\n\t\t\t&::-webkit-search-results-decoration {\n\t\t\t\t-webkit-appearance: none;\n\t\t\t}\n\t\t}\n\n\t\t&-reset,\n\t\t&-submit {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tinset-inline-end: 4px;\n\t\t\twidth: $input-height - $input-padding;\n\t\t\theight: $input-height - $input-padding;\n\t\t\tmin-height: 30px;\n\t\t\tpadding: 0;\n\t\t\topacity: .5;\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t\tmargin-inline-end: 0;\n\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t&-submit {\n\t\t\tinset-inline-end: 28px;\n\t\t}\n\t}\n\n\t&__results {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 4px;\n\n\t\t&-header {\n\t\t\tdisplay: block;\n\t\t\tmargin: $margin;\n\t\t\tmargin-bottom: $margin - 4px;\n\t\t\tmargin-inline-start: 13px;\n\t\t\tcolor: var(--color-primary-element);\n\t\t\tfont-size: 19px;\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n\n\t:deep(.unified-search__result-more) {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t.empty-content {\n\t\tmargin: 10vh 0;\n\n\t\t:deep(.empty-content__title) {\n\t\t\tfont-weight: normal;\n\t\t\tfont-size: var(--default-font-size);\n\t\t\ttext-align: center;\n\t\t}\n\t}\n}\n\n'],sourceRoot:""}]);const o=s}},s={};function o(t){var e=s[t];if(void 0!==e)return e.exports;var n=s[t]={id:t,loaded:!1,exports:{}};return a[t].call(n.exports,n,n.exports,o),n.loaded=!0,n.exports}o.m=a,e=[],o.O=(t,n,i,r)=>{if(!n){var a=1/0;for(l=0;l<e.length;l++){n=e[l][0],i=e[l][1],r=e[l][2];for(var s=!0,c=0;c<n.length;c++)(!1&r||a>=r)&&Object.keys(o.O).every((t=>o.O[t](n[c])))?n.splice(c--,1):(s=!1,r<a&&(a=r));if(s){e.splice(l--,1);var d=i();void 0!==d&&(t=d)}}return t}r=r||0;for(var l=e.length;l>0&&e[l-1][2]>r;l--)e[l]=e[l-1];e[l]=[n,i,r]},o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.f={},o.e=t=>Promise.all(Object.keys(o.f).reduce(((e,n)=>(o.f[n](t,e),e)),[])),o.u=t=>t+"-"+t+".js?v="+{2441:"fc741cf57e9647f370a3",5862:"7b9b02dc0a1b898066ef",7874:"3ea1c62ce5f0e7d75e81"}[t],o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i={},r="nextcloud:",o.l=(t,e,n,a)=>{if(i[t])i[t].push(e);else{var s,c;if(void 0!==n)for(var d=document.getElementsByTagName("script"),l=0;l<d.length;l++){var u=d[l];if(u.getAttribute("src")==t||u.getAttribute("data-webpack")==r+n){s=u;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",r+n),s.src=t),i[t]=[e];var h=(e,n)=>{s.onerror=s.onload=null,clearTimeout(A);var r=i[t];if(delete i[t],s.parentNode&&s.parentNode.removeChild(s),r&&r.forEach((t=>t(n))),e)return e(n)},A=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),o.j=1684,(()=>{var t;o.g.importScripts&&(t=o.g.location+"");var e=o.g.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");if(n.length)for(var i=n.length-1;i>-1&&(!t||!/^http(s?):/.test(t));)t=n[i--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=t})(),(()=>{o.b=document.baseURI||self.location.href;var t={1684:0};o.f.j=(e,n)=>{var i=o.o(t,e)?t[e]:void 0;if(0!==i)if(i)n.push(i[2]);else{var r=new Promise(((n,r)=>i=t[e]=[n,r]));n.push(i[2]=r);var a=o.p+o.u(e),s=new Error;o.l(a,(n=>{if(o.o(t,e)&&(0!==(i=t[e])&&(t[e]=void 0),i)){var r=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.src;s.message="Loading chunk "+e+" failed.\n("+r+": "+a+")",s.name="ChunkLoadError",s.type=r,s.request=a,i[1](s)}}),"chunk-"+e,e)}},o.O.j=e=>0===t[e];var e=(e,n)=>{var i,r,a=n[0],s=n[1],c=n[2],d=0;if(a.some((e=>0!==t[e]))){for(i in s)o.o(s,i)&&(o.m[i]=s[i]);if(c)var l=c(o)}for(e&&e(n);d<a.length;d++)r=a[d],o.o(t,r)&&t[r]&&t[r][0](),t[r]=0;return o.O(l)},n=self.webpackChunknextcloud=self.webpackChunknextcloud||[];n.forEach(e.bind(null,0)),n.push=e.bind(null,n.push.bind(n))})(),o.nc=void 0;var c=o.O(void 0,[4208],(()=>o(8192)));c=o.O(c)})();
+//# sourceMappingURL=core-legacy-unified-search.js.map?v=12c905e22431019f3279 \ No newline at end of file
diff --git a/dist/core-legacy-unified-search.js.map b/dist/core-legacy-unified-search.js.map
index 13561657b47..435f68879d2 100644
--- a/dist/core-legacy-unified-search.js.map
+++ b/dist/core-legacy-unified-search.js.map
@@ -1 +1 @@
-{"version":3,"file":"core-legacy-unified-search.js?v=9699b0f2d1435c3a35b3","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/core/src/components/UnifiedSearch/LegacySearchResult.vue","webpack:///nextcloud/core/src/components/UnifiedSearch/LegacySearchResult.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/components/UnifiedSearch/LegacySearchResult.vue?c017","webpack://nextcloud/./core/src/components/UnifiedSearch/LegacySearchResult.vue?1729","webpack://nextcloud/./core/src/components/UnifiedSearch/LegacySearchResult.vue?de39","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResultPlaceholders.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResultPlaceholders.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResultPlaceholders.vue?ff60","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResultPlaceholders.vue?7f72","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResultPlaceholders.vue?cc53","webpack:///nextcloud/core/src/services/LegacyUnifiedSearchService.js","webpack:///nextcloud/core/src/views/LegacyUnifiedSearch.vue","webpack:///nextcloud/core/src/views/LegacyUnifiedSearch.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/LegacyUnifiedSearch.vue?5f2e","webpack://nextcloud/./core/src/views/LegacyUnifiedSearch.vue?bfe7","webpack://nextcloud/./core/src/views/LegacyUnifiedSearch.vue?b8e8","webpack:///nextcloud/core/src/legacy-unified-search.js","webpack:///nextcloud/core/src/components/UnifiedSearch/LegacySearchResult.vue?vue&type=style&index=0&id=0d55d2bc&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResultPlaceholders.vue?vue&type=style&index=0&id=77826dca&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/views/LegacyUnifiedSearch.vue?vue&type=style&index=0&id=7def0bbf&prod&lang=scss&scoped=true","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<a :href=\"resourceUrl || '#'\"\n\t\tclass=\"unified-search__result\"\n\t\t:class=\"{\n\t\t\t'unified-search__result--focused': focused,\n\t\t}\"\n\t\t@click=\"reEmitEvent\"\n\t\t@focus=\"reEmitEvent\">\n\n\t\t<!-- Icon describing the result -->\n\t\t<div class=\"unified-search__result-icon\"\n\t\t\t:class=\"{\n\t\t\t\t'unified-search__result-icon--rounded': rounded,\n\t\t\t\t'unified-search__result-icon--no-preview': !hasValidThumbnail && !loaded,\n\t\t\t\t'unified-search__result-icon--with-thumbnail': hasValidThumbnail && loaded,\n\t\t\t\t[icon]: !loaded && !isIconUrl,\n\t\t\t}\"\n\t\t\t:style=\"{\n\t\t\t\tbackgroundImage: isIconUrl ? `url(${icon})` : '',\n\t\t\t}\">\n\n\t\t\t<img v-if=\"hasValidThumbnail\"\n\t\t\t\tv-show=\"loaded\"\n\t\t\t\t:src=\"thumbnailUrl\"\n\t\t\t\talt=\"\"\n\t\t\t\t@error=\"onError\"\n\t\t\t\t@load=\"onLoad\">\n\t\t</div>\n\n\t\t<!-- Title and sub-title -->\n\t\t<span class=\"unified-search__result-content\">\n\t\t\t<span class=\"unified-search__result-line-one\" :title=\"title\">\n\t\t\t\t<NcHighlight :text=\"title\" :search=\"query\" />\n\t\t\t</span>\n\t\t\t<span v-if=\"subline\" class=\"unified-search__result-line-two\" :title=\"subline\">{{ subline }}</span>\n\t\t</span>\n\t</a>\n</template>\n\n<script>\nimport NcHighlight from '@nextcloud/vue/dist/Components/NcHighlight.js'\n\nexport default {\n\tname: 'LegacySearchResult',\n\n\tcomponents: {\n\t\tNcHighlight,\n\t},\n\n\tprops: {\n\t\tthumbnailUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tsubline: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tresourceUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\trounded: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tquery: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Only used for the first result as a visual feedback\n\t\t * so we can keep the search input focused but pressing\n\t\t * enter still opens the first result\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\thasValidThumbnail: this.thumbnailUrl && this.thumbnailUrl.trim() !== '',\n\t\t\tloaded: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisIconUrl() {\n\t\t\t// If we're facing an absolute url\n\t\t\tif (this.icon.startsWith('/')) {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\t// Otherwise, let's check if this is a valid url\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-new\n\t\t\t\tnew URL(this.icon)\n\t\t\t} catch {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t},\n\n\twatch: {\n\t\t// Make sure to reset state on change even when vue recycle the component\n\t\tthumbnailUrl() {\n\t\t\tthis.hasValidThumbnail = this.thumbnailUrl && this.thumbnailUrl.trim() !== ''\n\t\t\tthis.loaded = false\n\t\t},\n\t},\n\n\tmethods: {\n\t\treEmitEvent(e) {\n\t\t\tthis.$emit(e.type, e)\n\t\t},\n\n\t\t/**\n\t\t * If the image fails to load, fallback to iconClass\n\t\t */\n\t\tonError() {\n\t\t\tthis.hasValidThumbnail = false\n\t\t},\n\n\t\tonLoad() {\n\t\t\tthis.loaded = true\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use \"sass:math\";\n\n$clickable-area: 44px;\n$margin: 10px;\n\n.unified-search__result {\n\tdisplay: flex;\n\talign-items: center;\n\theight: $clickable-area;\n\tpadding: $margin;\n\tborder: 2px solid transparent;\n\tborder-radius: var(--border-radius-large) !important;\n\n\t&--focused {\n\t\tbackground-color: var(--color-background-hover);\n\t}\n\n\t&:active,\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder: 2px solid var(--color-border-maxcontrast);\n\t}\n\n\t* {\n\t\tcursor: pointer;\n\t}\n\n\t&-icon {\n\t\toverflow: hidden;\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\tborder-radius: var(--border-radius);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center center;\n\t\tbackground-size: 32px;\n\t\t&--rounded {\n\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t}\n\t\t&--no-preview {\n\t\t\tbackground-size: 32px;\n\t\t}\n\t\t&--with-thumbnail {\n\t\t\tbackground-size: cover;\n\t\t}\n\t\t&--with-thumbnail:not(&--rounded) {\n\t\t\t// compensate for border\n\t\t\tmax-width: $clickable-area - 2px;\n\t\t\tmax-height: $clickable-area - 2px;\n\t\t\tborder: 1px solid var(--color-border);\n\t\t}\n\n\t\timg {\n\t\t\t// Make sure to keep ratio\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\n\t\t\tobject-fit: cover;\n\t\t\tobject-position: center;\n\t\t}\n\t}\n\n\t&-icon,\n\t&-actions {\n\t\tflex: 0 0 $clickable-area;\n\t}\n\n\t&-content {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex: 1 1 100%;\n\t\tflex-wrap: wrap;\n\t\t// Set to minimum and gro from it\n\t\tmin-width: 0;\n\t\tpadding-inline-start: $margin;\n\t}\n\n\t&-line-one,\n\t&-line-two {\n\t\toverflow: hidden;\n\t\tflex: 1 1 100%;\n\t\tmargin: 1px 0;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Use the same color as the `a`\n\t\tcolor: inherit;\n\t\tfont-size: inherit;\n\t}\n\t&-line-two {\n\t\topacity: .7;\n\t\tfont-size: var(--default-font-size);\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacySearchResult.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!./LegacySearchResult.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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacySearchResult.vue?vue&type=style&index=0&id=0d55d2bc&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacySearchResult.vue?vue&type=style&index=0&id=0d55d2bc&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LegacySearchResult.vue?vue&type=template&id=0d55d2bc&scoped=true\"\nimport script from \"./LegacySearchResult.vue?vue&type=script&lang=js\"\nexport * from \"./LegacySearchResult.vue?vue&type=script&lang=js\"\nimport style0 from \"./LegacySearchResult.vue?vue&type=style&index=0&id=0d55d2bc&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 \"0d55d2bc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',{staticClass:\"unified-search__result\",class:{\n\t\t'unified-search__result--focused': _vm.focused,\n\t},attrs:{\"href\":_vm.resourceUrl || '#'},on:{\"click\":_vm.reEmitEvent,\"focus\":_vm.reEmitEvent}},[_c('div',{staticClass:\"unified-search__result-icon\",class:{\n\t\t\t'unified-search__result-icon--rounded': _vm.rounded,\n\t\t\t'unified-search__result-icon--no-preview': !_vm.hasValidThumbnail && !_vm.loaded,\n\t\t\t'unified-search__result-icon--with-thumbnail': _vm.hasValidThumbnail && _vm.loaded,\n\t\t\t[_vm.icon]: !_vm.loaded && !_vm.isIconUrl,\n\t\t},style:({\n\t\t\tbackgroundImage: _vm.isIconUrl ? `url(${_vm.icon})` : '',\n\t\t})},[(_vm.hasValidThumbnail)?_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loaded),expression:\"loaded\"}],attrs:{\"src\":_vm.thumbnailUrl,\"alt\":\"\"},on:{\"error\":_vm.onError,\"load\":_vm.onLoad}}):_vm._e()]),_vm._v(\" \"),_c('span',{staticClass:\"unified-search__result-content\"},[_c('span',{staticClass:\"unified-search__result-line-one\",attrs:{\"title\":_vm.title}},[_c('NcHighlight',{attrs:{\"text\":_vm.title,\"search\":_vm.query}})],1),_vm._v(\" \"),(_vm.subline)?_c('span',{staticClass:\"unified-search__result-line-two\",attrs:{\"title\":_vm.subline}},[_vm._v(_vm._s(_vm.subline))]):_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!./SearchResultPlaceholders.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!./SearchResultPlaceholders.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<ul>\n\t\t<!-- Placeholder animation -->\n\t\t<svg class=\"unified-search__result-placeholder-gradient\">\n\t\t\t<defs>\n\t\t\t\t<linearGradient id=\"unified-search__result-placeholder-gradient\">\n\t\t\t\t\t<stop offset=\"0%\" :stop-color=\"light\">\n\t\t\t\t\t\t<animate attributeName=\"stop-color\"\n\t\t\t\t\t\t\t:values=\"`${light}; ${light}; ${dark}; ${dark}; ${light}`\"\n\t\t\t\t\t\t\tdur=\"2s\"\n\t\t\t\t\t\t\trepeatCount=\"indefinite\" />\n\t\t\t\t\t</stop>\n\t\t\t\t\t<stop offset=\"100%\" :stop-color=\"dark\">\n\t\t\t\t\t\t<animate attributeName=\"stop-color\"\n\t\t\t\t\t\t\t:values=\"`${dark}; ${light}; ${light}; ${dark}; ${dark}`\"\n\t\t\t\t\t\t\tdur=\"2s\"\n\t\t\t\t\t\t\trepeatCount=\"indefinite\" />\n\t\t\t\t\t</stop>\n\t\t\t\t</linearGradient>\n\t\t\t</defs>\n\t\t</svg>\n\n\t\t<!-- Placeholders -->\n\t\t<li v-for=\"placeholder in [1, 2, 3]\" :key=\"placeholder\">\n\t\t\t<svg class=\"unified-search__result-placeholder\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tfill=\"url(#unified-search__result-placeholder-gradient)\">\n\t\t\t\t<rect class=\"unified-search__result-placeholder-icon\" />\n\t\t\t\t<rect class=\"unified-search__result-placeholder-line-one\" />\n\t\t\t\t<rect class=\"unified-search__result-placeholder-line-two\" :style=\"{width: `calc(${randWidth()}%)`}\" />\n\t\t\t</svg>\n\t\t</li>\n\t</ul>\n</template>\n\n<script>\nexport default {\n\tname: 'SearchResultPlaceholders',\n\n\tdata() {\n\t\treturn {\n\t\t\tlight: null,\n\t\t\tdark: null,\n\t\t}\n\t},\n\tmounted() {\n\t\tconst styles = getComputedStyle(document.documentElement)\n\t\tthis.dark = styles.getPropertyValue('--color-placeholder-dark')\n\t\tthis.light = styles.getPropertyValue('--color-placeholder-light')\n\t},\n\n\tmethods: {\n\t\trandWidth() {\n\t\t\treturn Math.floor(Math.random() * 20) + 30\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$clickable-area: 44px;\n$margin: 10px;\n\n.unified-search__result-placeholder-gradient {\n\tposition: fixed;\n\theight: 0;\n\twidth: 0;\n\tz-index: -1;\n}\n\n.unified-search__result-placeholder {\n\twidth: calc(100% - 2 * #{$margin});\n\theight: $clickable-area;\n\tmargin: $margin;\n\n\t&-icon {\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\trx: var(--border-radius);\n\t\try: var(--border-radius);\n\t}\n\n\t&-line-one,\n\t&-line-two {\n\t\twidth: calc(100% - #{$margin + $clickable-area});\n\t\theight: 1em;\n\t\tx: $margin + $clickable-area;\n\t}\n\n\t&-line-one {\n\t\ty: 5px;\n\t}\n\n\t&-line-two {\n\t\ty: 25px;\n\t}\n}\n\n</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResultPlaceholders.vue?vue&type=style&index=0&id=77826dca&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResultPlaceholders.vue?vue&type=style&index=0&id=77826dca&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchResultPlaceholders.vue?vue&type=template&id=77826dca&scoped=true\"\nimport script from \"./SearchResultPlaceholders.vue?vue&type=script&lang=js\"\nexport * from \"./SearchResultPlaceholders.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchResultPlaceholders.vue?vue&type=style&index=0&id=77826dca&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 \"77826dca\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',[_c('svg',{staticClass:\"unified-search__result-placeholder-gradient\"},[_c('defs',[_c('linearGradient',{attrs:{\"id\":\"unified-search__result-placeholder-gradient\"}},[_c('stop',{attrs:{\"offset\":\"0%\",\"stop-color\":_vm.light}},[_c('animate',{attrs:{\"attributeName\":\"stop-color\",\"values\":`${_vm.light}; ${_vm.light}; ${_vm.dark}; ${_vm.dark}; ${_vm.light}`,\"dur\":\"2s\",\"repeatCount\":\"indefinite\"}})]),_vm._v(\" \"),_c('stop',{attrs:{\"offset\":\"100%\",\"stop-color\":_vm.dark}},[_c('animate',{attrs:{\"attributeName\":\"stop-color\",\"values\":`${_vm.dark}; ${_vm.light}; ${_vm.light}; ${_vm.dark}; ${_vm.dark}`,\"dur\":\"2s\",\"repeatCount\":\"indefinite\"}})])],1)],1)]),_vm._v(\" \"),_vm._l(([1, 2, 3]),function(placeholder){return _c('li',{key:placeholder},[_c('svg',{staticClass:\"unified-search__result-placeholder\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"url(#unified-search__result-placeholder-gradient)\"}},[_c('rect',{staticClass:\"unified-search__result-placeholder-icon\"}),_vm._v(\" \"),_c('rect',{staticClass:\"unified-search__result-placeholder-line-one\"}),_vm._v(\" \"),_c('rect',{staticClass:\"unified-search__result-placeholder-line-two\",style:({width: `calc(${_vm.randWidth()}%)`})})])])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport axios from '@nextcloud/axios'\n\nexport const defaultLimit = loadState('unified-search', 'limit-default')\nexport const minSearchLength = loadState('unified-search', 'min-search-length', 1)\nexport const enableLiveSearch = loadState('unified-search', 'live-search', true)\n\nexport const regexFilterIn = /(^|\\s)in:([a-z_-]+)/ig\nexport const regexFilterNot = /(^|\\s)-in:([a-z_-]+)/ig\n\n/**\n * Create a cancel token\n *\n * @return {import('axios').CancelTokenSource}\n */\nconst createCancelToken = () => axios.CancelToken.source()\n\n/**\n * Get the list of available search providers\n *\n * @return {Promise<Array>}\n */\nexport async function getTypes() {\n\ttry {\n\t\tconst { data } = await axios.get(generateOcsUrl('search/providers'), {\n\t\t\tparams: {\n\t\t\t\t// Sending which location we're currently at\n\t\t\t\tfrom: window.location.pathname.replace('/index.php', '') + window.location.search,\n\t\t\t},\n\t\t})\n\t\tif ('ocs' in data && 'data' in data.ocs && Array.isArray(data.ocs.data) && data.ocs.data.length > 0) {\n\t\t\t// Providers are sorted by the api based on their order key\n\t\t\treturn data.ocs.data\n\t\t}\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n\treturn []\n}\n\n/**\n * Get the list of available search providers\n *\n * @param {object} options destructuring object\n * @param {string} options.type the type to search\n * @param {string} options.query the search\n * @param {number|string|undefined} options.cursor the offset for paginated searches\n * @return {object} {request: Promise, cancel: Promise}\n */\nexport function search({ type, query, cursor }) {\n\t/**\n\t * Generate an axios cancel token\n\t */\n\tconst cancelToken = createCancelToken()\n\n\tconst request = async () => axios.get(generateOcsUrl('search/providers/{type}/search', { type }), {\n\t\tcancelToken: cancelToken.token,\n\t\tparams: {\n\t\t\tterm: query,\n\t\t\tcursor,\n\t\t\t// Sending which location we're currently at\n\t\t\tfrom: window.location.pathname.replace('/index.php', '') + window.location.search,\n\t\t},\n\t})\n\n\treturn {\n\t\trequest,\n\t\tcancel: cancelToken.cancel,\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcHeaderMenu id=\"unified-search\"\n\t\tclass=\"unified-search\"\n\t\t:exclude-click-outside-selectors=\"['.popover']\"\n\t\t:open.sync=\"open\"\n\t\t:aria-label=\"ariaLabel\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\">\n\t\t<!-- Header icon -->\n\t\t<template #trigger>\n\t\t\t<Magnify class=\"unified-search__trigger-icon\" :size=\"20\" />\n\t\t</template>\n\n\t\t<!-- Search form & filters wrapper -->\n\t\t<div class=\"unified-search__input-wrapper\">\n\t\t\t<div class=\"unified-search__input-row\">\n\t\t\t\t<NcTextField ref=\"input\"\n\t\t\t\t\t:value.sync=\"query\"\n\t\t\t\t\ttrailing-button-icon=\"close\"\n\t\t\t\t\t:label=\"ariaLabel\"\n\t\t\t\t\t:trailing-button-label=\"t('core','Reset search')\"\n\t\t\t\t\t:show-trailing-button=\"query !== ''\"\n\t\t\t\t\taria-describedby=\"unified-search-desc\"\n\t\t\t\t\tclass=\"unified-search__form-input\"\n\t\t\t\t\t:class=\"{'unified-search__form-input--with-reset': !!query}\"\n\t\t\t\t\t:placeholder=\"t('core', 'Search {types} …', { types: typesNames.join(', ') })\"\n\t\t\t\t\t@trailing-button-click=\"onReset\"\n\t\t\t\t\t@input=\"onInputDebounced\" />\n\t\t\t\t<p id=\"unified-search-desc\" class=\"hidden-visually\">\n\t\t\t\t\t{{ t('core', 'Search starts once you start typing and results may be reached with the arrow keys') }}\n\t\t\t\t</p>\n\n\t\t\t\t<!-- Search filters -->\n\t\t\t\t<NcActions v-if=\"availableFilters.length > 1\"\n\t\t\t\t\tclass=\"unified-search__filters\"\n\t\t\t\t\tplacement=\"bottom-end\"\n\t\t\t\t\tcontainer=\".unified-search__input-wrapper\">\n\t\t\t\t\t<!-- FIXME use element ref for container after https://github.com/nextcloud/nextcloud-vue/pull/3462 -->\n\t\t\t\t\t<NcActionButton v-for=\"filter in availableFilters\"\n\t\t\t\t\t\t:key=\"filter\"\n\t\t\t\t\t\ticon=\"icon-filter\"\n\t\t\t\t\t\t@click.stop=\"onClickFilter(`in:${filter}`)\">\n\t\t\t\t\t\t{{ t('core', 'Search for {name} only', { name: typesMap[filter] }) }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcActions>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<template v-if=\"!hasResults\">\n\t\t\t<!-- Loading placeholders -->\n\t\t\t<SearchResultPlaceholders v-if=\"isLoading\" />\n\n\t\t\t<NcEmptyContent v-else-if=\"isValidQuery\"\n\t\t\t\t:title=\"validQueryTitle\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\n\t\t\t<NcEmptyContent v-else-if=\"!isLoading || isShortQuery\"\n\t\t\t\t:title=\"t('core', 'Start typing to search')\"\n\t\t\t\t:description=\"shortQueryDescription\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</template>\n\n\t\t<!-- Grouped search results -->\n\t\t<template v-for=\"({list, type}, typesIndex) in orderedResults\" v-else>\n\t\t\t<h2 :key=\"type\" class=\"unified-search__results-header\">\n\t\t\t\t{{ typesMap[type] }}\n\t\t\t</h2>\n\t\t\t<ul :key=\"type\"\n\t\t\t\tclass=\"unified-search__results\"\n\t\t\t\t:class=\"`unified-search__results-${type}`\"\n\t\t\t\t:aria-label=\"typesMap[type]\">\n\t\t\t\t<!-- Search results -->\n\t\t\t\t<li v-for=\"(result, index) in limitIfAny(list, type)\" :key=\"result.resourceUrl\">\n\t\t\t\t\t<SearchResult v-bind=\"result\"\n\t\t\t\t\t\t:query=\"query\"\n\t\t\t\t\t\t:focused=\"focused === 0 && typesIndex === 0 && index === 0\"\n\t\t\t\t\t\t@focus=\"setFocusedIndex\" />\n\t\t\t\t</li>\n\n\t\t\t\t<!-- Load more button -->\n\t\t\t\t<li>\n\t\t\t\t\t<SearchResult v-if=\"!reached[type]\"\n\t\t\t\t\t\tclass=\"unified-search__result-more\"\n\t\t\t\t\t\t:title=\"loading[type]\n\t\t\t\t\t\t\t? t('core', 'Loading more results …')\n\t\t\t\t\t\t\t: t('core', 'Load more results')\"\n\t\t\t\t\t\t:icon-class=\"loading[type] ? 'icon-loading-small' : ''\"\n\t\t\t\t\t\t@click.prevent.stop=\"loadMore(type)\"\n\t\t\t\t\t\t@focus=\"setFocusedIndex\" />\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</template>\n\t</NcHeaderMenu>\n</template>\n\n<script>\nimport debounce from 'debounce'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { showError } from '@nextcloud/dialogs'\n\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport NcHeaderMenu from '@nextcloud/vue/dist/Components/NcHeaderMenu.js'\nimport NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js'\n\nimport Magnify from 'vue-material-design-icons/Magnify.vue'\n\nimport SearchResult from '../components/UnifiedSearch/LegacySearchResult.vue'\nimport SearchResultPlaceholders from '../components/UnifiedSearch/SearchResultPlaceholders.vue'\n\nimport { minSearchLength, getTypes, search, defaultLimit, regexFilterIn, regexFilterNot, enableLiveSearch } from '../services/LegacyUnifiedSearchService.js'\n\nconst REQUEST_FAILED = 0\nconst REQUEST_OK = 1\nconst REQUEST_CANCELED = 2\n\nexport default {\n\tname: 'LegacyUnifiedSearch',\n\n\tcomponents: {\n\t\tMagnify,\n\t\tNcActionButton,\n\t\tNcActions,\n\t\tNcEmptyContent,\n\t\tNcHeaderMenu,\n\t\tSearchResult,\n\t\tSearchResultPlaceholders,\n\t\tNcTextField,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\ttypes: [],\n\n\t\t\t// Cursors per types\n\t\t\tcursors: {},\n\t\t\t// Various search limits per types\n\t\t\tlimits: {},\n\t\t\t// Loading types\n\t\t\tloading: {},\n\t\t\t// Reached search types\n\t\t\treached: {},\n\t\t\t// Pending cancellable requests\n\t\t\trequests: [],\n\t\t\t// List of all results\n\t\t\tresults: {},\n\n\t\t\tquery: '',\n\t\t\tfocused: null,\n\t\t\ttriggered: false,\n\n\t\t\tdefaultLimit,\n\t\t\tminSearchLength,\n\t\t\tenableLiveSearch,\n\n\t\t\topen: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttypesIDs() {\n\t\t\treturn this.types.map(type => type.id)\n\t\t},\n\t\ttypesNames() {\n\t\t\treturn this.types.map(type => type.name)\n\t\t},\n\t\ttypesMap() {\n\t\t\treturn this.types.reduce((prev, curr) => {\n\t\t\t\tprev[curr.id] = curr.name\n\t\t\t\treturn prev\n\t\t\t}, {})\n\t\t},\n\n\t\tariaLabel() {\n\t\t\treturn t('core', 'Search')\n\t\t},\n\n\t\t/**\n\t\t * Is there any result to display\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasResults() {\n\t\t\treturn Object.keys(this.results).length !== 0\n\t\t},\n\n\t\t/**\n\t\t * Return ordered results\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\torderedResults() {\n\t\t\treturn this.typesIDs\n\t\t\t\t.filter(type => type in this.results)\n\t\t\t\t.map(type => ({\n\t\t\t\t\ttype,\n\t\t\t\t\tlist: this.results[type],\n\t\t\t\t}))\n\t\t},\n\n\t\t/**\n\t\t * Available filters\n\t\t * We only show filters that are available on the results\n\t\t *\n\t\t * @return {string[]}\n\t\t */\n\t\tavailableFilters() {\n\t\t\treturn Object.keys(this.results)\n\t\t},\n\n\t\t/**\n\t\t * Applied filters\n\t\t *\n\t\t * @return {string[]}\n\t\t */\n\t\tusedFiltersIn() {\n\t\t\tlet match\n\t\t\tconst filters = []\n\t\t\twhile ((match = regexFilterIn.exec(this.query)) !== null) {\n\t\t\t\tfilters.push(match[2])\n\t\t\t}\n\t\t\treturn filters\n\t\t},\n\n\t\t/**\n\t\t * Applied anti filters\n\t\t *\n\t\t * @return {string[]}\n\t\t */\n\t\tusedFiltersNot() {\n\t\t\tlet match\n\t\t\tconst filters = []\n\t\t\twhile ((match = regexFilterNot.exec(this.query)) !== null) {\n\t\t\t\tfilters.push(match[2])\n\t\t\t}\n\t\t\treturn filters\n\t\t},\n\n\t\t/**\n\t\t * Valid query empty content title\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tvalidQueryTitle() {\n\t\t\treturn this.triggered\n\t\t\t\t? t('core', 'No results for {query}', { query: this.query })\n\t\t\t\t: t('core', 'Press Enter to start searching')\n\t\t},\n\n\t\t/**\n\t\t * Short query empty content description\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tshortQueryDescription() {\n\t\t\tif (!this.isShortQuery) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn n('core',\n\t\t\t\t'Please enter {minSearchLength} character or more to search',\n\t\t\t\t'Please enter {minSearchLength} characters or more to search',\n\t\t\t\tthis.minSearchLength,\n\t\t\t\t{ minSearchLength: this.minSearchLength })\n\t\t},\n\n\t\t/**\n\t\t * Is the current search too short\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisShortQuery() {\n\t\t\treturn this.query && this.query.trim().length < minSearchLength\n\t\t},\n\n\t\t/**\n\t\t * Is the current search valid\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisValidQuery() {\n\t\t\treturn this.query && this.query.trim() !== '' && !this.isShortQuery\n\t\t},\n\n\t\t/**\n\t\t * Have we reached the end of all types searches\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisDoneSearching() {\n\t\t\treturn Object.values(this.reached).every(state => state === false)\n\t\t},\n\n\t\t/**\n\t\t * Is there any search in progress\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisLoading() {\n\t\t\treturn Object.values(this.loading).some(state => state === true)\n\t\t},\n\t},\n\n\tasync created() {\n\t\tthis.types = await getTypes()\n\t\tthis.logger.debug('Unified Search initialized with the following providers', this.types)\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('files:navigation:changed', this.onNavigationChange)\n\t},\n\n\tmounted() {\n\t\t// subscribe in mounted, as onNavigationChange relys on $el\n\t\tsubscribe('files:navigation:changed', this.onNavigationChange)\n\n\t\tif (OCP.Accessibility.disableKeyboardShortcuts()) {\n\t\t\treturn\n\t\t}\n\n\t\tdocument.addEventListener('keydown', (event) => {\n\t\t\t// if not already opened, allows us to trigger default browser on second keydown\n\t\t\tif (event.ctrlKey && event.code === 'KeyF' && !this.open) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tthis.open = true\n\t\t\t} else if (event.ctrlKey && event.key === 'f' && this.open) {\n\t\t\t\t// User wants to use the native browser search, so we close ours again\n\t\t\t\tthis.open = false\n\t\t\t}\n\n\t\t\t// https://www.w3.org/WAI/GL/wiki/Using_ARIA_menus\n\t\t\tif (this.open) {\n\t\t\t\t// If arrow down, focus next result\n\t\t\t\tif (event.key === 'ArrowDown') {\n\t\t\t\t\tthis.focusNext(event)\n\t\t\t\t}\n\n\t\t\t\t// If arrow up, focus prev result\n\t\t\t\tif (event.key === 'ArrowUp') {\n\t\t\t\t\tthis.focusPrev(event)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t},\n\n\tmethods: {\n\t\tasync onOpen() {\n\t\t\t// Update types list in the background\n\t\t\tthis.types = await getTypes()\n\t\t},\n\t\tonClose() {\n\t\t\temit('nextcloud:unified-search.close')\n\t\t},\n\n\t\tonNavigationChange() {\n\t\t\tthis.$el?.querySelector?.('form[role=\"search\"]')?.reset?.()\n\t\t},\n\n\t\t/**\n\t\t * Reset the search state\n\t\t */\n\t\tonReset() {\n\t\t\temit('nextcloud:unified-search.reset')\n\t\t\tthis.logger.debug('Search reset')\n\t\t\tthis.query = ''\n\t\t\tthis.resetState()\n\t\t\tthis.focusInput()\n\t\t},\n\t\tasync resetState() {\n\t\t\tthis.cursors = {}\n\t\t\tthis.limits = {}\n\t\t\tthis.reached = {}\n\t\t\tthis.results = {}\n\t\t\tthis.focused = null\n\t\t\tthis.triggered = false\n\t\t\tawait this.cancelPendingRequests()\n\t\t},\n\n\t\t/**\n\t\t * Cancel any ongoing searches\n\t\t */\n\t\tasync cancelPendingRequests() {\n\t\t\t// Cloning so we can keep processing other requests\n\t\t\tconst requests = this.requests.slice(0)\n\t\t\tthis.requests = []\n\n\t\t\t// Cancel all pending requests\n\t\t\tawait Promise.all(requests.map(cancel => cancel()))\n\t\t},\n\n\t\t/**\n\t\t * Focus the search input on next tick\n\t\t */\n\t\tfocusInput() {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs.input.focus()\n\t\t\t\tthis.$refs.input.select()\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * If we have results already, open first one\n\t\t * If not, trigger the search again\n\t\t */\n\t\tonInputEnter() {\n\t\t\tif (this.hasResults) {\n\t\t\t\tconst results = this.getResultsList()\n\t\t\t\tresults[0].click()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.onInput()\n\t\t},\n\n\t\t/**\n\t\t * Start searching on input\n\t\t */\n\t\tasync onInput() {\n\t\t\t// emit the search query\n\t\t\temit('nextcloud:unified-search.search', { query: this.query })\n\n\t\t\t// Do not search if not long enough\n\t\t\tif (this.query.trim() === '' || this.isShortQuery) {\n\t\t\t\tfor (const type of this.typesIDs) {\n\t\t\t\t\tthis.$delete(this.results, type)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tlet types = this.typesIDs\n\t\t\tlet query = this.query\n\n\t\t\t// Filter out types\n\t\t\tif (this.usedFiltersNot.length > 0) {\n\t\t\t\ttypes = this.typesIDs.filter(type => this.usedFiltersNot.indexOf(type) === -1)\n\t\t\t}\n\n\t\t\t// Only use those filters if any and check if they are valid\n\t\t\tif (this.usedFiltersIn.length > 0) {\n\t\t\t\ttypes = this.typesIDs.filter(type => this.usedFiltersIn.indexOf(type) > -1)\n\t\t\t}\n\n\t\t\t// Remove any filters from the query\n\t\t\tquery = query.replace(regexFilterIn, '').replace(regexFilterNot, '')\n\n\t\t\t// Reset search if the query changed\n\t\t\tawait this.resetState()\n\t\t\tthis.triggered = true\n\n\t\t\tif (!types.length) {\n\t\t\t\t// no results since no types were selected\n\t\t\t\tthis.logger.error('No types to search in')\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.$set(this.loading, 'all', true)\n\t\t\tthis.logger.debug(`Searching ${query} in`, types)\n\n\t\t\tPromise.all(types.map(async type => {\n\t\t\t\ttry {\n\t\t\t\t\t// Init cancellable request\n\t\t\t\t\tconst { request, cancel } = search({ type, query })\n\t\t\t\t\tthis.requests.push(cancel)\n\n\t\t\t\t\t// Fetch results\n\t\t\t\t\tconst { data } = await request()\n\n\t\t\t\t\t// Process results\n\t\t\t\t\tif (data.ocs.data.entries.length > 0) {\n\t\t\t\t\t\tthis.$set(this.results, type, data.ocs.data.entries)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.$delete(this.results, type)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Save cursor if any\n\t\t\t\t\tif (data.ocs.data.cursor) {\n\t\t\t\t\t\tthis.$set(this.cursors, type, data.ocs.data.cursor)\n\t\t\t\t\t} else if (!data.ocs.data.isPaginated) {\n\t\t\t\t\t// If no cursor and no pagination, we save the default amount\n\t\t\t\t\t// provided by server's initial state `defaultLimit`\n\t\t\t\t\t\tthis.$set(this.limits, type, this.defaultLimit)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check if we reached end of pagination\n\t\t\t\t\tif (data.ocs.data.entries.length < this.defaultLimit) {\n\t\t\t\t\t\tthis.$set(this.reached, type, true)\n\t\t\t\t\t}\n\n\t\t\t\t\t// If none already focused, focus the first rendered result\n\t\t\t\t\tif (this.focused === null) {\n\t\t\t\t\t\tthis.focused = 0\n\t\t\t\t\t}\n\t\t\t\t\treturn REQUEST_OK\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.$delete(this.results, type)\n\n\t\t\t\t\t// If this is not a cancelled throw\n\t\t\t\t\tif (error.response && error.response.status) {\n\t\t\t\t\t\tthis.logger.error(`Error searching for ${this.typesMap[type]}`, error)\n\t\t\t\t\t\tshowError(this.t('core', 'An error occurred while searching for {type}', { type: this.typesMap[type] }))\n\t\t\t\t\t\treturn REQUEST_FAILED\n\t\t\t\t\t}\n\t\t\t\t\treturn REQUEST_CANCELED\n\t\t\t\t}\n\t\t\t})).then(results => {\n\t\t\t\t// Do not declare loading finished if the request have been cancelled\n\t\t\t\t// This means another search was triggered and we're therefore still loading\n\t\t\t\tif (results.some(result => result === REQUEST_CANCELED)) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t// We finished all searches\n\t\t\t\tthis.loading = {}\n\t\t\t})\n\t\t},\n\t\tonInputDebounced: enableLiveSearch\n\t\t\t? debounce(function(e) {\n\t\t\t\tthis.onInput(e)\n\t\t\t}, 500)\n\t\t\t: function() {\n\t\t\t\tthis.triggered = false\n\t\t\t},\n\n\t\t/**\n\t\t * Load more results for the provided type\n\t\t *\n\t\t * @param {string} type type\n\t\t */\n\t\tasync loadMore(type) {\n\t\t\t// If already loading, ignore\n\t\t\tif (this.loading[type]) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.cursors[type]) {\n\t\t\t\t// Init cancellable request\n\t\t\t\tconst { request, cancel } = search({ type, query: this.query, cursor: this.cursors[type] })\n\t\t\t\tthis.requests.push(cancel)\n\n\t\t\t\t// Fetch results\n\t\t\t\tconst { data } = await request()\n\n\t\t\t\t// Save cursor if any\n\t\t\t\tif (data.ocs.data.cursor) {\n\t\t\t\t\tthis.$set(this.cursors, type, data.ocs.data.cursor)\n\t\t\t\t}\n\n\t\t\t\t// Process results\n\t\t\t\tif (data.ocs.data.entries.length > 0) {\n\t\t\t\t\tthis.results[type].push(...data.ocs.data.entries)\n\t\t\t\t}\n\n\t\t\t\t// Check if we reached end of pagination\n\t\t\t\tif (data.ocs.data.entries.length < this.defaultLimit) {\n\t\t\t\t\tthis.$set(this.reached, type, true)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If no cursor, we might have all the results already,\n\t\t\t\t// let's fake pagination and show the next xxx entries\n\t\t\t\tif (this.limits[type] && this.limits[type] >= 0) {\n\t\t\t\t\tthis.limits[type] += this.defaultLimit\n\n\t\t\t\t\t// Check if we reached end of pagination\n\t\t\t\t\tif (this.limits[type] >= this.results[type].length) {\n\t\t\t\t\t\tthis.$set(this.reached, type, true)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Focus result after render\n\t\t\tif (this.focused !== null) {\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tthis.focusIndex(this.focused)\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Return a subset of the array if the search provider\n\t\t * doesn't supports pagination\n\t\t *\n\t\t * @param {Array} list the results\n\t\t * @param {string} type the type\n\t\t * @return {Array}\n\t\t */\n\t\tlimitIfAny(list, type) {\n\t\t\tif (type in this.limits) {\n\t\t\t\treturn list.slice(0, this.limits[type])\n\t\t\t}\n\t\t\treturn list\n\t\t},\n\n\t\tgetResultsList() {\n\t\t\treturn this.$el.querySelectorAll('.unified-search__results .unified-search__result')\n\t\t},\n\n\t\t/**\n\t\t * Focus the first result if any\n\t\t *\n\t\t * @param {Event} event the keydown event\n\t\t */\n\t\tfocusFirst(event) {\n\t\t\tconst results = this.getResultsList()\n\t\t\tif (results && results.length > 0) {\n\t\t\t\tif (event) {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t}\n\t\t\t\tthis.focused = 0\n\t\t\t\tthis.focusIndex(this.focused)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Focus the next result if any\n\t\t *\n\t\t * @param {Event} event the keydown event\n\t\t */\n\t\tfocusNext(event) {\n\t\t\tif (this.focused === null) {\n\t\t\t\tthis.focusFirst(event)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst results = this.getResultsList()\n\t\t\t// If we're not focusing the last, focus the next one\n\t\t\tif (results && results.length > 0 && this.focused + 1 < results.length) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tthis.focused++\n\t\t\t\tthis.focusIndex(this.focused)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Focus the previous result if any\n\t\t *\n\t\t * @param {Event} event the keydown event\n\t\t */\n\t\tfocusPrev(event) {\n\t\t\tif (this.focused === null) {\n\t\t\t\tthis.focusFirst(event)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst results = this.getResultsList()\n\t\t\t// If we're not focusing the first, focus the previous one\n\t\t\tif (results && results.length > 0 && this.focused > 0) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tthis.focused--\n\t\t\t\tthis.focusIndex(this.focused)\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Focus the specified result index if it exists\n\t\t *\n\t\t * @param {number} index the result index\n\t\t */\n\t\tfocusIndex(index) {\n\t\t\tconst results = this.getResultsList()\n\t\t\tif (results && results[index]) {\n\t\t\t\tresults[index].focus()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Set the current focused element based on the target\n\t\t *\n\t\t * @param {Event} event the focus event\n\t\t */\n\t\tsetFocusedIndex(event) {\n\t\t\tconst entry = event.target\n\t\t\tconst results = this.getResultsList()\n\t\t\tconst index = [...results].findIndex(search => search === entry)\n\t\t\tif (index > -1) {\n\t\t\t\t// let's not use focusIndex as the entry is already focused\n\t\t\t\tthis.focused = index\n\t\t\t}\n\t\t},\n\n\t\tonClickFilter(filter) {\n\t\t\tthis.query = `${this.query} ${filter}`\n\t\t\t\t.replace(/ {2}/g, ' ')\n\t\t\t\t.trim()\n\t\t\tthis.onInput()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use \"sass:math\";\n\n$margin: 10px;\n$input-height: 34px;\n$input-padding: 10px;\n\n.unified-search {\n\t&__trigger-icon {\n\t\tcolor: var(--color-background-plain-text) !important;\n\t}\n\n\t&__input-wrapper {\n\t\tposition: sticky;\n\t\t// above search results\n\t\tz-index: 2;\n\t\ttop: 0;\n\t\tdisplay: inline-flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\twidth: 100%;\n\t\tbackground-color: var(--color-main-background);\n\n\t\tlabel[for=\"unified-search__input\"] {\n\t\t\talign-self: flex-start;\n\t\t\tfont-weight: bold;\n\t\t\tfont-size: 19px;\n\t\t\tmargin-inline-start: 13px;\n\t\t}\n\t}\n\n\t&__input-row {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\talign-items: center;\n\t}\n\n\t&__filters {\n\t\tmargin-block: $margin;\n\t\tmargin-inline: math.div($margin, 2) 0;\n\t\tpadding-top: 5px;\n\t\tul {\n\t\t\tdisplay: inline-flex;\n\t\t\tjustify-content: space-between;\n\t\t}\n\t}\n\n\t&__form {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\tmargin: $margin 0;\n\n\t\t// Loading spinner\n\t\t&::after {\n\t\tinset-inline-start: auto $input-padding;\n\t\t}\n\n\t\t&-input,\n\t\t&-reset {\n\t\t\tmargin: math.div($input-padding, 2);\n\t\t}\n\n\t\t&-input {\n\t\t\twidth: 100%;\n\t\t\theight: $input-height;\n\t\t\tpadding: $input-padding;\n\n\t\t\t&:focus,\n\t\t\t&:focus-visible,\n\t\t\t&:active {\n\t\t\t\tborder-color: 2px solid var(--color-main-text) !important;\n\t\t\t\tbox-shadow: 0 0 0 2px var(--color-main-background) !important;\n\t\t\t}\n\n\t\t\t&,\n\t\t\t&[placeholder],\n\t\t\t&::placeholder {\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\n\t\t\t// Hide webkit clear search\n\t\t\t&::-webkit-search-decoration,\n\t\t\t&::-webkit-search-cancel-button,\n\t\t\t&::-webkit-search-results-button,\n\t\t\t&::-webkit-search-results-decoration {\n\t\t\t\t-webkit-appearance: none;\n\t\t\t}\n\t\t}\n\n\t\t&-reset,\n\t\t&-submit {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tinset-inline-end: 4px;\n\t\t\twidth: $input-height - $input-padding;\n\t\t\theight: $input-height - $input-padding;\n\t\t\tmin-height: 30px;\n\t\t\tpadding: 0;\n\t\t\topacity: .5;\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t\tmargin-inline-end: 0;\n\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t&-submit {\n\t\t\tinset-inline-end: 28px;\n\t\t}\n\t}\n\n\t&__results {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 4px;\n\n\t\t&-header {\n\t\t\tdisplay: block;\n\t\t\tmargin: $margin;\n\t\t\tmargin-bottom: $margin - 4px;\n\t\t\tmargin-inline-start: 13px;\n\t\t\tcolor: var(--color-primary-element);\n\t\t\tfont-size: 19px;\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n\n\t:deep(.unified-search__result-more) {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t.empty-content {\n\t\tmargin: 10vh 0;\n\n\t\t:deep(.empty-content__title) {\n\t\t\tfont-weight: normal;\n\t\t\tfont-size: var(--default-font-size);\n\t\t\ttext-align: center;\n\t\t}\n\t}\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyUnifiedSearch.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!./LegacyUnifiedSearch.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.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyUnifiedSearch.vue?vue&type=style&index=0&id=7def0bbf&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyUnifiedSearch.vue?vue&type=style&index=0&id=7def0bbf&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LegacyUnifiedSearch.vue?vue&type=template&id=7def0bbf&scoped=true\"\nimport script from \"./LegacyUnifiedSearch.vue?vue&type=script&lang=js\"\nexport * from \"./LegacyUnifiedSearch.vue?vue&type=script&lang=js\"\nimport style0 from \"./LegacyUnifiedSearch.vue?vue&type=style&index=0&id=7def0bbf&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 \"7def0bbf\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcHeaderMenu',{staticClass:\"unified-search\",attrs:{\"id\":\"unified-search\",\"exclude-click-outside-selectors\":['.popover'],\"open\":_vm.open,\"aria-label\":_vm.ariaLabel},on:{\"update:open\":function($event){_vm.open=$event},\"open\":_vm.onOpen,\"close\":_vm.onClose},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('Magnify',{staticClass:\"unified-search__trigger-icon\",attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"unified-search__input-wrapper\"},[_c('div',{staticClass:\"unified-search__input-row\"},[_c('NcTextField',{ref:\"input\",staticClass:\"unified-search__form-input\",class:{'unified-search__form-input--with-reset': !!_vm.query},attrs:{\"value\":_vm.query,\"trailing-button-icon\":\"close\",\"label\":_vm.ariaLabel,\"trailing-button-label\":_vm.t('core','Reset search'),\"show-trailing-button\":_vm.query !== '',\"aria-describedby\":\"unified-search-desc\",\"placeholder\":_vm.t('core', 'Search {types} …', { types: _vm.typesNames.join(', ') })},on:{\"update:value\":function($event){_vm.query=$event},\"trailing-button-click\":_vm.onReset,\"input\":_vm.onInputDebounced}}),_vm._v(\" \"),_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":\"unified-search-desc\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Search starts once you start typing and results may be reached with the arrow keys'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(_vm.availableFilters.length > 1)?_c('NcActions',{staticClass:\"unified-search__filters\",attrs:{\"placement\":\"bottom-end\",\"container\":\".unified-search__input-wrapper\"}},_vm._l((_vm.availableFilters),function(filter){return _c('NcActionButton',{key:filter,attrs:{\"icon\":\"icon-filter\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClickFilter(`in:${filter}`)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Search for {name} only', { name: _vm.typesMap[filter] }))+\"\\n\\t\\t\\t\\t\")])}),1):_vm._e()],1)]),_vm._v(\" \"),(!_vm.hasResults)?[(_vm.isLoading)?_c('SearchResultPlaceholders'):(_vm.isValidQuery)?_c('NcEmptyContent',{attrs:{\"title\":_vm.validQueryTitle},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Magnify')]},proxy:true}],null,false,931131664)}):(!_vm.isLoading || _vm.isShortQuery)?_c('NcEmptyContent',{attrs:{\"title\":_vm.t('core', 'Start typing to search'),\"description\":_vm.shortQueryDescription},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Magnify')]},proxy:true}],null,false,931131664)}):_vm._e()]:_vm._l((_vm.orderedResults),function({list, type},typesIndex){return [_c('h2',{key:type,staticClass:\"unified-search__results-header\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.typesMap[type])+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('ul',{key:type,staticClass:\"unified-search__results\",class:`unified-search__results-${type}`,attrs:{\"aria-label\":_vm.typesMap[type]}},[_vm._l((_vm.limitIfAny(list, type)),function(result,index){return _c('li',{key:result.resourceUrl},[_c('SearchResult',_vm._b({attrs:{\"query\":_vm.query,\"focused\":_vm.focused === 0 && typesIndex === 0 && index === 0},on:{\"focus\":_vm.setFocusedIndex}},'SearchResult',result,false))],1)}),_vm._v(\" \"),_c('li',[(!_vm.reached[type])?_c('SearchResult',{staticClass:\"unified-search__result-more\",attrs:{\"title\":_vm.loading[type]\n\t\t\t\t\t\t? _vm.t('core', 'Loading more results …')\n\t\t\t\t\t\t: _vm.t('core', 'Load more results'),\"icon-class\":_vm.loading[type] ? 'icon-loading-small' : ''},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.loadMore(type)},\"focus\":_vm.setFocusedIndex}}):_vm._e()],1)],2)]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\nimport Vue from 'vue'\n\nimport UnifiedSearch from './views/LegacyUnifiedSearch.vue'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\nconst logger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n\nVue.mixin({\n\tdata() {\n\t\treturn {\n\t\t\tlogger,\n\t\t}\n\t},\n\tmethods: {\n\t\tt,\n\t\tn,\n\t},\n})\n\nexport default new Vue({\n\tel: '#unified-search',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UnifiedSearchRoot',\n\trender: h => h(UnifiedSearch),\n})\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search__result[data-v-0d55d2bc]{display:flex;align-items:center;height:44px;padding:10px;border:2px solid rgba(0,0,0,0);border-radius:var(--border-radius-large) !important}.unified-search__result--focused[data-v-0d55d2bc]{background-color:var(--color-background-hover)}.unified-search__result[data-v-0d55d2bc]:active,.unified-search__result[data-v-0d55d2bc]:hover,.unified-search__result[data-v-0d55d2bc]:focus{background-color:var(--color-background-hover);border:2px solid var(--color-border-maxcontrast)}.unified-search__result *[data-v-0d55d2bc]{cursor:pointer}.unified-search__result-icon[data-v-0d55d2bc]{overflow:hidden;width:44px;height:44px;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center center;background-size:32px}.unified-search__result-icon--rounded[data-v-0d55d2bc]{border-radius:22px}.unified-search__result-icon--no-preview[data-v-0d55d2bc]{background-size:32px}.unified-search__result-icon--with-thumbnail[data-v-0d55d2bc]{background-size:cover}.unified-search__result-icon--with-thumbnail[data-v-0d55d2bc]:not(.unified-search__result-icon--rounded){max-width:42px;max-height:42px;border:1px solid var(--color-border)}.unified-search__result-icon img[data-v-0d55d2bc]{width:100%;height:100%;object-fit:cover;object-position:center}.unified-search__result-icon[data-v-0d55d2bc],.unified-search__result-actions[data-v-0d55d2bc]{flex:0 0 44px}.unified-search__result-content[data-v-0d55d2bc]{display:flex;align-items:center;flex:1 1 100%;flex-wrap:wrap;min-width:0;padding-inline-start:10px}.unified-search__result-line-one[data-v-0d55d2bc],.unified-search__result-line-two[data-v-0d55d2bc]{overflow:hidden;flex:1 1 100%;margin:1px 0;white-space:nowrap;text-overflow:ellipsis;color:inherit;font-size:inherit}.unified-search__result-line-two[data-v-0d55d2bc]{opacity:.7;font-size:var(--default-font-size)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/LegacySearchResult.vue\"],\"names\":[],\"mappings\":\"AAMA,yCACC,YAAA,CACA,kBAAA,CACA,WANgB,CAOhB,YANQ,CAOR,8BAAA,CACA,mDAAA,CAEA,kDACC,8CAAA,CAGD,8IAGC,8CAAA,CACA,gDAAA,CAGD,2CACC,cAAA,CAGD,8CACC,eAAA,CACA,UA5Be,CA6Bf,WA7Be,CA8Bf,kCAAA,CACA,2BAAA,CACA,iCAAA,CACA,oBAAA,CACA,uDACC,kBAAA,CAED,0DACC,oBAAA,CAED,8DACC,qBAAA,CAED,yGAEC,cAAA,CACA,eAAA,CACA,oCAAA,CAGD,kDAEC,UAAA,CACA,WAAA,CAEA,gBAAA,CACA,sBAAA,CAIF,+FAEC,aAAA,CAGD,iDACC,YAAA,CACA,kBAAA,CACA,aAAA,CACA,cAAA,CAEA,WAAA,CACA,yBAvEO,CA0ER,oGAEC,eAAA,CACA,aAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,aAAA,CACA,iBAAA,CAED,kDACC,UAAA,CACA,kCAAA\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n\\n$clickable-area: 44px;\\n$margin: 10px;\\n\\n.unified-search__result {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: $clickable-area;\\n\\tpadding: $margin;\\n\\tborder: 2px solid transparent;\\n\\tborder-radius: var(--border-radius-large) !important;\\n\\n\\t&--focused {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t}\\n\\n\\t&:active,\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tborder: 2px solid var(--color-border-maxcontrast);\\n\\t}\\n\\n\\t* {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\n\\t&-icon {\\n\\t\\toverflow: hidden;\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center center;\\n\\t\\tbackground-size: 32px;\\n\\t\\t&--rounded {\\n\\t\\t\\tborder-radius: math.div($clickable-area, 2);\\n\\t\\t}\\n\\t\\t&--no-preview {\\n\\t\\t\\tbackground-size: 32px;\\n\\t\\t}\\n\\t\\t&--with-thumbnail {\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t\\t&--with-thumbnail:not(&--rounded) {\\n\\t\\t\\t// compensate for border\\n\\t\\t\\tmax-width: $clickable-area - 2px;\\n\\t\\t\\tmax-height: $clickable-area - 2px;\\n\\t\\t\\tborder: 1px solid var(--color-border);\\n\\t\\t}\\n\\n\\t\\timg {\\n\\t\\t\\t// Make sure to keep ratio\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 100%;\\n\\n\\t\\t\\tobject-fit: cover;\\n\\t\\t\\tobject-position: center;\\n\\t\\t}\\n\\t}\\n\\n\\t&-icon,\\n\\t&-actions {\\n\\t\\tflex: 0 0 $clickable-area;\\n\\t}\\n\\n\\t&-content {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tflex: 1 1 100%;\\n\\t\\tflex-wrap: wrap;\\n\\t\\t// Set to minimum and gro from it\\n\\t\\tmin-width: 0;\\n\\t\\tpadding-inline-start: $margin;\\n\\t}\\n\\n\\t&-line-one,\\n\\t&-line-two {\\n\\t\\toverflow: hidden;\\n\\t\\tflex: 1 1 100%;\\n\\t\\tmargin: 1px 0;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\t// Use the same color as the `a`\\n\\t\\tcolor: inherit;\\n\\t\\tfont-size: inherit;\\n\\t}\\n\\t&-line-two {\\n\\t\\topacity: .7;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search__result-placeholder-gradient[data-v-77826dca]{position:fixed;height:0;width:0;z-index:-1}.unified-search__result-placeholder[data-v-77826dca]{width:calc(100% - 2*10px);height:44px;margin:10px}.unified-search__result-placeholder-icon[data-v-77826dca]{width:44px;height:44px;rx:var(--border-radius);ry:var(--border-radius)}.unified-search__result-placeholder-line-one[data-v-77826dca],.unified-search__result-placeholder-line-two[data-v-77826dca]{width:calc(100% - 54px);height:1em;x:54px}.unified-search__result-placeholder-line-one[data-v-77826dca]{y:5px}.unified-search__result-placeholder-line-two[data-v-77826dca]{y:25px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/SearchResultPlaceholders.vue\"],\"names\":[],\"mappings\":\"AAIA,8DACC,cAAA,CACA,QAAA,CACA,OAAA,CACA,UAAA,CAGD,qDACC,yBAAA,CACA,WAZgB,CAahB,WAZQ,CAcR,0DACC,UAhBe,CAiBf,WAjBe,CAkBf,uBAAA,CACA,uBAAA,CAGD,4HAEC,uBAAA,CACA,UAAA,CACA,MAAA,CAGD,8DACC,KAAA,CAGD,8DACC,MAAA\",\"sourcesContent\":[\"\\n$clickable-area: 44px;\\n$margin: 10px;\\n\\n.unified-search__result-placeholder-gradient {\\n\\tposition: fixed;\\n\\theight: 0;\\n\\twidth: 0;\\n\\tz-index: -1;\\n}\\n\\n.unified-search__result-placeholder {\\n\\twidth: calc(100% - 2 * #{$margin});\\n\\theight: $clickable-area;\\n\\tmargin: $margin;\\n\\n\\t&-icon {\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\trx: var(--border-radius);\\n\\t\\try: var(--border-radius);\\n\\t}\\n\\n\\t&-line-one,\\n\\t&-line-two {\\n\\t\\twidth: calc(100% - #{$margin + $clickable-area});\\n\\t\\theight: 1em;\\n\\t\\tx: $margin + $clickable-area;\\n\\t}\\n\\n\\t&-line-one {\\n\\t\\ty: 5px;\\n\\t}\\n\\n\\t&-line-two {\\n\\t\\ty: 25px;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search__trigger-icon[data-v-7def0bbf]{color:var(--color-background-plain-text) !important}.unified-search__input-wrapper[data-v-7def0bbf]{position:sticky;z-index:2;top:0;display:inline-flex;flex-direction:column;align-items:center;width:100%;background-color:var(--color-main-background)}.unified-search__input-wrapper label[for=unified-search__input][data-v-7def0bbf]{align-self:flex-start;font-weight:bold;font-size:19px;margin-inline-start:13px}.unified-search__input-row[data-v-7def0bbf]{display:flex;width:100%;align-items:center}.unified-search__filters[data-v-7def0bbf]{margin-block:10px;margin-inline:5px 0;padding-top:5px}.unified-search__filters ul[data-v-7def0bbf]{display:inline-flex;justify-content:space-between}.unified-search__form[data-v-7def0bbf]{position:relative;width:100%;margin:10px 0}.unified-search__form[data-v-7def0bbf]::after{inset-inline-start:auto 10px}.unified-search__form-input[data-v-7def0bbf],.unified-search__form-reset[data-v-7def0bbf]{margin:5px}.unified-search__form-input[data-v-7def0bbf]{width:100%;height:34px;padding:10px}.unified-search__form-input[data-v-7def0bbf]:focus,.unified-search__form-input[data-v-7def0bbf]:focus-visible,.unified-search__form-input[data-v-7def0bbf]:active{border-color:2px solid var(--color-main-text) !important;box-shadow:0 0 0 2px var(--color-main-background) !important}.unified-search__form-input[data-v-7def0bbf],.unified-search__form-input[placeholder][data-v-7def0bbf],.unified-search__form-input[data-v-7def0bbf]::placeholder{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.unified-search__form-input[data-v-7def0bbf]::-webkit-search-decoration,.unified-search__form-input[data-v-7def0bbf]::-webkit-search-cancel-button,.unified-search__form-input[data-v-7def0bbf]::-webkit-search-results-button,.unified-search__form-input[data-v-7def0bbf]::-webkit-search-results-decoration{-webkit-appearance:none}.unified-search__form-reset[data-v-7def0bbf],.unified-search__form-submit[data-v-7def0bbf]{position:absolute;top:0;inset-inline-end:4px;width:24px;height:24px;min-height:30px;padding:0;opacity:.5;border:none;background-color:rgba(0,0,0,0);margin-inline-end:0}.unified-search__form-reset[data-v-7def0bbf]:hover,.unified-search__form-reset[data-v-7def0bbf]:focus,.unified-search__form-reset[data-v-7def0bbf]:active,.unified-search__form-submit[data-v-7def0bbf]:hover,.unified-search__form-submit[data-v-7def0bbf]:focus,.unified-search__form-submit[data-v-7def0bbf]:active{opacity:1}.unified-search__form-submit[data-v-7def0bbf]{inset-inline-end:28px}.unified-search__results[data-v-7def0bbf]{display:flex;flex-direction:column;gap:4px}.unified-search__results-header[data-v-7def0bbf]{display:block;margin:10px;margin-bottom:6px;margin-inline-start:13px;color:var(--color-primary-element);font-size:19px;font-weight:bold}.unified-search[data-v-7def0bbf] .unified-search__result-more{color:var(--color-text-maxcontrast)}.unified-search .empty-content[data-v-7def0bbf]{margin:10vh 0}.unified-search .empty-content[data-v-7def0bbf] .empty-content__title{font-weight:normal;font-size:var(--default-font-size);text-align:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/LegacyUnifiedSearch.vue\"],\"names\":[],\"mappings\":\"AAQC,+CACC,mDAAA,CAGD,gDACC,eAAA,CAEA,SAAA,CACA,KAAA,CACA,mBAAA,CACA,qBAAA,CACA,kBAAA,CACA,UAAA,CACA,6CAAA,CAEA,iFACC,qBAAA,CACA,gBAAA,CACA,cAAA,CACA,wBAAA,CAIF,4CACC,YAAA,CACA,UAAA,CACA,kBAAA,CAGD,0CACC,iBAnCO,CAoCP,mBAAA,CACA,eAAA,CACA,6CACC,mBAAA,CACA,6BAAA,CAIF,uCACC,iBAAA,CACA,UAAA,CACA,aAAA,CAGA,8CACA,4BAAA,CAGA,0FAEC,UAAA,CAGD,6CACC,UAAA,CACA,WA5DY,CA6DZ,YA5Da,CA8Db,kKAGC,wDAAA,CACA,4DAAA,CAGD,iKAGC,eAAA,CACA,kBAAA,CACA,sBAAA,CAID,+SAIC,uBAAA,CAIF,2FAEC,iBAAA,CACA,KAAA,CACA,oBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,SAAA,CACA,UAAA,CACA,WAAA,CACA,8BAAA,CACA,mBAAA,CAEA,uTAGC,SAAA,CAIF,8CACC,qBAAA,CAIF,0CACC,YAAA,CACA,qBAAA,CACA,OAAA,CAEA,iDACC,aAAA,CACA,WAzHM,CA0HN,iBAAA,CACA,wBAAA,CACA,kCAAA,CACA,cAAA,CACA,gBAAA,CAIF,8DACC,mCAAA,CAGD,gDACC,aAAA,CAEA,sEACC,kBAAA,CACA,kCAAA,CACA,iBAAA\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n\\n$margin: 10px;\\n$input-height: 34px;\\n$input-padding: 10px;\\n\\n.unified-search {\\n\\t&__trigger-icon {\\n\\t\\tcolor: var(--color-background-plain-text) !important;\\n\\t}\\n\\n\\t&__input-wrapper {\\n\\t\\tposition: sticky;\\n\\t\\t// above search results\\n\\t\\tz-index: 2;\\n\\t\\ttop: 0;\\n\\t\\tdisplay: inline-flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\twidth: 100%;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\n\\t\\tlabel[for=\\\"unified-search__input\\\"] {\\n\\t\\t\\talign-self: flex-start;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tfont-size: 19px;\\n\\t\\t\\tmargin-inline-start: 13px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__input-row {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__filters {\\n\\t\\tmargin-block: $margin;\\n\\t\\tmargin-inline: math.div($margin, 2) 0;\\n\\t\\tpadding-top: 5px;\\n\\t\\tul {\\n\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\tjustify-content: space-between;\\n\\t\\t}\\n\\t}\\n\\n\\t&__form {\\n\\t\\tposition: relative;\\n\\t\\twidth: 100%;\\n\\t\\tmargin: $margin 0;\\n\\n\\t\\t// Loading spinner\\n\\t\\t&::after {\\n\\t\\tinset-inline-start: auto $input-padding;\\n\\t\\t}\\n\\n\\t\\t&-input,\\n\\t\\t&-reset {\\n\\t\\t\\tmargin: math.div($input-padding, 2);\\n\\t\\t}\\n\\n\\t\\t&-input {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: $input-height;\\n\\t\\t\\tpadding: $input-padding;\\n\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:focus-visible,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tborder-color: 2px solid var(--color-main-text) !important;\\n\\t\\t\\t\\tbox-shadow: 0 0 0 2px var(--color-main-background) !important;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&,\\n\\t\\t\\t&[placeholder],\\n\\t\\t\\t&::placeholder {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Hide webkit clear search\\n\\t\\t\\t&::-webkit-search-decoration,\\n\\t\\t\\t&::-webkit-search-cancel-button,\\n\\t\\t\\t&::-webkit-search-results-button,\\n\\t\\t\\t&::-webkit-search-results-decoration {\\n\\t\\t\\t\\t-webkit-appearance: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-reset,\\n\\t\\t&-submit {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tinset-inline-end: 4px;\\n\\t\\t\\twidth: $input-height - $input-padding;\\n\\t\\t\\theight: $input-height - $input-padding;\\n\\t\\t\\tmin-height: 30px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\topacity: .5;\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\tmargin-inline-end: 0;\\n\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-submit {\\n\\t\\t\\tinset-inline-end: 28px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__results {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: 4px;\\n\\n\\t\\t&-header {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tmargin: $margin;\\n\\t\\t\\tmargin-bottom: $margin - 4px;\\n\\t\\t\\tmargin-inline-start: 13px;\\n\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\tfont-size: 19px;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\t}\\n\\n\\t:deep(.unified-search__result-more) {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t.empty-content {\\n\\t\\tmargin: 10vh 0;\\n\\n\\t\\t:deep(.empty-content__title) {\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tfont-size: var(--default-font-size);\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"2441\":\"fc741cf57e9647f370a3\",\"5862\":\"7b9b02dc0a1b898066ef\",\"7874\":\"3ea1c62ce5f0e7d75e81\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1684;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1684: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(44870)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","name","components","NcHighlight","props","thumbnailUrl","type","String","default","title","required","subline","resourceUrl","icon","rounded","Boolean","query","focused","data","hasValidThumbnail","trim","loaded","computed","isIconUrl","startsWith","URL","watch","methods","reEmitEvent","e","$emit","onError","onLoad","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","class","attrs","on","style","backgroundImage","directives","rawName","value","expression","_e","_v","_s","light","dark","mounted","styles","getComputedStyle","document","documentElement","getPropertyValue","randWidth","Math","floor","random","_l","placeholder","key","width","defaultLimit","loadState","minSearchLength","enableLiveSearch","regexFilterIn","regexFilterNot","async","getTypes","axios","get","generateOcsUrl","params","from","window","location","pathname","replace","search","ocs","Array","isArray","length","error","console","_ref","cursor","cancelToken","CancelToken","source","request","token","term","cancel","Magnify","NcActionButton","NcActions","NcEmptyContent","NcHeaderMenu","SearchResult","SearchResultPlaceholders","NcTextField","types","cursors","limits","loading","reached","requests","results","triggered","open","typesIDs","map","id","typesNames","typesMap","reduce","prev","curr","ariaLabel","t","hasResults","Object","keys","orderedResults","filter","list","availableFilters","usedFiltersIn","match","filters","exec","push","usedFiltersNot","validQueryTitle","shortQueryDescription","isShortQuery","n","isValidQuery","isDoneSearching","values","every","state","isLoading","some","created","logger","debug","beforeDestroy","unsubscribe","onNavigationChange","subscribe","OCP","Accessibility","disableKeyboardShortcuts","addEventListener","event","ctrlKey","code","preventDefault","focusNext","focusPrev","onOpen","onClose","emit","$el","querySelector","reset","onReset","resetState","focusInput","cancelPendingRequests","slice","Promise","all","$nextTick","$refs","input","focus","select","onInputEnter","getResultsList","click","onInput","$delete","indexOf","$set","entries","isPaginated","response","status","showError","then","result","onInputDebounced","debounce","loadMore","focusIndex","limitIfAny","querySelectorAll","focusFirst","index","setFocusedIndex","entry","target","findIndex","onClickFilter","$event","scopedSlots","_u","fn","proxy","ref","join","stopPropagation","typesIndex","_b","__webpack_nonce__","getCSPNonce","getLoggerBuilder","setApp","detectUser","build","Vue","mixin","el","render","h","UnifiedSearch","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","splice","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","chunkId","promises","u","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","l","url","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","currentScript","tagName","toUpperCase","test","Error","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"core-legacy-unified-search.js?v=12c905e22431019f3279","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/core/src/components/UnifiedSearch/LegacySearchResult.vue","webpack:///nextcloud/core/src/components/UnifiedSearch/LegacySearchResult.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/components/UnifiedSearch/LegacySearchResult.vue?c017","webpack://nextcloud/./core/src/components/UnifiedSearch/LegacySearchResult.vue?1729","webpack://nextcloud/./core/src/components/UnifiedSearch/LegacySearchResult.vue?de39","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResultPlaceholders.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResultPlaceholders.vue","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResultPlaceholders.vue?ff60","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResultPlaceholders.vue?7f72","webpack://nextcloud/./core/src/components/UnifiedSearch/SearchResultPlaceholders.vue?cc53","webpack:///nextcloud/core/src/services/LegacyUnifiedSearchService.js","webpack:///nextcloud/core/src/views/LegacyUnifiedSearch.vue","webpack:///nextcloud/core/src/views/LegacyUnifiedSearch.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/LegacyUnifiedSearch.vue?ce2a","webpack://nextcloud/./core/src/views/LegacyUnifiedSearch.vue?bfe7","webpack://nextcloud/./core/src/views/LegacyUnifiedSearch.vue?b8e8","webpack:///nextcloud/core/src/legacy-unified-search.js","webpack:///nextcloud/core/src/components/UnifiedSearch/LegacySearchResult.vue?vue&type=style&index=0&id=0d55d2bc&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/UnifiedSearch/SearchResultPlaceholders.vue?vue&type=style&index=0&id=77826dca&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/views/LegacyUnifiedSearch.vue?vue&type=style&index=0&id=d7d405f2&prod&lang=scss&scoped=true","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<a :href=\"resourceUrl || '#'\"\n\t\tclass=\"unified-search__result\"\n\t\t:class=\"{\n\t\t\t'unified-search__result--focused': focused,\n\t\t}\"\n\t\t@click=\"reEmitEvent\"\n\t\t@focus=\"reEmitEvent\">\n\n\t\t<!-- Icon describing the result -->\n\t\t<div class=\"unified-search__result-icon\"\n\t\t\t:class=\"{\n\t\t\t\t'unified-search__result-icon--rounded': rounded,\n\t\t\t\t'unified-search__result-icon--no-preview': !hasValidThumbnail && !loaded,\n\t\t\t\t'unified-search__result-icon--with-thumbnail': hasValidThumbnail && loaded,\n\t\t\t\t[icon]: !loaded && !isIconUrl,\n\t\t\t}\"\n\t\t\t:style=\"{\n\t\t\t\tbackgroundImage: isIconUrl ? `url(${icon})` : '',\n\t\t\t}\">\n\n\t\t\t<img v-if=\"hasValidThumbnail\"\n\t\t\t\tv-show=\"loaded\"\n\t\t\t\t:src=\"thumbnailUrl\"\n\t\t\t\talt=\"\"\n\t\t\t\t@error=\"onError\"\n\t\t\t\t@load=\"onLoad\">\n\t\t</div>\n\n\t\t<!-- Title and sub-title -->\n\t\t<span class=\"unified-search__result-content\">\n\t\t\t<span class=\"unified-search__result-line-one\" :title=\"title\">\n\t\t\t\t<NcHighlight :text=\"title\" :search=\"query\" />\n\t\t\t</span>\n\t\t\t<span v-if=\"subline\" class=\"unified-search__result-line-two\" :title=\"subline\">{{ subline }}</span>\n\t\t</span>\n\t</a>\n</template>\n\n<script>\nimport NcHighlight from '@nextcloud/vue/dist/Components/NcHighlight.js'\n\nexport default {\n\tname: 'LegacySearchResult',\n\n\tcomponents: {\n\t\tNcHighlight,\n\t},\n\n\tprops: {\n\t\tthumbnailUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tsubline: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tresourceUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\trounded: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tquery: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Only used for the first result as a visual feedback\n\t\t * so we can keep the search input focused but pressing\n\t\t * enter still opens the first result\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\thasValidThumbnail: this.thumbnailUrl && this.thumbnailUrl.trim() !== '',\n\t\t\tloaded: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisIconUrl() {\n\t\t\t// If we're facing an absolute url\n\t\t\tif (this.icon.startsWith('/')) {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\t// Otherwise, let's check if this is a valid url\n\t\t\ttry {\n\t\t\t\t// eslint-disable-next-line no-new\n\t\t\t\tnew URL(this.icon)\n\t\t\t} catch {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t},\n\n\twatch: {\n\t\t// Make sure to reset state on change even when vue recycle the component\n\t\tthumbnailUrl() {\n\t\t\tthis.hasValidThumbnail = this.thumbnailUrl && this.thumbnailUrl.trim() !== ''\n\t\t\tthis.loaded = false\n\t\t},\n\t},\n\n\tmethods: {\n\t\treEmitEvent(e) {\n\t\t\tthis.$emit(e.type, e)\n\t\t},\n\n\t\t/**\n\t\t * If the image fails to load, fallback to iconClass\n\t\t */\n\t\tonError() {\n\t\t\tthis.hasValidThumbnail = false\n\t\t},\n\n\t\tonLoad() {\n\t\t\tthis.loaded = true\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use \"sass:math\";\n\n$clickable-area: 44px;\n$margin: 10px;\n\n.unified-search__result {\n\tdisplay: flex;\n\talign-items: center;\n\theight: $clickable-area;\n\tpadding: $margin;\n\tborder: 2px solid transparent;\n\tborder-radius: var(--border-radius-large) !important;\n\n\t&--focused {\n\t\tbackground-color: var(--color-background-hover);\n\t}\n\n\t&:active,\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder: 2px solid var(--color-border-maxcontrast);\n\t}\n\n\t* {\n\t\tcursor: pointer;\n\t}\n\n\t&-icon {\n\t\toverflow: hidden;\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\tborder-radius: var(--border-radius);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center center;\n\t\tbackground-size: 32px;\n\t\t&--rounded {\n\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t}\n\t\t&--no-preview {\n\t\t\tbackground-size: 32px;\n\t\t}\n\t\t&--with-thumbnail {\n\t\t\tbackground-size: cover;\n\t\t}\n\t\t&--with-thumbnail:not(&--rounded) {\n\t\t\t// compensate for border\n\t\t\tmax-width: $clickable-area - 2px;\n\t\t\tmax-height: $clickable-area - 2px;\n\t\t\tborder: 1px solid var(--color-border);\n\t\t}\n\n\t\timg {\n\t\t\t// Make sure to keep ratio\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\n\t\t\tobject-fit: cover;\n\t\t\tobject-position: center;\n\t\t}\n\t}\n\n\t&-icon,\n\t&-actions {\n\t\tflex: 0 0 $clickable-area;\n\t}\n\n\t&-content {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex: 1 1 100%;\n\t\tflex-wrap: wrap;\n\t\t// Set to minimum and gro from it\n\t\tmin-width: 0;\n\t\tpadding-inline-start: $margin;\n\t}\n\n\t&-line-one,\n\t&-line-two {\n\t\toverflow: hidden;\n\t\tflex: 1 1 100%;\n\t\tmargin: 1px 0;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Use the same color as the `a`\n\t\tcolor: inherit;\n\t\tfont-size: inherit;\n\t}\n\t&-line-two {\n\t\topacity: .7;\n\t\tfont-size: var(--default-font-size);\n\t}\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacySearchResult.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!./LegacySearchResult.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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacySearchResult.vue?vue&type=style&index=0&id=0d55d2bc&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacySearchResult.vue?vue&type=style&index=0&id=0d55d2bc&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LegacySearchResult.vue?vue&type=template&id=0d55d2bc&scoped=true\"\nimport script from \"./LegacySearchResult.vue?vue&type=script&lang=js\"\nexport * from \"./LegacySearchResult.vue?vue&type=script&lang=js\"\nimport style0 from \"./LegacySearchResult.vue?vue&type=style&index=0&id=0d55d2bc&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 \"0d55d2bc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',{staticClass:\"unified-search__result\",class:{\n\t\t'unified-search__result--focused': _vm.focused,\n\t},attrs:{\"href\":_vm.resourceUrl || '#'},on:{\"click\":_vm.reEmitEvent,\"focus\":_vm.reEmitEvent}},[_c('div',{staticClass:\"unified-search__result-icon\",class:{\n\t\t\t'unified-search__result-icon--rounded': _vm.rounded,\n\t\t\t'unified-search__result-icon--no-preview': !_vm.hasValidThumbnail && !_vm.loaded,\n\t\t\t'unified-search__result-icon--with-thumbnail': _vm.hasValidThumbnail && _vm.loaded,\n\t\t\t[_vm.icon]: !_vm.loaded && !_vm.isIconUrl,\n\t\t},style:({\n\t\t\tbackgroundImage: _vm.isIconUrl ? `url(${_vm.icon})` : '',\n\t\t})},[(_vm.hasValidThumbnail)?_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loaded),expression:\"loaded\"}],attrs:{\"src\":_vm.thumbnailUrl,\"alt\":\"\"},on:{\"error\":_vm.onError,\"load\":_vm.onLoad}}):_vm._e()]),_vm._v(\" \"),_c('span',{staticClass:\"unified-search__result-content\"},[_c('span',{staticClass:\"unified-search__result-line-one\",attrs:{\"title\":_vm.title}},[_c('NcHighlight',{attrs:{\"text\":_vm.title,\"search\":_vm.query}})],1),_vm._v(\" \"),(_vm.subline)?_c('span',{staticClass:\"unified-search__result-line-two\",attrs:{\"title\":_vm.subline}},[_vm._v(_vm._s(_vm.subline))]):_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!./SearchResultPlaceholders.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!./SearchResultPlaceholders.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<ul>\n\t\t<!-- Placeholder animation -->\n\t\t<svg class=\"unified-search__result-placeholder-gradient\">\n\t\t\t<defs>\n\t\t\t\t<linearGradient id=\"unified-search__result-placeholder-gradient\">\n\t\t\t\t\t<stop offset=\"0%\" :stop-color=\"light\">\n\t\t\t\t\t\t<animate attributeName=\"stop-color\"\n\t\t\t\t\t\t\t:values=\"`${light}; ${light}; ${dark}; ${dark}; ${light}`\"\n\t\t\t\t\t\t\tdur=\"2s\"\n\t\t\t\t\t\t\trepeatCount=\"indefinite\" />\n\t\t\t\t\t</stop>\n\t\t\t\t\t<stop offset=\"100%\" :stop-color=\"dark\">\n\t\t\t\t\t\t<animate attributeName=\"stop-color\"\n\t\t\t\t\t\t\t:values=\"`${dark}; ${light}; ${light}; ${dark}; ${dark}`\"\n\t\t\t\t\t\t\tdur=\"2s\"\n\t\t\t\t\t\t\trepeatCount=\"indefinite\" />\n\t\t\t\t\t</stop>\n\t\t\t\t</linearGradient>\n\t\t\t</defs>\n\t\t</svg>\n\n\t\t<!-- Placeholders -->\n\t\t<li v-for=\"placeholder in [1, 2, 3]\" :key=\"placeholder\">\n\t\t\t<svg class=\"unified-search__result-placeholder\"\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tfill=\"url(#unified-search__result-placeholder-gradient)\">\n\t\t\t\t<rect class=\"unified-search__result-placeholder-icon\" />\n\t\t\t\t<rect class=\"unified-search__result-placeholder-line-one\" />\n\t\t\t\t<rect class=\"unified-search__result-placeholder-line-two\" :style=\"{width: `calc(${randWidth()}%)`}\" />\n\t\t\t</svg>\n\t\t</li>\n\t</ul>\n</template>\n\n<script>\nexport default {\n\tname: 'SearchResultPlaceholders',\n\n\tdata() {\n\t\treturn {\n\t\t\tlight: null,\n\t\t\tdark: null,\n\t\t}\n\t},\n\tmounted() {\n\t\tconst styles = getComputedStyle(document.documentElement)\n\t\tthis.dark = styles.getPropertyValue('--color-placeholder-dark')\n\t\tthis.light = styles.getPropertyValue('--color-placeholder-light')\n\t},\n\n\tmethods: {\n\t\trandWidth() {\n\t\t\treturn Math.floor(Math.random() * 20) + 30\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$clickable-area: 44px;\n$margin: 10px;\n\n.unified-search__result-placeholder-gradient {\n\tposition: fixed;\n\theight: 0;\n\twidth: 0;\n\tz-index: -1;\n}\n\n.unified-search__result-placeholder {\n\twidth: calc(100% - 2 * #{$margin});\n\theight: $clickable-area;\n\tmargin: $margin;\n\n\t&-icon {\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\trx: var(--border-radius);\n\t\try: var(--border-radius);\n\t}\n\n\t&-line-one,\n\t&-line-two {\n\t\twidth: calc(100% - #{$margin + $clickable-area});\n\t\theight: 1em;\n\t\tx: $margin + $clickable-area;\n\t}\n\n\t&-line-one {\n\t\ty: 5px;\n\t}\n\n\t&-line-two {\n\t\ty: 25px;\n\t}\n}\n\n</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResultPlaceholders.vue?vue&type=style&index=0&id=77826dca&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResultPlaceholders.vue?vue&type=style&index=0&id=77826dca&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchResultPlaceholders.vue?vue&type=template&id=77826dca&scoped=true\"\nimport script from \"./SearchResultPlaceholders.vue?vue&type=script&lang=js\"\nexport * from \"./SearchResultPlaceholders.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchResultPlaceholders.vue?vue&type=style&index=0&id=77826dca&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 \"77826dca\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',[_c('svg',{staticClass:\"unified-search__result-placeholder-gradient\"},[_c('defs',[_c('linearGradient',{attrs:{\"id\":\"unified-search__result-placeholder-gradient\"}},[_c('stop',{attrs:{\"offset\":\"0%\",\"stop-color\":_vm.light}},[_c('animate',{attrs:{\"attributeName\":\"stop-color\",\"values\":`${_vm.light}; ${_vm.light}; ${_vm.dark}; ${_vm.dark}; ${_vm.light}`,\"dur\":\"2s\",\"repeatCount\":\"indefinite\"}})]),_vm._v(\" \"),_c('stop',{attrs:{\"offset\":\"100%\",\"stop-color\":_vm.dark}},[_c('animate',{attrs:{\"attributeName\":\"stop-color\",\"values\":`${_vm.dark}; ${_vm.light}; ${_vm.light}; ${_vm.dark}; ${_vm.dark}`,\"dur\":\"2s\",\"repeatCount\":\"indefinite\"}})])],1)],1)]),_vm._v(\" \"),_vm._l(([1, 2, 3]),function(placeholder){return _c('li',{key:placeholder},[_c('svg',{staticClass:\"unified-search__result-placeholder\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"url(#unified-search__result-placeholder-gradient)\"}},[_c('rect',{staticClass:\"unified-search__result-placeholder-icon\"}),_vm._v(\" \"),_c('rect',{staticClass:\"unified-search__result-placeholder-line-one\"}),_vm._v(\" \"),_c('rect',{staticClass:\"unified-search__result-placeholder-line-two\",style:({width: `calc(${_vm.randWidth()}%)`})})])])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport axios from '@nextcloud/axios'\n\nexport const defaultLimit = loadState('unified-search', 'limit-default')\nexport const minSearchLength = loadState('unified-search', 'min-search-length', 1)\nexport const enableLiveSearch = loadState('unified-search', 'live-search', true)\n\nexport const regexFilterIn = /(^|\\s)in:([a-z_-]+)/ig\nexport const regexFilterNot = /(^|\\s)-in:([a-z_-]+)/ig\n\n/**\n * Create a cancel token\n *\n * @return {import('axios').CancelTokenSource}\n */\nconst createCancelToken = () => axios.CancelToken.source()\n\n/**\n * Get the list of available search providers\n *\n * @return {Promise<Array>}\n */\nexport async function getTypes() {\n\ttry {\n\t\tconst { data } = await axios.get(generateOcsUrl('search/providers'), {\n\t\t\tparams: {\n\t\t\t\t// Sending which location we're currently at\n\t\t\t\tfrom: window.location.pathname.replace('/index.php', '') + window.location.search,\n\t\t\t},\n\t\t})\n\t\tif ('ocs' in data && 'data' in data.ocs && Array.isArray(data.ocs.data) && data.ocs.data.length > 0) {\n\t\t\t// Providers are sorted by the api based on their order key\n\t\t\treturn data.ocs.data\n\t\t}\n\t} catch (error) {\n\t\tconsole.error(error)\n\t}\n\treturn []\n}\n\n/**\n * Get the list of available search providers\n *\n * @param {object} options destructuring object\n * @param {string} options.type the type to search\n * @param {string} options.query the search\n * @param {number|string|undefined} options.cursor the offset for paginated searches\n * @return {object} {request: Promise, cancel: Promise}\n */\nexport function search({ type, query, cursor }) {\n\t/**\n\t * Generate an axios cancel token\n\t */\n\tconst cancelToken = createCancelToken()\n\n\tconst request = async () => axios.get(generateOcsUrl('search/providers/{type}/search', { type }), {\n\t\tcancelToken: cancelToken.token,\n\t\tparams: {\n\t\t\tterm: query,\n\t\t\tcursor,\n\t\t\t// Sending which location we're currently at\n\t\t\tfrom: window.location.pathname.replace('/index.php', '') + window.location.search,\n\t\t},\n\t})\n\n\treturn {\n\t\trequest,\n\t\tcancel: cancelToken.cancel,\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcHeaderMenu id=\"unified-search\"\n\t\tclass=\"unified-search\"\n\t\t:exclude-click-outside-selectors=\"['.popover']\"\n\t\t:open.sync=\"open\"\n\t\t:aria-label=\"ariaLabel\"\n\t\t@open=\"onOpen\"\n\t\t@close=\"onClose\">\n\t\t<!-- Header icon -->\n\t\t<template #trigger>\n\t\t\t<Magnify class=\"unified-search__trigger-icon\" :size=\"20\" />\n\t\t</template>\n\n\t\t<!-- Search form & filters wrapper -->\n\t\t<div class=\"unified-search__input-wrapper\">\n\t\t\t<div class=\"unified-search__input-row\">\n\t\t\t\t<NcTextField ref=\"input\"\n\t\t\t\t\t:value.sync=\"query\"\n\t\t\t\t\ttrailing-button-icon=\"close\"\n\t\t\t\t\t:label=\"ariaLabel\"\n\t\t\t\t\t:trailing-button-label=\"t('core','Reset search')\"\n\t\t\t\t\t:show-trailing-button=\"query !== ''\"\n\t\t\t\t\taria-describedby=\"unified-search-desc\"\n\t\t\t\t\tclass=\"unified-search__form-input\"\n\t\t\t\t\t:class=\"{'unified-search__form-input--with-reset': !!query}\"\n\t\t\t\t\t:placeholder=\"t('core', 'Search {types} …', { types: typesNames.join(', ') })\"\n\t\t\t\t\t@trailing-button-click=\"onReset\"\n\t\t\t\t\t@input=\"onInputDebounced\" />\n\t\t\t\t<p id=\"unified-search-desc\" class=\"hidden-visually\">\n\t\t\t\t\t{{ t('core', 'Search starts once you start typing and results may be reached with the arrow keys') }}\n\t\t\t\t</p>\n\n\t\t\t\t<!-- Search filters -->\n\t\t\t\t<NcActions v-if=\"availableFilters.length > 1\"\n\t\t\t\t\tclass=\"unified-search__filters\"\n\t\t\t\t\tplacement=\"bottom-end\"\n\t\t\t\t\tcontainer=\".unified-search__input-wrapper\">\n\t\t\t\t\t<!-- FIXME use element ref for container after https://github.com/nextcloud/nextcloud-vue/pull/3462 -->\n\t\t\t\t\t<NcActionButton v-for=\"filter in availableFilters\"\n\t\t\t\t\t\t:key=\"filter\"\n\t\t\t\t\t\ticon=\"icon-filter\"\n\t\t\t\t\t\t@click.stop=\"onClickFilter(`in:${filter}`)\">\n\t\t\t\t\t\t{{ t('core', 'Search for {name} only', { name: typesMap[filter] }) }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcActions>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<template v-if=\"!hasResults\">\n\t\t\t<!-- Loading placeholders -->\n\t\t\t<SearchResultPlaceholders v-if=\"isLoading\" />\n\n\t\t\t<NcEmptyContent v-else-if=\"isValidQuery\"\n\t\t\t\t:title=\"validQueryTitle\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\n\t\t\t<NcEmptyContent v-else-if=\"!isLoading || isShortQuery\"\n\t\t\t\t:title=\"t('core', 'Start typing to search')\"\n\t\t\t\t:description=\"shortQueryDescription\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Magnify />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</template>\n\n\t\t<!-- Grouped search results -->\n\t\t<template v-for=\"({list, type}, typesIndex) in orderedResults\" v-else>\n\t\t\t<h2 :key=\"type\" class=\"unified-search__results-header\">\n\t\t\t\t{{ typesMap[type] }}\n\t\t\t</h2>\n\t\t\t<ul :key=\"type\"\n\t\t\t\tclass=\"unified-search__results\"\n\t\t\t\t:class=\"`unified-search__results-${type}`\"\n\t\t\t\t:aria-label=\"typesMap[type]\">\n\t\t\t\t<!-- Search results -->\n\t\t\t\t<li v-for=\"(result, index) in limitIfAny(list, type)\" :key=\"result.resourceUrl\">\n\t\t\t\t\t<SearchResult v-bind=\"result\"\n\t\t\t\t\t\t:query=\"query\"\n\t\t\t\t\t\t:focused=\"focused === 0 && typesIndex === 0 && index === 0\"\n\t\t\t\t\t\t@focus=\"setFocusedIndex\" />\n\t\t\t\t</li>\n\n\t\t\t\t<!-- Load more button -->\n\t\t\t\t<li>\n\t\t\t\t\t<SearchResult v-if=\"!reached[type]\"\n\t\t\t\t\t\tclass=\"unified-search__result-more\"\n\t\t\t\t\t\t:title=\"loading[type]\n\t\t\t\t\t\t\t? t('core', 'Loading more results …')\n\t\t\t\t\t\t\t: t('core', 'Load more results')\"\n\t\t\t\t\t\t:icon-class=\"loading[type] ? 'icon-loading-small' : ''\"\n\t\t\t\t\t\t@click.prevent.stop=\"loadMore(type)\"\n\t\t\t\t\t\t@focus=\"setFocusedIndex\" />\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</template>\n\t</NcHeaderMenu>\n</template>\n\n<script>\nimport debounce from 'debounce'\nimport { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { showError } from '@nextcloud/dialogs'\n\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport NcHeaderMenu from '@nextcloud/vue/dist/Components/NcHeaderMenu.js'\nimport NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js'\n\nimport Magnify from 'vue-material-design-icons/Magnify.vue'\n\nimport SearchResult from '../components/UnifiedSearch/LegacySearchResult.vue'\nimport SearchResultPlaceholders from '../components/UnifiedSearch/SearchResultPlaceholders.vue'\n\nimport { minSearchLength, getTypes, search, defaultLimit, regexFilterIn, regexFilterNot, enableLiveSearch } from '../services/LegacyUnifiedSearchService.js'\n\nconst REQUEST_FAILED = 0\nconst REQUEST_OK = 1\nconst REQUEST_CANCELED = 2\n\nexport default {\n\tname: 'LegacyUnifiedSearch',\n\n\tcomponents: {\n\t\tMagnify,\n\t\tNcActionButton,\n\t\tNcActions,\n\t\tNcEmptyContent,\n\t\tNcHeaderMenu,\n\t\tSearchResult,\n\t\tSearchResultPlaceholders,\n\t\tNcTextField,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\ttypes: [],\n\n\t\t\t// Cursors per types\n\t\t\tcursors: {},\n\t\t\t// Various search limits per types\n\t\t\tlimits: {},\n\t\t\t// Loading types\n\t\t\tloading: {},\n\t\t\t// Reached search types\n\t\t\treached: {},\n\t\t\t// Pending cancellable requests\n\t\t\trequests: [],\n\t\t\t// List of all results\n\t\t\tresults: {},\n\n\t\t\tquery: '',\n\t\t\tfocused: null,\n\t\t\ttriggered: false,\n\n\t\t\tdefaultLimit,\n\t\t\tminSearchLength,\n\t\t\tenableLiveSearch,\n\n\t\t\topen: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttypesIDs() {\n\t\t\treturn this.types.map(type => type.id)\n\t\t},\n\t\ttypesNames() {\n\t\t\treturn this.types.map(type => type.name)\n\t\t},\n\t\ttypesMap() {\n\t\t\treturn this.types.reduce((prev, curr) => {\n\t\t\t\tprev[curr.id] = curr.name\n\t\t\t\treturn prev\n\t\t\t}, {})\n\t\t},\n\n\t\tariaLabel() {\n\t\t\treturn t('core', 'Search')\n\t\t},\n\n\t\t/**\n\t\t * Is there any result to display\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\thasResults() {\n\t\t\treturn Object.keys(this.results).length !== 0\n\t\t},\n\n\t\t/**\n\t\t * Return ordered results\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\torderedResults() {\n\t\t\treturn this.typesIDs\n\t\t\t\t.filter(type => type in this.results)\n\t\t\t\t.map(type => ({\n\t\t\t\t\ttype,\n\t\t\t\t\tlist: this.results[type],\n\t\t\t\t}))\n\t\t},\n\n\t\t/**\n\t\t * Available filters\n\t\t * We only show filters that are available on the results\n\t\t *\n\t\t * @return {string[]}\n\t\t */\n\t\tavailableFilters() {\n\t\t\treturn Object.keys(this.results)\n\t\t},\n\n\t\t/**\n\t\t * Applied filters\n\t\t *\n\t\t * @return {string[]}\n\t\t */\n\t\tusedFiltersIn() {\n\t\t\tlet match\n\t\t\tconst filters = []\n\t\t\twhile ((match = regexFilterIn.exec(this.query)) !== null) {\n\t\t\t\tfilters.push(match[2])\n\t\t\t}\n\t\t\treturn filters\n\t\t},\n\n\t\t/**\n\t\t * Applied anti filters\n\t\t *\n\t\t * @return {string[]}\n\t\t */\n\t\tusedFiltersNot() {\n\t\t\tlet match\n\t\t\tconst filters = []\n\t\t\twhile ((match = regexFilterNot.exec(this.query)) !== null) {\n\t\t\t\tfilters.push(match[2])\n\t\t\t}\n\t\t\treturn filters\n\t\t},\n\n\t\t/**\n\t\t * Valid query empty content title\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tvalidQueryTitle() {\n\t\t\treturn this.triggered\n\t\t\t\t? t('core', 'No results for {query}', { query: this.query })\n\t\t\t\t: t('core', 'Press Enter to start searching')\n\t\t},\n\n\t\t/**\n\t\t * Short query empty content description\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tshortQueryDescription() {\n\t\t\tif (!this.isShortQuery) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn n('core',\n\t\t\t\t'Please enter {minSearchLength} character or more to search',\n\t\t\t\t'Please enter {minSearchLength} characters or more to search',\n\t\t\t\tthis.minSearchLength,\n\t\t\t\t{ minSearchLength: this.minSearchLength })\n\t\t},\n\n\t\t/**\n\t\t * Is the current search too short\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisShortQuery() {\n\t\t\treturn this.query && this.query.trim().length < minSearchLength\n\t\t},\n\n\t\t/**\n\t\t * Is the current search valid\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisValidQuery() {\n\t\t\treturn this.query && this.query.trim() !== '' && !this.isShortQuery\n\t\t},\n\n\t\t/**\n\t\t * Have we reached the end of all types searches\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisDoneSearching() {\n\t\t\treturn Object.values(this.reached).every(state => state === false)\n\t\t},\n\n\t\t/**\n\t\t * Is there any search in progress\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisLoading() {\n\t\t\treturn Object.values(this.loading).some(state => state === true)\n\t\t},\n\t},\n\n\tasync created() {\n\t\tthis.types = await getTypes()\n\t\tthis.logger.debug('Unified Search initialized with the following providers', this.types)\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('files:navigation:changed', this.onNavigationChange)\n\t},\n\n\tmounted() {\n\t\t// subscribe in mounted, as onNavigationChange relys on $el\n\t\tsubscribe('files:navigation:changed', this.onNavigationChange)\n\n\t\tif (OCP.Accessibility.disableKeyboardShortcuts()) {\n\t\t\treturn\n\t\t}\n\n\t\tdocument.addEventListener('keydown', (event) => {\n\t\t\t// if not already opened, allows us to trigger default browser on second keydown\n\t\t\tif (event.ctrlKey && event.code === 'KeyF' && !this.open) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tthis.open = true\n\t\t\t} else if (event.ctrlKey && event.key === 'f' && this.open) {\n\t\t\t\t// User wants to use the native browser search, so we close ours again\n\t\t\t\tthis.open = false\n\t\t\t}\n\n\t\t\t// https://www.w3.org/WAI/GL/wiki/Using_ARIA_menus\n\t\t\tif (this.open) {\n\t\t\t\t// If arrow down, focus next result\n\t\t\t\tif (event.key === 'ArrowDown') {\n\t\t\t\t\tthis.focusNext(event)\n\t\t\t\t}\n\n\t\t\t\t// If arrow up, focus prev result\n\t\t\t\tif (event.key === 'ArrowUp') {\n\t\t\t\t\tthis.focusPrev(event)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t},\n\n\tmethods: {\n\t\tasync onOpen() {\n\t\t\t// Update types list in the background\n\t\t\tthis.types = await getTypes()\n\t\t},\n\t\tonClose() {\n\t\t\temit('nextcloud:unified-search.close')\n\t\t},\n\n\t\tonNavigationChange() {\n\t\t\tthis.$el?.querySelector?.('form[role=\"search\"]')?.reset?.()\n\t\t},\n\n\t\t/**\n\t\t * Reset the search state\n\t\t */\n\t\tonReset() {\n\t\t\temit('nextcloud:unified-search.reset')\n\t\t\tthis.logger.debug('Search reset')\n\t\t\tthis.query = ''\n\t\t\tthis.resetState()\n\t\t\tthis.focusInput()\n\t\t},\n\t\tasync resetState() {\n\t\t\tthis.cursors = {}\n\t\t\tthis.limits = {}\n\t\t\tthis.reached = {}\n\t\t\tthis.results = {}\n\t\t\tthis.focused = null\n\t\t\tthis.triggered = false\n\t\t\tawait this.cancelPendingRequests()\n\t\t},\n\n\t\t/**\n\t\t * Cancel any ongoing searches\n\t\t */\n\t\tasync cancelPendingRequests() {\n\t\t\t// Cloning so we can keep processing other requests\n\t\t\tconst requests = this.requests.slice(0)\n\t\t\tthis.requests = []\n\n\t\t\t// Cancel all pending requests\n\t\t\tawait Promise.all(requests.map(cancel => cancel()))\n\t\t},\n\n\t\t/**\n\t\t * Focus the search input on next tick\n\t\t */\n\t\tfocusInput() {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs.input.focus()\n\t\t\t\tthis.$refs.input.select()\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * If we have results already, open first one\n\t\t * If not, trigger the search again\n\t\t */\n\t\tonInputEnter() {\n\t\t\tif (this.hasResults) {\n\t\t\t\tconst results = this.getResultsList()\n\t\t\t\tresults[0].click()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.onInput()\n\t\t},\n\n\t\t/**\n\t\t * Start searching on input\n\t\t */\n\t\tasync onInput() {\n\t\t\t// emit the search query\n\t\t\temit('nextcloud:unified-search.search', { query: this.query })\n\n\t\t\t// Do not search if not long enough\n\t\t\tif (this.query.trim() === '' || this.isShortQuery) {\n\t\t\t\tfor (const type of this.typesIDs) {\n\t\t\t\t\tthis.$delete(this.results, type)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tlet types = this.typesIDs\n\t\t\tlet query = this.query\n\n\t\t\t// Filter out types\n\t\t\tif (this.usedFiltersNot.length > 0) {\n\t\t\t\ttypes = this.typesIDs.filter(type => this.usedFiltersNot.indexOf(type) === -1)\n\t\t\t}\n\n\t\t\t// Only use those filters if any and check if they are valid\n\t\t\tif (this.usedFiltersIn.length > 0) {\n\t\t\t\ttypes = this.typesIDs.filter(type => this.usedFiltersIn.indexOf(type) > -1)\n\t\t\t}\n\n\t\t\t// Remove any filters from the query\n\t\t\tquery = query.replace(regexFilterIn, '').replace(regexFilterNot, '')\n\n\t\t\t// Reset search if the query changed\n\t\t\tawait this.resetState()\n\t\t\tthis.triggered = true\n\n\t\t\tif (!types.length) {\n\t\t\t\t// no results since no types were selected\n\t\t\t\tthis.logger.error('No types to search in')\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.$set(this.loading, 'all', true)\n\t\t\tthis.logger.debug(`Searching ${query} in`, types)\n\n\t\t\tPromise.all(types.map(async type => {\n\t\t\t\ttry {\n\t\t\t\t\t// Init cancellable request\n\t\t\t\t\tconst { request, cancel } = search({ type, query })\n\t\t\t\t\tthis.requests.push(cancel)\n\n\t\t\t\t\t// Fetch results\n\t\t\t\t\tconst { data } = await request()\n\n\t\t\t\t\t// Process results\n\t\t\t\t\tif (data.ocs.data.entries.length > 0) {\n\t\t\t\t\t\tthis.$set(this.results, type, data.ocs.data.entries)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.$delete(this.results, type)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Save cursor if any\n\t\t\t\t\tif (data.ocs.data.cursor) {\n\t\t\t\t\t\tthis.$set(this.cursors, type, data.ocs.data.cursor)\n\t\t\t\t\t} else if (!data.ocs.data.isPaginated) {\n\t\t\t\t\t// If no cursor and no pagination, we save the default amount\n\t\t\t\t\t// provided by server's initial state `defaultLimit`\n\t\t\t\t\t\tthis.$set(this.limits, type, this.defaultLimit)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check if we reached end of pagination\n\t\t\t\t\tif (data.ocs.data.entries.length < this.defaultLimit) {\n\t\t\t\t\t\tthis.$set(this.reached, type, true)\n\t\t\t\t\t}\n\n\t\t\t\t\t// If none already focused, focus the first rendered result\n\t\t\t\t\tif (this.focused === null) {\n\t\t\t\t\t\tthis.focused = 0\n\t\t\t\t\t}\n\t\t\t\t\treturn REQUEST_OK\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.$delete(this.results, type)\n\n\t\t\t\t\t// If this is not a cancelled throw\n\t\t\t\t\tif (error.response && error.response.status) {\n\t\t\t\t\t\tthis.logger.error(`Error searching for ${this.typesMap[type]}`, error)\n\t\t\t\t\t\tshowError(this.t('core', 'An error occurred while searching for {type}', { type: this.typesMap[type] }))\n\t\t\t\t\t\treturn REQUEST_FAILED\n\t\t\t\t\t}\n\t\t\t\t\treturn REQUEST_CANCELED\n\t\t\t\t}\n\t\t\t})).then(results => {\n\t\t\t\t// Do not declare loading finished if the request have been cancelled\n\t\t\t\t// This means another search was triggered and we're therefore still loading\n\t\t\t\tif (results.some(result => result === REQUEST_CANCELED)) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t// We finished all searches\n\t\t\t\tthis.loading = {}\n\t\t\t})\n\t\t},\n\t\tonInputDebounced: enableLiveSearch\n\t\t\t? debounce(function(e) {\n\t\t\t\tthis.onInput(e)\n\t\t\t}, 500)\n\t\t\t: function() {\n\t\t\t\tthis.triggered = false\n\t\t\t},\n\n\t\t/**\n\t\t * Load more results for the provided type\n\t\t *\n\t\t * @param {string} type type\n\t\t */\n\t\tasync loadMore(type) {\n\t\t\t// If already loading, ignore\n\t\t\tif (this.loading[type]) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.cursors[type]) {\n\t\t\t\t// Init cancellable request\n\t\t\t\tconst { request, cancel } = search({ type, query: this.query, cursor: this.cursors[type] })\n\t\t\t\tthis.requests.push(cancel)\n\n\t\t\t\t// Fetch results\n\t\t\t\tconst { data } = await request()\n\n\t\t\t\t// Save cursor if any\n\t\t\t\tif (data.ocs.data.cursor) {\n\t\t\t\t\tthis.$set(this.cursors, type, data.ocs.data.cursor)\n\t\t\t\t}\n\n\t\t\t\t// Process results\n\t\t\t\tif (data.ocs.data.entries.length > 0) {\n\t\t\t\t\tthis.results[type].push(...data.ocs.data.entries)\n\t\t\t\t}\n\n\t\t\t\t// Check if we reached end of pagination\n\t\t\t\tif (data.ocs.data.entries.length < this.defaultLimit) {\n\t\t\t\t\tthis.$set(this.reached, type, true)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If no cursor, we might have all the results already,\n\t\t\t\t// let's fake pagination and show the next xxx entries\n\t\t\t\tif (this.limits[type] && this.limits[type] >= 0) {\n\t\t\t\t\tthis.limits[type] += this.defaultLimit\n\n\t\t\t\t\t// Check if we reached end of pagination\n\t\t\t\t\tif (this.limits[type] >= this.results[type].length) {\n\t\t\t\t\t\tthis.$set(this.reached, type, true)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Focus result after render\n\t\t\tif (this.focused !== null) {\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tthis.focusIndex(this.focused)\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Return a subset of the array if the search provider\n\t\t * doesn't supports pagination\n\t\t *\n\t\t * @param {Array} list the results\n\t\t * @param {string} type the type\n\t\t * @return {Array}\n\t\t */\n\t\tlimitIfAny(list, type) {\n\t\t\tif (type in this.limits) {\n\t\t\t\treturn list.slice(0, this.limits[type])\n\t\t\t}\n\t\t\treturn list\n\t\t},\n\n\t\tgetResultsList() {\n\t\t\treturn this.$el.querySelectorAll('.unified-search__results .unified-search__result')\n\t\t},\n\n\t\t/**\n\t\t * Focus the first result if any\n\t\t *\n\t\t * @param {Event} event the keydown event\n\t\t */\n\t\tfocusFirst(event) {\n\t\t\tconst results = this.getResultsList()\n\t\t\tif (results && results.length > 0) {\n\t\t\t\tif (event) {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t}\n\t\t\t\tthis.focused = 0\n\t\t\t\tthis.focusIndex(this.focused)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Focus the next result if any\n\t\t *\n\t\t * @param {Event} event the keydown event\n\t\t */\n\t\tfocusNext(event) {\n\t\t\tif (this.focused === null) {\n\t\t\t\tthis.focusFirst(event)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst results = this.getResultsList()\n\t\t\t// If we're not focusing the last, focus the next one\n\t\t\tif (results && results.length > 0 && this.focused + 1 < results.length) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tthis.focused++\n\t\t\t\tthis.focusIndex(this.focused)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Focus the previous result if any\n\t\t *\n\t\t * @param {Event} event the keydown event\n\t\t */\n\t\tfocusPrev(event) {\n\t\t\tif (this.focused === null) {\n\t\t\t\tthis.focusFirst(event)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst results = this.getResultsList()\n\t\t\t// If we're not focusing the first, focus the previous one\n\t\t\tif (results && results.length > 0 && this.focused > 0) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tthis.focused--\n\t\t\t\tthis.focusIndex(this.focused)\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Focus the specified result index if it exists\n\t\t *\n\t\t * @param {number} index the result index\n\t\t */\n\t\tfocusIndex(index) {\n\t\t\tconst results = this.getResultsList()\n\t\t\tif (results && results[index]) {\n\t\t\t\tresults[index].focus()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Set the current focused element based on the target\n\t\t *\n\t\t * @param {Event} event the focus event\n\t\t */\n\t\tsetFocusedIndex(event) {\n\t\t\tconst entry = event.target\n\t\t\tconst results = this.getResultsList()\n\t\t\tconst index = [...results].findIndex(search => search === entry)\n\t\t\tif (index > -1) {\n\t\t\t\t// let's not use focusIndex as the entry is already focused\n\t\t\t\tthis.focused = index\n\t\t\t}\n\t\t},\n\n\t\tonClickFilter(filter) {\n\t\t\tthis.query = `${this.query} ${filter}`\n\t\t\t\t.replace(/ {2}/g, ' ')\n\t\t\t\t.trim()\n\t\t\tthis.onInput()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use \"sass:math\";\n\n$margin: 10px;\n$input-height: 34px;\n$input-padding: 10px;\n\n.unified-search {\n\t&__trigger-icon {\n\t\tcolor: var(--color-background-plain-text) !important;\n\t}\n\n\t&__input-wrapper {\n\t\tposition: sticky;\n\t\t// above search results\n\t\tz-index: 2;\n\t\ttop: 0;\n\t\tdisplay: inline-flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\twidth: 100%;\n\t\tbackground-color: var(--color-main-background);\n\n\t\tlabel[for=\"unified-search__input\"] {\n\t\t\talign-self: flex-start;\n\t\t\tfont-weight: bold;\n\t\t\tfont-size: 19px;\n\t\t\tmargin-inline-start: 13px;\n\t\t}\n\t}\n\n\t&__input-row {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\talign-items: center;\n\t}\n\n\t&__filters {\n\t\tmargin-block: $margin;\n\t\tmargin-inline: math.div($margin, 2) 0;\n\t\tpadding-top: 5px;\n\t\tul {\n\t\t\tdisplay: inline-flex;\n\t\t\tjustify-content: space-between;\n\t\t}\n\t}\n\n\t&__form {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\tmargin: $margin 0;\n\n\t\t// Loading spinner\n\t\t&::after {\n\t\tinset-inline-start: auto $input-padding;\n\t\t}\n\n\t\t&-input,\n\t\t&-reset {\n\t\t\tmargin: math.div($input-padding, 2);\n\t\t}\n\n\t\t&-input {\n\t\t\twidth: 100%;\n\t\t\theight: $input-height;\n\t\t\tpadding: $input-padding;\n\n\t\t\t&:focus,\n\t\t\t&:focus-visible,\n\t\t\t&:active {\n\t\t\t\tborder-color: 2px solid var(--color-main-text) !important;\n\t\t\t\tbox-shadow: 0 0 0 2px var(--color-main-background) !important;\n\t\t\t}\n\n\t\t\t&,\n\t\t\t&[placeholder],\n\t\t\t&::placeholder {\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\n\t\t\t// Hide webkit clear search\n\t\t\t&::-webkit-search-decoration,\n\t\t\t&::-webkit-search-cancel-button,\n\t\t\t&::-webkit-search-results-button,\n\t\t\t&::-webkit-search-results-decoration {\n\t\t\t\t-webkit-appearance: none;\n\t\t\t}\n\t\t}\n\n\t\t&-reset,\n\t\t&-submit {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tinset-inline-end: 4px;\n\t\t\twidth: $input-height - $input-padding;\n\t\t\theight: $input-height - $input-padding;\n\t\t\tmin-height: 30px;\n\t\t\tpadding: 0;\n\t\t\topacity: .5;\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t\tmargin-inline-end: 0;\n\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\n\t\t&-submit {\n\t\t\tinset-inline-end: 28px;\n\t\t}\n\t}\n\n\t&__results {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 4px;\n\n\t\t&-header {\n\t\t\tdisplay: block;\n\t\t\tmargin: $margin;\n\t\t\tmargin-bottom: $margin - 4px;\n\t\t\tmargin-inline-start: 13px;\n\t\t\tcolor: var(--color-primary-element);\n\t\t\tfont-size: 19px;\n\t\t\tfont-weight: bold;\n\t\t}\n\t}\n\n\t:deep(.unified-search__result-more) {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t.empty-content {\n\t\tmargin: 10vh 0;\n\n\t\t:deep(.empty-content__title) {\n\t\t\tfont-weight: normal;\n\t\t\tfont-size: var(--default-font-size);\n\t\t\ttext-align: center;\n\t\t}\n\t}\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyUnifiedSearch.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!./LegacyUnifiedSearch.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.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyUnifiedSearch.vue?vue&type=style&index=0&id=d7d405f2&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyUnifiedSearch.vue?vue&type=style&index=0&id=d7d405f2&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LegacyUnifiedSearch.vue?vue&type=template&id=d7d405f2&scoped=true\"\nimport script from \"./LegacyUnifiedSearch.vue?vue&type=script&lang=js\"\nexport * from \"./LegacyUnifiedSearch.vue?vue&type=script&lang=js\"\nimport style0 from \"./LegacyUnifiedSearch.vue?vue&type=style&index=0&id=d7d405f2&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 \"d7d405f2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcHeaderMenu',{staticClass:\"unified-search\",attrs:{\"id\":\"unified-search\",\"exclude-click-outside-selectors\":['.popover'],\"open\":_vm.open,\"aria-label\":_vm.ariaLabel},on:{\"update:open\":function($event){_vm.open=$event},\"open\":_vm.onOpen,\"close\":_vm.onClose},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('Magnify',{staticClass:\"unified-search__trigger-icon\",attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"unified-search__input-wrapper\"},[_c('div',{staticClass:\"unified-search__input-row\"},[_c('NcTextField',{ref:\"input\",staticClass:\"unified-search__form-input\",class:{'unified-search__form-input--with-reset': !!_vm.query},attrs:{\"value\":_vm.query,\"trailing-button-icon\":\"close\",\"label\":_vm.ariaLabel,\"trailing-button-label\":_vm.t('core','Reset search'),\"show-trailing-button\":_vm.query !== '',\"aria-describedby\":\"unified-search-desc\",\"placeholder\":_vm.t('core', 'Search {types} …', { types: _vm.typesNames.join(', ') })},on:{\"update:value\":function($event){_vm.query=$event},\"trailing-button-click\":_vm.onReset,\"input\":_vm.onInputDebounced}}),_vm._v(\" \"),_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":\"unified-search-desc\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Search starts once you start typing and results may be reached with the arrow keys'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(_vm.availableFilters.length > 1)?_c('NcActions',{staticClass:\"unified-search__filters\",attrs:{\"placement\":\"bottom-end\",\"container\":\".unified-search__input-wrapper\"}},_vm._l((_vm.availableFilters),function(filter){return _c('NcActionButton',{key:filter,attrs:{\"icon\":\"icon-filter\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClickFilter(`in:${filter}`)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Search for {name} only', { name: _vm.typesMap[filter] }))+\"\\n\\t\\t\\t\\t\")])}),1):_vm._e()],1)]),_vm._v(\" \"),(!_vm.hasResults)?[(_vm.isLoading)?_c('SearchResultPlaceholders'):(_vm.isValidQuery)?_c('NcEmptyContent',{attrs:{\"title\":_vm.validQueryTitle},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Magnify')]},proxy:true}],null,false,931131664)}):(!_vm.isLoading || _vm.isShortQuery)?_c('NcEmptyContent',{attrs:{\"title\":_vm.t('core', 'Start typing to search'),\"description\":_vm.shortQueryDescription},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Magnify')]},proxy:true}],null,false,931131664)}):_vm._e()]:_vm._l((_vm.orderedResults),function({list, type},typesIndex){return [_c('h2',{key:type,staticClass:\"unified-search__results-header\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.typesMap[type])+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('ul',{key:type,staticClass:\"unified-search__results\",class:`unified-search__results-${type}`,attrs:{\"aria-label\":_vm.typesMap[type]}},[_vm._l((_vm.limitIfAny(list, type)),function(result,index){return _c('li',{key:result.resourceUrl},[_c('SearchResult',_vm._b({attrs:{\"query\":_vm.query,\"focused\":_vm.focused === 0 && typesIndex === 0 && index === 0},on:{\"focus\":_vm.setFocusedIndex}},'SearchResult',result,false))],1)}),_vm._v(\" \"),_c('li',[(!_vm.reached[type])?_c('SearchResult',{staticClass:\"unified-search__result-more\",attrs:{\"title\":_vm.loading[type]\n\t\t\t\t\t\t? _vm.t('core', 'Loading more results …')\n\t\t\t\t\t\t: _vm.t('core', 'Load more results'),\"icon-class\":_vm.loading[type] ? 'icon-loading-small' : ''},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.loadMore(type)},\"focus\":_vm.setFocusedIndex}}):_vm._e()],1)],2)]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\nimport Vue from 'vue'\n\nimport UnifiedSearch from './views/LegacyUnifiedSearch.vue'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\nconst logger = getLoggerBuilder()\n\t.setApp('unified-search')\n\t.detectUser()\n\t.build()\n\nVue.mixin({\n\tdata() {\n\t\treturn {\n\t\t\tlogger,\n\t\t}\n\t},\n\tmethods: {\n\t\tt,\n\t\tn,\n\t},\n})\n\nexport default new Vue({\n\tel: '#unified-search',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UnifiedSearchRoot',\n\trender: h => h(UnifiedSearch),\n})\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search__result[data-v-0d55d2bc]{display:flex;align-items:center;height:44px;padding:10px;border:2px solid rgba(0,0,0,0);border-radius:var(--border-radius-large) !important}.unified-search__result--focused[data-v-0d55d2bc]{background-color:var(--color-background-hover)}.unified-search__result[data-v-0d55d2bc]:active,.unified-search__result[data-v-0d55d2bc]:hover,.unified-search__result[data-v-0d55d2bc]:focus{background-color:var(--color-background-hover);border:2px solid var(--color-border-maxcontrast)}.unified-search__result *[data-v-0d55d2bc]{cursor:pointer}.unified-search__result-icon[data-v-0d55d2bc]{overflow:hidden;width:44px;height:44px;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center center;background-size:32px}.unified-search__result-icon--rounded[data-v-0d55d2bc]{border-radius:22px}.unified-search__result-icon--no-preview[data-v-0d55d2bc]{background-size:32px}.unified-search__result-icon--with-thumbnail[data-v-0d55d2bc]{background-size:cover}.unified-search__result-icon--with-thumbnail[data-v-0d55d2bc]:not(.unified-search__result-icon--rounded){max-width:42px;max-height:42px;border:1px solid var(--color-border)}.unified-search__result-icon img[data-v-0d55d2bc]{width:100%;height:100%;object-fit:cover;object-position:center}.unified-search__result-icon[data-v-0d55d2bc],.unified-search__result-actions[data-v-0d55d2bc]{flex:0 0 44px}.unified-search__result-content[data-v-0d55d2bc]{display:flex;align-items:center;flex:1 1 100%;flex-wrap:wrap;min-width:0;padding-inline-start:10px}.unified-search__result-line-one[data-v-0d55d2bc],.unified-search__result-line-two[data-v-0d55d2bc]{overflow:hidden;flex:1 1 100%;margin:1px 0;white-space:nowrap;text-overflow:ellipsis;color:inherit;font-size:inherit}.unified-search__result-line-two[data-v-0d55d2bc]{opacity:.7;font-size:var(--default-font-size)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/LegacySearchResult.vue\"],\"names\":[],\"mappings\":\"AAMA,yCACC,YAAA,CACA,kBAAA,CACA,WANgB,CAOhB,YANQ,CAOR,8BAAA,CACA,mDAAA,CAEA,kDACC,8CAAA,CAGD,8IAGC,8CAAA,CACA,gDAAA,CAGD,2CACC,cAAA,CAGD,8CACC,eAAA,CACA,UA5Be,CA6Bf,WA7Be,CA8Bf,kCAAA,CACA,2BAAA,CACA,iCAAA,CACA,oBAAA,CACA,uDACC,kBAAA,CAED,0DACC,oBAAA,CAED,8DACC,qBAAA,CAED,yGAEC,cAAA,CACA,eAAA,CACA,oCAAA,CAGD,kDAEC,UAAA,CACA,WAAA,CAEA,gBAAA,CACA,sBAAA,CAIF,+FAEC,aAAA,CAGD,iDACC,YAAA,CACA,kBAAA,CACA,aAAA,CACA,cAAA,CAEA,WAAA,CACA,yBAvEO,CA0ER,oGAEC,eAAA,CACA,aAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,aAAA,CACA,iBAAA,CAED,kDACC,UAAA,CACA,kCAAA\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n\\n$clickable-area: 44px;\\n$margin: 10px;\\n\\n.unified-search__result {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\theight: $clickable-area;\\n\\tpadding: $margin;\\n\\tborder: 2px solid transparent;\\n\\tborder-radius: var(--border-radius-large) !important;\\n\\n\\t&--focused {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t}\\n\\n\\t&:active,\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tborder: 2px solid var(--color-border-maxcontrast);\\n\\t}\\n\\n\\t* {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\n\\t&-icon {\\n\\t\\toverflow: hidden;\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-repeat: no-repeat;\\n\\t\\tbackground-position: center center;\\n\\t\\tbackground-size: 32px;\\n\\t\\t&--rounded {\\n\\t\\t\\tborder-radius: math.div($clickable-area, 2);\\n\\t\\t}\\n\\t\\t&--no-preview {\\n\\t\\t\\tbackground-size: 32px;\\n\\t\\t}\\n\\t\\t&--with-thumbnail {\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\t\\t&--with-thumbnail:not(&--rounded) {\\n\\t\\t\\t// compensate for border\\n\\t\\t\\tmax-width: $clickable-area - 2px;\\n\\t\\t\\tmax-height: $clickable-area - 2px;\\n\\t\\t\\tborder: 1px solid var(--color-border);\\n\\t\\t}\\n\\n\\t\\timg {\\n\\t\\t\\t// Make sure to keep ratio\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 100%;\\n\\n\\t\\t\\tobject-fit: cover;\\n\\t\\t\\tobject-position: center;\\n\\t\\t}\\n\\t}\\n\\n\\t&-icon,\\n\\t&-actions {\\n\\t\\tflex: 0 0 $clickable-area;\\n\\t}\\n\\n\\t&-content {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tflex: 1 1 100%;\\n\\t\\tflex-wrap: wrap;\\n\\t\\t// Set to minimum and gro from it\\n\\t\\tmin-width: 0;\\n\\t\\tpadding-inline-start: $margin;\\n\\t}\\n\\n\\t&-line-one,\\n\\t&-line-two {\\n\\t\\toverflow: hidden;\\n\\t\\tflex: 1 1 100%;\\n\\t\\tmargin: 1px 0;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\t// Use the same color as the `a`\\n\\t\\tcolor: inherit;\\n\\t\\tfont-size: inherit;\\n\\t}\\n\\t&-line-two {\\n\\t\\topacity: .7;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search__result-placeholder-gradient[data-v-77826dca]{position:fixed;height:0;width:0;z-index:-1}.unified-search__result-placeholder[data-v-77826dca]{width:calc(100% - 2*10px);height:44px;margin:10px}.unified-search__result-placeholder-icon[data-v-77826dca]{width:44px;height:44px;rx:var(--border-radius);ry:var(--border-radius)}.unified-search__result-placeholder-line-one[data-v-77826dca],.unified-search__result-placeholder-line-two[data-v-77826dca]{width:calc(100% - 54px);height:1em;x:54px}.unified-search__result-placeholder-line-one[data-v-77826dca]{y:5px}.unified-search__result-placeholder-line-two[data-v-77826dca]{y:25px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/UnifiedSearch/SearchResultPlaceholders.vue\"],\"names\":[],\"mappings\":\"AAIA,8DACC,cAAA,CACA,QAAA,CACA,OAAA,CACA,UAAA,CAGD,qDACC,yBAAA,CACA,WAZgB,CAahB,WAZQ,CAcR,0DACC,UAhBe,CAiBf,WAjBe,CAkBf,uBAAA,CACA,uBAAA,CAGD,4HAEC,uBAAA,CACA,UAAA,CACA,MAAA,CAGD,8DACC,KAAA,CAGD,8DACC,MAAA\",\"sourcesContent\":[\"\\n$clickable-area: 44px;\\n$margin: 10px;\\n\\n.unified-search__result-placeholder-gradient {\\n\\tposition: fixed;\\n\\theight: 0;\\n\\twidth: 0;\\n\\tz-index: -1;\\n}\\n\\n.unified-search__result-placeholder {\\n\\twidth: calc(100% - 2 * #{$margin});\\n\\theight: $clickable-area;\\n\\tmargin: $margin;\\n\\n\\t&-icon {\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\trx: var(--border-radius);\\n\\t\\try: var(--border-radius);\\n\\t}\\n\\n\\t&-line-one,\\n\\t&-line-two {\\n\\t\\twidth: calc(100% - #{$margin + $clickable-area});\\n\\t\\theight: 1em;\\n\\t\\tx: $margin + $clickable-area;\\n\\t}\\n\\n\\t&-line-one {\\n\\t\\ty: 5px;\\n\\t}\\n\\n\\t&-line-two {\\n\\t\\ty: 25px;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.unified-search__trigger-icon[data-v-d7d405f2]{color:var(--color-background-plain-text) !important}.unified-search__input-wrapper[data-v-d7d405f2]{position:sticky;z-index:2;top:0;display:inline-flex;flex-direction:column;align-items:center;width:100%;background-color:var(--color-main-background)}.unified-search__input-wrapper label[for=unified-search__input][data-v-d7d405f2]{align-self:flex-start;font-weight:bold;font-size:19px;margin-inline-start:13px}.unified-search__input-row[data-v-d7d405f2]{display:flex;width:100%;align-items:center}.unified-search__filters[data-v-d7d405f2]{margin-block:10px;margin-inline:5px 0;padding-top:5px}.unified-search__filters ul[data-v-d7d405f2]{display:inline-flex;justify-content:space-between}.unified-search__form[data-v-d7d405f2]{position:relative;width:100%;margin:10px 0}.unified-search__form[data-v-d7d405f2]::after{inset-inline-start:auto 10px}.unified-search__form-input[data-v-d7d405f2],.unified-search__form-reset[data-v-d7d405f2]{margin:5px}.unified-search__form-input[data-v-d7d405f2]{width:100%;height:34px;padding:10px}.unified-search__form-input[data-v-d7d405f2]:focus,.unified-search__form-input[data-v-d7d405f2]:focus-visible,.unified-search__form-input[data-v-d7d405f2]:active{border-color:2px solid var(--color-main-text) !important;box-shadow:0 0 0 2px var(--color-main-background) !important}.unified-search__form-input[data-v-d7d405f2],.unified-search__form-input[placeholder][data-v-d7d405f2],.unified-search__form-input[data-v-d7d405f2]::placeholder{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.unified-search__form-input[data-v-d7d405f2]::-webkit-search-decoration,.unified-search__form-input[data-v-d7d405f2]::-webkit-search-cancel-button,.unified-search__form-input[data-v-d7d405f2]::-webkit-search-results-button,.unified-search__form-input[data-v-d7d405f2]::-webkit-search-results-decoration{-webkit-appearance:none}.unified-search__form-reset[data-v-d7d405f2],.unified-search__form-submit[data-v-d7d405f2]{position:absolute;top:0;inset-inline-end:4px;width:24px;height:24px;min-height:30px;padding:0;opacity:.5;border:none;background-color:rgba(0,0,0,0);margin-inline-end:0}.unified-search__form-reset[data-v-d7d405f2]:hover,.unified-search__form-reset[data-v-d7d405f2]:focus,.unified-search__form-reset[data-v-d7d405f2]:active,.unified-search__form-submit[data-v-d7d405f2]:hover,.unified-search__form-submit[data-v-d7d405f2]:focus,.unified-search__form-submit[data-v-d7d405f2]:active{opacity:1}.unified-search__form-submit[data-v-d7d405f2]{inset-inline-end:28px}.unified-search__results[data-v-d7d405f2]{display:flex;flex-direction:column;gap:4px}.unified-search__results-header[data-v-d7d405f2]{display:block;margin:10px;margin-bottom:6px;margin-inline-start:13px;color:var(--color-primary-element);font-size:19px;font-weight:bold}.unified-search[data-v-d7d405f2] .unified-search__result-more{color:var(--color-text-maxcontrast)}.unified-search .empty-content[data-v-d7d405f2]{margin:10vh 0}.unified-search .empty-content[data-v-d7d405f2] .empty-content__title{font-weight:normal;font-size:var(--default-font-size);text-align:center}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/LegacyUnifiedSearch.vue\"],\"names\":[],\"mappings\":\"AAQC,+CACC,mDAAA,CAGD,gDACC,eAAA,CAEA,SAAA,CACA,KAAA,CACA,mBAAA,CACA,qBAAA,CACA,kBAAA,CACA,UAAA,CACA,6CAAA,CAEA,iFACC,qBAAA,CACA,gBAAA,CACA,cAAA,CACA,wBAAA,CAIF,4CACC,YAAA,CACA,UAAA,CACA,kBAAA,CAGD,0CACC,iBAnCO,CAoCP,mBAAA,CACA,eAAA,CACA,6CACC,mBAAA,CACA,6BAAA,CAIF,uCACC,iBAAA,CACA,UAAA,CACA,aAAA,CAGA,8CACA,4BAAA,CAGA,0FAEC,UAAA,CAGD,6CACC,UAAA,CACA,WA5DY,CA6DZ,YA5Da,CA8Db,kKAGC,wDAAA,CACA,4DAAA,CAGD,iKAGC,eAAA,CACA,kBAAA,CACA,sBAAA,CAID,+SAIC,uBAAA,CAIF,2FAEC,iBAAA,CACA,KAAA,CACA,oBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,SAAA,CACA,UAAA,CACA,WAAA,CACA,8BAAA,CACA,mBAAA,CAEA,uTAGC,SAAA,CAIF,8CACC,qBAAA,CAIF,0CACC,YAAA,CACA,qBAAA,CACA,OAAA,CAEA,iDACC,aAAA,CACA,WAzHM,CA0HN,iBAAA,CACA,wBAAA,CACA,kCAAA,CACA,cAAA,CACA,gBAAA,CAIF,8DACC,mCAAA,CAGD,gDACC,aAAA,CAEA,sEACC,kBAAA,CACA,kCAAA,CACA,iBAAA\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n\\n$margin: 10px;\\n$input-height: 34px;\\n$input-padding: 10px;\\n\\n.unified-search {\\n\\t&__trigger-icon {\\n\\t\\tcolor: var(--color-background-plain-text) !important;\\n\\t}\\n\\n\\t&__input-wrapper {\\n\\t\\tposition: sticky;\\n\\t\\t// above search results\\n\\t\\tz-index: 2;\\n\\t\\ttop: 0;\\n\\t\\tdisplay: inline-flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\twidth: 100%;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\n\\t\\tlabel[for=\\\"unified-search__input\\\"] {\\n\\t\\t\\talign-self: flex-start;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tfont-size: 19px;\\n\\t\\t\\tmargin-inline-start: 13px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__input-row {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__filters {\\n\\t\\tmargin-block: $margin;\\n\\t\\tmargin-inline: math.div($margin, 2) 0;\\n\\t\\tpadding-top: 5px;\\n\\t\\tul {\\n\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\tjustify-content: space-between;\\n\\t\\t}\\n\\t}\\n\\n\\t&__form {\\n\\t\\tposition: relative;\\n\\t\\twidth: 100%;\\n\\t\\tmargin: $margin 0;\\n\\n\\t\\t// Loading spinner\\n\\t\\t&::after {\\n\\t\\tinset-inline-start: auto $input-padding;\\n\\t\\t}\\n\\n\\t\\t&-input,\\n\\t\\t&-reset {\\n\\t\\t\\tmargin: math.div($input-padding, 2);\\n\\t\\t}\\n\\n\\t\\t&-input {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: $input-height;\\n\\t\\t\\tpadding: $input-padding;\\n\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:focus-visible,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tborder-color: 2px solid var(--color-main-text) !important;\\n\\t\\t\\t\\tbox-shadow: 0 0 0 2px var(--color-main-background) !important;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&,\\n\\t\\t\\t&[placeholder],\\n\\t\\t\\t&::placeholder {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Hide webkit clear search\\n\\t\\t\\t&::-webkit-search-decoration,\\n\\t\\t\\t&::-webkit-search-cancel-button,\\n\\t\\t\\t&::-webkit-search-results-button,\\n\\t\\t\\t&::-webkit-search-results-decoration {\\n\\t\\t\\t\\t-webkit-appearance: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-reset,\\n\\t\\t&-submit {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tinset-inline-end: 4px;\\n\\t\\t\\twidth: $input-height - $input-padding;\\n\\t\\t\\theight: $input-height - $input-padding;\\n\\t\\t\\tmin-height: 30px;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\topacity: .5;\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\tmargin-inline-end: 0;\\n\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-submit {\\n\\t\\t\\tinset-inline-end: 28px;\\n\\t\\t}\\n\\t}\\n\\n\\t&__results {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: 4px;\\n\\n\\t\\t&-header {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tmargin: $margin;\\n\\t\\t\\tmargin-bottom: $margin - 4px;\\n\\t\\t\\tmargin-inline-start: 13px;\\n\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\tfont-size: 19px;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t}\\n\\t}\\n\\n\\t:deep(.unified-search__result-more) {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t.empty-content {\\n\\t\\tmargin: 10vh 0;\\n\\n\\t\\t:deep(.empty-content__title) {\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tfont-size: var(--default-font-size);\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"2441\":\"fc741cf57e9647f370a3\",\"5862\":\"7b9b02dc0a1b898066ef\",\"7874\":\"3ea1c62ce5f0e7d75e81\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1684;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1684: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(8192)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","name","components","NcHighlight","props","thumbnailUrl","type","String","default","title","required","subline","resourceUrl","icon","rounded","Boolean","query","focused","data","hasValidThumbnail","trim","loaded","computed","isIconUrl","startsWith","URL","watch","methods","reEmitEvent","e","$emit","onError","onLoad","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","class","attrs","on","style","backgroundImage","directives","rawName","value","expression","_e","_v","_s","light","dark","mounted","styles","getComputedStyle","document","documentElement","getPropertyValue","randWidth","Math","floor","random","_l","placeholder","key","width","defaultLimit","loadState","minSearchLength","enableLiveSearch","regexFilterIn","regexFilterNot","async","getTypes","axios","get","generateOcsUrl","params","from","window","location","pathname","replace","search","ocs","Array","isArray","length","error","console","_ref","cursor","cancelToken","CancelToken","source","request","token","term","cancel","Magnify","NcActionButton","NcActions","NcEmptyContent","NcHeaderMenu","SearchResult","SearchResultPlaceholders","NcTextField","types","cursors","limits","loading","reached","requests","results","triggered","open","typesIDs","map","id","typesNames","typesMap","reduce","prev","curr","ariaLabel","t","hasResults","Object","keys","orderedResults","filter","list","availableFilters","usedFiltersIn","match","filters","exec","push","usedFiltersNot","validQueryTitle","shortQueryDescription","isShortQuery","n","isValidQuery","isDoneSearching","values","every","state","isLoading","some","created","logger","debug","beforeDestroy","unsubscribe","onNavigationChange","subscribe","OCP","Accessibility","disableKeyboardShortcuts","addEventListener","event","ctrlKey","code","preventDefault","focusNext","focusPrev","onOpen","onClose","emit","$el","querySelector","reset","onReset","resetState","focusInput","cancelPendingRequests","slice","Promise","all","$nextTick","$refs","input","focus","select","onInputEnter","getResultsList","click","onInput","$delete","indexOf","$set","entries","isPaginated","response","status","showError","then","result","onInputDebounced","debounce","loadMore","focusIndex","limitIfAny","querySelectorAll","focusFirst","index","setFocusedIndex","entry","target","findIndex","onClickFilter","$event","scopedSlots","_u","fn","proxy","ref","join","stopPropagation","typesIndex","_b","__webpack_nonce__","getCSPNonce","getLoggerBuilder","setApp","detectUser","build","Vue","mixin","el","render","h","UnifiedSearch","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","splice","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","chunkId","promises","u","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","l","url","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","currentScript","tagName","toUpperCase","test","Error","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/dist/files-main.js b/dist/files-main.js
index f9ad0cbf937..61b6cf88d5b 100644
--- a/dist/files-main.js
+++ b/dist/files-main.js
@@ -1,2 +1,2 @@
-(()=>{"use strict";var e,s,n,i={52054:(e,s,n)=>{var i=n(21777),a=n(65899),r=n(85471);const o=()=>(window._nc_files_pinia||(window._nc_files_pinia=(0,a.Ey)()),window._nc_files_pinia);var l=n(43627),d=n(94205),c=n(32981),m=n(35810),u=n(85168),g=n(53334),f=n(49264),p=n(5655);const h=(0,n(35947).YK)().setApp("files").detectUser().build();var v=n(61338),w=n(87485),A=n(65043);const b=()=>!0===(0,w.F)()?.files?.undelete,C=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"shared"===e.attributes["mount-type"])),y=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"external"===e.attributes["mount-type"])),x=(e,t)=>C(e)?1===e.length?(0,g.t)("files","Leave this share"):(0,g.t)("files","Leave these shares"):y(e)?1===e.length?(0,g.t)("files","Disconnect storage"):(0,g.t)("files","Disconnect storages"):"trashbin"!==t.id&&b()?(e=>{if(1===e.length)return!1;const t=e.some((e=>C([e]))),s=e.some((e=>!C([e])));return t&&s})(e)?(0,g.t)("files","Delete and unshare"):(e=>!e.some((e=>e.type!==m.pt.File)))(e)?1===e.length?(0,g.t)("files","Delete file"):(0,g.t)("files","Delete files"):(e=>!e.some((e=>e.type!==m.pt.Folder)))(e)?1===e.length?(0,g.t)("files","Delete folder"):(0,g.t)("files","Delete folders"):(0,g.t)("files","Delete"):(0,g.t)("files","Delete permanently"),k=async(e,t)=>{const s="trashbin"!==t.id&&b()?(0,g.n)("files","You are about to delete {count} item","You are about to delete {count} items",e.length,{count:e.length}):(0,g.n)("files","You are about to permanently delete {count} item","You are about to permanently delete {count} items",e.length,{count:e.length});return new Promise((n=>{window.OC.dialogs.confirmDestructive(s,(0,g.t)("files","Confirm deletion"),{type:window.OC.dialogs.YES_NO_BUTTONS,confirm:x(e,t),confirmClasses:"error",cancel:(0,g.t)("files","Cancel")},(e=>{n(e)}))}))},_=async e=>{await A.Ay.delete(e.encodedSource),(0,v.Ic)("files:node:deleted",e)},T=new f.A({concurrency:5}),S=new m.hY({id:"delete",displayName:x,iconSvgInline:e=>C(e)?p:y(e)?'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-network-off" viewBox="0 0 24 24"><path d="M1,5.27L5,9.27V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H17.73L19.73,24L21,22.72L2.28,4L1,5.27M15,20A1,1 0 0,0 14,19H13V17.27L15.73,20H15M17.69,16.87L5.13,4.31C5.41,3.55 6.14,3 7,3H17A2,2 0 0,1 19,5V15C19,15.86 18.45,16.59 17.69,16.87M22,20V21.18L20.82,20H22Z" /></svg>':'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-trash-can" viewBox="0 0 24 24"><path d="M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M9,8H11V17H9V8M13,8H15V17H13V8Z" /></svg>',enabled:e=>!!(0,c.C)("files_trashbin","config").allow_delete&&e.length>0&&e.map((e=>e.permissions)).every((e=>!!(e&m.aX.DELETE))),async exec(e,t){try{let s=!0;const n=((new Error).stack||"").toLocaleLowerCase().includes("keydown");return b()&&!n||(s=await k([e],t)),!1===s?((0,u.cf)((0,g.Tl)("files","Deletion cancelled")),null):(await _(e),!0)}catch(t){return h.error("Error while deleting a file",{error:t,source:e.source,node:e}),!1}},async execBatch(e,t){let s=!0;if(b()?e.length>=5&&!C(e)&&!y(e)&&(s=await k(e,t)):s=await k(e,t),!1===s)return(0,u.cf)((0,g.Tl)("files","Deletion cancelled")),Promise.all(e.map((()=>null)));const n=e.map((e=>new Promise((t=>{T.add((async()=>{try{await _(e),t(!0)}catch(s){h.error("Error while deleting a file",{error:s,source:e.source,node:e}),t(!1)}}))}))));return Promise.all(n)},order:100});var L=n(71225),N=n(63814),F=n(82680),E=n(63006),U=n(11459);const I=new f.A({concurrency:5}),P=e=>e.some((e=>1!==e.attributes.favorite)),z=async(e,t,s)=>{try{const n=(0,N.Jv)("/apps/files/api/v1/files")+(0,L.O0)(e.path);return await A.Ay.post(n,{tags:s?[window.OC.TAG_FAVORITE]:[]}),"favorites"!==t.id||s||"/"!==e.dirname||(0,v.Ic)("files:node:deleted",e),r.Ay.set(e.attributes,"favorite",s?1:0),s?(0,v.Ic)("files:favorites:added",e):(0,v.Ic)("files:favorites:removed",e),!0}catch(t){const n=s?"adding a file to favourites":"removing a file from favourites";return h.error("Error while "+n,{error:t,source:e.source,node:e}),!1}},B=new m.hY({id:"favorite",displayName:e=>P(e)?(0,g.Tl)("files","Add to favorites"):(0,g.Tl)("files","Remove from favorites"),iconSvgInline:e=>P(e)?E:U,enabled:e=>!(0,F.f)()&&e.every((e=>e.root?.startsWith?.("/files")))&&e.every((e=>e.permissions!==m.aX.NONE)),async exec(e,t){const s=P([e]);return await z(e,t,s)},async execBatch(e,t){const s=P(e),n=e.map((e=>new Promise((n=>{I.add((async()=>{try{await z(e,t,s),n(!0)}catch(t){h.error("Error while adding file to favorite",{error:t,source:e.source,node:e}),n(!1)}}))}))));return Promise.all(n)},order:-50});var D=n(19664);const O=new m.hY({id:"rename",displayName:()=>(0,g.Tl)("files","Rename"),iconSvgInline:()=>D,enabled:(e,t)=>0!==e.length&&"public-file-share"!==t.id&&e.every((e=>Boolean(e.permissions&m.aX.DELETE))),exec:async e=>((0,v.Ic)("files:node:rename",e),null),order:10});var R=n(49981);const j=new m.hY({id:"details",displayName:()=>(0,g.Tl)("files","Open details"),iconSvgInline:()=>R,enabled:e=>!(0,F.f)()&&1===e.length&&!!e[0]&&!!window?.OCA?.Files?.Sidebar&&((e[0].root?.startsWith("/files/")&&e[0].permissions!==m.aX.NONE)??!1),async exec(e,t,s){try{return window.OCA.Files.Sidebar.file===e.path?(h.debug("Sidebar already open for this file",{node:e}),null):(window.OCA.Files.Sidebar.setActiveTab("sharing"),await window.OCA.Files.Sidebar.open(e.path),window.OCP?.Files?.Router?.goToRoute(null,{view:t.id,fileid:String(e.fileid)},{...window.OCP.Files.Router.query,dir:s,opendetails:"true"},!0),null)}catch(e){return h.error("Error while opening sidebar",{error:e}),!1}},order:-50}),M=function(){const e=(0,a.nY)("active",{state:()=>({_initialized:!1,activeNode:null,activeView:null,activeAction:null}),actions:{setActiveNode(e){if(!e)throw new Error("Use clearActiveNode to clear the active node");h.debug("Setting active node",{node:e}),this.activeNode=e},clearActiveNode(){this.activeNode=null},onDeletedNode(e){this.activeNode&&this.activeNode.source===e.source&&this.clearActiveNode()},setActiveAction(e){this.activeAction=e},clearActiveAction(){this.activeAction=null},onChangedView(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;h.debug("Setting active view",{view:e}),this.activeView=e,this.clearActiveNode()}}}),t=e(...arguments),s=(0,m.bh)();return t._initialized||((0,v.B1)("files:node:deleted",t.onDeletedNode),t._initialized=!0,t.onChangedView(s.active),s.addEventListener("updateActive",(e=>{t.onChangedView(e.detail)}))),t},V=async e=>{const t=M(o()),s=window?.OCP?.Files?.Router?.query?.dir||"/",n=t.activeNode,i=t.activeView;if(!n||!i)return void h.error("No active node or view",{node:n,view:i});if(n.status===m.zI.LOADING)return void h.debug("Node is already loading",{node:n});if(!e.enabled([n],i))return void h.debug("Action is not not available for the current context",{action:e,node:n,view:i});let a=e.id;try{a=e.displayName([n],i)}catch(t){h.error("Error while getting action display name",{action:e,error:t})}try{r.Ay.set(n,"status",m.zI.LOADING),t.setActiveAction(e);const o=await e.exec(n,i,s);if(null==o)return;if(o)return void(0,u.Te)((0,g.t)("files",'"{displayName}" action executed successfully',{displayName:a}));(0,u.Qg)((0,g.t)("files",'"{displayName}" action failed',{displayName:a}))}catch(t){h.error("Error while executing action",{action:e,error:t}),(0,u.Qg)((0,g.t)("files",'"{displayName}" action failed',{displayName:a}))}finally{r.Ay.set(n,"status",void 0),t.clearActiveAction()}},$=(0,c.C)("files","config",{show_hidden:!1,crop_image_previews:!0,sort_favorites_first:!0,sort_folders_first:!0,grid_view:!1}),W=(0,a.nY)("userconfig",(()=>{const e=(0,r.KR)({...$});return(0,v.B1)("files:config:updated",(t=>{let{key:s,value:n}=t;return function(t,s){(0,r.hZ)(e.value,t,s)}(s,n)})),{userConfig:e,update:async function(e,t){null!==(0,i.HW)()&&await A.Ay.put((0,N.Jv)("/apps/files/api/v1/config/{key}",{key:e}),{value:t}),(0,v.Ic)("files:config:updated",{key:e,value:t})}}}));var H=n(22378);const q={name:"CogIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var G=n(14486);const Y=(0,G.A)(q,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon cog-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var K=n(42530),Q=n(52439),X=n(27345),J=n(74246);function Z(e,t,s){var n,i=s||{},a=i.noTrailing,r=void 0!==a&&a,o=i.noLeading,l=void 0!==o&&o,d=i.debounceMode,c=void 0===d?void 0:d,m=!1,u=0;function g(){n&&clearTimeout(n)}function f(){for(var s=arguments.length,i=new Array(s),a=0;a<s;a++)i[a]=arguments[a];var o=this,d=Date.now()-u;function f(){u=Date.now(),t.apply(o,i)}function p(){n=void 0}m||(l||!c||n||f(),g(),void 0===c&&d>e?l?(u=Date.now(),r||(n=setTimeout(c?p:f,e))):f():!0!==r&&(n=setTimeout(c?p:f,void 0===c?e-d:e)))}return f.cancel=function(e){var t=(e||{}).upcomingOnly,s=void 0!==t&&t;g(),m=!s},f}const ee={name:"ChartPieIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},te=(0,G.A)(ee,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon chart-pie-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var se=n(95101);const ne={name:"NavigationQuota",components:{ChartPie:te,NcAppNavigationItem:Q.A,NcProgressBar:se.A},data:()=>({loadingStorageStats:!1,storageStats:(0,c.C)("files","storageStats",null)}),computed:{storageStatsTitle(){const e=(0,m.v7)(this.storageStats?.used,!1,!1),t=(0,m.v7)(this.storageStats?.quota,!1,!1);return this.storageStats?.quota<0?this.t("files","{usedQuotaByte} used",{usedQuotaByte:e}):this.t("files","{used} of {quota} used",{used:e,quota:t})},storageStatsTooltip(){return this.storageStats.relative?this.t("files","{relative}% used",this.storageStats):""}},beforeMount(){setInterval(this.throttleUpdateStorageStats,6e4),(0,v.B1)("files:node:created",this.throttleUpdateStorageStats),(0,v.B1)("files:node:deleted",this.throttleUpdateStorageStats),(0,v.B1)("files:node:moved",this.throttleUpdateStorageStats),(0,v.B1)("files:node:updated",this.throttleUpdateStorageStats)},mounted(){this.storageStats?.quota>0&&0===this.storageStats?.free&&this.showStorageFullWarning()},methods:{debounceUpdateStorageStats:(ie={}.atBegin,Z(200,(function(e){this.updateStorageStats(e)}),{debounceMode:!1!==(void 0!==ie&&ie)})),throttleUpdateStorageStats:Z(1e3,(function(e){this.updateStorageStats(e)})),async updateStorageStats(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!this.loadingStorageStats){this.loadingStorageStats=!0;try{const e=await A.Ay.get((0,N.Jv)("/apps/files/api/v1/stats"));if(!e?.data?.data)throw new Error("Invalid storage stats");this.storageStats?.free>0&&0===e.data.data?.free&&e.data.data?.quota>0&&this.showStorageFullWarning(),this.storageStats=e.data.data}catch(s){h.error("Could not refresh storage stats",{error:s}),e&&(0,u.Qg)(t("files","Could not refresh storage stats"))}finally{this.loadingStorageStats=!1}}},showStorageFullWarning(){(0,u.Qg)(this.t("files","Your storage is full, files can not be updated or synced anymore!"))},t:g.Tl}};var ie,ae=n(85072),re=n.n(ae),oe=n(97825),le=n.n(oe),de=n(77659),ce=n.n(de),me=n(55056),ue=n.n(me),ge=n(10540),fe=n.n(ge),pe=n(41113),he=n.n(pe),ve=n(84877),we={};we.styleTagTransform=he(),we.setAttributes=ue(),we.insert=ce().bind(null,"head"),we.domAPI=le(),we.insertStyleElement=fe(),re()(ve.A,we),ve.A&&ve.A.locals&&ve.A.locals;const Ae=(0,G.A)(ne,(function(){var e=this,t=e._self._c;return e.storageStats?t("NcAppNavigationItem",{staticClass:"app-navigation-entry__settings-quota",class:{"app-navigation-entry__settings-quota--not-unlimited":e.storageStats.quota>=0},attrs:{"aria-description":e.t("files","Storage information"),loading:e.loadingStorageStats,name:e.storageStatsTitle,title:e.storageStatsTooltip,"data-cy-files-navigation-settings-quota":""},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.debounceUpdateStorageStats.apply(null,arguments)}}},[t("ChartPie",{attrs:{slot:"icon",size:20},slot:"icon"}),e._v(" "),e.storageStats.quota>=0?t("NcProgressBar",{attrs:{slot:"extra","aria-label":e.t("files","Storage quota"),error:e.storageStats.relative>80,value:Math.min(e.storageStats.relative,100)},slot:"extra"}):e._e()],1):e._e()}),[],!1,null,"6ed9379e",null).exports;var be=n(31773),Ce=n(42520),ye=n(14727),xe=n(32073),ke=n(16879);const _e={name:"Setting",props:{el:{type:Function,required:!0}},mounted(){this.$el.appendChild(this.el())}},Te=(0,G.A)(_e,(function(){return(0,this._self._c)("div")}),[],!1,null,null,null).exports,Se={name:"Settings",components:{Clipboard:be.A,NcAppSettingsDialog:Ce.N,NcAppSettingsSection:ye.A,NcCheckboxRadioSwitch:xe.A,NcInputField:ke.A,Setting:Te},props:{open:{type:Boolean,default:!1}},setup(){const e=W();return{isSystemtagsEnabled:!0===(0,w.F)()?.systemtags?.enabled,userConfigStore:e,t:g.t}},data:()=>({settings:window.OCA?.Files?.Settings?.settings||[],webdavUrl:(0,N.dC)("dav/files/"+encodeURIComponent((0,i.HW)()?.uid)),webdavDocs:"https://docs.nextcloud.com/server/stable/go.php?to=user-webdav",appPasswordUrl:(0,N.Jv)("/settings/user/security#generate-app-token-section"),webdavUrlCopied:!1,enableGridView:(0,c.C)("core","config",[])["enable_non-accessible_features"]??!0}),computed:{userConfig(){return this.userConfigStore.userConfig}},created(){(0,d.C)("?",this.showKeyboardShortcuts,{stop:!0,prevent:!0})},beforeMount(){this.settings.forEach((e=>e.open()))},beforeDestroy(){this.settings.forEach((e=>e.close()))},methods:{onClose(){this.$emit("close")},setConfig(e,t){this.userConfigStore.update(e,t)},async copyCloudId(){document.querySelector("input#webdav-url-input").select(),navigator.clipboard?(await navigator.clipboard.writeText(this.webdavUrl),this.webdavUrlCopied=!0,(0,u.Te)((0,g.t)("files","WebDAV URL copied to clipboard")),setTimeout((()=>{this.webdavUrlCopied=!1}),5e3)):(0,u.Qg)((0,g.t)("files","Clipboard is not available"))},async showKeyboardShortcuts(){this.$emit("update:open",!0),await this.$nextTick(),document.getElementById("settings-section_shortcuts").scrollIntoView({behavior:"smooth",inline:"nearest"})}}};var Le=n(49790),Ne={};Ne.styleTagTransform=he(),Ne.setAttributes=ue(),Ne.insert=ce().bind(null,"head"),Ne.domAPI=le(),Ne.insertStyleElement=fe(),re()(Le.A,Ne),Le.A&&Le.A.locals&&Le.A.locals;const Fe=(0,G.A)(Se,(function(){var e=this,t=e._self._c;return t("NcAppSettingsDialog",{attrs:{open:e.open,"show-navigation":!0,name:e.t("files","Files settings")},on:{"update:open":e.onClose}},[t("NcAppSettingsSection",{attrs:{id:"settings",name:e.t("files","Files settings")}},[t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"sort_favorites_first",checked:e.userConfig.sort_favorites_first},on:{"update:checked":function(t){return e.setConfig("sort_favorites_first",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Sort favorites first"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"sort_folders_first",checked:e.userConfig.sort_folders_first},on:{"update:checked":function(t){return e.setConfig("sort_folders_first",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Sort folders before files"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"show_hidden",checked:e.userConfig.show_hidden},on:{"update:checked":function(t){return e.setConfig("show_hidden",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Show hidden files"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"crop_image_previews",checked:e.userConfig.crop_image_previews},on:{"update:checked":function(t){return e.setConfig("crop_image_previews",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Crop image previews"))+"\n\t\t")]),e._v(" "),e.enableGridView?t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"grid_view",checked:e.userConfig.grid_view},on:{"update:checked":function(t){return e.setConfig("grid_view",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Enable the grid view"))+"\n\t\t")]):e._e(),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"folder_tree",checked:e.userConfig.folder_tree},on:{"update:checked":function(t){return e.setConfig("folder_tree",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Enable folder tree"))+"\n\t\t")])],1),e._v(" "),0!==e.settings.length?t("NcAppSettingsSection",{attrs:{id:"more-settings",name:e.t("files","Additional settings")}},[e._l(e.settings,(function(e){return[t("Setting",{key:e.name,attrs:{el:e.el}})]}))],2):e._e(),e._v(" "),t("NcAppSettingsSection",{attrs:{id:"webdav",name:e.t("files","WebDAV")}},[t("NcInputField",{attrs:{id:"webdav-url-input",label:e.t("files","WebDAV URL"),"show-trailing-button":!0,success:e.webdavUrlCopied,"trailing-button-label":e.t("files","Copy to clipboard"),value:e.webdavUrl,readonly:"readonly",type:"url"},on:{focus:function(e){return e.target.select()},"trailing-button-click":e.copyCloudId},scopedSlots:e._u([{key:"trailing-button-icon",fn:function(){return[t("Clipboard",{attrs:{size:20}})]},proxy:!0}])}),e._v(" "),t("em",[t("a",{staticClass:"setting-link",attrs:{href:e.webdavDocs,target:"_blank",rel:"noreferrer noopener"}},[e._v("\n\t\t\t\t"+e._s(e.t("files","Use this address to access your Files via WebDAV"))+" ↗\n\t\t\t")])]),e._v(" "),t("br"),e._v(" "),t("em",[t("a",{staticClass:"setting-link",attrs:{href:e.appPasswordUrl}},[e._v("\n\t\t\t\t"+e._s(e.t("files","If you have enabled 2FA, you must create and use a new app password by clicking here."))+" ↗\n\t\t\t")])])],1),e._v(" "),t("NcAppSettingsSection",{attrs:{id:"shortcuts",name:e.t("files","Keyboard shortcuts")}},[t("em",[e._v(e._s(e.t("files","Speed up your Files experience with these quick shortcuts.")))]),e._v(" "),t("h3",[e._v(e._s(e.t("files","Actions")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("a")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Open the actions menu for a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("F2")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Rename a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Del")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Delete a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("s")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Favorite or remove a file from favorites"))+"\n\t\t\t\t")])]),e._v(" "),e.isSystemtagsEnabled?t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("t")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Manage tags for a file"))+"\n\t\t\t\t")])]):e._e()]),e._v(" "),t("h3",[e._v(e._s(e.t("files","Selection")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Ctrl")]),e._v(" + "),t("kbd",[e._v("A")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Select all files"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("ESC")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Deselect all files"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Ctrl")]),e._v(" + "),t("kbd",[e._v("Space")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Select or deselect a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Ctrl")]),e._v(" + "),t("kbd",[e._v("Shift")]),e._v(" "),t("span",[e._v("+ "),t("kbd",[e._v("Space")])])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Select a range of files"))+"\n\t\t\t\t")])])]),e._v(" "),t("h3",[e._v(e._s(e.t("files","Navigation")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Alt")]),e._v(" + "),t("kbd",[e._v("↑")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the parent folder"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("↑")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file above"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("↓")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file below"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("←")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file on the left (in grid mode)"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("→")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file on the right (in grid mode)"))+"\n\t\t\t\t")])])]),e._v(" "),t("h3",[e._v(e._s(e.t("files","View")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("V")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Toggle the grid view"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("D")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Open the sidebar for a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("?")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Show those shortcuts"))+"\n\t\t\t\t")])])])])],1)}),[],!1,null,"6fc727d7",null).exports;var Ee=n(54914),Ue=n(6695);function Ie(e){const t=(0,m.bh)(),s=(0,r.IJ)(t.views),n=(0,r.IJ)(t.active);function i(e){n.value=e.detail}function a(){s.value=t.views,(0,r.mu)(s)}return(0,r.sV)((()=>{t.addEventListener("update",a),t.addEventListener("updateActive",i),(0,v.B1)("files:navigation:updated",a)})),(0,r.hi)((()=>{t.removeEventListener("update",a),t.removeEventListener("updateActive",i)})),{currentView:n,views:s}}const Pe=(0,c.C)("files","viewConfigs",{}),ze=(0,a.nY)("viewconfig",(()=>{const e=(0,r.KR)({...Pe});async function t(e,t,s){null!==(0,i.HW)()&&await A.Ay.put((0,N.Jv)("/apps/files/api/v1/views"),{value:s,view:e,key:t}),(0,v.Ic)("files:view-config:updated",{view:e,key:t,value:s})}return(0,v.B1)("files:view-config:updated",(t=>{let{view:s,key:n,value:i}=t;return function(t,s,n){t in e.value||(0,r.hZ)(e.value,t,{}),(0,r.hZ)(e.value[t],s,n)}(s,n,i)})),{viewConfigs:e,getConfig:function(t){return e.value[t]||{}},setSortingBy:function(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"files";t(e,"sorting_mode",arguments.length>0&&void 0!==arguments[0]?arguments[0]:"basename"),t(e,"sorting_direction","asc")},toggleSortingDirection:function(){let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"files";t(s,"sorting_direction","asc"===(e.value[s]||{sorting_direction:"asc"}).sorting_direction?"desc":"asc")},update:t}})),Be=(0,r.pM)({name:"FilesNavigationItem",components:{Fragment:Ee.F,NcAppNavigationItem:Q.A,NcIconSvgWrapper:Ue.A},props:{parent:{type:Object,default:()=>({})},level:{type:Number,default:0},views:{type:Object,default:()=>({})}},setup(){const{currentView:e}=Ie();return{currentView:e,viewConfigStore:ze()}},computed:{currentViews(){return this.level>=7?Object.values(this.views).reduce(((e,t)=>[...e,...t]),[]).filter((e=>e.params?.dir.startsWith(this.parent.params?.dir))):this.views[this.parent.id]??[]},style(){return 0===this.level||1===this.level||this.level>7?null:{"padding-left":"16px"}}},methods:{hasChildViews(e){return!(this.level>=7)&&this.views[e.id]?.length>0},useExactRouteMatching(e){return this.hasChildViews(e)},generateToNavigation(e){if(e.params){const{dir:t}=e.params;return{name:"filelist",params:{...e.params},query:{dir:t}}}return{name:"filelist",params:{view:e.id}}},isExpanded(e){return"boolean"==typeof this.viewConfigStore.getConfig(e.id)?.expanded?!0===this.viewConfigStore.getConfig(e.id).expanded:!0===e.expanded},async onOpen(e,t){const s=this.isExpanded(t);t.expanded=!s,this.viewConfigStore.update(t.id,"expanded",!s),e&&t.loadChildViews&&await t.loadChildViews(t)},filterView:(e,t)=>Object.fromEntries(Object.entries(e).filter((e=>{let[s,n]=e;return s!==t})))}}),De=(0,G.A)(Be,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("Fragment",e._l(e.currentViews,(function(s){return t("NcAppNavigationItem",{key:s.id,staticClass:"files-navigation__item",style:e.style,attrs:{"allow-collapse":"",loading:s.loading,"data-cy-files-navigation-item":s.id,exact:e.useExactRouteMatching(s),icon:s.iconClass,name:s.name,open:e.isExpanded(s),pinned:s.sticky,to:e.generateToNavigation(s)},on:{"update:open":t=>e.onOpen(t,s)},scopedSlots:e._u([s.icon?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.icon}})]},proxy:!0}:null],null,!0)},[e._v(" "),s.loadChildViews&&!s.loaded?t("li",{staticStyle:{display:"none"}}):e._e(),e._v(" "),e.hasChildViews(s)?t("FilesNavigationItem",{attrs:{parent:s,level:e.level+1,views:e.filterView(e.views,e.parent.id)}}):e._e()],1)})),1)}),[],!1,null,null,null).exports;var Oe=n(59271);class Re extends m.L3{constructor(){super("files:filename",5),function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s}(this,"searchQuery","")}filter(e){const t=this.searchQuery.toLocaleLowerCase().split(" ").filter(Boolean);return e.filter((e=>{const s=e.displayname.toLocaleLowerCase();return t.every((e=>s.includes(e)))}))}reset(){this.updateQuery("")}updateQuery(e){if((e=(e||"").trim())!==this.searchQuery){this.searchQuery=e,this.filterUpdated();const t=[];""!==e&&t.push({text:e,onclick:()=>{this.updateQuery("")}}),this.updateChips(t),this.dispatchTypedEvent("update:query",new CustomEvent("update:query",{detail:e}))}}}function je(e){return"mount"in e}const Me=(0,a.nY)("filters",(()=>{const e=(0,r.KR)({}),t=(0,r.KR)([]),s=(0,r.KR)(!1),n=(0,r.EW)((()=>Object.values(e.value).flat())),i=(0,r.EW)((()=>t.value.sort(((e,t)=>e.order-t.order)))),a=(0,r.EW)((()=>i.value.filter(je)));function o(e){e.addEventListener("update:chips",c),e.addEventListener("update:filter",d),t.value.push(e),h.debug("New file list filter registered",{id:e.id})}function l(e){const s=t.value.findIndex((t=>{let{id:s}=t;return s===e}));if(s>-1){const[n]=t.value.splice(s,1);n.removeEventListener("update:chips",c),n.removeEventListener("update:filter",d),h.debug("Files list filter unregistered",{id:e})}}function d(){s.value=!0}function c(t){const s=t.target.id;e.value={...e.value,[s]:[...t.detail]},h.debug("File list filter chips updated",{filter:s,chips:t.detail})}(0,v.B1)("files:navigation:changed",(function(){h.debug("Reset all file list filters - view changed");for(const e of t.value)void 0!==e.reset&&e.reset()})),(0,v.B1)("files:filter:added",o),(0,v.B1)("files:filter:removed",l);for(const e of(0,m.sR)())o(e);return{chips:e,filters:t,filtersWithUI:a,filtersChanged:s,activeChips:n,sortedFilters:i,addFilter:o,removeFilter:l}})),Ve=Intl.Collator([(0,g.Z0)(),(0,g.lO)()],{numeric:!0,usage:"sort"}),$e=(0,r.pM)({name:"Navigation",components:{IconCog:Y,FilesNavigationItem:De,NavigationQuota:Ae,NcAppNavigation:K.A,NcAppNavigationItem:Q.A,NcAppNavigationList:X.A,NcAppNavigationSearch:J.N,SettingsModal:Fe},setup(){const e=Me(),t=ze(),{currentView:s,views:n}=Ie(),{searchQuery:i}=function(){const e=(0,r.KR)(""),t=new Re;function s(t){"update:query"===t.type&&(e.value=t.detail,t.stopPropagation())}return(0,r.sV)((()=>{t.addEventListener("update:query",s),(0,m.cZ)(t)})),(0,r.hi)((()=>{t.removeEventListener("update:query",s),(0,m.Dw)(t.id)})),(0,Oe.o3)(e,(()=>{t.updateQuery(e.value)}),{throttle:800}),{searchQuery:e}}();return{currentView:s,searchQuery:i,t:g.Tl,views:n,filtersStore:e,viewConfigStore:t}},data:()=>({settingsOpened:!1}),computed:{currentViewId(){return this.$route?.params?.view||"files"},viewMap(){return this.views.reduce(((e,t)=>(e[t.parent]=[...e[t.parent]||[],t],e[t.parent].sort(((e,t)=>"number"==typeof e.order||"number"==typeof t.order?(e.order??0)-(t.order??0):Ve.compare(e.name,t.name))),e)),{})}},watch:{currentViewId(e,t){if(this.currentViewId!==this.currentView?.id){const s=this.views.find((e=>{let{id:t}=e;return t===this.currentViewId}));this.showView(s),h.debug(`Navigation changed from ${t} to ${e}`,{to:s})}}},created(){(0,v.B1)("files:folder-tree:initialized",this.loadExpandedViews),(0,v.B1)("files:folder-tree:expanded",this.loadExpandedViews)},beforeMount(){const e=this.views.find((e=>{let{id:t}=e;return t===this.currentViewId}));this.showView(e),h.debug("Navigation mounted. Showing requested view",{view:e})},methods:{async loadExpandedViews(){const e=Object.entries(this.viewConfigStore.viewConfigs).filter((e=>{let[,t]=e;return!0===t.expanded})).map((e=>{let[t]=e;return this.views.find((e=>e.id===t))})).filter(Boolean).filter((e=>e.loadChildViews&&!e.loaded));for(const t of e)await t.loadChildViews(t)},showView(e){window.OCA?.Files?.Sidebar?.close?.(),(0,m.bh)().setActive(e),(0,v.Ic)("files:navigation:changed",e)},openSettings(){this.settingsOpened=!0},onSettingsClose(){this.settingsOpened=!1}}});var We=n(13398),He={};He.styleTagTransform=he(),He.setAttributes=ue(),He.insert=ce().bind(null,"head"),He.domAPI=le(),He.insertStyleElement=fe(),re()(We.A,He),We.A&&We.A.locals&&We.A.locals;const qe=(0,G.A)($e,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcAppNavigation",{staticClass:"files-navigation",attrs:{"data-cy-files-navigation":"","aria-label":e.t("files","Files")},scopedSlots:e._u([{key:"search",fn:function(){return[t("NcAppNavigationSearch",{attrs:{label:e.t("files","Filter file names …")},model:{value:e.searchQuery,callback:function(t){e.searchQuery=t},expression:"searchQuery"}})]},proxy:!0},{key:"default",fn:function(){return[t("NcAppNavigationList",{staticClass:"files-navigation__list",attrs:{"aria-label":e.t("files","Views")}},[t("FilesNavigationItem",{attrs:{views:e.viewMap}})],1),e._v(" "),t("SettingsModal",{attrs:{open:e.settingsOpened,"data-cy-files-navigation-settings":""},on:{"update:open":function(t){e.settingsOpened=t},close:e.onSettingsClose}})]},proxy:!0},{key:"footer",fn:function(){return[t("ul",{staticClass:"app-navigation-entry__settings"},[t("NavigationQuota"),e._v(" "),t("NcAppNavigationItem",{attrs:{name:e.t("files","Files settings"),"data-cy-files-navigation-settings-button":""},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.openSettings.apply(null,arguments)}}},[t("IconCog",{attrs:{slot:"icon",size:20},slot:"icon"})],1)],1)]},proxy:!0}])})}),[],!1,null,"c6191948",null).exports;var Ge=n(77905),Ye=n(96111),Ke=n(57578);const Qe={name:"ReloadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Xe=(0,G.A)(Qe,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon reload-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var Je=n(36600);const Ze={name:"FormatListBulletedSquareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},et=(0,G.A)(Ze,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon format-list-bulleted-square-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M3,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var tt=n(18195),st=n(24764),nt=n(57505),it=n(70995),at=n(28326),rt=n(59892);const ot={name:"AccountPlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},lt=(0,G.A)(ot,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon account-plus-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,dt={name:"ViewGridIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ct=(0,G.A)(dt,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon view-grid-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M3,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;let mt;const ut=(0,r.KR)(0),gt=new ResizeObserver((e=>{e[0].contentBoxSize?ut.value=e[0].contentBoxSize[0].inlineSize:ut.value=e[0].contentRect.width}));function ft(){const e=document.querySelector("#app-content-vue")??document.body;e!==mt&&(mt&&gt.unobserve(mt),gt.observe(e),mt=e)}function pt(){return(0,r.sV)(ft),ft(),(0,r.tB)(ut)}function ht(){const e=function(){var e=(0,r.nI)().proxy.$root;if(!e._$route){var t=(0,r.uY)(!0).run((function(){return(0,r.Gc)(Object.assign({},e.$router.currentRoute))}));e._$route=t,e.$router.afterEach((function(e){Object.assign(t,e)}))}return e._$route}();return{directory:(0,r.EW)((()=>String(e.query.dir||"/").replace(/^(.+)\/$/,"$1"))),fileId:(0,r.EW)((()=>{const t=Number.parseInt(e.params.fileid??"0")||null;return Number.isNaN(t)?null:t})),openFile:(0,r.EW)((()=>"openfile"in e.query&&("string"!=typeof e.query.openfile||"false"!==e.query.openfile.toLocaleLowerCase()))),openDetails:(0,r.EW)((()=>"opendetails"in e.query&&("string"!=typeof e.query.opendetails||"false"!==e.query.opendetails.toLocaleLowerCase())))}}var vt=n(77815);const wt=(0,vt.KU)(),At=async e=>{const t=(0,vt.aN)(),s=await wt.stat(`${(0,vt.ei)()}${e}`,{details:!0,data:t});return(0,vt.pO)(s.data)},bt=function(){const e=Ct(...arguments),t=(0,a.nY)("paths",{state:()=>({paths:{}}),getters:{getPath:e=>(t,s)=>{if(e.paths[t])return e.paths[t][s]}},actions:{addPath(e){this.paths[e.service]||r.Ay.set(this.paths,e.service,{}),r.Ay.set(this.paths[e.service],e.path,e.source)},deletePath(e,t){this.paths[e]&&r.Ay.delete(this.paths[e],t)},onCreatedNode(e){const t=(0,m.bh)()?.active?.id||"files";e.fileid?(e.type===m.pt.Folder&&this.addPath({service:t,path:e.path,source:e.source}),this.addNodeToParentChildren(e)):h.error("Node has no fileid",{node:e})},onDeletedNode(e){const t=(0,m.bh)()?.active?.id||"files";e.type===m.pt.Folder&&this.deletePath(t,e.path),this.deleteNodeFromParentChildren(e)},onMovedNode(e){let{node:t,oldSource:s}=e;const n=(0,m.bh)()?.active?.id||"files";if(t.type===m.pt.Folder){const e=Object.entries(this.paths[n]).find((e=>{let[,t]=e;return t===s}));e?.[0]&&this.deletePath(n,e[0]),this.addPath({service:n,path:t.path,source:t.source})}const i=new m.ZH({source:s,owner:t.owner,mime:t.mime});this.deleteNodeFromParentChildren(i),this.addNodeToParentChildren(t)},deleteNodeFromParentChildren(t){const s=(0,m.bh)()?.active?.id||"files",n=(0,L.pD)(t.source),i="/"===t.dirname?e.getRoot(s):e.getNode(n);if(i){const e=new Set(i._children??[]);return e.delete(t.source),r.Ay.set(i,"_children",[...e.values()]),void h.debug("Children updated",{parent:i,node:t,children:i._children})}h.debug("Parent path does not exists, skipping children update",{node:t})},addNodeToParentChildren(t){const s=(0,m.bh)()?.active?.id||"files",n=(0,L.pD)(t.source),i="/"===t.dirname?e.getRoot(s):e.getNode(n);if(i){const e=new Set(i._children??[]);return e.add(t.source),r.Ay.set(i,"_children",[...e.values()]),void h.debug("Children updated",{parent:i,node:t,children:i._children})}h.debug("Parent path does not exists, skipping children update",{node:t})}}})(...arguments);return t._initialized||((0,v.B1)("files:node:created",t.onCreatedNode),(0,v.B1)("files:node:deleted",t.onDeletedNode),(0,v.B1)("files:node:moved",t.onMovedNode),t._initialized=!0),t},Ct=function(){const e=(0,a.nY)("files",{state:()=>({files:{},roots:{}}),getters:{getNode:e=>t=>e.files[t],getNodes:e=>t=>t.map((t=>e.files[t])).filter(Boolean),getNodesById:e=>t=>Object.values(e.files).filter((e=>e.fileid===t)),getRoot:e=>t=>e.roots[t]},actions:{getNodesByPath(e,t){const s=bt();let n;if(t&&"/"!==t){const i=s.getPath(e,t);i&&(n=this.getNode(i))}else n=this.getRoot(e);return(n?._children??[]).map((e=>this.getNode(e))).filter(Boolean)},updateNodes(e){const t=e.reduce(((e,t)=>t.fileid?(e[t.source]=t,e):(h.error("Trying to update/set a node without fileid",{node:t}),e)),{});r.Ay.set(this,"files",{...this.files,...t})},deleteNodes(e){e.forEach((e=>{e.source&&r.Ay.delete(this.files,e.source)}))},setRoot(e){let{service:t,root:s}=e;r.Ay.set(this.roots,t,s)},onDeletedNode(e){this.deleteNodes([e])},onCreatedNode(e){this.updateNodes([e])},onMovedNode(e){let{node:t,oldSource:s}=e;t.fileid?(r.Ay.delete(this.files,s),this.updateNodes([t])):h.error("Trying to update/set a node without fileid",{node:t})},async onUpdatedNode(e){if(!e.fileid)return void h.error("Trying to update/set a node without fileid",{node:e});const t=this.getNodesById(e.fileid);if(t.length>1)return await Promise.all(t.map((e=>At(e.path)))).then(this.updateNodes),void h.debug(t.length+" nodes updated in store",{fileid:e.fileid});e.source!==t[0].source?At(e.path).then((e=>this.updateNodes([e]))):this.updateNodes([e])},onAddFavorite(e){const t=this.getNode(e.source);t&&r.Ay.set(t.attributes,"favorite",1)},onRemoveFavorite(e){const t=this.getNode(e.source);t&&r.Ay.set(t.attributes,"favorite",0)}}})(...arguments);return e._initialized||((0,v.B1)("files:node:created",e.onCreatedNode),(0,v.B1)("files:node:deleted",e.onDeletedNode),(0,v.B1)("files:node:updated",e.onUpdatedNode),(0,v.B1)("files:node:moved",e.onMovedNode),(0,v.B1)("files:favorites:added",e.onAddFavorite),(0,v.B1)("files:favorites:removed",e.onRemoveFavorite),e._initialized=!0),e},yt=(0,a.nY)("selection",{state:()=>({selected:[],lastSelection:[],lastSelectedIndex:null}),actions:{set(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];r.Ay.set(this,"selected",[...new Set(e)])},setLastIndex(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;r.Ay.set(this,"lastSelection",e?this.selected:[]),r.Ay.set(this,"lastSelectedIndex",e)},reset(){r.Ay.set(this,"selected",[]),r.Ay.set(this,"lastSelection",[]),r.Ay.set(this,"lastSelectedIndex",null)}}});let xt;const kt=function(){return xt=(0,Ye.g)(),(0,a.nY)("uploader",{state:()=>({queue:xt.queue})})(...arguments)};var _t=n(29360),Tt=n(79309);class St extends File{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];super([],e,{type:"httpd/unix-directory"}),function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s}(this,"_contents",void 0),this._contents=t}set contents(e){this._contents=e}get contents(){return this._contents}get size(){return this._computeDirectorySize(this)}get lastModified(){return 0===this._contents.length?Date.now():this._computeDirectoryMtime(this)}_computeDirectoryMtime(e){return e.contents.reduce(((e,t)=>t.lastModified>e?t.lastModified:e),0)}_computeDirectorySize(e){return e.contents.reduce(((e,t)=>e+t.size),0)}}const Lt=async e=>{if(e.isFile)return new Promise(((t,s)=>{e.file(t,s)}));h.debug("Handling recursive file tree",{entry:e.name});const t=e,s=await Nt(t),n=(await Promise.all(s.map(Lt))).flat();return new St(t.name,n)},Nt=e=>{const t=e.createReader();return new Promise(((e,s)=>{const n=[],i=()=>{t.readEntries((t=>{t.length?(n.push(...t),i()):e(n)}),(e=>{s(e)}))};i()}))},Ft=async e=>{const t=(0,m.H4)();if(!await t.exists(e)){h.debug("Directory does not exist, creating it",{absolutePath:e}),await t.createDirectory(e,{recursive:!0});const s=await t.stat(e,{details:!0,data:(0,m.VL)()});(0,v.Ic)("files:node:created",(0,m.Al)(s.data))}},Et=async(e,t,s)=>{try{const n=e.filter((e=>s.find((t=>t.basename===(e instanceof File?e.name:e.basename))))).filter(Boolean),i=e.filter((e=>!n.includes(e))),{selected:a,renamed:r}=await(0,Ye.o)(t.path,n,s);return h.debug("Conflict resolution",{uploads:i,selected:a,renamed:r}),0===a.length&&0===r.length?((0,u.cf)((0,g.Tl)("files","Conflicts resolution skipped")),h.info("User skipped the conflict resolution"),[]):[...i,...a,...r]}catch(e){console.error(e),(0,u.Qg)((0,g.Tl)("files","Upload cancelled")),h.error("User cancelled the upload")}return[]};var Ut=n(36882),It=n(39285);const Pt=(0,c.C)("files_sharing","sharePermissions",m.aX.NONE);let zt;var Bt;!function(e){e.MOVE="Move",e.COPY="Copy",e.MOVE_OR_COPY="move-or-copy"}(Bt||(Bt={}));const Dt=e=>{const t=e.reduce(((e,t)=>Math.min(e,t.permissions)),m.aX.ALL);return Boolean(t&m.aX.DELETE)},Ot=e=>!!(e=>e.every((e=>!JSON.parse(e.attributes?.["share-attributes"]??"[]").some((e=>"permissions"===e.scope&&!1===e.value&&"download"===e.key)))))(e)&&!e.some((e=>e.permissions===m.aX.NONE))&&(!(0,F.f)()||Boolean(Pt&m.aX.CREATE));var Rt=n(36117);const jt=e=>(0,m.Al)(e),Mt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";e=(0,l.join)(m.lJ,e);const t=new AbortController,s=(0,m.VL)();return new Rt.CancelablePromise((async(n,i,a)=>{a((()=>t.abort()));try{const i=await wt.getDirectoryContents(e,{details:!0,data:s,includeSelf:!0,signal:t.signal}),a=i.data[0],r=i.data.slice(1);if(a.filename!==e&&`${a.filename}/`!==e)throw h.debug(`Exepected "${e}" but got filename "${a.filename}" instead.`),new Error("Root node does not match requested path");n({folder:jt(a),contents:r.map((e=>{try{return jt(e)}catch(t){return h.error(`Invalid node detected '${e.basename}'`,{error:t}),null}})).filter(Boolean)})}catch(e){i(e)}}))},Vt=e=>Dt(e)?Ot(e)?Bt.MOVE_OR_COPY:Bt.MOVE:Bt.COPY,$t=async function(e,t,s){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!t)return;if(t.type!==m.pt.Folder)throw new Error((0,g.Tl)("files","Destination is not a folder"));if(s===Bt.MOVE&&e.dirname===t.path)throw new Error((0,g.Tl)("files","This file/folder is already in that directory"));if(`${t.path}/`.startsWith(`${e.path}/`))throw new Error((0,g.Tl)("files","You cannot move a file/folder onto itself or into a subfolder of itself"));r.Ay.set(e,"status",m.zI.LOADING);const i=function(e,t,s){const n=e===Bt.MOVE?(0,g.Tl)("files",'Moving "{source}" to "{destination}" …',{source:t,destination:s}):(0,g.Tl)("files",'Copying "{source}" to "{destination}" …',{source:t,destination:s});let i;return i=(0,u.cf)(`<span class="icon icon-loading-small toast-loading-icon"></span> ${n}`,{isHTML:!0,timeout:u.DH,onRemove:()=>{i?.hideToast(),i=void 0}}),()=>i&&i.hideToast()}(s,e.basename,t.path),a=(zt||(zt=new f.A({concurrency:5})),zt);return await a.add((async()=>{const a=e=>1===e?(0,g.Tl)("files","(copy)"):(0,g.Tl)("files","(copy %n)",void 0,e);try{const i=(0,m.H4)(),r=(0,l.join)(m.lJ,e.path),o=(0,l.join)(m.lJ,t.path);if(s===Bt.COPY){let s=e.basename;if(!n){const t=await i.getDirectoryContents(o);s=(0,m.E6)(e.basename,t.map((e=>e.basename)),{suffix:a,ignoreFileExtension:e.type===m.pt.Folder})}if(await i.copyFile(r,(0,l.join)(o,s)),e.dirname===t.path){const{data:e}=await i.stat((0,l.join)(o,s),{details:!0,data:(0,m.VL)()});(0,v.Ic)("files:node:created",(0,m.Al)(e))}}else{if(!n){const s=await Mt(t.path);if((0,Ye.h)([e],s.contents))try{const{selected:n,renamed:i}=await(0,Ye.o)(t.path,[e],s.contents);if(!n.length&&!i.length)return}catch(e){return void(0,u.Qg)((0,g.Tl)("files","Move cancelled"))}}try{await i.moveFile(r,(0,l.join)(o,e.basename))}catch(e){const t=new DOMParser,s=await(e.response?.text()),n=t.parseFromString(s??"","text/xml").querySelector("message")?.textContent;throw n&&(0,u.Qg)(n),e}(0,v.Ic)("files:node:deleted",e)}}catch(e){if((0,A.F0)(e)){if(412===e.response?.status)throw new Error((0,g.Tl)("files","A file or folder with that name already exists in this folder"));if(423===e.response?.status)throw new Error((0,g.Tl)("files","The files are locked"));if(404===e.response?.status)throw new Error((0,g.Tl)("files","The file does not exist anymore"));if(e.message)throw new Error(e.message)}throw h.debug(e),new Error}finally{r.Ay.set(e,"status",""),i()}}))};async function Wt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",s=arguments.length>2?arguments[2]:void 0;const{resolve:n,reject:i,promise:a}=Promise.withResolvers(),r=s.map((e=>e.fileid)).filter(Boolean);return(0,u.a1)((0,g.Tl)("files","Choose destination")).allowDirectories(!0).setFilter((e=>!r.includes(e.fileid))).setMimeTypeFilter([]).setMultiSelect(!1).startAt(t).setButtonFactory(((t,i)=>{const a=[],r=(0,l.basename)(i),o=s.map((e=>e.dirname)),d=s.map((e=>e.path));return e!==Bt.COPY&&e!==Bt.MOVE_OR_COPY||a.push({label:r?(0,g.Tl)("files","Copy to {target}",{target:r},void 0,{escape:!1,sanitize:!1}):(0,g.Tl)("files","Copy"),type:"primary",icon:Ut,disabled:t.some((e=>!(e.permissions&m.aX.CREATE))),async callback(e){n({destination:e[0],action:Bt.COPY})}}),o.includes(i)||d.includes(i)||t.some((e=>!(e.permissions&m.aX.CREATE)))||e!==Bt.MOVE&&e!==Bt.MOVE_OR_COPY||a.push({label:r?(0,g.Tl)("files","Move to {target}",{target:r},void 0,{escape:!1,sanitize:!1}):(0,g.Tl)("files","Move"),type:e===Bt.MOVE?"primary":"secondary",icon:It,async callback(e){n({destination:e[0],action:Bt.MOVE})}}),a})).build().pick().catch((e=>{h.debug(e),e instanceof u.vT?n(!1):i(new Error((0,g.Tl)("files","Move or copy operation failed")))})),a}new m.hY({id:"move-copy",displayName(e){switch(Vt(e)){case Bt.MOVE:return(0,g.Tl)("files","Move");case Bt.COPY:return(0,g.Tl)("files","Copy");case Bt.MOVE_OR_COPY:return(0,g.Tl)("files","Move or copy")}},iconSvgInline:()=>It,enabled:(e,t)=>"public-file-share"!==t.id&&!!e.every((e=>e.root?.startsWith("/files/")))&&e.length>0&&(Dt(e)||Ot(e)),async exec(e,t,s){const n=Vt([e]);let i;try{i=await Wt(n,s,[e])}catch(e){return h.error(e),!1}if(!1===i)return(0,u.cf)((0,g.Tl)("files",'Cancelled move or copy of "{filename}".',{filename:e.displayname})),null;try{return await $t(e,i.destination,i.action),!0}catch(e){return!!(e instanceof Error&&e.message)&&((0,u.Qg)(e.message),null)}},async execBatch(e,t,s){const n=Vt(e),i=await Wt(n,s,e);if(!1===i)return(0,u.cf)(1===e.length?(0,g.Tl)("files",'Cancelled move or copy of "{filename}".',{filename:e[0].displayname}):(0,g.Tl)("files","Cancelled move or copy operation")),e.map((()=>null));const a=e.map((async e=>{try{return await $t(e,i.destination,i.action),!0}catch(t){return h.error(`Failed to ${i.action} node`,{node:e,error:t}),!1}}));return await Promise.all(a)},order:15});const Ht=async e=>{const t=e.filter((e=>"file"===e.kind||(h.debug("Skipping dropped item",{kind:e.kind,type:e.type}),!1))).map((e=>e?.getAsEntry?.()??e?.webkitGetAsEntry?.()??e));let s=!1;const n=new St("root");for(const e of t)if(e instanceof DataTransferItem){h.warn("Could not get FilesystemEntry of item, falling back to file");const t=e.getAsFile();if(null===t){h.warn("Could not process DataTransferItem",{type:e.type,kind:e.kind}),(0,u.Qg)((0,g.Tl)("files","One of the dropped files could not be processed"));continue}if("httpd/unix-directory"===t.type||!t.type){s||(h.warn("Browser does not support Filesystem API. Directories will not be uploaded"),(0,u.I9)((0,g.Tl)("files","Your browser does not support the Filesystem API. Directories will not be uploaded")),s=!0);continue}n.contents.push(t)}else try{n.contents.push(await Lt(e))}catch(e){h.error("Error while traversing file tree",{error:e})}return n},qt=async(e,t,s)=>{const n=(0,Ye.g)();if(await(0,Ye.h)(e.contents,s)&&(e.contents=await Et(e.contents,t,s)),0===e.contents.length)return h.info("No files to upload",{root:e}),(0,u.cf)((0,g.Tl)("files","No files to upload")),[];h.debug(`Uploading files to ${t.path}`,{root:e,contents:e.contents});const i=[],a=async(e,s)=>{for(const r of e.contents){const e=(0,l.join)(s,r.name);if(r instanceof St){const s=(0,L.HS)(m.lJ,t.path,e);try{console.debug("Processing directory",{relativePath:e}),await Ft(s),await a(r,e)}catch(e){(0,u.Qg)((0,g.Tl)("files","Unable to create the directory {directory}",{directory:r.name})),h.error("",{error:e,absolutePath:s,directory:r})}}else h.debug("Uploading file to "+(0,l.join)(t.path,e),{file:r}),i.push(n.upload(e,r,t.source))}};n.pause(),await a(e,"/"),n.start();const r=(await Promise.allSettled(i)).filter((e=>"rejected"===e.status));return r.length>0?(h.error("Error while uploading files",{errors:r}),(0,u.Qg)((0,g.Tl)("files","Some files could not be uploaded")),[]):(h.debug("Files uploaded successfully"),(0,u.Te)((0,g.Tl)("files","Files uploaded successfully")),Promise.all(i))},Gt=async function(e,t,s){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const i=[];if(await(0,Ye.h)(e,s)&&(e=await Et(e,t,s)),0===e.length)return h.info("No files to process",{nodes:e}),void(0,u.cf)((0,g.Tl)("files","No files to process"));for(const s of e)r.Ay.set(s,"status",m.zI.LOADING),i.push($t(s,t,n?Bt.COPY:Bt.MOVE,!0));const a=await Promise.allSettled(i);e.forEach((e=>r.Ay.set(e,"status",void 0)));const o=a.filter((e=>"rejected"===e.status));if(o.length>0)return h.error("Error while copying or moving files",{errors:o}),void(0,u.Qg)(n?(0,g.Tl)("files","Some files could not be copied"):(0,g.Tl)("files","Some files could not be moved"));h.debug("Files copy/move successful"),(0,u.Te)(n?(0,g.Tl)("files","Files copied successfully"):(0,g.Tl)("files","Files moved successfully"))},Yt=(0,a.nY)("dragging",{state:()=>({dragging:[]}),actions:{set(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];r.Ay.set(this,"dragging",e)},reset(){r.Ay.set(this,"dragging",[])}}}),Kt=(0,r.pM)({name:"BreadCrumbs",components:{NcBreadcrumbs:Tt.N,NcBreadcrumb:_t.N,NcIconSvgWrapper:Ue.A},props:{path:{type:String,default:"/"}},setup(){const e=Yt(),t=Ct(),s=bt(),n=yt(),i=kt(),a=pt(),{currentView:r,views:o}=Ie();return{draggingStore:e,filesStore:t,pathsStore:s,selectionStore:n,uploaderStore:i,currentView:r,fileListWidth:a,views:o}},computed:{dirs(){var e;return["/",...this.path.split("/").filter(Boolean).map((e="/",t=>e+=`${t}/`)).map((e=>e.replace(/^(.+)\/$/,"$1")))]},sections(){return this.dirs.map(((e,t)=>{const s=this.getFileSourceFromPath(e),n=s?this.getNodeFromSource(s):void 0;return{dir:e,exact:!0,name:this.getDirDisplayName(e),to:this.getTo(e,n),disableDrop:t===this.dirs.length-1}}))},isUploadInProgress(){return 0!==this.uploaderStore.queue.length},wrapUploadProgressBar(){return this.isUploadInProgress&&this.fileListWidth<512},viewIcon(){return this.currentView?.icon??'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-home" viewBox="0 0 24 24"><path d="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z" /></svg>'},selectedFiles(){return this.selectionStore.selected},draggingFiles(){return this.draggingStore.dragging}},methods:{getNodeFromSource(e){return this.filesStore.getNode(e)},getFileSourceFromPath(e){return(this.currentView&&this.pathsStore.getPath(this.currentView.id,e))??null},getDirDisplayName(e){if("/"===e)return this.currentView?.name||(0,g.Tl)("files","Home");const t=this.getFileSourceFromPath(e),s=t?this.getNodeFromSource(t):void 0;return s?.displayname||(0,l.basename)(e)},getTo(e,t){if("/"===e)return{...this.$route,params:{view:this.currentView?.id},query:{}};if(void 0===t){const t=this.views.find((t=>t.params?.dir===e));return{...this.$route,params:{fileid:t?.params?.fileid??""},query:{dir:e}}}return{...this.$route,params:{fileid:String(t.fileid)},query:{dir:t.path}}},onClick(e){e?.query?.dir===this.$route.query.dir&&this.$emit("reload")},onDragOver(e,t){e.dataTransfer&&(t!==this.dirs[this.dirs.length-1]?e.ctrlKey?e.dataTransfer.dropEffect="copy":e.dataTransfer.dropEffect="move":e.dataTransfer.dropEffect="none")},async onDrop(e,t){if(!this.draggingFiles&&!e.dataTransfer?.items?.length)return;e.preventDefault();const s=this.draggingFiles,n=[...e.dataTransfer?.items||[]],i=await Ht(n),a=await(this.currentView?.getContents(t)),r=a?.folder;if(!r)return void(0,u.Qg)(this.t("files","Target folder does not exist any more"));const o=!!(r.permissions&m.aX.CREATE),l=e.ctrlKey;if(!o||0!==e.button)return;if(h.debug("Dropped",{event:e,folder:r,selection:s,fileTree:i}),i.contents.length>0)return void await qt(i,r,a.contents);const d=s.map((e=>this.filesStore.getNode(e)));await Gt(d,r,a.contents,l),s.some((e=>this.selectedFiles.includes(e)))&&(h.debug("Dropped selection, resetting select store..."),this.selectionStore.reset())},titleForSection(e,t){return t?.to?.query?.dir===this.$route.query.dir?(0,g.Tl)("files","Reload current directory"):0===e?(0,g.Tl)("files",'Go to the "{dir}" directory',t):null},ariaForSection(e){return e?.to?.query?.dir===this.$route.query.dir?(0,g.Tl)("files","Reload current directory"):null},t:g.Tl}});var Qt=n(19305),Xt={};Xt.styleTagTransform=he(),Xt.setAttributes=ue(),Xt.insert=ce().bind(null,"head"),Xt.domAPI=le(),Xt.insertStyleElement=fe(),re()(Qt.A,Xt),Qt.A&&Qt.A.locals&&Qt.A.locals;const Jt=(0,G.A)(Kt,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcBreadcrumbs",{staticClass:"files-list__breadcrumbs",class:{"files-list__breadcrumbs--with-progress":e.wrapUploadProgressBar},attrs:{"data-cy-files-content-breadcrumbs":"","aria-label":e.t("files","Current directory path")},scopedSlots:e._u([{key:"actions",fn:function(){return[e._t("actions")]},proxy:!0}],null,!0)},e._l(e.sections,(function(s,n){return t("NcBreadcrumb",e._b({key:s.dir,attrs:{dir:"auto",to:s.to,"force-icon-text":0===n&&e.fileListWidth>=486,title:e.titleForSection(n,s),"aria-description":e.ariaForSection(s)},on:{drop:function(t){return e.onDrop(t,s.dir)}},nativeOn:{click:function(t){return e.onClick(s.to)},dragover:function(t){return e.onDragOver(t,s.dir)}},scopedSlots:e._u([0===n?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{size:20,svg:e.viewIcon}})]},proxy:!0}:null],null,!0)},"NcBreadcrumb",s,!1))})),1)}),[],!1,null,"04abfffa",null).exports,Zt=e=>{const t=e.filter((e=>e.type===m.pt.File)).length,s=e.filter((e=>e.type===m.pt.Folder)).length;return 0===t?(0,g.zw)("files","{folderCount} folder","{folderCount} folders",s,{folderCount:s}):0===s?(0,g.zw)("files","{fileCount} file","{fileCount} files",t,{fileCount:t}):1===t?(0,g.zw)("files","1 file and {folderCount} folder","1 file and {folderCount} folders",s,{folderCount:s}):1===s?(0,g.zw)("files","{fileCount} file and 1 folder","{fileCount} files and 1 folder",t,{fileCount:t}):(0,g.Tl)("files","{fileCount} files and {folderCount} folders",{fileCount:t,folderCount:s})};var es=n(19231),ts=n(4604);const ss=(0,a.nY)("actionsmenu",{state:()=>({opened:null})});var ns=n(65659);let is=!1;const as=function(){const e=(0,a.nY)("renaming",{state:()=>({renamingNode:void 0,newName:""}),actions:{async rename(){if(void 0===this.renamingNode)throw new Error("No node is currently being renamed");const e=this.newName.trim?.()||"",t=this.renamingNode.basename,s=this.renamingNode.encodedSource,n=(0,l.extname)(t),i=(0,l.extname)(e);if(n!==i&&this.renamingNode.type===m.pt.File){const e=await((e,t)=>{if(is)return Promise.resolve(!1);let s;return is=!0,s=!e&&t?(0,g.t)("files",'Adding the file extension "{new}" may render the file unreadable.',{new:t}):t?(0,g.t)("files",'Changing the file extension from "{old}" to "{new}" may render the file unreadable.',{old:e,new:t}):(0,g.t)("files",'Removing the file extension "{old}" may render the file unreadable.',{old:e}),new Promise((n=>{const i=(new u.ik).setName((0,g.t)("files","Change file extension")).setText(s).setButtons([{label:(0,g.t)("files","Keep {oldextension}",{oldextension:e}),icon:'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-cancel" viewBox="0 0 24 24"><path d="M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z" /></svg>',type:"secondary",callback:()=>{is=!1,n(!1)}},{label:t.length?(0,g.t)("files","Use {newextension}",{newextension:t}):(0,g.t)("files","Remove extension"),icon:ns,type:"primary",callback:()=>{is=!1,n(!0)}}]).build();i.show().then((()=>{i.hide()}))}))})(n,i);if(!e)return!1}if(t===e)return!1;const a=this.renamingNode;r.Ay.set(a,"status",m.zI.LOADING);try{return this.renamingNode.rename(e),h.debug("Moving file to",{destination:this.renamingNode.encodedSource,oldEncodedSource:s}),await(0,A.Ay)({method:"MOVE",url:s,headers:{Destination:this.renamingNode.encodedSource,Overwrite:"F"}}),(0,v.Ic)("files:node:updated",this.renamingNode),(0,v.Ic)("files:node:renamed",this.renamingNode),(0,v.Ic)("files:node:moved",{node:this.renamingNode,oldSource:`${(0,l.dirname)(this.renamingNode.source)}/${t}`}),this.$reset(),!0}catch(s){if(h.error("Error while renaming file",{error:s}),this.renamingNode.rename(t),(0,A.F0)(s)){if(404===s?.response?.status)throw new Error((0,g.t)("files",'Could not rename "{oldName}", it does not exist any more',{oldName:t}));if(412===s?.response?.status)throw new Error((0,g.t)("files",'The name "{newName}" is already used in the folder "{dir}". Please choose a different name.',{newName:e,dir:(0,l.basename)(this.renamingNode.dirname)}))}throw new Error((0,g.t)("files",'Could not rename "{oldName}"',{oldName:t}))}finally{r.Ay.set(a,"status",void 0)}}}})(...arguments);return e._initialized||((0,v.B1)("files:node:rename",(function(t){e.renamingNode=t,e.newName=t.basename})),e._initialized=!0),e},rs={name:"CustomElementRender",props:{source:{type:Object,required:!0},currentView:{type:Object,required:!0},render:{type:Function,required:!0}},watch:{source(){this.updateRootElement()},currentView(){this.updateRootElement()}},mounted(){this.updateRootElement()},methods:{async updateRootElement(){const e=await this.render(this.source,this.currentView);e?this.$el.replaceChildren(e):this.$el.replaceChildren()}}},os=(0,G.A)(rs,(function(){return(0,this._self._c)("span")}),[],!1,null,null,null).exports,ls={name:"ArrowLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ds=(0,G.A)(ls,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon arrow-left-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var cs=n(15502);const ms=(0,r.pM)({data:()=>({openedSubmenu:null}),computed:{enabledSubmenuActions(){return this.enabledFileActions.reduce(((e,t)=>(void 0!==t.parent&&(e[t.parent]||(e[t.parent]=[]),e[t.parent].push(t)),e)),{})}},methods:{isValidMenu(e){return this.enabledSubmenuActions[e.id]?.length>0},async onBackToMenuClick(e){e&&(this.openedSubmenu=null,await this.$nextTick(),this.$nextTick((()=>{const t=this.$refs[`action-batch-${e.id}`]?.[0]||this.$refs[`action-${e.id}`]?.[0];t&&t.$el.querySelector("button")?.focus()})))}}}),us=(0,r.pM)({name:"FileEntryActions",components:{ArrowLeftIcon:ds,CustomElementRender:os,NcActionButton:nt.A,NcActions:st.A,NcActionSeparator:cs.A,NcIconSvgWrapper:Ue.A,NcLoadingIcon:rt.A},mixins:[ms],props:{opened:{type:Boolean,default:!1},source:{type:Object,required:!0},gridMode:{type:Boolean,default:!1}},setup(){const{currentView:e}=Ie(),{directory:t}=ht(),s=M(),n=pt();return{activeStore:s,currentDir:t,currentView:e,enabledFileActions:(0,r.WQ)("enabledFileActions",[]),filesListWidth:n,t:g.Tl}},computed:{isActive(){return this.activeStore?.activeNode?.source===this.source.source},isLoading(){return this.source.status===m.zI.LOADING},enabledInlineActions(){return this.filesListWidth<768||this.gridMode?[]:this.enabledFileActions.filter((e=>{try{return e?.inline?.(this.source,this.currentView)}catch(t){return h.error("Error while checking if action is inline",{action:e,error:t}),!1}}))},enabledRenderActions(){return this.gridMode?[]:this.enabledFileActions.filter((e=>"function"==typeof e.renderInline))},enabledMenuActions(){if(this.openedSubmenu)return this.enabledInlineActions;const e=[...this.enabledInlineActions,...this.enabledFileActions.filter((e=>e.default!==m.m9.HIDDEN&&"function"!=typeof e.renderInline))].filter(((e,t,s)=>t===s.findIndex((t=>t.id===e.id)))),t=e.filter((e=>!e.parent)).map((e=>e.id));return e.filter((e=>!(e.parent&&t.includes(e.parent))))},openedMenu:{get(){return this.opened},set(e){this.$emit("update:opened",e)}},getBoundariesElement:()=>document.querySelector(".app-content > .files-list"),mountType(){return this.source.attributes["mount-type"]}},watch:{openedMenu(){this.openedSubmenu=null}},created(){(0,d.C)("Escape",this.onKeyDown,{stop:!0,prevent:!0}),(0,d.C)("a",this.onKeyDown,{stop:!0,prevent:!0})},methods:{actionDisplayName(e){try{if((this.gridMode||this.filesListWidth<768&&e.inline)&&"function"==typeof e.title){const t=e.title([this.source],this.currentView);if(t)return t}return e.displayName([this.source],this.currentView)}catch(t){return h.error("Error while getting action display name",{action:e,error:t}),e.id}},isLoadingAction(e){return!!this.isActive&&this.activeStore?.activeAction?.id===e.id},async onActionClick(e){this.enabledSubmenuActions[e.id]?this.openedSubmenu=e:(this.activeStore.setActiveNode(this.source),await V(e))},onKeyDown(e){this.isActive&&("Escape"===e.key&&this.openedMenu&&(this.openedMenu=!1),"a"!==e.key||this.openedMenu||(this.openedMenu=!0))}}}),gs=us;var fs=n(29788),ps={};ps.styleTagTransform=he(),ps.setAttributes=ue(),ps.insert=ce().bind(null,"head"),ps.domAPI=le(),ps.insertStyleElement=fe(),re()(fs.A,ps),fs.A&&fs.A.locals&&fs.A.locals;var hs=n(40304),vs={};vs.styleTagTransform=he(),vs.setAttributes=ue(),vs.insert=ce().bind(null,"head"),vs.domAPI=le(),vs.insertStyleElement=fe(),re()(hs.A,vs),hs.A&&hs.A.locals&&hs.A.locals;var ws=(0,G.A)(gs,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("td",{staticClass:"files-list__row-actions",attrs:{"data-cy-files-list-row-actions":""}},[e._l(e.enabledRenderActions,(function(s){return t("CustomElementRender",{key:s.id,staticClass:"files-list__row-action--inline",class:"files-list__row-action-"+s.id,attrs:{"current-view":e.currentView,render:s.renderInline,source:e.source}})})),e._v(" "),t("NcActions",{ref:"actionsMenu",attrs:{"boundaries-element":e.getBoundariesElement,container:e.getBoundariesElement,"force-name":!0,type:"tertiary","force-menu":0===e.enabledInlineActions.length,inline:e.enabledInlineActions.length,open:e.openedMenu},on:{"update:open":function(t){e.openedMenu=t},close:function(t){e.openedSubmenu=null}}},[e._l(e.enabledMenuActions,(function(s){return t("NcActionButton",{key:s.id,ref:`action-${s.id}`,refInFor:!0,class:{[`files-list__row-action-${s.id}`]:!0,"files-list__row-action--menu":e.isValidMenu(s)},attrs:{"close-after-click":!e.isValidMenu(s),"data-cy-files-list-row-action":s.id,"is-menu":e.isValidMenu(s),"aria-label":s.title?.([e.source],e.currentView),title:s.title?.([e.source],e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.isLoadingAction(s)?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline([e.source],e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t"+e._s("shared"===e.mountType&&"sharing-status"===s.id?"":e.actionDisplayName(s))+"\n\t\t")])})),e._v(" "),e.openedSubmenu&&e.enabledSubmenuActions[e.openedSubmenu?.id]?[t("NcActionButton",{staticClass:"files-list__row-action-back",attrs:{"data-cy-files-list-row-action":"menu-back"},on:{click:function(t){return e.onBackToMenuClick(e.openedSubmenu)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowLeftIcon")]},proxy:!0}],null,!1,3001860362)},[e._v("\n\t\t\t\t"+e._s(e.t("files","Back"))+"\n\t\t\t")]),e._v(" "),t("NcActionSeparator"),e._v(" "),e._l(e.enabledSubmenuActions[e.openedSubmenu?.id],(function(s){return t("NcActionButton",{key:s.id,staticClass:"files-list__row-action--submenu",class:`files-list__row-action-${s.id}`,attrs:{"close-after-click":"","data-cy-files-list-row-action":s.id,title:s.title?.([e.source],e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.isLoadingAction(s)?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline([e.source],e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(e.actionDisplayName(s))+"\n\t\t\t")])}))]:e._e()],2)],2)}),[],!1,null,"5ba570cc",null);const As=ws.exports,bs=(0,r.pM)({name:"FileEntryCheckbox",components:{NcCheckboxRadioSwitch:xe.A,NcLoadingIcon:rt.A},props:{fileid:{type:Number,required:!0},isLoading:{type:Boolean,default:!1},nodes:{type:Array,required:!0},source:{type:Object,required:!0}},setup(){const e=yt(),t=function(){const e=(0,a.nY)("keyboard",{state:()=>({altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1}),actions:{onEvent(e){e||(e=window.event),r.Ay.set(this,"altKey",!!e.altKey),r.Ay.set(this,"ctrlKey",!!e.ctrlKey),r.Ay.set(this,"metaKey",!!e.metaKey),r.Ay.set(this,"shiftKey",!!e.shiftKey)}}})(...arguments);return e._initialized||(window.addEventListener("keydown",e.onEvent),window.addEventListener("keyup",e.onEvent),window.addEventListener("mousemove",e.onEvent),e._initialized=!0),e}();return{activeStore:M(),keyboardStore:t,selectionStore:e,t:g.Tl}},computed:{isActive(){return this.activeStore.activeNode?.source===this.source.source},selectedFiles(){return this.selectionStore.selected},isSelected(){return this.selectedFiles.includes(this.source.source)},index(){return this.nodes.findIndex((e=>e.source===this.source.source))},isFile(){return this.source.type===m.pt.File},ariaLabel(){return this.isFile?(0,g.Tl)("files",'Toggle selection for file "{displayName}"',{displayName:this.source.basename}):(0,g.Tl)("files",'Toggle selection for folder "{displayName}"',{displayName:this.source.basename})},loadingLabel(){return this.isFile?(0,g.Tl)("files","File is loading"):(0,g.Tl)("files","Folder is loading")}},created(){(0,d.C)(" ",this.onToggleSelect,{stop:!0,prevent:!0,ctrl:!0}),(0,d.C)(" ",this.onToggleSelect,{stop:!0,prevent:!0,ctrl:!0,shift:!0})},methods:{onSelectionChange(e){const t=this.index,s=this.selectionStore.lastSelectedIndex;if(this.keyboardStore?.shiftKey&&null!==s){const e=this.selectedFiles.includes(this.source.source),n=Math.min(t,s),i=Math.max(s,t),a=this.selectionStore.lastSelection,r=this.nodes.map((e=>e.source)).slice(n,i+1).filter(Boolean),o=[...a,...r].filter((t=>!e||t!==this.source.source));return h.debug("Shift key pressed, selecting all files in between",{start:n,end:i,filesToSelect:r,isAlreadySelected:e}),void this.selectionStore.set(o)}const n=e?[...this.selectedFiles,this.source.source]:this.selectedFiles.filter((e=>e!==this.source.source));h.debug("Updating selection",{selection:n}),this.selectionStore.set(n),this.selectionStore.setLastIndex(t)},resetSelection(){this.selectionStore.reset()},onToggleSelect(){this.isActive&&(h.debug("Toggling selection for file",{source:this.source}),this.onSelectionChange(!this.isSelected))}}}),Cs=(0,G.A)(bs,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("td",{staticClass:"files-list__row-checkbox",on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.resetSelection.apply(null,arguments)}}},[e.isLoading?t("NcLoadingIcon",{attrs:{name:e.loadingLabel}}):t("NcCheckboxRadioSwitch",{attrs:{"aria-label":e.ariaLabel,checked:e.isSelected,"data-cy-files-list-row-checkbox":""},on:{"update:checked":e.onSelectionChange}})],1)}),[],!1,null,null,null).exports;var ys=n(55042);const xs={name:"FileMultipleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ks=(0,G.A)(xs,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon file-multiple-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var _s=n(25866);const Ts=r.Ay.extend({name:"DragAndDropPreview",components:{FileMultipleIcon:ks,FolderIcon:_s.A},data:()=>({nodes:[]}),computed:{isSingleNode(){return 1===this.nodes.length},isSingleFolder(){return this.isSingleNode&&this.nodes[0].type===m.pt.Folder},name(){return this.size?`${this.summary} – ${this.size}`:this.summary},size(){const e=this.nodes.reduce(((e,t)=>e+t.size||0),0),t=parseInt(e,10)||0;return"number"!=typeof t||t<0?null:(0,m.v7)(t,!0)},summary(){if(this.isSingleNode){const e=this.nodes[0];return e.attributes?.displayname||e.basename}return Zt(this.nodes)}},methods:{update(e){this.nodes=e,this.$refs.previewImg.replaceChildren(),e.slice(0,3).forEach((e=>{const t=document.querySelector(`[data-cy-files-list-row-fileid="${e.fileid}"] .files-list__row-icon img`);t&&this.$refs.previewImg.appendChild(t.parentNode.cloneNode(!0))})),this.$nextTick((()=>{this.$emit("loaded",this.$el)}))}}}),Ss=Ts;var Ls=n(20768),Ns={};Ns.styleTagTransform=he(),Ns.setAttributes=ue(),Ns.insert=ce().bind(null,"head"),Ns.domAPI=le(),Ns.insertStyleElement=fe(),re()(Ls.A,Ns),Ls.A&&Ls.A.locals&&Ls.A.locals;const Fs=(0,G.A)(Ss,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"files-list-drag-image"},[t("span",{staticClass:"files-list-drag-image__icon"},[t("span",{ref:"previewImg"}),e._v(" "),e.isSingleFolder?t("FolderIcon"):t("FileMultipleIcon")],1),e._v(" "),t("span",{staticClass:"files-list-drag-image__name"},[e._v(e._s(e.name))])])}),[],!1,null,null,null).exports,Es=r.Ay.extend(Fs);let Us;r.Ay.directive("onClickOutside",ys.z0);const Is=(0,m.qK)(),Ps=(0,r.pM)({props:{source:{type:[m.vd,m.ZH,m.bP],required:!0},nodes:{type:Array,required:!0},filesListWidth:{type:Number,default:0},isMtimeAvailable:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},provide(){return{defaultFileAction:(0,r.EW)((()=>this.defaultFileAction)),enabledFileActions:(0,r.EW)((()=>this.enabledFileActions))}},data:()=>({dragover:!1,gridMode:!1}),computed:{fileid(){return this.source.fileid??0},uniqueId(){return function(e){let t=0;for(let s=0;s<e.length;s++)t=(t<<5)-t+e.charCodeAt(s)|0;return t>>>0}(this.source.source)},isLoading(){return this.source.status===m.zI.LOADING},displayName(){return this.source.displayname||this.source.basename},basename(){return""===this.extension?this.displayName:this.displayName.slice(0,0-this.extension.length)},extension(){return this.source.type===m.pt.Folder?"":(0,l.extname)(this.displayName)},draggingFiles(){return this.draggingStore.dragging},selectedFiles(){return this.selectionStore.selected},isSelected(){return this.selectedFiles.includes(this.source.source)},isRenaming(){return this.renamingStore.renamingNode===this.source},isRenamingSmallScreen(){return this.isRenaming&&this.filesListWidth<512},isActive(){return String(this.fileid)===String(this.currentFileId)},isFailedSource(){return this.source.status===m.zI.FAILED},canDrag(){if(this.isRenaming)return!1;const e=e=>!!(e?.permissions&m.aX.UPDATE);return this.selectedFiles.length>0?this.selectedFiles.map((e=>this.filesStore.getNode(e))).every(e):e(this.source)},canDrop(){return this.source.type===m.pt.Folder&&!this.draggingFiles.includes(this.source.source)&&!!(this.source.permissions&m.aX.CREATE)},openedMenu:{get(){return this.actionsMenuStore.opened===this.uniqueId.toString()},set(e){this.actionsMenuStore.opened=e?this.uniqueId.toString():null}},mtimeOpacity(){const e=26784e5,t=this.source.mtime?.getTime?.();if(!t)return{};const s=Math.round(Math.min(100,100*(e-(Date.now()-t))/e));return s<0?{}:{color:`color-mix(in srgb, var(--color-main-text) ${s}%, var(--color-text-maxcontrast))`}},enabledFileActions(){return this.source.status===m.zI.FAILED?[]:Is.filter((e=>{if(!e.enabled)return!0;try{return e.enabled([this.source],this.currentView)}catch(t){return h.error("Error while checking action",{action:e,error:t}),!1}})).sort(((e,t)=>(e.order||0)-(t.order||0)))},defaultFileAction(){return this.enabledFileActions.find((e=>void 0!==e.default))}},watch:{source(e,t){e.source!==t.source&&this.resetState()},openedMenu(){!1===this.openedMenu&&window.setTimeout((()=>{if(this.openedMenu)return;const e=document.getElementById("app-content-vue");null!==e&&(e.style.removeProperty("--mouse-pos-x"),e.style.removeProperty("--mouse-pos-y"))}),300)}},beforeDestroy(){this.resetState()},methods:{resetState(){this.$refs?.preview?.reset?.(),this.openedMenu=!1},onRightClick(e){if(this.openedMenu)return;if(this.gridMode){const e=this.$el?.closest("main.app-content");e.style.removeProperty("--mouse-pos-x"),e.style.removeProperty("--mouse-pos-y")}else{const t=this.$el?.closest("main.app-content"),s=t.getBoundingClientRect();t.style.setProperty("--mouse-pos-x",Math.max(0,e.clientX-s.left-200)+"px"),t.style.setProperty("--mouse-pos-y",Math.max(0,e.clientY-s.top)+"px")}const t=this.selectedFiles.length>1;this.actionsMenuStore.opened=this.isSelected&&t?"global":this.uniqueId.toString(),e.preventDefault(),e.stopPropagation()},execDefaultAction(e){if(this.isRenaming)return;if(Boolean(2&e.button)||e.button>4)return;const t=e.ctrlKey||e.metaKey||Boolean(4&e.button);if(t||!this.defaultFileAction){if((0,F.f)()&&!function(e){if(!(e.permissions&m.aX.READ))return!1;if(e.attributes["share-attributes"]){const t=JSON.parse(e.attributes["share-attributes"]||"[]").find((e=>{let{scope:t,key:s}=e;return"permissions"===t&&"download"===s}));if(void 0!==t)return!0===t.value}return!0}(this.source))return;const s=(0,F.f)()?this.source.encodedSource:(0,N.Jv)("/f/{fileId}",{fileId:this.fileid});return e.preventDefault(),e.stopPropagation(),void window.open(s,t?"_self":void 0)}e.preventDefault(),e.stopPropagation(),this.defaultFileAction.exec(this.source,this.currentView,this.currentDir)},openDetailsIfAvailable(e){e.preventDefault(),e.stopPropagation(),j?.enabled?.([this.source],this.currentView)&&j.exec(this.source,this.currentView,this.currentDir)},onDragOver(e){this.dragover=this.canDrop,this.canDrop?e.ctrlKey?e.dataTransfer.dropEffect="copy":e.dataTransfer.dropEffect="move":e.dataTransfer.dropEffect="none"},onDragLeave(e){const t=e.currentTarget;t?.contains(e.relatedTarget)||(this.dragover=!1)},async onDragStart(e){if(e.stopPropagation(),!this.canDrag||!this.fileid)return e.preventDefault(),void e.stopPropagation();h.debug("Drag started",{event:e}),e.dataTransfer?.clearData?.(),this.renamingStore.$reset(),this.selectedFiles.includes(this.source.source)?this.draggingStore.set(this.selectedFiles):this.draggingStore.set([this.source.source]);const t=this.draggingStore.dragging.map((e=>this.filesStore.getNode(e))),s=await(async e=>new Promise((t=>{Us||(Us=(new Es).$mount(),document.body.appendChild(Us.$el)),Us.update(e),Us.$on("loaded",(()=>{t(Us.$el),Us.$off("loaded")}))})))(t);e.dataTransfer?.setDragImage(s,-10,-10)},onDragEnd(){this.draggingStore.reset(),this.dragover=!1,h.debug("Drag ended")},async onDrop(e){if(!this.draggingFiles&&!e.dataTransfer?.items?.length)return;e.preventDefault(),e.stopPropagation();const t=this.draggingFiles,s=[...e.dataTransfer?.items||[]],n=await Ht(s),i=await(this.currentView?.getContents(this.source.path)),a=i?.folder;if(!a)return void(0,u.Qg)(this.t("files","Target folder does not exist any more"));if(!this.canDrop||e.button)return;const r=e.ctrlKey;if(this.dragover=!1,h.debug("Dropped",{event:e,folder:a,selection:t,fileTree:n}),n.contents.length>0)return void await qt(n,a,i.contents);const o=t.map((e=>this.filesStore.getNode(e)));await Gt(o,a,i.contents,r),t.some((e=>this.selectedFiles.includes(e)))&&(h.debug("Dropped selection, resetting select store..."),this.selectionStore.reset())},t:g.t}});var zs=n(82182);function Bs(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(""===e.trim())return(0,g.t)("files","Filename must not be empty.");try{return(0,m.KT)(e),""}catch(e){if(!(e instanceof m.di))throw e;switch(e.reason){case m.nF.Character:return(0,g.t)("files",'"{char}" is not allowed inside a filename.',{char:e.segment},void 0,{escape:t});case m.nF.ReservedName:return(0,g.t)("files",'"{segment}" is a reserved name and not allowed for filenames.',{segment:e.segment},void 0,{escape:!1});case m.nF.Extension:return e.segment.match(/\.[a-z]/i)?(0,g.t)("files",'"{extension}" is not an allowed filetype.',{extension:e.segment},void 0,{escape:!1}):(0,g.t)("files",'Filenames must not end with "{extension}".',{extension:e.segment},void 0,{escape:!1});default:return(0,g.t)("files","Invalid filename.")}}}const Ds=(0,r.pM)({name:"FileEntryName",components:{NcTextField:zs.A},props:{basename:{type:String,required:!0},extension:{type:String,required:!0},nodes:{type:Array,required:!0},source:{type:Object,required:!0},gridMode:{type:Boolean,default:!1}},setup(){const{currentView:e}=Ie(),{directory:t}=ht(),s=pt(),n=as();return{currentView:e,defaultFileAction:(0,r.WQ)("defaultFileAction"),directory:t,filesListWidth:s,renamingStore:n}},computed:{isRenaming(){return this.renamingStore.renamingNode===this.source},isRenamingSmallScreen(){return this.isRenaming&&this.filesListWidth<512},newName:{get(){return this.renamingStore.newName},set(e){this.renamingStore.newName=e}},renameLabel(){return{[m.pt.File]:(0,g.Tl)("files","Filename"),[m.pt.Folder]:(0,g.Tl)("files","Folder name")}[this.source.type]},linkTo(){if(this.source.status===m.zI.FAILED)return{is:"span",params:{title:(0,g.Tl)("files","This node is unavailable")}};if(this.defaultFileAction){const e=this.defaultFileAction.displayName([this.source],this.currentView);return{is:"button",params:{"aria-label":e,title:e,tabindex:"0"}}}return{is:"span"}}},watch:{isRenaming:{immediate:!0,handler(e){e&&this.startRenaming()}},newName(){const e=this.newName.trim?.()||"",t=this.$refs.renameInput?.$el.querySelector("input");if(!t)return;let s=Bs(e);""===s&&this.checkIfNodeExists(e)&&(s=(0,g.Tl)("files","Another entry with the same name already exists.")),this.$nextTick((()=>{this.isRenaming&&(t.setCustomValidity(s),t.reportValidity())}))}},methods:{checkIfNodeExists(e){return this.nodes.find((t=>t.basename===e&&t!==this.source))},startRenaming(){this.$nextTick((()=>{const e=this.$refs.renameInput?.$el.querySelector("input");if(!e)return void h.error("Could not find the rename input");e.focus();const t=this.source.basename.length-(this.source.extension??"").length;e.setSelectionRange(0,t),e.dispatchEvent(new Event("keyup"))}))},stopRenaming(){this.isRenaming&&this.renamingStore.$reset()},async onRename(){const e=this.newName.trim?.()||"";if(!this.$refs.renameForm.checkValidity())return void(0,u.Qg)((0,g.Tl)("files","Invalid filename.")+" "+Bs(e));const t=this.source.basename;if(e!==t)try{await this.renamingStore.rename()&&((0,u.Te)((0,g.Tl)("files",'Renamed "{oldName}" to "{newName}"',{oldName:t,newName:e})),this.$nextTick((()=>{const e=this.$refs.basename;e?.focus()})))}catch(e){h.error(e),(0,u.Qg)(e.message),this.startRenaming()}else this.stopRenaming()},t:g.Tl}}),Os=Ds;var Rs=n(29629),js={};js.styleTagTransform=he(),js.setAttributes=ue(),js.insert=ce().bind(null,"head"),js.domAPI=le(),js.insertStyleElement=fe(),re()(Rs.A,js),Rs.A&&Rs.A.locals&&Rs.A.locals;const Ms=(0,G.A)(Os,(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.isRenaming?t("form",{directives:[{name:"on-click-outside",rawName:"v-on-click-outside",value:e.onRename,expression:"onRename"}],ref:"renameForm",staticClass:"files-list__row-rename",attrs:{"aria-label":e.t("files","Rename file")},on:{submit:function(t){return t.preventDefault(),t.stopPropagation(),e.onRename.apply(null,arguments)}}},[t("NcTextField",{ref:"renameInput",attrs:{label:e.renameLabel,autofocus:!0,minlength:1,required:!0,value:e.newName,enterkeyhint:"done"},on:{"update:value":function(t){e.newName=t},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.stopRenaming.apply(null,arguments)}}})],1):t(e.linkTo.is,e._b({ref:"basename",tag:"component",staticClass:"files-list__row-name-link",attrs:{"aria-hidden":e.isRenaming,"data-cy-files-list-row-name-link":""}},"component",e.linkTo.params,!1),[t("span",{staticClass:"files-list__row-name-text",attrs:{dir:"auto"}},[t("span",{staticClass:"files-list__row-name-",domProps:{textContent:e._s(e.basename)}}),e._v(" "),t("span",{staticClass:"files-list__row-name-ext",domProps:{textContent:e._s(e.extension)}})])])}),[],!1,null,"c8581214",null).exports;var Vs=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],$s=e=>{let t=0;for(let s=0;s<e.length;s++){let n=e[s];t=83*t+Vs.indexOf(n)}return t},Ws=e=>{let t=e/255;return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)},Hs=e=>{let t=Math.max(0,Math.min(1,e));return t<=.0031308?Math.trunc(12.92*t*255+.5):Math.trunc(255*(1.055*Math.pow(t,.4166666666666667)-.055)+.5)},qs=(e,t)=>(e=>e<0?-1:1)(e)*Math.pow(Math.abs(e),t),Gs=class extends Error{constructor(e){super(e),this.name="ValidationError",this.message=e}},Ys=e=>{let t=e>>8&255,s=255&e;return[Ws(e>>16),Ws(t),Ws(s)]},Ks=(e,t)=>{let s=Math.floor(e/361),n=Math.floor(e/19)%19,i=e%19;return[qs((s-9)/9,2)*t,qs((n-9)/9,2)*t,qs((i-9)/9,2)*t]},Qs=(e,t,s,n)=>{(e=>{if(!e||e.length<6)throw new Gs("The blurhash string must be at least 6 characters");let t=$s(e[0]),s=Math.floor(t/9)+1,n=t%9+1;if(e.length!==4+2*n*s)throw new Gs(`blurhash length mismatch: length is ${e.length} but it should be ${4+2*n*s}`)})(e),n|=1;let i=$s(e[0]),a=Math.floor(i/9)+1,r=i%9+1,o=($s(e[1])+1)/166,l=new Array(r*a);for(let t=0;t<l.length;t++)if(0===t){let s=$s(e.substring(2,6));l[t]=Ys(s)}else{let s=$s(e.substring(4+2*t,6+2*t));l[t]=Ks(s,o*n)}let d=4*t,c=new Uint8ClampedArray(d*s);for(let e=0;e<s;e++)for(let n=0;n<t;n++){let i=0,o=0,m=0;for(let d=0;d<a;d++)for(let a=0;a<r;a++){let c=Math.cos(Math.PI*n*a/t)*Math.cos(Math.PI*e*d/s),u=l[a+d*r];i+=u[0]*c,o+=u[1]*c,m+=u[2]*c}let u=Hs(i),g=Hs(o),f=Hs(m);c[4*n+0+e*d]=u,c[4*n+1+e*d]=g,c[4*n+2+e*d]=f,c[4*n+3+e*d]=255}return c},Xs=n(43261),Js=n(60557);const Zs={name:"FolderOpenIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},en=(0,G.A)(Zs,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon folder-open-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M19,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,tn={name:"KeyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},sn=(0,G.A)(tn,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon key-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,nn={name:"NetworkIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},an=(0,G.A)(nn,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon network-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,rn={name:"TagIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},on=(0,G.A)(rn,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon tag-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,ln={name:"PlayCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},dn=(0,G.A)(ln,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon play-circle-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M10,16.5V7.5L16,12M12,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"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,cn={name:"CollectivesIcon",props:{title:{type:String,default:""},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},mn=(0,G.A)(cn,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon collectives-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 16 16"}},[t("path",{attrs:{d:"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z"}}),e._v(" "),t("path",{attrs:{d:"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z"}}),e._v(" "),t("path",{attrs:{d:"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z"}}),e._v(" "),t("path",{attrs:{d:"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z"}}),e._v(" "),t("path",{attrs:{d:"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z"}}),e._v(" "),t("path",{attrs:{d:"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z"}})])])}),[],!1,null,null,null).exports,un=(0,r.pM)({name:"FavoriteIcon",components:{NcIconSvgWrapper:Ue.A},data:()=>({StarSvg:U}),async mounted(){await this.$nextTick();const e=this.$el.querySelector("svg");e?.setAttribute?.("viewBox","-4 -4 30 30")},methods:{t:g.Tl}});var gn=n(4575),fn={};fn.styleTagTransform=he(),fn.setAttributes=ue(),fn.insert=ce().bind(null,"head"),fn.domAPI=le(),fn.insertStyleElement=fe(),re()(gn.A,fn),gn.A&&gn.A.locals&&gn.A.locals;const pn=(0,G.A)(un,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcIconSvgWrapper",{staticClass:"favorite-marker-icon",attrs:{name:e.t("files","Favorite"),svg:e.StarSvg}})}),[],!1,null,"f2d0cf6e",null).exports,hn=(0,r.pM)({name:"FileEntryPreview",components:{AccountGroupIcon:Xs.A,AccountPlusIcon:lt,CollectivesIcon:mn,FavoriteIcon:pn,FileIcon:Js.A,FolderIcon:_s.A,FolderOpenIcon:en,KeyIcon:sn,LinkIcon:Je.A,NetworkIcon:an,TagIcon:on},props:{source:{type:Object,required:!0},dragover:{type:Boolean,default:!1},gridMode:{type:Boolean,default:!1}},setup:()=>({userConfigStore:W(),isPublic:(0,F.f)(),publicSharingToken:(0,F.G)()}),data:()=>({backgroundFailed:void 0,backgroundLoaded:!1}),computed:{isFavorite(){return 1===this.source.attributes.favorite},userConfig(){return this.userConfigStore.userConfig},cropPreviews(){return!0===this.userConfig.crop_image_previews},previewUrl(){if(this.source.type===m.pt.Folder)return null;if(!0===this.backgroundFailed)return null;try{const e=this.source.attributes.previewUrl||(this.isPublic?(0,N.Jv)("/apps/files_sharing/publicpreview/{token}?file={file}",{token:this.publicSharingToken,file:this.source.path}):(0,N.Jv)("/core/preview?fileId={fileid}",{fileid:String(this.source.fileid)})),t=new URL(window.location.origin+e);t.searchParams.set("x",this.gridMode?"128":"32"),t.searchParams.set("y",this.gridMode?"128":"32"),t.searchParams.set("mimeFallback","true");const s=this.source?.attributes?.etag||"";return t.searchParams.set("v",s.slice(0,6)),t.searchParams.set("a",!0===this.cropPreviews?"0":"1"),t.href}catch(e){return null}},fileOverlay(){return void 0!==this.source.attributes["metadata-files-live-photo"]?dn:null},folderOverlay(){if(this.source.type!==m.pt.Folder)return null;if(1===this.source?.attributes?.["is-encrypted"])return sn;if(this.source?.attributes?.["is-tag"])return on;const e=Object.values(this.source?.attributes?.["share-types"]||{}).flat();if(e.some((e=>e===Ge.I.Link||e===Ge.I.Email)))return Je.A;if(e.length>0)return lt;switch(this.source?.attributes?.["mount-type"]){case"external":case"external-session":return an;case"group":return Xs.A;case"collective":return mn;case"shared":return lt}return null},hasBlurhash(){return void 0!==this.source.attributes["metadata-blurhash"]}},mounted(){this.hasBlurhash&&this.$refs.canvas&&this.drawBlurhash()},methods:{reset(){this.backgroundFailed=void 0,this.backgroundLoaded=!1;const e=this.$refs.previewImg;e&&(e.src="")},onBackgroundLoad(){this.backgroundFailed=!1,this.backgroundLoaded=!0},onBackgroundError(e){""!==e.target?.src&&(this.backgroundFailed=!0,this.backgroundLoaded=!1)},drawBlurhash(){const e=this.$refs.canvas,t=e.width,s=e.height,n=Qs(this.source.attributes["metadata-blurhash"],t,s),i=e.getContext("2d");if(null===i)return void h.error("Cannot create context for blurhash canvas");const a=i.createImageData(t,s);a.data.set(n),i.putImageData(a,0,0)},t:g.Tl}}),vn=hn,wn=(0,G.A)(vn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("span",{staticClass:"files-list__row-icon"},["folder"===e.source.type?[e.dragover?e._m(0):[e._m(1),e._v(" "),e.folderOverlay?t(e.folderOverlay,{tag:"OverlayIcon",staticClass:"files-list__row-icon-overlay"}):e._e()]]:e.previewUrl?t("span",{staticClass:"files-list__row-icon-preview-container"},[!e.hasBlurhash||!0!==e.backgroundFailed&&e.backgroundLoaded?e._e():t("canvas",{ref:"canvas",staticClass:"files-list__row-icon-blurhash",attrs:{"aria-hidden":"true"}}),e._v(" "),!0!==e.backgroundFailed?t("img",{ref:"previewImg",staticClass:"files-list__row-icon-preview",class:{"files-list__row-icon-preview--loaded":!1===e.backgroundFailed},attrs:{alt:"",loading:"lazy",src:e.previewUrl},on:{error:e.onBackgroundError,load:e.onBackgroundLoad}}):e._e()]):e._m(2),e._v(" "),e.isFavorite?t("span",{staticClass:"files-list__row-icon-favorite"},[e._m(3)],1):e._e(),e._v(" "),e.fileOverlay?t(e.fileOverlay,{tag:"OverlayIcon",staticClass:"files-list__row-icon-overlay files-list__row-icon-overlay--file"}):e._e()],2)}),[function(){var e=this._self._c;return this._self._setupProxy,e("FolderOpenIcon")},function(){var e=this._self._c;return this._self._setupProxy,e("FolderIcon")},function(){var e=this._self._c;return this._self._setupProxy,e("FileIcon")},function(){var e=this._self._c;return this._self._setupProxy,e("FavoriteIcon")}],!1,null,null,null).exports,An=(0,r.pM)({name:"FileEntry",components:{CustomElementRender:os,FileEntryActions:As,FileEntryCheckbox:Cs,FileEntryName:Ms,FileEntryPreview:wn,NcDateTime:ts.A},mixins:[Ps],props:{isSizeAvailable:{type:Boolean,default:!1}},setup(){const e=ss(),t=Yt(),s=Ct(),n=as(),i=yt(),a=pt(),{currentView:r}=Ie(),{directory:o,fileId:l}=ht();return{actionsMenuStore:e,draggingStore:t,filesStore:s,renamingStore:n,selectionStore:i,currentDir:o,currentFileId:l,currentView:r,filesListWidth:a}},computed:{rowListeners(){return{...this.isRenaming?{}:{dragstart:this.onDragStart,dragover:this.onDragOver},contextmenu:this.onRightClick,dragleave:this.onDragLeave,dragend:this.onDragEnd,drop:this.onDrop}},columns(){return this.filesListWidth<512||this.compact?[]:this.currentView.columns||[]},size(){const e=this.source.size;return void 0===e||isNaN(e)||e<0?this.t("files","Pending"):(0,m.v7)(e,!0)},sizeOpacity(){const e=this.source.size;return void 0===e||isNaN(e)||e<0?{}:{color:`color-mix(in srgb, var(--color-main-text) ${Math.round(Math.min(100,100*Math.pow(e/10485760,2)))}%, var(--color-text-maxcontrast))`}},mtime(){return this.source.mtime&&!isNaN(this.source.mtime.getDate())?this.source.mtime:this.source.crtime&&!isNaN(this.source.crtime.getDate())?this.source.crtime:null},mtimeTitle(){return this.source.mtime?(0,es.A)(this.source.mtime).format("LLL"):""}},created(){(0,d.C)("Enter",this.triggerDefaultAction,{stop:!0,prevent:!0})},methods:{formatFileSize:m.v7,triggerDefaultAction(){this.isActive&&this.defaultFileAction?.exec(this.source,this.currentView,this.currentDir)}}}),bn=(0,G.A)(An,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",e._g({staticClass:"files-list__row",class:{"files-list__row--dragover":e.dragover,"files-list__row--loading":e.isLoading,"files-list__row--active":e.isActive},attrs:{"data-cy-files-list-row":"","data-cy-files-list-row-fileid":e.fileid,"data-cy-files-list-row-name":e.source.basename,draggable:e.canDrag}},e.rowListeners),[e.isFailedSource?t("span",{staticClass:"files-list__row--failed"}):e._e(),e._v(" "),t("FileEntryCheckbox",{attrs:{fileid:e.fileid,"is-loading":e.isLoading,nodes:e.nodes,source:e.source}}),e._v(" "),t("td",{staticClass:"files-list__row-name",attrs:{"data-cy-files-list-row-name":""}},[t("FileEntryPreview",{ref:"preview",attrs:{source:e.source,dragover:e.dragover},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}}),e._v(" "),t("FileEntryName",{ref:"name",attrs:{basename:e.basename,extension:e.extension,nodes:e.nodes,source:e.source},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}})],1),e._v(" "),t("FileEntryActions",{directives:[{name:"show",rawName:"v-show",value:!e.isRenamingSmallScreen,expression:"!isRenamingSmallScreen"}],ref:"actions",class:`files-list__row-actions-${e.uniqueId}`,attrs:{opened:e.openedMenu,source:e.source},on:{"update:opened":function(t){e.openedMenu=t}}}),e._v(" "),!e.compact&&e.isSizeAvailable?t("td",{staticClass:"files-list__row-size",style:e.sizeOpacity,attrs:{"data-cy-files-list-row-size":""},on:{click:e.openDetailsIfAvailable}},[t("span",[e._v(e._s(e.size))])]):e._e(),e._v(" "),!e.compact&&e.isMtimeAvailable?t("td",{staticClass:"files-list__row-mtime",style:e.mtimeOpacity,attrs:{"data-cy-files-list-row-mtime":""},on:{click:e.openDetailsIfAvailable}},[e.mtime?t("NcDateTime",{attrs:{timestamp:e.mtime,"ignore-seconds":!0}}):t("span",[e._v(e._s(e.t("files","Unknown date")))])],1):e._e(),e._v(" "),e._l(e.columns,(function(s){return t("td",{key:s.id,staticClass:"files-list__row-column-custom",class:`files-list__row-${e.currentView.id}-${s.id}`,attrs:{"data-cy-files-list-row-column-custom":s.id},on:{click:e.openDetailsIfAvailable}},[t("CustomElementRender",{attrs:{"current-view":e.currentView,render:s.render,source:e.source}})],1)}))],2)}),[],!1,null,null,null).exports,Cn=(0,r.pM)({name:"FileEntryGrid",components:{FileEntryActions:As,FileEntryCheckbox:Cs,FileEntryName:Ms,FileEntryPreview:wn,NcDateTime:ts.A},mixins:[Ps],inheritAttrs:!1,setup(){const e=ss(),t=Yt(),s=Ct(),n=as(),i=yt(),{currentView:a}=Ie(),{directory:r,fileId:o}=ht();return{actionsMenuStore:e,draggingStore:t,filesStore:s,renamingStore:n,selectionStore:i,currentDir:r,currentFileId:o,currentView:a}},data:()=>({gridMode:!0})}),yn=(0,G.A)(Cn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",{staticClass:"files-list__row",class:{"files-list__row--active":e.isActive,"files-list__row--dragover":e.dragover,"files-list__row--loading":e.isLoading},attrs:{"data-cy-files-list-row":"","data-cy-files-list-row-fileid":e.fileid,"data-cy-files-list-row-name":e.source.basename,draggable:e.canDrag},on:{contextmenu:e.onRightClick,dragover:e.onDragOver,dragleave:e.onDragLeave,dragstart:e.onDragStart,dragend:e.onDragEnd,drop:e.onDrop}},[e.isFailedSource?t("span",{staticClass:"files-list__row--failed"}):e._e(),e._v(" "),t("FileEntryCheckbox",{attrs:{fileid:e.fileid,"is-loading":e.isLoading,nodes:e.nodes,source:e.source}}),e._v(" "),t("td",{staticClass:"files-list__row-name",attrs:{"data-cy-files-list-row-name":""}},[t("FileEntryPreview",{ref:"preview",attrs:{dragover:e.dragover,"grid-mode":!0,source:e.source},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}}),e._v(" "),t("FileEntryName",{ref:"name",attrs:{basename:e.basename,extension:e.extension,"grid-mode":!0,nodes:e.nodes,source:e.source},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}})],1),e._v(" "),!e.compact&&e.isMtimeAvailable?t("td",{staticClass:"files-list__row-mtime",style:e.mtimeOpacity,attrs:{"data-cy-files-list-row-mtime":""},on:{click:e.openDetailsIfAvailable}},[e.source.mtime?t("NcDateTime",{attrs:{timestamp:e.source.mtime,"ignore-seconds":!0}}):e._e()],1):e._e(),e._v(" "),t("FileEntryActions",{ref:"actions",class:`files-list__row-actions-${e.uniqueId}`,attrs:{"grid-mode":!0,opened:e.openedMenu,source:e.source},on:{"update:opened":function(t){e.openedMenu=t}}})],1)}),[],!1,null,null,null).exports;var xn=n(41944),kn=n(63068);const _n=(0,r.pM)({__name:"FileListFilters",setup(e){const t=Me(),s=(0,r.EW)((()=>t.filtersWithUI)),n=(0,r.EW)((()=>t.activeChips)),i=(0,r.KR)([]);return(0,r.nT)((()=>{i.value.forEach(((e,t)=>s.value[t].mount(e)))})),{__sfc:!0,filterStore:t,visualFilters:s,activeChips:n,filterElements:i,t:g.t,NcAvatar:xn.A,NcChip:kn.A}}});var Tn=n(3085),Sn={};Sn.styleTagTransform=he(),Sn.setAttributes=ue(),Sn.insert=ce().bind(null,"head"),Sn.domAPI=le(),Sn.insertStyleElement=fe(),re()(Tn.A,Sn),Tn.A&&Tn.A.locals&&Tn.A.locals;const Ln=(0,G.A)(_n,(function(){var e=this,t=e._self._c,s=e._self._setupProxy;return t("div",{staticClass:"file-list-filters"},[t("div",{staticClass:"file-list-filters__filter",attrs:{"data-cy-files-filters":""}},e._l(s.visualFilters,(function(e){return t("span",{key:e.id,ref:"filterElements",refInFor:!0})})),0),e._v(" "),s.activeChips.length>0?t("ul",{staticClass:"file-list-filters__active",attrs:{"aria-label":s.t("files","Active filters")}},e._l(s.activeChips,(function(n,i){return t("li",{key:i},[t(s.NcChip,{attrs:{"aria-label-close":s.t("files","Remove filter"),"icon-svg":n.icon,text:n.text},on:{close:n.onclick},scopedSlots:e._u([n.user?{key:"icon",fn:function(){return[t(s.NcAvatar,{attrs:{"disable-menu":"","show-user-status":!1,size:24,user:n.user}})]},proxy:!0}:null],null,!0)})],1)})),0):e._e()])}),[],!1,null,"bd0c8440",null).exports,Nn={name:"FilesListHeader",props:{header:{type:Object,required:!0},currentFolder:{type:Object,required:!0},currentView:{type:Object,required:!0}},computed:{enabled(){return this.header.enabled(this.currentFolder,this.currentView)}},watch:{enabled(e){e&&this.header.updated(this.currentFolder,this.currentView)},currentFolder(){this.header.updated(this.currentFolder,this.currentView)}},mounted(){console.debug("Mounted",this.header.id),this.header.render(this.$refs.mount,this.currentFolder,this.currentView)}},Fn=(0,G.A)(Nn,(function(){var e=this,t=e._self._c;return t("div",{directives:[{name:"show",rawName:"v-show",value:e.enabled,expression:"enabled"}],class:`files-list__header-${e.header.id}`},[t("span",{ref:"mount"})])}),[],!1,null,null,null).exports,En=(0,r.pM)({name:"FilesListTableFooter",props:{currentView:{type:m.Ss,required:!0},isMtimeAvailable:{type:Boolean,default:!1},isSizeAvailable:{type:Boolean,default:!1},nodes:{type:Array,required:!0},summary:{type:String,default:""},filesListWidth:{type:Number,default:0}},setup(){const e=bt(),t=Ct(),{directory:s}=ht();return{filesStore:t,pathsStore:e,directory:s}},computed:{currentFolder(){if(!this.currentView?.id)return;if("/"===this.directory)return this.filesStore.getRoot(this.currentView.id);const e=this.pathsStore.getPath(this.currentView.id,this.directory);return this.filesStore.getNode(e)},columns(){return this.filesListWidth<512?[]:this.currentView?.columns||[]},totalSize(){return this.currentFolder?.size?(0,m.v7)(this.currentFolder.size,!0):(0,m.v7)(this.nodes.reduce(((e,t)=>e+(t.size??0)),0),!0)}},methods:{classForColumn(e){return{"files-list__row-column-custom":!0,[`files-list__row-${this.currentView.id}-${e.id}`]:!0}},t:g.Tl}});var Un=n(23718),In={};In.styleTagTransform=he(),In.setAttributes=ue(),In.insert=ce().bind(null,"head"),In.domAPI=le(),In.insertStyleElement=fe(),re()(Un.A,In),Un.A&&Un.A.locals&&Un.A.locals;const Pn=(0,G.A)(En,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",[t("th",{staticClass:"files-list__row-checkbox"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("files","Total rows summary")))])]),e._v(" "),t("td",{staticClass:"files-list__row-name"},[t("span",{staticClass:"files-list__row-icon"}),e._v(" "),t("span",[e._v(e._s(e.summary))])]),e._v(" "),t("td",{staticClass:"files-list__row-actions"}),e._v(" "),e.isSizeAvailable?t("td",{staticClass:"files-list__column files-list__row-size"},[t("span",[e._v(e._s(e.totalSize))])]):e._e(),e._v(" "),e.isMtimeAvailable?t("td",{staticClass:"files-list__column files-list__row-mtime"}):e._e(),e._v(" "),e._l(e.columns,(function(s){return t("th",{key:s.id,class:e.classForColumn(s)},[t("span",[e._v(e._s(s.summary?.(e.nodes,e.currentView)))])])}))],2)}),[],!1,null,"5103b354",null).exports;var zn=n(25384),Bn=n(33388);const Dn=r.Ay.extend({setup(){const{currentView:e}=Ie();return{currentView:e}},computed:{...(0,a.aH)(ze,["getConfig","setSortingBy","toggleSortingDirection"]),sortingMode(){return this.getConfig(this.currentView.id)?.sorting_mode||this.currentView?.defaultSortKey||"basename"},isAscSorting(){const e=this.getConfig(this.currentView.id)?.sorting_direction;return"desc"!==e}},methods:{toggleSortBy(e){this.sortingMode!==e?this.setSortingBy(e,this.currentView.id):this.toggleSortingDirection(this.currentView.id)}}}),On=(0,r.pM)({name:"FilesListTableHeaderButton",components:{MenuDown:zn.A,MenuUp:Bn.A,NcButton:it.A},mixins:[Dn],props:{name:{type:String,required:!0},mode:{type:String,required:!0}},methods:{t:g.Tl}});var Rn=n(64800),jn={};jn.styleTagTransform=he(),jn.setAttributes=ue(),jn.insert=ce().bind(null,"head"),jn.domAPI=le(),jn.insertStyleElement=fe(),re()(Rn.A,jn),Rn.A&&Rn.A.locals&&Rn.A.locals;const Mn=(0,G.A)(On,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcButton",{class:["files-list__column-sort-button",{"files-list__column-sort-button--active":e.sortingMode===e.mode,"files-list__column-sort-button--size":"size"===e.sortingMode}],attrs:{alignment:"size"===e.mode?"end":"start-reverse",type:"tertiary",title:e.name},on:{click:function(t){return e.toggleSortBy(e.mode)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.sortingMode!==e.mode||e.isAscSorting?t("MenuUp",{staticClass:"files-list__column-sort-button-icon"}):t("MenuDown",{staticClass:"files-list__column-sort-button-icon"})]},proxy:!0}])},[e._v(" "),t("span",{staticClass:"files-list__column-sort-button-text"},[e._v(e._s(e.name))])])}),[],!1,null,"6d7680f0",null).exports,Vn=(0,r.pM)({name:"FilesListTableHeader",components:{FilesListTableHeaderButton:Mn,NcCheckboxRadioSwitch:xe.A},mixins:[Dn],props:{isMtimeAvailable:{type:Boolean,default:!1},isSizeAvailable:{type:Boolean,default:!1},nodes:{type:Array,required:!0},filesListWidth:{type:Number,default:0}},setup(){const e=Ct(),t=yt(),{currentView:s}=Ie();return{filesStore:e,selectionStore:t,currentView:s}},computed:{columns(){return this.filesListWidth<512?[]:this.currentView?.columns||[]},dir(){return(this.$route?.query?.dir||"/").replace(/^(.+)\/$/,"$1")},selectAllBind(){const e=(0,g.Tl)("files","Toggle selection for all files and folders");return{"aria-label":e,checked:this.isAllSelected,indeterminate:this.isSomeSelected,title:e}},selectedNodes(){return this.selectionStore.selected},isAllSelected(){return this.selectedNodes.length===this.nodes.length},isNoneSelected(){return 0===this.selectedNodes.length},isSomeSelected(){return!this.isAllSelected&&!this.isNoneSelected}},created(){(0,d.C)("a",this.onToggleAll,{ctrl:!0,stop:!0,prevent:!0}),(0,d.C)("Escape",this.resetSelection,{stop:!0,prevent:!0})},methods:{ariaSortForMode(e){return this.sortingMode===e?this.isAscSorting?"ascending":"descending":null},classForColumn(e){return{"files-list__column":!0,"files-list__column--sortable":!!e.sort,"files-list__row-column-custom":!0,[`files-list__row-${this.currentView?.id}-${e.id}`]:!0}},onToggleAll(){if(arguments.length>0&&void 0!==arguments[0]&&!arguments[0])h.debug("Cleared selection"),this.selectionStore.reset();else{const e=this.nodes.map((e=>e.source)).filter(Boolean);h.debug("Added all nodes to selection",{selection:e}),this.selectionStore.setLastIndex(null),this.selectionStore.set(e)}},resetSelection(){this.isNoneSelected||this.selectionStore.reset()},t:g.Tl}});var $n=n(89937),Wn={};Wn.styleTagTransform=he(),Wn.setAttributes=ue(),Wn.insert=ce().bind(null,"head"),Wn.domAPI=le(),Wn.insertStyleElement=fe(),re()($n.A,Wn),$n.A&&$n.A.locals&&$n.A.locals;const Hn=(0,G.A)(Vn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",{staticClass:"files-list__row-head"},[t("th",{staticClass:"files-list__column files-list__row-checkbox",on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.resetSelection.apply(null,arguments)}}},[t("NcCheckboxRadioSwitch",e._b({attrs:{"data-cy-files-list-selection-checkbox":""},on:{"update:checked":e.onToggleAll}},"NcCheckboxRadioSwitch",e.selectAllBind,!1))],1),e._v(" "),t("th",{staticClass:"files-list__column files-list__row-name files-list__column--sortable",attrs:{"aria-sort":e.ariaSortForMode("basename")}},[t("span",{staticClass:"files-list__row-icon"}),e._v(" "),t("FilesListTableHeaderButton",{attrs:{name:e.t("files","Name"),mode:"basename"}})],1),e._v(" "),t("th",{staticClass:"files-list__row-actions"}),e._v(" "),e.isSizeAvailable?t("th",{staticClass:"files-list__column files-list__row-size",class:{"files-list__column--sortable":e.isSizeAvailable},attrs:{"aria-sort":e.ariaSortForMode("size")}},[t("FilesListTableHeaderButton",{attrs:{name:e.t("files","Size"),mode:"size"}})],1):e._e(),e._v(" "),e.isMtimeAvailable?t("th",{staticClass:"files-list__column files-list__row-mtime",class:{"files-list__column--sortable":e.isMtimeAvailable},attrs:{"aria-sort":e.ariaSortForMode("mtime")}},[t("FilesListTableHeaderButton",{attrs:{name:e.t("files","Modified"),mode:"mtime"}})],1):e._e(),e._v(" "),e._l(e.columns,(function(s){return t("th",{key:s.id,class:e.classForColumn(s),attrs:{"aria-sort":e.ariaSortForMode(s.id)}},[s.sort?t("FilesListTableHeaderButton",{attrs:{name:s.title,mode:s.id}}):t("span",[e._v("\n\t\t\t"+e._s(s.title)+"\n\t\t")])],1)}))],2)}),[],!1,null,"2790ede2",null).exports,qn=(0,m.qK)(),Gn=(0,r.pM)({name:"FilesListTableHeaderActions",components:{ArrowLeftIcon:ds,NcActions:st.A,NcActionButton:nt.A,NcIconSvgWrapper:Ue.A,NcLoadingIcon:rt.A},mixins:[ms],props:{currentView:{type:Object,required:!0},selectedNodes:{type:Array,default:()=>[]}},setup(){const e=ss(),t=Ct(),s=yt(),n=pt(),{directory:i}=ht();return{directory:i,fileListWidth:n,actionsMenuStore:e,filesStore:t,selectionStore:s}},data:()=>({loading:null}),computed:{enabledFileActions(){return qn.filter((e=>!e.renderInline)).filter((e=>e.default!==m.m9.HIDDEN)).filter((e=>!e.enabled||e.enabled(this.nodes,this.currentView))).sort(((e,t)=>(e.order||0)-(t.order||0)))},enabledInlineActions(){return this.enabledFileActions.filter((e=>void 0===e.parent)).filter((e=>void 0!==e.execBatch)).filter((e=>!this.isValidMenu(e))).slice(0,this.inlineActions)},enabledMenuActions(){if(this.openedSubmenu)return this.enabledInlineActions;const e=this.enabledFileActions.filter(((e,t,s)=>t===s.findIndex((t=>t.id===e.id)))),t=e.filter((e=>e.parent)).map((e=>e.parent)),s=e.filter((e=>e.execBatch?!e.parent:t.includes(e.id))).filter((e=>!this.enabledInlineActions.includes(e)));return[...this.enabledInlineActions,...s]},nodes(){return this.selectedNodes.map((e=>this.getNode(e))).filter(Boolean)},areSomeNodesLoading(){return this.nodes.some((e=>e.status===m.zI.LOADING))},openedMenu:{get(){return"global"===this.actionsMenuStore.opened},set(e){this.actionsMenuStore.opened=e?"global":null}},inlineActions(){return this.fileListWidth<512?0:this.fileListWidth<768?1:this.fileListWidth<1024?2:3}},methods:{getNode(e){return this.filesStore.getNode(e)},async onActionClick(e){if(this.enabledSubmenuActions[e.id])return void(this.openedSubmenu=e);let t=e.id;try{t=e.displayName(this.nodes,this.currentView)}catch(t){h.error("Error while getting action display name",{action:e,error:t})}const s=this.selectedNodes;try{this.loading=e.id,this.nodes.forEach((e=>{this.$set(e,"status",m.zI.LOADING)}));const n=await e.execBatch(this.nodes,this.currentView,this.directory);if(!n.some((e=>null!==e)))return void this.selectionStore.reset();if(n.some((e=>!1===e))){const e=s.filter(((e,t)=>!1===n[t]));if(this.selectionStore.set(e),n.some((e=>null===e)))return;return void(0,u.Qg)(this.t("files",'"{displayName}" failed on some elements',{displayName:t}))}(0,u.Te)(this.t("files",'"{displayName}" batch action executed successfully',{displayName:t})),this.selectionStore.reset()}catch(s){h.error("Error while executing action",{action:e,e:s}),(0,u.Qg)(this.t("files",'"{displayName}" action failed',{displayName:t}))}finally{this.loading=null,this.nodes.forEach((e=>{this.$set(e,"status",void 0)}))}},t:g.Tl}}),Yn=Gn;var Kn=n(2681),Qn={};Qn.styleTagTransform=he(),Qn.setAttributes=ue(),Qn.insert=ce().bind(null,"head"),Qn.domAPI=le(),Qn.insertStyleElement=fe(),re()(Kn.A,Qn),Kn.A&&Kn.A.locals&&Kn.A.locals;var Xn=(0,G.A)(Yn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"files-list__column files-list__row-actions-batch",attrs:{"data-cy-files-list-selection-actions":""}},[t("NcActions",{ref:"actionsMenu",attrs:{container:"#app-content-vue",disabled:!!e.loading||e.areSomeNodesLoading,"force-name":!0,inline:e.enabledInlineActions.length,"menu-name":e.enabledInlineActions.length<=1?e.t("files","Actions"):null,open:e.openedMenu},on:{"update:open":function(t){e.openedMenu=t},close:function(t){e.openedSubmenu=null}}},[e._l(e.enabledMenuActions,(function(s){return t("NcActionButton",{key:s.id,ref:`action-batch-${s.id}`,refInFor:!0,class:{[`files-list__row-actions-batch-${s.id}`]:!0,"files-list__row-actions-batch--menu":e.isValidMenu(s)},attrs:{"close-after-click":!e.isValidMenu(s),"data-cy-files-list-selection-action":s.id,"is-menu":e.isValidMenu(s),"aria-label":s.displayName(e.nodes,e.currentView)+" "+e.t("files","(selected)"),title:s.title?.(e.nodes,e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loading===s.id?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline(e.nodes,e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t"+e._s(s.displayName(e.nodes,e.currentView))+"\n\t\t")])})),e._v(" "),e.openedSubmenu&&e.enabledSubmenuActions[e.openedSubmenu?.id]?[t("NcActionButton",{staticClass:"files-list__row-actions-batch-back",attrs:{"data-cy-files-list-selection-action":"menu-back"},on:{click:function(t){return e.onBackToMenuClick(e.openedSubmenu)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowLeftIcon")]},proxy:!0}],null,!1,3001860362)},[e._v("\n\t\t\t\t"+e._s(e.t("files","Back"))+"\n\t\t\t")]),e._v(" "),t("NcActionSeparator"),e._v(" "),e._l(e.enabledSubmenuActions[e.openedSubmenu?.id],(function(s){return t("NcActionButton",{key:s.id,staticClass:"files-list__row-actions-batch--submenu",class:`files-list__row-actions-batch-${s.id}`,attrs:{"close-after-click":"","data-cy-files-list-selection-action":s.id,"aria-label":s.displayName(e.nodes,e.currentView)+" "+e.t("files","(selected)"),title:s.title?.(e.nodes,e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loading===s.id?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline(e.nodes,e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(s.displayName(e.nodes,e.currentView))+"\n\t\t\t")])}))]:e._e()],2)],1)}),[],!1,null,"22469fbb",null);const Jn=Xn.exports;var Zn=n(17334),ei=n.n(Zn);const ti=(0,r.pM)({name:"VirtualList",props:{dataComponent:{type:[Object,Function],required:!0},dataKey:{type:String,required:!0},dataSources:{type:Array,required:!0},extraProps:{type:Object,default:()=>({})},scrollToIndex:{type:Number,default:0},gridMode:{type:Boolean,default:!1},caption:{type:String,default:""}},setup:()=>({fileListWidth:pt()}),data(){return{index:this.scrollToIndex,beforeHeight:0,footerHeight:0,headerHeight:0,tableHeight:0,resizeObserver:null}},computed:{isReady(){return this.tableHeight>0},bufferItems(){return this.gridMode?this.columnCount:3},itemHeight(){return this.gridMode?246:55},itemWidth:()=>198,visibleRows(){return Math.floor((this.tableHeight-this.headerHeight)/this.itemHeight)},rowCount(){return this.visibleRows+this.bufferItems/this.columnCount*2+1},columnCount(){return this.gridMode?Math.floor(this.fileListWidth/this.itemWidth):1},startIndex(){const e=this.index-this.index%this.columnCount;return Math.max(0,e-this.bufferItems)},shownItems(){return this.gridMode?this.rowCount*this.columnCount:this.rowCount},renderedItems(){if(!this.isReady)return[];const e=this.dataSources.slice(this.startIndex,this.startIndex+this.shownItems),t=e.filter((e=>Object.values(this.$_recycledPool).includes(e[this.dataKey]))).map((e=>e[this.dataKey])),s=Object.keys(this.$_recycledPool).filter((e=>!t.includes(this.$_recycledPool[e])));return e.map((e=>{const t=Object.values(this.$_recycledPool).indexOf(e[this.dataKey]);if(-1!==t)return{key:Object.keys(this.$_recycledPool)[t],item:e};const n=s.pop()||Math.random().toString(36).substr(2);return this.$_recycledPool[n]=e[this.dataKey],{key:n,item:e}}))},totalRowCount(){return Math.ceil(this.dataSources.length/this.columnCount)},tbodyStyle(){const e=Math.round(this.startIndex/this.columnCount),t=Math.max(0,this.totalRowCount-e-this.rowCount);return{paddingBlock:`${e*this.itemHeight}px ${t*this.itemHeight}px`,minHeight:this.totalRowCount*this.itemHeight+"px"}}},watch:{scrollToIndex(e){this.scrollTo(e)},totalRowCount(){this.scrollToIndex&&this.scrollTo(this.scrollToIndex)},columnCount(e,t){0!==t?this.scrollTo(this.index):h.debug("VirtualList: columnCount is 0, skipping scroll")}},mounted(){this.$_recycledPool={},this.resizeObserver=new ResizeObserver(ei()((()=>{this.updateHeightVariables(),h.debug("VirtualList: resizeObserver updated"),this.onScroll()}),100)),this.resizeObserver.observe(this.$el),this.resizeObserver.observe(this.$refs.before),this.resizeObserver.observe(this.$refs.filters),this.resizeObserver.observe(this.$refs.footer),this.$nextTick((()=>{this.updateHeightVariables(),this.scrollToIndex&&this.scrollTo(this.scrollToIndex)}))},beforeDestroy(){this.resizeObserver&&this.resizeObserver.disconnect()},methods:{scrollTo(e){if(!this.$el)return;if(this.totalRowCount<this.visibleRows)return void h.debug("VirtualList: Skip scrolling, nothing to scroll",{index:e,totalRows:this.totalRowCount,visibleRows:this.visibleRows});const t=(this.totalRowCount-this.visibleRows)*this.columnCount+(this.columnCount-1);let s=this.indexToScrollPos(Math.min(e,t));this.index=e,e>=this.columnCount&&e<=t?(s-=this.itemHeight/2,this.index=e-this.columnCount):e>t&&(e<=t+this.columnCount?s+=this.footerHeight/2:s+=this.footerHeight),this.$nextTick((()=>{this.$el.scrollTop=s,h.debug(`VirtualList: scrolling to index ${e}`,{clampedIndex:t,scrollTop:s,columnCount:this.columnCount,total:this.totalRowCount,visibleRows:this.visibleRows,beforeHeight:this.beforeHeight})}))},onScroll(){this._onScrollHandle??=requestAnimationFrame((()=>{this._onScrollHandle=null;const e=this.scrollPosToIndex(this.$el.scrollTop);e!==this.index&&(this.index=Math.max(0,Math.floor(e)),this.$emit("scroll"))}))},scrollPosToIndex(e){const t=e-this.beforeHeight;return Math.max(0,Math.floor(t/this.itemHeight))*this.columnCount},indexToScrollPos(e){return Math.floor(e/this.columnCount)*this.itemHeight+this.beforeHeight},updateHeightVariables(){this.tableHeight=this.$el?.clientHeight??0,this.beforeHeight=this.$refs.before?.clientHeight??0,this.footerHeight=this.$refs.footer?.clientHeight??0;const e=this.$refs.thead?.clientHeight??0,t=this.$refs.filters?.clientHeight??0;this.headerHeight=e+t}}}),si=(0,G.A)(ti,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"files-list",class:{"files-list--grid":e.gridMode},attrs:{"data-cy-files-list":""},on:{"&scroll":function(t){return e.onScroll.apply(null,arguments)}}},[t("div",{ref:"before",staticClass:"files-list__before"},[e._t("before")],2),e._v(" "),t("div",{ref:"filters",staticClass:"files-list__filters"},[e._t("filters")],2),e._v(" "),e.$scopedSlots["header-overlay"]?t("div",{staticClass:"files-list__thead-overlay"},[e._t("header-overlay")],2):e._e(),e._v(" "),t("table",{staticClass:"files-list__table",class:{"files-list__table--with-thead-overlay":!!e.$scopedSlots["header-overlay"]}},[e.caption?t("caption",{staticClass:"hidden-visually"},[e._v("\n\t\t\t"+e._s(e.caption)+"\n\t\t")]):e._e(),e._v(" "),t("thead",{ref:"thead",staticClass:"files-list__thead",attrs:{"data-cy-files-list-thead":""}},[e._t("header")],2),e._v(" "),t("tbody",{staticClass:"files-list__tbody",style:e.tbodyStyle,attrs:{"data-cy-files-list-tbody":""}},e._l(e.renderedItems,(function(s,n){let{key:i,item:a}=s;return t(e.dataComponent,e._b({key:i,tag:"component",attrs:{source:a,index:n}},"component",e.extraProps,!1))})),1),e._v(" "),t("tfoot",{ref:"footer",staticClass:"files-list__tfoot",attrs:{"data-cy-files-list-tfoot":""}},[e._t("footer")],2)])])}),[],!1,null,null,null).exports,ni=(0,r.pM)({name:"FilesListVirtual",components:{FileListFilters:Ln,FilesListHeader:Fn,FilesListTableFooter:Pn,FilesListTableHeader:Hn,VirtualList:si,FilesListTableHeaderActions:Jn},props:{currentView:{type:m.Ss,required:!0},currentFolder:{type:m.vd,required:!0},nodes:{type:Array,required:!0}},setup(){const e=M(),t=yt(),s=W(),n=pt(),{fileId:i,openDetails:a,openFile:r}=ht();return{fileId:i,fileListWidth:n,openDetails:a,openFile:r,activeStore:e,selectionStore:t,userConfigStore:s,t:g.Tl}},data:()=>({FileEntry:bn,FileEntryGrid:yn,headers:(0,m.By)(),scrollToIndex:0,openFileId:null}),computed:{userConfig(){return this.userConfigStore.userConfig},summary(){return Zt(this.nodes)},isMtimeAvailable(){return!(this.fileListWidth<768)&&this.nodes.some((e=>void 0!==e.mtime))},isSizeAvailable(){return!(this.fileListWidth<768)&&this.nodes.some((e=>void 0!==e.size))},sortedHeaders(){return this.currentFolder&&this.currentView?[...this.headers].sort(((e,t)=>e.order-t.order)):[]},cantUpload(){return this.currentFolder&&!(this.currentFolder.permissions&m.aX.CREATE)},isQuotaExceeded(){return 0===this.currentFolder?.attributes?.["quota-available-bytes"]},caption(){const e=(0,g.Tl)("files","List of files and folders.");return[this.currentView.caption||e,this.cantUpload?(0,g.Tl)("files","You don't have permission to upload or create files here."):null,this.isQuotaExceeded?(0,g.Tl)("files","You have used your space quota and cannot upload files anymore."):null,(0,g.Tl)("files","Column headers with buttons are sortable."),(0,g.Tl)("files","This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.")].filter(Boolean).join("\n")},selectedNodes(){return this.selectionStore.selected},isNoneSelected(){return 0===this.selectedNodes.length}},watch:{fileId:{handler(e){this.scrollToFile(e,!1)},immediate:!0},openFile:{handler(e){e&&this.fileId&&this.handleOpenFile(this.fileId)},immediate:!0},openDetails:{handler(e){this.$nextTick((()=>{e&&this.fileId&&this.openSidebarForFile(this.fileId)}))},immediate:!0}},created(){(0,d.C)("Escape",this.unselectFile,{stop:!0,prevent:!0}),(0,d.C)(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],this.onKeyDown,{stop:!0,prevent:!0})},mounted(){window.document.querySelector("main.app-content").addEventListener("dragover",this.onDragOver),(0,v.B1)("files:sidebar:closed",this.onSidebarClosed)},beforeDestroy(){window.document.querySelector("main.app-content").removeEventListener("dragover",this.onDragOver),(0,v.al)("files:sidebar:closed",this.onSidebarClosed)},methods:{openSidebarForFile(e){const t=this.nodes.find((t=>t.fileid===e));if(t&&j?.enabled?.([t],this.currentView))return h.debug("Opening sidebar on file "+t.path,{node:t}),void j.exec(t,this.currentView,this.currentFolder.path);h.error(`Failed to open sidebar on file ${e}, file isn't cached yet !`,{fileId:e,node:t})},scrollToFile(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e){if(e===this.currentFolder.fileid)return;const s=this.nodes.findIndex((t=>t.fileid===e));t&&-1===s&&e!==this.currentFolder.fileid&&(0,u.Qg)((0,g.Tl)("files","File not found")),this.scrollToIndex=Math.max(0,s)}},unselectFile(){const e={...this.$route.query};delete e.openfile,delete e.opendetails,this.activeStore.clearActiveNode(),window.OCP.Files.Router.goToRoute(null,{...this.$route.params,fileid:String(this.currentFolder.fileid??"")},e,!0)},onSidebarClosed(){if(this.openDetails){const e={...this.$route.query};delete e.opendetails,window.OCP.Files.Router.goToRoute(null,this.$route.params,e)}},async handleOpenFile(e){const t=this.nodes.find((t=>t.fileid===e));if(void 0===t)return;if(t.type===m.pt.File){const e=(0,m.qK)().filter((e=>!!e?.default)).filter((e=>!e.enabled||e.enabled([t],this.currentView))).filter((e=>"download"!==e.id)).sort(((e,t)=>(e.order||0)-(t.order||0))).at(0);if(e)return h.debug("Opening file "+t.path,{node:t}),await e.exec(t,this.currentView,this.currentFolder.path)}const s=this.$route.query;delete s.openfile,s.opendetails="",h.debug("Ignore `openfile` query and replacing with `opendetails` for "+t.path,{node:t}),await this.$router.replace({...this.$route,query:s})},onDragOver(e){const t=e.dataTransfer?.types.includes("Files");if(t)return;e.preventDefault(),e.stopPropagation();const s=this.$refs.table.$el,n=s.getBoundingClientRect().top,i=n+s.getBoundingClientRect().height;e.clientY<n+100?s.scrollTop=s.scrollTop-25:e.clientY>i-50&&(s.scrollTop=s.scrollTop+25)},onKeyDown(e){if("ArrowUp"===e.key||"ArrowDown"===e.key){const t=this.$refs.table?.columnCount??1,s=this.nodes.findIndex((e=>e.fileid===this.fileId))??0,n="ArrowUp"===e.key?s-t:s+t;if(n<0||n>=this.nodes.length)return;const i=this.nodes[n];i&&i?.fileid&&this.setActiveNode(i)}if(this.userConfig.grid_view&&("ArrowLeft"===e.key||"ArrowRight"===e.key)){const t=this.nodes.findIndex((e=>e.fileid===this.fileId))??0,s="ArrowLeft"===e.key?t-1:t+1;if(s<0||s>=this.nodes.length)return;const n=this.nodes[s];n&&n?.fileid&&this.setActiveNode(n)}},setActiveNode(e){h.debug("Navigating to file "+e.path,{node:e,fileid:e.fileid}),this.scrollToFile(e.fileid);const t={...this.$route.query};delete t.openfile,delete t.opendetails,this.activeStore.setActiveNode(e),window.OCP.Files.Router.goToRoute(null,{...this.$route.params,fileid:String(e.fileid)},t,!0)}}}),ii=ni;var ai=n(48199),ri={};ri.styleTagTransform=he(),ri.setAttributes=ue(),ri.insert=ce().bind(null,"head"),ri.domAPI=le(),ri.insertStyleElement=fe(),re()(ai.A,ri),ai.A&&ai.A.locals&&ai.A.locals;var oi=n(35887),li={};li.styleTagTransform=he(),li.setAttributes=ue(),li.insert=ce().bind(null,"head"),li.domAPI=le(),li.insertStyleElement=fe(),re()(oi.A,li),oi.A&&oi.A.locals&&oi.A.locals;const di=(0,G.A)(ii,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("VirtualList",{ref:"table",attrs:{"data-component":e.userConfig.grid_view?e.FileEntryGrid:e.FileEntry,"data-key":"source","data-sources":e.nodes,"grid-mode":e.userConfig.grid_view,"extra-props":{isMtimeAvailable:e.isMtimeAvailable,isSizeAvailable:e.isSizeAvailable,nodes:e.nodes},"scroll-to-index":e.scrollToIndex,caption:e.caption},scopedSlots:e._u([{key:"filters",fn:function(){return[t("FileListFilters")]},proxy:!0},e.isNoneSelected?null:{key:"header-overlay",fn:function(){return[t("span",{staticClass:"files-list__selected"},[e._v(e._s(e.t("files","{count} selected",{count:e.selectedNodes.length})))]),e._v(" "),t("FilesListTableHeaderActions",{attrs:{"current-view":e.currentView,"selected-nodes":e.selectedNodes}})]},proxy:!0},{key:"before",fn:function(){return e._l(e.sortedHeaders,(function(s){return t("FilesListHeader",{key:s.id,attrs:{"current-folder":e.currentFolder,"current-view":e.currentView,header:s}})}))},proxy:!0},{key:"header",fn:function(){return[t("FilesListTableHeader",{ref:"thead",attrs:{"files-list-width":e.fileListWidth,"is-mtime-available":e.isMtimeAvailable,"is-size-available":e.isSizeAvailable,nodes:e.nodes}})]},proxy:!0},{key:"footer",fn:function(){return[t("FilesListTableFooter",{attrs:{"current-view":e.currentView,"files-list-width":e.fileListWidth,"is-mtime-available":e.isMtimeAvailable,"is-size-available":e.isSizeAvailable,nodes:e.nodes,summary:e.summary}})]},proxy:!0}],null,!0)})}),[],!1,null,"fb65796a",null).exports,ci={name:"TrayArrowDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},mi=(0,G.A)(ci,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon tray-arrow-down-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,ui=(0,r.pM)({name:"DragAndDropNotice",components:{TrayArrowDownIcon:mi},props:{currentFolder:{type:Object,required:!0}},setup(){const{currentView:e}=Ie();return{currentView:e}},data:()=>({dragover:!1}),computed:{canUpload(){return this.currentFolder&&!!(this.currentFolder.permissions&m.aX.CREATE)},isQuotaExceeded(){return 0===this.currentFolder?.attributes?.["quota-available-bytes"]},cantUploadLabel(){return this.isQuotaExceeded?this.t("files","Your have used your space quota and cannot upload files anymore"):this.canUpload?null:this.t("files","You don't have permission to upload or create files here.")},resetDragOver(){return ei()((()=>{this.dragover=!1}),3e3)}},mounted(){const e=window.document.getElementById("app-content-vue");e.addEventListener("dragover",this.onDragOver),e.addEventListener("dragleave",this.onDragLeave),e.addEventListener("drop",this.onContentDrop)},beforeDestroy(){const e=window.document.getElementById("app-content-vue");e.removeEventListener("dragover",this.onDragOver),e.removeEventListener("dragleave",this.onDragLeave),e.removeEventListener("drop",this.onContentDrop)},methods:{onDragOver(e){e.preventDefault();const t=e.dataTransfer?.types.includes("Files");t&&(this.dragover=!0,this.resetDragOver())},onDragLeave(e){const t=e.currentTarget;t?.contains(e.relatedTarget??e.target)||this.dragover&&(this.dragover=!1,this.resetDragOver.clear())},onContentDrop(e){h.debug("Drag and drop cancelled, dropped on empty space",{event:e}),e.preventDefault(),this.dragover&&(this.dragover=!1,this.resetDragOver.clear())},async onDrop(e){if(this.cantUploadLabel)return void(0,u.Qg)(this.cantUploadLabel);if(this.$el.querySelector("tbody")?.contains(e.target))return;e.preventDefault(),e.stopPropagation();const t=[...e.dataTransfer?.items||[]],s=await Ht(t),n=await(this.currentView?.getContents(this.currentFolder.path)),i=n?.folder;if(!i)return void(0,u.Qg)(this.t("files","Target folder does not exist any more"));if(e.button)return;h.debug("Dropped",{event:e,folder:i,fileTree:s});const a=(await qt(s,i,n.contents)).findLast((e=>e.status!==Ye.S.FAILED&&!e.file.webkitRelativePath.includes("/")&&e.response?.headers?.["oc-fileid"]&&2===e.source.replace(i.source,"").split("/").length));if(void 0!==a){h.debug("Scrolling to last upload in current folder",{lastUpload:a});const e={path:this.$route.path,params:{...this.$route.params,fileid:String(a.response.headers["oc-fileid"])},query:{...this.$route.query}};delete e.query.openfile,this.$router.push(e)}this.dragover=!1,this.resetDragOver.clear()},t:g.Tl}});var gi=n(33797),fi={};fi.styleTagTransform=he(),fi.setAttributes=ue(),fi.insert=ce().bind(null,"head"),fi.domAPI=le(),fi.insertStyleElement=fe(),re()(gi.A,fi),gi.A&&gi.A.locals&&gi.A.locals;const pi=(0,G.A)(ui,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{directives:[{name:"show",rawName:"v-show",value:e.dragover,expression:"dragover"}],staticClass:"files-list__drag-drop-notice",attrs:{"data-cy-files-drag-drop-area":""},on:{drop:e.onDrop}},[t("div",{staticClass:"files-list__drag-drop-notice-wrapper"},[e.canUpload&&!e.isQuotaExceeded?[t("TrayArrowDownIcon",{attrs:{size:48}}),e._v(" "),t("h3",{staticClass:"files-list-drag-drop-notice__title"},[e._v("\n\t\t\t\t"+e._s(e.t("files","Drag and drop files here to upload"))+"\n\t\t\t")])]:[t("h3",{staticClass:"files-list-drag-drop-notice__title"},[e._v("\n\t\t\t\t"+e._s(e.cantUploadLabel)+"\n\t\t\t")])]],2)])}),[],!1,null,"4959a5b4",null).exports;const hi=void 0!==(0,w.F)()?.files_sharing,vi=(0,r.pM)({name:"FilesList",components:{BreadCrumbs:Jt,DragAndDropNotice:pi,FilesListVirtual:di,LinkIcon:Je.A,ListViewIcon:et,NcAppContent:tt.A,NcActions:st.A,NcActionButton:nt.A,NcButton:it.A,NcEmptyContent:at.A,NcIconSvgWrapper:Ue.A,NcLoadingIcon:rt.A,AccountPlusIcon:lt,UploadPicker:Ye.U,ViewGridIcon:ct,IconAlertCircleOutline:Ke.A,IconReload:Xe},mixins:[Dn],props:{isPublic:{type:Boolean,default:!1}},setup(){const{currentView:e}=Ie(),{directory:t,fileId:s}=ht(),n=pt(),i=Ct(),a=Me(),r=bt(),o=yt(),l=kt(),d=W(),m=ze(),u=(0,c.C)("core","config",[])["enable_non-accessible_features"]??!0,f=(0,c.C)("files","forbiddenCharacters",[]);return{currentView:e,directory:t,fileId:s,fileListWidth:n,t:g.Tl,filesStore:i,filtersStore:a,pathsStore:r,selectionStore:o,uploaderStore:l,userConfigStore:d,viewConfigStore:m,enableGridView:u,forbiddenCharacters:f,ShareType:Ge.I}},data:()=>({loading:!0,loadingAction:null,error:null,promise:null,dirContentsFiltered:[]}),computed:{getContent(){const e=this.currentView;return async t=>{const s=(0,l.normalize)(`${this.currentFolder?.path??""}/${t??""}`),n=this.filesStore.getNodesByPath(e.id,s);return n.length>0?n:(await e.getContents(s)).contents}},userConfig(){return this.userConfigStore.userConfig},pageHeading(){const e=this.currentView?.name??(0,g.Tl)("files","Files");return void 0===this.currentFolder||"/"===this.directory?e:`${this.currentFolder.displayname} - ${e}`},currentFolder(){if(!this.currentView?.id)return;if("/"===this.directory)return this.filesStore.getRoot(this.currentView.id);const e=this.pathsStore.getPath(this.currentView.id,this.directory);return void 0!==e?this.filesStore.getNode(e):void 0},dirContents(){return(this.currentFolder?._children||[]).map(this.filesStore.getNode).filter((e=>!!e))},dirContentsSorted(){if(!this.currentView)return[];const e=(this.currentView?.columns||[]).find((e=>e.id===this.sortingMode));if(e?.sort&&"function"==typeof e.sort){const t=[...this.dirContentsFiltered].sort(e.sort);return this.isAscSorting?t:t.reverse()}return(0,m.ur)(this.dirContentsFiltered,{sortFavoritesFirst:this.userConfig.sort_favorites_first,sortFoldersFirst:this.userConfig.sort_folders_first,sortingMode:this.sortingMode,sortingOrder:this.isAscSorting?"asc":"desc"})},isEmptyDir(){return 0===this.dirContents.length},isRefreshing(){return void 0!==this.currentFolder&&!this.isEmptyDir&&this.loading},toPreviousDir(){const e=this.directory.split("/").slice(0,-1).join("/")||"/";return{...this.$route,query:{dir:e}}},shareTypesAttributes(){if(this.currentFolder?.attributes?.["share-types"])return Object.values(this.currentFolder?.attributes?.["share-types"]||{}).flat()},shareButtonLabel(){return this.shareTypesAttributes?this.shareButtonType===Ge.I.Link?(0,g.Tl)("files","Shared by link"):(0,g.Tl)("files","Shared"):(0,g.Tl)("files","Share")},shareButtonType(){return this.shareTypesAttributes?this.shareTypesAttributes.some((e=>e===Ge.I.Link))?Ge.I.Link:Ge.I.User:null},gridViewButtonLabel(){return this.userConfig.grid_view?(0,g.Tl)("files","Switch to list view"):(0,g.Tl)("files","Switch to grid view")},canUpload(){return this.currentFolder&&!!(this.currentFolder.permissions&m.aX.CREATE)},isQuotaExceeded(){return 0===this.currentFolder?.attributes?.["quota-available-bytes"]},canShare(){return hi&&!this.isPublic&&this.currentFolder&&!!(this.currentFolder.permissions&m.aX.SHARE)},filtersChanged(){return this.filtersStore.filtersChanged},showCustomEmptyView(){return!this.loading&&this.isEmptyDir&&void 0!==this.currentView?.emptyView},enabledFileListActions(){if(!this.currentView||!this.currentFolder)return[];const e=(0,m.g5)().filter((e=>void 0===e.enabled||e.enabled(this.currentView,this.dirContents,this.currentFolder))).toSorted(((e,t)=>e.order-t.order));return e}},watch:{pageHeading(){document.title=`${this.pageHeading} - ${(0,w.F)().theming?.productName??"Nextcloud"}`},showCustomEmptyView(e){e&&this.$nextTick((()=>{const e=this.$refs.customEmptyView;this.currentView.emptyView(e)}))},currentView(e,t){e?.id!==t?.id&&(h.debug("View changed",{newView:e,oldView:t}),this.selectionStore.reset(),this.fetchContent())},directory(e,t){h.debug("Directory changed",{newDir:e,oldDir:t}),this.selectionStore.reset(),window.OCA.Files.Sidebar?.close&&window.OCA.Files.Sidebar.close(),this.fetchContent();const s=this.$refs?.filesListVirtual;s?.$el&&(s.$el.scrollTop=0)},dirContents(e){h.debug("Directory contents changed",{view:this.currentView,folder:this.currentFolder,contents:e}),(0,v.Ic)("files:list:updated",{view:this.currentView,folder:this.currentFolder,contents:e}),this.filterDirContent()},filtersChanged(){this.filtersChanged&&(this.filterDirContent(),this.filtersStore.filtersChanged=!1)}},async mounted(){(0,v.B1)("files:node:deleted",this.onNodeDeleted),(0,v.B1)("files:node:updated",this.onUpdatedNode),(0,v.B1)("files:config:updated",this.fetchContent),await this.fetchContent(),this.fileId&&(this.dirContents.find((e=>e.fileid.toString()===this.fileId.toString()))||this.currentFolder.fileid.toString()===this.fileId.toString()||(0,u.Qg)((0,g.Tl)("files","The file could not be found")))},unmounted(){(0,v.al)("files:node:deleted",this.onNodeDeleted),(0,v.al)("files:node:updated",this.onUpdatedNode),(0,v.al)("files:config:updated",this.fetchContent)},methods:{async fetchContent(){this.loading=!0,this.error=null;const e=this.directory,t=this.currentView;if(t){this.promise&&"cancel"in this.promise&&(this.promise.cancel(),h.debug("Cancelled previous ongoing fetch")),this.promise=t.getContents(e);try{const{folder:s,contents:n}=await this.promise;h.debug("Fetched contents",{dir:e,folder:s,contents:n}),this.filesStore.updateNodes(n),this.$set(s,"_children",n.map((e=>e.source))),"/"===e?this.filesStore.setRoot({service:t.id,root:s}):s.fileid?(this.filesStore.updateNodes([s]),this.pathsStore.addPath({service:t.id,source:s.source,path:e})):h.fatal("Invalid root folder returned",{dir:e,folder:s,currentView:t}),n.filter((e=>"folder"===e.type)).forEach((s=>{this.pathsStore.addPath({service:t.id,source:s.source,path:(0,l.join)(e,s.basename)})}))}catch(e){h.error("Error while fetching content",{error:e}),this.error=function(e){if(e instanceof Error){if(function(e){return e instanceof Error&&"status"in e&&"response"in e}(e)){const t=e.status||e.response?.status||0;if([400,404,405].includes(t))return(0,g.t)("files","Folder not found");if(403===t)return(0,g.t)("files","This operation is forbidden");if(500===t)return(0,g.t)("files","This directory is unavailable, please check the logs or contact the administrator");if(503===t)return(0,g.t)("files","Storage is temporarily not available")}return(0,g.t)("files","Unexpected error: {error}",{error:e.message})}return(0,g.t)("files","Unknown error")}(e)}finally{this.loading=!1}}else h.debug("The current view doesn't exists or is not ready.",{currentView:t})},onNodeDeleted(e){e.fileid&&e.fileid===this.fileId&&(e.fileid===this.currentFolder?.fileid?window.OCP.Files.Router.goToRoute(null,{view:this.currentView.id},{dir:this.currentFolder?.dirname??"/"}):window.OCP.Files.Router.goToRoute(null,{...this.$route.params,fileid:void 0},{...this.$route.query,openfile:void 0}))},onUpload(e){(0,l.dirname)(e.source)===this.currentFolder.source&&this.fetchContent()},async onUploadFail(e){const t=e.response?.status||0;if(e.status!==Ye.S.CANCELLED)if(507!==t)if(404!==t&&409!==t)if(403!==t){if("string"==typeof e.response?.data)try{const t=(new DOMParser).parseFromString(e.response.data,"text/xml"),s=t.getElementsByTagName("s:message")[0]?.textContent??"";if(""!==s.trim())return void(0,u.Qg)((0,g.Tl)("files","Error during upload: {message}",{message:s}))}catch(e){h.error("Could not parse message",{error:e})}0===t?(0,u.Qg)((0,g.Tl)("files","Unknown error during upload")):(0,u.Qg)((0,g.Tl)("files","Error during upload, status code {status}",{status:t}))}else(0,u.Qg)((0,g.Tl)("files","Operation is blocked by access control"));else(0,u.Qg)((0,g.Tl)("files","Target folder does not exist any more"));else(0,u.Qg)((0,g.Tl)("files","Not enough free space"));else(0,u.I9)((0,g.Tl)("files","Upload was cancelled by user"))},onUpdatedNode(e){e?.fileid===this.currentFolder?.fileid&&this.fetchContent()},openSharingSidebar(){this.currentFolder?(window?.OCA?.Files?.Sidebar?.setActiveTab&&window.OCA.Files.Sidebar.setActiveTab("sharing"),j.exec(this.currentFolder,this.currentView,this.currentFolder.path)):h.debug("No current folder found for opening sharing sidebar")},toggleGridView(){this.userConfigStore.update("grid_view",!this.userConfig.grid_view)},filterDirContent(){let e=this.dirContents;for(const t of this.filtersStore.sortedFilters)e=t.filter(e);this.dirContentsFiltered=e},actionDisplayName(e){let t=e.id;try{t=e.displayName(this.currentView)}catch(t){h.error("Error while getting action display name",{action:e,error:t})}return t},async execFileListAction(e){this.loadingAction=e.id;const t=this.actionDisplayName(e);try{const s=await e.exec(this.source,this.dirContents,this.currentDir);if(null==s)return;if(s)return void(0,u.Te)((0,g.Tl)("files",'"{displayName}" action executed successfully',{displayName:t}));(0,u.Qg)((0,g.Tl)("files",'"{displayName}" action failed',{displayName:t}))}catch(s){h.error("Error while executing action",{action:e,error:s}),(0,u.Qg)((0,g.Tl)("files",'"{displayName}" action failed',{displayName:t}))}finally{this.loadingAction=null}}}}),wi=vi;var Ai=n(78636),bi={};bi.styleTagTransform=he(),bi.setAttributes=ue(),bi.insert=ce().bind(null,"head"),bi.domAPI=le(),bi.insertStyleElement=fe(),re()(Ai.A,bi),Ai.A&&Ai.A.locals&&Ai.A.locals;var Ci=(0,G.A)(wi,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcAppContent",{attrs:{"page-heading":e.pageHeading,"data-cy-files-content":""}},[t("div",{staticClass:"files-list__header",class:{"files-list__header--public":e.isPublic}},[t("BreadCrumbs",{attrs:{path:e.directory},on:{reload:e.fetchContent},scopedSlots:e._u([{key:"actions",fn:function(){return[e.canShare&&e.fileListWidth>=512?t("NcButton",{staticClass:"files-list__header-share-button",class:{"files-list__header-share-button--shared":e.shareButtonType},attrs:{"aria-label":e.shareButtonLabel,title:e.shareButtonLabel,type:"tertiary"},on:{click:e.openSharingSidebar},scopedSlots:e._u([{key:"icon",fn:function(){return[e.shareButtonType===e.ShareType.Link?t("LinkIcon"):t("AccountPlusIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,4106306959)}):e._e(),e._v(" "),e.canUpload&&!e.isQuotaExceeded&&e.currentFolder?t("UploadPicker",{staticClass:"files-list__header-upload-button",attrs:{"allow-folders":"",content:e.getContent,destination:e.currentFolder,"forbidden-characters":e.forbiddenCharacters,multiple:""},on:{failed:e.onUploadFail,uploaded:e.onUpload}}):e._e()]},proxy:!0}])}),e._v(" "),e.isRefreshing?t("NcLoadingIcon",{staticClass:"files-list__refresh-icon"}):e._e(),e._v(" "),t("NcActions",{staticClass:"files-list__header-actions",attrs:{inline:1,type:"tertiary","force-name":""}},e._l(e.enabledFileListActions,(function(s){return t("NcActionButton",{key:s.id,attrs:{disabled:!!e.loadingAction,"data-cy-files-list-action":s.id,"close-after-click":""},on:{click:function(t){return e.execFileListAction(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loadingAction===s.id?t("NcLoadingIcon",{attrs:{size:18}}):void 0!==s.iconSvgInline&&e.currentView?t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline(e.currentView)}}):e._e()]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(e.actionDisplayName(s))+"\n\t\t\t")])})),1),e._v(" "),e.fileListWidth>=512&&e.enableGridView?t("NcButton",{staticClass:"files-list__header-grid-button",attrs:{"aria-label":e.gridViewButtonLabel,title:e.gridViewButtonLabel,type:"tertiary"},on:{click:e.toggleGridView},scopedSlots:e._u([{key:"icon",fn:function(){return[e.userConfig.grid_view?t("ListViewIcon"):t("ViewGridIcon")]},proxy:!0}],null,!1,1682960703)}):e._e()],1),e._v(" "),!e.loading&&e.canUpload?t("DragAndDropNotice",{attrs:{"current-folder":e.currentFolder}}):e._e(),e._v(" "),e.loading&&!e.isRefreshing?t("NcLoadingIcon",{staticClass:"files-list__loading-icon",attrs:{size:38,name:e.t("files","Loading current folder")}}):!e.loading&&e.isEmptyDir?[e.error?t("NcEmptyContent",{attrs:{name:e.error,"data-cy-files-content-error":""},scopedSlots:e._u([{key:"action",fn:function(){return[t("NcButton",{attrs:{type:"secondary"},on:{click:e.fetchContent},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconReload",{attrs:{size:20}})]},proxy:!0}],null,!1,3448385010)},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Retry"))+"\n\t\t\t\t")])]},proxy:!0},{key:"icon",fn:function(){return[t("IconAlertCircleOutline")]},proxy:!0}],null,!1,2673163798)}):e.currentView?.emptyView?t("div",{staticClass:"files-list__empty-view-wrapper"},[t("div",{ref:"customEmptyView"})]):t("NcEmptyContent",{attrs:{name:e.currentView?.emptyTitle||e.t("files","No files in here"),description:e.currentView?.emptyCaption||e.t("files","Upload some content or sync with your devices!"),"data-cy-files-content-empty":""},scopedSlots:e._u(["/"!==e.directory?{key:"action",fn:function(){return[e.canUpload&&!e.isQuotaExceeded?t("UploadPicker",{staticClass:"files-list__header-upload-button",attrs:{"allow-folders":"",content:e.getContent,destination:e.currentFolder,"forbidden-characters":e.forbiddenCharacters,multiple:""},on:{failed:e.onUploadFail,uploaded:e.onUpload}}):t("NcButton",{attrs:{to:e.toPreviousDir,type:"primary"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Go back"))+"\n\t\t\t\t")])]},proxy:!0}:null,{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:e.currentView.icon}})]},proxy:!0}],null,!0)})]:t("FilesListVirtual",{ref:"filesListVirtual",attrs:{"current-folder":e.currentFolder,"current-view":e.currentView,nodes:e.dirContentsSorted}})],2)}),[],!1,null,"693703cc",null);const yi=Ci.exports,xi=(0,r.pM)({name:"FilesApp",components:{NcContent:H.A,FilesList:yi,Navigation:qe},setup:()=>({isPublic:(0,F.f)()})}),ki=(0,G.A)(xi,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcContent",{attrs:{"app-name":"files"}},[e.isPublic?e._e():t("Navigation"),e._v(" "),t("FilesList",{attrs:{"is-public":e.isPublic}})],1)}),[],!1,null,null,null).exports;var _i=n(82490),Ti=n(40173);r.Ay.use(Ti.Ay);const Si=Ti.Ay.prototype.push;Ti.Ay.prototype.push=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.length>1?Si.call(this,...t):Si.call(this,t[0]).catch(Ni)};const Li=Ti.Ay.prototype.replace;function Ni(e){if(!(0,Ti.Pq)(e,Ti.$c.duplicated))throw e;h.debug("Ignoring duplicated navigation from vue-router",{error:e})}Ti.Ay.prototype.replace=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.length>1?Li.call(this,...t):Li.call(this,t[0]).catch(Ni)};const Fi=new Ti.Ay({mode:"history",base:(0,N.Jv)("/apps/files"),linkActiveClass:"active",routes:[{path:"/",redirect:{name:"filelist",params:{view:"files"}}},{path:"/:view/:fileid(\\d+)?",name:"filelist",props:!0}],stringifyQuery(e){const t=_i.A.stringify(e).replace(/%2F/gim,"/");return t?"?"+t:""}});class Ei{constructor(e){(function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s})(this,"router",void 0),this.router=e}get name(){return this.router.currentRoute.name}get query(){return this.router.currentRoute.query||{}}get params(){return this.router.currentRoute.params||{}}get _router(){return this.router}goTo(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.router.push({path:e,replace:t})}goToRoute(e,t,s,n){return this.router.push({name:e,query:s,params:t,replace:n})}}function Ui(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}if(n.nc=(0,i.aV)(),window.OCA.Files=window.OCA.Files??{},window.OCP.Files=window.OCP.Files??{},!window.OCP.Files.Router){const e=new Ei(Fi);Object.assign(window.OCP.Files,{Router:e})}r.Ay.use(a.R2),(0,d.C)("d",(()=>V(j)),{stop:!0,prevent:!0}),(0,d.C)("F2",(()=>V(O)),{stop:!0,prevent:!0}),(0,d.C)("s",(()=>V(B)),{stop:!0,prevent:!0}),(0,d.C)("Delete",(()=>V(S)),{stop:!0,prevent:!0}),(0,d.C)("ArrowUp",(function(){const e=window.OCP.Files.Router?.params||{},t=window.OCP.Files.Router?.query||{},s=t?.dir||"/",n=(0,l.dirname)(s);h.debug("Navigating to parent directory",{parentDir:n}),window.OCP.Files.Router.goToRoute(null,{...e},{...t,dir:n})}),{stop:!0,prevent:!0,alt:!0}),(0,d.C)("v",(function(){const e=W(),t=e?.userConfig?.grid_view;h.debug("Toggling grid view",{old:t,new:!t}),e.update("grid_view",!t)}),{stop:!0,prevent:!0}),h.debug("Hotkeys registered");const Ii=new class{constructor(){(function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s})(this,"_settings",void 0),this._settings=[],console.debug("OCA.Files.Settings initialized")}register(e){return this._settings.filter((t=>t.name===e.name)).length>0?(console.error("A setting with the same name is already registered"),!1):(this._settings.push(e),!0)}get settings(){return this._settings}};Object.assign(window.OCA.Files,{Settings:Ii}),Object.assign(window.OCA.Files.Settings,{Setting:class{constructor(e,t){let{el:s,open:n,close:i}=t;Ui(this,"_close",void 0),Ui(this,"_el",void 0),Ui(this,"_name",void 0),Ui(this,"_open",void 0),this._name=e,this._el=s,this._open=n,this._close=i,"function"!=typeof this._open&&(this._open=()=>{}),"function"!=typeof this._close&&(this._close=()=>{})}get name(){return this._name}get el(){return this._el}get open(){return this._open}get close(){return this._close}}}),new(r.Ay.extend(ki))({router:window.OCP.Files.Router._router,pinia:o()}).$mount("#content")},19305:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list__breadcrumbs[data-v-04abfffa]{flex:1 1 100% !important;width:100%;height:100%;margin-block:0;margin-inline:10px;min-width:0}.files-list__breadcrumbs[data-v-04abfffa] a{cursor:pointer !important}.files-list__breadcrumbs--with-progress[data-v-04abfffa]{flex-direction:column !important;align-items:flex-start !important}","",{version:3,sources:["webpack://./apps/files/src/components/BreadCrumbs.vue"],names:[],mappings:"AACA,0CAEC,wBAAA,CACA,UAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,WAAA,CAGC,6CACC,yBAAA,CAIF,yDACC,gCAAA,CACA,iCAAA",sourcesContent:["\n.files-list__breadcrumbs {\n\t// Take as much space as possible\n\tflex: 1 1 100% !important;\n\twidth: 100%;\n\theight: 100%;\n\tmargin-block: 0;\n\tmargin-inline: 10px;\n\tmin-width: 0;\n\n\t:deep() {\n\t\ta {\n\t\t\tcursor: pointer !important;\n\t\t}\n\t}\n\n\t&--with-progress {\n\t\tflex-direction: column !important;\n\t\talign-items: flex-start !important;\n\t}\n}\n"],sourceRoot:""}]);const o=r},33797:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list__drag-drop-notice[data-v-4959a5b4]{display:flex;align-items:center;justify-content:center;width:100%;min-height:113px;margin:0;user-select:none;color:var(--color-text-maxcontrast);background-color:var(--color-main-background);border-color:#000}.files-list__drag-drop-notice h3[data-v-4959a5b4]{margin-inline-start:16px;color:inherit}.files-list__drag-drop-notice-wrapper[data-v-4959a5b4]{display:flex;align-items:center;justify-content:center;height:15vh;max-height:70%;padding:0 5vw;border:2px var(--color-border-dark) dashed;border-radius:var(--border-radius-large)}","",{version:3,sources:["webpack://./apps/files/src/components/DragAndDropNotice.vue"],names:[],mappings:"AACA,+CACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CAEA,gBAAA,CACA,QAAA,CACA,gBAAA,CACA,mCAAA,CACA,6CAAA,CACA,iBAAA,CAEA,kDACC,wBAAA,CACA,aAAA,CAGD,uDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,aAAA,CACA,0CAAA,CACA,wCAAA",sourcesContent:["\n.files-list__drag-drop-notice {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 100%;\n\t// Breadcrumbs height + row thead height\n\tmin-height: calc(58px + 55px);\n\tmargin: 0;\n\tuser-select: none;\n\tcolor: var(--color-text-maxcontrast);\n\tbackground-color: var(--color-main-background);\n\tborder-color: black;\n\n\th3 {\n\t\tmargin-inline-start: 16px;\n\t\tcolor: inherit;\n\t}\n\n\t&-wrapper {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\theight: 15vh;\n\t\tmax-height: 70%;\n\t\tpadding: 0 5vw;\n\t\tborder: 2px var(--color-border-dark) dashed;\n\t\tborder-radius: var(--border-radius-large);\n\t}\n}\n\n"],sourceRoot:""}]);const o=r},20768:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list-drag-image{position:absolute;top:-9999px;inset-inline-start:-9999px;display:flex;overflow:hidden;align-items:center;height:44px;padding:6px 12px;background:var(--color-main-background)}.files-list-drag-image__icon,.files-list-drag-image .files-list__row-icon{display:flex;overflow:hidden;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--border-radius)}.files-list-drag-image__icon{overflow:visible;margin-inline-end:12px}.files-list-drag-image__icon img{max-width:100%;max-height:100%}.files-list-drag-image__icon .material-design-icon{color:var(--color-text-maxcontrast)}.files-list-drag-image__icon .material-design-icon.folder-icon{color:var(--color-primary-element)}.files-list-drag-image__icon>span{display:flex}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon{margin-top:6px;margin-inline-start:-26px}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon+.files-list__row-icon{margin-top:12px}.files-list-drag-image__icon>span:not(:empty)+*{display:none}.files-list-drag-image__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}","",{version:3,sources:["webpack://./apps/files/src/components/DragAndDropPreview.vue"],names:[],mappings:"AAIA,uBACC,iBAAA,CACA,WAAA,CACA,0BAAA,CACA,YAAA,CACA,eAAA,CACA,kBAAA,CACA,WAAA,CACA,gBAAA,CACA,uCAAA,CAEA,0EAEC,YAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,kCAAA,CAGD,6BACC,gBAAA,CACA,sBAAA,CAEA,iCACC,cAAA,CACA,eAAA,CAGD,mDACC,mCAAA,CACA,+DACC,kCAAA,CAKF,kCACC,YAAA,CAGA,8EACC,cA9CU,CA+CV,yBAAA,CACA,oGACC,eAAA,CAKF,gDACC,YAAA,CAKH,6BACC,eAAA,CACA,kBAAA,CACA,sBAAA",sourcesContent:["\n$size: 32px;\n$stack-shift: 6px;\n\n.files-list-drag-image {\n\tposition: absolute;\n\ttop: -9999px;\n\tinset-inline-start: -9999px;\n\tdisplay: flex;\n\toverflow: hidden;\n\talign-items: center;\n\theight: 44px;\n\tpadding: 6px 12px;\n\tbackground: var(--color-main-background);\n\n\t&__icon,\n\t.files-list__row-icon {\n\t\tdisplay: flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tborder-radius: var(--border-radius);\n\t}\n\n\t&__icon {\n\t\toverflow: visible;\n\t\tmargin-inline-end: 12px;\n\n\t\timg {\n\t\t\tmax-width: 100%;\n\t\t\tmax-height: 100%;\n\t\t}\n\n\t\t.material-design-icon {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t&.folder-icon {\n\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t}\n\t\t}\n\n\t\t// Previews container\n\t\t> span {\n\t\t\tdisplay: flex;\n\n\t\t\t// Stack effect if more than one element\n\t\t\t.files-list__row-icon + .files-list__row-icon {\n\t\t\t\tmargin-top: $stack-shift;\n\t\t\t\tmargin-inline-start: $stack-shift - $size;\n\t\t\t\t& + .files-list__row-icon {\n\t\t\t\t\tmargin-top: $stack-shift * 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If we have manually clone the preview,\n\t\t\t// let's hide any fallback icons\n\t\t\t&:not(:empty) + * {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n"],sourceRoot:""}]);const o=r},4575:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".favorite-marker-icon[data-v-f2d0cf6e]{color:var(--color-favorite);min-width:unset !important;min-height:unset !important}.favorite-marker-icon[data-v-f2d0cf6e] svg{width:26px !important;height:26px !important;max-width:unset !important;max-height:unset !important}.favorite-marker-icon[data-v-f2d0cf6e] svg path{stroke:var(--color-main-background);stroke-width:8px;stroke-linejoin:round;paint-order:stroke}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FavoriteIcon.vue"],names:[],mappings:"AACA,uCACC,2BAAA,CAEA,0BAAA,CACG,2BAAA,CAGF,4CAEC,qBAAA,CACA,sBAAA,CAGA,0BAAA,CACA,2BAAA,CAGA,iDACC,mCAAA,CACA,gBAAA,CACA,qBAAA,CACA,kBAAA",sourcesContent:["\n.favorite-marker-icon {\n\tcolor: var(--color-favorite);\n\t// Override NcIconSvgWrapper defaults (clickable area)\n\tmin-width: unset !important;\n min-height: unset !important;\n\n\t:deep() {\n\t\tsvg {\n\t\t\t// We added a stroke for a11y so we must increase the size to include the stroke\n\t\t\twidth: 26px !important;\n\t\t\theight: 26px !important;\n\n\t\t\t// Override NcIconSvgWrapper defaults of 20px\n\t\t\tmax-width: unset !important;\n\t\t\tmax-height: unset !important;\n\n\t\t\t// Sow a border around the icon for better contrast\n\t\t\tpath {\n\t\t\t\tstroke: var(--color-main-background);\n\t\t\t\tstroke-width: 8px;\n\t\t\t\tstroke-linejoin: round;\n\t\t\t\tpaint-order: stroke;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=r},29788:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,"main.app-content[style*=mouse-pos-x] .v-popper__popper{transform:translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper[data-popper-placement=top]{transform:translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper .v-popper__arrow-container{display:none}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue"],names:[],mappings:"AAGA,uDACC,6EAAA,CAGA,kFAEC,iGAAA,CAGD,kFACC,YAAA",sourcesContent:['\n// Allow right click to define the position of the menu\n// only if defined\nmain.app-content[style*="mouse-pos-x"] .v-popper__popper {\n\ttransform: translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important;\n\n\t// If the menu is too close to the bottom, we move it up\n\t&[data-popper-placement="top"] {\n\t\t// 34px added to align with the top of the cursor\n\t\ttransform: translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important;\n\t}\n\t// Hide arrow if floating\n\t.v-popper__arrow-container {\n\t\tdisplay: none;\n\t}\n}\n'],sourceRoot:""}]);const o=r},40304:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,"[data-v-5ba570cc] .button-vue--icon-and-text .button-vue__text{color:var(--color-primary-element)}[data-v-5ba570cc] .button-vue--icon-and-text .button-vue__icon{color:var(--color-primary-element)}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue"],names:[],mappings:"AAEC,+DACC,kCAAA,CAED,+DACC,kCAAA",sourcesContent:["\n:deep(.button-vue--icon-and-text, .files-list__row-action-sharing-status) {\n\t.button-vue__text {\n\t\tcolor: var(--color-primary-element);\n\t}\n\t.button-vue__icon {\n\t\tcolor: var(--color-primary-element);\n\t}\n}\n"],sourceRoot:""}]);const o=r},29629:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,"button.files-list__row-name-link[data-v-c8581214]{background-color:unset;border:none;font-weight:normal}button.files-list__row-name-link[data-v-c8581214]:active{background-color:unset !important}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FileEntryName.vue"],names:[],mappings:"AACA,kDACC,sBAAA,CACA,WAAA,CACA,kBAAA,CAEA,yDAEC,iCAAA",sourcesContent:["\nbutton.files-list__row-name-link {\n\tbackground-color: unset;\n\tborder: none;\n\tfont-weight: normal;\n\n\t&:active {\n\t\t// No active styles - handled by the row entry\n\t\tbackground-color: unset !important;\n\t}\n}\n"],sourceRoot:""}]);const o=r},3085:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".file-list-filters[data-v-bd0c8440]{display:flex;flex-direction:column;gap:var(--default-grid-baseline);height:100%;width:100%}.file-list-filters__filter[data-v-bd0c8440]{display:flex;align-items:start;justify-content:start;gap:calc(var(--default-grid-baseline, 4px)*2)}.file-list-filters__filter>*[data-v-bd0c8440]{flex:0 1 fit-content}.file-list-filters__active[data-v-bd0c8440]{display:flex;flex-direction:row;gap:calc(var(--default-grid-baseline, 4px)*2)}","",{version:3,sources:["webpack://./apps/files/src/components/FileListFilters.vue"],names:[],mappings:"AACA,oCACC,YAAA,CACA,qBAAA,CACA,gCAAA,CACA,WAAA,CACA,UAAA,CAEA,4CACC,YAAA,CACA,iBAAA,CACA,qBAAA,CACA,6CAAA,CAEA,8CACC,oBAAA,CAIF,4CACC,YAAA,CACA,kBAAA,CACA,6CAAA",sourcesContent:["\n.file-list-filters {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--default-grid-baseline);\n\theight: 100%;\n\twidth: 100%;\n\n\t&__filter {\n\t\tdisplay: flex;\n\t\talign-items: start;\n\t\tjustify-content: start;\n\t\tgap: calc(var(--default-grid-baseline, 4px) * 2);\n\n\t\t> * {\n\t\t\tflex: 0 1 fit-content;\n\t\t}\n\t}\n\n\t&__active {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tgap: calc(var(--default-grid-baseline, 4px) * 2);\n\t}\n}\n"],sourceRoot:""}]);const o=r},23718:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,"tr[data-v-5103b354]{margin-bottom:var(--body-container-margin);border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}tr td[data-v-5103b354]{user-select:none;color:var(--color-text-maxcontrast) !important}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableFooter.vue"],names:[],mappings:"AAEA,oBACC,0CAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAEA,uBACC,gBAAA,CAEA,8CAAA",sourcesContent:["\n// Scoped row\ntr {\n\tmargin-bottom: var(--body-container-margin);\n\tborder-top: 1px solid var(--color-border);\n\t// Prevent hover effect on the whole row\n\tbackground-color: transparent !important;\n\tborder-bottom: none !important;\n\n\ttd {\n\t\tuser-select: none;\n\t\t// Make sure the cell colors don't apply to column headers\n\t\tcolor: var(--color-text-maxcontrast) !important;\n\t}\n}\n"],sourceRoot:""}]);const o=r},89937:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list__column[data-v-2790ede2]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-2790ede2]{cursor:pointer}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableHeader.vue"],names:[],mappings:"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA",sourcesContent:["\n.files-list__column {\n\tuser-select: none;\n\t// Make sure the cell colors don't apply to column headers\n\tcolor: var(--color-text-maxcontrast) !important;\n\n\t&--sortable {\n\t\tcursor: pointer;\n\t}\n}\n\n"],sourceRoot:""}]);const o=r},2681:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list__row-actions-batch[data-v-22469fbb]{flex:1 1 100% !important;max-width:100%}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableHeaderActions.vue"],names:[],mappings:"AACA,gDACC,wBAAA,CACA,cAAA",sourcesContent:["\n.files-list__row-actions-batch {\n\tflex: 1 1 100% !important;\n\tmax-width: 100%;\n}\n"],sourceRoot:""}]);const o=r},64800:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list__column-sort-button[data-v-6d7680f0]{margin:0 calc(var(--button-padding, var(--cell-margin))*-1);min-width:calc(100% - 3*var(--cell-margin)) !important}.files-list__column-sort-button-text[data-v-6d7680f0]{color:var(--color-text-maxcontrast);font-weight:normal}.files-list__column-sort-button-icon[data-v-6d7680f0]{color:var(--color-text-maxcontrast);opacity:0;transition:opacity var(--animation-quick);inset-inline-start:-10px}.files-list__column-sort-button--size .files-list__column-sort-button-icon[data-v-6d7680f0]{inset-inline-start:10px}.files-list__column-sort-button--active .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:hover .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:focus .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:active .files-list__column-sort-button-icon[data-v-6d7680f0]{opacity:1}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableHeaderButton.vue"],names:[],mappings:"AACA,iDAEC,2DAAA,CACA,sDAAA,CAEA,sDACC,mCAAA,CACA,kBAAA,CAGD,sDACC,mCAAA,CACA,SAAA,CACA,yCAAA,CACA,wBAAA,CAGD,4FACC,uBAAA,CAGD,mXAIC,SAAA",sourcesContent:["\n.files-list__column-sort-button {\n\t// Compensate for cells margin\n\tmargin: 0 calc(var(--button-padding, var(--cell-margin)) * -1);\n\tmin-width: calc(100% - 3 * var(--cell-margin))!important;\n\n\t&-text {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tfont-weight: normal;\n\t}\n\n\t&-icon {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\topacity: 0;\n\t\ttransition: opacity var(--animation-quick);\n\t\tinset-inline-start: -10px;\n\t}\n\n\t&--size &-icon {\n\t\tinset-inline-start: 10px;\n\t}\n\n\t&--active &-icon,\n\t&:hover &-icon,\n\t&:focus &-icon,\n\t&:active &-icon {\n\t\topacity: 1;\n\t}\n}\n"],sourceRoot:""}]);const o=r},48199:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list[data-v-fb65796a]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: var(--default-clickable-area);--icon-preview-size: 32px;--fixed-block-start-position: var(--default-clickable-area);overflow:auto;height:100%;will-change:scroll-position}.files-list[data-v-fb65796a]:has(.file-list-filters__active){--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small))}.files-list[data-v-fb65796a] tbody{will-change:padding;contain:layout paint style;display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-fb65796a] tbody tr{contain:strict}.files-list[data-v-fb65796a] tbody tr:hover,.files-list[data-v-fb65796a] tbody tr:focus{background-color:var(--color-background-dark)}.files-list[data-v-fb65796a] .files-list__before{display:flex;flex-direction:column}.files-list[data-v-fb65796a] .files-list__selected{padding-inline-end:12px;white-space:nowrap}.files-list[data-v-fb65796a] .files-list__table{display:block}.files-list[data-v-fb65796a] .files-list__table.files-list__table--with-thead-overlay{margin-block-start:calc(-1*var(--row-height))}.files-list[data-v-fb65796a] .files-list__filters{position:sticky;top:0;background-color:var(--color-main-background);z-index:10;padding-inline:var(--row-height) var(--default-grid-baseline, 4px);height:var(--fixed-block-start-position);width:100%}.files-list[data-v-fb65796a] .files-list__thead-overlay{position:sticky;top:var(--fixed-block-start-position);margin-inline-start:var(--row-height);z-index:20;display:flex;align-items:center;background-color:var(--color-main-background);border-block-end:1px solid var(--color-border);height:var(--row-height)}.files-list[data-v-fb65796a] .files-list__thead,.files-list[data-v-fb65796a] .files-list__tfoot{display:flex;flex-direction:column;width:100%;background-color:var(--color-main-background)}.files-list[data-v-fb65796a] .files-list__thead{position:sticky;z-index:10;top:var(--fixed-block-start-position)}.files-list[data-v-fb65796a] tr{position:relative;display:flex;align-items:center;width:100%;border-block-end:1px solid var(--color-border);box-sizing:border-box;user-select:none;height:var(--row-height)}.files-list[data-v-fb65796a] td,.files-list[data-v-fb65796a] th{display:flex;align-items:center;flex:0 0 auto;justify-content:start;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-fb65796a] td span,.files-list[data-v-fb65796a] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-fb65796a] .files-list__row--failed{position:absolute;display:block;top:0;inset-inline:0;bottom:0;opacity:.1;z-index:-1;background:var(--color-error)}.files-list[data-v-fb65796a] .files-list__row-checkbox{justify-content:center}.files-list[data-v-fb65796a] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-fb65796a] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-fb65796a] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-fb65796a] .files-list__row:hover,.files-list[data-v-fb65796a] .files-list__row:focus,.files-list[data-v-fb65796a] .files-list__row:active,.files-list[data-v-fb65796a] .files-list__row--active,.files-list[data-v-fb65796a] .files-list__row--dragover{background-color:var(--color-background-hover);--color-text-maxcontrast: var(--color-main-text)}.files-list[data-v-fb65796a] .files-list__row:hover>*,.files-list[data-v-fb65796a] .files-list__row:focus>*,.files-list[data-v-fb65796a] .files-list__row:active>*,.files-list[data-v-fb65796a] .files-list__row--active>*,.files-list[data-v-fb65796a] .files-list__row--dragover>*{--color-border: var(--color-border-dark)}.files-list[data-v-fb65796a] .files-list__row:hover .favorite-marker-icon svg path,.files-list[data-v-fb65796a] .files-list__row:focus .favorite-marker-icon svg path,.files-list[data-v-fb65796a] .files-list__row:active .favorite-marker-icon svg path,.files-list[data-v-fb65796a] .files-list__row--active .favorite-marker-icon svg path,.files-list[data-v-fb65796a] .files-list__row--dragover .favorite-marker-icon svg path{stroke:var(--color-background-hover)}.files-list[data-v-fb65796a] .files-list__row--dragover *{pointer-events:none}.files-list[data-v-fb65796a] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-inline-end:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-fb65796a] .files-list__row-icon *{cursor:pointer}.files-list[data-v-fb65796a] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-fb65796a] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-fb65796a] .files-list__row-icon>span.folder-icon,.files-list[data-v-fb65796a] .files-list__row-icon>span.folder-open-icon{margin:-3px}.files-list[data-v-fb65796a] .files-list__row-icon>span.folder-icon svg,.files-list[data-v-fb65796a] .files-list__row-icon>span.folder-open-icon svg{width:calc(var(--icon-preview-size) + 6px);height:calc(var(--icon-preview-size) + 6px)}.files-list[data-v-fb65796a] .files-list__row-icon-preview-container{position:relative;overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius)}.files-list[data-v-fb65796a] .files-list__row-icon-blurhash{position:absolute;inset-block-start:0;inset-inline-start:0;height:100%;width:100%;object-fit:cover}.files-list[data-v-fb65796a] .files-list__row-icon-preview{object-fit:contain;object-position:center;height:100%;width:100%}.files-list[data-v-fb65796a] .files-list__row-icon-preview:not(.files-list__row-icon-preview--loaded){background:var(--color-loading-dark)}.files-list[data-v-fb65796a] .files-list__row-icon-favorite{position:absolute;top:0px;inset-inline-end:-10px}.files-list[data-v-fb65796a] .files-list__row-icon-overlay{position:absolute;max-height:calc(var(--icon-preview-size)*.5);max-width:calc(var(--icon-preview-size)*.5);color:var(--color-primary-element-text);margin-block-start:2px}.files-list[data-v-fb65796a] .files-list__row-icon-overlay--file{color:var(--color-main-text);background:var(--color-main-background);border-radius:100%}.files-list[data-v-fb65796a] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-fb65796a] .files-list__row-name button.files-list__row-name-link{display:flex;align-items:center;text-align:start;width:100%;height:100%;min-width:0;margin:0;padding:0}.files-list[data-v-fb65796a] .files-list__row-name button.files-list__row-name-link:focus-visible{outline:none !important}.files-list[data-v-fb65796a] .files-list__row-name button.files-list__row-name-link:focus .files-list__row-name-text{outline:var(--border-width-input-focused) solid var(--color-main-text) !important;border-radius:var(--border-radius-element)}.files-list[data-v-fb65796a] .files-list__row-name button.files-list__row-name-link:focus:not(:focus-visible) .files-list__row-name-text{outline:none !important}.files-list[data-v-fb65796a] .files-list__row-name .files-list__row-name-text{color:var(--color-main-text);padding:var(--default-grid-baseline) calc(2*var(--default-grid-baseline));padding-inline-start:-10px;display:inline-flex}.files-list[data-v-fb65796a] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast);overflow:visible}.files-list[data-v-fb65796a] .files-list__row-rename{width:100%;max-width:600px}.files-list[data-v-fb65796a] .files-list__row-rename input{width:100%;margin-inline-start:-8px;padding:2px 6px;border-width:2px}.files-list[data-v-fb65796a] .files-list__row-rename input:invalid{border-color:var(--color-error);color:red}.files-list[data-v-fb65796a] .files-list__row-actions{width:auto}.files-list[data-v-fb65796a] .files-list__row-actions~td,.files-list[data-v-fb65796a] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-fb65796a] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-fb65796a] .files-list__row-action--inline{margin-inline-end:7px}.files-list[data-v-fb65796a] .files-list__row-mtime,.files-list[data-v-fb65796a] .files-list__row-size{color:var(--color-text-maxcontrast)}.files-list[data-v-fb65796a] .files-list__row-size{width:calc(var(--row-height)*1.5);justify-content:flex-end}.files-list[data-v-fb65796a] .files-list__row-mtime{width:calc(var(--row-height)*2)}.files-list[data-v-fb65796a] .files-list__row-column-custom{width:calc(var(--row-height)*2)}@media screen and (max-width: 512px){.files-list[data-v-fb65796a] .files-list__filters{padding-inline:var(--default-grid-baseline, 4px)}}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListVirtual.vue"],names:[],mappings:"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",sourcesContent:["\n.files-list {\n\t--row-height: 55px;\n\t--cell-margin: 14px;\n\n\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\n\t--checkbox-size: 24px;\n\t--clickable-area: var(--default-clickable-area);\n\t--icon-preview-size: 32px;\n\n\t--fixed-block-start-position: var(--default-clickable-area);\n\toverflow: auto;\n\theight: 100%;\n\twill-change: scroll-position;\n\n\t&:has(.file-list-filters__active) {\n\t\t--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small));\n\t}\n\n\t& :deep() {\n\t\t// Table head, body and footer\n\t\ttbody {\n\t\t\twill-change: padding;\n\t\t\tcontain: layout paint style;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\t// Necessary for virtual scrolling absolute\n\t\t\tposition: relative;\n\n\t\t\t/* Hover effect on tbody lines only */\n\t\t\ttr {\n\t\t\t\tcontain: strict;\n\t\t\t\t&:hover,\n\t\t\t\t&:focus {\n\t\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Before table and thead\n\t\t.files-list__before {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t}\n\n\t\t.files-list__selected {\n\t\t\tpadding-inline-end: 12px;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t.files-list__table {\n\t\t\tdisplay: block;\n\n\t\t\t&.files-list__table--with-thead-overlay {\n\t\t\t\t// Hide the table header below the overlay\n\t\t\t\tmargin-block-start: calc(-1 * var(--row-height));\n\t\t\t}\n\t\t}\n\n\t\t.files-list__filters {\n\t\t\t// Pinned on top when scrolling above table header\n\t\t\tposition: sticky;\n\t\t\ttop: 0;\n\t\t\t// ensure there is a background to hide the file list on scroll\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tz-index: 10;\n\t\t\t// fixed the size\n\t\t\tpadding-inline: var(--row-height) var(--default-grid-baseline, 4px);\n\t\t\theight: var(--fixed-block-start-position);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.files-list__thead-overlay {\n\t\t\t// Pinned on top when scrolling\n\t\t\tposition: sticky;\n\t\t\ttop: var(--fixed-block-start-position);\n\t\t\t// Save space for a row checkbox\n\t\t\tmargin-inline-start: var(--row-height);\n\t\t\t// More than .files-list__thead\n\t\t\tz-index: 20;\n\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\t// Reuse row styles\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-block-end: 1px solid var(--color-border);\n\t\t\theight: var(--row-height);\n\t\t}\n\n\t\t.files-list__thead,\n\t\t.files-list__tfoot {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t}\n\n\t\t// Table header\n\t\t.files-list__thead {\n\t\t\t// Pinned on top when scrolling\n\t\t\tposition: sticky;\n\t\t\tz-index: 10;\n\t\t\ttop: var(--fixed-block-start-position);\n\t\t}\n\n\t\ttr {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\twidth: 100%;\n\t\t\tborder-block-end: 1px solid var(--color-border);\n\t\t\tbox-sizing: border-box;\n\t\t\tuser-select: none;\n\t\t\theight: var(--row-height);\n\t\t}\n\n\t\ttd, th {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tflex: 0 0 auto;\n\t\t\tjustify-content: start;\n\t\t\twidth: var(--row-height);\n\t\t\theight: var(--row-height);\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tborder: none;\n\n\t\t\t// Columns should try to add any text\n\t\t\t// node wrapped in a span. That should help\n\t\t\t// with the ellipsis on overflow.\n\t\t\tspan {\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row--failed {\n\t\t\tposition: absolute;\n\t\t\tdisplay: block;\n\t\t\ttop: 0;\n\t\t\tinset-inline: 0;\n\t\t\tbottom: 0;\n\t\t\topacity: .1;\n\t\t\tz-index: -1;\n\t\t\tbackground: var(--color-error);\n\t\t}\n\n\t\t.files-list__row-checkbox {\n\t\t\tjustify-content: center;\n\n\t\t\t.checkbox-radio-switch {\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: center;\n\n\t\t\t\t--icon-size: var(--checkbox-size);\n\n\t\t\t\tlabel.checkbox-radio-switch__label {\n\t\t\t\t\twidth: var(--clickable-area);\n\t\t\t\t\theight: var(--clickable-area);\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\n\t\t\t\t}\n\n\t\t\t\t.checkbox-radio-switch__icon {\n\t\t\t\t\tmargin: 0 !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row {\n\t\t\t&:hover, &:focus, &:active, &--active, &--dragover {\n\t\t\t\t// WCAG AA compliant\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\t// text-maxcontrast have been designed to pass WCAG AA over\n\t\t\t\t// a white background, we need to adjust then.\n\t\t\t\t--color-text-maxcontrast: var(--color-main-text);\n\t\t\t\t> * {\n\t\t\t\t\t--color-border: var(--color-border-dark);\n\t\t\t\t}\n\n\t\t\t\t// Hover state of the row should also change the favorite markers background\n\t\t\t\t.favorite-marker-icon svg path {\n\t\t\t\t\tstroke: var(--color-background-hover);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&--dragover * {\n\t\t\t\t// Prevent dropping on row children\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t}\n\n\t\t// Entry preview or mime icon\n\t\t.files-list__row-icon {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\toverflow: visible;\n\t\t\talign-items: center;\n\t\t\t// No shrinking or growing allowed\n\t\t\tflex: 0 0 var(--icon-preview-size);\n\t\t\tjustify-content: center;\n\t\t\twidth: var(--icon-preview-size);\n\t\t\theight: 100%;\n\t\t\t// Show same padding as the checkbox right padding for visual balance\n\t\t\tmargin-inline-end: var(--checkbox-padding);\n\t\t\tcolor: var(--color-primary-element);\n\n\t\t\t// Icon is also clickable\n\t\t\t* {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t& > span {\n\t\t\t\tjustify-content: flex-start;\n\n\t\t\t\t&:not(.files-list__row-icon-favorite) svg {\n\t\t\t\t\twidth: var(--icon-preview-size);\n\t\t\t\t\theight: var(--icon-preview-size);\n\t\t\t\t}\n\n\t\t\t\t// Slightly increase the size of the folder icon\n\t\t\t\t&.folder-icon,\n\t\t\t\t&.folder-open-icon {\n\t\t\t\t\tmargin: -3px;\n\t\t\t\t\tsvg {\n\t\t\t\t\t\twidth: calc(var(--icon-preview-size) + 6px);\n\t\t\t\t\t\theight: calc(var(--icon-preview-size) + 6px);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-preview-container {\n\t\t\t\tposition: relative; // Needed for the blurshash to be positioned correctly\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: var(--icon-preview-size);\n\t\t\t\theight: var(--icon-preview-size);\n\t\t\t\tborder-radius: var(--border-radius);\n\t\t\t}\n\n\t\t\t&-blurhash {\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-block-start: 0;\n\t\t\t\tinset-inline-start: 0;\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 100%;\n\t\t\t\tobject-fit: cover;\n\t\t\t}\n\n\t\t\t&-preview {\n\t\t\t\t// Center and contain the preview\n\t\t\t\tobject-fit: contain;\n\t\t\t\tobject-position: center;\n\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 100%;\n\n\t\t\t\t/* Preview not loaded animation effect */\n\t\t\t\t&:not(.files-list__row-icon-preview--loaded) {\n\t\t\t\t\tbackground: var(--color-loading-dark);\n\t\t\t\t\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-favorite {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0px;\n\t\t\t\tinset-inline-end: -10px;\n\t\t\t}\n\n\t\t\t// File and folder overlay\n\t\t\t&-overlay {\n\t\t\t\tposition: absolute;\n\t\t\t\tmax-height: calc(var(--icon-preview-size) * 0.5);\n\t\t\t\tmax-width: calc(var(--icon-preview-size) * 0.5);\n\t\t\t\tcolor: var(--color-primary-element-text);\n\t\t\t\t// better alignment with the folder icon\n\t\t\t\tmargin-block-start: 2px;\n\n\t\t\t\t// Improve icon contrast with a background for files\n\t\t\t\t&--file {\n\t\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t\tbackground: var(--color-main-background);\n\t\t\t\t\tborder-radius: 100%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Entry link\n\t\t.files-list__row-name {\n\t\t\t// Prevent link from overflowing\n\t\t\toverflow: hidden;\n\t\t\t// Take as much space as possible\n\t\t\tflex: 1 1 auto;\n\n\t\t\tbutton.files-list__row-name-link {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\ttext-align: start;\n\t\t\t\t// Fill cell height and width\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\t// Necessary for flex grow to work\n\t\t\t\tmin-width: 0;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\t// Already added to the inner text, see rule below\n\t\t\t\t&:focus-visible {\n\t\t\t\t\toutline: none !important;\n\t\t\t\t}\n\n\t\t\t\t// Keyboard indicator a11y\n\t\t\t\t&:focus .files-list__row-name-text {\n\t\t\t\t\toutline: var(--border-width-input-focused) solid var(--color-main-text) !important;\n\t\t\t\t\tborder-radius: var(--border-radius-element);\n\t\t\t\t}\n\t\t\t\t&:focus:not(:focus-visible) .files-list__row-name-text {\n\t\t\t\t\toutline: none !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.files-list__row-name-text {\n\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t// Make some space for the outline\n\t\t\t\tpadding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline));\n\t\t\t\tpadding-inline-start: -10px;\n\t\t\t\t// Align two name and ext\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\n\t\t\t.files-list__row-name-ext {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t\t// always show the extension\n\t\t\t\toverflow: visible;\n\t\t\t}\n\t\t}\n\n\t\t// Rename form\n\t\t.files-list__row-rename {\n\t\t\twidth: 100%;\n\t\t\tmax-width: 600px;\n\t\t\tinput {\n\t\t\t\twidth: 100%;\n\t\t\t\t// Align with text, 0 - padding - border\n\t\t\t\tmargin-inline-start: -8px;\n\t\t\t\tpadding: 2px 6px;\n\t\t\t\tborder-width: 2px;\n\n\t\t\t\t&:invalid {\n\t\t\t\t\t// Show red border on invalid input\n\t\t\t\t\tborder-color: var(--color-error);\n\t\t\t\t\tcolor: red;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-actions {\n\t\t\t// take as much space as necessary\n\t\t\twidth: auto;\n\n\t\t\t// Add margin to all cells after the actions\n\t\t\t& ~ td,\n\t\t\t& ~ th {\n\t\t\t\tmargin: 0 var(--cell-margin);\n\t\t\t}\n\n\t\t\tbutton {\n\t\t\t\t.button-vue__text {\n\t\t\t\t\t// Remove bold from default button styling\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-action--inline {\n\t\t\tmargin-inline-end: 7px;\n\t\t}\n\n\t\t.files-list__row-mtime,\n\t\t.files-list__row-size {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t\t.files-list__row-size {\n\t\t\twidth: calc(var(--row-height) * 1.5);\n\t\t\t// Right align content/text\n\t\t\tjustify-content: flex-end;\n\t\t}\n\n\t\t.files-list__row-mtime {\n\t\t\twidth: calc(var(--row-height) * 2);\n\t\t}\n\n\t\t.files-list__row-column-custom {\n\t\t\twidth: calc(var(--row-height) * 2);\n\t\t}\n\t}\n}\n\n@media screen and (max-width: 512px) {\n\t.files-list :deep(.files-list__filters) {\n\t\t// Reduce padding on mobile\n\t\tpadding-inline: var(--default-grid-baseline, 4px);\n\t}\n}\n\n"],sourceRoot:""}]);const o=r},35887:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,'.files-list--grid tbody.files-list__tbody{--item-padding: 16px;--icon-preview-size: 166px;--name-height: 32px;--mtime-height: 16px;--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);--checkbox-padding: 0px;display:grid;grid-template-columns:repeat(auto-fill, var(--row-width));align-content:center;align-items:center;justify-content:space-around;justify-items:center}.files-list--grid tbody.files-list__tbody tr{display:flex;flex-direction:column;width:var(--row-width);height:var(--row-height);border:none;border-radius:var(--border-radius-large);padding:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox{position:absolute;z-index:9;top:calc(var(--item-padding)/2);inset-inline-start:calc(var(--item-padding)/2);overflow:hidden;--checkbox-container-size: 44px;width:var(--checkbox-container-size);height:var(--checkbox-container-size)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox .checkbox-radio-switch__content::after{content:"";width:16px;height:16px;position:absolute;inset-inline-start:50%;margin-inline-start:-8px;z-index:-1;background:var(--color-main-background)}.files-list--grid tbody.files-list__tbody .files-list__row-icon-favorite{position:absolute;top:0;inset-inline-end:0;display:flex;align-items:center;justify-content:center;width:var(--clickable-area);height:var(--clickable-area)}.files-list--grid tbody.files-list__tbody .files-list__row-name{display:flex;flex-direction:column;width:var(--icon-preview-size);height:calc(var(--icon-preview-size) + var(--name-height));overflow:visible}.files-list--grid tbody.files-list__tbody .files-list__row-name span.files-list__row-icon{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list--grid tbody.files-list__tbody .files-list__row-name .files-list__row-name-text{margin:0;margin-inline-start:-4px;padding:0px 4px}.files-list--grid tbody.files-list__tbody .files-list__row-mtime{width:var(--icon-preview-size);height:var(--mtime-height);font-size:calc(var(--default-font-size) - 4px)}.files-list--grid tbody.files-list__tbody .files-list__row-actions{position:absolute;inset-inline-end:calc(var(--clickable-area)/4);inset-block-end:calc(var(--mtime-height)/2);width:var(--clickable-area);height:var(--clickable-area)}',"",{version:3,sources:["webpack://./apps/files/src/components/FilesListVirtual.vue"],names:[],mappings:"AAEA,0CACC,oBAAA,CACA,0BAAA,CACA,mBAAA,CACA,oBAAA,CACA,qEAAA,CACA,iHAAA,CACA,uBAAA,CACA,YAAA,CACA,yDAAA,CAEA,oBAAA,CACA,kBAAA,CACA,4BAAA,CACA,oBAAA,CAEA,6CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,wBAAA,CACA,WAAA,CACA,wCAAA,CACA,2BAAA,CAID,oEACC,iBAAA,CACA,SAAA,CACA,+BAAA,CACA,8CAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,qCAAA,CAGA,2GACC,UAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,sBAAA,CACA,wBAAA,CACA,UAAA,CACA,uCAAA,CAKF,yEACC,iBAAA,CACA,KAAA,CACA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,2BAAA,CACA,4BAAA,CAGD,gEACC,YAAA,CACA,qBAAA,CACA,8BAAA,CACA,0DAAA,CAEA,gBAAA,CAEA,0FACC,8BAAA,CACA,+BAAA,CAGD,2FACC,QAAA,CAEA,wBAAA,CACA,eAAA,CAIF,iEACC,8BAAA,CACA,0BAAA,CACA,8CAAA,CAGD,mEACC,iBAAA,CACA,8CAAA,CACA,2CAAA,CACA,2BAAA,CACA,4BAAA",sourcesContent:["\n// Grid mode\n.files-list--grid tbody.files-list__tbody {\n\t--item-padding: 16px;\n\t--icon-preview-size: 166px;\n\t--name-height: 32px;\n\t--mtime-height: 16px;\n\t--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);\n\t--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);\n\t--checkbox-padding: 0px;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fill, var(--row-width));\n\n\talign-content: center;\n\talign-items: center;\n\tjustify-content: space-around;\n\tjustify-items: center;\n\n\ttr {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: var(--row-width);\n\t\theight: var(--row-height);\n\t\tborder: none;\n\t\tborder-radius: var(--border-radius-large);\n\t\tpadding: var(--item-padding);\n\t}\n\n\t// Checkbox in the top left\n\t.files-list__row-checkbox {\n\t\tposition: absolute;\n\t\tz-index: 9;\n\t\ttop: calc(var(--item-padding) / 2);\n\t\tinset-inline-start: calc(var(--item-padding) / 2);\n\t\toverflow: hidden;\n\t\t--checkbox-container-size: 44px;\n\t\twidth: var(--checkbox-container-size);\n\t\theight: var(--checkbox-container-size);\n\n\t\t// Add a background to the checkbox so we do not see the image through it.\n\t\t.checkbox-radio-switch__content::after {\n\t\t\tcontent: '';\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tposition: absolute;\n\t\t\tinset-inline-start: 50%;\n\t\t\tmargin-inline-start: -8px;\n\t\t\tz-index: -1;\n\t\t\tbackground: var(--color-main-background);\n\t\t}\n\t}\n\n\t// Star icon in the top right\n\t.files-list__row-icon-favorite {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tinset-inline-end: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--clickable-area);\n\t\theight: var(--clickable-area);\n\t}\n\n\t.files-list__row-name {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: var(--icon-preview-size);\n\t\theight: calc(var(--icon-preview-size) + var(--name-height));\n\t\t// Ensure that the name outline is visible.\n\t\toverflow: visible;\n\n\t\tspan.files-list__row-icon {\n\t\t\twidth: var(--icon-preview-size);\n\t\t\theight: var(--icon-preview-size);\n\t\t}\n\n\t\t.files-list__row-name-text {\n\t\t\tmargin: 0;\n\t\t\t// Ensure that the outline is not too close to the text.\n\t\t\tmargin-inline-start: -4px;\n\t\t\tpadding: 0px 4px;\n\t\t}\n\t}\n\n\t.files-list__row-mtime {\n\t\twidth: var(--icon-preview-size);\n\t\theight: var(--mtime-height);\n\t\tfont-size: calc(var(--default-font-size) - 4px);\n\t}\n\n\t.files-list__row-actions {\n\t\tposition: absolute;\n\t\tinset-inline-end: calc(var(--clickable-area) / 4);\n\t\tinset-block-end: calc(var(--mtime-height) / 2);\n\t\twidth: var(--clickable-area);\n\t\theight: var(--clickable-area);\n\t}\n}\n"],sourceRoot:""}]);const o=r},84877:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".app-navigation-entry__settings-quota[data-v-6ed9379e]{--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2)}.app-navigation-entry__settings-quota--not-unlimited[data-v-6ed9379e] .app-navigation-entry__name{line-height:1;margin-top:var(--app-navigation-quota-margin)}.app-navigation-entry__settings-quota progress[data-v-6ed9379e]{position:absolute;bottom:var(--app-navigation-quota-margin);margin-inline-start:var(--default-clickable-area);width:calc(100% - 1.5*var(--default-clickable-area))}","",{version:3,sources:["webpack://./apps/files/src/components/NavigationQuota.vue"],names:[],mappings:"AAEA,uDAEC,+EAAA,CAEA,kGACC,aAAA,CACA,6CAAA,CAGD,gEACC,iBAAA,CACA,yCAAA,CACA,iDAAA,CACA,oDAAA",sourcesContent:["\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\n\n\t&--not-unlimited :deep(.app-navigation-entry__name) {\n\t\tline-height: 1;\n\t\tmargin-top: var(--app-navigation-quota-margin);\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: var(--app-navigation-quota-margin);\n\t\tmargin-inline-start: var(--default-clickable-area);\n\t\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\n\t}\n}\n"],sourceRoot:""}]);const o=r},78636:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".toast-loading-icon{margin-inline-start:-4px;min-width:26px}.app-content[data-v-693703cc]{display:flex;overflow:hidden;flex-direction:column;max-height:100%;position:relative !important}.files-list__header[data-v-693703cc]{display:flex;align-items:center;flex:0 0;max-width:100%;margin-block:var(--app-navigation-padding, 4px);margin-inline:calc(var(--default-clickable-area, 44px) + 2*var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px)}.files-list__header--public[data-v-693703cc]{margin-inline:0 var(--app-navigation-padding, 4px)}.files-list__header>*[data-v-693703cc]{flex:0 0}.files-list__header-share-button[data-v-693703cc]{color:var(--color-text-maxcontrast) !important}.files-list__header-share-button--shared[data-v-693703cc]{color:var(--color-main-text) !important}.files-list__header-actions[data-v-693703cc]{min-width:fit-content !important;margin-inline:calc(var(--default-grid-baseline)*2)}.files-list__empty-view-wrapper[data-v-693703cc]{display:flex;height:100%}.files-list__refresh-icon[data-v-693703cc]{flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);height:var(--default-clickable-area)}.files-list__loading-icon[data-v-693703cc]{margin:auto}","",{version:3,sources:["webpack://./apps/files/src/views/FilesList.vue"],names:[],mappings:"AACA,oBAEC,wBAAA,CAEA,cAAA,CAGD,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CACA,4BAAA,CAIA,qCACC,YAAA,CACA,kBAAA,CAEA,QAAA,CACA,cAAA,CAEA,+CAAA,CACA,iIAAA,CAEA,6CAEC,kDAAA,CAGD,uCAGC,QAAA,CAGD,kDACC,8CAAA,CAEA,0DACC,uCAAA,CAIF,6CACC,gCAAA,CACA,kDAAA,CAIF,iDACC,YAAA,CACA,WAAA,CAGD,2CACC,sCAAA,CACA,mCAAA,CACA,oCAAA,CAGD,2CACC,WAAA",sourcesContent:["\n:global(.toast-loading-icon) {\n\t// Reduce start margin (it was made for text but this is an icon)\n\tmargin-inline-start: -4px;\n\t// 16px icon + 5px on both sides\n\tmin-width: 26px;\n}\n\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n\tposition: relative !important;\n}\n\n.files-list {\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t// Do not grow or shrink (vertically)\n\t\tflex: 0 0;\n\t\tmax-width: 100%;\n\t\t// Align with the navigation toggle icon\n\t\tmargin-block: var(--app-navigation-padding, 4px);\n\t\tmargin-inline: calc(var(--default-clickable-area, 44px) + 2 * var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px);\n\n\t\t&--public {\n\t\t\t// There is no navigation toggle on public shares\n\t\t\tmargin-inline: 0 var(--app-navigation-padding, 4px);\n\t\t}\n\n\t\t>* {\n\t\t\t// Do not grow or shrink (horizontally)\n\t\t\t// Only the breadcrumbs shrinks\n\t\t\tflex: 0 0;\n\t\t}\n\n\t\t&-share-button {\n\t\t\tcolor: var(--color-text-maxcontrast) !important;\n\n\t\t\t&--shared {\n\t\t\t\tcolor: var(--color-main-text) !important;\n\t\t\t}\n\t\t}\n\n\t\t&-actions {\n\t\t\tmin-width: fit-content !important;\n\t\t\tmargin-inline: calc(var(--default-grid-baseline) * 2);\n\t\t}\n\t}\n\n\t&__empty-view-wrapper {\n\t\tdisplay: flex;\n\t\theight: 100%;\n\t}\n\n\t&__refresh-icon {\n\t\tflex: 0 0 var(--default-clickable-area);\n\t\twidth: var(--default-clickable-area);\n\t\theight: var(--default-clickable-area);\n\t}\n\n\t&__loading-icon {\n\t\tmargin: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=r},13398:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".app-navigation[data-v-c6191948] .app-navigation-entry.active .button-vue.icon-collapse:not(:hover){color:var(--color-primary-element-text)}.app-navigation>ul.app-navigation__list[data-v-c6191948]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-c6191948]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}.files-navigation__list[data-v-c6191948]{height:100%}.files-navigation[data-v-c6191948] .app-navigation__content > ul.app-navigation__list{will-change:scroll-position}","",{version:3,sources:["webpack://./apps/files/src/views/Navigation.vue"],names:[],mappings:"AAEC,oGACC,uCAAA,CAGD,yDAEC,gDAAA,CAIF,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA,CAIA,yCACC,WAAA,CAGD,sFACC,2BAAA",sourcesContent:["\n.app-navigation {\n\t:deep(.app-navigation-entry.active .button-vue.icon-collapse:not(:hover)) {\n\t\tcolor: var(--color-primary-element-text);\n\t}\n\n\t> ul.app-navigation__list {\n\t\t// Use flex gap value for more elegant spacing\n\t\tpadding-bottom: var(--default-grid-baseline, 4px);\n\t}\n}\n\n.app-navigation-entry__settings {\n\theight: auto !important;\n\toverflow: hidden !important;\n\tpadding-top: 0 !important;\n\t// Prevent shrinking or growing\n\tflex: 0 0 auto;\n}\n\n.files-navigation {\n\t&__list {\n\t\theight: 100%; // Fill all available space for sticky views\n\t}\n\n\t:deep(.app-navigation__content > ul.app-navigation__list) {\n\t\twill-change: scroll-position;\n\t}\n}\n"],sourceRoot:""}]);const o=r},49790:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".setting-link[data-v-6fc727d7]:hover{text-decoration:underline}.shortcut-key[data-v-6fc727d7]{width:160px;white-space:normal}.shortcut-key span[data-v-6fc727d7]{white-space:nowrap}","",{version:3,sources:["webpack://./apps/files/src/views/Settings.vue"],names:[],mappings:"AACA,qCACC,yBAAA,CAGD,+BACC,WAAA,CAEA,kBAAA,CACA,oCAEC,kBAAA",sourcesContent:["\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n\n.shortcut-key {\n\twidth: 160px;\n\t// some shortcuts are too long to fit in one line\n\twhite-space: normal;\n\tspan {\n\t\t// force portion of a shortcut on a new line for nicer display\n\t\twhite-space: nowrap;\n\t}\n}\n"],sourceRoot:""}]);const o=r},35810:(e,t,s)=>{s.d(t,{Al:()=>n.r,By:()=>p,Dw:()=>je,E6:()=>A,H4:()=>n.c,KT:()=>w,L3:()=>Oe,PY:()=>n.b,Q$:()=>n.e,R3:()=>n.n,Ss:()=>de,VL:()=>n.l,ZH:()=>n.q,a7:()=>d,aX:()=>n.P,bP:()=>n.N,bh:()=>T,cZ:()=>Re,di:()=>v,g5:()=>f,hY:()=>u,lJ:()=>n.d,m1:()=>Ve,m9:()=>m,nF:()=>h,pt:()=>n.F,qK:()=>g,sR:()=>Me,ur:()=>k,v7:()=>y,vd:()=>n.s,zI:()=>n.t});var n=s(68251),i=s(87485),a=s(43627),r=s(53334),o=s(380),l=s(65606),d=(e=>(e[e.UploadFromDevice=0]="UploadFromDevice",e[e.CreateNew=1]="CreateNew",e[e.Other=2]="Other",e))(d||{});class c{_entries=[];registerEntry(e){this.validateEntry(e),e.category=e.category??1,this._entries.push(e)}unregisterEntry(e){const t="string"==typeof e?this.getEntryIndex(e):this.getEntryIndex(e.id);-1!==t?this._entries.splice(t,1):n.o.warn("Entry not found, nothing removed",{entry:e,entries:this.getEntries()})}getEntries(e){return e?this._entries.filter((t=>"function"!=typeof t.enabled||t.enabled(e))):this._entries}getEntryIndex(e){return this._entries.findIndex((t=>t.id===e))}validateEntry(e){if(!e.id||!e.displayName||!e.iconSvgInline&&!e.iconClass||!e.handler)throw new Error("Invalid entry");if("string"!=typeof e.id||"string"!=typeof e.displayName)throw new Error("Invalid id or displayName property");if(e.iconClass&&"string"!=typeof e.iconClass||e.iconSvgInline&&"string"!=typeof e.iconSvgInline)throw new Error("Invalid icon provided");if(void 0!==e.enabled&&"function"!=typeof e.enabled)throw new Error("Invalid enabled property");if("function"!=typeof e.handler)throw new Error("Invalid handler property");if("order"in e&&"number"!=typeof e.order)throw new Error("Invalid order property");if(-1!==this.getEntryIndex(e.id))throw new Error("Duplicate entry")}}var m=(e=>(e.DEFAULT="default",e.HIDDEN="hidden",e))(m||{});class u{_action;constructor(e){this.validateAction(e),this._action=e}get id(){return this._action.id}get displayName(){return this._action.displayName}get title(){return this._action.title}get iconSvgInline(){return this._action.iconSvgInline}get enabled(){return this._action.enabled}get exec(){return this._action.exec}get execBatch(){return this._action.execBatch}get order(){return this._action.order}get parent(){return this._action.parent}get default(){return this._action.default}get destructive(){return this._action.destructive}get inline(){return this._action.inline}get renderInline(){return this._action.renderInline}validateAction(e){if(!e.id||"string"!=typeof e.id)throw new Error("Invalid id");if(!e.displayName||"function"!=typeof e.displayName)throw new Error("Invalid displayName function");if("title"in e&&"function"!=typeof e.title)throw new Error("Invalid title function");if(!e.iconSvgInline||"function"!=typeof e.iconSvgInline)throw new Error("Invalid iconSvgInline function");if(!e.exec||"function"!=typeof e.exec)throw new Error("Invalid exec function");if("enabled"in e&&"function"!=typeof e.enabled)throw new Error("Invalid enabled function");if("execBatch"in e&&"function"!=typeof e.execBatch)throw new Error("Invalid execBatch function");if("order"in e&&"number"!=typeof e.order)throw new Error("Invalid order");if(void 0!==e.destructive&&"boolean"!=typeof e.destructive)throw new Error("Invalid destructive flag");if("parent"in e&&"string"!=typeof e.parent)throw new Error("Invalid parent");if(e.default&&!Object.values(m).includes(e.default))throw new Error("Invalid default");if("inline"in e&&"function"!=typeof e.inline)throw new Error("Invalid inline function");if("renderInline"in e&&"function"!=typeof e.renderInline)throw new Error("Invalid renderInline function")}}const g=function(){return void 0===window._nc_fileactions&&(window._nc_fileactions=[],n.o.debug("FileActions initialized")),window._nc_fileactions},f=()=>(void 0===window._nc_filelistactions&&(window._nc_filelistactions=[]),window._nc_filelistactions),p=function(){return void 0===window._nc_filelistheader&&(window._nc_filelistheader=[],n.o.debug("FileListHeaders initialized")),window._nc_filelistheader};var h=(e=>(e.ReservedName="reserved name",e.Character="character",e.Extension="extension",e))(h||{});class v extends Error{constructor(e){super(`Invalid ${e.reason} '${e.segment}' in filename '${e.filename}'`,{cause:e})}get filename(){return this.cause.filename}get reason(){return this.cause.reason}get segment(){return this.cause.segment}}function w(e){const t=(0,i.F)().files,s=t.forbidden_filename_characters??window._oc_config?.forbidden_filenames_characters??["/","\\"];for(const t of s)if(e.includes(t))throw new v({segment:t,reason:"character",filename:e});if(e=e.toLocaleLowerCase(),(t.forbidden_filenames??[".htaccess"]).includes(e))throw new v({filename:e,segment:e,reason:"reserved name"});const n=e.indexOf(".",1),a=e.substring(0,-1===n?void 0:n);if((t.forbidden_filename_basenames??[]).includes(a))throw new v({filename:e,segment:a,reason:"reserved name"});const r=t.forbidden_filename_extensions??[".part",".filepart"];for(const t of r)if(e.length>t.length&&e.endsWith(t))throw new v({segment:t,reason:"extension",filename:e})}function A(e,t,s){const n={suffix:e=>`(${e})`,ignoreFileExtension:!1,...s};let i=e,r=1;for(;t.includes(i);){const t=n.ignoreFileExtension?"":(0,a.extname)(e);i=`${(0,a.basename)(e,t)} ${n.suffix(r++)}${t}`}return i}const b=["B","KB","MB","GB","TB","PB"],C=["B","KiB","MiB","GiB","TiB","PiB"];function y(e,t=!1,s=!1,n=!1){s=s&&!n,"string"==typeof e&&(e=Number(e));let i=e>0?Math.floor(Math.log(e)/Math.log(n?1e3:1024)):0;i=Math.min((s?C.length:b.length)-1,i);const a=s?C[i]:b[i];let o=(e/Math.pow(n?1e3:1024,i)).toFixed(1);return!0===t&&0===i?("0.0"!==o?"< 1 ":"0 ")+(s?C[1]:b[1]):(o=i<2?parseFloat(o).toFixed(0):parseFloat(o).toLocaleString((0,r.lO)()),o+" "+a)}function x(e){return e instanceof Date?e.toISOString():String(e)}function k(e,t={}){const s={sortingMode:"basename",sortingOrder:"asc",...t};return function(e,t,s){s=s??[];const n=(t=t??[e=>e]).map(((e,t)=>"asc"===(s[t]??"asc")?1:-1)),i=Intl.Collator([(0,r.Z0)(),(0,r.lO)()],{numeric:!0,usage:"sort"});return[...e].sort(((e,s)=>{for(const[a,r]of t.entries()){const t=i.compare(x(r(e)),x(r(s)));if(0!==t)return t*n[a]}return 0}))}(e,[...s.sortFavoritesFirst?[e=>1!==e.attributes?.favorite]:[],...s.sortFoldersFirst?[e=>"folder"!==e.type]:[],..."basename"!==s.sortingMode?[e=>e[s.sortingMode]]:[],e=>{return(t=e.displayname||e.attributes?.displayname||e.basename).lastIndexOf(".")>0?t.slice(0,t.lastIndexOf(".")):t;var t},e=>e.basename],[...s.sortFavoritesFirst?["asc"]:[],...s.sortFoldersFirst?["asc"]:[],..."mtime"===s.sortingMode?["asc"===s.sortingOrder?"desc":"asc"]:[],..."mtime"!==s.sortingMode&&"basename"!==s.sortingMode?[s.sortingOrder]:[],s.sortingOrder,s.sortingOrder])}class _ extends o.m{_views=[];_currentView=null;register(e){if(this._views.find((t=>t.id===e.id)))throw new Error(`View id ${e.id} is already registered`);this._views.push(e),this.dispatchTypedEvent("update",new CustomEvent("update"))}remove(e){const t=this._views.findIndex((t=>t.id===e));-1!==t&&(this._views.splice(t,1),this.dispatchTypedEvent("update",new CustomEvent("update")))}setActive(e){this._currentView=e;const t=new CustomEvent("updateActive",{detail:e});this.dispatchTypedEvent("updateActive",t)}get active(){return this._currentView}get views(){return this._views}}const T=function(){return void 0===window._nc_navigation&&(window._nc_navigation=new _,n.o.debug("Navigation service initialized")),window._nc_navigation};class S{_column;constructor(e){L(e),this._column=e}get id(){return this._column.id}get title(){return this._column.title}get render(){return this._column.render}get sort(){return this._column.sort}get summary(){return this._column.summary}}const L=function(e){if(!e.id||"string"!=typeof e.id)throw new Error("A column id is required");if(!e.title||"string"!=typeof e.title)throw new Error("A column title is required");if(!e.render||"function"!=typeof e.render)throw new Error("A render function is required");if(e.sort&&"function"!=typeof e.sort)throw new Error("Column sortFunction must be a function");if(e.summary&&"function"!=typeof e.summary)throw new Error("Column summary must be a function");return!0};function N(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var F,E,U={},I={};function P(){return F||(F=1,function(e){const t=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",s="["+t+"]["+t+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",n=new RegExp("^"+s+"$");e.isExist=function(e){return void 0!==e},e.isEmptyObject=function(e){return 0===Object.keys(e).length},e.merge=function(e,t,s){if(t){const n=Object.keys(t),i=n.length;for(let a=0;a<i;a++)e[n[a]]="strict"===s?[t[n[a]]]:t[n[a]]}},e.getValue=function(t){return e.isExist(t)?t:""},e.isName=function(e){return!(null==n.exec(e))},e.getAllMatches=function(e,t){const s=[];let n=t.exec(e);for(;n;){const i=[];i.startIndex=t.lastIndex-n[0].length;const a=n.length;for(let e=0;e<a;e++)i.push(n[e]);s.push(i),n=t.exec(e)}return s},e.nameRegexp=s}(I)),I}function z(){if(E)return U;E=1;const e=P(),t={allowBooleanAttributes:!1,unpairedTags:[]};function s(e){return" "===e||"\t"===e||"\n"===e||"\r"===e}function n(e,t){const s=t;for(;t<e.length;t++)if("?"!=e[t]&&" "!=e[t]);else{const n=e.substr(s,t-s);if(t>5&&"xml"===n)return m("InvalidXml","XML declaration allowed only at the start of the document.",g(e,t));if("?"==e[t]&&">"==e[t+1]){t++;break}}return t}function i(e,t){if(e.length>t+5&&"-"===e[t+1]&&"-"===e[t+2]){for(t+=3;t<e.length;t++)if("-"===e[t]&&"-"===e[t+1]&&">"===e[t+2]){t+=2;break}}else if(e.length>t+8&&"D"===e[t+1]&&"O"===e[t+2]&&"C"===e[t+3]&&"T"===e[t+4]&&"Y"===e[t+5]&&"P"===e[t+6]&&"E"===e[t+7]){let s=1;for(t+=8;t<e.length;t++)if("<"===e[t])s++;else if(">"===e[t]&&(s--,0===s))break}else if(e.length>t+9&&"["===e[t+1]&&"C"===e[t+2]&&"D"===e[t+3]&&"A"===e[t+4]&&"T"===e[t+5]&&"A"===e[t+6]&&"["===e[t+7])for(t+=8;t<e.length;t++)if("]"===e[t]&&"]"===e[t+1]&&">"===e[t+2]){t+=2;break}return t}U.validate=function(a,r){r=Object.assign({},t,r);const l=[];let u=!1,f=!1;"\ufeff"===a[0]&&(a=a.substr(1));for(let t=0;t<a.length;t++)if("<"===a[t]&&"?"===a[t+1]){if(t+=2,t=n(a,t),t.err)return t}else{if("<"!==a[t]){if(s(a[t]))continue;return m("InvalidChar","char '"+a[t]+"' is not expected.",g(a,t))}{let h=t;if(t++,"!"===a[t]){t=i(a,t);continue}{let v=!1;"/"===a[t]&&(v=!0,t++);let w="";for(;t<a.length&&">"!==a[t]&&" "!==a[t]&&"\t"!==a[t]&&"\n"!==a[t]&&"\r"!==a[t];t++)w+=a[t];if(w=w.trim(),"/"===w[w.length-1]&&(w=w.substring(0,w.length-1),t--),p=w,!e.isName(p)){let e;return e=0===w.trim().length?"Invalid space after '<'.":"Tag '"+w+"' is an invalid name.",m("InvalidTag",e,g(a,t))}const A=o(a,t);if(!1===A)return m("InvalidAttr","Attributes for '"+w+"' have open quote.",g(a,t));let b=A.value;if(t=A.index,"/"===b[b.length-1]){const e=t-b.length;b=b.substring(0,b.length-1);const s=d(b,r);if(!0!==s)return m(s.err.code,s.err.msg,g(a,e+s.err.line));u=!0}else if(v){if(!A.tagClosed)return m("InvalidTag","Closing tag '"+w+"' doesn't have proper closing.",g(a,t));if(b.trim().length>0)return m("InvalidTag","Closing tag '"+w+"' can't have attributes or invalid starting.",g(a,h));if(0===l.length)return m("InvalidTag","Closing tag '"+w+"' has not been opened.",g(a,h));{const e=l.pop();if(w!==e.tagName){let t=g(a,e.tagStartPos);return m("InvalidTag","Expected closing tag '"+e.tagName+"' (opened in line "+t.line+", col "+t.col+") instead of closing tag '"+w+"'.",g(a,h))}0==l.length&&(f=!0)}}else{const e=d(b,r);if(!0!==e)return m(e.err.code,e.err.msg,g(a,t-b.length+e.err.line));if(!0===f)return m("InvalidXml","Multiple possible root nodes found.",g(a,t));-1!==r.unpairedTags.indexOf(w)||l.push({tagName:w,tagStartPos:h}),u=!0}for(t++;t<a.length;t++)if("<"===a[t]){if("!"===a[t+1]){t++,t=i(a,t);continue}if("?"!==a[t+1])break;if(t=n(a,++t),t.err)return t}else if("&"===a[t]){const e=c(a,t);if(-1==e)return m("InvalidChar","char '&' is not expected.",g(a,t));t=e}else if(!0===f&&!s(a[t]))return m("InvalidXml","Extra text at the end",g(a,t));"<"===a[t]&&t--}}}var p;return u?1==l.length?m("InvalidTag","Unclosed tag '"+l[0].tagName+"'.",g(a,l[0].tagStartPos)):!(l.length>0)||m("InvalidXml","Invalid '"+JSON.stringify(l.map((e=>e.tagName)),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):m("InvalidXml","Start tag expected.",1)};const a='"',r="'";function o(e,t){let s="",n="",i=!1;for(;t<e.length;t++){if(e[t]===a||e[t]===r)""===n?n=e[t]:n!==e[t]||(n="");else if(">"===e[t]&&""===n){i=!0;break}s+=e[t]}return""===n&&{value:s,index:t,tagClosed:i}}const l=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function d(t,s){const n=e.getAllMatches(t,l),i={};for(let e=0;e<n.length;e++){if(0===n[e][1].length)return m("InvalidAttr","Attribute '"+n[e][2]+"' has no space in starting.",f(n[e]));if(void 0!==n[e][3]&&void 0===n[e][4])return m("InvalidAttr","Attribute '"+n[e][2]+"' is without value.",f(n[e]));if(void 0===n[e][3]&&!s.allowBooleanAttributes)return m("InvalidAttr","boolean attribute '"+n[e][2]+"' is not allowed.",f(n[e]));const t=n[e][2];if(!u(t))return m("InvalidAttr","Attribute '"+t+"' is an invalid name.",f(n[e]));if(i.hasOwnProperty(t))return m("InvalidAttr","Attribute '"+t+"' is repeated.",f(n[e]));i[t]=1}return!0}function c(e,t){if(";"===e[++t])return-1;if("#"===e[t])return function(e,t){let s=/\d/;for("x"===e[t]&&(t++,s=/[\da-fA-F]/);t<e.length;t++){if(";"===e[t])return t;if(!e[t].match(s))break}return-1}(e,++t);let s=0;for(;t<e.length;t++,s++)if(!(e[t].match(/\w/)&&s<20)){if(";"===e[t])break;return-1}return t}function m(e,t,s){return{err:{code:e,msg:t,line:s.line||s,col:s.col}}}function u(t){return e.isName(t)}function g(e,t){const s=e.substring(0,t).split(/\r?\n/);return{line:s.length,col:s[s.length-1].length+1}}function f(e){return e.startIndex+e[1].length}return U}var B,D,O,R,j,M,V,$,W,H,q,G={};function Y(){return W?$:(W=1,$=function(e){return"function"==typeof e?e:Array.isArray(e)?t=>{for(const s of e){if("string"==typeof s&&t===s)return!0;if(s instanceof RegExp&&s.test(t))return!0}}:()=>!1})}var K,Q,X,J,Z,ee,te,se,ne,ie={};function ae(){if(K)return ie;function e(i,a,r){let o;const l={};for(let d=0;d<i.length;d++){const c=i[d],m=t(c);let u="";if(u=void 0===r?m:r+"."+m,m===a.textNodeName)void 0===o?o=c[m]:o+=""+c[m];else{if(void 0===m)continue;if(c[m]){let t=e(c[m],a,u);const i=n(t,a);c[":@"]?s(t,c[":@"],u,a):1!==Object.keys(t).length||void 0===t[a.textNodeName]||a.alwaysCreateTextNode?0===Object.keys(t).length&&(a.alwaysCreateTextNode?t[a.textNodeName]="":t=""):t=t[a.textNodeName],void 0!==l[m]&&l.hasOwnProperty(m)?(Array.isArray(l[m])||(l[m]=[l[m]]),l[m].push(t)):a.isArray(m,u,i)?l[m]=[t]:l[m]=t}}}return"string"==typeof o?o.length>0&&(l[a.textNodeName]=o):void 0!==o&&(l[a.textNodeName]=o),l}function t(e){const t=Object.keys(e);for(let e=0;e<t.length;e++){const s=t[e];if(":@"!==s)return s}}function s(e,t,s,n){if(t){const i=Object.keys(t),a=i.length;for(let r=0;r<a;r++){const a=i[r];n.isArray(a,s+"."+a,!0,!0)?e[a]=[t[a]]:e[a]=t[a]}}}function n(e,t){const{textNodeName:s}=t,n=Object.keys(e).length;return 0===n||!(1!==n||!e[s]&&"boolean"!=typeof e[s]&&0!==e[s])}return K=1,ie.prettify=function(t,s){return e(t,s)},ie}function re(){if(X)return Q;X=1;const{buildOptions:e}=function(){if(B)return G;B=1;const e={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(e,t,s){return e}};return G.buildOptions=function(t){return Object.assign({},e,t)},G.defaultOptions=e,G}(),t=function(){if(q)return H;q=1;const e=P(),t=O?D:(O=1,D=class{constructor(e){this.tagname=e,this.child=[],this[":@"]={}}add(e,t){"__proto__"===e&&(e="#__proto__"),this.child.push({[e]:t})}addChild(e){"__proto__"===e.tagname&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,":@":e[":@"]}):this.child.push({[e.tagname]:e.child})}}),s=function(){if(j)return R;j=1;const e=P();function t(e,t){let s="";for(;t<e.length&&"'"!==e[t]&&'"'!==e[t];t++)s+=e[t];if(s=s.trim(),-1!==s.indexOf(" "))throw new Error("External entites are not supported");const n=e[t++];let i="";for(;t<e.length&&e[t]!==n;t++)i+=e[t];return[s,i,t]}function s(e,t){return"!"===e[t+1]&&"E"===e[t+2]&&"N"===e[t+3]&&"T"===e[t+4]&&"I"===e[t+5]&&"T"===e[t+6]&&"Y"===e[t+7]}function n(e,t){return"!"===e[t+1]&&"E"===e[t+2]&&"L"===e[t+3]&&"E"===e[t+4]&&"M"===e[t+5]&&"E"===e[t+6]&&"N"===e[t+7]&&"T"===e[t+8]}function i(e,t){return"!"===e[t+1]&&"A"===e[t+2]&&"T"===e[t+3]&&"T"===e[t+4]&&"L"===e[t+5]&&"I"===e[t+6]&&"S"===e[t+7]&&"T"===e[t+8]}function a(e,t){return"!"===e[t+1]&&"N"===e[t+2]&&"O"===e[t+3]&&"T"===e[t+4]&&"A"===e[t+5]&&"T"===e[t+6]&&"I"===e[t+7]&&"O"===e[t+8]&&"N"===e[t+9]}function r(t){if(e.isName(t))return t;throw new Error(`Invalid entity name ${t}`)}return R=function(e,o){const l={};if("O"!==e[o+3]||"C"!==e[o+4]||"T"!==e[o+5]||"Y"!==e[o+6]||"P"!==e[o+7]||"E"!==e[o+8])throw new Error("Invalid Tag instead of DOCTYPE");{o+=9;let d=1,c=!1,m=!1,u="";for(;o<e.length;o++)if("<"!==e[o]||m)if(">"===e[o]){if(m?"-"===e[o-1]&&"-"===e[o-2]&&(m=!1,d--):d--,0===d)break}else"["===e[o]?c=!0:u+=e[o];else{if(c&&s(e,o)){let s,n;o+=7,[s,n,o]=t(e,o+1),-1===n.indexOf("&")&&(l[r(s)]={regx:RegExp(`&${s};`,"g"),val:n})}else c&&n(e,o)||c&&i(e,o)?o+=8:c&&a(e,o)?o+=9:m=!0;d++,u=""}if(0!==d)throw new Error("Unclosed DOCTYPE")}return{entities:l,i:o}}}(),n=function(){if(V)return M;V=1;const e=/^[-+]?0x[a-fA-F0-9]+$/,t=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const s={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};return M=function(n,i={}){if(i=Object.assign({},s,i),!n||"string"!=typeof n)return n;let a=n.trim();if(void 0!==i.skipLike&&i.skipLike.test(a))return n;if(i.hex&&e.test(a))return Number.parseInt(a,16);{const e=t.exec(a);if(e){const t=e[1],s=e[2];let o=(r=e[3])&&-1!==r.indexOf(".")?("."===(r=r.replace(/0+$/,""))?r="0":"."===r[0]?r="0"+r:"."===r[r.length-1]&&(r=r.substr(0,r.length-1)),r):r;const l=e[4]||e[6];if(!i.leadingZeros&&s.length>0&&t&&"."!==a[2])return n;if(!i.leadingZeros&&s.length>0&&!t&&"."!==a[1])return n;{const e=Number(a),r=""+e;return-1!==r.search(/[eE]/)||l?i.eNotation?e:n:-1!==a.indexOf(".")?"0"===r&&""===o||r===o||t&&r==="-"+o?e:n:s?o===r||t+o===r?e:n:a===r||a===t+r?e:n}}return n}var r}}(),i=Y();function a(e){const t=Object.keys(e);for(let s=0;s<t.length;s++){const n=t[s];this.lastEntities[n]={regex:new RegExp("&"+n+";","g"),val:e[n]}}}function r(e,t,s,n,i,a,r){if(void 0!==e&&(this.options.trimValues&&!n&&(e=e.trim()),e.length>0)){r||(e=this.replaceEntitiesValue(e));const n=this.options.tagValueProcessor(t,e,s,i,a);return null==n?e:typeof n!=typeof e||n!==e?n:this.options.trimValues||e.trim()===e?w(e,this.options.parseTagValue,this.options.numberParseOptions):e}}function o(e){if(this.options.removeNSPrefix){const t=e.split(":"),s="/"===e.charAt(0)?"/":"";if("xmlns"===t[0])return"";2===t.length&&(e=s+t[1])}return e}const l=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function d(t,s,n){if(!0!==this.options.ignoreAttributes&&"string"==typeof t){const n=e.getAllMatches(t,l),i=n.length,a={};for(let e=0;e<i;e++){const t=this.resolveNameSpace(n[e][1]);if(this.ignoreAttributesFn(t,s))continue;let i=n[e][4],r=this.options.attributeNamePrefix+t;if(t.length)if(this.options.transformAttributeName&&(r=this.options.transformAttributeName(r)),"__proto__"===r&&(r="#__proto__"),void 0!==i){this.options.trimValues&&(i=i.trim()),i=this.replaceEntitiesValue(i);const e=this.options.attributeValueProcessor(t,i,s);a[r]=null==e?i:typeof e!=typeof i||e!==i?e:w(i,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(a[r]=!0)}if(!Object.keys(a).length)return;if(this.options.attributesGroupName){const e={};return e[this.options.attributesGroupName]=a,e}return a}}const c=function(e){e=e.replace(/\r\n?/g,"\n");const n=new t("!xml");let i=n,a="",r="";for(let o=0;o<e.length;o++)if("<"===e[o])if("/"===e[o+1]){const t=p(e,">",o,"Closing Tag is not closed.");let s=e.substring(o+2,t).trim();if(this.options.removeNSPrefix){const e=s.indexOf(":");-1!==e&&(s=s.substr(e+1))}this.options.transformTagName&&(s=this.options.transformTagName(s)),i&&(a=this.saveTextToParentTag(a,i,r));const n=r.substring(r.lastIndexOf(".")+1);if(s&&-1!==this.options.unpairedTags.indexOf(s))throw new Error(`Unpaired tag can not be used as closing tag: </${s}>`);let l=0;n&&-1!==this.options.unpairedTags.indexOf(n)?(l=r.lastIndexOf(".",r.lastIndexOf(".")-1),this.tagsNodeStack.pop()):l=r.lastIndexOf("."),r=r.substring(0,l),i=this.tagsNodeStack.pop(),a="",o=t}else if("?"===e[o+1]){let s=h(e,o,!1,"?>");if(!s)throw new Error("Pi Tag is not closed.");if(a=this.saveTextToParentTag(a,i,r),this.options.ignoreDeclaration&&"?xml"===s.tagName||this.options.ignorePiTags);else{const e=new t(s.tagName);e.add(this.options.textNodeName,""),s.tagName!==s.tagExp&&s.attrExpPresent&&(e[":@"]=this.buildAttributesMap(s.tagExp,r,s.tagName)),this.addChild(i,e,r)}o=s.closeIndex+1}else if("!--"===e.substr(o+1,3)){const t=p(e,"--\x3e",o+4,"Comment is not closed.");if(this.options.commentPropName){const s=e.substring(o+4,t-2);a=this.saveTextToParentTag(a,i,r),i.add(this.options.commentPropName,[{[this.options.textNodeName]:s}])}o=t}else if("!D"===e.substr(o+1,2)){const t=s(e,o);this.docTypeEntities=t.entities,o=t.i}else if("!["===e.substr(o+1,2)){const t=p(e,"]]>",o,"CDATA is not closed.")-2,s=e.substring(o+9,t);a=this.saveTextToParentTag(a,i,r);let n=this.parseTextData(s,i.tagname,r,!0,!1,!0,!0);null==n&&(n=""),this.options.cdataPropName?i.add(this.options.cdataPropName,[{[this.options.textNodeName]:s}]):i.add(this.options.textNodeName,n),o=t+2}else{let s=h(e,o,this.options.removeNSPrefix),l=s.tagName;const d=s.rawTagName;let c=s.tagExp,m=s.attrExpPresent,u=s.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),i&&a&&"!xml"!==i.tagname&&(a=this.saveTextToParentTag(a,i,r,!1));const g=i;if(g&&-1!==this.options.unpairedTags.indexOf(g.tagname)&&(i=this.tagsNodeStack.pop(),r=r.substring(0,r.lastIndexOf("."))),l!==n.tagname&&(r+=r?"."+l:l),this.isItStopNode(this.options.stopNodes,r,l)){let n="";if(c.length>0&&c.lastIndexOf("/")===c.length-1)"/"===l[l.length-1]?(l=l.substr(0,l.length-1),r=r.substr(0,r.length-1),c=l):c=c.substr(0,c.length-1),o=s.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(l))o=s.closeIndex;else{const t=this.readStopNodeData(e,d,u+1);if(!t)throw new Error(`Unexpected end of ${d}`);o=t.i,n=t.tagContent}const a=new t(l);l!==c&&m&&(a[":@"]=this.buildAttributesMap(c,r,l)),n&&(n=this.parseTextData(n,l,r,!0,m,!0,!0)),r=r.substr(0,r.lastIndexOf(".")),a.add(this.options.textNodeName,n),this.addChild(i,a,r)}else{if(c.length>0&&c.lastIndexOf("/")===c.length-1){"/"===l[l.length-1]?(l=l.substr(0,l.length-1),r=r.substr(0,r.length-1),c=l):c=c.substr(0,c.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));const e=new t(l);l!==c&&m&&(e[":@"]=this.buildAttributesMap(c,r,l)),this.addChild(i,e,r),r=r.substr(0,r.lastIndexOf("."))}else{const e=new t(l);this.tagsNodeStack.push(i),l!==c&&m&&(e[":@"]=this.buildAttributesMap(c,r,l)),this.addChild(i,e,r),i=e}a="",o=u}}else a+=e[o];return n.child};function m(e,t,s){const n=this.options.updateTag(t.tagname,s,t[":@"]);!1===n||("string"==typeof n?(t.tagname=n,e.addChild(t)):e.addChild(t))}const u=function(e){if(this.options.processEntities){for(let t in this.docTypeEntities){const s=this.docTypeEntities[t];e=e.replace(s.regx,s.val)}for(let t in this.lastEntities){const s=this.lastEntities[t];e=e.replace(s.regex,s.val)}if(this.options.htmlEntities)for(let t in this.htmlEntities){const s=this.htmlEntities[t];e=e.replace(s.regex,s.val)}e=e.replace(this.ampEntity.regex,this.ampEntity.val)}return e};function g(e,t,s,n){return e&&(void 0===n&&(n=0===Object.keys(t.child).length),void 0!==(e=this.parseTextData(e,t.tagname,s,!1,!!t[":@"]&&0!==Object.keys(t[":@"]).length,n))&&""!==e&&t.add(this.options.textNodeName,e),e=""),e}function f(e,t,s){const n="*."+s;for(const s in e){const i=e[s];if(n===i||t===i)return!0}return!1}function p(e,t,s,n){const i=e.indexOf(t,s);if(-1===i)throw new Error(n);return i+t.length-1}function h(e,t,s,n=">"){const i=function(e,t,s=">"){let n,i="";for(let a=t;a<e.length;a++){let t=e[a];if(n)t===n&&(n="");else if('"'===t||"'"===t)n=t;else if(t===s[0]){if(!s[1])return{data:i,index:a};if(e[a+1]===s[1])return{data:i,index:a}}else"\t"===t&&(t=" ");i+=t}}(e,t+1,n);if(!i)return;let a=i.data;const r=i.index,o=a.search(/\s/);let l=a,d=!0;-1!==o&&(l=a.substring(0,o),a=a.substring(o+1).trimStart());const c=l;if(s){const e=l.indexOf(":");-1!==e&&(l=l.substr(e+1),d=l!==i.data.substr(e+1))}return{tagName:l,tagExp:a,closeIndex:r,attrExpPresent:d,rawTagName:c}}function v(e,t,s){const n=s;let i=1;for(;s<e.length;s++)if("<"===e[s])if("/"===e[s+1]){const a=p(e,">",s,`${t} is not closed`);if(e.substring(s+2,a).trim()===t&&(i--,0===i))return{tagContent:e.substring(n,s),i:a};s=a}else if("?"===e[s+1])s=p(e,"?>",s+1,"StopNode is not closed.");else if("!--"===e.substr(s+1,3))s=p(e,"--\x3e",s+3,"StopNode is not closed.");else if("!["===e.substr(s+1,2))s=p(e,"]]>",s,"StopNode is not closed.")-2;else{const n=h(e,s,">");n&&((n&&n.tagName)===t&&"/"!==n.tagExp[n.tagExp.length-1]&&i++,s=n.closeIndex)}}function w(t,s,i){if(s&&"string"==typeof t){const e=t.trim();return"true"===e||"false"!==e&&n(t,i)}return e.isExist(t)?t:""}return H=class{constructor(e){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(e,t)=>String.fromCharCode(Number.parseInt(t,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(e,t)=>String.fromCharCode(Number.parseInt(t,16))}},this.addExternalEntities=a,this.parseXml=c,this.parseTextData=r,this.resolveNameSpace=o,this.buildAttributesMap=d,this.isItStopNode=f,this.replaceEntitiesValue=u,this.readStopNodeData=v,this.saveTextToParentTag=g,this.addChild=m,this.ignoreAttributesFn=i(this.options.ignoreAttributes)}}}(),{prettify:s}=ae(),n=z();return Q=class{constructor(t){this.externalEntities={},this.options=e(t)}parse(e,i){if("string"==typeof e);else{if(!e.toString)throw new Error("XML data is accepted in String or Bytes[] form.");e=e.toString()}if(i){!0===i&&(i={});const t=n.validate(e,i);if(!0!==t)throw Error(`${t.err.msg}:${t.err.line}:${t.err.col}`)}const a=new t(this.options);a.addExternalEntities(this.externalEntities);const r=a.parseXml(e);return this.options.preserveOrder||void 0===r?r:s(r,this.options)}addEntity(e,t){if(-1!==t.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==e.indexOf("&")||-1!==e.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'");if("&"===t)throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=t}}}function oe(){if(Z)return J;function e(a,r,o,l){let d="",c=!1;for(let m=0;m<a.length;m++){const u=a[m],g=t(u);if(void 0===g)continue;let f="";if(f=0===o.length?g:`${o}.${g}`,g===r.textNodeName){let e=u[g];n(f,r)||(e=r.tagValueProcessor(g,e),e=i(e,r)),c&&(d+=l),d+=e,c=!1;continue}if(g===r.cdataPropName){c&&(d+=l),d+=`<![CDATA[${u[g][0][r.textNodeName]}]]>`,c=!1;continue}if(g===r.commentPropName){d+=l+`\x3c!--${u[g][0][r.textNodeName]}--\x3e`,c=!0;continue}if("?"===g[0]){const e=s(u[":@"],r),t="?xml"===g?"":l;let n=u[g][0][r.textNodeName];n=0!==n.length?" "+n:"",d+=t+`<${g}${n}${e}?>`,c=!0;continue}let p=l;""!==p&&(p+=r.indentBy);const h=l+`<${g}${s(u[":@"],r)}`,v=e(u[g],r,f,p);-1!==r.unpairedTags.indexOf(g)?r.suppressUnpairedNode?d+=h+">":d+=h+"/>":v&&0!==v.length||!r.suppressEmptyNode?v&&v.endsWith(">")?d+=h+`>${v}${l}</${g}>`:(d+=h+">",v&&""!==l&&(v.includes("/>")||v.includes("</"))?d+=l+r.indentBy+v+l:d+=v,d+=`</${g}>`):d+=h+"/>",c=!0}return d}function t(e){const t=Object.keys(e);for(let s=0;s<t.length;s++){const n=t[s];if(e.hasOwnProperty(n)&&":@"!==n)return n}}function s(e,t){let s="";if(e&&!t.ignoreAttributes)for(let n in e){if(!e.hasOwnProperty(n))continue;let a=t.attributeValueProcessor(n,e[n]);a=i(a,t),!0===a&&t.suppressBooleanAttributes?s+=` ${n.substr(t.attributeNamePrefix.length)}`:s+=` ${n.substr(t.attributeNamePrefix.length)}="${a}"`}return s}function n(e,t){let s=(e=e.substr(0,e.length-t.textNodeName.length-1)).substr(e.lastIndexOf(".")+1);for(let n in t.stopNodes)if(t.stopNodes[n]===e||t.stopNodes[n]==="*."+s)return!0;return!1}function i(e,t){if(e&&e.length>0&&t.processEntities)for(let s=0;s<t.entities.length;s++){const n=t.entities[s];e=e.replace(n.regex,n.val)}return e}return Z=1,J=function(t,s){let n="";return s.format&&s.indentBy.length>0&&(n="\n"),e(t,s,"",n)}}var le=function(){if(ne)return se;ne=1;const e=z(),t=re(),s=function(){if(te)return ee;te=1;const e=oe(),t=Y(),s={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function n(e){this.options=Object.assign({},s,e),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=t(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=r),this.processTextOrObjNode=i,this.options.format?(this.indentate=a,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function i(e,t,s,n){const i=this.j2x(e,s+1,n.concat(t));return void 0!==e[this.options.textNodeName]&&1===Object.keys(e).length?this.buildTextValNode(e[this.options.textNodeName],t,i.attrStr,s):this.buildObjectNode(i.val,t,i.attrStr,s)}function a(e){return this.options.indentBy.repeat(e)}function r(e){return!(!e.startsWith(this.options.attributeNamePrefix)||e===this.options.textNodeName)&&e.substr(this.attrPrefixLen)}return n.prototype.build=function(t){return this.options.preserveOrder?e(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},n.prototype.j2x=function(e,t,s){let n="",i="";const a=s.join(".");for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r))if(void 0===e[r])this.isAttribute(r)&&(i+="");else if(null===e[r])this.isAttribute(r)?i+="":"?"===r[0]?i+=this.indentate(t)+"<"+r+"?"+this.tagEndChar:i+=this.indentate(t)+"<"+r+"/"+this.tagEndChar;else if(e[r]instanceof Date)i+=this.buildTextValNode(e[r],r,"",t);else if("object"!=typeof e[r]){const s=this.isAttribute(r);if(s&&!this.ignoreAttributesFn(s,a))n+=this.buildAttrPairStr(s,""+e[r]);else if(!s)if(r===this.options.textNodeName){let t=this.options.tagValueProcessor(r,""+e[r]);i+=this.replaceEntitiesValue(t)}else i+=this.buildTextValNode(e[r],r,"",t)}else if(Array.isArray(e[r])){const n=e[r].length;let a="",o="";for(let l=0;l<n;l++){const n=e[r][l];if(void 0===n);else if(null===n)"?"===r[0]?i+=this.indentate(t)+"<"+r+"?"+this.tagEndChar:i+=this.indentate(t)+"<"+r+"/"+this.tagEndChar;else if("object"==typeof n)if(this.options.oneListGroup){const e=this.j2x(n,t+1,s.concat(r));a+=e.val,this.options.attributesGroupName&&n.hasOwnProperty(this.options.attributesGroupName)&&(o+=e.attrStr)}else a+=this.processTextOrObjNode(n,r,t,s);else if(this.options.oneListGroup){let e=this.options.tagValueProcessor(r,n);e=this.replaceEntitiesValue(e),a+=e}else a+=this.buildTextValNode(n,r,"",t)}this.options.oneListGroup&&(a=this.buildObjectNode(a,r,o,t)),i+=a}else if(this.options.attributesGroupName&&r===this.options.attributesGroupName){const t=Object.keys(e[r]),s=t.length;for(let i=0;i<s;i++)n+=this.buildAttrPairStr(t[i],""+e[r][t[i]])}else i+=this.processTextOrObjNode(e[r],r,t,s);return{attrStr:n,val:i}},n.prototype.buildAttrPairStr=function(e,t){return t=this.options.attributeValueProcessor(e,""+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&"true"===t?" "+e:" "+e+'="'+t+'"'},n.prototype.buildObjectNode=function(e,t,s,n){if(""===e)return"?"===t[0]?this.indentate(n)+"<"+t+s+"?"+this.tagEndChar:this.indentate(n)+"<"+t+s+this.closeTag(t)+this.tagEndChar;{let i="</"+t+this.tagEndChar,a="";return"?"===t[0]&&(a="?",i=""),!s&&""!==s||-1!==e.indexOf("<")?!1!==this.options.commentPropName&&t===this.options.commentPropName&&0===a.length?this.indentate(n)+`\x3c!--${e}--\x3e`+this.newLine:this.indentate(n)+"<"+t+s+a+this.tagEndChar+e+this.indentate(n)+i:this.indentate(n)+"<"+t+s+a+">"+e+i}},n.prototype.closeTag=function(e){let t="";return-1!==this.options.unpairedTags.indexOf(e)?this.options.suppressUnpairedNode||(t="/"):t=this.options.suppressEmptyNode?"/":`></${e}`,t},n.prototype.buildTextValNode=function(e,t,s,n){if(!1!==this.options.cdataPropName&&t===this.options.cdataPropName)return this.indentate(n)+`<![CDATA[${e}]]>`+this.newLine;if(!1!==this.options.commentPropName&&t===this.options.commentPropName)return this.indentate(n)+`\x3c!--${e}--\x3e`+this.newLine;if("?"===t[0])return this.indentate(n)+"<"+t+s+"?"+this.tagEndChar;{let i=this.options.tagValueProcessor(t,e);return i=this.replaceEntitiesValue(i),""===i?this.indentate(n)+"<"+t+s+this.closeTag(t)+this.tagEndChar:this.indentate(n)+"<"+t+s+">"+i+"</"+t+this.tagEndChar}},n.prototype.replaceEntitiesValue=function(e){if(e&&e.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){const s=this.options.entities[t];e=e.replace(s.regex,s.val)}return e},ee=n}();return se={XMLParser:t,XMLValidator:e,XMLBuilder:s}}();class de{_view;constructor(e){ce(e),this._view=e}get id(){return this._view.id}get name(){return this._view.name}get caption(){return this._view.caption}get emptyTitle(){return this._view.emptyTitle}get emptyCaption(){return this._view.emptyCaption}get getContents(){return this._view.getContents}get icon(){return this._view.icon}set icon(e){this._view.icon=e}get order(){return this._view.order}set order(e){this._view.order=e}get params(){return this._view.params}set params(e){this._view.params=e}get columns(){return this._view.columns}get emptyView(){return this._view.emptyView}get parent(){return this._view.parent}get sticky(){return this._view.sticky}get expanded(){return this._view.expanded}set expanded(e){this._view.expanded=e}get defaultSortKey(){return this._view.defaultSortKey}get loadChildViews(){return this._view.loadChildViews}}const ce=function(e){if(!e.id||"string"!=typeof e.id)throw new Error("View id is required and must be a string");if(!e.name||"string"!=typeof e.name)throw new Error("View name is required and must be a string");if("caption"in e&&"string"!=typeof e.caption)throw new Error("View caption must be a string");if(!e.getContents||"function"!=typeof e.getContents)throw new Error("View getContents is required and must be a function");if(!e.icon||"string"!=typeof e.icon||!function(e){if("string"!=typeof e)throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);if(0===(e=e.trim()).length)return!1;if(!0!==le.XMLValidator.validate(e))return!1;let t;const s=new le.XMLParser;try{t=s.parse(e)}catch{return!1}return!!t&&!!Object.keys(t).some((e=>"svg"===e.toLowerCase()))}(e.icon))throw new Error("View icon is required and must be a valid svg string");if("order"in e&&"number"!=typeof e.order)throw new Error("View order must be a number");if(e.columns&&e.columns.forEach((e=>{if(!(e instanceof S))throw new Error("View columns must be an array of Column. Invalid column found")})),e.emptyView&&"function"!=typeof e.emptyView)throw new Error("View emptyView must be a function");if(e.parent&&"string"!=typeof e.parent)throw new Error("View parent must be a string");if("sticky"in e&&"boolean"!=typeof e.sticky)throw new Error("View sticky must be a boolean");if("expanded"in e&&"boolean"!=typeof e.expanded)throw new Error("View expanded must be a boolean");if(e.defaultSortKey&&"string"!=typeof e.defaultSortKey)throw new Error("View defaultSortKey must be a string");if(e.loadChildViews&&"function"!=typeof e.loadChildViews)throw new Error("View loadChildViews must be a function");return!0};var me,ue,ge,fe;function pe(){if(ue)return me;ue=1;const e="object"==typeof l&&l.env&&l.env.NODE_DEBUG&&/\bsemver\b/i.test(l.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};return me=e}function he(){if(fe)return ge;fe=1;const e=Number.MAX_SAFE_INTEGER||9007199254740991;return ge={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:e,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}}var ve,we,Ae,be,Ce,ye,xe,ke,_e,Te,Se,Le={exports:{}};function Ne(){if(xe)return ye;xe=1;const e=pe(),{MAX_LENGTH:t,MAX_SAFE_INTEGER:s}=he(),{safeRe:n,t:i}=(ve||(ve=1,function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:s,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:i}=he(),a=pe(),r=(t=e.exports={}).re=[],o=t.safeRe=[],l=t.src=[],d=t.t={};let c=0;const m="[a-zA-Z0-9-]",u=[["\\s",1],["\\d",i],[m,n]],g=(e,t,s)=>{const n=(e=>{for(const[t,s]of u)e=e.split(`${t}*`).join(`${t}{0,${s}}`).split(`${t}+`).join(`${t}{1,${s}}`);return e})(t),i=c++;a(e,i,t),d[e]=i,l[i]=t,r[i]=new RegExp(t,s?"g":void 0),o[i]=new RegExp(n,s?"g":void 0)};g("NUMERICIDENTIFIER","0|[1-9]\\d*"),g("NUMERICIDENTIFIERLOOSE","\\d+"),g("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${m}*`),g("MAINVERSION",`(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})`),g("MAINVERSIONLOOSE",`(${l[d.NUMERICIDENTIFIERLOOSE]})\\.(${l[d.NUMERICIDENTIFIERLOOSE]})\\.(${l[d.NUMERICIDENTIFIERLOOSE]})`),g("PRERELEASEIDENTIFIER",`(?:${l[d.NUMERICIDENTIFIER]}|${l[d.NONNUMERICIDENTIFIER]})`),g("PRERELEASEIDENTIFIERLOOSE",`(?:${l[d.NUMERICIDENTIFIERLOOSE]}|${l[d.NONNUMERICIDENTIFIER]})`),g("PRERELEASE",`(?:-(${l[d.PRERELEASEIDENTIFIER]}(?:\\.${l[d.PRERELEASEIDENTIFIER]})*))`),g("PRERELEASELOOSE",`(?:-?(${l[d.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[d.PRERELEASEIDENTIFIERLOOSE]})*))`),g("BUILDIDENTIFIER",`${m}+`),g("BUILD",`(?:\\+(${l[d.BUILDIDENTIFIER]}(?:\\.${l[d.BUILDIDENTIFIER]})*))`),g("FULLPLAIN",`v?${l[d.MAINVERSION]}${l[d.PRERELEASE]}?${l[d.BUILD]}?`),g("FULL",`^${l[d.FULLPLAIN]}$`),g("LOOSEPLAIN",`[v=\\s]*${l[d.MAINVERSIONLOOSE]}${l[d.PRERELEASELOOSE]}?${l[d.BUILD]}?`),g("LOOSE",`^${l[d.LOOSEPLAIN]}$`),g("GTLT","((?:<|>)?=?)"),g("XRANGEIDENTIFIERLOOSE",`${l[d.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),g("XRANGEIDENTIFIER",`${l[d.NUMERICIDENTIFIER]}|x|X|\\*`),g("XRANGEPLAIN",`[v=\\s]*(${l[d.XRANGEIDENTIFIER]})(?:\\.(${l[d.XRANGEIDENTIFIER]})(?:\\.(${l[d.XRANGEIDENTIFIER]})(?:${l[d.PRERELEASE]})?${l[d.BUILD]}?)?)?`),g("XRANGEPLAINLOOSE",`[v=\\s]*(${l[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[d.XRANGEIDENTIFIERLOOSE]})(?:${l[d.PRERELEASELOOSE]})?${l[d.BUILD]}?)?)?`),g("XRANGE",`^${l[d.GTLT]}\\s*${l[d.XRANGEPLAIN]}$`),g("XRANGELOOSE",`^${l[d.GTLT]}\\s*${l[d.XRANGEPLAINLOOSE]}$`),g("COERCEPLAIN",`(^|[^\\d])(\\d{1,${s}})(?:\\.(\\d{1,${s}}))?(?:\\.(\\d{1,${s}}))?`),g("COERCE",`${l[d.COERCEPLAIN]}(?:$|[^\\d])`),g("COERCEFULL",l[d.COERCEPLAIN]+`(?:${l[d.PRERELEASE]})?(?:${l[d.BUILD]})?(?:$|[^\\d])`),g("COERCERTL",l[d.COERCE],!0),g("COERCERTLFULL",l[d.COERCEFULL],!0),g("LONETILDE","(?:~>?)"),g("TILDETRIM",`(\\s*)${l[d.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",g("TILDE",`^${l[d.LONETILDE]}${l[d.XRANGEPLAIN]}$`),g("TILDELOOSE",`^${l[d.LONETILDE]}${l[d.XRANGEPLAINLOOSE]}$`),g("LONECARET","(?:\\^)"),g("CARETTRIM",`(\\s*)${l[d.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",g("CARET",`^${l[d.LONECARET]}${l[d.XRANGEPLAIN]}$`),g("CARETLOOSE",`^${l[d.LONECARET]}${l[d.XRANGEPLAINLOOSE]}$`),g("COMPARATORLOOSE",`^${l[d.GTLT]}\\s*(${l[d.LOOSEPLAIN]})$|^$`),g("COMPARATOR",`^${l[d.GTLT]}\\s*(${l[d.FULLPLAIN]})$|^$`),g("COMPARATORTRIM",`(\\s*)${l[d.GTLT]}\\s*(${l[d.LOOSEPLAIN]}|${l[d.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",g("HYPHENRANGE",`^\\s*(${l[d.XRANGEPLAIN]})\\s+-\\s+(${l[d.XRANGEPLAIN]})\\s*$`),g("HYPHENRANGELOOSE",`^\\s*(${l[d.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[d.XRANGEPLAINLOOSE]})\\s*$`),g("STAR","(<|>)?=?\\s*\\*"),g("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),g("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(Le,Le.exports)),Le.exports),a=function(){if(Ae)return we;Ae=1;const e=Object.freeze({loose:!0}),t=Object.freeze({});return we=s=>s?"object"!=typeof s?e:s:t}(),{compareIdentifiers:r}=function(){if(Ce)return be;Ce=1;const e=/^[0-9]+$/,t=(t,s)=>{const n=e.test(t),i=e.test(s);return n&&i&&(t=+t,s=+s),t===s?0:n&&!i?-1:i&&!n?1:t<s?-1:1};return be={compareIdentifiers:t,rcompareIdentifiers:(e,s)=>t(s,e)}}();class o{constructor(r,l){if(l=a(l),r instanceof o){if(r.loose===!!l.loose&&r.includePrerelease===!!l.includePrerelease)return r;r=r.version}else if("string"!=typeof r)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof r}".`);if(r.length>t)throw new TypeError(`version is longer than ${t} characters`);e("SemVer",r,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;const d=r.trim().match(l.loose?n[i.LOOSE]:n[i.FULL]);if(!d)throw new TypeError(`Invalid Version: ${r}`);if(this.raw=r,this.major=+d[1],this.minor=+d[2],this.patch=+d[3],this.major>s||this.major<0)throw new TypeError("Invalid major version");if(this.minor>s||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>s||this.patch<0)throw new TypeError("Invalid patch version");d[4]?this.prerelease=d[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<s)return t}return e})):this.prerelease=[],this.build=d[5]?d[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(e("SemVer.compare",this.version,this.options,t),!(t instanceof o)){if("string"==typeof t&&t===this.version)return 0;t=new o(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(e){return e instanceof o||(e=new o(e,this.options)),r(this.major,e.major)||r(this.minor,e.minor)||r(this.patch,e.patch)}comparePre(t){if(t instanceof o||(t=new o(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let s=0;do{const n=this.prerelease[s],i=t.prerelease[s];if(e("prerelease compare",s,n,i),void 0===n&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===n)return-1;if(n!==i)return r(n,i)}while(++s)}compareBuild(t){t instanceof o||(t=new o(t,this.options));let s=0;do{const n=this.build[s],i=t.build[s];if(e("build compare",s,n,i),void 0===n&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===n)return-1;if(n!==i)return r(n,i)}while(++s)}inc(e,t,s){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,s);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,s);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,s),this.inc("pre",t,s);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t,s),this.inc("pre",t,s);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":{const e=Number(s)?1:0;if(!t&&!1===s)throw new Error("invalid increment argument: identifier is empty");if(0===this.prerelease.length)this.prerelease=[e];else{let n=this.prerelease.length;for(;--n>=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);if(-1===n){if(t===this.prerelease.join(".")&&!1===s)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(t){let n=[t,e];!1===s&&(n=[t]),0===r(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return ye=o}const Fe=N(function(){if(Se)return Te;Se=1;const e=function(){if(_e)return ke;_e=1;const e=Ne();return ke=(t,s,n=!1)=>{if(t instanceof e)return t;try{return new e(t,s)}catch(e){if(!n)return null;throw e}}}();return Te=(t,s)=>{const n=e(t,s);return n?n.version:null}}());var Ee,Ue;const Ie=N(function(){if(Ue)return Ee;Ue=1;const e=Ne();return Ee=(t,s)=>new e(t,s).major}());class Pe{bus;constructor(e){"function"==typeof e.getVersion&&Fe(e.getVersion())?Ie(e.getVersion())!==Ie(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()):console.warn("Proxying an event bus with an unknown or invalid version"),this.bus=e}getVersion(){return"3.3.1"}subscribe(e,t){this.bus.subscribe(e,t)}unsubscribe(e,t){this.bus.unsubscribe(e,t)}emit(e,t){this.bus.emit(e,t)}}class ze{handlers=new Map;getVersion(){return"3.3.1"}subscribe(e,t){this.handlers.set(e,(this.handlers.get(e)||[]).concat(t))}unsubscribe(e,t){this.handlers.set(e,(this.handlers.get(e)||[]).filter((e=>e!==t)))}emit(e,t){(this.handlers.get(e)||[]).forEach((e=>{try{e(t)}catch(e){console.error("could not invoke event listener",e)}}))}}let Be=null;function De(e,t){(null!==Be?Be:"undefined"==typeof window?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&void 0===window._nc_event_bus&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),Be=void 0!==window?._nc_event_bus?new Pe(window._nc_event_bus):window._nc_event_bus=new ze,Be)).emit(e,t)}class Oe extends o.m{id;order;constructor(e,t=100){super(),this.id=e,this.order=t}filter(e){throw new Error("Not implemented")}updateChips(e){this.dispatchTypedEvent("update:chips",new CustomEvent("update:chips",{detail:e}))}filterUpdated(){this.dispatchTypedEvent("update:filter",new CustomEvent("update:filter"))}}function Re(e){if(window._nc_filelist_filters||(window._nc_filelist_filters=new Map),window._nc_filelist_filters.has(e.id))throw new Error(`File list filter "${e.id}" already registered`);window._nc_filelist_filters.set(e.id,e),De("files:filter:added",e)}function je(e){window._nc_filelist_filters&&window._nc_filelist_filters.has(e)&&(window._nc_filelist_filters.delete(e),De("files:filter:removed",e))}function Me(){return window._nc_filelist_filters?[...window._nc_filelist_filters.values()]:[]}const Ve=function(e){return(void 0===window._nc_newfilemenu&&(window._nc_newfilemenu=new c,n.o.debug("NewFileMenu initialized")),window._nc_newfilemenu).getEntries(e).sort(((e,t)=>void 0!==e.order&&void 0!==t.order&&e.order!==t.order?e.order-t.order:e.displayName.localeCompare(t.displayName,void 0,{numeric:!0,sensitivity:"base"})))}},96111:(e,t,s)=>{s.d(t,{S:()=>E,U:()=>Q,a:()=>P,b:()=>O,g:()=>X,h:()=>Y,i:()=>I,l:()=>S,n:()=>V,o:()=>J,t:()=>R}),s(59733);var n=s(82680),i=s(85471),a=s(21777),r=s(35810),o=s(71225),l=s(43627),d=s(87485),c=s(65043),m=s(53553),u=s(57994),g=s(63814),f=s(11950),p=s(35947),h=s(11195),v=s(94205),w=s(75270),A=s(57505),b=s(75625),C=s(15502),y=s(24764),x=s(70995),k=s(6695),_=s(95101),T=s(85168);const S=(0,p.YK)().setApp("@nextcloud/upload").detectUser().build();(0,f.Ay)(c.Ay,{retries:0});const L=async function(e,t,s,n=()=>{},i=void 0,a={},r=5){let o;return o=t instanceof Blob?t:await t(),i&&(a.Destination=i),a["Content-Type"]||(a["Content-Type"]="application/octet-stream"),await c.Ay.request({method:"PUT",url:e,data:o,signal:s,onUploadProgress:n,headers:a,"axios-retry":{retries:r,retryDelay:(e,t)=>(0,f.Nv)(e,t,1e3)}})},N=function(e,t,s){return 0===t&&e.size<=s?Promise.resolve(new Blob([e],{type:e.type||"application/octet-stream"})):Promise.resolve(new Blob([e.slice(t,t+s)],{type:"application/octet-stream"}))},F=function(e=void 0){const t=window.OC?.appConfig?.files?.max_chunk_size;if(t<=0)return 0;if(!Number(t))return 10485760;const s=Math.max(Number(t),5242880);return void 0===e?s:Math.max(s,Math.ceil(e/1e4))};var E=(e=>(e[e.INITIALIZED=0]="INITIALIZED",e[e.UPLOADING=1]="UPLOADING",e[e.ASSEMBLING=2]="ASSEMBLING",e[e.FINISHED=3]="FINISHED",e[e.CANCELLED=4]="CANCELLED",e[e.FAILED=5]="FAILED",e))(E||{});class U{_source;_file;_isChunked;_chunks;_size;_uploaded=0;_startTime=0;_status=0;_controller;_response=null;constructor(e,t=!1,s,n){const i=Math.min(F()>0?Math.ceil(s/F()):1,1e4);this._source=e,this._isChunked=t&&F()>0&&i>1,this._chunks=this._isChunked?i:1,this._size=s,this._file=n,this._controller=new AbortController}get source(){return this._source}get file(){return this._file}get isChunked(){return this._isChunked}get chunks(){return this._chunks}get size(){return this._size}get startTime(){return this._startTime}set response(e){this._response=e}get response(){return this._response}get uploaded(){return this._uploaded}set uploaded(e){if(e>=this._size)return this._status=this._isChunked?2:3,void(this._uploaded=this._size);this._status=1,this._uploaded=e,0===this._startTime&&(this._startTime=(new Date).getTime())}get status(){return this._status}set status(e){this._status=e}get signal(){return this._controller.signal}cancel(){this._controller.abort(),this._status=4}}const I=e=>"FileSystemFileEntry"in window&&e instanceof FileSystemFileEntry,P=e=>"FileSystemEntry"in window&&e instanceof FileSystemEntry;class z extends File{_originalName;_path;_children;constructor(e){super([],(0,o.P8)(e),{type:"httpd/unix-directory",lastModified:0}),this._children=new Map,this._originalName=(0,o.P8)(e),this._path=e}get size(){return this.children.reduce(((e,t)=>e+t.size),0)}get lastModified(){return this.children.reduce(((e,t)=>Math.max(e,t.lastModified)),0)}get originalName(){return this._originalName}get children(){return Array.from(this._children.values())}get webkitRelativePath(){return this._path}getChild(e){return this._children.get(e)??null}async addChildren(e){for(const t of e)await this.addChild(t)}async addChild(e){const t=this._path&&`${this._path}/`;if(I(e))e=await new Promise(((t,s)=>e.file(t,s)));else if("FileSystemDirectoryEntry"in window&&e instanceof FileSystemDirectoryEntry){const s=e.createReader(),n=await new Promise(((e,t)=>s.readEntries(e,t))),i=new z(`${t}${e.name}`);return await i.addChildren(n),void this._children.set(e.name,i)}const s=e.webkitRelativePath??e.name;if(s.includes("/")){if(!s.startsWith(this._path))throw new Error(`File ${s} is not a child of ${this._path}`);const n=s.slice(t.length),i=(0,o.P8)(n);if(i===n)this._children.set(i,e);else{const s=n.slice(0,n.indexOf("/"));if(this._children.has(s))await this._children.get(s).addChild(e);else{const n=new z(`${t}${s}`);await n.addChild(e),this._children.set(s,n)}}}else this._children.set(e.name,e)}}const B=(0,h.$)().detectLocale();[{locale:"af",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)","Content-Type":"text/plain; charset=UTF-8",Language:"af","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: af\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ar",json:{charset:"utf-8",headers:{"Last-Translator":"abusaud, 2024","Language-Team":"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)","Content-Type":"text/plain; charset=UTF-8",Language:"ar","Plural-Forms":"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nAli <alimahwer@yahoo.com>, 2024\nabusaud, 2024\n"},msgstr:["Last-Translator: abusaud, 2024\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar\nPlural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" هو اسم ممنوع لملف أو مجلد.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" هو نوع ممنوع أن يكون لملف.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" هو غير مسموح به في اسم ملف أو مجلد.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ملف متعارض","{count} ملف متعارض","{count} ملفان متعارضان","{count} ملف متعارض","{count} ملفات متعارضة","{count} ملفات متعارضة"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} ملف متعارض في {dirname}","{count} ملف متعارض في {dirname}","{count} ملفان متعارضان في {dirname}","{count} ملف متعارض في {dirname}","{count} ملفات متعارضة في {dirname}","{count} ملفات متعارضة في {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} ثانية متبقية"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} متبقية"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["بضع ثوانٍ متبقية"]},Cancel:{msgid:"Cancel",msgstr:["إلغاء"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["إلغِ العملية بالكامل"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["إلغاء عمليات رفع الملفات"]},Continue:{msgid:"Continue",msgstr:["إستمر"]},"Create new":{msgid:"Create new",msgstr:["إنشاء جديد"]},"estimating time left":{msgid:"estimating time left",msgstr:["تقدير الوقت المتبقي"]},"Existing version":{msgid:"Existing version",msgstr:["الإصدار الحالي"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['غير مسموح ان ينتهي اسم الملف بـ "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["إذا اخترت الاحتفاظ بالنسختين فسيتم إلحاق رقم عداد آخر اسم الملف الوارد."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["اسم ملف غير صحيح"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["تاريخ آخر تعديل غير معروف"]},New:{msgid:"New",msgstr:["جديد"]},"New filename":{msgid:"New filename",msgstr:["اسم ملف جديد"]},"New version":{msgid:"New version",msgstr:["نسخة جديدة"]},paused:{msgid:"paused",msgstr:["مُجمَّد"]},"Preview image":{msgid:"Preview image",msgstr:["معاينة الصورة"]},Rename:{msgid:"Rename",msgstr:["تغيير التسمية"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["حدِّد كل صناديق الخيارات"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["حدِّد كل الملفات الموجودة"]},"Select all new files":{msgid:"Select all new files",msgstr:["حدِّد كل الملفات الجديدة"]},Skip:{msgid:"Skip",msgstr:["تخطِّي"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف"]},"Unknown size":{msgid:"Unknown size",msgstr:["حجم غير معلوم"]},Upload:{msgid:"Upload",msgstr:["رفع الملفات"]},"Upload files":{msgid:"Upload files",msgstr:["رفع ملفات"]},"Upload folders":{msgid:"Upload folders",msgstr:["رفع مجلدات"]},"Upload from device":{msgid:"Upload from device",msgstr:["الرفع من جهاز "]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["تمّ إلغاء عملية رفع الملفات"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["تمّ تجاوز الرفع"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['رفع "{folder}" تمّ تجاوزه']},"Upload progress":{msgid:"Upload progress",msgstr:["تقدُّم الرفع "]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["عند تحديد مجلد وارد، ستتم كتابة المحتوى في المجلد الموجود و سيتم تنفيذ حل التعارض بشكل تعاوُدي."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["أيُّ الملفات ترغب في الإبقاء عليها؟"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["يمكنك إمّا تغيير اسم الملف، أو تجاوزه، أو إلغاء العملية برُمَّتها."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار."]}}}}},{locale:"ast",json:{charset:"utf-8",headers:{"Last-Translator":"enolp <enolp@softastur.org>, 2023","Language-Team":"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)","Content-Type":"text/plain; charset=UTF-8",Language:"ast","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nenolp <enolp@softastur.org>, 2023\n"},msgstr:["Last-Translator: enolp <enolp@softastur.org>, 2023\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ast\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ficheru en coflictu","{count} ficheros en coflictu"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} ficheru en coflictu en {dirname}","{count} ficheros en coflictu en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Queden {seconds} segundos"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Tiempu que queda: {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["queden unos segundos"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Encaboxar les xubes"]},Continue:{msgid:"Continue",msgstr:["Siguir"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando'l tiempu que falta"]},"Existing version":{msgid:"Existing version",msgstr:["Versión esistente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["La data de la última modificación ye desconocida"]},New:{msgid:"New",msgstr:["Nuevu"]},"New version":{msgid:"New version",msgstr:["Versión nueva"]},paused:{msgid:"paused",msgstr:["en posa"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar la imaxe"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar toles caxelles"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleicionar tolos ficheros esistentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleicionar tolos ficheros nuevos"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Saltar esti ficheru","Saltar {count} ficheros"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamañu desconocíu"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Encaboxóse la xuba"]},"Upload files":{msgid:"Upload files",msgstr:["Xubir ficheros"]},"Upload progress":{msgid:"Upload progress",msgstr:["Xuba en cursu"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué ficheros quies caltener?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Tienes de seleicionar polo menos una versión de cada ficheru pa siguir."]}}}}},{locale:"az",json:{charset:"utf-8",headers:{"Last-Translator":"Rashad Aliyev <microphprashad@gmail.com>, 2023","Language-Team":"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)","Content-Type":"text/plain; charset=UTF-8",Language:"az","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRashad Aliyev <microphprashad@gmail.com>, 2023\n"},msgstr:["Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: az\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saniyə qalıb"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} qalıb"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir neçə saniyə qalıb"]},Add:{msgid:"Add",msgstr:["Əlavə et"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yükləməni imtina et"]},"estimating time left":{msgid:"estimating time left",msgstr:["Təxmini qalan vaxt"]},paused:{msgid:"paused",msgstr:["pauzadadır"]},"Upload files":{msgid:"Upload files",msgstr:["Faylları yüklə"]}}}}},{locale:"be",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)","Content-Type":"text/plain; charset=UTF-8",Language:"be","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: be\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bg",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)","Content-Type":"text/plain; charset=UTF-8",Language:"bg_BG","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bg_BG\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bn_BD",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)","Content-Type":"text/plain; charset=UTF-8",Language:"bn_BD","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bn_BD\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"br",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)","Content-Type":"text/plain; charset=UTF-8",Language:"br","Plural-Forms":"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: br\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bs",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)","Content-Type":"text/plain; charset=UTF-8",Language:"bs","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bs\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ca",json:{charset:"utf-8",headers:{"Last-Translator":"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022","Language-Team":"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)","Content-Type":"text/plain; charset=UTF-8",Language:"ca","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMarc Riera <marcriera@softcatala.org>, 2022\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\n"},msgstr:["Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ca\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Queden {seconds} segons"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["Queden {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Queden uns segons"]},Add:{msgid:"Add",msgstr:["Afegeix"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancel·la les pujades"]},"estimating time left":{msgid:"estimating time left",msgstr:["S'està estimant el temps restant"]},paused:{msgid:"paused",msgstr:["En pausa"]},"Upload files":{msgid:"Upload files",msgstr:["Puja els fitxers"]}}}}},{locale:"cs",json:{charset:"utf-8",headers:{"Last-Translator":"Pavel Borecki <pavel.borecki@gmail.com>, 2024","Language-Team":"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)","Content-Type":"text/plain; charset=UTF-8",Language:"cs_CZ","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\nMartin Hankovec, 2024\nAppukonrad <appukonrad@gmail.com>, 2024\nPavel Borecki <pavel.borecki@gmail.com>, 2024\n"},msgstr:["Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2024\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs_CZ\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}“ není povoleno použít jako název souboru či složky."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["„{segment}“ není povoleného typu souboru."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["„{segment}“ není povoleno použít v rámci názvu souboru či složky."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} kolize souborů","{count} kolize souborů","{count} kolizí souborů","{count} kolize souborů"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} kolize souboru v {dirname}","{count} kolize souboru v {dirname}","{count} kolizí souborů v {dirname}","{count} kolize souboru v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["zbývá {seconds}"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["zbývá {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["zbývá několik sekund"]},Cancel:{msgid:"Cancel",msgstr:["Zrušit"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Zrušit celou operaci"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Zrušit nahrávání"]},Continue:{msgid:"Continue",msgstr:["Pokračovat"]},"Create new":{msgid:"Create new",msgstr:["Vytvořit nový"]},"estimating time left":{msgid:"estimating time left",msgstr:["odhaduje se zbývající čas"]},"Existing version":{msgid:"Existing version",msgstr:["Existující verze"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Názvy souborů nemohou končit na „{segment}“."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Pokud vyberete obě verze, příchozí soubor bude mít ke jménu přidánu číslici."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Neplatný název souboru"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Neznámé datum poslední úpravy"]},New:{msgid:"New",msgstr:["Nové"]},"New filename":{msgid:"New filename",msgstr:["Nový název souboru"]},"New version":{msgid:"New version",msgstr:["Nová verze"]},paused:{msgid:"paused",msgstr:["pozastaveno"]},"Preview image":{msgid:"Preview image",msgstr:["Náhled obrázku"]},Rename:{msgid:"Rename",msgstr:["Přejmenovat"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Označit všechny zaškrtávací kolonky"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vybrat veškeré stávající soubory"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vybrat veškeré nové soubory"]},Skip:{msgid:"Skip",msgstr:["Přeskočit"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Přeskočit tento soubor","Přeskočit {count} soubory","Přeskočit {count} souborů","Přeskočit {count} soubory"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznámá velikost"]},Upload:{msgid:"Upload",msgstr:["Nahrát"]},"Upload files":{msgid:"Upload files",msgstr:["Nahrát soubory"]},"Upload folders":{msgid:"Upload folders",msgstr:["Nahrát složky"]},"Upload from device":{msgid:"Upload from device",msgstr:["Nahrát ze zařízení"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Nahrávání bylo zrušeno"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Nahrání bylo přeskočeno"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Nahrání „{folder}“ bylo přeskočeno"]},"Upload progress":{msgid:"Upload progress",msgstr:["Postup v nahrávání"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Když je vybrána příchozí složka, obsah je zapsán do existující složky a je provedeno rekurzivní řešení kolizí."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Které soubory si přejete ponechat?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Soubor je možné buď přejmenovat, přeskočit nebo celou operaci zrušit."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru."]}}}}},{locale:"cy_GB",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)","Content-Type":"text/plain; charset=UTF-8",Language:"cy_GB","Plural-Forms":"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cy_GB\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"da",json:{charset:"utf-8",headers:{"Last-Translator":"Martin Bonde <Martin@maboni.dk>, 2024","Language-Team":"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)","Content-Type":"text/plain; charset=UTF-8",Language:"da","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nRasmus Rosendahl-Kaa, 2024\nMartin Bonde <Martin@maboni.dk>, 2024\n"},msgstr:["Last-Translator: Martin Bonde <Martin@maboni.dk>, 2024\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: da\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" er et forbudt fil- eller mappenavn.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" er en forbudt filtype.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" er ikke tilladt i et fil- eller mappenavn.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fil konflikt","{count} filer i konflikt"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fil konflikt i {dirname}","{count} filer i konflikt i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{sekunder} sekunder tilbage"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tilbage"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["et par sekunder tilbage"]},Cancel:{msgid:"Cancel",msgstr:["Annuller"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annuller hele handlingen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annuller uploads"]},Continue:{msgid:"Continue",msgstr:["Fortsæt"]},"Create new":{msgid:"Create new",msgstr:["Opret ny"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimering af resterende tid"]},"Existing version":{msgid:"Existing version",msgstr:["Eksisterende version"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filnavne må ikke slutte med "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ugyldigt filnavn"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Sidste modifikationsdato ukendt"]},New:{msgid:"New",msgstr:["Ny"]},"New filename":{msgid:"New filename",msgstr:["Nyt filnavn"]},"New version":{msgid:"New version",msgstr:["Ny version"]},paused:{msgid:"paused",msgstr:["pauset"]},"Preview image":{msgid:"Preview image",msgstr:["Forhåndsvisning af billede"]},Rename:{msgid:"Rename",msgstr:["Omdøb"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Vælg alle felter"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vælg alle eksisterende filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vælg alle nye filer"]},Skip:{msgid:"Skip",msgstr:["Spring over"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Spring denne fil over","Spring {count} filer over"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukendt størrelse"]},Upload:{msgid:"Upload",msgstr:["Upload"]},"Upload files":{msgid:"Upload files",msgstr:["Upload filer"]},"Upload folders":{msgid:"Upload folders",msgstr:["Upload mapper"]},"Upload from device":{msgid:"Upload from device",msgstr:["Upload fra enhed"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Upload er blevet annulleret"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Upload er blevet sprunget over"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Upload af "{folder}" er blevet sprunget over']},"Upload progress":{msgid:"Upload progress",msgstr:["Upload fremskridt"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en indkommende mappe er valgt, vil dens indhold blive skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer ønsker du at beholde?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kan enten omdøbe filen, springe denne fil over eller annullere hele handlingen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du skal vælge mindst én version af hver fil for at fortsætte."]}}}}},{locale:"de",json:{charset:"utf-8",headers:{"Last-Translator":"Andy Scherzinger <info@andy-scherzinger.de>, 2024","Language-Team":"German (https://app.transifex.com/nextcloud/teams/64236/de/)","Content-Type":"text/plain; charset=UTF-8",Language:"de","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\nMartin Wilichowski, 2024\nAndy Scherzinger <info@andy-scherzinger.de>, 2024\n"},msgstr:["Last-Translator: Andy Scherzinger <info@andy-scherzinger.de>, 2024\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" ist ein verbotener Datei- oder Ordnername.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" ist ein verbotener Dateityp.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ist in einem Datei- oder Ordnernamen nicht zulässig.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Datei-Konflikt","{count} Datei-Konflikte"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} Datei-Konflikt in {dirname}","{count} Datei-Konflikte in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} Sekunden verbleiben"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} verbleibend"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["ein paar Sekunden verbleiben"]},Cancel:{msgid:"Cancel",msgstr:["Abbrechen"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hochladen abbrechen"]},Continue:{msgid:"Continue",msgstr:["Fortsetzen"]},"Create new":{msgid:"Create new",msgstr:["Neu erstellen"]},"estimating time left":{msgid:"estimating time left",msgstr:["Geschätzte verbleibende Zeit"]},"Existing version":{msgid:"Existing version",msgstr:["Vorhandene Version"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Dateinamen dürfen nicht mit "{segment}" enden.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Wenn du beide Versionen auswählst, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ungültiger Dateiname"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},New:{msgid:"New",msgstr:["Neu"]},"New filename":{msgid:"New filename",msgstr:["Neuer Dateiname"]},"New version":{msgid:"New version",msgstr:["Neue Version"]},paused:{msgid:"paused",msgstr:["Pausiert"]},"Preview image":{msgid:"Preview image",msgstr:["Vorschaubild"]},Rename:{msgid:"Rename",msgstr:["Umbenennen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},"Select all new files":{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},Skip:{msgid:"Skip",msgstr:["Überspringen"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Diese Datei überspringen","{count} Dateien überspringen"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unbekannte Größe"]},Upload:{msgid:"Upload",msgstr:["Hochladen"]},"Upload files":{msgid:"Upload files",msgstr:["Dateien hochladen"]},"Upload folders":{msgid:"Upload folders",msgstr:["Ordner hochladen"]},"Upload from device":{msgid:"Upload from device",msgstr:["Vom Gerät hochladen"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Das Hochladen wurde abgebrochen"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Das Hochladen wurde übersprungen"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Das Hochladen von "{folder}" wurde übersprungen']},"Upload progress":{msgid:"Upload progress",msgstr:["Fortschritt beim Hochladen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien möchtest du behalten?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kannst die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren."]}}}}},{locale:"de_DE",json:{charset:"utf-8",headers:{"Last-Translator":"Mark Ziegler <mark.ziegler@rakekniven.de>, 2024","Language-Team":"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)","Content-Type":"text/plain; charset=UTF-8",Language:"de_DE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\nMark Ziegler <mark.ziegler@rakekniven.de>, 2024\n"},msgstr:["Last-Translator: Mark Ziegler <mark.ziegler@rakekniven.de>, 2024\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de_DE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" ist ein verbotener Datei- oder Ordnername.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" ist ein verbotener Dateityp.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ist in einem Datei- oder Ordnernamen nicht zulässig.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Datei-Konflikt","{count} Datei-Konflikte"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} Datei-Konflikt in {dirname}","{count} Datei-Konflikte in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} Sekunden verbleiben"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} verbleibend"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["ein paar Sekunden verbleiben"]},Cancel:{msgid:"Cancel",msgstr:["Abbrechen"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hochladen abbrechen"]},Continue:{msgid:"Continue",msgstr:["Fortsetzen"]},"Create new":{msgid:"Create new",msgstr:["Neu erstellen"]},"estimating time left":{msgid:"estimating time left",msgstr:["Berechne verbleibende Zeit"]},"Existing version":{msgid:"Existing version",msgstr:["Vorhandene Version"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Dateinamen dürfen nicht mit "{segment}" enden.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Wenn Sie beide Versionen auswählen, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ungültiger Dateiname"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},New:{msgid:"New",msgstr:["Neu"]},"New filename":{msgid:"New filename",msgstr:["Neuer Dateiname"]},"New version":{msgid:"New version",msgstr:["Neue Version"]},paused:{msgid:"paused",msgstr:["Pausiert"]},"Preview image":{msgid:"Preview image",msgstr:["Vorschaubild"]},Rename:{msgid:"Rename",msgstr:["Umbenennen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},"Select all new files":{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},Skip:{msgid:"Skip",msgstr:["Überspringen"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count} Datei überspringen","{count} Dateien überspringen"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unbekannte Größe"]},Upload:{msgid:"Upload",msgstr:["Hochladen"]},"Upload files":{msgid:"Upload files",msgstr:["Dateien hochladen"]},"Upload folders":{msgid:"Upload folders",msgstr:["Ordner hochladen"]},"Upload from device":{msgid:"Upload from device",msgstr:["Vom Gerät hochladen"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Das Hochladen wurde abgebrochen"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Das Hochladen wurde übersprungen"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Das Hochladen von "{folder}" wurde übersprungen']},"Upload progress":{msgid:"Upload progress",msgstr:["Fortschritt beim Hochladen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien möchten Sie behalten?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Sie können die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren."]}}}}},{locale:"el",json:{charset:"utf-8",headers:{"Last-Translator":"Nik Pap, 2022","Language-Team":"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)","Content-Type":"text/plain; charset=UTF-8",Language:"el","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nNik Pap, 2022\n"},msgstr:["Last-Translator: Nik Pap, 2022\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["απομένουν {seconds} δευτερόλεπτα"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["απομένουν {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["απομένουν λίγα δευτερόλεπτα"]},Add:{msgid:"Add",msgstr:["Προσθήκη"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Ακύρωση μεταφορτώσεων"]},"estimating time left":{msgid:"estimating time left",msgstr:["εκτίμηση του χρόνου που απομένει"]},paused:{msgid:"paused",msgstr:["σε παύση"]},"Upload files":{msgid:"Upload files",msgstr:["Μεταφόρτωση αρχείων"]}}}}},{locale:"en_GB",json:{charset:"utf-8",headers:{"Last-Translator":"Andi Chandler <andi@gowling.com>, 2024","Language-Team":"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)","Content-Type":"text/plain; charset=UTF-8",Language:"en_GB","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nAndi Chandler <andi@gowling.com>, 2024\n"},msgstr:["Last-Translator: Andi Chandler <andi@gowling.com>, 2024\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: en_GB\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" is a forbidden file or folder name.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" is a forbidden file type.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" is not allowed inside a file or folder name.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file conflict","{count} files conflict"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file conflict in {dirname}","{count} file conflicts in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} seconds left"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} left"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["a few seconds left"]},Cancel:{msgid:"Cancel",msgstr:["Cancel"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancel the entire operation"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancel uploads"]},Continue:{msgid:"Continue",msgstr:["Continue"]},"Create new":{msgid:"Create new",msgstr:["Create new"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimating time left"]},"Existing version":{msgid:"Existing version",msgstr:["Existing version"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filenames must not end with "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["If you select both versions, the incoming file will have a number added to its name."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Invalid filename"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Last modified date unknown"]},New:{msgid:"New",msgstr:["New"]},"New filename":{msgid:"New filename",msgstr:["New filename"]},"New version":{msgid:"New version",msgstr:["New version"]},paused:{msgid:"paused",msgstr:["paused"]},"Preview image":{msgid:"Preview image",msgstr:["Preview image"]},Rename:{msgid:"Rename",msgstr:["Rename"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Select all checkboxes"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Select all existing files"]},"Select all new files":{msgid:"Select all new files",msgstr:["Select all new files"]},Skip:{msgid:"Skip",msgstr:["Skip"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Skip this file","Skip {count} files"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unknown size"]},Upload:{msgid:"Upload",msgstr:["Upload"]},"Upload files":{msgid:"Upload files",msgstr:["Upload files"]},"Upload folders":{msgid:"Upload folders",msgstr:["Upload folders"]},"Upload from device":{msgid:"Upload from device",msgstr:["Upload from device"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Upload has been cancelled"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Upload has been skipped"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Upload of "{folder}" has been skipped']},"Upload progress":{msgid:"Upload progress",msgstr:["Upload progress"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["When an incoming folder is selected, any conflicting files within it will also be overwritten."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Which files do you want to keep?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["You can either rename the file, skip this file or cancel the whole operation."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["You need to select at least one version of each file to continue."]}}}}},{locale:"eo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)","Content-Type":"text/plain; charset=UTF-8",Language:"eo","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es",json:{charset:"utf-8",headers:{"Last-Translator":"Julio C. Ortega, 2024","Language-Team":"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)","Content-Type":"text/plain; charset=UTF-8",Language:"es","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nFranciscoFJ <dev-ooo@satel-sa.com>, 2024\nJulio C. Ortega, 2024\n"},msgstr:["Last-Translator: Julio C. Ortega, 2024\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{filename}" contains invalid characters, how do you want to continue?':{msgid:'"{filename}" contains invalid characters, how do you want to continue?',msgstr:['"{filename}" contiene caracteres inválidos, ¿cómo desea continuar?']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflicto de archivo","{count} conflictos de archivo","{count} conflictos de archivo"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflicto de archivo en {dirname}","{count} conflictos de archivo en {dirname}","{count} conflictos de archivo en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan unos segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar toda la operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear nuevo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si selecciona ambas versionas, el archivo entrante le será agregado un número a su nombre."]},"Invalid file name":{msgid:"Invalid file name",msgstr:["Nombre de archivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Última fecha de modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar imagen"]},Rename:{msgid:"Rename",msgstr:["Renombrar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},Skip:{msgid:"Skip",msgstr:["Saltar"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Saltar este archivo","Saltar {count} archivos","Saltar {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Subir carpetas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Subir desde dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["La subida ha sido cancelada"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la subida"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando una carpeta entrante es seleccionada, cualquier de los archivos en conflictos también serán sobre-escritos."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando una carpeta entrante es seleccionada, el contenido es escrito en la carpeta existente y se realizará una resolución de conflictos recursiva."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_419",json:{charset:"utf-8",headers:{"Last-Translator":"ALEJANDRO CASTRO, 2022","Language-Team":"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_419","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nALEJANDRO CASTRO, 2022\n"},msgstr:["Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_419\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{tiempo} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan pocos segundos"]},Add:{msgid:"Add",msgstr:["agregar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]}}}}},{locale:"es_AR",json:{charset:"utf-8",headers:{"Last-Translator":"Matías Campo Hoet <matiascampo@gmail.com>, 2024","Language-Team":"Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_AR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMatías Campo Hoet <matiascampo@gmail.com>, 2024\n"},msgstr:["Last-Translator: Matías Campo Hoet <matiascampo@gmail.com>, 2024\nLanguage-Team: Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_AR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{filename}" contains invalid characters, how do you want to continue?':{msgid:'"{filename}" contains invalid characters, how do you want to continue?',msgstr:['"{filename}" contiene caracteres inválidos, ¿cómo desea continuar?']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflicto de archivo","{count} conflictos de archivo","{count} conflictos de archivo"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflicto de archivo en {dirname}","{count} conflictos de archivo en {dirname}","{count} conflictos de archivo en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan unos segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar toda la operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear nuevo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante."]},"Invalid file name":{msgid:"Invalid file name",msgstr:["Nombre de archivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Fecha de última modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Vista previa de imagen"]},Rename:{msgid:"Rename",msgstr:["Renombrar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},Skip:{msgid:"Skip",msgstr:["Omitir"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omitir este archivo","Omitir {count} archivos","Omitir {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload files":{msgid:"Upload files",msgstr:["Cargar archivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Cargar carpetas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Cargar desde dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Carga cancelada"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la carga"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también serán sobreescritos."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_CL",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CL","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CL\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_CO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CO","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_CR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_DO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_DO","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_DO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_EC",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_EC","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_EC\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_GT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_GT","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_GT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_HN",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_HN","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_HN\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_MX",json:{charset:"utf-8",headers:{"Last-Translator":"Jehu Marcos Herrera Puentes, 2024","Language-Team":"Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_MX","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nJehu Marcos Herrera Puentes, 2024\n"},msgstr:["Last-Translator: Jehu Marcos Herrera Puentes, 2024\nLanguage-Team: Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_MX\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{filename}" contains invalid characters, how do you want to continue?':{msgid:'"{filename}" contains invalid characters, how do you want to continue?',msgstr:['"{filename}" contiene caracteres inválidos, ¿Cómo desea continuar?']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflicto de archivo","{count} conflictos de archivo","{count} archivos en conflicto"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} archivo en conflicto en {dirname}","{count} archivos en conflicto en {dirname}","{count} archivo en conflicto en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{tiempo} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan pocos segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar toda la operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear nuevo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante."]},"Invalid file name":{msgid:"Invalid file name",msgstr:["Nombre de archivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Fecha de última modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["en pausa"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar imagen"]},Rename:{msgid:"Rename",msgstr:["Renombrar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},Skip:{msgid:"Skip",msgstr:["Omitir"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omitir este archivo","Omitir {count} archivos","Omitir {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Subir carpetas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Subir desde dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["La subida ha sido cancelada"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la subida"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también será sobrescrito."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Cuáles archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_NI",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_NI","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_NI\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PA",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PA","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PA\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PE",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PE","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PE\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PY","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_SV",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_SV","Plural-Forms":"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_SV\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_UY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_UY","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_UY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"et_EE",json:{charset:"utf-8",headers:{"Last-Translator":"Taavo Roos, 2023","Language-Team":"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)","Content-Type":"text/plain; charset=UTF-8",Language:"et_EE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMait R, 2022\nTaavo Roos, 2023\n"},msgstr:["Last-Translator: Taavo Roos, 2023\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: et_EE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} jäänud sekundid"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} aega jäänud"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["jäänud mõni sekund"]},Add:{msgid:"Add",msgstr:["Lisa"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Tühista üleslaadimine"]},"estimating time left":{msgid:"estimating time left",msgstr:["hinnanguline järelejäänud aeg"]},paused:{msgid:"paused",msgstr:["pausil"]},"Upload files":{msgid:"Upload files",msgstr:["Lae failid üles"]}}}}},{locale:"eu",json:{charset:"utf-8",headers:{"Last-Translator":"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022","Language-Team":"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)","Content-Type":"text/plain; charset=UTF-8",Language:"eu","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\n"},msgstr:["Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eu\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundo geratzen dira"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} geratzen da"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["segundo batzuk geratzen dira"]},Add:{msgid:"Add",msgstr:["Gehitu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Ezeztatu igoerak"]},"estimating time left":{msgid:"estimating time left",msgstr:["kalkulatutako geratzen den denbora"]},paused:{msgid:"paused",msgstr:["geldituta"]},"Upload files":{msgid:"Upload files",msgstr:["Igo fitxategiak"]}}}}},{locale:"fa",json:{charset:"utf-8",headers:{"Last-Translator":"Fatemeh Komeily, 2023","Language-Team":"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)","Content-Type":"text/plain; charset=UTF-8",Language:"fa","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nFatemeh Komeily, 2023\n"},msgstr:["Last-Translator: Fatemeh Komeily, 2023\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fa\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["ثانیه های باقی مانده"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["باقی مانده"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["چند ثانیه مانده"]},Add:{msgid:"Add",msgstr:["اضافه کردن"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["کنسل کردن فایل های اپلود شده"]},"estimating time left":{msgid:"estimating time left",msgstr:["تخمین زمان باقی مانده"]},paused:{msgid:"paused",msgstr:["مکث کردن"]},"Upload files":{msgid:"Upload files",msgstr:["بارگذاری فایل ها"]}}}}},{locale:"fi",json:{charset:"utf-8",headers:{"Last-Translator":"teemue, 2024","Language-Team":"Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)","Content-Type":"text/plain; charset=UTF-8",Language:"fi_FI","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nJiri Grönroos <jiri.gronroos@iki.fi>, 2024\nthingumy, 2024\nteemue, 2024\n"},msgstr:["Last-Translator: teemue, 2024\nLanguage-Team: Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fi_FI\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" on kielletty tiedoston tai hakemiston nimi.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" on kielletty tiedostotyyppi.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ei ole sallittu tiedoston tai hakemiston nimessä.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} tiedoston ristiriita","{count} tiedoston ristiriita"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} tiedoston ristiriita kansiossa {dirname}","{count} tiedoston ristiriita kansiossa {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekuntia jäljellä"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} jäljellä"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["muutama sekunti jäljellä"]},Cancel:{msgid:"Cancel",msgstr:["Peruuta"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Peruuta koko toimenpide"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Peruuta lähetykset"]},Continue:{msgid:"Continue",msgstr:["Jatka"]},"Create new":{msgid:"Create new",msgstr:["Luo uusi"]},"estimating time left":{msgid:"estimating time left",msgstr:["arvioidaan jäljellä olevaa aikaa"]},"Existing version":{msgid:"Existing version",msgstr:["Olemassa oleva versio"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Tiedoston nimi ei saa päättyä "{segment}"']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jos valitset molemmat versiot, saapuvan tiedoston nimeen lisätään numero."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Kielletty/väärä tiedoston nimi"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Viimeisin muokkauspäivä on tuntematon"]},New:{msgid:"New",msgstr:["Uusi"]},"New filename":{msgid:"New filename",msgstr:["Uusi tiedostonimi"]},"New version":{msgid:"New version",msgstr:["Uusi versio"]},paused:{msgid:"paused",msgstr:["keskeytetty"]},"Preview image":{msgid:"Preview image",msgstr:["Esikatsele kuva"]},Rename:{msgid:"Rename",msgstr:["Nimeä uudelleen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Valitse kaikki valintaruudut"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Valitse kaikki olemassa olevat tiedostot"]},"Select all new files":{msgid:"Select all new files",msgstr:["Valitse kaikki uudet tiedostot"]},Skip:{msgid:"Skip",msgstr:["Ohita"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ohita tämä tiedosto","Ohita {count} tiedostoa"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tuntematon koko"]},Upload:{msgid:"Upload",msgstr:["Lähetä"]},"Upload files":{msgid:"Upload files",msgstr:["Lähetä tiedostoja"]},"Upload folders":{msgid:"Upload folders",msgstr:["Lähetä kansioita"]},"Upload from device":{msgid:"Upload from device",msgstr:["Lähetä laitteelta"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Lähetys on peruttu"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Lähetys on ohitettu"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Hakemiston "{folder}" lähetys on ohitettu']},"Upload progress":{msgid:"Upload progress",msgstr:["Lähetyksen edistyminen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Valittuasi saapuvien kansion, kaikki ristiriitaiset tiedostot kansiossa ylikirjoitetaan."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Valittuasi saapuvien kansion, sisältö kirjoitetaan olemassaolevaan kansioon ja suoritetaan rekursiivinen ristiriitojen poisto."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Mitkä tiedostot haluat säilyttää?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Voit joko nimetä tiedoston uudelleen, ohittaa tämän tiedoston tai peruuttaa koko toiminnon."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sinun täytyy valita vähintään yksi versio jokaisesta tiedostosta jatkaaksesi."]}}}}},{locale:"fo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)","Content-Type":"text/plain; charset=UTF-8",Language:"fo","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"fr",json:{charset:"utf-8",headers:{"Last-Translator":"Arnaud Cazenave, 2024","Language-Team":"French (https://app.transifex.com/nextcloud/teams/64236/fr/)","Content-Type":"text/plain; charset=UTF-8",Language:"fr","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nBenoit Pruneau, 2024\njed boulahya, 2024\nJérôme HERBINET, 2024\nArnaud Cazenave, 2024\n"},msgstr:["Last-Translator: Arnaud Cazenave, 2024\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fr\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" est un nom de fichier ou de dossier interdit.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" est un type de fichier interdit.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["\"{segment}\" n'est pas autorisé dans le nom d'un fichier ou d'un dossier."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fichier en conflit","{count} fichiers en conflit","{count} fichiers en conflit"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fichier en conflit dans {dirname}","{count} fichiers en conflit dans {dirname}","{count} fichiers en conflit dans {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secondes restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restant"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quelques secondes restantes"]},Cancel:{msgid:"Cancel",msgstr:["Annuler"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annuler l'opération entière"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annuler les téléversements"]},Continue:{msgid:"Continue",msgstr:["Continuer"]},"Create new":{msgid:"Create new",msgstr:["Créer un nouveau"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimation du temps restant"]},"Existing version":{msgid:"Existing version",msgstr:["Version existante"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Le nom des fichiers ne doit pas finir par "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si vous sélectionnez les deux versions, le nouveau fichier aura un nombre ajouté à son nom."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nom de fichier invalide"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Date de la dernière modification est inconnue"]},New:{msgid:"New",msgstr:["Nouveau"]},"New filename":{msgid:"New filename",msgstr:["Nouveau nom de fichier"]},"New version":{msgid:"New version",msgstr:["Nouvelle version"]},paused:{msgid:"paused",msgstr:["en pause"]},"Preview image":{msgid:"Preview image",msgstr:["Aperçu de l'image"]},Rename:{msgid:"Rename",msgstr:["Renommer"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Sélectionner toutes les cases à cocher"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Sélectionner tous les fichiers existants"]},"Select all new files":{msgid:"Select all new files",msgstr:["Sélectionner tous les nouveaux fichiers"]},Skip:{msgid:"Skip",msgstr:["Ignorer"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ignorer ce fichier","Ignorer {count} fichiers","Ignorer {count} fichiers"]},"Unknown size":{msgid:"Unknown size",msgstr:["Taille inconnue"]},Upload:{msgid:"Upload",msgstr:["Téléverser"]},"Upload files":{msgid:"Upload files",msgstr:["Téléverser des fichiers"]},"Upload folders":{msgid:"Upload folders",msgstr:["Téléverser des dossiers"]},"Upload from device":{msgid:"Upload from device",msgstr:["Téléverser depuis l'appareil"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Le téléversement a été annulé"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Le téléversement a été ignoré"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Le téléversement de "{folder}" a été ignoré']},"Upload progress":{msgid:"Upload progress",msgstr:["Progression du téléversement"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Lorsqu'un dossier entrant est sélectionné, le contenu est ajouté dans le dossier existant et une résolution récursive des conflits est effectuée."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quels fichiers souhaitez-vous conserver ?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Vous pouvez soit renommer le fichier, soit ignorer le fichier soit annuler toute l'opération."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Vous devez sélectionner au moins une version de chaque fichier pour continuer."]}}}}},{locale:"ga",json:{charset:"utf-8",headers:{"Last-Translator":"Aindriú Mac Giolla Eoin, 2024","Language-Team":"Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)","Content-Type":"text/plain; charset=UTF-8",Language:"ga","Plural-Forms":"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nAindriú Mac Giolla Eoin, 2024\n"},msgstr:["Last-Translator: Aindriú Mac Giolla Eoin, 2024\nLanguage-Team: Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ga\nPlural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['Is ainm toirmiscthe comhaid nó fillteáin é "{segment}".']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['Is cineál comhaid toirmiscthe é "{segment}".']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Ní cheadaítear "{segment}" taobh istigh d\'ainm comhaid nó fillteáin.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} coimhlint comhaid","{count} coimhlintí comhaid","{count} coimhlintí comhaid","{count} coimhlintí comhaid","{count} coimhlintí comhaid"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} coimhlint comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} soicind fágtha"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} fágtha"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["cúpla soicind fágtha"]},Cancel:{msgid:"Cancel",msgstr:["Cealaigh"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cealaigh an oibríocht iomlán"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cealaigh uaslódálacha"]},Continue:{msgid:"Continue",msgstr:["Leanúint ar aghaidh"]},"Create new":{msgid:"Create new",msgstr:["Cruthaigh nua"]},"estimating time left":{msgid:"estimating time left",msgstr:["ag déanamh meastachán ar an am atá fágtha"]},"Existing version":{msgid:"Existing version",msgstr:["Leagan láithreach "]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Níor cheart go gcríochnaíonn comhaid chomhad le "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Má roghnaíonn tú an dá leagan, cuirfear uimhir leis an ainm a thagann isteach."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ainm comhaid neamhbhailí"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Dáta modhnaithe is déanaí anaithnid"]},New:{msgid:"New",msgstr:["Nua"]},"New filename":{msgid:"New filename",msgstr:["Ainm comhaid nua"]},"New version":{msgid:"New version",msgstr:["Leagan nua"]},paused:{msgid:"paused",msgstr:["sos"]},"Preview image":{msgid:"Preview image",msgstr:["Íomhá réamhamharc"]},Rename:{msgid:"Rename",msgstr:["Athainmnigh"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Roghnaigh gach ticbhosca"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Roghnaigh gach comhad atá ann cheana féin"]},"Select all new files":{msgid:"Select all new files",msgstr:["Roghnaigh gach comhad nua"]},Skip:{msgid:"Skip",msgstr:["Scipeáil"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Léim an comhad seo","Léim ar {count} comhad","Léim ar {count} comhad","Léim ar {count} comhad","Léim ar {count} comhad"]},"Unknown size":{msgid:"Unknown size",msgstr:["Méid anaithnid"]},Upload:{msgid:"Upload",msgstr:["Uaslódáil"]},"Upload files":{msgid:"Upload files",msgstr:["Uaslódáil comhaid"]},"Upload folders":{msgid:"Upload folders",msgstr:["Uaslódáil fillteáin"]},"Upload from device":{msgid:"Upload from device",msgstr:["Íosluchtaigh ó ghléas"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Cuireadh an t-uaslódáil ar ceal"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Léiríodh an uaslódáil"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Léiríodh an uaslódáil "{folder}".']},"Upload progress":{msgid:"Upload progress",msgstr:["Uaslódáil dul chun cinn"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Nuair a roghnaítear fillteán isteach, déanfar aon chomhad contrártha laistigh de a fhorscríobh freisin."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach san fhillteán atá ann cheana agus déantar réiteach coinbhleachta athchúrsach."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Cé na comhaid ar mhaith leat a choinneáil?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Is féidir leat an comhad a athainmniú, scipeáil an comhad seo nó an oibríocht iomlán a chealú."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú chun leanúint ar aghaidh."]}}}}},{locale:"gd",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)","Content-Type":"text/plain; charset=UTF-8",Language:"gd","Plural-Forms":"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gd\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"gl",json:{charset:"utf-8",headers:{"Last-Translator":"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2024","Language-Team":"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)","Content-Type":"text/plain; charset=UTF-8",Language:"gl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2024\n"},msgstr:["Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2024\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["«{segment}» é un nome vedado para un ficheiro ou cartafol."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["«{segment}» é un tipo de ficheiro vedado."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["«{segment}» non está permitido dentro dun nome de ficheiro ou cartafol."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflito de ficheiros","{count} conflitos de ficheiros"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflito de ficheiros en {dirname}","{count} conflitos de ficheiros en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["faltan {seconds} segundos"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["falta {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["faltan uns segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancela toda a operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar envíos"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear un novo"]},"estimating time left":{msgid:"estimating time left",msgstr:["calculando canto tempo falta"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Os nomes de ficheiros non deben rematar con «{segment}»."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["O nome de ficheiro non é válido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Data da última modificación descoñecida"]},New:{msgid:"New",msgstr:["Nova"]},"New filename":{msgid:"New filename",msgstr:["Novo nome de ficheiro"]},"New version":{msgid:"New version",msgstr:["Nova versión"]},paused:{msgid:"paused",msgstr:["detido"]},"Preview image":{msgid:"Preview image",msgstr:["Vista previa da imaxe"]},Rename:{msgid:"Rename",msgstr:["Renomear"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar todas as caixas de selección"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos os ficheiros existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos os ficheiros novos"]},Skip:{msgid:"Skip",msgstr:["Omitir"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omita este ficheiro","Omitir {count} ficheiros"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño descoñecido"]},Upload:{msgid:"Upload",msgstr:["Enviar"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar ficheiros"]},"Upload folders":{msgid:"Upload folders",msgstr:["Enviar cartafoles"]},"Upload from device":{msgid:"Upload from device",msgstr:["Enviar dende o dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["O envío foi cancelado"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["O envío foi omitido"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["O envío de «{folder}» foi omitido"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso do envío"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cando se selecciona un cartafol entrante, tamén se sobrescribirán os ficheiros en conflito dentro del."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e lévase a cabo unha resolución recursiva de conflitos."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Que ficheiros quere conservar?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Pode cambiar o nome do ficheiro, omitir este ficheiro ou cancelar toda a operación."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar polo menos unha versión de cada ficheiro para continuar."]}}}}},{locale:"he",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)","Content-Type":"text/plain; charset=UTF-8",Language:"he","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: he\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hi_IN",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)","Content-Type":"text/plain; charset=UTF-8",Language:"hi_IN","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hi_IN\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hr",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)","Content-Type":"text/plain; charset=UTF-8",Language:"hr","Plural-Forms":"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hr\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hsb",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)","Content-Type":"text/plain; charset=UTF-8",Language:"hsb","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hsb\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hu",json:{charset:"utf-8",headers:{"Last-Translator":"Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024","Language-Team":"Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)","Content-Type":"text/plain; charset=UTF-8",Language:"hu_HU","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nGyuris Gellért <jobel@ujevangelizacio.hu>, 2024\n"},msgstr:["Last-Translator: Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\nLanguage-Team: Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu_HU\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['Tiltott fájl- vagy mappanév: „{segment}".']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['Tiltott fájltípus: „{segment}".']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Nem megengedett egy fájl- vagy mappanévben: „{segment}".']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}fájlt érintő konfliktus","{count} fájlt érintő konfliktus"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fájlt érintő konfliktus a mappában: {dirname}","{count}fájlt érintő konfliktus a mappában: {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{} másodperc van hátra"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} van hátra"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["pár másodperc van hátra"]},Cancel:{msgid:"Cancel",msgstr:["Mégse"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Teljes művelet megszakítása"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Feltöltések megszakítása"]},Continue:{msgid:"Continue",msgstr:["Tovább"]},"Create new":{msgid:"Create new",msgstr:["Új létrehozása"]},"estimating time left":{msgid:"estimating time left",msgstr:["hátralévő idő becslése"]},"Existing version":{msgid:"Existing version",msgstr:["Jelenlegi változat"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Fájlnevek nem végződhetnek erre: „{segment}”."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ha mindkét verziót kiválasztja, a bejövő fájl neve egy számmal egészül ki."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Érvénytelen fájlnév"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Utolsó módosítás dátuma ismeretlen"]},New:{msgid:"New",msgstr:["Új"]},"New filename":{msgid:"New filename",msgstr:["Új fájlnév"]},"New version":{msgid:"New version",msgstr:["Új verzió"]},paused:{msgid:"paused",msgstr:["szüneteltetve"]},"Preview image":{msgid:"Preview image",msgstr:["Kép előnézete"]},Rename:{msgid:"Rename",msgstr:["Átnevezés"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Minden jelölőnégyzet kijelölése"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Minden jelenlegi fájl kijelölése"]},"Select all new files":{msgid:"Select all new files",msgstr:["Minden új fájl kijelölése"]},Skip:{msgid:"Skip",msgstr:["Kihagyás"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ezen fájl kihagyása","{count}fájl kihagyása"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ismeretlen méret"]},Upload:{msgid:"Upload",msgstr:["Feltöltés"]},"Upload files":{msgid:"Upload files",msgstr:["Fájlok feltöltése"]},"Upload folders":{msgid:"Upload folders",msgstr:["Mappák feltöltése"]},"Upload from device":{msgid:"Upload from device",msgstr:["Feltöltés eszközről"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Feltöltés meg lett szakítva"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Feltöltés át lett ugorva"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["„{folder}” feltöltése át lett ugorva"]},"Upload progress":{msgid:"Upload progress",msgstr:["Feltöltési folyamat"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ha egy bejövő mappa van kiválasztva, a mappában lévő ütköző fájlok is felülírásra kerülnek."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Ha egy bejövő mappa van kiválasztva, a tartalom a meglévő mappába íródik és rekurzív konfliktusfeloldás történik."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Mely fájlokat kívánja megtartani?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Átnevezheti a fájlt, kihagyhatja ezt a fájlt, vagy törölheti az egész műveletet."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["A folytatáshoz minden fájlból legalább egy verziót ki kell választani."]}}}}},{locale:"hy",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)","Content-Type":"text/plain; charset=UTF-8",Language:"hy","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hy\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ia",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)","Content-Type":"text/plain; charset=UTF-8",Language:"ia","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ia\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"id",json:{charset:"utf-8",headers:{"Last-Translator":"Linerly <linerly@proton.me>, 2023","Language-Team":"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)","Content-Type":"text/plain; charset=UTF-8",Language:"id","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nEmpty Slot Filler, 2023\nLinerly <linerly@proton.me>, 2023\n"},msgstr:["Last-Translator: Linerly <linerly@proton.me>, 2023\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: id\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} berkas berkonflik"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} berkas berkonflik dalam {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} detik tersisa"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tersisa"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["tinggal sebentar lagi"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Batalkan unggahan"]},Continue:{msgid:"Continue",msgstr:["Lanjutkan"]},"estimating time left":{msgid:"estimating time left",msgstr:["memperkirakan waktu yang tersisa"]},"Existing version":{msgid:"Existing version",msgstr:["Versi yang ada"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Tanggal perubahan terakhir tidak diketahui"]},New:{msgid:"New",msgstr:["Baru"]},"New version":{msgid:"New version",msgstr:["Versi baru"]},paused:{msgid:"paused",msgstr:["dijeda"]},"Preview image":{msgid:"Preview image",msgstr:["Gambar pratinjau"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak centang"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Pilih semua berkas yang ada"]},"Select all new files":{msgid:"Select all new files",msgstr:["Pilih semua berkas baru"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Lewati {count} berkas"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukuran tidak diketahui"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Unggahan dibatalkan"]},"Upload files":{msgid:"Upload files",msgstr:["Unggah berkas"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Berkas mana yang Anda ingin tetap simpan?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan."]}}}}},{locale:"ig",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)","Content-Type":"text/plain; charset=UTF-8",Language:"ig","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ig\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"is",json:{charset:"utf-8",headers:{"Last-Translator":"Sveinn í Felli <sv1@fellsnet.is>, 2023","Language-Team":"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)","Content-Type":"text/plain; charset=UTF-8",Language:"is","Plural-Forms":"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nSveinn í Felli <sv1@fellsnet.is>, 2023\n"},msgstr:["Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2023\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: is\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} árekstur skráa","{count} árekstrar skráa"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} árekstur skráa í {dirname}","{count} árekstrar skráa í {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekúndur eftir"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} eftir"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["nokkrar sekúndur eftir"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hætta við innsendingar"]},Continue:{msgid:"Continue",msgstr:["Halda áfram"]},"estimating time left":{msgid:"estimating time left",msgstr:["áætla tíma sem eftir er"]},"Existing version":{msgid:"Existing version",msgstr:["Fyrirliggjandi útgáfa"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti afrituðu skrárinnar."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Síðasta breytingadagsetning er óþekkt"]},New:{msgid:"New",msgstr:["Nýtt"]},"New version":{msgid:"New version",msgstr:["Ný útgáfa"]},paused:{msgid:"paused",msgstr:["í bið"]},"Preview image":{msgid:"Preview image",msgstr:["Forskoðun myndar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Velja gátreiti"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Velja allar fyrirliggjandi skrár"]},"Select all new files":{msgid:"Select all new files",msgstr:["Velja allar nýjar skrár"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Sleppa þessari skrá","Sleppa {count} skrám"]},"Unknown size":{msgid:"Unknown size",msgstr:["Óþekkt stærð"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Hætt við innsendingu"]},"Upload files":{msgid:"Upload files",msgstr:["Senda inn skrár"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvaða skrám vilt þú vilt halda eftir?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram."]}}}}},{locale:"it",json:{charset:"utf-8",headers:{"Last-Translator":"albanobattistella <albanobattistella@gmail.com>, 2024","Language-Team":"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)","Content-Type":"text/plain; charset=UTF-8",Language:"it","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nFrancesco Sercia, 2024\nalbanobattistella <albanobattistella@gmail.com>, 2024\n"},msgstr:["Last-Translator: albanobattistella <albanobattistella@gmail.com>, 2024\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" è un nome di file o cartella proibito.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}"è un tipo di file proibito.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" non è consentito all\'interno di un nome di file o cartella.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file in conflitto","{count} file in conflitto","{count} file in conflitto"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file in conflitto in {dirname}","{count} file in conflitto in {dirname}","{count} file in conflitto in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secondi rimanenti "]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} rimanente"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["alcuni secondi rimanenti"]},Cancel:{msgid:"Cancel",msgstr:["Annulla"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annulla l'intera operazione"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annulla i caricamenti"]},Continue:{msgid:"Continue",msgstr:["Continua"]},"Create new":{msgid:"Create new",msgstr:["Crea nuovo"]},"estimating time left":{msgid:"estimating time left",msgstr:["calcolo il tempo rimanente"]},"Existing version":{msgid:"Existing version",msgstr:["Versione esistente"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['I nomi dei file non devono terminare con "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero "]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nome file non valido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Ultima modifica sconosciuta"]},New:{msgid:"New",msgstr:["Nuovo"]},"New filename":{msgid:"New filename",msgstr:["Nuovo nome file"]},"New version":{msgid:"New version",msgstr:["Nuova versione"]},paused:{msgid:"paused",msgstr:["pausa"]},"Preview image":{msgid:"Preview image",msgstr:["Anteprima immagine"]},Rename:{msgid:"Rename",msgstr:["Rinomina"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleziona tutte le caselle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleziona tutti i file esistenti"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleziona tutti i nuovi file"]},Skip:{msgid:"Skip",msgstr:["Salta"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Salta questo file","Salta {count} file","Salta {count} file"]},"Unknown size":{msgid:"Unknown size",msgstr:["Dimensione sconosciuta"]},Upload:{msgid:"Upload",msgstr:["Caricamento"]},"Upload files":{msgid:"Upload files",msgstr:["Carica i file"]},"Upload folders":{msgid:"Upload folders",msgstr:["Carica cartelle"]},"Upload from device":{msgid:"Upload from device",msgstr:["Carica dal dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Caricamento annullato"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Il caricamento è stato saltato"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Il caricamento di "{folder}" è stato saltato']},"Upload progress":{msgid:"Upload progress",msgstr:["Progresso del caricamento"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno verranno sovrascritti."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quali file vuoi mantenere?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["È possibile rinominare il file, ignorarlo o annullare l'intera operazione."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Devi selezionare almeno una versione di ogni file per continuare"]}}}}},{locale:"ja",json:{charset:"utf-8",headers:{"Last-Translator":"kshimohata, 2024","Language-Team":"Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)","Content-Type":"text/plain; charset=UTF-8",Language:"ja_JP","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nkojima.imamura, 2024\nTakafumi AKAMATSU, 2024\ndevi, 2024\nkshimohata, 2024\n"},msgstr:["Last-Translator: kshimohata, 2024\nLanguage-Team: Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ja_JP\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" は禁止されているファイルまたはフォルダ名です。']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" は禁止されているファイルタイプです。']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['ファイルまたはフォルダ名に "{segment}" を含めることはできません。']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ファイル数の競合"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} で {count} 個のファイルが競合しています"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["残り {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["残り {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["残り数秒"]},Cancel:{msgid:"Cancel",msgstr:["キャンセル"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["すべての操作をキャンセルする"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["アップロードをキャンセル"]},Continue:{msgid:"Continue",msgstr:["続ける"]},"Create new":{msgid:"Create new",msgstr:["新規作成"]},"estimating time left":{msgid:"estimating time left",msgstr:["概算残り時間"]},"Existing version":{msgid:"Existing version",msgstr:["既存バージョン"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['ファイル名の末尾に "{segment}" を付けることはできません。']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["両方のバージョンを選択した場合、受信ファイルの名前に数字が追加されます。"]},"Invalid filename":{msgid:"Invalid filename",msgstr:["無効なファイル名"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最終更新日不明"]},New:{msgid:"New",msgstr:["新規作成"]},"New filename":{msgid:"New filename",msgstr:["新しいファイル名"]},"New version":{msgid:"New version",msgstr:["新しいバージョン"]},paused:{msgid:"paused",msgstr:["一時停止中"]},"Preview image":{msgid:"Preview image",msgstr:["プレビュー画像"]},Rename:{msgid:"Rename",msgstr:["名前を変更"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["すべて選択"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["すべての既存ファイルを選択"]},"Select all new files":{msgid:"Select all new files",msgstr:["すべての新規ファイルを選択"]},Skip:{msgid:"Skip",msgstr:["スキップ"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count} 個のファイルをスキップする"]},"Unknown size":{msgid:"Unknown size",msgstr:["サイズ不明"]},Upload:{msgid:"Upload",msgstr:["アップロード"]},"Upload files":{msgid:"Upload files",msgstr:["ファイルをアップロード"]},"Upload folders":{msgid:"Upload folders",msgstr:["フォルダのアップロード"]},"Upload from device":{msgid:"Upload from device",msgstr:["デバイスからのアップロード"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["アップロードはキャンセルされました"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["アップロードがスキップされました"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" のアップロードがスキップされました']},"Upload progress":{msgid:"Upload progress",msgstr:["アップロード進行状況"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["受信フォルダが選択されると、その中の競合するファイルもすべて上書きされます。"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["受信フォルダが選択されると、その内容は既存のフォルダに書き込まれ、再帰的な競合解決が行われます。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["どのファイルを保持しますか?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["ファイル名を変更するか、このファイルをスキップするか、操作全体をキャンセルすることができます。"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["続行するには、各ファイルの少なくとも1つのバージョンを選択する必要があります。"]}}}}},{locale:"ka",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)","Content-Type":"text/plain; charset=UTF-8",Language:"ka","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ka_GE",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)","Content-Type":"text/plain; charset=UTF-8",Language:"ka_GE","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka_GE\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"kab",json:{charset:"utf-8",headers:{"Last-Translator":"ZiriSut, 2023","Language-Team":"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)","Content-Type":"text/plain; charset=UTF-8",Language:"kab","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nZiriSut, 2023\n"},msgstr:["Last-Translator: ZiriSut, 2023\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kab\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} tesdatin i d-yeqqimen"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} i d-yeqqimen"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["qqiment-d kra n tesdatin kan"]},Add:{msgid:"Add",msgstr:["Rnu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Sefsex asali"]},"estimating time left":{msgid:"estimating time left",msgstr:["asizel n wakud i d-yeqqimen"]},paused:{msgid:"paused",msgstr:["yeḥbes"]},"Upload files":{msgid:"Upload files",msgstr:["Sali-d ifuyla"]}}}}},{locale:"kk",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)","Content-Type":"text/plain; charset=UTF-8",Language:"kk","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kk\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"km",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)","Content-Type":"text/plain; charset=UTF-8",Language:"km","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: km\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"kn",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)","Content-Type":"text/plain; charset=UTF-8",Language:"kn","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kn\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ko",json:{charset:"utf-8",headers:{"Last-Translator":"이상오, 2024","Language-Team":"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)","Content-Type":"text/plain; charset=UTF-8",Language:"ko","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\n이상오, 2024\n"},msgstr:["Last-Translator: 이상오, 2024\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ko\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}"(은)는 금지된 파일 및 폴더 이름입니다.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}"(은)는 금지된 파일 형식입니다.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['파일이나 폴더 이름에 "{segment}"(을)를 사용할 수 없습니다.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}개의 파일이 충돌함"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname}에서 {count}개의 파일이 충돌함"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds}초 남음"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} 남음"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["곧 완료"]},Cancel:{msgid:"Cancel",msgstr:["취소"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["전체 작업을 취소"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["업로드 취소"]},Continue:{msgid:"Continue",msgstr:["확인"]},"Create new":{msgid:"Create new",msgstr:["새로 만들기"]},"estimating time left":{msgid:"estimating time left",msgstr:["남은 시간 계산"]},"Existing version":{msgid:"Existing version",msgstr:["현재 버전"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['파일 이름은 "{segment}"(으)로 끝나야 합니다.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["두 파일을 모두 선택하면, 들어오는 파일의 이름에 번호가 추가됩니다."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["잘못된 파일 이름"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["최근 수정일 알 수 없음"]},New:{msgid:"New",msgstr:["새로 만들기"]},"New filename":{msgid:"New filename",msgstr:["새 파일 이름"]},"New version":{msgid:"New version",msgstr:["새 버전"]},paused:{msgid:"paused",msgstr:["일시정지됨"]},"Preview image":{msgid:"Preview image",msgstr:["미리보기 이미지"]},Rename:{msgid:"Rename",msgstr:["이름 바꾸기"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["모든 체크박스 선택"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["기존 파일을 모두 선택"]},"Select all new files":{msgid:"Select all new files",msgstr:["새로운 파일을 모두 선택"]},Skip:{msgid:"Skip",msgstr:["건너뛰기"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count}개의 파일 넘기기"]},"Unknown size":{msgid:"Unknown size",msgstr:["크기를 알 수 없음"]},Upload:{msgid:"Upload",msgstr:["업로드"]},"Upload files":{msgid:"Upload files",msgstr:["파일 업로드"]},"Upload folders":{msgid:"Upload folders",msgstr:["폴더 업로드"]},"Upload from device":{msgid:"Upload from device",msgstr:["장치에서 업로드"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["업로드가 취소되었습니다."]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["업로드를 건너뛰었습니다."]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" 업로드를 건너뛰었습니다.']},"Upload progress":{msgid:"Upload progress",msgstr:["업로드 진행도"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["들어오는 폴더를 선택했다면, 충돌하는 내부 파일들은 덮어쓰기 됩니다."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["들어오는 폴더를 선택했다면 내용물이 그 기존 폴더 안에 작성되고, 전체적으로 충돌 해결을 수행합니다."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["어떤 파일을 보존하시겠습니까?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["파일 이름을 바꾸거나, 이 파일을 건너뛰거나 모든 작업을 취소할 수 있습니다."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다."]}}}}},{locale:"la",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)","Content-Type":"text/plain; charset=UTF-8",Language:"la","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: la\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lb",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)","Content-Type":"text/plain; charset=UTF-8",Language:"lb","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lb\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)","Content-Type":"text/plain; charset=UTF-8",Language:"lo","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lo\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lt_LT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)","Content-Type":"text/plain; charset=UTF-8",Language:"lt_LT","Plural-Forms":"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lt_LT\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lv",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)","Content-Type":"text/plain; charset=UTF-8",Language:"lv","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lv\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"mk",json:{charset:"utf-8",headers:{"Last-Translator":"Сашко Тодоров <sasetodorov@gmail.com>, 2022","Language-Team":"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)","Content-Type":"text/plain; charset=UTF-8",Language:"mk","Plural-Forms":"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nСашко Тодоров <sasetodorov@gmail.com>, 2022\n"},msgstr:["Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mk\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["преостануваат {seconds} секунди"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["преостанува {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["уште неколку секунди"]},Add:{msgid:"Add",msgstr:["Додади"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Прекини прикачување"]},"estimating time left":{msgid:"estimating time left",msgstr:["приближно преостанато време"]},paused:{msgid:"paused",msgstr:["паузирано"]},"Upload files":{msgid:"Upload files",msgstr:["Прикачување датотеки"]}}}}},{locale:"mn",json:{charset:"utf-8",headers:{"Last-Translator":"BATKHUYAG Ganbold, 2023","Language-Team":"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)","Content-Type":"text/plain; charset=UTF-8",Language:"mn","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nBATKHUYAG Ganbold, 2023\n"},msgstr:["Last-Translator: BATKHUYAG Ganbold, 2023\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mn\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} секунд үлдсэн"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} үлдсэн"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["хэдхэн секунд үлдсэн"]},Add:{msgid:"Add",msgstr:["Нэмэх"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Илгээлтийг цуцлах"]},"estimating time left":{msgid:"estimating time left",msgstr:["Үлдсэн хугацааг тооцоолж байна"]},paused:{msgid:"paused",msgstr:["түр зогсоосон"]},"Upload files":{msgid:"Upload files",msgstr:["Файл илгээх"]}}}}},{locale:"mr",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)","Content-Type":"text/plain; charset=UTF-8",Language:"mr","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mr\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ms_MY",json:{charset:"utf-8",headers:{"Last-Translator":"DT Navy, 2024","Language-Team":"Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)","Content-Type":"text/plain; charset=UTF-8",Language:"ms_MY","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nDT Navy, 2024\n"},msgstr:["Last-Translator: DT Navy, 2024\nLanguage-Team: Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ms_MY\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" adalah fail dan nama folder yang dilarang']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" adalah jenis fail yang dilarang']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" adalah tidak dibenarkan dalam nama fail atau folder']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} files bertindih"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fail bertindih dalam {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saat tinggal"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tinggal"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["beberapa saat lagi"]},Cancel:{msgid:"Cancel",msgstr:["batal"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Batal keseluruhan operasi"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["batal muat naik"]},Continue:{msgid:"Continue",msgstr:["teruskan"]},"Create new":{msgid:"Create new",msgstr:["Buat baharu"]},"estimating time left":{msgid:"estimating time left",msgstr:["jangkaan masa tinggal"]},"Existing version":{msgid:"Existing version",msgstr:["versi sedia ada"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Nama fail tidak boleh berakhir dengan "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jika dua versi dipilih, fail yang masuk akan ditambah bilangan pada namanya."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nama fail tidak sah"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Tarikh terakhir diubah suai tidak diketahui"]},New:{msgid:"New",msgstr:["Baru"]},"New filename":{msgid:"New filename",msgstr:["Nama fail baharu"]},"New version":{msgid:"New version",msgstr:["Versi baharu"]},paused:{msgid:"paused",msgstr:["Jeda"]},"Preview image":{msgid:"Preview image",msgstr:["Pratonton gambar"]},Rename:{msgid:"Rename",msgstr:["Menamakan semula"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak pilihan"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Pilih semua fail yang wujud"]},"Select all new files":{msgid:"Select all new files",msgstr:["pilih semua fail baharu"]},Skip:{msgid:"Skip",msgstr:["Langkau"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Langkau fail {count}"]},"Unknown size":{msgid:"Unknown size",msgstr:["Saiz tidak diketahui"]},Upload:{msgid:"Upload",msgstr:["Muat naik"]},"Upload files":{msgid:"Upload files",msgstr:["Muat naik fail"]},"Upload folders":{msgid:"Upload folders",msgstr:["Muat naik folder"]},"Upload from device":{msgid:"Upload from device",msgstr:["Muat naik dari peranti"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Muat naik telah dibatalkan"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Muat naik telah dilangkau"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Muat naik "{folder}" telah dilangkau']},"Upload progress":{msgid:"Upload progress",msgstr:["Kemajuan muat naik"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Apabila folder masuk dipilih, sebarang fail bertindih akan ditulis semula"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Apabila folder masuk dipilih, kandungan ditulis ke dalam folder sedia ada dan penyelesaian konflik rekursif dilakukan."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Fail yang mana ingin disimpan?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["And boleh menamakan semula fail, langkau fail tersebut atau membatalkan keseluruhan operasi"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda perlu memilih sekurangnya satu versi setiap fail untuk teruskan"]}}}}},{locale:"my",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)","Content-Type":"text/plain; charset=UTF-8",Language:"my","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: my\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nb",json:{charset:"utf-8",headers:{"Last-Translator":"Roger Knutsen, 2024","Language-Team":"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nb_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nRoger Knutsen, 2024\n"},msgstr:["Last-Translator: Roger Knutsen, 2024\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nb_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" er et forbudt fil- eller mappenavn.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" er en forbudt filtype.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" er ikke tillatt i et fil- eller mappenavn.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file conflict","{count} filkonflikter"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file conflict in {dirname}","{count} filkonflikter i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekunder igjen"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} igjen"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["noen få sekunder igjen"]},Cancel:{msgid:"Cancel",msgstr:["Avbryt"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Avbryt hele operasjonen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Avbryt opplastninger"]},Continue:{msgid:"Continue",msgstr:["Fortsett"]},"Create new":{msgid:"Create new",msgstr:["Opprett ny"]},"estimating time left":{msgid:"estimating time left",msgstr:["Estimerer tid igjen"]},"Existing version":{msgid:"Existing version",msgstr:["Gjeldende versjon"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filnavn må ikke slutte med "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du velger begge versjonene, vil den innkommende filen ha et nummer lagt til navnet."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ugyldig filnavn"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Siste gang redigert ukjent"]},New:{msgid:"New",msgstr:["Ny"]},"New filename":{msgid:"New filename",msgstr:["Nytt filnavn"]},"New version":{msgid:"New version",msgstr:["Ny versjon"]},paused:{msgid:"paused",msgstr:["pauset"]},"Preview image":{msgid:"Preview image",msgstr:["Forhåndsvis bilde"]},Rename:{msgid:"Rename",msgstr:["Omdøp"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Velg alle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Velg alle eksisterende filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Velg alle nye filer"]},Skip:{msgid:"Skip",msgstr:["Hopp over"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Skip this file","Hopp over {count} filer"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukjent størrelse"]},"Upload files":{msgid:"Upload files",msgstr:["Last opp filer"]},"Upload folders":{msgid:"Upload folders",msgstr:["Last opp mapper"]},"Upload from device":{msgid:"Upload from device",msgstr:["Last opp fra enhet"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Opplastingen er kansellert"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Opplastingen er hoppet over"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Opplasting av "{folder}" er hoppet over']},"Upload progress":{msgid:"Upload progress",msgstr:["Fremdrift, opplasting"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en innkommende mappe velges, blir eventuelle motstridende filer i den også overskrevet."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en innkommende mappe velges, skrives innholdet inn i den eksisterende mappen, og en rekursiv konfliktløsning utføres."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du beholde?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kan enten gi nytt navn til filen, hoppe over denne filen eller avbryte hele operasjonen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du må velge minst en versjon av hver fil for å fortsette."]}}}}},{locale:"ne",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)","Content-Type":"text/plain; charset=UTF-8",Language:"ne","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ne\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nl",json:{charset:"utf-8",headers:{"Last-Translator":"Rico <rico-schwab@hotmail.com>, 2023","Language-Team":"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)","Content-Type":"text/plain; charset=UTF-8",Language:"nl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRico <rico-schwab@hotmail.com>, 2023\n"},msgstr:["Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Nog {seconds} seconden"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{seconds} over"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Nog een paar seconden"]},Add:{msgid:"Add",msgstr:["Voeg toe"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Uploads annuleren"]},"estimating time left":{msgid:"estimating time left",msgstr:["Schatting van de resterende tijd"]},paused:{msgid:"paused",msgstr:["Gepauzeerd"]},"Upload files":{msgid:"Upload files",msgstr:["Upload bestanden"]}}}}},{locale:"nn_NO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nn_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"oc",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)","Content-Type":"text/plain; charset=UTF-8",Language:"oc","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: oc\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"pl",json:{charset:"utf-8",headers:{"Last-Translator":"Piotr Strębski <strebski@gmail.com>, 2024","Language-Team":"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)","Content-Type":"text/plain; charset=UTF-8",Language:"pl","Plural-Forms":"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nPiotr Strębski <strebski@gmail.com>, 2024\n"},msgstr:["Last-Translator: Piotr Strębski <strebski@gmail.com>, 2024\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pl\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}” to zabroniona nazwa pliku lub folderu."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["„{segment}” jest zabronionym typem pliku."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["Znak „{segment}” nie jest dozwolony w nazwie pliku lub folderu."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["konflikt 1 pliku","{count} konfliktów plików","{count} konfliktów plików","{count} konfliktów plików"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} konfliktowy plik w {dirname}","{count} konfliktowych plików w {dirname}","{count} konfliktowych plików w {dirname}","{count} konfliktowych plików w {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Pozostało {seconds} sekund"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Pozostało {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Pozostało kilka sekund"]},Cancel:{msgid:"Cancel",msgstr:["Anuluj"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Anuluj całą operację"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Anuluj wysyłanie"]},Continue:{msgid:"Continue",msgstr:["Kontynuuj"]},"Create new":{msgid:"Create new",msgstr:["Utwórz nowe"]},"estimating time left":{msgid:"estimating time left",msgstr:["Szacowanie pozostałego czasu"]},"Existing version":{msgid:"Existing version",msgstr:["Istniejąca wersja"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Nazwy plików nie mogą kończyć się na „{segment}”."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jeśli wybierzesz obie wersje, do nazwy pliku przychodzącego zostanie dodany numer."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nieprawidłowa nazwa pliku"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Nieznana data ostatniej modyfikacji"]},New:{msgid:"New",msgstr:["Nowy"]},"New filename":{msgid:"New filename",msgstr:["Nowa nazwa pliku"]},"New version":{msgid:"New version",msgstr:["Nowa wersja"]},paused:{msgid:"paused",msgstr:["Wstrzymane"]},"Preview image":{msgid:"Preview image",msgstr:["Podgląd obrazu"]},Rename:{msgid:"Rename",msgstr:["Zmiana nazwy"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Zaznacz wszystkie pola wyboru"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Zaznacz wszystkie istniejące pliki"]},"Select all new files":{msgid:"Select all new files",msgstr:["Zaznacz wszystkie nowe pliki"]},Skip:{msgid:"Skip",msgstr:["Pomiń"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Pomiń 1 plik","Pomiń {count} plików","Pomiń {count} plików","Pomiń {count} plików"]},"Unknown size":{msgid:"Unknown size",msgstr:["Nieznany rozmiar"]},Upload:{msgid:"Upload",msgstr:["Prześlij"]},"Upload files":{msgid:"Upload files",msgstr:["Wyślij pliki"]},"Upload folders":{msgid:"Upload folders",msgstr:["Prześlij foldery"]},"Upload from device":{msgid:"Upload from device",msgstr:["Prześlij z urządzenia"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Przesyłanie zostało anulowane"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Przesyłanie zostało pominięte"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Przesyłanie „{folder}” zostało pominięte"]},"Upload progress":{msgid:"Upload progress",msgstr:["Postęp wysyłania"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po wybraniu folderu przychodzącego wszelkie znajdujące się w nim pliki powodujące konflikt również zostaną nadpisane."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Po wybraniu folderu przychodzącego zawartość jest zapisywana w istniejącym folderze i przeprowadzane jest rekursywne rozwiązywanie konfliktów."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Które pliki chcesz zachować?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Możesz zmienić nazwę pliku, pominąć ten plik lub anulować całą operację."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku."]}}}}},{locale:"ps",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)","Content-Type":"text/plain; charset=UTF-8",Language:"ps","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ps\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"pt_BR",json:{charset:"utf-8",headers:{"Last-Translator":"Paulo Schopf, 2024","Language-Team":"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_BR","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\nRodrigo Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 2024\nPaulo Schopf, 2024\n"},msgstr:["Last-Translator: Paulo Schopf, 2024\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_BR\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" é um nome de arquivo ou pasta proibido.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" é um tipo de arquivo proibido.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" não é permitido dentro de um nome de arquivo ou pasta.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} arquivos em conflito","{count} arquivos em conflito","{count} arquivos em conflito"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflitos de arquivo em {dirname}","{count} conflitos de arquivo em {dirname}","{count} conflitos de arquivo em {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["alguns segundos restantes"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar a operação inteira"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar uploads"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Criar novo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versão existente"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Os nomes dos arquivos não devem terminar com "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se você selecionar ambas as versões, o arquivo recebido terá um número adicionado ao seu nome."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nome de arquivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},New:{msgid:"New",msgstr:["Novo"]},"New filename":{msgid:"New filename",msgstr:["Novo nome de arquivo"]},"New version":{msgid:"New version",msgstr:["Nova versão"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Visualizar imagem"]},Rename:{msgid:"Rename",msgstr:["Renomear"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marque todas as caixas de seleção"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Selecione todos os arquivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Selecione todos os novos arquivos"]},Skip:{msgid:"Skip",msgstr:["Pular"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ignorar {count} arquivos","Ignorar {count} arquivos","Ignorar {count} arquivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamanho desconhecido"]},Upload:{msgid:"Upload",msgstr:["Enviar"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar arquivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Enviar pastas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Carregar do dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["O upload foi cancelado"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["O upload foi pulado"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['O upload de "{folder}" foi ignorado']},"Upload progress":{msgid:"Upload progress",msgstr:["Envio em progresso"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando uma pasta é selecionada, quaisquer arquivos dentro dela também serão sobrescritos."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e uma resolução de conflito recursiva é executada."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quais arquivos você deseja manter?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Você pode renomear o arquivo, pular este arquivo ou cancelar toda a operação."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Você precisa selecionar pelo menos uma versão de cada arquivo para continuar."]}}}}},{locale:"pt_PT",json:{charset:"utf-8",headers:{"Last-Translator":"Manuela Silva <mmsrs@sky.com>, 2022","Language-Team":"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_PT","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nManuela Silva <mmsrs@sky.com>, 2022\n"},msgstr:["Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_PT\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["faltam {seconds} segundo(s)"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["faltam {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["faltam uns segundos"]},Add:{msgid:"Add",msgstr:["Adicionar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar envios"]},"estimating time left":{msgid:"estimating time left",msgstr:["tempo em falta estimado"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar ficheiros"]}}}}},{locale:"ro",json:{charset:"utf-8",headers:{"Last-Translator":"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022","Language-Team":"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)","Content-Type":"text/plain; charset=UTF-8",Language:"ro","Plural-Forms":"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\n"},msgstr:["Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ro\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secunde rămase"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} rămas"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["câteva secunde rămase"]},Add:{msgid:"Add",msgstr:["Adaugă"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Anulați încărcările"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimarea timpului rămas"]},paused:{msgid:"paused",msgstr:["pus pe pauză"]},"Upload files":{msgid:"Upload files",msgstr:["Încarcă fișiere"]}}}}},{locale:"ru",json:{charset:"utf-8",headers:{"Last-Translator":"Александр, 2024","Language-Team":"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)","Content-Type":"text/plain; charset=UTF-8",Language:"ru","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nВлад, 2024\nAlex <fedotov22091982@gmail.com>, 2024\nRoman Stepanov, 2024\nMaksim Sukharev, 2024\nАлександр, 2024\n"},msgstr:["Last-Translator: Александр, 2024\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["«{segment}» — это запрещенное имя файла или папки."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["«{segment}» — это запрещенный тип файла."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["«{segment}» не допускается в имени файла или папки."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["конфликт {count} файла","конфликт {count} файлов","конфликт {count} файлов","конфликт {count} файлов"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["конфликт {count} файла в «{dirname}»","конфликт {count} файлов в «{dirname}»","конфликт {count} файлов в «{dirname}»","конфликт {count} файлов в «{dirname}»"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["осталось {seconds} секунд"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["осталось {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["осталось несколько секунд"]},Cancel:{msgid:"Cancel",msgstr:["Отменить"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Отменить операцию целиком"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Отменить загрузки"]},Continue:{msgid:"Continue",msgstr:["Продолжить"]},"Create new":{msgid:"Create new",msgstr:["Создать новое"]},"estimating time left":{msgid:"estimating time left",msgstr:["оценка оставшегося времени"]},"Existing version":{msgid:"Existing version",msgstr:["Текущая версия"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Имена файлов не должны заканчиваться на «{segment}»"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Если вы выберете обе версии, к имени входящего файла будет добавлен номер."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Неверное имя файла"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Дата последнего изменения неизвестна"]},New:{msgid:"New",msgstr:["Новый"]},"New filename":{msgid:"New filename",msgstr:["Новое имя файла"]},"New version":{msgid:"New version",msgstr:["Новая версия"]},paused:{msgid:"paused",msgstr:["приостановлено"]},"Preview image":{msgid:"Preview image",msgstr:["Предварительный просмотр"]},Rename:{msgid:"Rename",msgstr:["Переименовать"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Выбрать все"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Выбрать все существующие файлы"]},"Select all new files":{msgid:"Select all new files",msgstr:["Выбрать все новые файлы"]},Skip:{msgid:"Skip",msgstr:["Пропустить"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Пропустить файл","Пропустить {count} файла","Пропустить {count} файлов","Пропустить {count} файлов"]},"Unknown size":{msgid:"Unknown size",msgstr:["Неизвестный размер"]},Upload:{msgid:"Upload",msgstr:["Загрузить"]},"Upload files":{msgid:"Upload files",msgstr:["Загрузить файлы"]},"Upload folders":{msgid:"Upload folders",msgstr:["Загрузить папки"]},"Upload from device":{msgid:"Upload from device",msgstr:["Загрузить с устройства"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Загрузка была отменена"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Загрузка была пропущена"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Загрузка «{folder}» была пропущена"]},"Upload progress":{msgid:"Upload progress",msgstr:["Прогресс загрузки"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Какие файлы вы хотите сохранить?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Вы можете переименовать файл, пропустить этот файл или отменить всю операцию."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла."]}}}}},{locale:"sc",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)","Content-Type":"text/plain; charset=UTF-8",Language:"sc","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sc\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"si",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)","Content-Type":"text/plain; charset=UTF-8",Language:"si","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sk",json:{charset:"utf-8",headers:{"Last-Translator":"Tomas Rusnak <linkermail@gmail.com>, 2024","Language-Team":"Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)","Content-Type":"text/plain; charset=UTF-8",Language:"sk_SK","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJozef Gaal <preklady@mayday.sk>, 2024\nTomas Rusnak <linkermail@gmail.com>, 2024\n"},msgstr:["Last-Translator: Tomas Rusnak <linkermail@gmail.com>, 2024\nLanguage-Team: Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sk_SK\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}“ je zakázaný názov súboru alebo priečinka."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" je zákazaný typ súboru.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}“ je zakázané v názve súboru alebo adresára.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} súbor má konflikt","{count} súbory majú konflikt","{count} súborov má konflikt","{count} súborov má konflikt"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} súborový konflikt v {dirname}","{count} súborové konflikty v {dirname}","{count} súborových konfliktov v {dirname}","{count} súborových konfliktov v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekúnd zostáva"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} zostáva"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["zostáva niekoľko sekúnd"]},Cancel:{msgid:"Cancel",msgstr:["Zrušiť"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Zrušiť celú operáciu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Zrušiť nahrávanie"]},Continue:{msgid:"Continue",msgstr:["Pokračovať"]},"Create new":{msgid:"Create new",msgstr:["Vytvoriť nové"]},"estimating time left":{msgid:"estimating time left",msgstr:["odhadovanie zostávajúceho času"]},"Existing version":{msgid:"Existing version",msgstr:["Existujúca verzia"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Názvy súborov nesmú končiť znakom "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ak vyberiete obe verzie, k názvu prichádzajúceho súboru sa pridá číslo."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Neplatný názov súboru"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Dátum poslednej úpravy neznámy"]},New:{msgid:"New",msgstr:["Nový"]},"New filename":{msgid:"New filename",msgstr:["Nový názov súboru"]},"New version":{msgid:"New version",msgstr:["Nová verzia"]},paused:{msgid:"paused",msgstr:["pozastavené"]},"Preview image":{msgid:"Preview image",msgstr:["Náhľad obrázka"]},Rename:{msgid:"Rename",msgstr:["Premenovať"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Označiť všetky výberové políčka"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vybrať všetky existujúce súbory"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vybrať všetky nové súbory"]},Skip:{msgid:"Skip",msgstr:["Preskočiť"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Preskočiť tento súbor","Preskočiť {count} súbory","Preskočiť {count} súborov","Preskočiť {count} súborov"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznáma veľkosť"]},Upload:{msgid:"Upload",msgstr:["Nahrať"]},"Upload files":{msgid:"Upload files",msgstr:["Nahrať súbory"]},"Upload folders":{msgid:"Upload folders",msgstr:["Nahrať priečinky"]},"Upload from device":{msgid:"Upload from device",msgstr:["Nahrať zo zariadenia"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Nahrávanie bolo zrušené"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Nahrávanie bolo preskočené"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Nahrávanie "{folder}" bolo preskočené']},"Upload progress":{msgid:"Upload progress",msgstr:["Priebeh nahrávania"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Keď je vybraný prichádzajúci priečinok, prepíšu sa aj všetky konfliktné súbory v ňom."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Po výbere prichádzajúceho priečinka sa obsah zapíše do existujúceho priečinka a vykoná sa rekurzívne riešenie konfliktov."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Ktoré súbory chcete ponechať?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Súbor môžete premenovať, preskočiť alebo zrušiť celú operáciu."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ak chcete pokračovať, musíte vybrať aspoň jednu verziu každého súboru."]}}}}},{locale:"sl",json:{charset:"utf-8",headers:{"Last-Translator":"Simon Bogina, 2024","Language-Team":"Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)","Content-Type":"text/plain; charset=UTF-8",Language:"sl","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nJan Kraljič <jan.kraljic@patware.eu>, 2024\nSimon Bogina, 2024\n"},msgstr:["Last-Translator: Simon Bogina, 2024\nLanguage-Team: Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" je prepovedano ime datoteka ali mape.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" je prepovedan tip datoteke.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ni dovoljeno v imenu datoteke ali mape.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["1{count} datoteka je v konfliktu","1{count} datoteki sta v konfiktu","1{count} datotek je v konfliktu","{count} datotek je v konfliktu"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} datoteka je v konfiktu v {dirname}","{count} datoteki sta v konfiktu v {dirname}","{count} datotek je v konfiktu v {dirname}","{count} konfliktov datotek v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["še {seconds} sekund"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["še {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["še nekaj sekund"]},Cancel:{msgid:"Cancel",msgstr:["Prekliči"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Prekliči celotni postopek"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Prekliči pošiljanje"]},Continue:{msgid:"Continue",msgstr:["Nadaljuj"]},"Create new":{msgid:"Create new",msgstr:["Ustvari nov"]},"estimating time left":{msgid:"estimating time left",msgstr:["ocenjujem čas do konca"]},"Existing version":{msgid:"Existing version",msgstr:["Obstoječa različica"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Imena datotek se ne smejo končati s "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Če izberete obe različici, bo imenu dohodne datoteke na koncu dodana številka."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nepravilno ime datoteke"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum zadnje spremembe neznan"]},New:{msgid:"New",msgstr:["Nov"]},"New filename":{msgid:"New filename",msgstr:["Novo ime datoteke"]},"New version":{msgid:"New version",msgstr:["Nova različica"]},paused:{msgid:"paused",msgstr:["v premoru"]},"Preview image":{msgid:"Preview image",msgstr:["Predogled slike"]},Rename:{msgid:"Rename",msgstr:["Preimenuj"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Izberi vsa potrditvena polja"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Označi vse obstoječe datoteke"]},"Select all new files":{msgid:"Select all new files",msgstr:["Označi vse nove datoteke"]},Skip:{msgid:"Skip",msgstr:["Preskoči"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Preskoči datoteko","Preskoči {count} datoteki","Preskoči {count} datotek","Preskoči {count} datotek"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznana velikost"]},Upload:{msgid:"Upload",msgstr:["Naloži"]},"Upload files":{msgid:"Upload files",msgstr:["Naloži datoteke"]},"Upload folders":{msgid:"Upload folders",msgstr:["Naloži mape"]},"Upload from device":{msgid:"Upload from device",msgstr:["Naloži iz naprave"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Nalaganje je bilo preklicano"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Nalaganje je bilo preskočeno"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Nalaganje "{folder}" je bilo preskočeno']},"Upload progress":{msgid:"Upload progress",msgstr:["Napredek nalaganja"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ko je izbrana dohodna mapa, bodo vse datototeke v konfliktu znotraj nje prepisane."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Ko je izbrana dohodna mapa, je vsebina vpisana v obstoječo mapo in je izvedeno rekurzivno reševanje konfliktov."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Katere datoteke želite obdržati?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Datoteko lahko preimenujete, preskočite ali prekličete celo operacijo."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Izbrati morate vsaj eno različico vsake datoteke da nadaljujete."]}}}}},{locale:"sq",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)","Content-Type":"text/plain; charset=UTF-8",Language:"sq","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sq\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sr",json:{charset:"utf-8",headers:{"Last-Translator":"Иван Пешић, 2024","Language-Team":"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)","Content-Type":"text/plain; charset=UTF-8",Language:"sr","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nИван Пешић, 2024\n"},msgstr:["Last-Translator: Иван Пешић, 2024\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}” је забрањено име фајла или фолдера."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["„{segment}” је забрањен тип фајла."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["„{segment}” није дозвољено унутар имена фајла или фолдера."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} фајл конфликт","{count} фајл конфликта","{count} фајл конфликта"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} фајл конфликт у {dirname}","{count} фајл конфликта у {dirname}","{count} фајл конфликта у {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["преостало је {seconds} секунди"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} преостало"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["преостало је неколико секунди"]},Cancel:{msgid:"Cancel",msgstr:["Откажи"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Отказује комплетну операцију"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Обустави отпремања"]},Continue:{msgid:"Continue",msgstr:["Настави"]},"Create new":{msgid:"Create new",msgstr:["Креирај ново"]},"estimating time left":{msgid:"estimating time left",msgstr:["процена преосталог времена"]},"Existing version":{msgid:"Existing version",msgstr:["Постојећа верзија"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Имена фајлова не смеју да се завршавају на „{segment}”."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ако изаберете обе верзије, на име долазног фајла ће се додати број."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Неисправно име фајла"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Није познат датум последње измене"]},New:{msgid:"New",msgstr:["Ново"]},"New filename":{msgid:"New filename",msgstr:["Ново име фајла"]},"New version":{msgid:"New version",msgstr:["Нова верзија"]},paused:{msgid:"paused",msgstr:["паузирано"]},"Preview image":{msgid:"Preview image",msgstr:["Слика прегледа"]},Rename:{msgid:"Rename",msgstr:["Промени име"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Штиклирај сва поља за штиклирање"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Изабери све постојеће фајлове"]},"Select all new files":{msgid:"Select all new files",msgstr:["Изабери све нове фајлове"]},Skip:{msgid:"Skip",msgstr:["Прескочи"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Прескочи овај фајл","Прескочи {count} фајла","Прескочи {count} фајлова"]},"Unknown size":{msgid:"Unknown size",msgstr:["Непозната величина"]},Upload:{msgid:"Upload",msgstr:["Отпреми"]},"Upload files":{msgid:"Upload files",msgstr:["Отпреми фајлове"]},"Upload folders":{msgid:"Upload folders",msgstr:["Отпреми фолдере"]},"Upload from device":{msgid:"Upload from device",msgstr:["Отпреми са уређаја"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Отпремање је отказано"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Отпремање је прескочено"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Отпремање „{folder}”је прескочено"]},"Upload progress":{msgid:"Upload progress",msgstr:["Напредак отпремања"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Када се изабере долазни фолдер, сва имена фајлова са конфликтом унутар њега ће се такође преписати."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Када се изабере долазни фолдер, садржај се уписује у постојећи фолдер и извршава се рекурзивно разрешавање конфликата."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Које фајлове желите да задржите?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Можете или да промените име фајлу, прескочите овај фајл или откажете комплетну операцију."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Морате да изаберете барем једну верзију сваког фајла да наставите."]}}}}},{locale:"sr@latin",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)","Content-Type":"text/plain; charset=UTF-8",Language:"sr@latin","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr@latin\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sv",json:{charset:"utf-8",headers:{"Last-Translator":"Magnus Höglund, 2024","Language-Team":"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)","Content-Type":"text/plain; charset=UTF-8",Language:"sv","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMagnus Höglund, 2024\n"},msgstr:["Last-Translator: Magnus Höglund, 2024\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sv\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" är ett förbjudet fil- eller mappnamn.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" är en förbjuden filtyp.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" är inte tillåtet i ett fil- eller mappnamn.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} filkonflikt","{count} filkonflikter"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} filkonflikt i {dirname}","{count} filkonflikter i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekunder kvarstår"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} kvarstår"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["några sekunder kvar"]},Cancel:{msgid:"Cancel",msgstr:["Avbryt"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Avbryt hela operationen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Avbryt uppladdningar"]},Continue:{msgid:"Continue",msgstr:["Fortsätt"]},"Create new":{msgid:"Create new",msgstr:["Skapa ny"]},"estimating time left":{msgid:"estimating time left",msgstr:["uppskattar kvarstående tid"]},"Existing version":{msgid:"Existing version",msgstr:["Nuvarande version"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filnamn får inte sluta med "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Om du väljer båda versionerna kommer den inkommande filen att läggas till ett nummer i namnet."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ogiltigt filnamn"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Senaste ändringsdatum okänt"]},New:{msgid:"New",msgstr:["Ny"]},"New filename":{msgid:"New filename",msgstr:["Nytt filnamn"]},"New version":{msgid:"New version",msgstr:["Ny version"]},paused:{msgid:"paused",msgstr:["pausad"]},"Preview image":{msgid:"Preview image",msgstr:["Förhandsgranska bild"]},Rename:{msgid:"Rename",msgstr:["Byt namn"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Markera alla kryssrutor"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Välj alla befintliga filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Välj alla nya filer"]},Skip:{msgid:"Skip",msgstr:["Hoppa över"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Hoppa över denna fil","Hoppa över {count} filer"]},"Unknown size":{msgid:"Unknown size",msgstr:["Okänd storlek"]},Upload:{msgid:"Upload",msgstr:["Ladda upp"]},"Upload files":{msgid:"Upload files",msgstr:["Ladda upp filer"]},"Upload folders":{msgid:"Upload folders",msgstr:["Ladda upp mappar"]},"Upload from device":{msgid:"Upload from device",msgstr:["Ladda upp från enhet"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Uppladdningen har avbrutits"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Uppladdningen har hoppats över"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Uppladdningen av "{folder}" har hoppats över']},"Upload progress":{msgid:"Upload progress",msgstr:["Uppladdningsförlopp"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs skrivs även alla konfliktande filer i den över."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Vilka filer vill du behålla?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kan antingen byta namn på filen, hoppa över den här filen eller avbryta hela operationen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du måste välja minst en version av varje fil för att fortsätta."]}}}}},{locale:"sw",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)","Content-Type":"text/plain; charset=UTF-8",Language:"sw","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sw\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ta",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)","Content-Type":"text/plain; charset=UTF-8",Language:"ta","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"th",json:{charset:"utf-8",headers:{"Last-Translator":"Phongpanot Phairat <ppnplus@protonmail.com>, 2022","Language-Team":"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)","Content-Type":"text/plain; charset=UTF-8",Language:"th_TH","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\n"},msgstr:["Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th_TH\nPlural-Forms: nplurals=1; plural=0;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["เหลืออีก {seconds} วินาที"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["เหลืออีก {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["เหลืออีกไม่กี่วินาที"]},Add:{msgid:"Add",msgstr:["เพิ่ม"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["ยกเลิกการอัปโหลด"]},"estimating time left":{msgid:"estimating time left",msgstr:["กำลังคำนวณเวลาที่เหลือ"]},paused:{msgid:"paused",msgstr:["หยุดชั่วคราว"]},"Upload files":{msgid:"Upload files",msgstr:["อัปโหลดไฟล์"]}}}}},{locale:"tk",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)","Content-Type":"text/plain; charset=UTF-8",Language:"tk","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tk\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"tr",json:{charset:"utf-8",headers:{"Last-Translator":"Kaya Zeren <kayazeren@gmail.com>, 2024","Language-Team":"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)","Content-Type":"text/plain; charset=UTF-8",Language:"tr","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nKaya Zeren <kayazeren@gmail.com>, 2024\n"},msgstr:["Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2024\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tr\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" dosya ya da klasör adına izin verilmiyor.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" dosya türüne izin verilmiyor.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Bir dosya ya da klasör adında "{segment}" ifadesine izin verilmiyor.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} dosya çakışması var","{count} dosya çakışması var"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} klasöründe {count} dosya çakışması var","{dirname} klasöründe {count} dosya çakışması var"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saniye kaldı"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} kaldı"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir kaç saniye kaldı"]},Cancel:{msgid:"Cancel",msgstr:["İptal"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Tüm işlemi iptal et"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yüklemeleri iptal et"]},Continue:{msgid:"Continue",msgstr:["İlerle"]},"Create new":{msgid:"Create new",msgstr:["Yeni ekle"]},"estimating time left":{msgid:"estimating time left",msgstr:["öngörülen kalan süre"]},"Existing version":{msgid:"Existing version",msgstr:["Var olan sürüm"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Dosya adları "{segment}" ile bitmemeli.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Dosya adı geçersiz"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Son değiştirilme tarihi bilinmiyor"]},New:{msgid:"New",msgstr:["Yeni"]},"New filename":{msgid:"New filename",msgstr:["Yeni dosya adı"]},"New version":{msgid:"New version",msgstr:["Yeni sürüm"]},paused:{msgid:"paused",msgstr:["duraklatıldı"]},"Preview image":{msgid:"Preview image",msgstr:["Görsel ön izlemesi"]},Rename:{msgid:"Rename",msgstr:["Yeniden adlandır"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Tüm kutuları işaretle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Tüm var olan dosyaları seç"]},"Select all new files":{msgid:"Select all new files",msgstr:["Tüm yeni dosyaları seç"]},Skip:{msgid:"Skip",msgstr:["Atla"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Bu dosyayı atla","{count} dosyayı atla"]},"Unknown size":{msgid:"Unknown size",msgstr:["Boyut bilinmiyor"]},Upload:{msgid:"Upload",msgstr:["Yükle"]},"Upload files":{msgid:"Upload files",msgstr:["Dosyaları yükle"]},"Upload folders":{msgid:"Upload folders",msgstr:["Klasörleri yükle"]},"Upload from device":{msgid:"Upload from device",msgstr:["Aygıttan yükle"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Yükleme iptal edildi"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Yükleme atlandı"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" klasörünün yüklenmesi atlandı']},"Upload progress":{msgid:"Upload progress",msgstr:["Yükleme ilerlemesi"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bir gelen klasörü seçildiğinde içerik var olan klasöre yazılır ve yinelemeli bir çakışma çözümü uygulanır."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hangi dosyaları tutmak istiyorsunuz?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Dosya adını değiştirebilir, bu dosyayı atlayabilir ya da tüm işlemi iptal edebilirsiniz."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz."]}}}}},{locale:"ug",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)","Content-Type":"text/plain; charset=UTF-8",Language:"ug","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ug\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"uk",json:{charset:"utf-8",headers:{"Last-Translator":"O St <oleksiy.stasevych@gmail.com>, 2024","Language-Team":"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)","Content-Type":"text/plain; charset=UTF-8",Language:"uk","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nO St <oleksiy.stasevych@gmail.com>, 2024\n"},msgstr:["Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2024\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uk\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" не є дозволеним ім\'ям файлу або каталогу.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" не є дозволеним типом файлу.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" не дозволене сполучення символів в назві файлу або каталогу.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} конфліктний файл","{count} конфліктних файли","{count} конфліктних файлів","{count} конфліктних файлів"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} конфліктний файл у каталозі {dirname}","{count} конфліктних файли у каталозі {dirname}","{count} конфліктних файлів у каталозі {dirname}","{count} конфліктних файлів у каталозі {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Залишилося {seconds} секунд"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Залишилося {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["залишилося кілька секунд"]},Cancel:{msgid:"Cancel",msgstr:["Скасувати"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Скасувати операцію повністю"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Скасувати завантаження"]},Continue:{msgid:"Continue",msgstr:["Продовжити"]},"Create new":{msgid:"Create new",msgstr:["Створити новий"]},"estimating time left":{msgid:"estimating time left",msgstr:["оцінка часу, що залишився"]},"Existing version":{msgid:"Existing version",msgstr:["Присутня версія"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Ім\'я файлів не можуть закінчуватися на "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Якщо буде вибрано обидві версії, до імени вхідного файлу було додано цифру."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Недійсне ім'я файлу"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Дата останньої зміни невідома"]},New:{msgid:"New",msgstr:["Нове"]},"New filename":{msgid:"New filename",msgstr:["Нове ім'я файлу"]},"New version":{msgid:"New version",msgstr:["Нова версія"]},paused:{msgid:"paused",msgstr:["призупинено"]},"Preview image":{msgid:"Preview image",msgstr:["Попередній перегляд"]},Rename:{msgid:"Rename",msgstr:["Перейменувати"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Вибрати все"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Вибрати усі присутні файли"]},"Select all new files":{msgid:"Select all new files",msgstr:["Вибрати усі нові файли"]},Skip:{msgid:"Skip",msgstr:["Пропустити"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Пропустити файл","Пропустити {count} файли","Пропустити {count} файлів","Пропустити {count} файлів"]},"Unknown size":{msgid:"Unknown size",msgstr:["Невідомий розмір"]},Upload:{msgid:"Upload",msgstr:["Завантажити"]},"Upload files":{msgid:"Upload files",msgstr:["Завантажити файли"]},"Upload folders":{msgid:"Upload folders",msgstr:["Завантажити каталоги"]},"Upload from device":{msgid:"Upload from device",msgstr:["Завантажити з пристрою"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Завантаження скасовано"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Завантаження пропущено"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Завантаження "{folder}" пропущено']},"Upload progress":{msgid:"Upload progress",msgstr:["Поступ завантаження"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Якщо буде вибрано вхідний каталог, вміст буде записано до наявного каталогу та вирішено конфлікти у відповідних файлах каталогу та підкаталогів."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Які файли залишити?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Ви можете або перейменувати цей файл, пропустити або скасувати дію з файлом."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продовження потрібно вибрати принаймні одну версію для кожного файлу."]}}}}},{locale:"ur_PK",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)","Content-Type":"text/plain; charset=UTF-8",Language:"ur_PK","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ur_PK\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"uz",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)","Content-Type":"text/plain; charset=UTF-8",Language:"uz","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uz\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"vi",json:{charset:"utf-8",headers:{"Last-Translator":"Tung DangQuang, 2023","Language-Team":"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)","Content-Type":"text/plain; charset=UTF-8",Language:"vi","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nTung DangQuang, 2023\n"},msgstr:["Last-Translator: Tung DangQuang, 2023\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: vi\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Tập tin xung đột"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} tập tin lỗi trong {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Còn {second} giây"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Còn lại {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Còn lại một vài giây"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Huỷ tải lên"]},Continue:{msgid:"Continue",msgstr:["Tiếp Tục"]},"estimating time left":{msgid:"estimating time left",msgstr:["Thời gian còn lại dự kiến"]},"Existing version":{msgid:"Existing version",msgstr:["Phiên Bản Hiện Tại"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Ngày sửa dổi lần cuối không xác định"]},New:{msgid:"New",msgstr:["Tạo Mới"]},"New version":{msgid:"New version",msgstr:["Phiên Bản Mới"]},paused:{msgid:"paused",msgstr:["đã tạm dừng"]},"Preview image":{msgid:"Preview image",msgstr:["Xem Trước Ảnh"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Chọn tất cả hộp checkbox"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Chọn tất cả các tập tin có sẵn"]},"Select all new files":{msgid:"Select all new files",msgstr:["Chọn tất cả các tập tin mới"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Bỏ Qua {count} tập tin"]},"Unknown size":{msgid:"Unknown size",msgstr:["Không rõ dung lượng"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Dừng Tải Lên"]},"Upload files":{msgid:"Upload files",msgstr:["Tập tin tải lên"]},"Upload progress":{msgid:"Upload progress",msgstr:["Đang Tải Lên"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Bạn muốn giữ tập tin nào?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục"]}}}}},{locale:"zh_CN",json:{charset:"utf-8",headers:{"Last-Translator":"Gloryandel, 2024","Language-Team":"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_CN","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nGloryandel, 2024\n"},msgstr:["Last-Translator: Gloryandel, 2024\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_CN\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" 是被禁止的文件名或文件夹名。']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" 是被禁止的文件类型。']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" 不允许包含在文件名或文件夹名中。']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}文件冲突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["在{dirname}目录下有{count}个文件冲突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩余 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩余 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["还剩几秒"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整个操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上传"]},Continue:{msgid:"Continue",msgstr:["继续"]},"Create new":{msgid:"Create new",msgstr:["新建"]},"estimating time left":{msgid:"estimating time left",msgstr:["估计剩余时间"]},"Existing version":{msgid:"Existing version",msgstr:["服务端版本"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['文件名不得以 "{segment}" 结尾。']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["如果同时选择两个版本,则上传文件的名称中将添加一个数字。"]},"Invalid filename":{msgid:"Invalid filename",msgstr:["无效文件名"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["文件最后修改日期未知"]},New:{msgid:"New",msgstr:["新建"]},"New filename":{msgid:"New filename",msgstr:["新文件名"]},"New version":{msgid:"New version",msgstr:["上传版本"]},paused:{msgid:"paused",msgstr:["已暂停"]},"Preview image":{msgid:"Preview image",msgstr:["图片预览"]},Rename:{msgid:"Rename",msgstr:["重命名"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["选择所有的选择框"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["保留所有服务端版本"]},"Select all new files":{msgid:"Select all new files",msgstr:["保留所有上传版本"]},Skip:{msgid:"Skip",msgstr:["跳过"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["跳过{count}个文件"]},"Unknown size":{msgid:"Unknown size",msgstr:["文件大小未知"]},Upload:{msgid:"Upload",msgstr:["上传"]},"Upload files":{msgid:"Upload files",msgstr:["上传文件"]},"Upload folders":{msgid:"Upload folders",msgstr:["上传文件夹"]},"Upload from device":{msgid:"Upload from device",msgstr:["从设备上传"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["上传已取消"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["上传已跳过"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['已跳过上传"{folder}"']},"Upload progress":{msgid:"Upload progress",msgstr:["上传进度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["当选择上传文件夹时,其中任何冲突的文件也都会被覆盖。"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["选择上传文件夹后,内容将写入现有文件夹,并递归执行冲突解决。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["你要保留哪些文件?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["您可以重命名文件、跳过此文件或取消整个操作。"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["每个文件至少选择保留一个版本"]}}}}},{locale:"zh_HK",json:{charset:"utf-8",headers:{"Last-Translator":"Café Tango, 2024","Language-Team":"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_HK","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nCafé Tango, 2024\n"},msgstr:["Last-Translator: Café Tango, 2024\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_HK\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" 是禁止使用的檔案或資料夾名稱。']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" 是禁止使用的檔案類型。']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" 不允許出現在檔案或資料夾名稱中。']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} 個檔案衝突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} 中有 {count} 個檔案衝突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩餘 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩餘 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["還剩幾秒"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上傳"]},Continue:{msgid:"Continue",msgstr:["繼續"]},"Create new":{msgid:"Create new",msgstr:["創建新"]},"estimating time left":{msgid:"estimating time left",msgstr:["估計剩餘時間"]},"Existing version":{msgid:"Existing version",msgstr:["既有版本"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['檔案名不得以 "{segment}" 結尾。']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["若您選取兩個版本,傳入檔案的名稱將會新增編號。"]},"Invalid filename":{msgid:"Invalid filename",msgstr:["無效的檔案名"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最後修改日期不詳"]},New:{msgid:"New",msgstr:["新增"]},"New filename":{msgid:"New filename",msgstr:["新檔案名"]},"New version":{msgid:"New version",msgstr:["新版本 "]},paused:{msgid:"paused",msgstr:["已暫停"]},"Preview image":{msgid:"Preview image",msgstr:["預覽圖片"]},Rename:{msgid:"Rename",msgstr:["重新命名"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["選取所有核取方塊"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["選取所有既有檔案"]},"Select all new files":{msgid:"Select all new files",msgstr:["選取所有新檔案"]},Skip:{msgid:"Skip",msgstr:["跳過"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["略過 {count} 個檔案"]},"Unknown size":{msgid:"Unknown size",msgstr:["大小不詳"]},Upload:{msgid:"Upload",msgstr:["上傳"]},"Upload files":{msgid:"Upload files",msgstr:["上傳檔案"]},"Upload folders":{msgid:"Upload folders",msgstr:["上傳資料夾"]},"Upload from device":{msgid:"Upload from device",msgstr:["從裝置上傳"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["上傳已被取消"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["上傳已被跳過"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" 的上傳已被跳過']},"Upload progress":{msgid:"Upload progress",msgstr:["上傳進度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["選擇傳入資料夾後,內容將寫入現有資料夾並執行遞歸衝突解決。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["您想保留哪些檔案?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["您可以選擇重新命名檔案、跳過此檔案或取消整個操作。"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須為每個檔案都至少選取一個版本以繼續。"]}}}}},{locale:"zh_TW",json:{charset:"utf-8",headers:{"Last-Translator":"黃柏諺 <s8321414@gmail.com>, 2024","Language-Team":"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_TW","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\n黃柏諺 <s8321414@gmail.com>, 2024\n"},msgstr:["Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_TW\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} 個檔案衝突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} 中有 {count} 個檔案衝突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩餘 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩餘 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["還剩幾秒"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上傳"]},Continue:{msgid:"Continue",msgstr:["繼續"]},"estimating time left":{msgid:"estimating time left",msgstr:["估計剩餘時間"]},"Existing version":{msgid:"Existing version",msgstr:["既有版本"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["若您選取兩個版本,複製的檔案的名稱將會新增編號。"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最後修改日期未知"]},New:{msgid:"New",msgstr:["新增"]},"New version":{msgid:"New version",msgstr:["新版本"]},paused:{msgid:"paused",msgstr:["已暫停"]},"Preview image":{msgid:"Preview image",msgstr:["預覽圖片"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["選取所有核取方塊"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["選取所有既有檔案"]},"Select all new files":{msgid:"Select all new files",msgstr:["選取所有新檔案"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["略過 {count} 檔案"]},"Unknown size":{msgid:"Unknown size",msgstr:["未知大小"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["已取消上傳"]},"Upload files":{msgid:"Upload files",msgstr:["上傳檔案"]},"Upload progress":{msgid:"Upload progress",msgstr:["上傳進度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["您想保留哪些檔案?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須為每個檔案都至少選取一個版本以繼續。"]}}}}}].map((e=>B.addTranslation(e.locale,e.json)));const D=B.build(),O=D.ngettext.bind(D),R=D.gettext.bind(D);var j=(e=>(e[e.IDLE=0]="IDLE",e[e.UPLOADING=1]="UPLOADING",e[e.PAUSED=2]="PAUSED",e))(j||{});class M{_destinationFolder;_isPublic;_customHeaders;_uploadQueue=[];_jobQueue=new u.A({concurrency:(0,d.F)().files?.chunked_upload?.max_parallel_count??5});_queueSize=0;_queueProgress=0;_queueStatus=0;_notifiers=[];constructor(e=!1,t){if(this._isPublic=e,this._customHeaders={},!t){const s=`${r.PY}${r.lJ}`;let n;if(e)n="anonymous";else{const e=(0,a.HW)()?.uid;if(!e)throw new Error("User is not logged in");n=e}t=new r.vd({id:0,owner:n,permissions:r.aX.ALL,root:r.lJ,source:s})}this.destination=t,S.debug("Upload workspace initialized",{destination:this.destination,root:this.root,isPublic:e,maxChunksSize:F()})}get destination(){return this._destinationFolder}set destination(e){if(!e||e.type!==r.pt.Folder||!e.source)throw new Error("Invalid destination folder");S.debug("Destination set",{folder:e}),this._destinationFolder=e}get root(){return this._destinationFolder.source}get customHeaders(){return structuredClone(this._customHeaders)}setCustomHeader(e,t=""){this._customHeaders[e]=t}deleteCustomerHeader(e){delete this._customHeaders[e]}get queue(){return this._uploadQueue}reset(){0===this._uploadQueue.length&&0===this._jobQueue.size||(this._uploadQueue.splice(0,this._uploadQueue.length),this._jobQueue.clear(),this._queueSize=0,this._queueProgress=0,this._queueStatus=0,S.debug("Uploader state reset"))}pause(){this._jobQueue.pause(),this._queueStatus=2}start(){this._jobQueue.start(),this._queueStatus=1,this.updateStats()}get info(){return{size:this._queueSize,progress:this._queueProgress,status:this._queueStatus}}updateStats(){const e=this._uploadQueue.map((e=>e.size)).reduce(((e,t)=>e+t),0),t=this._uploadQueue.map((e=>e.uploaded)).reduce(((e,t)=>e+t),0);this._queueSize=e,this._queueProgress=t,2!==this._queueStatus&&(this._queueStatus=this._jobQueue.size>0?1:0)}addNotifier(e){this._notifiers.push(e)}_notifyAll(e){for(const t of this._notifiers)try{t(e)}catch(t){S.warn("Error in upload notifier",{error:t,source:e.source})}}batchUpload(e,t,s){return s||(s=async e=>e),new m.A((async(n,i,a)=>{const o=new z("");await o.addChildren(t);const l=`${this.root.replace(/\/$/,"")}/${e.replace(/^\//,"")}`,d=new U(l,!1,0,o);d.status=E.UPLOADING,this._uploadQueue.push(d),S.debug("Starting new batch upload",{target:l});try{const t=(0,r.H4)(this.root,this._customHeaders),i=this.uploadDirectory(e,o,s,t);a((()=>i.cancel()));const l=await i;d.status=E.FINISHED,n(l)}catch(e){S.error("Error in batch upload",{error:e}),d.status=E.FAILED,i(R("Upload has been cancelled"))}finally{this._notifyAll(d),this.updateStats()}}))}createDirectory(e,t,s){const n=(0,l.normalize)(`${e}/${t.name}`).replace(/\/$/,""),i=`${this.root.replace(/\/$/,"")}/${n.replace(/^\//,"")}`;if(!t.name)throw new Error("Can not create empty directory");const a=new U(i,!1,0,t);return this._uploadQueue.push(a),new m.A((async(e,i,r)=>{const o=new AbortController;r((()=>o.abort())),a.signal.addEventListener("abort",(()=>i(R("Upload has been cancelled")))),await this._jobQueue.add((async()=>{a.status=E.UPLOADING;try{await s.createDirectory(n,{signal:o.signal}),e(a)}catch(e){e&&"object"==typeof e&&"status"in e&&405===e.status?(a.status=E.FINISHED,S.debug("Directory already exists, writing into it",{directory:t.name})):(a.status=E.FAILED,i(e))}finally{this._notifyAll(a),this.updateStats()}}))}))}uploadDirectory(e,t,s,n){const i=(0,l.normalize)(`${e}/${t.name}`).replace(/\/$/,"");return new m.A((async(a,r,o)=>{const l=new AbortController;o((()=>l.abort()));const d=await s(t.children,i);if(!1===d)return S.debug("Upload canceled by user",{directory:t}),void r(R("Upload has been cancelled"));if(0===d.length&&t.children.length>0)return S.debug("Skipping directory, as all files were skipped by user",{directory:t}),void a([]);const c=[],m=[];l.signal.addEventListener("abort",(()=>{c.forEach((e=>e.cancel())),m.forEach((e=>e.cancel()))})),S.debug("Start directory upload",{directory:t});try{t.name&&(m.push(this.createDirectory(e,t,n)),await m.at(-1));for(const e of d)e instanceof z?c.push(this.uploadDirectory(i,e,s,n)):m.push(this.upload(`${i}/${e.name}`,e));a([await Promise.all(m),...await Promise.all(c)].flat())}catch(e){l.abort(e),r(e)}}))}upload(e,t,s,n=5){const i=`${(s=s||this.root).replace(/\/$/,"")}/${e.replace(/^\//,"")}`,{origin:r}=new URL(i),l=r+(0,o.O0)(i.slice(r.length));return S.debug(`Uploading ${t.name} to ${l}`),new m.A((async(e,s,r)=>{I(t)&&(t=await new Promise((e=>t.file(e,s))));const o=t,d=F("size"in o?o.size:void 0),m=this._isPublic||0===d||"size"in o&&o.size<d,u=new U(i,!m,o.size,o);if(this._uploadQueue.push(u),this.updateStats(),r(u.cancel),m){S.debug("Initializing regular upload",{file:o,upload:u});const t=await N(o,0,u.size),n=async()=>{try{u.response=await L(l,t,u.signal,(e=>{u.uploaded=u.uploaded+e.bytes,this.updateStats()}),void 0,{...this._customHeaders,"X-OC-Mtime":Math.floor(o.lastModified/1e3),"Content-Type":o.type}),u.uploaded=u.size,this.updateStats(),S.debug(`Successfully uploaded ${o.name}`,{file:o,upload:u}),e(u)}catch(e){if((0,c.FZ)(e))return u.status=E.FAILED,void s(R("Upload has been cancelled"));e?.response&&(u.response=e.response),u.status=E.FAILED,S.error(`Failed uploading ${o.name}`,{error:e,file:o,upload:u}),s("Failed uploading the file")}this._notifyAll(u)};this._jobQueue.add(n),this.updateStats()}else{S.debug("Initializing chunked upload",{file:o,upload:u});const t=await async function(e,t=5){const s=`${(0,g.dC)(`dav/uploads/${(0,a.HW)()?.uid}`)}/web-file-upload-${[...Array(16)].map((()=>Math.floor(16*Math.random()).toString(16))).join("")}`,n=e?{Destination:e}:void 0;return await c.Ay.request({method:"MKCOL",url:s,headers:n,"axios-retry":{retries:t,retryDelay:(e,t)=>(0,f.Nv)(e,t,1e3)}}),S.debug("Created temporary upload workspace",{url:s}),s}(l,n),i=[];for(let e=0;e<u.chunks;e++){const s=e*d,a=Math.min(s+d,u.size),r=()=>N(o,s,d),m=()=>L(`${t}/${e+1}`,r,u.signal,(()=>this.updateStats()),l,{...this._customHeaders,"X-OC-Mtime":Math.floor(o.lastModified/1e3),"OC-Total-Length":o.size,"Content-Type":"application/octet-stream"},n).then((()=>{u.uploaded=u.uploaded+d})).catch((t=>{if(507===t?.response?.status)throw S.error("Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks",{error:t,upload:u}),u.cancel(),u.status=E.FAILED,t;throw(0,c.FZ)(t)||(S.error(`Chunk ${e+1} ${s} - ${a} uploading failed`,{error:t,upload:u}),u.cancel(),u.status=E.FAILED),t}));i.push(this._jobQueue.add(m))}try{await Promise.all(i),this.updateStats(),u.response=await c.Ay.request({method:"MOVE",url:`${t}/.file`,headers:{...this._customHeaders,"X-OC-Mtime":Math.floor(o.lastModified/1e3),"OC-Total-Length":o.size,Destination:l}}),this.updateStats(),u.status=E.FINISHED,S.debug(`Successfully uploaded ${o.name}`,{file:o,upload:u}),e(u)}catch(e){(0,c.FZ)(e)?(u.status=E.FAILED,s(R("Upload has been cancelled"))):(u.status=E.FAILED,s("Failed assembling the chunks together")),c.Ay.request({method:"DELETE",url:`${t}`})}this._notifyAll(u)}return this._jobQueue.onIdle().then((()=>this.reset())),u}))}}function V(e,t,s,n,i,a,r,o){var l="function"==typeof e?e.options:e;return t&&(l.render=t,l.staticRenderFns=s,l._compiled=!0),a&&(l._scopeId="data-v-"+a),{exports:e,options:l}}const $=V({name:"CancelIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon cancel-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports,W=V({name:"FolderUploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon folder-upload-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports,H=V({name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon plus-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports,q=V({name:"UploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon upload-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports;function G(e){const t=(0,i.$V)((()=>Promise.all([s.e(4208),s.e(8320)]).then(s.bind(s,8320)))),{promise:n,reject:a,resolve:o}=Promise.withResolvers();return(0,T.Ss)(t,{error:e,validateFilename:r.KT},((...e)=>{const[{skip:t,rename:s}]=e;t?o(!1):s?o(s):a()})),n}function Y(e,t){return K(e,t).length>0}function K(e,t){const s=t.map((e=>e.basename));return e.filter((e=>{const t="basename"in e?e.basename:e.name;return-1!==s.indexOf(t)}))}const Q=V((0,i.pM)({name:"UploadPicker",components:{IconCancel:$,IconFolderUpload:W,IconPlus:H,IconUpload:q,NcActionButton:A.A,NcActionCaption:b.A,NcActionSeparator:C.A,NcActions:y.A,NcButton:x.A,NcIconSvgWrapper:k.A,NcProgressBar:_.A},props:{accept:{type:Array,default:null},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noMenu:{type:Boolean,default:!1},destination:{type:r.vd,default:void 0},allowFolders:{type:Boolean,default:!1},content:{type:[Array,Function],default:()=>[]},forbiddenCharacters:{type:Array,default:()=>[]}},setup:()=>({t:R,progressTimeId:`nc-uploader-progress-${Math.random().toString(36).slice(7)}`}),data:()=>({eta:null,openedMenu:!1,timeLeft:"",newFileMenuEntries:[],uploadManager:X()}),computed:{menuEntriesUpload(){return this.newFileMenuEntries.filter((e=>e.category===r.a7.UploadFromDevice))},menuEntriesNew(){return this.newFileMenuEntries.filter((e=>e.category===r.a7.CreateNew))},menuEntriesOther(){return this.newFileMenuEntries.filter((e=>e.category===r.a7.Other))},canUploadFolders(){return this.allowFolders&&"webkitdirectory"in document.createElement("input")},totalQueueSize(){return this.uploadManager.info?.size||0},uploadedQueueSize(){return this.uploadManager.info?.progress||0},progress(){return Math.round(this.uploadedQueueSize/this.totalQueueSize*100)||0},queue(){return this.uploadManager.queue},hasFailure(){return 0!==this.queue?.filter((e=>e.status===E.FAILED)).length},isUploading(){return this.queue?.length>0},isAssembling(){return 0!==this.queue?.filter((e=>e.status===E.ASSEMBLING)).length},isPaused(){return this.uploadManager.info?.status===j.PAUSED},buttonLabel(){return this.noMenu?R("Upload"):R("New")},buttonName(){if(!this.isUploading)return this.buttonLabel},haveMenu(){return!((this.noMenu||0===this.newFileMenuEntries.length)&&!this.canUploadFolders)}},watch:{allowFolders:{immediate:!0,handler(){"function"!=typeof this.content&&this.allowFolders&&S.error("[UploadPicker] Setting `allowFolders` is only allowed if `content` is a function")}},destination(e){this.setDestination(e)},totalQueueSize(e){this.eta=w({min:0,max:e}),this.updateStatus()},uploadedQueueSize(e){this.eta?.report?.(e),this.updateStatus()},isPaused(e){e?this.$emit("paused",this.queue):this.$emit("resumed",this.queue)}},beforeMount(){this.destination&&this.setDestination(this.destination),this.uploadManager.addNotifier(this.onUploadCompletion),(0,v.C)("u",this.onKeyDown,{stop:!0,prevent:!0,shift:!0}),(0,v.C)("Escape",this.onKeyDown,{stop:!0,prevent:!0}),S.debug("UploadPicker initialised")},methods:{async onClick(e){e.handler(this.destination,await this.getContent().catch((()=>[])))},onTriggerPick(e=!1){const t=this.$refs.input;this.canUploadFolders&&(t.webkitdirectory=e),this.$nextTick((()=>t.click()))},async getContent(e){return Array.isArray(this.content)?this.content:await this.content(e)},onPick(){const e=this.$refs.input,t=e.files?Array.from(e.files):[];var s;this.uploadManager.batchUpload("",t,(s=this.getContent,async(e,t)=>{try{const n=await s(t).catch((()=>[])),i=K(e,n);if(i.length>0){const{selected:s,renamed:a}=await J(t,i,n,{recursive:!0});e=[...s,...a]}const a=[];for(const t of e)try{(0,r.KT)(t.name),a.push(t)}catch(s){if(!(s instanceof r.di))throw S.error(`Unexpected error while validating ${t.name}`,{error:s}),s;let n=await G(s);!1!==n&&(n=(0,r.E6)(n,e.map((e=>e.name))),Object.defineProperty(t,"name",{value:n}),a.push(t))}if(0===a.length&&e.length>0){const e=(0,o.P8)(t);(0,T.cf)(e?R('Upload of "{folder}" has been skipped',{folder:e}):R("Upload has been skipped"))}return a}catch(e){return S.debug("Upload has been cancelled",{error:e}),(0,T.I9)(R("Upload has been cancelled")),!1}})).catch((e=>S.debug("Error while uploading",{error:e}))).finally((()=>this.resetForm()))},resetForm(){const e=this.$refs.form;e?.reset()},onCancel(){this.uploadManager.queue.forEach((e=>{e.cancel()})),this.resetForm()},updateStatus(){if(this.isPaused)return void(this.timeLeft=R("paused"));const e=Math.round(this.eta.estimate());if(e!==1/0)if(e<10)this.timeLeft=R("a few seconds left");else if(e>60){const t=new Date(0);t.setSeconds(e);const s=t.toISOString().slice(11,19);this.timeLeft=R("{time} left",{time:s})}else this.timeLeft=R("{seconds} seconds left",{seconds:e});else this.timeLeft=R("estimating time left")},setDestination(e){this.destination?(this.uploadManager.destination=e,this.newFileMenuEntries=(0,r.m1)(e)):S.debug("Invalid destination")},onUploadCompletion(e){e.status===E.FAILED?this.$emit("failed",e):this.$emit("uploaded",e)},onKeyDown(e){if("u"===e.key){if(this.haveMenu)return void(this.openedMenu=!0);this.onTriggerPick()}"Escape"===e.key&&this.openedMenu&&(this.openedMenu=!1)}}}),(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.destination?t("form",{ref:"form",staticClass:"upload-picker",class:{"upload-picker--uploading":e.isUploading,"upload-picker--paused":e.isPaused},attrs:{"data-cy-upload-picker":""}},[e.haveMenu?t("NcActions",{attrs:{"aria-label":e.buttonLabel,"menu-name":e.buttonName,open:e.openedMenu,type:"secondary"},on:{"update:open":function(t){e.openedMenu=t}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconPlus",{attrs:{size:20}})]},proxy:!0}],null,!1,1991456921)},[t("NcActionCaption",{attrs:{name:e.t("Upload from device")}}),t("NcActionButton",{attrs:{"data-cy-upload-picker-add":"","data-cy-upload-picker-menu-entry":"upload-file","close-after-click":!0},on:{click:function(t){return e.onTriggerPick()}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconUpload",{attrs:{size:20}})]},proxy:!0}],null,!1,337456192)},[e._v(" "+e._s(e.t("Upload files"))+" ")]),e.canUploadFolders?t("NcActionButton",{attrs:{"close-after-click":"","data-cy-upload-picker-add-folders":"","data-cy-upload-picker-menu-entry":"upload-folder"},on:{click:function(t){return e.onTriggerPick(!0)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconFolderUpload",{staticStyle:{color:"var(--color-primary-element)"},attrs:{size:20}})]},proxy:!0}],null,!1,1037549157)},[e._v(" "+e._s(e.t("Upload folders"))+" ")]):e._e(),e.noMenu?e._e():e._l(e.menuEntriesUpload,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])})),!e.noMenu&&e.menuEntriesNew.length>0?[t("NcActionSeparator"),t("NcActionCaption",{attrs:{name:e.t("Create new")}}),e._l(e.menuEntriesNew,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])}))]:e._e(),!e.noMenu&&e.menuEntriesOther.length>0?[t("NcActionSeparator"),e._l(e.menuEntriesOther,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])}))]:e._e()],2):t("NcButton",{attrs:{disabled:e.disabled,"data-cy-upload-picker-add":"","data-cy-upload-picker-menu-entry":"upload-file",type:"secondary"},on:{click:function(t){return e.onTriggerPick()}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconPlus",{attrs:{size:20}})]},proxy:!0}],null,!1,1991456921)},[e._v(" "+e._s(e.buttonName)+" ")]),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isUploading,expression:"isUploading"}],staticClass:"upload-picker__progress"},[t("NcProgressBar",{attrs:{"aria-label":e.t("Upload progress"),"aria-describedby":e.progressTimeId,error:e.hasFailure,value:e.progress,size:"medium"}}),t("p",{attrs:{id:e.progressTimeId}},[e._v(" "+e._s(e.timeLeft)+" ")])],1),e.isUploading?t("NcButton",{staticClass:"upload-picker__cancel",attrs:{type:"tertiary","aria-label":e.t("Cancel uploads"),"data-cy-upload-picker-cancel":""},on:{click:e.onCancel},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconCancel",{attrs:{size:20}})]},proxy:!0}],null,!1,3076329829)}):e._e(),t("input",{ref:"input",staticClass:"hidden-visually",attrs:{accept:e.accept?.join?.(", "),multiple:e.multiple,"data-cy-upload-picker-input":"",type:"file"},on:{change:e.onPick}})],1):e._e()}),[],0,0,"e69e222f").exports;function X(e=(0,n.f)(),t=!1){return(t||void 0===window._nc_uploader)&&(window._nc_uploader=new M(e)),window._nc_uploader}async function J(e,t,n,a){const r=(0,i.$V)((()=>Promise.all([s.e(4208),s.e(5266)]).then(s.bind(s,65266))));return new Promise(((s,o)=>{const l=new i.Ay({name:"ConflictPickerRoot",render:i=>i(r,{props:{dirname:e,conflicts:t,content:n,recursiveUpload:!0===a?.recursive},on:{submit(e){s(e),l.$destroy(),l.$el?.parentNode?.removeChild(l.$el)},cancel(e){o(e??new Error("Canceled")),l.$destroy(),l.$el?.parentNode?.removeChild(l.$el)}}})});l.$mount(),document.body.appendChild(l.$el)}))}}},a={};function r(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={id:e,loaded:!1,exports:{}};return i[e].call(s.exports,s,s.exports,r),s.loaded=!0,s.exports}r.m=i,e=[],r.O=(t,s,n,i)=>{if(!s){var a=1/0;for(c=0;c<e.length;c++){s=e[c][0],n=e[c][1],i=e[c][2];for(var o=!0,l=0;l<s.length;l++)(!1&i||a>=i)&&Object.keys(r.O).every((e=>r.O[e](s[l])))?s.splice(l--,1):(o=!1,i<a&&(a=i));if(o){e.splice(c--,1);var d=n();void 0!==d&&(t=d)}}return t}i=i||0;for(var c=e.length;c>0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[s,n,i]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var s in t)r.o(t,s)&&!r.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((t,s)=>(r.f[s](e,t),t)),[])),r.u=e=>e+"-"+e+".js?v="+{2441:"fc741cf57e9647f370a3",5266:"92742106cfd0ab7e96b2",5862:"7b9b02dc0a1b898066ef",7874:"3ea1c62ce5f0e7d75e81",8320:"87233c1e751a74de3fe2"}[e],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},n="nextcloud:",r.l=(e,t,i,a)=>{if(s[e])s[e].push(t);else{var o,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),c=0;c<d.length;c++){var m=d[c];if(m.getAttribute("src")==e||m.getAttribute("data-webpack")==n+i){o=m;break}}o||(l=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",n+i),o.src=e),s[e]=[t];var u=(t,n)=>{o.onerror=o.onload=null,clearTimeout(g);var i=s[e];if(delete s[e],o.parentNode&&o.parentNode.removeChild(o),i&&i.forEach((e=>e(n))),t)return t(n)},g=setTimeout(u.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=u.bind(null,o.onerror),o.onload=u.bind(null,o.onload),l&&document.head.appendChild(o)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.j=2882,(()=>{var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var s=t.getElementsByTagName("script");if(s.length)for(var n=s.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=s[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e})(),(()=>{r.b=document.baseURI||self.location.href;var e={2882:0};r.f.j=(t,s)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)s.push(n[2]);else{var i=new Promise(((s,i)=>n=e[t]=[s,i]));s.push(n[2]=i);var a=r.p+r.u(t),o=new Error;r.l(a,(s=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=s&&("load"===s.type?"missing":s.type),a=s&&s.target&&s.target.src;o.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",o.name="ChunkLoadError",o.type=i,o.request=a,n[1](o)}}),"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,s)=>{var n,i,a=s[0],o=s[1],l=s[2],d=0;if(a.some((t=>0!==e[t]))){for(n in o)r.o(o,n)&&(r.m[n]=o[n]);if(l)var c=l(r)}for(t&&t(s);d<a.length;d++)i=a[d],r.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return r.O(c)},s=self.webpackChunknextcloud=self.webpackChunknextcloud||[];s.forEach(t.bind(null,0)),s.push=t.bind(null,s.push.bind(s))})(),r.nc=void 0;var o=r.O(void 0,[4208],(()=>r(52054)));o=r.O(o)})();
-//# sourceMappingURL=files-main.js.map?v=7959d538bbdeb85a1d2a \ No newline at end of file
+(()=>{"use strict";var e,s,n,i={28874:(e,s,n)=>{var i=n(21777),a=n(65899),r=n(85471);const o=()=>(window._nc_files_pinia||(window._nc_files_pinia=(0,a.Ey)()),window._nc_files_pinia);var l=n(43627),d=n(94205),c=n(32981),m=n(35810),u=n(85168),g=n(53334),f=n(49264),p=n(5655);const h=(0,n(35947).YK)().setApp("files").detectUser().build();var v=n(61338),w=n(87485),A=n(65043);const b=()=>!0===(0,w.F)()?.files?.undelete,C=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"shared"===e.attributes["mount-type"])),y=e=>e.every((e=>!0===e.attributes["is-mount-root"]&&"external"===e.attributes["mount-type"])),x=(e,t)=>C(e)?1===e.length?(0,g.t)("files","Leave this share"):(0,g.t)("files","Leave these shares"):y(e)?1===e.length?(0,g.t)("files","Disconnect storage"):(0,g.t)("files","Disconnect storages"):"trashbin"!==t.id&&b()?(e=>{if(1===e.length)return!1;const t=e.some((e=>C([e]))),s=e.some((e=>!C([e])));return t&&s})(e)?(0,g.t)("files","Delete and unshare"):(e=>!e.some((e=>e.type!==m.pt.File)))(e)?1===e.length?(0,g.t)("files","Delete file"):(0,g.t)("files","Delete files"):(e=>!e.some((e=>e.type!==m.pt.Folder)))(e)?1===e.length?(0,g.t)("files","Delete folder"):(0,g.t)("files","Delete folders"):(0,g.t)("files","Delete"):(0,g.t)("files","Delete permanently"),k=async(e,t)=>{const s="trashbin"!==t.id&&b()?(0,g.n)("files","You are about to delete {count} item","You are about to delete {count} items",e.length,{count:e.length}):(0,g.n)("files","You are about to permanently delete {count} item","You are about to permanently delete {count} items",e.length,{count:e.length});return new Promise((n=>{window.OC.dialogs.confirmDestructive(s,(0,g.t)("files","Confirm deletion"),{type:window.OC.dialogs.YES_NO_BUTTONS,confirm:x(e,t),confirmClasses:"error",cancel:(0,g.t)("files","Cancel")},(e=>{n(e)}))}))},_=async e=>{await A.Ay.delete(e.encodedSource),(0,v.Ic)("files:node:deleted",e)},T=new f.A({concurrency:5}),S=new m.hY({id:"delete",displayName:x,iconSvgInline:e=>C(e)?p:y(e)?'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-network-off" viewBox="0 0 24 24"><path d="M1,5.27L5,9.27V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H17.73L19.73,24L21,22.72L2.28,4L1,5.27M15,20A1,1 0 0,0 14,19H13V17.27L15.73,20H15M17.69,16.87L5.13,4.31C5.41,3.55 6.14,3 7,3H17A2,2 0 0,1 19,5V15C19,15.86 18.45,16.59 17.69,16.87M22,20V21.18L20.82,20H22Z" /></svg>':'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-trash-can" viewBox="0 0 24 24"><path d="M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M9,8H11V17H9V8M13,8H15V17H13V8Z" /></svg>',enabled:e=>!!(0,c.C)("files_trashbin","config").allow_delete&&e.length>0&&e.map((e=>e.permissions)).every((e=>!!(e&m.aX.DELETE))),async exec(e,t){try{let s=!0;const n=((new Error).stack||"").toLocaleLowerCase().includes("keydown");return b()&&!n||(s=await k([e],t)),!1===s?((0,u.cf)((0,g.Tl)("files","Deletion cancelled")),null):(await _(e),!0)}catch(t){return h.error("Error while deleting a file",{error:t,source:e.source,node:e}),!1}},async execBatch(e,t){let s=!0;if(b()?e.length>=5&&!C(e)&&!y(e)&&(s=await k(e,t)):s=await k(e,t),!1===s)return(0,u.cf)((0,g.Tl)("files","Deletion cancelled")),Promise.all(e.map((()=>null)));const n=e.map((e=>new Promise((t=>{T.add((async()=>{try{await _(e),t(!0)}catch(s){h.error("Error while deleting a file",{error:s,source:e.source,node:e}),t(!1)}}))}))));return Promise.all(n)},order:100});var L=n(71225),N=n(63814),F=n(82680),E=n(63006),U=n(11459);const I=new f.A({concurrency:5}),P=e=>e.some((e=>1!==e.attributes.favorite)),z=async(e,t,s)=>{try{const n=(0,N.Jv)("/apps/files/api/v1/files")+(0,L.O0)(e.path);return await A.Ay.post(n,{tags:s?[window.OC.TAG_FAVORITE]:[]}),"favorites"!==t.id||s||"/"!==e.dirname||(0,v.Ic)("files:node:deleted",e),r.Ay.set(e.attributes,"favorite",s?1:0),s?(0,v.Ic)("files:favorites:added",e):(0,v.Ic)("files:favorites:removed",e),!0}catch(t){const n=s?"adding a file to favourites":"removing a file from favourites";return h.error("Error while "+n,{error:t,source:e.source,node:e}),!1}},B=new m.hY({id:"favorite",displayName:e=>P(e)?(0,g.Tl)("files","Add to favorites"):(0,g.Tl)("files","Remove from favorites"),iconSvgInline:e=>P(e)?E:U,enabled:e=>!(0,F.f)()&&e.every((e=>e.root?.startsWith?.("/files")))&&e.every((e=>e.permissions!==m.aX.NONE)),async exec(e,t){const s=P([e]);return await z(e,t,s)},async execBatch(e,t){const s=P(e),n=e.map((e=>new Promise((n=>{I.add((async()=>{try{await z(e,t,s),n(!0)}catch(t){h.error("Error while adding file to favorite",{error:t,source:e.source,node:e}),n(!1)}}))}))));return Promise.all(n)},order:-50});var D=n(19664);const O=new m.hY({id:"rename",displayName:()=>(0,g.Tl)("files","Rename"),iconSvgInline:()=>D,enabled:(e,t)=>0!==e.length&&"public-file-share"!==t.id&&e.every((e=>Boolean(e.permissions&m.aX.DELETE))),exec:async e=>((0,v.Ic)("files:node:rename",e),null),order:10});var R=n(49981);const j=new m.hY({id:"details",displayName:()=>(0,g.Tl)("files","Open details"),iconSvgInline:()=>R,enabled:e=>!(0,F.f)()&&1===e.length&&!!e[0]&&!!window?.OCA?.Files?.Sidebar&&((e[0].root?.startsWith("/files/")&&e[0].permissions!==m.aX.NONE)??!1),async exec(e,t,s){try{return window.OCA.Files.Sidebar.file===e.path?(h.debug("Sidebar already open for this file",{node:e}),null):(window.OCA.Files.Sidebar.setActiveTab("sharing"),await window.OCA.Files.Sidebar.open(e.path),window.OCP?.Files?.Router?.goToRoute(null,{view:t.id,fileid:String(e.fileid)},{...window.OCP.Files.Router.query,dir:s,opendetails:"true"},!0),null)}catch(e){return h.error("Error while opening sidebar",{error:e}),!1}},order:-50}),M=function(){const e=(0,a.nY)("active",{state:()=>({_initialized:!1,activeNode:null,activeView:null,activeAction:null}),actions:{setActiveNode(e){if(!e)throw new Error("Use clearActiveNode to clear the active node");h.debug("Setting active node",{node:e}),this.activeNode=e},clearActiveNode(){this.activeNode=null},onDeletedNode(e){this.activeNode&&this.activeNode.source===e.source&&this.clearActiveNode()},setActiveAction(e){this.activeAction=e},clearActiveAction(){this.activeAction=null},onChangedView(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;h.debug("Setting active view",{view:e}),this.activeView=e,this.clearActiveNode()}}}),t=e(...arguments),s=(0,m.bh)();return t._initialized||((0,v.B1)("files:node:deleted",t.onDeletedNode),t._initialized=!0,t.onChangedView(s.active),s.addEventListener("updateActive",(e=>{t.onChangedView(e.detail)}))),t},V=async e=>{const t=M(o()),s=window?.OCP?.Files?.Router?.query?.dir||"/",n=t.activeNode,i=t.activeView;if(!n||!i)return void h.error("No active node or view",{node:n,view:i});if(n.status===m.zI.LOADING)return void h.debug("Node is already loading",{node:n});if(!e.enabled([n],i))return void h.debug("Action is not not available for the current context",{action:e,node:n,view:i});let a=e.id;try{a=e.displayName([n],i)}catch(t){h.error("Error while getting action display name",{action:e,error:t})}try{r.Ay.set(n,"status",m.zI.LOADING),t.setActiveAction(e);const o=await e.exec(n,i,s);if(null==o)return;if(o)return void(0,u.Te)((0,g.t)("files",'"{displayName}" action executed successfully',{displayName:a}));(0,u.Qg)((0,g.t)("files",'"{displayName}" action failed',{displayName:a}))}catch(t){h.error("Error while executing action",{action:e,error:t}),(0,u.Qg)((0,g.t)("files",'"{displayName}" action failed',{displayName:a}))}finally{r.Ay.set(n,"status",void 0),t.clearActiveAction()}},$=(0,c.C)("files","config",{show_hidden:!1,crop_image_previews:!0,sort_favorites_first:!0,sort_folders_first:!0,grid_view:!1}),W=(0,a.nY)("userconfig",(()=>{const e=(0,r.KR)({...$});return(0,v.B1)("files:config:updated",(t=>{let{key:s,value:n}=t;return function(t,s){(0,r.hZ)(e.value,t,s)}(s,n)})),{userConfig:e,update:async function(e,t){null!==(0,i.HW)()&&await A.Ay.put((0,N.Jv)("/apps/files/api/v1/config/{key}",{key:e}),{value:t}),(0,v.Ic)("files:config:updated",{key:e,value:t})}}}));var H=n(22378);const q={name:"CogIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var G=n(14486);const Y=(0,G.A)(q,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon cog-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var K=n(42530),Q=n(52439),X=n(27345),J=n(74246);function Z(e,t,s){var n,i=s||{},a=i.noTrailing,r=void 0!==a&&a,o=i.noLeading,l=void 0!==o&&o,d=i.debounceMode,c=void 0===d?void 0:d,m=!1,u=0;function g(){n&&clearTimeout(n)}function f(){for(var s=arguments.length,i=new Array(s),a=0;a<s;a++)i[a]=arguments[a];var o=this,d=Date.now()-u;function f(){u=Date.now(),t.apply(o,i)}function p(){n=void 0}m||(l||!c||n||f(),g(),void 0===c&&d>e?l?(u=Date.now(),r||(n=setTimeout(c?p:f,e))):f():!0!==r&&(n=setTimeout(c?p:f,void 0===c?e-d:e)))}return f.cancel=function(e){var t=(e||{}).upcomingOnly,s=void 0!==t&&t;g(),m=!s},f}const ee={name:"ChartPieIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},te=(0,G.A)(ee,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon chart-pie-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var se=n(95101);const ne={name:"NavigationQuota",components:{ChartPie:te,NcAppNavigationItem:Q.A,NcProgressBar:se.A},data:()=>({loadingStorageStats:!1,storageStats:(0,c.C)("files","storageStats",null)}),computed:{storageStatsTitle(){const e=(0,m.v7)(this.storageStats?.used,!1,!1),t=(0,m.v7)(this.storageStats?.quota,!1,!1);return this.storageStats?.quota<0?this.t("files","{usedQuotaByte} used",{usedQuotaByte:e}):this.t("files","{used} of {quota} used",{used:e,quota:t})},storageStatsTooltip(){return this.storageStats.relative?this.t("files","{relative}% used",this.storageStats):""}},beforeMount(){setInterval(this.throttleUpdateStorageStats,6e4),(0,v.B1)("files:node:created",this.throttleUpdateStorageStats),(0,v.B1)("files:node:deleted",this.throttleUpdateStorageStats),(0,v.B1)("files:node:moved",this.throttleUpdateStorageStats),(0,v.B1)("files:node:updated",this.throttleUpdateStorageStats)},mounted(){this.storageStats?.quota>0&&0===this.storageStats?.free&&this.showStorageFullWarning()},methods:{debounceUpdateStorageStats:(ie={}.atBegin,Z(200,(function(e){this.updateStorageStats(e)}),{debounceMode:!1!==(void 0!==ie&&ie)})),throttleUpdateStorageStats:Z(1e3,(function(e){this.updateStorageStats(e)})),async updateStorageStats(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!this.loadingStorageStats){this.loadingStorageStats=!0;try{const e=await A.Ay.get((0,N.Jv)("/apps/files/api/v1/stats"));if(!e?.data?.data)throw new Error("Invalid storage stats");this.storageStats?.free>0&&0===e.data.data?.free&&e.data.data?.quota>0&&this.showStorageFullWarning(),this.storageStats=e.data.data}catch(s){h.error("Could not refresh storage stats",{error:s}),e&&(0,u.Qg)(t("files","Could not refresh storage stats"))}finally{this.loadingStorageStats=!1}}},showStorageFullWarning(){(0,u.Qg)(this.t("files","Your storage is full, files can not be updated or synced anymore!"))},t:g.Tl}};var ie,ae=n(85072),re=n.n(ae),oe=n(97825),le=n.n(oe),de=n(77659),ce=n.n(de),me=n(55056),ue=n.n(me),ge=n(10540),fe=n.n(ge),pe=n(41113),he=n.n(pe),ve=n(84877),we={};we.styleTagTransform=he(),we.setAttributes=ue(),we.insert=ce().bind(null,"head"),we.domAPI=le(),we.insertStyleElement=fe(),re()(ve.A,we),ve.A&&ve.A.locals&&ve.A.locals;const Ae=(0,G.A)(ne,(function(){var e=this,t=e._self._c;return e.storageStats?t("NcAppNavigationItem",{staticClass:"app-navigation-entry__settings-quota",class:{"app-navigation-entry__settings-quota--not-unlimited":e.storageStats.quota>=0},attrs:{"aria-description":e.t("files","Storage information"),loading:e.loadingStorageStats,name:e.storageStatsTitle,title:e.storageStatsTooltip,"data-cy-files-navigation-settings-quota":""},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.debounceUpdateStorageStats.apply(null,arguments)}}},[t("ChartPie",{attrs:{slot:"icon",size:20},slot:"icon"}),e._v(" "),e.storageStats.quota>=0?t("NcProgressBar",{attrs:{slot:"extra","aria-label":e.t("files","Storage quota"),error:e.storageStats.relative>80,value:Math.min(e.storageStats.relative,100)},slot:"extra"}):e._e()],1):e._e()}),[],!1,null,"6ed9379e",null).exports;var be=n(31773),Ce=n(42520),ye=n(14727),xe=n(32073),ke=n(16879);const _e={name:"Setting",props:{el:{type:Function,required:!0}},mounted(){this.$el.appendChild(this.el())}},Te=(0,G.A)(_e,(function(){return(0,this._self._c)("div")}),[],!1,null,null,null).exports,Se={name:"Settings",components:{Clipboard:be.A,NcAppSettingsDialog:Ce.N,NcAppSettingsSection:ye.A,NcCheckboxRadioSwitch:xe.A,NcInputField:ke.A,Setting:Te},props:{open:{type:Boolean,default:!1}},setup(){const e=W();return{isSystemtagsEnabled:!0===(0,w.F)()?.systemtags?.enabled,userConfigStore:e,t:g.t}},data:()=>({settings:window.OCA?.Files?.Settings?.settings||[],webdavUrl:(0,N.dC)("dav/files/"+encodeURIComponent((0,i.HW)()?.uid)),webdavDocs:"https://docs.nextcloud.com/server/stable/go.php?to=user-webdav",appPasswordUrl:(0,N.Jv)("/settings/user/security#generate-app-token-section"),webdavUrlCopied:!1,enableGridView:(0,c.C)("core","config",[])["enable_non-accessible_features"]??!0}),computed:{userConfig(){return this.userConfigStore.userConfig}},created(){(0,d.C)("?",this.showKeyboardShortcuts,{stop:!0,prevent:!0})},beforeMount(){this.settings.forEach((e=>e.open()))},beforeDestroy(){this.settings.forEach((e=>e.close()))},methods:{onClose(){this.$emit("close")},setConfig(e,t){this.userConfigStore.update(e,t)},async copyCloudId(){document.querySelector("input#webdav-url-input").select(),navigator.clipboard?(await navigator.clipboard.writeText(this.webdavUrl),this.webdavUrlCopied=!0,(0,u.Te)((0,g.t)("files","WebDAV URL copied to clipboard")),setTimeout((()=>{this.webdavUrlCopied=!1}),5e3)):(0,u.Qg)((0,g.t)("files","Clipboard is not available"))},async showKeyboardShortcuts(){this.$emit("update:open",!0),await this.$nextTick(),document.getElementById("settings-section_shortcuts").scrollIntoView({behavior:"smooth",inline:"nearest"})}}};var Le=n(49790),Ne={};Ne.styleTagTransform=he(),Ne.setAttributes=ue(),Ne.insert=ce().bind(null,"head"),Ne.domAPI=le(),Ne.insertStyleElement=fe(),re()(Le.A,Ne),Le.A&&Le.A.locals&&Le.A.locals;const Fe=(0,G.A)(Se,(function(){var e=this,t=e._self._c;return t("NcAppSettingsDialog",{attrs:{open:e.open,"show-navigation":!0,name:e.t("files","Files settings")},on:{"update:open":e.onClose}},[t("NcAppSettingsSection",{attrs:{id:"settings",name:e.t("files","Files settings")}},[t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"sort_favorites_first",checked:e.userConfig.sort_favorites_first},on:{"update:checked":function(t){return e.setConfig("sort_favorites_first",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Sort favorites first"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"sort_folders_first",checked:e.userConfig.sort_folders_first},on:{"update:checked":function(t){return e.setConfig("sort_folders_first",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Sort folders before files"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"show_hidden",checked:e.userConfig.show_hidden},on:{"update:checked":function(t){return e.setConfig("show_hidden",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Show hidden files"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"crop_image_previews",checked:e.userConfig.crop_image_previews},on:{"update:checked":function(t){return e.setConfig("crop_image_previews",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Crop image previews"))+"\n\t\t")]),e._v(" "),e.enableGridView?t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"grid_view",checked:e.userConfig.grid_view},on:{"update:checked":function(t){return e.setConfig("grid_view",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Enable the grid view"))+"\n\t\t")]):e._e(),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{"data-cy-files-settings-setting":"folder_tree",checked:e.userConfig.folder_tree},on:{"update:checked":function(t){return e.setConfig("folder_tree",t)}}},[e._v("\n\t\t\t"+e._s(e.t("files","Enable folder tree"))+"\n\t\t")])],1),e._v(" "),0!==e.settings.length?t("NcAppSettingsSection",{attrs:{id:"more-settings",name:e.t("files","Additional settings")}},[e._l(e.settings,(function(e){return[t("Setting",{key:e.name,attrs:{el:e.el}})]}))],2):e._e(),e._v(" "),t("NcAppSettingsSection",{attrs:{id:"webdav",name:e.t("files","WebDAV")}},[t("NcInputField",{attrs:{id:"webdav-url-input",label:e.t("files","WebDAV URL"),"show-trailing-button":!0,success:e.webdavUrlCopied,"trailing-button-label":e.t("files","Copy to clipboard"),value:e.webdavUrl,readonly:"readonly",type:"url"},on:{focus:function(e){return e.target.select()},"trailing-button-click":e.copyCloudId},scopedSlots:e._u([{key:"trailing-button-icon",fn:function(){return[t("Clipboard",{attrs:{size:20}})]},proxy:!0}])}),e._v(" "),t("em",[t("a",{staticClass:"setting-link",attrs:{href:e.webdavDocs,target:"_blank",rel:"noreferrer noopener"}},[e._v("\n\t\t\t\t"+e._s(e.t("files","Use this address to access your Files via WebDAV"))+" ↗\n\t\t\t")])]),e._v(" "),t("br"),e._v(" "),t("em",[t("a",{staticClass:"setting-link",attrs:{href:e.appPasswordUrl}},[e._v("\n\t\t\t\t"+e._s(e.t("files","If you have enabled 2FA, you must create and use a new app password by clicking here."))+" ↗\n\t\t\t")])])],1),e._v(" "),t("NcAppSettingsSection",{attrs:{id:"shortcuts",name:e.t("files","Keyboard shortcuts")}},[t("em",[e._v(e._s(e.t("files","Speed up your Files experience with these quick shortcuts.")))]),e._v(" "),t("h3",[e._v(e._s(e.t("files","Actions")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("a")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Open the actions menu for a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("F2")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Rename a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Del")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Delete a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("s")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Favorite or remove a file from favorites"))+"\n\t\t\t\t")])]),e._v(" "),e.isSystemtagsEnabled?t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("t")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Manage tags for a file"))+"\n\t\t\t\t")])]):e._e()]),e._v(" "),t("h3",[e._v(e._s(e.t("files","Selection")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Ctrl")]),e._v(" + "),t("kbd",[e._v("A")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Select all files"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("ESC")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Deselect all files"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Ctrl")]),e._v(" + "),t("kbd",[e._v("Space")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Select or deselect a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Ctrl")]),e._v(" + "),t("kbd",[e._v("Shift")]),e._v(" "),t("span",[e._v("+ "),t("kbd",[e._v("Space")])])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Select a range of files"))+"\n\t\t\t\t")])])]),e._v(" "),t("h3",[e._v(e._s(e.t("files","Navigation")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("Alt")]),e._v(" + "),t("kbd",[e._v("↑")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the parent folder"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("↑")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file above"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("↓")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file below"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("←")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file on the left (in grid mode)"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("→")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Navigate to the file on the right (in grid mode)"))+"\n\t\t\t\t")])])]),e._v(" "),t("h3",[e._v(e._s(e.t("files","View")))]),e._v(" "),t("dl",[t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("V")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Toggle the grid view"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("D")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Open the sidebar for a file"))+"\n\t\t\t\t")])]),e._v(" "),t("div",[t("dt",{staticClass:"shortcut-key"},[t("kbd",[e._v("?")])]),e._v(" "),t("dd",{staticClass:"shortcut-description"},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Show those shortcuts"))+"\n\t\t\t\t")])])])])],1)}),[],!1,null,"6fc727d7",null).exports;var Ee=n(54914),Ue=n(6695);function Ie(e){const t=(0,m.bh)(),s=(0,r.IJ)(t.views),n=(0,r.IJ)(t.active);function i(e){n.value=e.detail}function a(){s.value=t.views,(0,r.mu)(s)}return(0,r.sV)((()=>{t.addEventListener("update",a),t.addEventListener("updateActive",i),(0,v.B1)("files:navigation:updated",a)})),(0,r.hi)((()=>{t.removeEventListener("update",a),t.removeEventListener("updateActive",i)})),{currentView:n,views:s}}const Pe=(0,c.C)("files","viewConfigs",{}),ze=(0,a.nY)("viewconfig",(()=>{const e=(0,r.KR)({...Pe});async function t(e,t,s){null!==(0,i.HW)()&&await A.Ay.put((0,N.Jv)("/apps/files/api/v1/views"),{value:s,view:e,key:t}),(0,v.Ic)("files:view-config:updated",{view:e,key:t,value:s})}return(0,v.B1)("files:view-config:updated",(t=>{let{view:s,key:n,value:i}=t;return function(t,s,n){t in e.value||(0,r.hZ)(e.value,t,{}),(0,r.hZ)(e.value[t],s,n)}(s,n,i)})),{viewConfigs:e,getConfig:function(t){return e.value[t]||{}},setSortingBy:function(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"files";t(e,"sorting_mode",arguments.length>0&&void 0!==arguments[0]?arguments[0]:"basename"),t(e,"sorting_direction","asc")},toggleSortingDirection:function(){let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"files";t(s,"sorting_direction","asc"===(e.value[s]||{sorting_direction:"asc"}).sorting_direction?"desc":"asc")},update:t}})),Be=(0,r.pM)({name:"FilesNavigationItem",components:{Fragment:Ee.F,NcAppNavigationItem:Q.A,NcIconSvgWrapper:Ue.A},props:{parent:{type:Object,default:()=>({})},level:{type:Number,default:0},views:{type:Object,default:()=>({})}},setup(){const{currentView:e}=Ie();return{currentView:e,viewConfigStore:ze()}},computed:{currentViews(){return this.level>=7?Object.values(this.views).reduce(((e,t)=>[...e,...t]),[]).filter((e=>e.params?.dir.startsWith(this.parent.params?.dir))):this.views[this.parent.id]??[]},style(){return 0===this.level||1===this.level||this.level>7?null:{"padding-left":"16px"}}},methods:{hasChildViews(e){return!(this.level>=7)&&this.views[e.id]?.length>0},useExactRouteMatching(e){return this.hasChildViews(e)},generateToNavigation(e){if(e.params){const{dir:t}=e.params;return{name:"filelist",params:{...e.params},query:{dir:t}}}return{name:"filelist",params:{view:e.id}}},isExpanded(e){return"boolean"==typeof this.viewConfigStore.getConfig(e.id)?.expanded?!0===this.viewConfigStore.getConfig(e.id).expanded:!0===e.expanded},async onOpen(e,t){const s=this.isExpanded(t);t.expanded=!s,this.viewConfigStore.update(t.id,"expanded",!s),e&&t.loadChildViews&&await t.loadChildViews(t)},filterView:(e,t)=>Object.fromEntries(Object.entries(e).filter((e=>{let[s,n]=e;return s!==t})))}}),De=(0,G.A)(Be,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("Fragment",e._l(e.currentViews,(function(s){return t("NcAppNavigationItem",{key:s.id,staticClass:"files-navigation__item",style:e.style,attrs:{"allow-collapse":"",loading:s.loading,"data-cy-files-navigation-item":s.id,exact:e.useExactRouteMatching(s),icon:s.iconClass,name:s.name,open:e.isExpanded(s),pinned:s.sticky,to:e.generateToNavigation(s)},on:{"update:open":t=>e.onOpen(t,s)},scopedSlots:e._u([s.icon?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.icon}})]},proxy:!0}:null],null,!0)},[e._v(" "),s.loadChildViews&&!s.loaded?t("li",{staticStyle:{display:"none"}}):e._e(),e._v(" "),e.hasChildViews(s)?t("FilesNavigationItem",{attrs:{parent:s,level:e.level+1,views:e.filterView(e.views,e.parent.id)}}):e._e()],1)})),1)}),[],!1,null,null,null).exports;var Oe=n(59271);class Re extends m.L3{constructor(){super("files:filename",5),function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s}(this,"searchQuery","")}filter(e){const t=this.searchQuery.toLocaleLowerCase().split(" ").filter(Boolean);return e.filter((e=>{const s=e.displayname.toLocaleLowerCase();return t.every((e=>s.includes(e)))}))}reset(){this.updateQuery("")}updateQuery(e){if((e=(e||"").trim())!==this.searchQuery){this.searchQuery=e,this.filterUpdated();const t=[];""!==e&&t.push({text:e,onclick:()=>{this.updateQuery("")}}),this.updateChips(t),this.dispatchTypedEvent("update:query",new CustomEvent("update:query",{detail:e}))}}}function je(e){return"mount"in e}const Me=(0,a.nY)("filters",(()=>{const e=(0,r.KR)({}),t=(0,r.KR)([]),s=(0,r.KR)(!1),n=(0,r.EW)((()=>Object.values(e.value).flat())),i=(0,r.EW)((()=>t.value.sort(((e,t)=>e.order-t.order)))),a=(0,r.EW)((()=>i.value.filter(je)));function o(e){e.addEventListener("update:chips",c),e.addEventListener("update:filter",d),t.value.push(e),h.debug("New file list filter registered",{id:e.id})}function l(e){const s=t.value.findIndex((t=>{let{id:s}=t;return s===e}));if(s>-1){const[n]=t.value.splice(s,1);n.removeEventListener("update:chips",c),n.removeEventListener("update:filter",d),h.debug("Files list filter unregistered",{id:e})}}function d(){s.value=!0}function c(t){const s=t.target.id;e.value={...e.value,[s]:[...t.detail]},h.debug("File list filter chips updated",{filter:s,chips:t.detail})}(0,v.B1)("files:navigation:changed",(function(){h.debug("Reset all file list filters - view changed");for(const e of t.value)void 0!==e.reset&&e.reset()})),(0,v.B1)("files:filter:added",o),(0,v.B1)("files:filter:removed",l);for(const e of(0,m.sR)())o(e);return{chips:e,filters:t,filtersWithUI:a,filtersChanged:s,activeChips:n,sortedFilters:i,addFilter:o,removeFilter:l}})),Ve=Intl.Collator([(0,g.Z0)(),(0,g.lO)()],{numeric:!0,usage:"sort"}),$e=(0,r.pM)({name:"Navigation",components:{IconCog:Y,FilesNavigationItem:De,NavigationQuota:Ae,NcAppNavigation:K.A,NcAppNavigationItem:Q.A,NcAppNavigationList:X.A,NcAppNavigationSearch:J.N,SettingsModal:Fe},setup(){const e=Me(),t=ze(),{currentView:s,views:n}=Ie(),{searchQuery:i}=function(){const e=(0,r.KR)(""),t=new Re;function s(t){"update:query"===t.type&&(e.value=t.detail,t.stopPropagation())}return(0,r.sV)((()=>{t.addEventListener("update:query",s),(0,m.cZ)(t)})),(0,r.hi)((()=>{t.removeEventListener("update:query",s),(0,m.Dw)(t.id)})),(0,Oe.o3)(e,(()=>{t.updateQuery(e.value)}),{throttle:800}),{searchQuery:e}}();return{currentView:s,searchQuery:i,t:g.Tl,views:n,filtersStore:e,viewConfigStore:t}},data:()=>({settingsOpened:!1}),computed:{currentViewId(){return this.$route?.params?.view||"files"},viewMap(){return this.views.reduce(((e,t)=>(e[t.parent]=[...e[t.parent]||[],t],e[t.parent].sort(((e,t)=>"number"==typeof e.order||"number"==typeof t.order?(e.order??0)-(t.order??0):Ve.compare(e.name,t.name))),e)),{})}},watch:{currentViewId(e,t){if(this.currentViewId!==this.currentView?.id){const s=this.views.find((e=>{let{id:t}=e;return t===this.currentViewId}));this.showView(s),h.debug(`Navigation changed from ${t} to ${e}`,{to:s})}}},created(){(0,v.B1)("files:folder-tree:initialized",this.loadExpandedViews),(0,v.B1)("files:folder-tree:expanded",this.loadExpandedViews)},beforeMount(){const e=this.views.find((e=>{let{id:t}=e;return t===this.currentViewId}));this.showView(e),h.debug("Navigation mounted. Showing requested view",{view:e})},methods:{async loadExpandedViews(){const e=Object.entries(this.viewConfigStore.viewConfigs).filter((e=>{let[,t]=e;return!0===t.expanded})).map((e=>{let[t]=e;return this.views.find((e=>e.id===t))})).filter(Boolean).filter((e=>e.loadChildViews&&!e.loaded));for(const t of e)await t.loadChildViews(t)},showView(e){window.OCA?.Files?.Sidebar?.close?.(),(0,m.bh)().setActive(e),(0,v.Ic)("files:navigation:changed",e)},openSettings(){this.settingsOpened=!0},onSettingsClose(){this.settingsOpened=!1}}});var We=n(13398),He={};He.styleTagTransform=he(),He.setAttributes=ue(),He.insert=ce().bind(null,"head"),He.domAPI=le(),He.insertStyleElement=fe(),re()(We.A,He),We.A&&We.A.locals&&We.A.locals;const qe=(0,G.A)($e,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcAppNavigation",{staticClass:"files-navigation",attrs:{"data-cy-files-navigation":"","aria-label":e.t("files","Files")},scopedSlots:e._u([{key:"search",fn:function(){return[t("NcAppNavigationSearch",{attrs:{label:e.t("files","Filter file names …")},model:{value:e.searchQuery,callback:function(t){e.searchQuery=t},expression:"searchQuery"}})]},proxy:!0},{key:"default",fn:function(){return[t("NcAppNavigationList",{staticClass:"files-navigation__list",attrs:{"aria-label":e.t("files","Views")}},[t("FilesNavigationItem",{attrs:{views:e.viewMap}})],1),e._v(" "),t("SettingsModal",{attrs:{open:e.settingsOpened,"data-cy-files-navigation-settings":""},on:{"update:open":function(t){e.settingsOpened=t},close:e.onSettingsClose}})]},proxy:!0},{key:"footer",fn:function(){return[t("ul",{staticClass:"app-navigation-entry__settings"},[t("NavigationQuota"),e._v(" "),t("NcAppNavigationItem",{attrs:{name:e.t("files","Files settings"),"data-cy-files-navigation-settings-button":""},on:{click:function(t){return t.preventDefault(),t.stopPropagation(),e.openSettings.apply(null,arguments)}}},[t("IconCog",{attrs:{slot:"icon",size:20},slot:"icon"})],1)],1)]},proxy:!0}])})}),[],!1,null,"c6191948",null).exports;var Ge=n(77905),Ye=n(96111),Ke=n(57578);const Qe={name:"ReloadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Xe=(0,G.A)(Qe,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon reload-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var Je=n(36600);const Ze={name:"FormatListBulletedSquareIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},et=(0,G.A)(Ze,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon format-list-bulleted-square-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M3,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var tt=n(18195),st=n(24764),nt=n(57505),it=n(70995),at=n(28326),rt=n(59892);const ot={name:"AccountPlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},lt=(0,G.A)(ot,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon account-plus-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,dt={name:"ViewGridIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ct=(0,G.A)(dt,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon view-grid-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M3,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;let mt;const ut=(0,r.KR)(0),gt=new ResizeObserver((e=>{e[0].contentBoxSize?ut.value=e[0].contentBoxSize[0].inlineSize:ut.value=e[0].contentRect.width}));function ft(){const e=document.querySelector("#app-content-vue")??document.body;e!==mt&&(mt&&gt.unobserve(mt),gt.observe(e),mt=e)}function pt(){return(0,r.sV)(ft),ft(),(0,r.tB)(ut)}function ht(){const e=function(){var e=(0,r.nI)().proxy.$root;if(!e._$route){var t=(0,r.uY)(!0).run((function(){return(0,r.Gc)(Object.assign({},e.$router.currentRoute))}));e._$route=t,e.$router.afterEach((function(e){Object.assign(t,e)}))}return e._$route}();return{directory:(0,r.EW)((()=>String(e.query.dir||"/").replace(/^(.+)\/$/,"$1"))),fileId:(0,r.EW)((()=>{const t=Number.parseInt(e.params.fileid??"0")||null;return Number.isNaN(t)?null:t})),openFile:(0,r.EW)((()=>"openfile"in e.query&&("string"!=typeof e.query.openfile||"false"!==e.query.openfile.toLocaleLowerCase()))),openDetails:(0,r.EW)((()=>"opendetails"in e.query&&("string"!=typeof e.query.opendetails||"false"!==e.query.opendetails.toLocaleLowerCase())))}}var vt=n(77815);const wt=(0,vt.KU)(),At=async e=>{const t=(0,vt.aN)(),s=await wt.stat(`${(0,vt.ei)()}${e}`,{details:!0,data:t});return(0,vt.pO)(s.data)},bt=function(){const e=Ct(...arguments),t=(0,a.nY)("paths",{state:()=>({paths:{}}),getters:{getPath:e=>(t,s)=>{if(e.paths[t])return e.paths[t][s]}},actions:{addPath(e){this.paths[e.service]||r.Ay.set(this.paths,e.service,{}),r.Ay.set(this.paths[e.service],e.path,e.source)},deletePath(e,t){this.paths[e]&&r.Ay.delete(this.paths[e],t)},onCreatedNode(e){const t=(0,m.bh)()?.active?.id||"files";e.fileid?(e.type===m.pt.Folder&&this.addPath({service:t,path:e.path,source:e.source}),this.addNodeToParentChildren(e)):h.error("Node has no fileid",{node:e})},onDeletedNode(e){const t=(0,m.bh)()?.active?.id||"files";e.type===m.pt.Folder&&this.deletePath(t,e.path),this.deleteNodeFromParentChildren(e)},onMovedNode(e){let{node:t,oldSource:s}=e;const n=(0,m.bh)()?.active?.id||"files";if(t.type===m.pt.Folder){const e=Object.entries(this.paths[n]).find((e=>{let[,t]=e;return t===s}));e?.[0]&&this.deletePath(n,e[0]),this.addPath({service:n,path:t.path,source:t.source})}const i=new m.ZH({source:s,owner:t.owner,mime:t.mime});this.deleteNodeFromParentChildren(i),this.addNodeToParentChildren(t)},deleteNodeFromParentChildren(t){const s=(0,m.bh)()?.active?.id||"files",n=(0,L.pD)(t.source),i="/"===t.dirname?e.getRoot(s):e.getNode(n);if(i){const e=new Set(i._children??[]);return e.delete(t.source),r.Ay.set(i,"_children",[...e.values()]),void h.debug("Children updated",{parent:i,node:t,children:i._children})}h.debug("Parent path does not exists, skipping children update",{node:t})},addNodeToParentChildren(t){const s=(0,m.bh)()?.active?.id||"files",n=(0,L.pD)(t.source),i="/"===t.dirname?e.getRoot(s):e.getNode(n);if(i){const e=new Set(i._children??[]);return e.add(t.source),r.Ay.set(i,"_children",[...e.values()]),void h.debug("Children updated",{parent:i,node:t,children:i._children})}h.debug("Parent path does not exists, skipping children update",{node:t})}}})(...arguments);return t._initialized||((0,v.B1)("files:node:created",t.onCreatedNode),(0,v.B1)("files:node:deleted",t.onDeletedNode),(0,v.B1)("files:node:moved",t.onMovedNode),t._initialized=!0),t},Ct=function(){const e=(0,a.nY)("files",{state:()=>({files:{},roots:{}}),getters:{getNode:e=>t=>e.files[t],getNodes:e=>t=>t.map((t=>e.files[t])).filter(Boolean),getNodesById:e=>t=>Object.values(e.files).filter((e=>e.fileid===t)),getRoot:e=>t=>e.roots[t]},actions:{getNodesByPath(e,t){const s=bt();let n;if(t&&"/"!==t){const i=s.getPath(e,t);i&&(n=this.getNode(i))}else n=this.getRoot(e);return(n?._children??[]).map((e=>this.getNode(e))).filter(Boolean)},updateNodes(e){const t=e.reduce(((e,t)=>t.fileid?(e[t.source]=t,e):(h.error("Trying to update/set a node without fileid",{node:t}),e)),{});r.Ay.set(this,"files",{...this.files,...t})},deleteNodes(e){e.forEach((e=>{e.source&&r.Ay.delete(this.files,e.source)}))},setRoot(e){let{service:t,root:s}=e;r.Ay.set(this.roots,t,s)},onDeletedNode(e){this.deleteNodes([e])},onCreatedNode(e){this.updateNodes([e])},onMovedNode(e){let{node:t,oldSource:s}=e;t.fileid?(r.Ay.delete(this.files,s),this.updateNodes([t])):h.error("Trying to update/set a node without fileid",{node:t})},async onUpdatedNode(e){if(!e.fileid)return void h.error("Trying to update/set a node without fileid",{node:e});const t=this.getNodesById(e.fileid);if(t.length>1)return await Promise.all(t.map((e=>At(e.path)))).then(this.updateNodes),void h.debug(t.length+" nodes updated in store",{fileid:e.fileid});e.source!==t[0].source?At(e.path).then((e=>this.updateNodes([e]))):this.updateNodes([e])},onAddFavorite(e){const t=this.getNode(e.source);t&&r.Ay.set(t.attributes,"favorite",1)},onRemoveFavorite(e){const t=this.getNode(e.source);t&&r.Ay.set(t.attributes,"favorite",0)}}})(...arguments);return e._initialized||((0,v.B1)("files:node:created",e.onCreatedNode),(0,v.B1)("files:node:deleted",e.onDeletedNode),(0,v.B1)("files:node:updated",e.onUpdatedNode),(0,v.B1)("files:node:moved",e.onMovedNode),(0,v.B1)("files:favorites:added",e.onAddFavorite),(0,v.B1)("files:favorites:removed",e.onRemoveFavorite),e._initialized=!0),e},yt=(0,a.nY)("selection",{state:()=>({selected:[],lastSelection:[],lastSelectedIndex:null}),actions:{set(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];r.Ay.set(this,"selected",[...new Set(e)])},setLastIndex(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;r.Ay.set(this,"lastSelection",e?this.selected:[]),r.Ay.set(this,"lastSelectedIndex",e)},reset(){r.Ay.set(this,"selected",[]),r.Ay.set(this,"lastSelection",[]),r.Ay.set(this,"lastSelectedIndex",null)}}});let xt;const kt=function(){return xt=(0,Ye.g)(),(0,a.nY)("uploader",{state:()=>({queue:xt.queue})})(...arguments)};var _t=n(29360),Tt=n(79309);class St extends File{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];super([],e,{type:"httpd/unix-directory"}),function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s}(this,"_contents",void 0),this._contents=t}set contents(e){this._contents=e}get contents(){return this._contents}get size(){return this._computeDirectorySize(this)}get lastModified(){return 0===this._contents.length?Date.now():this._computeDirectoryMtime(this)}_computeDirectoryMtime(e){return e.contents.reduce(((e,t)=>t.lastModified>e?t.lastModified:e),0)}_computeDirectorySize(e){return e.contents.reduce(((e,t)=>e+t.size),0)}}const Lt=async e=>{if(e.isFile)return new Promise(((t,s)=>{e.file(t,s)}));h.debug("Handling recursive file tree",{entry:e.name});const t=e,s=await Nt(t),n=(await Promise.all(s.map(Lt))).flat();return new St(t.name,n)},Nt=e=>{const t=e.createReader();return new Promise(((e,s)=>{const n=[],i=()=>{t.readEntries((t=>{t.length?(n.push(...t),i()):e(n)}),(e=>{s(e)}))};i()}))},Ft=async e=>{const t=(0,m.H4)();if(!await t.exists(e)){h.debug("Directory does not exist, creating it",{absolutePath:e}),await t.createDirectory(e,{recursive:!0});const s=await t.stat(e,{details:!0,data:(0,m.VL)()});(0,v.Ic)("files:node:created",(0,m.Al)(s.data))}},Et=async(e,t,s)=>{try{const n=e.filter((e=>s.find((t=>t.basename===(e instanceof File?e.name:e.basename))))).filter(Boolean),i=e.filter((e=>!n.includes(e))),{selected:a,renamed:r}=await(0,Ye.o)(t.path,n,s);return h.debug("Conflict resolution",{uploads:i,selected:a,renamed:r}),0===a.length&&0===r.length?((0,u.cf)((0,g.Tl)("files","Conflicts resolution skipped")),h.info("User skipped the conflict resolution"),[]):[...i,...a,...r]}catch(e){console.error(e),(0,u.Qg)((0,g.Tl)("files","Upload cancelled")),h.error("User cancelled the upload")}return[]};var Ut=n(36882),It=n(39285);const Pt=(0,c.C)("files_sharing","sharePermissions",m.aX.NONE);let zt;var Bt;!function(e){e.MOVE="Move",e.COPY="Copy",e.MOVE_OR_COPY="move-or-copy"}(Bt||(Bt={}));const Dt=e=>{const t=e.reduce(((e,t)=>Math.min(e,t.permissions)),m.aX.ALL);return Boolean(t&m.aX.DELETE)},Ot=e=>!!(e=>e.every((e=>!JSON.parse(e.attributes?.["share-attributes"]??"[]").some((e=>"permissions"===e.scope&&!1===e.value&&"download"===e.key)))))(e)&&!e.some((e=>e.permissions===m.aX.NONE))&&(!(0,F.f)()||Boolean(Pt&m.aX.CREATE));var Rt=n(36117);const jt=e=>(0,m.Al)(e),Mt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/";e=(0,l.join)(m.lJ,e);const t=new AbortController,s=(0,m.VL)();return new Rt.CancelablePromise((async(n,i,a)=>{a((()=>t.abort()));try{const i=await wt.getDirectoryContents(e,{details:!0,data:s,includeSelf:!0,signal:t.signal}),a=i.data[0],r=i.data.slice(1);if(a.filename!==e&&`${a.filename}/`!==e)throw h.debug(`Exepected "${e}" but got filename "${a.filename}" instead.`),new Error("Root node does not match requested path");n({folder:jt(a),contents:r.map((e=>{try{return jt(e)}catch(t){return h.error(`Invalid node detected '${e.basename}'`,{error:t}),null}})).filter(Boolean)})}catch(e){i(e)}}))},Vt=e=>Dt(e)?Ot(e)?Bt.MOVE_OR_COPY:Bt.MOVE:Bt.COPY,$t=async function(e,t,s){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!t)return;if(t.type!==m.pt.Folder)throw new Error((0,g.Tl)("files","Destination is not a folder"));if(s===Bt.MOVE&&e.dirname===t.path)throw new Error((0,g.Tl)("files","This file/folder is already in that directory"));if(`${t.path}/`.startsWith(`${e.path}/`))throw new Error((0,g.Tl)("files","You cannot move a file/folder onto itself or into a subfolder of itself"));r.Ay.set(e,"status",m.zI.LOADING);const i=function(e,t,s){const n=e===Bt.MOVE?(0,g.Tl)("files",'Moving "{source}" to "{destination}" …',{source:t,destination:s}):(0,g.Tl)("files",'Copying "{source}" to "{destination}" …',{source:t,destination:s});let i;return i=(0,u.cf)(`<span class="icon icon-loading-small toast-loading-icon"></span> ${n}`,{isHTML:!0,timeout:u.DH,onRemove:()=>{i?.hideToast(),i=void 0}}),()=>i&&i.hideToast()}(s,e.basename,t.path),a=(zt||(zt=new f.A({concurrency:5})),zt);return await a.add((async()=>{const a=e=>1===e?(0,g.Tl)("files","(copy)"):(0,g.Tl)("files","(copy %n)",void 0,e);try{const i=(0,m.H4)(),r=(0,l.join)(m.lJ,e.path),o=(0,l.join)(m.lJ,t.path);if(s===Bt.COPY){let s=e.basename;if(!n){const t=await i.getDirectoryContents(o);s=(0,m.E6)(e.basename,t.map((e=>e.basename)),{suffix:a,ignoreFileExtension:e.type===m.pt.Folder})}if(await i.copyFile(r,(0,l.join)(o,s)),e.dirname===t.path){const{data:e}=await i.stat((0,l.join)(o,s),{details:!0,data:(0,m.VL)()});(0,v.Ic)("files:node:created",(0,m.Al)(e))}}else{if(!n){const s=await Mt(t.path);if((0,Ye.h)([e],s.contents))try{const{selected:n,renamed:i}=await(0,Ye.o)(t.path,[e],s.contents);if(!n.length&&!i.length)return}catch(e){return void(0,u.Qg)((0,g.Tl)("files","Move cancelled"))}}try{await i.moveFile(r,(0,l.join)(o,e.basename))}catch(e){const t=new DOMParser,s=await(e.response?.text()),n=t.parseFromString(s??"","text/xml").querySelector("message")?.textContent;throw n&&(0,u.Qg)(n),e}(0,v.Ic)("files:node:deleted",e)}}catch(e){if((0,A.F0)(e)){if(412===e.response?.status)throw new Error((0,g.Tl)("files","A file or folder with that name already exists in this folder"));if(423===e.response?.status)throw new Error((0,g.Tl)("files","The files are locked"));if(404===e.response?.status)throw new Error((0,g.Tl)("files","The file does not exist anymore"));if(e.message)throw new Error(e.message)}throw h.debug(e),new Error}finally{r.Ay.set(e,"status",""),i()}}))};async function Wt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",s=arguments.length>2?arguments[2]:void 0;const{resolve:n,reject:i,promise:a}=Promise.withResolvers(),r=s.map((e=>e.fileid)).filter(Boolean);return(0,u.a1)((0,g.Tl)("files","Choose destination")).allowDirectories(!0).setFilter((e=>!r.includes(e.fileid))).setMimeTypeFilter([]).setMultiSelect(!1).startAt(t).setButtonFactory(((t,i)=>{const a=[],r=(0,l.basename)(i),o=s.map((e=>e.dirname)),d=s.map((e=>e.path));return e!==Bt.COPY&&e!==Bt.MOVE_OR_COPY||a.push({label:r?(0,g.Tl)("files","Copy to {target}",{target:r},void 0,{escape:!1,sanitize:!1}):(0,g.Tl)("files","Copy"),type:"primary",icon:Ut,disabled:t.some((e=>!(e.permissions&m.aX.CREATE))),async callback(e){n({destination:e[0],action:Bt.COPY})}}),o.includes(i)||d.includes(i)||t.some((e=>!(e.permissions&m.aX.CREATE)))||e!==Bt.MOVE&&e!==Bt.MOVE_OR_COPY||a.push({label:r?(0,g.Tl)("files","Move to {target}",{target:r},void 0,{escape:!1,sanitize:!1}):(0,g.Tl)("files","Move"),type:e===Bt.MOVE?"primary":"secondary",icon:It,async callback(e){n({destination:e[0],action:Bt.MOVE})}}),a})).build().pick().catch((e=>{h.debug(e),e instanceof u.vT?n(!1):i(new Error((0,g.Tl)("files","Move or copy operation failed")))})),a}new m.hY({id:"move-copy",displayName(e){switch(Vt(e)){case Bt.MOVE:return(0,g.Tl)("files","Move");case Bt.COPY:return(0,g.Tl)("files","Copy");case Bt.MOVE_OR_COPY:return(0,g.Tl)("files","Move or copy")}},iconSvgInline:()=>It,enabled:(e,t)=>"public-file-share"!==t.id&&!!e.every((e=>e.root?.startsWith("/files/")))&&e.length>0&&(Dt(e)||Ot(e)),async exec(e,t,s){const n=Vt([e]);let i;try{i=await Wt(n,s,[e])}catch(e){return h.error(e),!1}if(!1===i)return(0,u.cf)((0,g.Tl)("files",'Cancelled move or copy of "{filename}".',{filename:e.displayname})),null;try{return await $t(e,i.destination,i.action),!0}catch(e){return!!(e instanceof Error&&e.message)&&((0,u.Qg)(e.message),null)}},async execBatch(e,t,s){const n=Vt(e),i=await Wt(n,s,e);if(!1===i)return(0,u.cf)(1===e.length?(0,g.Tl)("files",'Cancelled move or copy of "{filename}".',{filename:e[0].displayname}):(0,g.Tl)("files","Cancelled move or copy operation")),e.map((()=>null));const a=e.map((async e=>{try{return await $t(e,i.destination,i.action),!0}catch(t){return h.error(`Failed to ${i.action} node`,{node:e,error:t}),!1}}));return await Promise.all(a)},order:15});const Ht=async e=>{const t=e.filter((e=>"file"===e.kind||(h.debug("Skipping dropped item",{kind:e.kind,type:e.type}),!1))).map((e=>e?.getAsEntry?.()??e?.webkitGetAsEntry?.()??e));let s=!1;const n=new St("root");for(const e of t)if(e instanceof DataTransferItem){h.warn("Could not get FilesystemEntry of item, falling back to file");const t=e.getAsFile();if(null===t){h.warn("Could not process DataTransferItem",{type:e.type,kind:e.kind}),(0,u.Qg)((0,g.Tl)("files","One of the dropped files could not be processed"));continue}if("httpd/unix-directory"===t.type||!t.type){s||(h.warn("Browser does not support Filesystem API. Directories will not be uploaded"),(0,u.I9)((0,g.Tl)("files","Your browser does not support the Filesystem API. Directories will not be uploaded")),s=!0);continue}n.contents.push(t)}else try{n.contents.push(await Lt(e))}catch(e){h.error("Error while traversing file tree",{error:e})}return n},qt=async(e,t,s)=>{const n=(0,Ye.g)();if(await(0,Ye.h)(e.contents,s)&&(e.contents=await Et(e.contents,t,s)),0===e.contents.length)return h.info("No files to upload",{root:e}),(0,u.cf)((0,g.Tl)("files","No files to upload")),[];h.debug(`Uploading files to ${t.path}`,{root:e,contents:e.contents});const i=[],a=async(e,s)=>{for(const r of e.contents){const e=(0,l.join)(s,r.name);if(r instanceof St){const s=(0,L.HS)(m.lJ,t.path,e);try{console.debug("Processing directory",{relativePath:e}),await Ft(s),await a(r,e)}catch(e){(0,u.Qg)((0,g.Tl)("files","Unable to create the directory {directory}",{directory:r.name})),h.error("",{error:e,absolutePath:s,directory:r})}}else h.debug("Uploading file to "+(0,l.join)(t.path,e),{file:r}),i.push(n.upload(e,r,t.source))}};n.pause(),await a(e,"/"),n.start();const r=(await Promise.allSettled(i)).filter((e=>"rejected"===e.status));return r.length>0?(h.error("Error while uploading files",{errors:r}),(0,u.Qg)((0,g.Tl)("files","Some files could not be uploaded")),[]):(h.debug("Files uploaded successfully"),(0,u.Te)((0,g.Tl)("files","Files uploaded successfully")),Promise.all(i))},Gt=async function(e,t,s){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const i=[];if(await(0,Ye.h)(e,s)&&(e=await Et(e,t,s)),0===e.length)return h.info("No files to process",{nodes:e}),void(0,u.cf)((0,g.Tl)("files","No files to process"));for(const s of e)r.Ay.set(s,"status",m.zI.LOADING),i.push($t(s,t,n?Bt.COPY:Bt.MOVE,!0));const a=await Promise.allSettled(i);e.forEach((e=>r.Ay.set(e,"status",void 0)));const o=a.filter((e=>"rejected"===e.status));if(o.length>0)return h.error("Error while copying or moving files",{errors:o}),void(0,u.Qg)(n?(0,g.Tl)("files","Some files could not be copied"):(0,g.Tl)("files","Some files could not be moved"));h.debug("Files copy/move successful"),(0,u.Te)(n?(0,g.Tl)("files","Files copied successfully"):(0,g.Tl)("files","Files moved successfully"))},Yt=(0,a.nY)("dragging",{state:()=>({dragging:[]}),actions:{set(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];r.Ay.set(this,"dragging",e)},reset(){r.Ay.set(this,"dragging",[])}}}),Kt=(0,r.pM)({name:"BreadCrumbs",components:{NcBreadcrumbs:Tt.N,NcBreadcrumb:_t.N,NcIconSvgWrapper:Ue.A},props:{path:{type:String,default:"/"}},setup(){const e=Yt(),t=Ct(),s=bt(),n=yt(),i=kt(),a=pt(),{currentView:r,views:o}=Ie();return{draggingStore:e,filesStore:t,pathsStore:s,selectionStore:n,uploaderStore:i,currentView:r,fileListWidth:a,views:o}},computed:{dirs(){var e;return["/",...this.path.split("/").filter(Boolean).map((e="/",t=>e+=`${t}/`)).map((e=>e.replace(/^(.+)\/$/,"$1")))]},sections(){return this.dirs.map(((e,t)=>{const s=this.getFileSourceFromPath(e),n=s?this.getNodeFromSource(s):void 0;return{dir:e,exact:!0,name:this.getDirDisplayName(e),to:this.getTo(e,n),disableDrop:t===this.dirs.length-1}}))},isUploadInProgress(){return 0!==this.uploaderStore.queue.length},wrapUploadProgressBar(){return this.isUploadInProgress&&this.fileListWidth<512},viewIcon(){return this.currentView?.icon??'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-home" viewBox="0 0 24 24"><path d="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z" /></svg>'},selectedFiles(){return this.selectionStore.selected},draggingFiles(){return this.draggingStore.dragging}},methods:{getNodeFromSource(e){return this.filesStore.getNode(e)},getFileSourceFromPath(e){return(this.currentView&&this.pathsStore.getPath(this.currentView.id,e))??null},getDirDisplayName(e){if("/"===e)return this.currentView?.name||(0,g.Tl)("files","Home");const t=this.getFileSourceFromPath(e),s=t?this.getNodeFromSource(t):void 0;return s?.displayname||(0,l.basename)(e)},getTo(e,t){if("/"===e)return{...this.$route,params:{view:this.currentView?.id},query:{}};if(void 0===t){const t=this.views.find((t=>t.params?.dir===e));return{...this.$route,params:{fileid:t?.params?.fileid??""},query:{dir:e}}}return{...this.$route,params:{fileid:String(t.fileid)},query:{dir:t.path}}},onClick(e){e?.query?.dir===this.$route.query.dir&&this.$emit("reload")},onDragOver(e,t){e.dataTransfer&&(t!==this.dirs[this.dirs.length-1]?e.ctrlKey?e.dataTransfer.dropEffect="copy":e.dataTransfer.dropEffect="move":e.dataTransfer.dropEffect="none")},async onDrop(e,t){if(!this.draggingFiles&&!e.dataTransfer?.items?.length)return;e.preventDefault();const s=this.draggingFiles,n=[...e.dataTransfer?.items||[]],i=await Ht(n),a=await(this.currentView?.getContents(t)),r=a?.folder;if(!r)return void(0,u.Qg)(this.t("files","Target folder does not exist any more"));const o=!!(r.permissions&m.aX.CREATE),l=e.ctrlKey;if(!o||0!==e.button)return;if(h.debug("Dropped",{event:e,folder:r,selection:s,fileTree:i}),i.contents.length>0)return void await qt(i,r,a.contents);const d=s.map((e=>this.filesStore.getNode(e)));await Gt(d,r,a.contents,l),s.some((e=>this.selectedFiles.includes(e)))&&(h.debug("Dropped selection, resetting select store..."),this.selectionStore.reset())},titleForSection(e,t){return t?.to?.query?.dir===this.$route.query.dir?(0,g.Tl)("files","Reload current directory"):0===e?(0,g.Tl)("files",'Go to the "{dir}" directory',t):null},ariaForSection(e){return e?.to?.query?.dir===this.$route.query.dir?(0,g.Tl)("files","Reload current directory"):null},t:g.Tl}});var Qt=n(19305),Xt={};Xt.styleTagTransform=he(),Xt.setAttributes=ue(),Xt.insert=ce().bind(null,"head"),Xt.domAPI=le(),Xt.insertStyleElement=fe(),re()(Qt.A,Xt),Qt.A&&Qt.A.locals&&Qt.A.locals;const Jt=(0,G.A)(Kt,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcBreadcrumbs",{staticClass:"files-list__breadcrumbs",class:{"files-list__breadcrumbs--with-progress":e.wrapUploadProgressBar},attrs:{"data-cy-files-content-breadcrumbs":"","aria-label":e.t("files","Current directory path")},scopedSlots:e._u([{key:"actions",fn:function(){return[e._t("actions")]},proxy:!0}],null,!0)},e._l(e.sections,(function(s,n){return t("NcBreadcrumb",e._b({key:s.dir,attrs:{dir:"auto",to:s.to,"force-icon-text":0===n&&e.fileListWidth>=486,title:e.titleForSection(n,s),"aria-description":e.ariaForSection(s)},on:{drop:function(t){return e.onDrop(t,s.dir)}},nativeOn:{click:function(t){return e.onClick(s.to)},dragover:function(t){return e.onDragOver(t,s.dir)}},scopedSlots:e._u([0===n?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{size:20,svg:e.viewIcon}})]},proxy:!0}:null],null,!0)},"NcBreadcrumb",s,!1))})),1)}),[],!1,null,"04abfffa",null).exports,Zt=e=>{const t=e.filter((e=>e.type===m.pt.File)).length,s=e.filter((e=>e.type===m.pt.Folder)).length;return 0===t?(0,g.zw)("files","{folderCount} folder","{folderCount} folders",s,{folderCount:s}):0===s?(0,g.zw)("files","{fileCount} file","{fileCount} files",t,{fileCount:t}):1===t?(0,g.zw)("files","1 file and {folderCount} folder","1 file and {folderCount} folders",s,{folderCount:s}):1===s?(0,g.zw)("files","{fileCount} file and 1 folder","{fileCount} files and 1 folder",t,{fileCount:t}):(0,g.Tl)("files","{fileCount} files and {folderCount} folders",{fileCount:t,folderCount:s})};var es=n(19231),ts=n(4604);const ss=(0,a.nY)("actionsmenu",{state:()=>({opened:null})});var ns=n(65659);let is=!1;const as=function(){const e=(0,a.nY)("renaming",{state:()=>({renamingNode:void 0,newName:""}),actions:{async rename(){if(void 0===this.renamingNode)throw new Error("No node is currently being renamed");const e=this.newName.trim?.()||"",t=this.renamingNode.basename,s=this.renamingNode.encodedSource,n=(0,l.extname)(t),i=(0,l.extname)(e);if(n!==i&&this.renamingNode.type===m.pt.File){const e=await((e,t)=>{if(is)return Promise.resolve(!1);let s;return is=!0,s=!e&&t?(0,g.t)("files",'Adding the file extension "{new}" may render the file unreadable.',{new:t}):t?(0,g.t)("files",'Changing the file extension from "{old}" to "{new}" may render the file unreadable.',{old:e,new:t}):(0,g.t)("files",'Removing the file extension "{old}" may render the file unreadable.',{old:e}),new Promise((n=>{const i=(new u.ik).setName((0,g.t)("files","Change file extension")).setText(s).setButtons([{label:(0,g.t)("files","Keep {oldextension}",{oldextension:e}),icon:'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-cancel" viewBox="0 0 24 24"><path d="M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z" /></svg>',type:"secondary",callback:()=>{is=!1,n(!1)}},{label:t.length?(0,g.t)("files","Use {newextension}",{newextension:t}):(0,g.t)("files","Remove extension"),icon:ns,type:"primary",callback:()=>{is=!1,n(!0)}}]).build();i.show().then((()=>{i.hide()}))}))})(n,i);if(!e)return!1}if(t===e)return!1;const a=this.renamingNode;r.Ay.set(a,"status",m.zI.LOADING);try{return this.renamingNode.rename(e),h.debug("Moving file to",{destination:this.renamingNode.encodedSource,oldEncodedSource:s}),await(0,A.Ay)({method:"MOVE",url:s,headers:{Destination:this.renamingNode.encodedSource,Overwrite:"F"}}),(0,v.Ic)("files:node:updated",this.renamingNode),(0,v.Ic)("files:node:renamed",this.renamingNode),(0,v.Ic)("files:node:moved",{node:this.renamingNode,oldSource:`${(0,l.dirname)(this.renamingNode.source)}/${t}`}),this.$reset(),!0}catch(s){if(h.error("Error while renaming file",{error:s}),this.renamingNode.rename(t),(0,A.F0)(s)){if(404===s?.response?.status)throw new Error((0,g.t)("files",'Could not rename "{oldName}", it does not exist any more',{oldName:t}));if(412===s?.response?.status)throw new Error((0,g.t)("files",'The name "{newName}" is already used in the folder "{dir}". Please choose a different name.',{newName:e,dir:(0,l.basename)(this.renamingNode.dirname)}))}throw new Error((0,g.t)("files",'Could not rename "{oldName}"',{oldName:t}))}finally{r.Ay.set(a,"status",void 0)}}}})(...arguments);return e._initialized||((0,v.B1)("files:node:rename",(function(t){e.renamingNode=t,e.newName=t.basename})),e._initialized=!0),e},rs={name:"CustomElementRender",props:{source:{type:Object,required:!0},currentView:{type:Object,required:!0},render:{type:Function,required:!0}},watch:{source(){this.updateRootElement()},currentView(){this.updateRootElement()}},mounted(){this.updateRootElement()},methods:{async updateRootElement(){const e=await this.render(this.source,this.currentView);e?this.$el.replaceChildren(e):this.$el.replaceChildren()}}},os=(0,G.A)(rs,(function(){return(0,this._self._c)("span")}),[],!1,null,null,null).exports,ls={name:"ArrowLeftIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ds=(0,G.A)(ls,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon arrow-left-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var cs=n(15502);const ms=(0,r.pM)({data:()=>({openedSubmenu:null}),computed:{enabledSubmenuActions(){return this.enabledFileActions.reduce(((e,t)=>(void 0!==t.parent&&(e[t.parent]||(e[t.parent]=[]),e[t.parent].push(t)),e)),{})}},methods:{isValidMenu(e){return this.enabledSubmenuActions[e.id]?.length>0},async onBackToMenuClick(e){e&&(this.openedSubmenu=null,await this.$nextTick(),this.$nextTick((()=>{const t=this.$refs[`action-batch-${e.id}`]?.[0]||this.$refs[`action-${e.id}`]?.[0];t&&t.$el.querySelector("button")?.focus()})))}}}),us=(0,r.pM)({name:"FileEntryActions",components:{ArrowLeftIcon:ds,CustomElementRender:os,NcActionButton:nt.A,NcActions:st.A,NcActionSeparator:cs.A,NcIconSvgWrapper:Ue.A,NcLoadingIcon:rt.A},mixins:[ms],props:{opened:{type:Boolean,default:!1},source:{type:Object,required:!0},gridMode:{type:Boolean,default:!1}},setup(){const{currentView:e}=Ie(),{directory:t}=ht(),s=M(),n=pt();return{activeStore:s,currentDir:t,currentView:e,enabledFileActions:(0,r.WQ)("enabledFileActions",[]),filesListWidth:n,t:g.Tl}},computed:{isActive(){return this.activeStore?.activeNode?.source===this.source.source},isLoading(){return this.source.status===m.zI.LOADING},enabledInlineActions(){return this.filesListWidth<768||this.gridMode?[]:this.enabledFileActions.filter((e=>{try{return e?.inline?.(this.source,this.currentView)}catch(t){return h.error("Error while checking if action is inline",{action:e,error:t}),!1}}))},enabledRenderActions(){return this.gridMode?[]:this.enabledFileActions.filter((e=>"function"==typeof e.renderInline))},enabledMenuActions(){if(this.openedSubmenu)return this.enabledInlineActions;const e=[...this.enabledInlineActions,...this.enabledFileActions.filter((e=>e.default!==m.m9.HIDDEN&&"function"!=typeof e.renderInline))].filter(((e,t,s)=>t===s.findIndex((t=>t.id===e.id)))),t=e.filter((e=>!e.parent)).map((e=>e.id));return e.filter((e=>!(e.parent&&t.includes(e.parent))))},openedMenu:{get(){return this.opened},set(e){this.$emit("update:opened",e)}},getBoundariesElement:()=>document.querySelector(".app-content > .files-list"),mountType(){return this.source.attributes["mount-type"]}},watch:{openedMenu(){this.openedSubmenu=null}},created(){(0,d.C)("Escape",this.onKeyDown,{stop:!0,prevent:!0}),(0,d.C)("a",this.onKeyDown,{stop:!0,prevent:!0})},methods:{actionDisplayName(e){try{if((this.gridMode||this.filesListWidth<768&&e.inline)&&"function"==typeof e.title){const t=e.title([this.source],this.currentView);if(t)return t}return e.displayName([this.source],this.currentView)}catch(t){return h.error("Error while getting action display name",{action:e,error:t}),e.id}},isLoadingAction(e){return!!this.isActive&&this.activeStore?.activeAction?.id===e.id},async onActionClick(e){this.enabledSubmenuActions[e.id]?this.openedSubmenu=e:(this.activeStore.setActiveNode(this.source),await V(e))},onKeyDown(e){this.isActive&&("Escape"===e.key&&this.openedMenu&&(this.openedMenu=!1),"a"!==e.key||this.openedMenu||(this.openedMenu=!0))}}}),gs=us;var fs=n(29788),ps={};ps.styleTagTransform=he(),ps.setAttributes=ue(),ps.insert=ce().bind(null,"head"),ps.domAPI=le(),ps.insertStyleElement=fe(),re()(fs.A,ps),fs.A&&fs.A.locals&&fs.A.locals;var hs=n(40304),vs={};vs.styleTagTransform=he(),vs.setAttributes=ue(),vs.insert=ce().bind(null,"head"),vs.domAPI=le(),vs.insertStyleElement=fe(),re()(hs.A,vs),hs.A&&hs.A.locals&&hs.A.locals;var ws=(0,G.A)(gs,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("td",{staticClass:"files-list__row-actions",attrs:{"data-cy-files-list-row-actions":""}},[e._l(e.enabledRenderActions,(function(s){return t("CustomElementRender",{key:s.id,staticClass:"files-list__row-action--inline",class:"files-list__row-action-"+s.id,attrs:{"current-view":e.currentView,render:s.renderInline,source:e.source}})})),e._v(" "),t("NcActions",{ref:"actionsMenu",attrs:{"boundaries-element":e.getBoundariesElement,container:e.getBoundariesElement,"force-name":!0,type:"tertiary","force-menu":0===e.enabledInlineActions.length,inline:e.enabledInlineActions.length,open:e.openedMenu},on:{"update:open":function(t){e.openedMenu=t},close:function(t){e.openedSubmenu=null}}},[e._l(e.enabledMenuActions,(function(s){return t("NcActionButton",{key:s.id,ref:`action-${s.id}`,refInFor:!0,class:{[`files-list__row-action-${s.id}`]:!0,"files-list__row-action--menu":e.isValidMenu(s)},attrs:{"close-after-click":!e.isValidMenu(s),"data-cy-files-list-row-action":s.id,"is-menu":e.isValidMenu(s),"aria-label":s.title?.([e.source],e.currentView),title:s.title?.([e.source],e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.isLoadingAction(s)?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline([e.source],e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t"+e._s("shared"===e.mountType&&"sharing-status"===s.id?"":e.actionDisplayName(s))+"\n\t\t")])})),e._v(" "),e.openedSubmenu&&e.enabledSubmenuActions[e.openedSubmenu?.id]?[t("NcActionButton",{staticClass:"files-list__row-action-back",attrs:{"data-cy-files-list-row-action":"menu-back"},on:{click:function(t){return e.onBackToMenuClick(e.openedSubmenu)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowLeftIcon")]},proxy:!0}],null,!1,3001860362)},[e._v("\n\t\t\t\t"+e._s(e.t("files","Back"))+"\n\t\t\t")]),e._v(" "),t("NcActionSeparator"),e._v(" "),e._l(e.enabledSubmenuActions[e.openedSubmenu?.id],(function(s){return t("NcActionButton",{key:s.id,staticClass:"files-list__row-action--submenu",class:`files-list__row-action-${s.id}`,attrs:{"close-after-click":"","data-cy-files-list-row-action":s.id,title:s.title?.([e.source],e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.isLoadingAction(s)?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline([e.source],e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(e.actionDisplayName(s))+"\n\t\t\t")])}))]:e._e()],2)],2)}),[],!1,null,"5ba570cc",null);const As=ws.exports,bs=(0,r.pM)({name:"FileEntryCheckbox",components:{NcCheckboxRadioSwitch:xe.A,NcLoadingIcon:rt.A},props:{fileid:{type:Number,required:!0},isLoading:{type:Boolean,default:!1},nodes:{type:Array,required:!0},source:{type:Object,required:!0}},setup(){const e=yt(),t=function(){const e=(0,a.nY)("keyboard",{state:()=>({altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1}),actions:{onEvent(e){e||(e=window.event),r.Ay.set(this,"altKey",!!e.altKey),r.Ay.set(this,"ctrlKey",!!e.ctrlKey),r.Ay.set(this,"metaKey",!!e.metaKey),r.Ay.set(this,"shiftKey",!!e.shiftKey)}}})(...arguments);return e._initialized||(window.addEventListener("keydown",e.onEvent),window.addEventListener("keyup",e.onEvent),window.addEventListener("mousemove",e.onEvent),e._initialized=!0),e}();return{activeStore:M(),keyboardStore:t,selectionStore:e,t:g.Tl}},computed:{isActive(){return this.activeStore.activeNode?.source===this.source.source},selectedFiles(){return this.selectionStore.selected},isSelected(){return this.selectedFiles.includes(this.source.source)},index(){return this.nodes.findIndex((e=>e.source===this.source.source))},isFile(){return this.source.type===m.pt.File},ariaLabel(){return this.isFile?(0,g.Tl)("files",'Toggle selection for file "{displayName}"',{displayName:this.source.basename}):(0,g.Tl)("files",'Toggle selection for folder "{displayName}"',{displayName:this.source.basename})},loadingLabel(){return this.isFile?(0,g.Tl)("files","File is loading"):(0,g.Tl)("files","Folder is loading")}},created(){(0,d.C)(" ",this.onToggleSelect,{stop:!0,prevent:!0,ctrl:!0}),(0,d.C)(" ",this.onToggleSelect,{stop:!0,prevent:!0,ctrl:!0,shift:!0})},methods:{onSelectionChange(e){const t=this.index,s=this.selectionStore.lastSelectedIndex;if(this.keyboardStore?.shiftKey&&null!==s){const e=this.selectedFiles.includes(this.source.source),n=Math.min(t,s),i=Math.max(s,t),a=this.selectionStore.lastSelection,r=this.nodes.map((e=>e.source)).slice(n,i+1).filter(Boolean),o=[...a,...r].filter((t=>!e||t!==this.source.source));return h.debug("Shift key pressed, selecting all files in between",{start:n,end:i,filesToSelect:r,isAlreadySelected:e}),void this.selectionStore.set(o)}const n=e?[...this.selectedFiles,this.source.source]:this.selectedFiles.filter((e=>e!==this.source.source));h.debug("Updating selection",{selection:n}),this.selectionStore.set(n),this.selectionStore.setLastIndex(t)},resetSelection(){this.selectionStore.reset()},onToggleSelect(){this.isActive&&(h.debug("Toggling selection for file",{source:this.source}),this.onSelectionChange(!this.isSelected))}}}),Cs=(0,G.A)(bs,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("td",{staticClass:"files-list__row-checkbox",on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.resetSelection.apply(null,arguments)}}},[e.isLoading?t("NcLoadingIcon",{attrs:{name:e.loadingLabel}}):t("NcCheckboxRadioSwitch",{attrs:{"aria-label":e.ariaLabel,checked:e.isSelected,"data-cy-files-list-row-checkbox":""},on:{"update:checked":e.onSelectionChange}})],1)}),[],!1,null,null,null).exports;var ys=n(55042);const xs={name:"FileMultipleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ks=(0,G.A)(xs,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon file-multiple-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports;var _s=n(25866);const Ts=r.Ay.extend({name:"DragAndDropPreview",components:{FileMultipleIcon:ks,FolderIcon:_s.A},data:()=>({nodes:[]}),computed:{isSingleNode(){return 1===this.nodes.length},isSingleFolder(){return this.isSingleNode&&this.nodes[0].type===m.pt.Folder},name(){return this.size?`${this.summary} – ${this.size}`:this.summary},size(){const e=this.nodes.reduce(((e,t)=>e+t.size||0),0),t=parseInt(e,10)||0;return"number"!=typeof t||t<0?null:(0,m.v7)(t,!0)},summary(){if(this.isSingleNode){const e=this.nodes[0];return e.attributes?.displayname||e.basename}return Zt(this.nodes)}},methods:{update(e){this.nodes=e,this.$refs.previewImg.replaceChildren(),e.slice(0,3).forEach((e=>{const t=document.querySelector(`[data-cy-files-list-row-fileid="${e.fileid}"] .files-list__row-icon img`);t&&this.$refs.previewImg.appendChild(t.parentNode.cloneNode(!0))})),this.$nextTick((()=>{this.$emit("loaded",this.$el)}))}}}),Ss=Ts;var Ls=n(20768),Ns={};Ns.styleTagTransform=he(),Ns.setAttributes=ue(),Ns.insert=ce().bind(null,"head"),Ns.domAPI=le(),Ns.insertStyleElement=fe(),re()(Ls.A,Ns),Ls.A&&Ls.A.locals&&Ls.A.locals;const Fs=(0,G.A)(Ss,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"files-list-drag-image"},[t("span",{staticClass:"files-list-drag-image__icon"},[t("span",{ref:"previewImg"}),e._v(" "),e.isSingleFolder?t("FolderIcon"):t("FileMultipleIcon")],1),e._v(" "),t("span",{staticClass:"files-list-drag-image__name"},[e._v(e._s(e.name))])])}),[],!1,null,null,null).exports,Es=r.Ay.extend(Fs);let Us;r.Ay.directive("onClickOutside",ys.z0);const Is=(0,m.qK)(),Ps=(0,r.pM)({props:{source:{type:[m.vd,m.ZH,m.bP],required:!0},nodes:{type:Array,required:!0},filesListWidth:{type:Number,default:0},isMtimeAvailable:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},provide(){return{defaultFileAction:(0,r.EW)((()=>this.defaultFileAction)),enabledFileActions:(0,r.EW)((()=>this.enabledFileActions))}},data:()=>({dragover:!1,gridMode:!1}),computed:{fileid(){return this.source.fileid??0},uniqueId(){return function(e){let t=0;for(let s=0;s<e.length;s++)t=(t<<5)-t+e.charCodeAt(s)|0;return t>>>0}(this.source.source)},isLoading(){return this.source.status===m.zI.LOADING},displayName(){return this.source.displayname||this.source.basename},basename(){return""===this.extension?this.displayName:this.displayName.slice(0,0-this.extension.length)},extension(){return this.source.type===m.pt.Folder?"":(0,l.extname)(this.displayName)},draggingFiles(){return this.draggingStore.dragging},selectedFiles(){return this.selectionStore.selected},isSelected(){return this.selectedFiles.includes(this.source.source)},isRenaming(){return this.renamingStore.renamingNode===this.source},isRenamingSmallScreen(){return this.isRenaming&&this.filesListWidth<512},isActive(){return String(this.fileid)===String(this.currentFileId)},isFailedSource(){return this.source.status===m.zI.FAILED},canDrag(){if(this.isRenaming)return!1;const e=e=>!!(e?.permissions&m.aX.UPDATE);return this.selectedFiles.length>0?this.selectedFiles.map((e=>this.filesStore.getNode(e))).every(e):e(this.source)},canDrop(){return this.source.type===m.pt.Folder&&!this.draggingFiles.includes(this.source.source)&&!!(this.source.permissions&m.aX.CREATE)},openedMenu:{get(){return this.actionsMenuStore.opened===this.uniqueId.toString()},set(e){this.actionsMenuStore.opened=e?this.uniqueId.toString():null}},mtimeOpacity(){const e=26784e5,t=this.source.mtime?.getTime?.();if(!t)return{};const s=Math.round(Math.min(100,100*(e-(Date.now()-t))/e));return s<0?{}:{color:`color-mix(in srgb, var(--color-main-text) ${s}%, var(--color-text-maxcontrast))`}},enabledFileActions(){return this.source.status===m.zI.FAILED?[]:Is.filter((e=>{if(!e.enabled)return!0;try{return e.enabled([this.source],this.currentView)}catch(t){return h.error("Error while checking action",{action:e,error:t}),!1}})).sort(((e,t)=>(e.order||0)-(t.order||0)))},defaultFileAction(){return this.enabledFileActions.find((e=>void 0!==e.default))}},watch:{source(e,t){e.source!==t.source&&this.resetState()},openedMenu(){!1===this.openedMenu&&window.setTimeout((()=>{if(this.openedMenu)return;const e=document.getElementById("app-content-vue");null!==e&&(e.style.removeProperty("--mouse-pos-x"),e.style.removeProperty("--mouse-pos-y"))}),300)}},beforeDestroy(){this.resetState()},methods:{resetState(){this.$refs?.preview?.reset?.(),this.openedMenu=!1},onRightClick(e){if(this.openedMenu)return;if(this.gridMode){const e=this.$el?.closest("main.app-content");e.style.removeProperty("--mouse-pos-x"),e.style.removeProperty("--mouse-pos-y")}else{const t=this.$el?.closest("main.app-content"),s=t.getBoundingClientRect();t.style.setProperty("--mouse-pos-x",Math.max(0,e.clientX-s.left-200)+"px"),t.style.setProperty("--mouse-pos-y",Math.max(0,e.clientY-s.top)+"px")}const t=this.selectedFiles.length>1;this.actionsMenuStore.opened=this.isSelected&&t?"global":this.uniqueId.toString(),e.preventDefault(),e.stopPropagation()},execDefaultAction(e){if(this.isRenaming)return;if(Boolean(2&e.button)||e.button>4)return;const t=e.ctrlKey||e.metaKey||Boolean(4&e.button);if(t||!this.defaultFileAction){if((0,F.f)()&&!function(e){if(!(e.permissions&m.aX.READ))return!1;if(e.attributes["share-attributes"]){const t=JSON.parse(e.attributes["share-attributes"]||"[]").find((e=>{let{scope:t,key:s}=e;return"permissions"===t&&"download"===s}));if(void 0!==t)return!0===t.value}return!0}(this.source))return;const s=(0,F.f)()?this.source.encodedSource:(0,N.Jv)("/f/{fileId}",{fileId:this.fileid});return e.preventDefault(),e.stopPropagation(),void window.open(s,t?"_self":void 0)}e.preventDefault(),e.stopPropagation(),this.defaultFileAction.exec(this.source,this.currentView,this.currentDir)},openDetailsIfAvailable(e){e.preventDefault(),e.stopPropagation(),j?.enabled?.([this.source],this.currentView)&&j.exec(this.source,this.currentView,this.currentDir)},onDragOver(e){this.dragover=this.canDrop,this.canDrop?e.ctrlKey?e.dataTransfer.dropEffect="copy":e.dataTransfer.dropEffect="move":e.dataTransfer.dropEffect="none"},onDragLeave(e){const t=e.currentTarget;t?.contains(e.relatedTarget)||(this.dragover=!1)},async onDragStart(e){if(e.stopPropagation(),!this.canDrag||!this.fileid)return e.preventDefault(),void e.stopPropagation();h.debug("Drag started",{event:e}),e.dataTransfer?.clearData?.(),this.renamingStore.$reset(),this.selectedFiles.includes(this.source.source)?this.draggingStore.set(this.selectedFiles):this.draggingStore.set([this.source.source]);const t=this.draggingStore.dragging.map((e=>this.filesStore.getNode(e))),s=await(async e=>new Promise((t=>{Us||(Us=(new Es).$mount(),document.body.appendChild(Us.$el)),Us.update(e),Us.$on("loaded",(()=>{t(Us.$el),Us.$off("loaded")}))})))(t);e.dataTransfer?.setDragImage(s,-10,-10)},onDragEnd(){this.draggingStore.reset(),this.dragover=!1,h.debug("Drag ended")},async onDrop(e){if(!this.draggingFiles&&!e.dataTransfer?.items?.length)return;e.preventDefault(),e.stopPropagation();const t=this.draggingFiles,s=[...e.dataTransfer?.items||[]],n=await Ht(s),i=await(this.currentView?.getContents(this.source.path)),a=i?.folder;if(!a)return void(0,u.Qg)(this.t("files","Target folder does not exist any more"));if(!this.canDrop||e.button)return;const r=e.ctrlKey;if(this.dragover=!1,h.debug("Dropped",{event:e,folder:a,selection:t,fileTree:n}),n.contents.length>0)return void await qt(n,a,i.contents);const o=t.map((e=>this.filesStore.getNode(e)));await Gt(o,a,i.contents,r),t.some((e=>this.selectedFiles.includes(e)))&&(h.debug("Dropped selection, resetting select store..."),this.selectionStore.reset())},t:g.t}});var zs=n(82182);function Bs(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(""===e.trim())return(0,g.t)("files","Filename must not be empty.");try{return(0,m.KT)(e),""}catch(e){if(!(e instanceof m.di))throw e;switch(e.reason){case m.nF.Character:return(0,g.t)("files",'"{char}" is not allowed inside a filename.',{char:e.segment},void 0,{escape:t});case m.nF.ReservedName:return(0,g.t)("files",'"{segment}" is a reserved name and not allowed for filenames.',{segment:e.segment},void 0,{escape:!1});case m.nF.Extension:return e.segment.match(/\.[a-z]/i)?(0,g.t)("files",'"{extension}" is not an allowed filetype.',{extension:e.segment},void 0,{escape:!1}):(0,g.t)("files",'Filenames must not end with "{extension}".',{extension:e.segment},void 0,{escape:!1});default:return(0,g.t)("files","Invalid filename.")}}}const Ds=(0,r.pM)({name:"FileEntryName",components:{NcTextField:zs.A},props:{basename:{type:String,required:!0},extension:{type:String,required:!0},nodes:{type:Array,required:!0},source:{type:Object,required:!0},gridMode:{type:Boolean,default:!1}},setup(){const{currentView:e}=Ie(),{directory:t}=ht(),s=pt(),n=as();return{currentView:e,defaultFileAction:(0,r.WQ)("defaultFileAction"),directory:t,filesListWidth:s,renamingStore:n}},computed:{isRenaming(){return this.renamingStore.renamingNode===this.source},isRenamingSmallScreen(){return this.isRenaming&&this.filesListWidth<512},newName:{get(){return this.renamingStore.newName},set(e){this.renamingStore.newName=e}},renameLabel(){return{[m.pt.File]:(0,g.Tl)("files","Filename"),[m.pt.Folder]:(0,g.Tl)("files","Folder name")}[this.source.type]},linkTo(){if(this.source.status===m.zI.FAILED)return{is:"span",params:{title:(0,g.Tl)("files","This node is unavailable")}};if(this.defaultFileAction){const e=this.defaultFileAction.displayName([this.source],this.currentView);return{is:"button",params:{"aria-label":e,title:e,tabindex:"0"}}}return{is:"span"}}},watch:{isRenaming:{immediate:!0,handler(e){e&&this.startRenaming()}},newName(){const e=this.newName.trim?.()||"",t=this.$refs.renameInput?.$el.querySelector("input");if(!t)return;let s=Bs(e);""===s&&this.checkIfNodeExists(e)&&(s=(0,g.Tl)("files","Another entry with the same name already exists.")),this.$nextTick((()=>{this.isRenaming&&(t.setCustomValidity(s),t.reportValidity())}))}},methods:{checkIfNodeExists(e){return this.nodes.find((t=>t.basename===e&&t!==this.source))},startRenaming(){this.$nextTick((()=>{const e=this.$refs.renameInput?.$el.querySelector("input");if(!e)return void h.error("Could not find the rename input");e.focus();const t=this.source.basename.length-(this.source.extension??"").length;e.setSelectionRange(0,t),e.dispatchEvent(new Event("keyup"))}))},stopRenaming(){this.isRenaming&&this.renamingStore.$reset()},async onRename(){const e=this.newName.trim?.()||"";if(!this.$refs.renameForm.checkValidity())return void(0,u.Qg)((0,g.Tl)("files","Invalid filename.")+" "+Bs(e));const t=this.source.basename;if(e!==t)try{await this.renamingStore.rename()&&((0,u.Te)((0,g.Tl)("files",'Renamed "{oldName}" to "{newName}"',{oldName:t,newName:e})),this.$nextTick((()=>{const e=this.$refs.basename;e?.focus()})))}catch(e){h.error(e),(0,u.Qg)(e.message),this.startRenaming()}else this.stopRenaming()},t:g.Tl}}),Os=Ds;var Rs=n(29629),js={};js.styleTagTransform=he(),js.setAttributes=ue(),js.insert=ce().bind(null,"head"),js.domAPI=le(),js.insertStyleElement=fe(),re()(Rs.A,js),Rs.A&&Rs.A.locals&&Rs.A.locals;const Ms=(0,G.A)(Os,(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.isRenaming?t("form",{directives:[{name:"on-click-outside",rawName:"v-on-click-outside",value:e.onRename,expression:"onRename"}],ref:"renameForm",staticClass:"files-list__row-rename",attrs:{"aria-label":e.t("files","Rename file")},on:{submit:function(t){return t.preventDefault(),t.stopPropagation(),e.onRename.apply(null,arguments)}}},[t("NcTextField",{ref:"renameInput",attrs:{label:e.renameLabel,autofocus:!0,minlength:1,required:!0,value:e.newName,enterkeyhint:"done"},on:{"update:value":function(t){e.newName=t},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.stopRenaming.apply(null,arguments)}}})],1):t(e.linkTo.is,e._b({ref:"basename",tag:"component",staticClass:"files-list__row-name-link",attrs:{"aria-hidden":e.isRenaming,"data-cy-files-list-row-name-link":""}},"component",e.linkTo.params,!1),[t("span",{staticClass:"files-list__row-name-text",attrs:{dir:"auto"}},[t("span",{staticClass:"files-list__row-name-",domProps:{textContent:e._s(e.basename)}}),e._v(" "),t("span",{staticClass:"files-list__row-name-ext",domProps:{textContent:e._s(e.extension)}})])])}),[],!1,null,"c8581214",null).exports;var Vs=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],$s=e=>{let t=0;for(let s=0;s<e.length;s++){let n=e[s];t=83*t+Vs.indexOf(n)}return t},Ws=e=>{let t=e/255;return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)},Hs=e=>{let t=Math.max(0,Math.min(1,e));return t<=.0031308?Math.trunc(12.92*t*255+.5):Math.trunc(255*(1.055*Math.pow(t,.4166666666666667)-.055)+.5)},qs=(e,t)=>(e=>e<0?-1:1)(e)*Math.pow(Math.abs(e),t),Gs=class extends Error{constructor(e){super(e),this.name="ValidationError",this.message=e}},Ys=e=>{let t=e>>8&255,s=255&e;return[Ws(e>>16),Ws(t),Ws(s)]},Ks=(e,t)=>{let s=Math.floor(e/361),n=Math.floor(e/19)%19,i=e%19;return[qs((s-9)/9,2)*t,qs((n-9)/9,2)*t,qs((i-9)/9,2)*t]},Qs=(e,t,s,n)=>{(e=>{if(!e||e.length<6)throw new Gs("The blurhash string must be at least 6 characters");let t=$s(e[0]),s=Math.floor(t/9)+1,n=t%9+1;if(e.length!==4+2*n*s)throw new Gs(`blurhash length mismatch: length is ${e.length} but it should be ${4+2*n*s}`)})(e),n|=1;let i=$s(e[0]),a=Math.floor(i/9)+1,r=i%9+1,o=($s(e[1])+1)/166,l=new Array(r*a);for(let t=0;t<l.length;t++)if(0===t){let s=$s(e.substring(2,6));l[t]=Ys(s)}else{let s=$s(e.substring(4+2*t,6+2*t));l[t]=Ks(s,o*n)}let d=4*t,c=new Uint8ClampedArray(d*s);for(let e=0;e<s;e++)for(let n=0;n<t;n++){let i=0,o=0,m=0;for(let d=0;d<a;d++)for(let a=0;a<r;a++){let c=Math.cos(Math.PI*n*a/t)*Math.cos(Math.PI*e*d/s),u=l[a+d*r];i+=u[0]*c,o+=u[1]*c,m+=u[2]*c}let u=Hs(i),g=Hs(o),f=Hs(m);c[4*n+0+e*d]=u,c[4*n+1+e*d]=g,c[4*n+2+e*d]=f,c[4*n+3+e*d]=255}return c},Xs=n(43261),Js=n(60557);const Zs={name:"FolderOpenIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},en=(0,G.A)(Zs,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon folder-open-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M19,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,tn={name:"KeyIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},sn=(0,G.A)(tn,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon key-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,nn={name:"NetworkIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},an=(0,G.A)(nn,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon network-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,rn={name:"TagIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},on=(0,G.A)(rn,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon tag-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,ln={name:"PlayCircleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},dn=(0,G.A)(ln,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon play-circle-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M10,16.5V7.5L16,12M12,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"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,cn={name:"CollectivesIcon",props:{title:{type:String,default:""},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},mn=(0,G.A)(cn,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon collectives-icon",attrs:{"aria-hidden":!e.title,"aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 16 16"}},[t("path",{attrs:{d:"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z"}}),e._v(" "),t("path",{attrs:{d:"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z"}}),e._v(" "),t("path",{attrs:{d:"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z"}}),e._v(" "),t("path",{attrs:{d:"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z"}}),e._v(" "),t("path",{attrs:{d:"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z"}}),e._v(" "),t("path",{attrs:{d:"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z"}})])])}),[],!1,null,null,null).exports,un=(0,r.pM)({name:"FavoriteIcon",components:{NcIconSvgWrapper:Ue.A},data:()=>({StarSvg:U}),async mounted(){await this.$nextTick();const e=this.$el.querySelector("svg");e?.setAttribute?.("viewBox","-4 -4 30 30")},methods:{t:g.Tl}});var gn=n(4575),fn={};fn.styleTagTransform=he(),fn.setAttributes=ue(),fn.insert=ce().bind(null,"head"),fn.domAPI=le(),fn.insertStyleElement=fe(),re()(gn.A,fn),gn.A&&gn.A.locals&&gn.A.locals;const pn=(0,G.A)(un,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcIconSvgWrapper",{staticClass:"favorite-marker-icon",attrs:{name:e.t("files","Favorite"),svg:e.StarSvg}})}),[],!1,null,"f2d0cf6e",null).exports,hn=(0,r.pM)({name:"FileEntryPreview",components:{AccountGroupIcon:Xs.A,AccountPlusIcon:lt,CollectivesIcon:mn,FavoriteIcon:pn,FileIcon:Js.A,FolderIcon:_s.A,FolderOpenIcon:en,KeyIcon:sn,LinkIcon:Je.A,NetworkIcon:an,TagIcon:on},props:{source:{type:Object,required:!0},dragover:{type:Boolean,default:!1},gridMode:{type:Boolean,default:!1}},setup:()=>({userConfigStore:W(),isPublic:(0,F.f)(),publicSharingToken:(0,F.G)()}),data:()=>({backgroundFailed:void 0,backgroundLoaded:!1}),computed:{isFavorite(){return 1===this.source.attributes.favorite},userConfig(){return this.userConfigStore.userConfig},cropPreviews(){return!0===this.userConfig.crop_image_previews},previewUrl(){if(this.source.type===m.pt.Folder)return null;if(!0===this.backgroundFailed)return null;try{const e=this.source.attributes.previewUrl||(this.isPublic?(0,N.Jv)("/apps/files_sharing/publicpreview/{token}?file={file}",{token:this.publicSharingToken,file:this.source.path}):(0,N.Jv)("/core/preview?fileId={fileid}",{fileid:String(this.source.fileid)})),t=new URL(window.location.origin+e);t.searchParams.set("x",this.gridMode?"128":"32"),t.searchParams.set("y",this.gridMode?"128":"32"),t.searchParams.set("mimeFallback","true");const s=this.source?.attributes?.etag||"";return t.searchParams.set("v",s.slice(0,6)),t.searchParams.set("a",!0===this.cropPreviews?"0":"1"),t.href}catch(e){return null}},fileOverlay(){return void 0!==this.source.attributes["metadata-files-live-photo"]?dn:null},folderOverlay(){if(this.source.type!==m.pt.Folder)return null;if(1===this.source?.attributes?.["is-encrypted"])return sn;if(this.source?.attributes?.["is-tag"])return on;const e=Object.values(this.source?.attributes?.["share-types"]||{}).flat();if(e.some((e=>e===Ge.I.Link||e===Ge.I.Email)))return Je.A;if(e.length>0)return lt;switch(this.source?.attributes?.["mount-type"]){case"external":case"external-session":return an;case"group":return Xs.A;case"collective":return mn;case"shared":return lt}return null},hasBlurhash(){return void 0!==this.source.attributes["metadata-blurhash"]}},mounted(){this.hasBlurhash&&this.$refs.canvas&&this.drawBlurhash()},methods:{reset(){this.backgroundFailed=void 0,this.backgroundLoaded=!1;const e=this.$refs.previewImg;e&&(e.src="")},onBackgroundLoad(){this.backgroundFailed=!1,this.backgroundLoaded=!0},onBackgroundError(e){""!==e.target?.src&&(this.backgroundFailed=!0,this.backgroundLoaded=!1)},drawBlurhash(){const e=this.$refs.canvas,t=e.width,s=e.height,n=Qs(this.source.attributes["metadata-blurhash"],t,s),i=e.getContext("2d");if(null===i)return void h.error("Cannot create context for blurhash canvas");const a=i.createImageData(t,s);a.data.set(n),i.putImageData(a,0,0)},t:g.Tl}}),vn=hn,wn=(0,G.A)(vn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("span",{staticClass:"files-list__row-icon"},["folder"===e.source.type?[e.dragover?e._m(0):[e._m(1),e._v(" "),e.folderOverlay?t(e.folderOverlay,{tag:"OverlayIcon",staticClass:"files-list__row-icon-overlay"}):e._e()]]:e.previewUrl?t("span",{staticClass:"files-list__row-icon-preview-container"},[!e.hasBlurhash||!0!==e.backgroundFailed&&e.backgroundLoaded?e._e():t("canvas",{ref:"canvas",staticClass:"files-list__row-icon-blurhash",attrs:{"aria-hidden":"true"}}),e._v(" "),!0!==e.backgroundFailed?t("img",{ref:"previewImg",staticClass:"files-list__row-icon-preview",class:{"files-list__row-icon-preview--loaded":!1===e.backgroundFailed},attrs:{alt:"",loading:"lazy",src:e.previewUrl},on:{error:e.onBackgroundError,load:e.onBackgroundLoad}}):e._e()]):e._m(2),e._v(" "),e.isFavorite?t("span",{staticClass:"files-list__row-icon-favorite"},[e._m(3)],1):e._e(),e._v(" "),e.fileOverlay?t(e.fileOverlay,{tag:"OverlayIcon",staticClass:"files-list__row-icon-overlay files-list__row-icon-overlay--file"}):e._e()],2)}),[function(){var e=this._self._c;return this._self._setupProxy,e("FolderOpenIcon")},function(){var e=this._self._c;return this._self._setupProxy,e("FolderIcon")},function(){var e=this._self._c;return this._self._setupProxy,e("FileIcon")},function(){var e=this._self._c;return this._self._setupProxy,e("FavoriteIcon")}],!1,null,null,null).exports,An=(0,r.pM)({name:"FileEntry",components:{CustomElementRender:os,FileEntryActions:As,FileEntryCheckbox:Cs,FileEntryName:Ms,FileEntryPreview:wn,NcDateTime:ts.A},mixins:[Ps],props:{isSizeAvailable:{type:Boolean,default:!1}},setup(){const e=ss(),t=Yt(),s=Ct(),n=as(),i=yt(),a=pt(),{currentView:r}=Ie(),{directory:o,fileId:l}=ht();return{actionsMenuStore:e,draggingStore:t,filesStore:s,renamingStore:n,selectionStore:i,currentDir:o,currentFileId:l,currentView:r,filesListWidth:a}},computed:{rowListeners(){return{...this.isRenaming?{}:{dragstart:this.onDragStart,dragover:this.onDragOver},contextmenu:this.onRightClick,dragleave:this.onDragLeave,dragend:this.onDragEnd,drop:this.onDrop}},columns(){return this.filesListWidth<512||this.compact?[]:this.currentView.columns||[]},size(){const e=this.source.size;return void 0===e||isNaN(e)||e<0?this.t("files","Pending"):(0,m.v7)(e,!0)},sizeOpacity(){const e=this.source.size;return void 0===e||isNaN(e)||e<0?{}:{color:`color-mix(in srgb, var(--color-main-text) ${Math.round(Math.min(100,100*Math.pow(e/10485760,2)))}%, var(--color-text-maxcontrast))`}},mtime(){return this.source.mtime&&!isNaN(this.source.mtime.getDate())?this.source.mtime:this.source.crtime&&!isNaN(this.source.crtime.getDate())?this.source.crtime:null},mtimeTitle(){return this.source.mtime?(0,es.A)(this.source.mtime).format("LLL"):""}},created(){(0,d.C)("Enter",this.triggerDefaultAction,{stop:!0,prevent:!0})},methods:{formatFileSize:m.v7,triggerDefaultAction(){this.isActive&&this.defaultFileAction?.exec(this.source,this.currentView,this.currentDir)}}}),bn=(0,G.A)(An,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",e._g({staticClass:"files-list__row",class:{"files-list__row--dragover":e.dragover,"files-list__row--loading":e.isLoading,"files-list__row--active":e.isActive},attrs:{"data-cy-files-list-row":"","data-cy-files-list-row-fileid":e.fileid,"data-cy-files-list-row-name":e.source.basename,draggable:e.canDrag}},e.rowListeners),[e.isFailedSource?t("span",{staticClass:"files-list__row--failed"}):e._e(),e._v(" "),t("FileEntryCheckbox",{attrs:{fileid:e.fileid,"is-loading":e.isLoading,nodes:e.nodes,source:e.source}}),e._v(" "),t("td",{staticClass:"files-list__row-name",attrs:{"data-cy-files-list-row-name":""}},[t("FileEntryPreview",{ref:"preview",attrs:{source:e.source,dragover:e.dragover},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}}),e._v(" "),t("FileEntryName",{ref:"name",attrs:{basename:e.basename,extension:e.extension,nodes:e.nodes,source:e.source},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}})],1),e._v(" "),t("FileEntryActions",{directives:[{name:"show",rawName:"v-show",value:!e.isRenamingSmallScreen,expression:"!isRenamingSmallScreen"}],ref:"actions",class:`files-list__row-actions-${e.uniqueId}`,attrs:{opened:e.openedMenu,source:e.source},on:{"update:opened":function(t){e.openedMenu=t}}}),e._v(" "),!e.compact&&e.isSizeAvailable?t("td",{staticClass:"files-list__row-size",style:e.sizeOpacity,attrs:{"data-cy-files-list-row-size":""},on:{click:e.openDetailsIfAvailable}},[t("span",[e._v(e._s(e.size))])]):e._e(),e._v(" "),!e.compact&&e.isMtimeAvailable?t("td",{staticClass:"files-list__row-mtime",style:e.mtimeOpacity,attrs:{"data-cy-files-list-row-mtime":""},on:{click:e.openDetailsIfAvailable}},[e.mtime?t("NcDateTime",{attrs:{timestamp:e.mtime,"ignore-seconds":!0}}):t("span",[e._v(e._s(e.t("files","Unknown date")))])],1):e._e(),e._v(" "),e._l(e.columns,(function(s){return t("td",{key:s.id,staticClass:"files-list__row-column-custom",class:`files-list__row-${e.currentView.id}-${s.id}`,attrs:{"data-cy-files-list-row-column-custom":s.id},on:{click:e.openDetailsIfAvailable}},[t("CustomElementRender",{attrs:{"current-view":e.currentView,render:s.render,source:e.source}})],1)}))],2)}),[],!1,null,null,null).exports,Cn=(0,r.pM)({name:"FileEntryGrid",components:{FileEntryActions:As,FileEntryCheckbox:Cs,FileEntryName:Ms,FileEntryPreview:wn,NcDateTime:ts.A},mixins:[Ps],inheritAttrs:!1,setup(){const e=ss(),t=Yt(),s=Ct(),n=as(),i=yt(),{currentView:a}=Ie(),{directory:r,fileId:o}=ht();return{actionsMenuStore:e,draggingStore:t,filesStore:s,renamingStore:n,selectionStore:i,currentDir:r,currentFileId:o,currentView:a}},data:()=>({gridMode:!0})}),yn=(0,G.A)(Cn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",{staticClass:"files-list__row",class:{"files-list__row--active":e.isActive,"files-list__row--dragover":e.dragover,"files-list__row--loading":e.isLoading},attrs:{"data-cy-files-list-row":"","data-cy-files-list-row-fileid":e.fileid,"data-cy-files-list-row-name":e.source.basename,draggable:e.canDrag},on:{contextmenu:e.onRightClick,dragover:e.onDragOver,dragleave:e.onDragLeave,dragstart:e.onDragStart,dragend:e.onDragEnd,drop:e.onDrop}},[e.isFailedSource?t("span",{staticClass:"files-list__row--failed"}):e._e(),e._v(" "),t("FileEntryCheckbox",{attrs:{fileid:e.fileid,"is-loading":e.isLoading,nodes:e.nodes,source:e.source}}),e._v(" "),t("td",{staticClass:"files-list__row-name",attrs:{"data-cy-files-list-row-name":""}},[t("FileEntryPreview",{ref:"preview",attrs:{dragover:e.dragover,"grid-mode":!0,source:e.source},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}}),e._v(" "),t("FileEntryName",{ref:"name",attrs:{basename:e.basename,extension:e.extension,"grid-mode":!0,nodes:e.nodes,source:e.source},nativeOn:{auxclick:function(t){return e.execDefaultAction.apply(null,arguments)},click:function(t){return e.execDefaultAction.apply(null,arguments)}}})],1),e._v(" "),!e.compact&&e.isMtimeAvailable?t("td",{staticClass:"files-list__row-mtime",style:e.mtimeOpacity,attrs:{"data-cy-files-list-row-mtime":""},on:{click:e.openDetailsIfAvailable}},[e.source.mtime?t("NcDateTime",{attrs:{timestamp:e.source.mtime,"ignore-seconds":!0}}):e._e()],1):e._e(),e._v(" "),t("FileEntryActions",{ref:"actions",class:`files-list__row-actions-${e.uniqueId}`,attrs:{"grid-mode":!0,opened:e.openedMenu,source:e.source},on:{"update:opened":function(t){e.openedMenu=t}}})],1)}),[],!1,null,null,null).exports;var xn=n(41944),kn=n(63068);const _n=(0,r.pM)({__name:"FileListFilters",setup(e){const t=Me(),s=(0,r.EW)((()=>t.filtersWithUI)),n=(0,r.EW)((()=>t.activeChips)),i=(0,r.KR)([]);return(0,r.nT)((()=>{i.value.forEach(((e,t)=>s.value[t].mount(e)))})),{__sfc:!0,filterStore:t,visualFilters:s,activeChips:n,filterElements:i,t:g.t,NcAvatar:xn.A,NcChip:kn.A}}});var Tn=n(3085),Sn={};Sn.styleTagTransform=he(),Sn.setAttributes=ue(),Sn.insert=ce().bind(null,"head"),Sn.domAPI=le(),Sn.insertStyleElement=fe(),re()(Tn.A,Sn),Tn.A&&Tn.A.locals&&Tn.A.locals;const Ln=(0,G.A)(_n,(function(){var e=this,t=e._self._c,s=e._self._setupProxy;return t("div",{staticClass:"file-list-filters"},[t("div",{staticClass:"file-list-filters__filter",attrs:{"data-cy-files-filters":""}},e._l(s.visualFilters,(function(e){return t("span",{key:e.id,ref:"filterElements",refInFor:!0})})),0),e._v(" "),s.activeChips.length>0?t("ul",{staticClass:"file-list-filters__active",attrs:{"aria-label":s.t("files","Active filters")}},e._l(s.activeChips,(function(n,i){return t("li",{key:i},[t(s.NcChip,{attrs:{"aria-label-close":s.t("files","Remove filter"),"icon-svg":n.icon,text:n.text},on:{close:n.onclick},scopedSlots:e._u([n.user?{key:"icon",fn:function(){return[t(s.NcAvatar,{attrs:{"disable-menu":"","show-user-status":!1,size:24,user:n.user}})]},proxy:!0}:null],null,!0)})],1)})),0):e._e()])}),[],!1,null,"bd0c8440",null).exports,Nn={name:"FilesListHeader",props:{header:{type:Object,required:!0},currentFolder:{type:Object,required:!0},currentView:{type:Object,required:!0}},computed:{enabled(){return this.header.enabled(this.currentFolder,this.currentView)}},watch:{enabled(e){e&&this.header.updated(this.currentFolder,this.currentView)},currentFolder(){this.header.updated(this.currentFolder,this.currentView)}},mounted(){console.debug("Mounted",this.header.id),this.header.render(this.$refs.mount,this.currentFolder,this.currentView)}},Fn=(0,G.A)(Nn,(function(){var e=this,t=e._self._c;return t("div",{directives:[{name:"show",rawName:"v-show",value:e.enabled,expression:"enabled"}],class:`files-list__header-${e.header.id}`},[t("span",{ref:"mount"})])}),[],!1,null,null,null).exports,En=(0,r.pM)({name:"FilesListTableFooter",props:{currentView:{type:m.Ss,required:!0},isMtimeAvailable:{type:Boolean,default:!1},isSizeAvailable:{type:Boolean,default:!1},nodes:{type:Array,required:!0},summary:{type:String,default:""},filesListWidth:{type:Number,default:0}},setup(){const e=bt(),t=Ct(),{directory:s}=ht();return{filesStore:t,pathsStore:e,directory:s}},computed:{currentFolder(){if(!this.currentView?.id)return;if("/"===this.directory)return this.filesStore.getRoot(this.currentView.id);const e=this.pathsStore.getPath(this.currentView.id,this.directory);return this.filesStore.getNode(e)},columns(){return this.filesListWidth<512?[]:this.currentView?.columns||[]},totalSize(){return this.currentFolder?.size?(0,m.v7)(this.currentFolder.size,!0):(0,m.v7)(this.nodes.reduce(((e,t)=>e+(t.size??0)),0),!0)}},methods:{classForColumn(e){return{"files-list__row-column-custom":!0,[`files-list__row-${this.currentView.id}-${e.id}`]:!0}},t:g.Tl}});var Un=n(23718),In={};In.styleTagTransform=he(),In.setAttributes=ue(),In.insert=ce().bind(null,"head"),In.domAPI=le(),In.insertStyleElement=fe(),re()(Un.A,In),Un.A&&Un.A.locals&&Un.A.locals;const Pn=(0,G.A)(En,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",[t("th",{staticClass:"files-list__row-checkbox"},[t("span",{staticClass:"hidden-visually"},[e._v(e._s(e.t("files","Total rows summary")))])]),e._v(" "),t("td",{staticClass:"files-list__row-name"},[t("span",{staticClass:"files-list__row-icon"}),e._v(" "),t("span",[e._v(e._s(e.summary))])]),e._v(" "),t("td",{staticClass:"files-list__row-actions"}),e._v(" "),e.isSizeAvailable?t("td",{staticClass:"files-list__column files-list__row-size"},[t("span",[e._v(e._s(e.totalSize))])]):e._e(),e._v(" "),e.isMtimeAvailable?t("td",{staticClass:"files-list__column files-list__row-mtime"}):e._e(),e._v(" "),e._l(e.columns,(function(s){return t("th",{key:s.id,class:e.classForColumn(s)},[t("span",[e._v(e._s(s.summary?.(e.nodes,e.currentView)))])])}))],2)}),[],!1,null,"5103b354",null).exports;var zn=n(25384),Bn=n(33388);const Dn=r.Ay.extend({setup(){const{currentView:e}=Ie();return{currentView:e}},computed:{...(0,a.aH)(ze,["getConfig","setSortingBy","toggleSortingDirection"]),sortingMode(){return this.getConfig(this.currentView.id)?.sorting_mode||this.currentView?.defaultSortKey||"basename"},isAscSorting(){const e=this.getConfig(this.currentView.id)?.sorting_direction;return"desc"!==e}},methods:{toggleSortBy(e){this.sortingMode!==e?this.setSortingBy(e,this.currentView.id):this.toggleSortingDirection(this.currentView.id)}}}),On=(0,r.pM)({name:"FilesListTableHeaderButton",components:{MenuDown:zn.A,MenuUp:Bn.A,NcButton:it.A},mixins:[Dn],props:{name:{type:String,required:!0},mode:{type:String,required:!0}},methods:{t:g.Tl}});var Rn=n(64800),jn={};jn.styleTagTransform=he(),jn.setAttributes=ue(),jn.insert=ce().bind(null,"head"),jn.domAPI=le(),jn.insertStyleElement=fe(),re()(Rn.A,jn),Rn.A&&Rn.A.locals&&Rn.A.locals;const Mn=(0,G.A)(On,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcButton",{class:["files-list__column-sort-button",{"files-list__column-sort-button--active":e.sortingMode===e.mode,"files-list__column-sort-button--size":"size"===e.sortingMode}],attrs:{alignment:"size"===e.mode?"end":"start-reverse",type:"tertiary",title:e.name},on:{click:function(t){return e.toggleSortBy(e.mode)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.sortingMode!==e.mode||e.isAscSorting?t("MenuUp",{staticClass:"files-list__column-sort-button-icon"}):t("MenuDown",{staticClass:"files-list__column-sort-button-icon"})]},proxy:!0}])},[e._v(" "),t("span",{staticClass:"files-list__column-sort-button-text"},[e._v(e._s(e.name))])])}),[],!1,null,"6d7680f0",null).exports,Vn=(0,r.pM)({name:"FilesListTableHeader",components:{FilesListTableHeaderButton:Mn,NcCheckboxRadioSwitch:xe.A},mixins:[Dn],props:{isMtimeAvailable:{type:Boolean,default:!1},isSizeAvailable:{type:Boolean,default:!1},nodes:{type:Array,required:!0},filesListWidth:{type:Number,default:0}},setup(){const e=Ct(),t=yt(),{currentView:s}=Ie();return{filesStore:e,selectionStore:t,currentView:s}},computed:{columns(){return this.filesListWidth<512?[]:this.currentView?.columns||[]},dir(){return(this.$route?.query?.dir||"/").replace(/^(.+)\/$/,"$1")},selectAllBind(){const e=(0,g.Tl)("files","Toggle selection for all files and folders");return{"aria-label":e,checked:this.isAllSelected,indeterminate:this.isSomeSelected,title:e}},selectedNodes(){return this.selectionStore.selected},isAllSelected(){return this.selectedNodes.length===this.nodes.length},isNoneSelected(){return 0===this.selectedNodes.length},isSomeSelected(){return!this.isAllSelected&&!this.isNoneSelected}},created(){(0,d.C)("a",this.onToggleAll,{ctrl:!0,stop:!0,prevent:!0}),(0,d.C)("Escape",this.resetSelection,{stop:!0,prevent:!0})},methods:{ariaSortForMode(e){return this.sortingMode===e?this.isAscSorting?"ascending":"descending":null},classForColumn(e){return{"files-list__column":!0,"files-list__column--sortable":!!e.sort,"files-list__row-column-custom":!0,[`files-list__row-${this.currentView?.id}-${e.id}`]:!0}},onToggleAll(){if(arguments.length>0&&void 0!==arguments[0]&&!arguments[0])h.debug("Cleared selection"),this.selectionStore.reset();else{const e=this.nodes.map((e=>e.source)).filter(Boolean);h.debug("Added all nodes to selection",{selection:e}),this.selectionStore.setLastIndex(null),this.selectionStore.set(e)}},resetSelection(){this.isNoneSelected||this.selectionStore.reset()},t:g.Tl}});var $n=n(89937),Wn={};Wn.styleTagTransform=he(),Wn.setAttributes=ue(),Wn.insert=ce().bind(null,"head"),Wn.domAPI=le(),Wn.insertStyleElement=fe(),re()($n.A,Wn),$n.A&&$n.A.locals&&$n.A.locals;const Hn=(0,G.A)(Vn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("tr",{staticClass:"files-list__row-head"},[t("th",{staticClass:"files-list__column files-list__row-checkbox",on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:e.resetSelection.apply(null,arguments)}}},[t("NcCheckboxRadioSwitch",e._b({attrs:{"data-cy-files-list-selection-checkbox":""},on:{"update:checked":e.onToggleAll}},"NcCheckboxRadioSwitch",e.selectAllBind,!1))],1),e._v(" "),t("th",{staticClass:"files-list__column files-list__row-name files-list__column--sortable",attrs:{"aria-sort":e.ariaSortForMode("basename")}},[t("span",{staticClass:"files-list__row-icon"}),e._v(" "),t("FilesListTableHeaderButton",{attrs:{name:e.t("files","Name"),mode:"basename"}})],1),e._v(" "),t("th",{staticClass:"files-list__row-actions"}),e._v(" "),e.isSizeAvailable?t("th",{staticClass:"files-list__column files-list__row-size",class:{"files-list__column--sortable":e.isSizeAvailable},attrs:{"aria-sort":e.ariaSortForMode("size")}},[t("FilesListTableHeaderButton",{attrs:{name:e.t("files","Size"),mode:"size"}})],1):e._e(),e._v(" "),e.isMtimeAvailable?t("th",{staticClass:"files-list__column files-list__row-mtime",class:{"files-list__column--sortable":e.isMtimeAvailable},attrs:{"aria-sort":e.ariaSortForMode("mtime")}},[t("FilesListTableHeaderButton",{attrs:{name:e.t("files","Modified"),mode:"mtime"}})],1):e._e(),e._v(" "),e._l(e.columns,(function(s){return t("th",{key:s.id,class:e.classForColumn(s),attrs:{"aria-sort":e.ariaSortForMode(s.id)}},[s.sort?t("FilesListTableHeaderButton",{attrs:{name:s.title,mode:s.id}}):t("span",[e._v("\n\t\t\t"+e._s(s.title)+"\n\t\t")])],1)}))],2)}),[],!1,null,"2790ede2",null).exports,qn=(0,m.qK)(),Gn=(0,r.pM)({name:"FilesListTableHeaderActions",components:{ArrowLeftIcon:ds,NcActions:st.A,NcActionButton:nt.A,NcIconSvgWrapper:Ue.A,NcLoadingIcon:rt.A},mixins:[ms],props:{currentView:{type:Object,required:!0},selectedNodes:{type:Array,default:()=>[]}},setup(){const e=ss(),t=Ct(),s=yt(),n=pt(),{directory:i}=ht();return{directory:i,fileListWidth:n,actionsMenuStore:e,filesStore:t,selectionStore:s}},data:()=>({loading:null}),computed:{enabledFileActions(){return qn.filter((e=>!e.renderInline)).filter((e=>e.default!==m.m9.HIDDEN)).filter((e=>!e.enabled||e.enabled(this.nodes,this.currentView))).sort(((e,t)=>(e.order||0)-(t.order||0)))},enabledInlineActions(){return this.enabledFileActions.filter((e=>void 0===e.parent)).filter((e=>void 0!==e.execBatch)).filter((e=>!this.isValidMenu(e))).slice(0,this.inlineActions)},enabledMenuActions(){if(this.openedSubmenu)return this.enabledInlineActions;const e=this.enabledFileActions.filter(((e,t,s)=>t===s.findIndex((t=>t.id===e.id)))),t=e.filter((e=>e.parent)).map((e=>e.parent)),s=e.filter((e=>e.execBatch?!e.parent:t.includes(e.id))).filter((e=>!this.enabledInlineActions.includes(e)));return[...this.enabledInlineActions,...s]},nodes(){return this.selectedNodes.map((e=>this.getNode(e))).filter(Boolean)},areSomeNodesLoading(){return this.nodes.some((e=>e.status===m.zI.LOADING))},openedMenu:{get(){return"global"===this.actionsMenuStore.opened},set(e){this.actionsMenuStore.opened=e?"global":null}},inlineActions(){return this.fileListWidth<512?0:this.fileListWidth<768?1:this.fileListWidth<1024?2:3}},methods:{getNode(e){return this.filesStore.getNode(e)},async onActionClick(e){if(this.enabledSubmenuActions[e.id])return void(this.openedSubmenu=e);let t=e.id;try{t=e.displayName(this.nodes,this.currentView)}catch(t){h.error("Error while getting action display name",{action:e,error:t})}const s=this.selectedNodes;try{this.loading=e.id,this.nodes.forEach((e=>{this.$set(e,"status",m.zI.LOADING)}));const n=await e.execBatch(this.nodes,this.currentView,this.directory);if(!n.some((e=>null!==e)))return void this.selectionStore.reset();if(n.some((e=>!1===e))){const e=s.filter(((e,t)=>!1===n[t]));if(this.selectionStore.set(e),n.some((e=>null===e)))return;return void(0,u.Qg)(this.t("files",'"{displayName}" failed on some elements',{displayName:t}))}(0,u.Te)(this.t("files",'"{displayName}" batch action executed successfully',{displayName:t})),this.selectionStore.reset()}catch(s){h.error("Error while executing action",{action:e,e:s}),(0,u.Qg)(this.t("files",'"{displayName}" action failed',{displayName:t}))}finally{this.loading=null,this.nodes.forEach((e=>{this.$set(e,"status",void 0)}))}},t:g.Tl}}),Yn=Gn;var Kn=n(2681),Qn={};Qn.styleTagTransform=he(),Qn.setAttributes=ue(),Qn.insert=ce().bind(null,"head"),Qn.domAPI=le(),Qn.insertStyleElement=fe(),re()(Kn.A,Qn),Kn.A&&Kn.A.locals&&Kn.A.locals;var Xn=(0,G.A)(Yn,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"files-list__column files-list__row-actions-batch",attrs:{"data-cy-files-list-selection-actions":""}},[t("NcActions",{ref:"actionsMenu",attrs:{container:"#app-content-vue",disabled:!!e.loading||e.areSomeNodesLoading,"force-name":!0,inline:e.enabledInlineActions.length,"menu-name":e.enabledInlineActions.length<=1?e.t("files","Actions"):null,open:e.openedMenu},on:{"update:open":function(t){e.openedMenu=t},close:function(t){e.openedSubmenu=null}}},[e._l(e.enabledMenuActions,(function(s){return t("NcActionButton",{key:s.id,ref:`action-batch-${s.id}`,refInFor:!0,class:{[`files-list__row-actions-batch-${s.id}`]:!0,"files-list__row-actions-batch--menu":e.isValidMenu(s)},attrs:{"close-after-click":!e.isValidMenu(s),"data-cy-files-list-selection-action":s.id,"is-menu":e.isValidMenu(s),"aria-label":s.displayName(e.nodes,e.currentView)+" "+e.t("files","(selected)"),title:s.title?.(e.nodes,e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loading===s.id?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline(e.nodes,e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t"+e._s(s.displayName(e.nodes,e.currentView))+"\n\t\t")])})),e._v(" "),e.openedSubmenu&&e.enabledSubmenuActions[e.openedSubmenu?.id]?[t("NcActionButton",{staticClass:"files-list__row-actions-batch-back",attrs:{"data-cy-files-list-selection-action":"menu-back"},on:{click:function(t){return e.onBackToMenuClick(e.openedSubmenu)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("ArrowLeftIcon")]},proxy:!0}],null,!1,3001860362)},[e._v("\n\t\t\t\t"+e._s(e.t("files","Back"))+"\n\t\t\t")]),e._v(" "),t("NcActionSeparator"),e._v(" "),e._l(e.enabledSubmenuActions[e.openedSubmenu?.id],(function(s){return t("NcActionButton",{key:s.id,staticClass:"files-list__row-actions-batch--submenu",class:`files-list__row-actions-batch-${s.id}`,attrs:{"close-after-click":"","data-cy-files-list-selection-action":s.id,"aria-label":s.displayName(e.nodes,e.currentView)+" "+e.t("files","(selected)"),title:s.title?.(e.nodes,e.currentView)},on:{click:function(t){return e.onActionClick(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loading===s.id?t("NcLoadingIcon",{attrs:{size:18}}):t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline(e.nodes,e.currentView)}})]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(s.displayName(e.nodes,e.currentView))+"\n\t\t\t")])}))]:e._e()],2)],1)}),[],!1,null,"22469fbb",null);const Jn=Xn.exports;var Zn=n(17334),ei=n.n(Zn);const ti=(0,r.pM)({name:"VirtualList",props:{dataComponent:{type:[Object,Function],required:!0},dataKey:{type:String,required:!0},dataSources:{type:Array,required:!0},extraProps:{type:Object,default:()=>({})},scrollToIndex:{type:Number,default:0},gridMode:{type:Boolean,default:!1},caption:{type:String,default:""}},setup:()=>({fileListWidth:pt()}),data(){return{index:this.scrollToIndex,beforeHeight:0,footerHeight:0,headerHeight:0,tableHeight:0,resizeObserver:null}},computed:{isReady(){return this.tableHeight>0},bufferItems(){return this.gridMode?this.columnCount:3},itemHeight(){return this.gridMode?246:55},itemWidth:()=>198,visibleRows(){return Math.floor((this.tableHeight-this.headerHeight)/this.itemHeight)},rowCount(){return this.visibleRows+this.bufferItems/this.columnCount*2+1},columnCount(){return this.gridMode?Math.floor(this.fileListWidth/this.itemWidth):1},startIndex(){const e=this.index-this.index%this.columnCount;return Math.max(0,e-this.bufferItems)},shownItems(){return this.gridMode?this.rowCount*this.columnCount:this.rowCount},renderedItems(){if(!this.isReady)return[];const e=this.dataSources.slice(this.startIndex,this.startIndex+this.shownItems),t=e.filter((e=>Object.values(this.$_recycledPool).includes(e[this.dataKey]))).map((e=>e[this.dataKey])),s=Object.keys(this.$_recycledPool).filter((e=>!t.includes(this.$_recycledPool[e])));return e.map((e=>{const t=Object.values(this.$_recycledPool).indexOf(e[this.dataKey]);if(-1!==t)return{key:Object.keys(this.$_recycledPool)[t],item:e};const n=s.pop()||Math.random().toString(36).substr(2);return this.$_recycledPool[n]=e[this.dataKey],{key:n,item:e}}))},totalRowCount(){return Math.ceil(this.dataSources.length/this.columnCount)},tbodyStyle(){const e=Math.round(this.startIndex/this.columnCount),t=Math.max(0,this.totalRowCount-e-this.rowCount);return{paddingBlock:`${e*this.itemHeight}px ${t*this.itemHeight}px`,minHeight:this.totalRowCount*this.itemHeight+"px"}}},watch:{scrollToIndex(e){this.scrollTo(e)},totalRowCount(){this.scrollToIndex&&this.scrollTo(this.scrollToIndex)},columnCount(e,t){0!==t?this.scrollTo(this.index):h.debug("VirtualList: columnCount is 0, skipping scroll")}},mounted(){this.$_recycledPool={},this.resizeObserver=new ResizeObserver(ei()((()=>{this.updateHeightVariables(),h.debug("VirtualList: resizeObserver updated"),this.onScroll()}),100)),this.resizeObserver.observe(this.$el),this.resizeObserver.observe(this.$refs.before),this.resizeObserver.observe(this.$refs.filters),this.resizeObserver.observe(this.$refs.footer),this.$nextTick((()=>{this.updateHeightVariables(),this.scrollToIndex&&this.scrollTo(this.scrollToIndex)}))},beforeDestroy(){this.resizeObserver&&this.resizeObserver.disconnect()},methods:{scrollTo(e){if(!this.$el)return;if(this.totalRowCount<this.visibleRows)return void h.debug("VirtualList: Skip scrolling, nothing to scroll",{index:e,totalRows:this.totalRowCount,visibleRows:this.visibleRows});const t=(this.totalRowCount-this.visibleRows)*this.columnCount+(this.columnCount-1);let s=this.indexToScrollPos(Math.min(e,t));this.index=e,e>=this.columnCount&&e<=t?(s-=this.itemHeight/2,this.index=e-this.columnCount):e>t&&(e<=t+this.columnCount?s+=this.footerHeight/2:s+=this.footerHeight),this.$nextTick((()=>{this.$el.scrollTop=s,h.debug(`VirtualList: scrolling to index ${e}`,{clampedIndex:t,scrollTop:s,columnCount:this.columnCount,total:this.totalRowCount,visibleRows:this.visibleRows,beforeHeight:this.beforeHeight})}))},onScroll(){this._onScrollHandle??=requestAnimationFrame((()=>{this._onScrollHandle=null;const e=this.scrollPosToIndex(this.$el.scrollTop);e!==this.index&&(this.index=Math.max(0,Math.floor(e)),this.$emit("scroll"))}))},scrollPosToIndex(e){const t=e-this.beforeHeight;return Math.max(0,Math.floor(t/this.itemHeight))*this.columnCount},indexToScrollPos(e){return Math.floor(e/this.columnCount)*this.itemHeight+this.beforeHeight},updateHeightVariables(){this.tableHeight=this.$el?.clientHeight??0,this.beforeHeight=this.$refs.before?.clientHeight??0,this.footerHeight=this.$refs.footer?.clientHeight??0;const e=this.$refs.thead?.clientHeight??0,t=this.$refs.filters?.clientHeight??0;this.headerHeight=e+t}}}),si=(0,G.A)(ti,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{staticClass:"files-list",class:{"files-list--grid":e.gridMode},attrs:{"data-cy-files-list":""},on:{"&scroll":function(t){return e.onScroll.apply(null,arguments)}}},[t("div",{ref:"before",staticClass:"files-list__before"},[e._t("before")],2),e._v(" "),t("div",{ref:"filters",staticClass:"files-list__filters"},[e._t("filters")],2),e._v(" "),e.$scopedSlots["header-overlay"]?t("div",{staticClass:"files-list__thead-overlay"},[e._t("header-overlay")],2):e._e(),e._v(" "),t("table",{staticClass:"files-list__table",class:{"files-list__table--with-thead-overlay":!!e.$scopedSlots["header-overlay"]}},[e.caption?t("caption",{staticClass:"hidden-visually"},[e._v("\n\t\t\t"+e._s(e.caption)+"\n\t\t")]):e._e(),e._v(" "),t("thead",{ref:"thead",staticClass:"files-list__thead",attrs:{"data-cy-files-list-thead":""}},[e._t("header")],2),e._v(" "),t("tbody",{staticClass:"files-list__tbody",style:e.tbodyStyle,attrs:{"data-cy-files-list-tbody":""}},e._l(e.renderedItems,(function(s,n){let{key:i,item:a}=s;return t(e.dataComponent,e._b({key:i,tag:"component",attrs:{source:a,index:n}},"component",e.extraProps,!1))})),1),e._v(" "),t("tfoot",{ref:"footer",staticClass:"files-list__tfoot",attrs:{"data-cy-files-list-tfoot":""}},[e._t("footer")],2)])])}),[],!1,null,null,null).exports,ni=(0,r.pM)({name:"FilesListVirtual",components:{FileListFilters:Ln,FilesListHeader:Fn,FilesListTableFooter:Pn,FilesListTableHeader:Hn,VirtualList:si,FilesListTableHeaderActions:Jn},props:{currentView:{type:m.Ss,required:!0},currentFolder:{type:m.vd,required:!0},nodes:{type:Array,required:!0}},setup(){const e=M(),t=yt(),s=W(),n=pt(),{fileId:i,openDetails:a,openFile:r}=ht();return{fileId:i,fileListWidth:n,openDetails:a,openFile:r,activeStore:e,selectionStore:t,userConfigStore:s,t:g.Tl}},data:()=>({FileEntry:bn,FileEntryGrid:yn,headers:(0,m.By)(),scrollToIndex:0,openFileId:null}),computed:{userConfig(){return this.userConfigStore.userConfig},summary(){return Zt(this.nodes)},isMtimeAvailable(){return!(this.fileListWidth<768)&&this.nodes.some((e=>void 0!==e.mtime))},isSizeAvailable(){return!(this.fileListWidth<768)&&this.nodes.some((e=>void 0!==e.size))},sortedHeaders(){return this.currentFolder&&this.currentView?[...this.headers].sort(((e,t)=>e.order-t.order)):[]},cantUpload(){return this.currentFolder&&!(this.currentFolder.permissions&m.aX.CREATE)},isQuotaExceeded(){return 0===this.currentFolder?.attributes?.["quota-available-bytes"]},caption(){const e=(0,g.Tl)("files","List of files and folders.");return[this.currentView.caption||e,this.cantUpload?(0,g.Tl)("files","You do not have permission to upload or create files here."):null,this.isQuotaExceeded?(0,g.Tl)("files","You have used your space quota and cannot upload files anymore."):null,(0,g.Tl)("files","Column headers with buttons are sortable."),(0,g.Tl)("files","This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.")].filter(Boolean).join("\n")},selectedNodes(){return this.selectionStore.selected},isNoneSelected(){return 0===this.selectedNodes.length}},watch:{fileId:{handler(e){this.scrollToFile(e,!1)},immediate:!0},openFile:{handler(e){e&&this.fileId&&this.handleOpenFile(this.fileId)},immediate:!0},openDetails:{handler(e){this.$nextTick((()=>{e&&this.fileId&&this.openSidebarForFile(this.fileId)}))},immediate:!0}},created(){(0,d.C)("Escape",this.unselectFile,{stop:!0,prevent:!0}),(0,d.C)(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],this.onKeyDown,{stop:!0,prevent:!0})},mounted(){window.document.querySelector("main.app-content").addEventListener("dragover",this.onDragOver),(0,v.B1)("files:sidebar:closed",this.onSidebarClosed)},beforeDestroy(){window.document.querySelector("main.app-content").removeEventListener("dragover",this.onDragOver),(0,v.al)("files:sidebar:closed",this.onSidebarClosed)},methods:{openSidebarForFile(e){const t=this.nodes.find((t=>t.fileid===e));if(t&&j?.enabled?.([t],this.currentView))return h.debug("Opening sidebar on file "+t.path,{node:t}),void j.exec(t,this.currentView,this.currentFolder.path);h.error(`Failed to open sidebar on file ${e}, file isn't cached yet !`,{fileId:e,node:t})},scrollToFile(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e){if(e===this.currentFolder.fileid)return;const s=this.nodes.findIndex((t=>t.fileid===e));t&&-1===s&&e!==this.currentFolder.fileid&&(0,u.Qg)((0,g.Tl)("files","File not found")),this.scrollToIndex=Math.max(0,s)}},unselectFile(){const e={...this.$route.query};delete e.openfile,delete e.opendetails,this.activeStore.clearActiveNode(),window.OCP.Files.Router.goToRoute(null,{...this.$route.params,fileid:String(this.currentFolder.fileid??"")},e,!0)},onSidebarClosed(){if(this.openDetails){const e={...this.$route.query};delete e.opendetails,window.OCP.Files.Router.goToRoute(null,this.$route.params,e)}},async handleOpenFile(e){const t=this.nodes.find((t=>t.fileid===e));if(void 0===t)return;if(t.type===m.pt.File){const e=(0,m.qK)().filter((e=>!!e?.default)).filter((e=>!e.enabled||e.enabled([t],this.currentView))).filter((e=>"download"!==e.id)).sort(((e,t)=>(e.order||0)-(t.order||0))).at(0);if(e)return h.debug("Opening file "+t.path,{node:t}),await e.exec(t,this.currentView,this.currentFolder.path)}const s=this.$route.query;delete s.openfile,s.opendetails="",h.debug("Ignore `openfile` query and replacing with `opendetails` for "+t.path,{node:t}),await this.$router.replace({...this.$route,query:s})},onDragOver(e){const t=e.dataTransfer?.types.includes("Files");if(t)return;e.preventDefault(),e.stopPropagation();const s=this.$refs.table.$el,n=s.getBoundingClientRect().top,i=n+s.getBoundingClientRect().height;e.clientY<n+100?s.scrollTop=s.scrollTop-25:e.clientY>i-50&&(s.scrollTop=s.scrollTop+25)},onKeyDown(e){if("ArrowUp"===e.key||"ArrowDown"===e.key){const t=this.$refs.table?.columnCount??1,s=this.nodes.findIndex((e=>e.fileid===this.fileId))??0,n="ArrowUp"===e.key?s-t:s+t;if(n<0||n>=this.nodes.length)return;const i=this.nodes[n];i&&i?.fileid&&this.setActiveNode(i)}if(this.userConfig.grid_view&&("ArrowLeft"===e.key||"ArrowRight"===e.key)){const t=this.nodes.findIndex((e=>e.fileid===this.fileId))??0,s="ArrowLeft"===e.key?t-1:t+1;if(s<0||s>=this.nodes.length)return;const n=this.nodes[s];n&&n?.fileid&&this.setActiveNode(n)}},setActiveNode(e){h.debug("Navigating to file "+e.path,{node:e,fileid:e.fileid}),this.scrollToFile(e.fileid);const t={...this.$route.query};delete t.openfile,delete t.opendetails,this.activeStore.setActiveNode(e),window.OCP.Files.Router.goToRoute(null,{...this.$route.params,fileid:String(e.fileid)},t,!0)}}}),ii=ni;var ai=n(42687),ri={};ri.styleTagTransform=he(),ri.setAttributes=ue(),ri.insert=ce().bind(null,"head"),ri.domAPI=le(),ri.insertStyleElement=fe(),re()(ai.A,ri),ai.A&&ai.A.locals&&ai.A.locals;var oi=n(64879),li={};li.styleTagTransform=he(),li.setAttributes=ue(),li.insert=ce().bind(null,"head"),li.domAPI=le(),li.insertStyleElement=fe(),re()(oi.A,li),oi.A&&oi.A.locals&&oi.A.locals;const di=(0,G.A)(ii,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("VirtualList",{ref:"table",attrs:{"data-component":e.userConfig.grid_view?e.FileEntryGrid:e.FileEntry,"data-key":"source","data-sources":e.nodes,"grid-mode":e.userConfig.grid_view,"extra-props":{isMtimeAvailable:e.isMtimeAvailable,isSizeAvailable:e.isSizeAvailable,nodes:e.nodes},"scroll-to-index":e.scrollToIndex,caption:e.caption},scopedSlots:e._u([{key:"filters",fn:function(){return[t("FileListFilters")]},proxy:!0},e.isNoneSelected?null:{key:"header-overlay",fn:function(){return[t("span",{staticClass:"files-list__selected"},[e._v(e._s(e.t("files","{count} selected",{count:e.selectedNodes.length})))]),e._v(" "),t("FilesListTableHeaderActions",{attrs:{"current-view":e.currentView,"selected-nodes":e.selectedNodes}})]},proxy:!0},{key:"before",fn:function(){return e._l(e.sortedHeaders,(function(s){return t("FilesListHeader",{key:s.id,attrs:{"current-folder":e.currentFolder,"current-view":e.currentView,header:s}})}))},proxy:!0},{key:"header",fn:function(){return[t("FilesListTableHeader",{ref:"thead",attrs:{"files-list-width":e.fileListWidth,"is-mtime-available":e.isMtimeAvailable,"is-size-available":e.isSizeAvailable,nodes:e.nodes}})]},proxy:!0},{key:"footer",fn:function(){return[t("FilesListTableFooter",{attrs:{"current-view":e.currentView,"files-list-width":e.fileListWidth,"is-mtime-available":e.isMtimeAvailable,"is-size-available":e.isSizeAvailable,nodes:e.nodes,summary:e.summary}})]},proxy:!0}],null,!0)})}),[],!1,null,"f2dba2ba",null).exports,ci={name:"TrayArrowDownIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},mi=(0,G.A)(ci,(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon tray-arrow-down-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],!1,null,null,null).exports,ui=(0,r.pM)({name:"DragAndDropNotice",components:{TrayArrowDownIcon:mi},props:{currentFolder:{type:Object,required:!0}},setup(){const{currentView:e}=Ie();return{currentView:e}},data:()=>({dragover:!1}),computed:{canUpload(){return this.currentFolder&&!!(this.currentFolder.permissions&m.aX.CREATE)},isQuotaExceeded(){return 0===this.currentFolder?.attributes?.["quota-available-bytes"]},cantUploadLabel(){return this.isQuotaExceeded?this.t("files","Your have used your space quota and cannot upload files anymore"):this.canUpload?null:this.t("files","You do not have permission to upload or create files here.")},resetDragOver(){return ei()((()=>{this.dragover=!1}),3e3)}},mounted(){const e=window.document.getElementById("app-content-vue");e.addEventListener("dragover",this.onDragOver),e.addEventListener("dragleave",this.onDragLeave),e.addEventListener("drop",this.onContentDrop)},beforeDestroy(){const e=window.document.getElementById("app-content-vue");e.removeEventListener("dragover",this.onDragOver),e.removeEventListener("dragleave",this.onDragLeave),e.removeEventListener("drop",this.onContentDrop)},methods:{onDragOver(e){e.preventDefault();const t=e.dataTransfer?.types.includes("Files");t&&(this.dragover=!0,this.resetDragOver())},onDragLeave(e){const t=e.currentTarget;t?.contains(e.relatedTarget??e.target)||this.dragover&&(this.dragover=!1,this.resetDragOver.clear())},onContentDrop(e){h.debug("Drag and drop cancelled, dropped on empty space",{event:e}),e.preventDefault(),this.dragover&&(this.dragover=!1,this.resetDragOver.clear())},async onDrop(e){if(this.cantUploadLabel)return void(0,u.Qg)(this.cantUploadLabel);if(this.$el.querySelector("tbody")?.contains(e.target))return;e.preventDefault(),e.stopPropagation();const t=[...e.dataTransfer?.items||[]],s=await Ht(t),n=await(this.currentView?.getContents(this.currentFolder.path)),i=n?.folder;if(!i)return void(0,u.Qg)(this.t("files","Target folder does not exist any more"));if(e.button)return;h.debug("Dropped",{event:e,folder:i,fileTree:s});const a=(await qt(s,i,n.contents)).findLast((e=>e.status!==Ye.S.FAILED&&!e.file.webkitRelativePath.includes("/")&&e.response?.headers?.["oc-fileid"]&&2===e.source.replace(i.source,"").split("/").length));if(void 0!==a){h.debug("Scrolling to last upload in current folder",{lastUpload:a});const e={path:this.$route.path,params:{...this.$route.params,fileid:String(a.response.headers["oc-fileid"])},query:{...this.$route.query}};delete e.query.openfile,this.$router.push(e)}this.dragover=!1,this.resetDragOver.clear()},t:g.Tl}});var gi=n(63569),fi={};fi.styleTagTransform=he(),fi.setAttributes=ue(),fi.insert=ce().bind(null,"head"),fi.domAPI=le(),fi.insertStyleElement=fe(),re()(gi.A,fi),gi.A&&gi.A.locals&&gi.A.locals;const pi=(0,G.A)(ui,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",{directives:[{name:"show",rawName:"v-show",value:e.dragover,expression:"dragover"}],staticClass:"files-list__drag-drop-notice",attrs:{"data-cy-files-drag-drop-area":""},on:{drop:e.onDrop}},[t("div",{staticClass:"files-list__drag-drop-notice-wrapper"},[e.canUpload&&!e.isQuotaExceeded?[t("TrayArrowDownIcon",{attrs:{size:48}}),e._v(" "),t("h3",{staticClass:"files-list-drag-drop-notice__title"},[e._v("\n\t\t\t\t"+e._s(e.t("files","Drag and drop files here to upload"))+"\n\t\t\t")])]:[t("h3",{staticClass:"files-list-drag-drop-notice__title"},[e._v("\n\t\t\t\t"+e._s(e.cantUploadLabel)+"\n\t\t\t")])]],2)])}),[],!1,null,"6efab70c",null).exports;const hi=void 0!==(0,w.F)()?.files_sharing,vi=(0,r.pM)({name:"FilesList",components:{BreadCrumbs:Jt,DragAndDropNotice:pi,FilesListVirtual:di,LinkIcon:Je.A,ListViewIcon:et,NcAppContent:tt.A,NcActions:st.A,NcActionButton:nt.A,NcButton:it.A,NcEmptyContent:at.A,NcIconSvgWrapper:Ue.A,NcLoadingIcon:rt.A,AccountPlusIcon:lt,UploadPicker:Ye.U,ViewGridIcon:ct,IconAlertCircleOutline:Ke.A,IconReload:Xe},mixins:[Dn],props:{isPublic:{type:Boolean,default:!1}},setup(){const{currentView:e}=Ie(),{directory:t,fileId:s}=ht(),n=pt(),i=Ct(),a=Me(),r=bt(),o=yt(),l=kt(),d=W(),m=ze(),u=(0,c.C)("core","config",[])["enable_non-accessible_features"]??!0,f=(0,c.C)("files","forbiddenCharacters",[]);return{currentView:e,directory:t,fileId:s,fileListWidth:n,t:g.Tl,filesStore:i,filtersStore:a,pathsStore:r,selectionStore:o,uploaderStore:l,userConfigStore:d,viewConfigStore:m,enableGridView:u,forbiddenCharacters:f,ShareType:Ge.I}},data:()=>({loading:!0,loadingAction:null,error:null,promise:null,dirContentsFiltered:[]}),computed:{getContent(){const e=this.currentView;return async t=>{const s=(0,l.normalize)(`${this.currentFolder?.path??""}/${t??""}`),n=this.filesStore.getNodesByPath(e.id,s);return n.length>0?n:(await e.getContents(s)).contents}},userConfig(){return this.userConfigStore.userConfig},pageHeading(){const e=this.currentView?.name??(0,g.Tl)("files","Files");return void 0===this.currentFolder||"/"===this.directory?e:`${this.currentFolder.displayname} - ${e}`},currentFolder(){if(!this.currentView?.id)return;if("/"===this.directory)return this.filesStore.getRoot(this.currentView.id);const e=this.pathsStore.getPath(this.currentView.id,this.directory);return void 0!==e?this.filesStore.getNode(e):void 0},dirContents(){return(this.currentFolder?._children||[]).map(this.filesStore.getNode).filter((e=>!!e))},dirContentsSorted(){if(!this.currentView)return[];const e=(this.currentView?.columns||[]).find((e=>e.id===this.sortingMode));if(e?.sort&&"function"==typeof e.sort){const t=[...this.dirContentsFiltered].sort(e.sort);return this.isAscSorting?t:t.reverse()}return(0,m.ur)(this.dirContentsFiltered,{sortFavoritesFirst:this.userConfig.sort_favorites_first,sortFoldersFirst:this.userConfig.sort_folders_first,sortingMode:this.sortingMode,sortingOrder:this.isAscSorting?"asc":"desc"})},isEmptyDir(){return 0===this.dirContents.length},isRefreshing(){return void 0!==this.currentFolder&&!this.isEmptyDir&&this.loading},toPreviousDir(){const e=this.directory.split("/").slice(0,-1).join("/")||"/";return{...this.$route,query:{dir:e}}},shareTypesAttributes(){if(this.currentFolder?.attributes?.["share-types"])return Object.values(this.currentFolder?.attributes?.["share-types"]||{}).flat()},shareButtonLabel(){return this.shareTypesAttributes?this.shareButtonType===Ge.I.Link?(0,g.Tl)("files","Shared by link"):(0,g.Tl)("files","Shared"):(0,g.Tl)("files","Share")},shareButtonType(){return this.shareTypesAttributes?this.shareTypesAttributes.some((e=>e===Ge.I.Link))?Ge.I.Link:Ge.I.User:null},gridViewButtonLabel(){return this.userConfig.grid_view?(0,g.Tl)("files","Switch to list view"):(0,g.Tl)("files","Switch to grid view")},canUpload(){return this.currentFolder&&!!(this.currentFolder.permissions&m.aX.CREATE)},isQuotaExceeded(){return 0===this.currentFolder?.attributes?.["quota-available-bytes"]},canShare(){return hi&&!this.isPublic&&this.currentFolder&&!!(this.currentFolder.permissions&m.aX.SHARE)},filtersChanged(){return this.filtersStore.filtersChanged},showCustomEmptyView(){return!this.loading&&this.isEmptyDir&&void 0!==this.currentView?.emptyView},enabledFileListActions(){if(!this.currentView||!this.currentFolder)return[];const e=(0,m.g5)().filter((e=>void 0===e.enabled||e.enabled(this.currentView,this.dirContents,this.currentFolder))).toSorted(((e,t)=>e.order-t.order));return e}},watch:{pageHeading(){document.title=`${this.pageHeading} - ${(0,w.F)().theming?.productName??"Nextcloud"}`},showCustomEmptyView(e){e&&this.$nextTick((()=>{const e=this.$refs.customEmptyView;this.currentView.emptyView(e)}))},currentView(e,t){e?.id!==t?.id&&(h.debug("View changed",{newView:e,oldView:t}),this.selectionStore.reset(),this.fetchContent())},directory(e,t){h.debug("Directory changed",{newDir:e,oldDir:t}),this.selectionStore.reset(),window.OCA.Files.Sidebar?.close&&window.OCA.Files.Sidebar.close(),this.fetchContent();const s=this.$refs?.filesListVirtual;s?.$el&&(s.$el.scrollTop=0)},dirContents(e){h.debug("Directory contents changed",{view:this.currentView,folder:this.currentFolder,contents:e}),(0,v.Ic)("files:list:updated",{view:this.currentView,folder:this.currentFolder,contents:e}),this.filterDirContent()},filtersChanged(){this.filtersChanged&&(this.filterDirContent(),this.filtersStore.filtersChanged=!1)}},async mounted(){(0,v.B1)("files:node:deleted",this.onNodeDeleted),(0,v.B1)("files:node:updated",this.onUpdatedNode),(0,v.B1)("files:config:updated",this.fetchContent),await this.fetchContent(),this.fileId&&(this.dirContents.find((e=>e.fileid.toString()===this.fileId.toString()))||this.currentFolder.fileid.toString()===this.fileId.toString()||(0,u.Qg)((0,g.Tl)("files","The file could not be found")))},unmounted(){(0,v.al)("files:node:deleted",this.onNodeDeleted),(0,v.al)("files:node:updated",this.onUpdatedNode),(0,v.al)("files:config:updated",this.fetchContent)},methods:{async fetchContent(){this.loading=!0,this.error=null;const e=this.directory,t=this.currentView;if(t){this.promise&&"cancel"in this.promise&&(this.promise.cancel(),h.debug("Cancelled previous ongoing fetch")),this.promise=t.getContents(e);try{const{folder:s,contents:n}=await this.promise;h.debug("Fetched contents",{dir:e,folder:s,contents:n}),this.filesStore.updateNodes(n),this.$set(s,"_children",n.map((e=>e.source))),"/"===e?this.filesStore.setRoot({service:t.id,root:s}):s.fileid?(this.filesStore.updateNodes([s]),this.pathsStore.addPath({service:t.id,source:s.source,path:e})):h.fatal("Invalid root folder returned",{dir:e,folder:s,currentView:t}),n.filter((e=>"folder"===e.type)).forEach((s=>{this.pathsStore.addPath({service:t.id,source:s.source,path:(0,l.join)(e,s.basename)})}))}catch(e){h.error("Error while fetching content",{error:e}),this.error=function(e){if(e instanceof Error){if(function(e){return e instanceof Error&&"status"in e&&"response"in e}(e)){const t=e.status||e.response?.status||0;if([400,404,405].includes(t))return(0,g.t)("files","Folder not found");if(403===t)return(0,g.t)("files","This operation is forbidden");if(500===t)return(0,g.t)("files","This directory is unavailable, please check the logs or contact the administrator");if(503===t)return(0,g.t)("files","Storage is temporarily not available")}return(0,g.t)("files","Unexpected error: {error}",{error:e.message})}return(0,g.t)("files","Unknown error")}(e)}finally{this.loading=!1}}else h.debug("The current view doesn't exists or is not ready.",{currentView:t})},onNodeDeleted(e){e.fileid&&e.fileid===this.fileId&&(e.fileid===this.currentFolder?.fileid?window.OCP.Files.Router.goToRoute(null,{view:this.currentView.id},{dir:this.currentFolder?.dirname??"/"}):window.OCP.Files.Router.goToRoute(null,{...this.$route.params,fileid:void 0},{...this.$route.query,openfile:void 0}))},onUpload(e){(0,l.dirname)(e.source)===this.currentFolder.source&&this.fetchContent()},async onUploadFail(e){const t=e.response?.status||0;if(e.status!==Ye.S.CANCELLED)if(507!==t)if(404!==t&&409!==t)if(403!==t){if("string"==typeof e.response?.data)try{const t=(new DOMParser).parseFromString(e.response.data,"text/xml"),s=t.getElementsByTagName("s:message")[0]?.textContent??"";if(""!==s.trim())return void(0,u.Qg)((0,g.Tl)("files","Error during upload: {message}",{message:s}))}catch(e){h.error("Could not parse message",{error:e})}0===t?(0,u.Qg)((0,g.Tl)("files","Unknown error during upload")):(0,u.Qg)((0,g.Tl)("files","Error during upload, status code {status}",{status:t}))}else(0,u.Qg)((0,g.Tl)("files","Operation is blocked by access control"));else(0,u.Qg)((0,g.Tl)("files","Target folder does not exist any more"));else(0,u.Qg)((0,g.Tl)("files","Not enough free space"));else(0,u.I9)((0,g.Tl)("files","Upload was cancelled by user"))},onUpdatedNode(e){e?.fileid===this.currentFolder?.fileid&&this.fetchContent()},openSharingSidebar(){this.currentFolder?(window?.OCA?.Files?.Sidebar?.setActiveTab&&window.OCA.Files.Sidebar.setActiveTab("sharing"),j.exec(this.currentFolder,this.currentView,this.currentFolder.path)):h.debug("No current folder found for opening sharing sidebar")},toggleGridView(){this.userConfigStore.update("grid_view",!this.userConfig.grid_view)},filterDirContent(){let e=this.dirContents;for(const t of this.filtersStore.sortedFilters)e=t.filter(e);this.dirContentsFiltered=e},actionDisplayName(e){let t=e.id;try{t=e.displayName(this.currentView)}catch(t){h.error("Error while getting action display name",{action:e,error:t})}return t},async execFileListAction(e){this.loadingAction=e.id;const t=this.actionDisplayName(e);try{const s=await e.exec(this.source,this.dirContents,this.currentDir);if(null==s)return;if(s)return void(0,u.Te)((0,g.Tl)("files",'"{displayName}" action executed successfully',{displayName:t}));(0,u.Qg)((0,g.Tl)("files",'"{displayName}" action failed',{displayName:t}))}catch(s){h.error("Error while executing action",{action:e,error:s}),(0,u.Qg)((0,g.Tl)("files",'"{displayName}" action failed',{displayName:t}))}finally{this.loadingAction=null}}}}),wi=vi;var Ai=n(78636),bi={};bi.styleTagTransform=he(),bi.setAttributes=ue(),bi.insert=ce().bind(null,"head"),bi.domAPI=le(),bi.insertStyleElement=fe(),re()(Ai.A,bi),Ai.A&&Ai.A.locals&&Ai.A.locals;var Ci=(0,G.A)(wi,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcAppContent",{attrs:{"page-heading":e.pageHeading,"data-cy-files-content":""}},[t("div",{staticClass:"files-list__header",class:{"files-list__header--public":e.isPublic}},[t("BreadCrumbs",{attrs:{path:e.directory},on:{reload:e.fetchContent},scopedSlots:e._u([{key:"actions",fn:function(){return[e.canShare&&e.fileListWidth>=512?t("NcButton",{staticClass:"files-list__header-share-button",class:{"files-list__header-share-button--shared":e.shareButtonType},attrs:{"aria-label":e.shareButtonLabel,title:e.shareButtonLabel,type:"tertiary"},on:{click:e.openSharingSidebar},scopedSlots:e._u([{key:"icon",fn:function(){return[e.shareButtonType===e.ShareType.Link?t("LinkIcon"):t("AccountPlusIcon",{attrs:{size:20}})]},proxy:!0}],null,!1,4106306959)}):e._e(),e._v(" "),e.canUpload&&!e.isQuotaExceeded&&e.currentFolder?t("UploadPicker",{staticClass:"files-list__header-upload-button",attrs:{"allow-folders":"",content:e.getContent,destination:e.currentFolder,"forbidden-characters":e.forbiddenCharacters,multiple:""},on:{failed:e.onUploadFail,uploaded:e.onUpload}}):e._e()]},proxy:!0}])}),e._v(" "),e.isRefreshing?t("NcLoadingIcon",{staticClass:"files-list__refresh-icon"}):e._e(),e._v(" "),t("NcActions",{staticClass:"files-list__header-actions",attrs:{inline:1,type:"tertiary","force-name":""}},e._l(e.enabledFileListActions,(function(s){return t("NcActionButton",{key:s.id,attrs:{disabled:!!e.loadingAction,"data-cy-files-list-action":s.id,"close-after-click":""},on:{click:function(t){return e.execFileListAction(s)}},scopedSlots:e._u([{key:"icon",fn:function(){return[e.loadingAction===s.id?t("NcLoadingIcon",{attrs:{size:18}}):void 0!==s.iconSvgInline&&e.currentView?t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline(e.currentView)}}):e._e()]},proxy:!0}],null,!0)},[e._v("\n\t\t\t\t"+e._s(e.actionDisplayName(s))+"\n\t\t\t")])})),1),e._v(" "),e.fileListWidth>=512&&e.enableGridView?t("NcButton",{staticClass:"files-list__header-grid-button",attrs:{"aria-label":e.gridViewButtonLabel,title:e.gridViewButtonLabel,type:"tertiary"},on:{click:e.toggleGridView},scopedSlots:e._u([{key:"icon",fn:function(){return[e.userConfig.grid_view?t("ListViewIcon"):t("ViewGridIcon")]},proxy:!0}],null,!1,1682960703)}):e._e()],1),e._v(" "),!e.loading&&e.canUpload?t("DragAndDropNotice",{attrs:{"current-folder":e.currentFolder}}):e._e(),e._v(" "),e.loading&&!e.isRefreshing?t("NcLoadingIcon",{staticClass:"files-list__loading-icon",attrs:{size:38,name:e.t("files","Loading current folder")}}):!e.loading&&e.isEmptyDir?[e.error?t("NcEmptyContent",{attrs:{name:e.error,"data-cy-files-content-error":""},scopedSlots:e._u([{key:"action",fn:function(){return[t("NcButton",{attrs:{type:"secondary"},on:{click:e.fetchContent},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconReload",{attrs:{size:20}})]},proxy:!0}],null,!1,3448385010)},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Retry"))+"\n\t\t\t\t")])]},proxy:!0},{key:"icon",fn:function(){return[t("IconAlertCircleOutline")]},proxy:!0}],null,!1,2673163798)}):e.currentView?.emptyView?t("div",{staticClass:"files-list__empty-view-wrapper"},[t("div",{ref:"customEmptyView"})]):t("NcEmptyContent",{attrs:{name:e.currentView?.emptyTitle||e.t("files","No files in here"),description:e.currentView?.emptyCaption||e.t("files","Upload some content or sync with your devices!"),"data-cy-files-content-empty":""},scopedSlots:e._u(["/"!==e.directory?{key:"action",fn:function(){return[e.canUpload&&!e.isQuotaExceeded?t("UploadPicker",{staticClass:"files-list__header-upload-button",attrs:{"allow-folders":"",content:e.getContent,destination:e.currentFolder,"forbidden-characters":e.forbiddenCharacters,multiple:""},on:{failed:e.onUploadFail,uploaded:e.onUpload}}):t("NcButton",{attrs:{to:e.toPreviousDir,type:"primary"}},[e._v("\n\t\t\t\t\t"+e._s(e.t("files","Go back"))+"\n\t\t\t\t")])]},proxy:!0}:null,{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:e.currentView.icon}})]},proxy:!0}],null,!0)})]:t("FilesListVirtual",{ref:"filesListVirtual",attrs:{"current-folder":e.currentFolder,"current-view":e.currentView,nodes:e.dirContentsSorted}})],2)}),[],!1,null,"693703cc",null);const yi=Ci.exports,xi=(0,r.pM)({name:"FilesApp",components:{NcContent:H.A,FilesList:yi,Navigation:qe},setup:()=>({isPublic:(0,F.f)()})}),ki=(0,G.A)(xi,(function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcContent",{attrs:{"app-name":"files"}},[e.isPublic?e._e():t("Navigation"),e._v(" "),t("FilesList",{attrs:{"is-public":e.isPublic}})],1)}),[],!1,null,null,null).exports;var _i=n(82490),Ti=n(40173);r.Ay.use(Ti.Ay);const Si=Ti.Ay.prototype.push;Ti.Ay.prototype.push=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.length>1?Si.call(this,...t):Si.call(this,t[0]).catch(Ni)};const Li=Ti.Ay.prototype.replace;function Ni(e){if(!(0,Ti.Pq)(e,Ti.$c.duplicated))throw e;h.debug("Ignoring duplicated navigation from vue-router",{error:e})}Ti.Ay.prototype.replace=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.length>1?Li.call(this,...t):Li.call(this,t[0]).catch(Ni)};const Fi=new Ti.Ay({mode:"history",base:(0,N.Jv)("/apps/files"),linkActiveClass:"active",routes:[{path:"/",redirect:{name:"filelist",params:{view:"files"}}},{path:"/:view/:fileid(\\d+)?",name:"filelist",props:!0}],stringifyQuery(e){const t=_i.A.stringify(e).replace(/%2F/gim,"/");return t?"?"+t:""}});class Ei{constructor(e){(function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s})(this,"router",void 0),this.router=e}get name(){return this.router.currentRoute.name}get query(){return this.router.currentRoute.query||{}}get params(){return this.router.currentRoute.params||{}}get _router(){return this.router}goTo(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.router.push({path:e,replace:t})}goToRoute(e,t,s,n){return this.router.push({name:e,query:s,params:t,replace:n})}}function Ui(e,t,s){return(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}if(n.nc=(0,i.aV)(),window.OCA.Files=window.OCA.Files??{},window.OCP.Files=window.OCP.Files??{},!window.OCP.Files.Router){const e=new Ei(Fi);Object.assign(window.OCP.Files,{Router:e})}r.Ay.use(a.R2),(0,d.C)("d",(()=>V(j)),{stop:!0,prevent:!0}),(0,d.C)("F2",(()=>V(O)),{stop:!0,prevent:!0}),(0,d.C)("s",(()=>V(B)),{stop:!0,prevent:!0}),(0,d.C)("Delete",(()=>V(S)),{stop:!0,prevent:!0}),(0,d.C)("ArrowUp",(function(){const e=window.OCP.Files.Router?.params||{},t=window.OCP.Files.Router?.query||{},s=t?.dir||"/",n=(0,l.dirname)(s);h.debug("Navigating to parent directory",{parentDir:n}),window.OCP.Files.Router.goToRoute(null,{...e},{...t,dir:n})}),{stop:!0,prevent:!0,alt:!0}),(0,d.C)("v",(function(){const e=W(),t=e?.userConfig?.grid_view;h.debug("Toggling grid view",{old:t,new:!t}),e.update("grid_view",!t)}),{stop:!0,prevent:!0}),h.debug("Hotkeys registered");const Ii=new class{constructor(){(function(e,t,s){(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var s=t.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s})(this,"_settings",void 0),this._settings=[],console.debug("OCA.Files.Settings initialized")}register(e){return this._settings.filter((t=>t.name===e.name)).length>0?(console.error("A setting with the same name is already registered"),!1):(this._settings.push(e),!0)}get settings(){return this._settings}};Object.assign(window.OCA.Files,{Settings:Ii}),Object.assign(window.OCA.Files.Settings,{Setting:class{constructor(e,t){let{el:s,open:n,close:i}=t;Ui(this,"_close",void 0),Ui(this,"_el",void 0),Ui(this,"_name",void 0),Ui(this,"_open",void 0),this._name=e,this._el=s,this._open=n,this._close=i,"function"!=typeof this._open&&(this._open=()=>{}),"function"!=typeof this._close&&(this._close=()=>{})}get name(){return this._name}get el(){return this._el}get open(){return this._open}get close(){return this._close}}}),new(r.Ay.extend(ki))({router:window.OCP.Files.Router._router,pinia:o()}).$mount("#content")},19305:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list__breadcrumbs[data-v-04abfffa]{flex:1 1 100% !important;width:100%;height:100%;margin-block:0;margin-inline:10px;min-width:0}.files-list__breadcrumbs[data-v-04abfffa] a{cursor:pointer !important}.files-list__breadcrumbs--with-progress[data-v-04abfffa]{flex-direction:column !important;align-items:flex-start !important}","",{version:3,sources:["webpack://./apps/files/src/components/BreadCrumbs.vue"],names:[],mappings:"AACA,0CAEC,wBAAA,CACA,UAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,WAAA,CAGC,6CACC,yBAAA,CAIF,yDACC,gCAAA,CACA,iCAAA",sourcesContent:["\n.files-list__breadcrumbs {\n\t// Take as much space as possible\n\tflex: 1 1 100% !important;\n\twidth: 100%;\n\theight: 100%;\n\tmargin-block: 0;\n\tmargin-inline: 10px;\n\tmin-width: 0;\n\n\t:deep() {\n\t\ta {\n\t\t\tcursor: pointer !important;\n\t\t}\n\t}\n\n\t&--with-progress {\n\t\tflex-direction: column !important;\n\t\talign-items: flex-start !important;\n\t}\n}\n"],sourceRoot:""}]);const o=r},63569:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list__drag-drop-notice[data-v-6efab70c]{display:flex;align-items:center;justify-content:center;width:100%;min-height:113px;margin:0;user-select:none;color:var(--color-text-maxcontrast);background-color:var(--color-main-background);border-color:#000}.files-list__drag-drop-notice h3[data-v-6efab70c]{margin-inline-start:16px;color:inherit}.files-list__drag-drop-notice-wrapper[data-v-6efab70c]{display:flex;align-items:center;justify-content:center;height:15vh;max-height:70%;padding:0 5vw;border:2px var(--color-border-dark) dashed;border-radius:var(--border-radius-large)}","",{version:3,sources:["webpack://./apps/files/src/components/DragAndDropNotice.vue"],names:[],mappings:"AACA,+CACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CAEA,gBAAA,CACA,QAAA,CACA,gBAAA,CACA,mCAAA,CACA,6CAAA,CACA,iBAAA,CAEA,kDACC,wBAAA,CACA,aAAA,CAGD,uDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,aAAA,CACA,0CAAA,CACA,wCAAA",sourcesContent:["\n.files-list__drag-drop-notice {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 100%;\n\t// Breadcrumbs height + row thead height\n\tmin-height: calc(58px + 55px);\n\tmargin: 0;\n\tuser-select: none;\n\tcolor: var(--color-text-maxcontrast);\n\tbackground-color: var(--color-main-background);\n\tborder-color: black;\n\n\th3 {\n\t\tmargin-inline-start: 16px;\n\t\tcolor: inherit;\n\t}\n\n\t&-wrapper {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\theight: 15vh;\n\t\tmax-height: 70%;\n\t\tpadding: 0 5vw;\n\t\tborder: 2px var(--color-border-dark) dashed;\n\t\tborder-radius: var(--border-radius-large);\n\t}\n}\n\n"],sourceRoot:""}]);const o=r},20768:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list-drag-image{position:absolute;top:-9999px;inset-inline-start:-9999px;display:flex;overflow:hidden;align-items:center;height:44px;padding:6px 12px;background:var(--color-main-background)}.files-list-drag-image__icon,.files-list-drag-image .files-list__row-icon{display:flex;overflow:hidden;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--border-radius)}.files-list-drag-image__icon{overflow:visible;margin-inline-end:12px}.files-list-drag-image__icon img{max-width:100%;max-height:100%}.files-list-drag-image__icon .material-design-icon{color:var(--color-text-maxcontrast)}.files-list-drag-image__icon .material-design-icon.folder-icon{color:var(--color-primary-element)}.files-list-drag-image__icon>span{display:flex}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon{margin-top:6px;margin-inline-start:-26px}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon+.files-list__row-icon{margin-top:12px}.files-list-drag-image__icon>span:not(:empty)+*{display:none}.files-list-drag-image__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}","",{version:3,sources:["webpack://./apps/files/src/components/DragAndDropPreview.vue"],names:[],mappings:"AAIA,uBACC,iBAAA,CACA,WAAA,CACA,0BAAA,CACA,YAAA,CACA,eAAA,CACA,kBAAA,CACA,WAAA,CACA,gBAAA,CACA,uCAAA,CAEA,0EAEC,YAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,kCAAA,CAGD,6BACC,gBAAA,CACA,sBAAA,CAEA,iCACC,cAAA,CACA,eAAA,CAGD,mDACC,mCAAA,CACA,+DACC,kCAAA,CAKF,kCACC,YAAA,CAGA,8EACC,cA9CU,CA+CV,yBAAA,CACA,oGACC,eAAA,CAKF,gDACC,YAAA,CAKH,6BACC,eAAA,CACA,kBAAA,CACA,sBAAA",sourcesContent:["\n$size: 32px;\n$stack-shift: 6px;\n\n.files-list-drag-image {\n\tposition: absolute;\n\ttop: -9999px;\n\tinset-inline-start: -9999px;\n\tdisplay: flex;\n\toverflow: hidden;\n\talign-items: center;\n\theight: 44px;\n\tpadding: 6px 12px;\n\tbackground: var(--color-main-background);\n\n\t&__icon,\n\t.files-list__row-icon {\n\t\tdisplay: flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tborder-radius: var(--border-radius);\n\t}\n\n\t&__icon {\n\t\toverflow: visible;\n\t\tmargin-inline-end: 12px;\n\n\t\timg {\n\t\t\tmax-width: 100%;\n\t\t\tmax-height: 100%;\n\t\t}\n\n\t\t.material-design-icon {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t&.folder-icon {\n\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t}\n\t\t}\n\n\t\t// Previews container\n\t\t> span {\n\t\t\tdisplay: flex;\n\n\t\t\t// Stack effect if more than one element\n\t\t\t.files-list__row-icon + .files-list__row-icon {\n\t\t\t\tmargin-top: $stack-shift;\n\t\t\t\tmargin-inline-start: $stack-shift - $size;\n\t\t\t\t& + .files-list__row-icon {\n\t\t\t\t\tmargin-top: $stack-shift * 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If we have manually clone the preview,\n\t\t\t// let's hide any fallback icons\n\t\t\t&:not(:empty) + * {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n"],sourceRoot:""}]);const o=r},4575:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".favorite-marker-icon[data-v-f2d0cf6e]{color:var(--color-favorite);min-width:unset !important;min-height:unset !important}.favorite-marker-icon[data-v-f2d0cf6e] svg{width:26px !important;height:26px !important;max-width:unset !important;max-height:unset !important}.favorite-marker-icon[data-v-f2d0cf6e] svg path{stroke:var(--color-main-background);stroke-width:8px;stroke-linejoin:round;paint-order:stroke}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FavoriteIcon.vue"],names:[],mappings:"AACA,uCACC,2BAAA,CAEA,0BAAA,CACG,2BAAA,CAGF,4CAEC,qBAAA,CACA,sBAAA,CAGA,0BAAA,CACA,2BAAA,CAGA,iDACC,mCAAA,CACA,gBAAA,CACA,qBAAA,CACA,kBAAA",sourcesContent:["\n.favorite-marker-icon {\n\tcolor: var(--color-favorite);\n\t// Override NcIconSvgWrapper defaults (clickable area)\n\tmin-width: unset !important;\n min-height: unset !important;\n\n\t:deep() {\n\t\tsvg {\n\t\t\t// We added a stroke for a11y so we must increase the size to include the stroke\n\t\t\twidth: 26px !important;\n\t\t\theight: 26px !important;\n\n\t\t\t// Override NcIconSvgWrapper defaults of 20px\n\t\t\tmax-width: unset !important;\n\t\t\tmax-height: unset !important;\n\n\t\t\t// Sow a border around the icon for better contrast\n\t\t\tpath {\n\t\t\t\tstroke: var(--color-main-background);\n\t\t\t\tstroke-width: 8px;\n\t\t\t\tstroke-linejoin: round;\n\t\t\t\tpaint-order: stroke;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=r},29788:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,"main.app-content[style*=mouse-pos-x] .v-popper__popper{transform:translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper[data-popper-placement=top]{transform:translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper .v-popper__arrow-container{display:none}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue"],names:[],mappings:"AAGA,uDACC,6EAAA,CAGA,kFAEC,iGAAA,CAGD,kFACC,YAAA",sourcesContent:['\n// Allow right click to define the position of the menu\n// only if defined\nmain.app-content[style*="mouse-pos-x"] .v-popper__popper {\n\ttransform: translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important;\n\n\t// If the menu is too close to the bottom, we move it up\n\t&[data-popper-placement="top"] {\n\t\t// 34px added to align with the top of the cursor\n\t\ttransform: translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important;\n\t}\n\t// Hide arrow if floating\n\t.v-popper__arrow-container {\n\t\tdisplay: none;\n\t}\n}\n'],sourceRoot:""}]);const o=r},40304:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,"[data-v-5ba570cc] .button-vue--icon-and-text .button-vue__text{color:var(--color-primary-element)}[data-v-5ba570cc] .button-vue--icon-and-text .button-vue__icon{color:var(--color-primary-element)}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue"],names:[],mappings:"AAEC,+DACC,kCAAA,CAED,+DACC,kCAAA",sourcesContent:["\n:deep(.button-vue--icon-and-text, .files-list__row-action-sharing-status) {\n\t.button-vue__text {\n\t\tcolor: var(--color-primary-element);\n\t}\n\t.button-vue__icon {\n\t\tcolor: var(--color-primary-element);\n\t}\n}\n"],sourceRoot:""}]);const o=r},29629:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,"button.files-list__row-name-link[data-v-c8581214]{background-color:unset;border:none;font-weight:normal}button.files-list__row-name-link[data-v-c8581214]:active{background-color:unset !important}","",{version:3,sources:["webpack://./apps/files/src/components/FileEntry/FileEntryName.vue"],names:[],mappings:"AACA,kDACC,sBAAA,CACA,WAAA,CACA,kBAAA,CAEA,yDAEC,iCAAA",sourcesContent:["\nbutton.files-list__row-name-link {\n\tbackground-color: unset;\n\tborder: none;\n\tfont-weight: normal;\n\n\t&:active {\n\t\t// No active styles - handled by the row entry\n\t\tbackground-color: unset !important;\n\t}\n}\n"],sourceRoot:""}]);const o=r},3085:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".file-list-filters[data-v-bd0c8440]{display:flex;flex-direction:column;gap:var(--default-grid-baseline);height:100%;width:100%}.file-list-filters__filter[data-v-bd0c8440]{display:flex;align-items:start;justify-content:start;gap:calc(var(--default-grid-baseline, 4px)*2)}.file-list-filters__filter>*[data-v-bd0c8440]{flex:0 1 fit-content}.file-list-filters__active[data-v-bd0c8440]{display:flex;flex-direction:row;gap:calc(var(--default-grid-baseline, 4px)*2)}","",{version:3,sources:["webpack://./apps/files/src/components/FileListFilters.vue"],names:[],mappings:"AACA,oCACC,YAAA,CACA,qBAAA,CACA,gCAAA,CACA,WAAA,CACA,UAAA,CAEA,4CACC,YAAA,CACA,iBAAA,CACA,qBAAA,CACA,6CAAA,CAEA,8CACC,oBAAA,CAIF,4CACC,YAAA,CACA,kBAAA,CACA,6CAAA",sourcesContent:["\n.file-list-filters {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--default-grid-baseline);\n\theight: 100%;\n\twidth: 100%;\n\n\t&__filter {\n\t\tdisplay: flex;\n\t\talign-items: start;\n\t\tjustify-content: start;\n\t\tgap: calc(var(--default-grid-baseline, 4px) * 2);\n\n\t\t> * {\n\t\t\tflex: 0 1 fit-content;\n\t\t}\n\t}\n\n\t&__active {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tgap: calc(var(--default-grid-baseline, 4px) * 2);\n\t}\n}\n"],sourceRoot:""}]);const o=r},23718:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,"tr[data-v-5103b354]{margin-bottom:var(--body-container-margin);border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}tr td[data-v-5103b354]{user-select:none;color:var(--color-text-maxcontrast) !important}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableFooter.vue"],names:[],mappings:"AAEA,oBACC,0CAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAEA,uBACC,gBAAA,CAEA,8CAAA",sourcesContent:["\n// Scoped row\ntr {\n\tmargin-bottom: var(--body-container-margin);\n\tborder-top: 1px solid var(--color-border);\n\t// Prevent hover effect on the whole row\n\tbackground-color: transparent !important;\n\tborder-bottom: none !important;\n\n\ttd {\n\t\tuser-select: none;\n\t\t// Make sure the cell colors don't apply to column headers\n\t\tcolor: var(--color-text-maxcontrast) !important;\n\t}\n}\n"],sourceRoot:""}]);const o=r},89937:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list__column[data-v-2790ede2]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-2790ede2]{cursor:pointer}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableHeader.vue"],names:[],mappings:"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA",sourcesContent:["\n.files-list__column {\n\tuser-select: none;\n\t// Make sure the cell colors don't apply to column headers\n\tcolor: var(--color-text-maxcontrast) !important;\n\n\t&--sortable {\n\t\tcursor: pointer;\n\t}\n}\n\n"],sourceRoot:""}]);const o=r},2681:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list__row-actions-batch[data-v-22469fbb]{flex:1 1 100% !important;max-width:100%}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableHeaderActions.vue"],names:[],mappings:"AACA,gDACC,wBAAA,CACA,cAAA",sourcesContent:["\n.files-list__row-actions-batch {\n\tflex: 1 1 100% !important;\n\tmax-width: 100%;\n}\n"],sourceRoot:""}]);const o=r},64800:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list__column-sort-button[data-v-6d7680f0]{margin:0 calc(var(--button-padding, var(--cell-margin))*-1);min-width:calc(100% - 3*var(--cell-margin)) !important}.files-list__column-sort-button-text[data-v-6d7680f0]{color:var(--color-text-maxcontrast);font-weight:normal}.files-list__column-sort-button-icon[data-v-6d7680f0]{color:var(--color-text-maxcontrast);opacity:0;transition:opacity var(--animation-quick);inset-inline-start:-10px}.files-list__column-sort-button--size .files-list__column-sort-button-icon[data-v-6d7680f0]{inset-inline-start:10px}.files-list__column-sort-button--active .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:hover .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:focus .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:active .files-list__column-sort-button-icon[data-v-6d7680f0]{opacity:1}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListTableHeaderButton.vue"],names:[],mappings:"AACA,iDAEC,2DAAA,CACA,sDAAA,CAEA,sDACC,mCAAA,CACA,kBAAA,CAGD,sDACC,mCAAA,CACA,SAAA,CACA,yCAAA,CACA,wBAAA,CAGD,4FACC,uBAAA,CAGD,mXAIC,SAAA",sourcesContent:["\n.files-list__column-sort-button {\n\t// Compensate for cells margin\n\tmargin: 0 calc(var(--button-padding, var(--cell-margin)) * -1);\n\tmin-width: calc(100% - 3 * var(--cell-margin))!important;\n\n\t&-text {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tfont-weight: normal;\n\t}\n\n\t&-icon {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\topacity: 0;\n\t\ttransition: opacity var(--animation-quick);\n\t\tinset-inline-start: -10px;\n\t}\n\n\t&--size &-icon {\n\t\tinset-inline-start: 10px;\n\t}\n\n\t&--active &-icon,\n\t&:hover &-icon,\n\t&:focus &-icon,\n\t&:active &-icon {\n\t\topacity: 1;\n\t}\n}\n"],sourceRoot:""}]);const o=r},42687:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".files-list[data-v-f2dba2ba]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: var(--default-clickable-area);--icon-preview-size: 32px;--fixed-block-start-position: var(--default-clickable-area);overflow:auto;height:100%;will-change:scroll-position}.files-list[data-v-f2dba2ba]:has(.file-list-filters__active){--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small))}.files-list[data-v-f2dba2ba] tbody{will-change:padding;contain:layout paint style;display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-f2dba2ba] tbody tr{contain:strict}.files-list[data-v-f2dba2ba] tbody tr:hover,.files-list[data-v-f2dba2ba] tbody tr:focus{background-color:var(--color-background-dark)}.files-list[data-v-f2dba2ba] .files-list__before{display:flex;flex-direction:column}.files-list[data-v-f2dba2ba] .files-list__selected{padding-inline-end:12px;white-space:nowrap}.files-list[data-v-f2dba2ba] .files-list__table{display:block}.files-list[data-v-f2dba2ba] .files-list__table.files-list__table--with-thead-overlay{margin-block-start:calc(-1*var(--row-height))}.files-list[data-v-f2dba2ba] .files-list__filters{position:sticky;top:0;background-color:var(--color-main-background);z-index:10;padding-inline:var(--row-height) var(--default-grid-baseline, 4px);height:var(--fixed-block-start-position);width:100%}.files-list[data-v-f2dba2ba] .files-list__thead-overlay{position:sticky;top:var(--fixed-block-start-position);margin-inline-start:var(--row-height);z-index:20;display:flex;align-items:center;background-color:var(--color-main-background);border-block-end:1px solid var(--color-border);height:var(--row-height)}.files-list[data-v-f2dba2ba] .files-list__thead,.files-list[data-v-f2dba2ba] .files-list__tfoot{display:flex;flex-direction:column;width:100%;background-color:var(--color-main-background)}.files-list[data-v-f2dba2ba] .files-list__thead{position:sticky;z-index:10;top:var(--fixed-block-start-position)}.files-list[data-v-f2dba2ba] tr{position:relative;display:flex;align-items:center;width:100%;border-block-end:1px solid var(--color-border);box-sizing:border-box;user-select:none;height:var(--row-height)}.files-list[data-v-f2dba2ba] td,.files-list[data-v-f2dba2ba] th{display:flex;align-items:center;flex:0 0 auto;justify-content:start;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-f2dba2ba] td span,.files-list[data-v-f2dba2ba] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-f2dba2ba] .files-list__row--failed{position:absolute;display:block;top:0;inset-inline:0;bottom:0;opacity:.1;z-index:-1;background:var(--color-error)}.files-list[data-v-f2dba2ba] .files-list__row-checkbox{justify-content:center}.files-list[data-v-f2dba2ba] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-f2dba2ba] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-f2dba2ba] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-f2dba2ba] .files-list__row:hover,.files-list[data-v-f2dba2ba] .files-list__row:focus,.files-list[data-v-f2dba2ba] .files-list__row:active,.files-list[data-v-f2dba2ba] .files-list__row--active,.files-list[data-v-f2dba2ba] .files-list__row--dragover{background-color:var(--color-background-hover);--color-text-maxcontrast: var(--color-main-text)}.files-list[data-v-f2dba2ba] .files-list__row:hover>*,.files-list[data-v-f2dba2ba] .files-list__row:focus>*,.files-list[data-v-f2dba2ba] .files-list__row:active>*,.files-list[data-v-f2dba2ba] .files-list__row--active>*,.files-list[data-v-f2dba2ba] .files-list__row--dragover>*{--color-border: var(--color-border-dark)}.files-list[data-v-f2dba2ba] .files-list__row:hover .favorite-marker-icon svg path,.files-list[data-v-f2dba2ba] .files-list__row:focus .favorite-marker-icon svg path,.files-list[data-v-f2dba2ba] .files-list__row:active .favorite-marker-icon svg path,.files-list[data-v-f2dba2ba] .files-list__row--active .favorite-marker-icon svg path,.files-list[data-v-f2dba2ba] .files-list__row--dragover .favorite-marker-icon svg path{stroke:var(--color-background-hover)}.files-list[data-v-f2dba2ba] .files-list__row--dragover *{pointer-events:none}.files-list[data-v-f2dba2ba] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-inline-end:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-f2dba2ba] .files-list__row-icon *{cursor:pointer}.files-list[data-v-f2dba2ba] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-f2dba2ba] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-f2dba2ba] .files-list__row-icon>span.folder-icon,.files-list[data-v-f2dba2ba] .files-list__row-icon>span.folder-open-icon{margin:-3px}.files-list[data-v-f2dba2ba] .files-list__row-icon>span.folder-icon svg,.files-list[data-v-f2dba2ba] .files-list__row-icon>span.folder-open-icon svg{width:calc(var(--icon-preview-size) + 6px);height:calc(var(--icon-preview-size) + 6px)}.files-list[data-v-f2dba2ba] .files-list__row-icon-preview-container{position:relative;overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius)}.files-list[data-v-f2dba2ba] .files-list__row-icon-blurhash{position:absolute;inset-block-start:0;inset-inline-start:0;height:100%;width:100%;object-fit:cover}.files-list[data-v-f2dba2ba] .files-list__row-icon-preview{object-fit:contain;object-position:center;height:100%;width:100%}.files-list[data-v-f2dba2ba] .files-list__row-icon-preview:not(.files-list__row-icon-preview--loaded){background:var(--color-loading-dark)}.files-list[data-v-f2dba2ba] .files-list__row-icon-favorite{position:absolute;top:0px;inset-inline-end:-10px}.files-list[data-v-f2dba2ba] .files-list__row-icon-overlay{position:absolute;max-height:calc(var(--icon-preview-size)*.5);max-width:calc(var(--icon-preview-size)*.5);color:var(--color-primary-element-text);margin-block-start:2px}.files-list[data-v-f2dba2ba] .files-list__row-icon-overlay--file{color:var(--color-main-text);background:var(--color-main-background);border-radius:100%}.files-list[data-v-f2dba2ba] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-f2dba2ba] .files-list__row-name button.files-list__row-name-link{display:flex;align-items:center;text-align:start;width:100%;height:100%;min-width:0;margin:0;padding:0}.files-list[data-v-f2dba2ba] .files-list__row-name button.files-list__row-name-link:focus-visible{outline:none !important}.files-list[data-v-f2dba2ba] .files-list__row-name button.files-list__row-name-link:focus .files-list__row-name-text{outline:var(--border-width-input-focused) solid var(--color-main-text) !important;border-radius:var(--border-radius-element)}.files-list[data-v-f2dba2ba] .files-list__row-name button.files-list__row-name-link:focus:not(:focus-visible) .files-list__row-name-text{outline:none !important}.files-list[data-v-f2dba2ba] .files-list__row-name .files-list__row-name-text{color:var(--color-main-text);padding:var(--default-grid-baseline) calc(2*var(--default-grid-baseline));padding-inline-start:-10px;display:inline-flex}.files-list[data-v-f2dba2ba] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast);overflow:visible}.files-list[data-v-f2dba2ba] .files-list__row-rename{width:100%;max-width:600px}.files-list[data-v-f2dba2ba] .files-list__row-rename input{width:100%;margin-inline-start:-8px;padding:2px 6px;border-width:2px}.files-list[data-v-f2dba2ba] .files-list__row-rename input:invalid{border-color:var(--color-error);color:red}.files-list[data-v-f2dba2ba] .files-list__row-actions{width:auto}.files-list[data-v-f2dba2ba] .files-list__row-actions~td,.files-list[data-v-f2dba2ba] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-f2dba2ba] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-f2dba2ba] .files-list__row-action--inline{margin-inline-end:7px}.files-list[data-v-f2dba2ba] .files-list__row-mtime,.files-list[data-v-f2dba2ba] .files-list__row-size{color:var(--color-text-maxcontrast)}.files-list[data-v-f2dba2ba] .files-list__row-size{width:calc(var(--row-height)*1.5);justify-content:flex-end}.files-list[data-v-f2dba2ba] .files-list__row-mtime{width:calc(var(--row-height)*2)}.files-list[data-v-f2dba2ba] .files-list__row-column-custom{width:calc(var(--row-height)*2)}@media screen and (max-width: 512px){.files-list[data-v-f2dba2ba] .files-list__filters{padding-inline:var(--default-grid-baseline, 4px)}}","",{version:3,sources:["webpack://./apps/files/src/components/FilesListVirtual.vue"],names:[],mappings:"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",sourcesContent:["\n.files-list {\n\t--row-height: 55px;\n\t--cell-margin: 14px;\n\n\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\n\t--checkbox-size: 24px;\n\t--clickable-area: var(--default-clickable-area);\n\t--icon-preview-size: 32px;\n\n\t--fixed-block-start-position: var(--default-clickable-area);\n\toverflow: auto;\n\theight: 100%;\n\twill-change: scroll-position;\n\n\t&:has(.file-list-filters__active) {\n\t\t--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small));\n\t}\n\n\t& :deep() {\n\t\t// Table head, body and footer\n\t\ttbody {\n\t\t\twill-change: padding;\n\t\t\tcontain: layout paint style;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\t// Necessary for virtual scrolling absolute\n\t\t\tposition: relative;\n\n\t\t\t/* Hover effect on tbody lines only */\n\t\t\ttr {\n\t\t\t\tcontain: strict;\n\t\t\t\t&:hover,\n\t\t\t\t&:focus {\n\t\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Before table and thead\n\t\t.files-list__before {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t}\n\n\t\t.files-list__selected {\n\t\t\tpadding-inline-end: 12px;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t.files-list__table {\n\t\t\tdisplay: block;\n\n\t\t\t&.files-list__table--with-thead-overlay {\n\t\t\t\t// Hide the table header below the overlay\n\t\t\t\tmargin-block-start: calc(-1 * var(--row-height));\n\t\t\t}\n\t\t}\n\n\t\t.files-list__filters {\n\t\t\t// Pinned on top when scrolling above table header\n\t\t\tposition: sticky;\n\t\t\ttop: 0;\n\t\t\t// ensure there is a background to hide the file list on scroll\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tz-index: 10;\n\t\t\t// fixed the size\n\t\t\tpadding-inline: var(--row-height) var(--default-grid-baseline, 4px);\n\t\t\theight: var(--fixed-block-start-position);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.files-list__thead-overlay {\n\t\t\t// Pinned on top when scrolling\n\t\t\tposition: sticky;\n\t\t\ttop: var(--fixed-block-start-position);\n\t\t\t// Save space for a row checkbox\n\t\t\tmargin-inline-start: var(--row-height);\n\t\t\t// More than .files-list__thead\n\t\t\tz-index: 20;\n\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\t// Reuse row styles\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-block-end: 1px solid var(--color-border);\n\t\t\theight: var(--row-height);\n\t\t}\n\n\t\t.files-list__thead,\n\t\t.files-list__tfoot {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\twidth: 100%;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t}\n\n\t\t// Table header\n\t\t.files-list__thead {\n\t\t\t// Pinned on top when scrolling\n\t\t\tposition: sticky;\n\t\t\tz-index: 10;\n\t\t\ttop: var(--fixed-block-start-position);\n\t\t}\n\n\t\ttr {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\twidth: 100%;\n\t\t\tborder-block-end: 1px solid var(--color-border);\n\t\t\tbox-sizing: border-box;\n\t\t\tuser-select: none;\n\t\t\theight: var(--row-height);\n\t\t}\n\n\t\ttd, th {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tflex: 0 0 auto;\n\t\t\tjustify-content: start;\n\t\t\twidth: var(--row-height);\n\t\t\theight: var(--row-height);\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tborder: none;\n\n\t\t\t// Columns should try to add any text\n\t\t\t// node wrapped in a span. That should help\n\t\t\t// with the ellipsis on overflow.\n\t\t\tspan {\n\t\t\t\toverflow: hidden;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row--failed {\n\t\t\tposition: absolute;\n\t\t\tdisplay: block;\n\t\t\ttop: 0;\n\t\t\tinset-inline: 0;\n\t\t\tbottom: 0;\n\t\t\topacity: .1;\n\t\t\tz-index: -1;\n\t\t\tbackground: var(--color-error);\n\t\t}\n\n\t\t.files-list__row-checkbox {\n\t\t\tjustify-content: center;\n\n\t\t\t.checkbox-radio-switch {\n\t\t\t\tdisplay: flex;\n\t\t\t\tjustify-content: center;\n\n\t\t\t\t--icon-size: var(--checkbox-size);\n\n\t\t\t\tlabel.checkbox-radio-switch__label {\n\t\t\t\t\twidth: var(--clickable-area);\n\t\t\t\t\theight: var(--clickable-area);\n\t\t\t\t\tmargin: 0;\n\t\t\t\t\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\n\t\t\t\t}\n\n\t\t\t\t.checkbox-radio-switch__icon {\n\t\t\t\t\tmargin: 0 !important;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row {\n\t\t\t&:hover, &:focus, &:active, &--active, &--dragover {\n\t\t\t\t// WCAG AA compliant\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\t// text-maxcontrast have been designed to pass WCAG AA over\n\t\t\t\t// a white background, we need to adjust then.\n\t\t\t\t--color-text-maxcontrast: var(--color-main-text);\n\t\t\t\t> * {\n\t\t\t\t\t--color-border: var(--color-border-dark);\n\t\t\t\t}\n\n\t\t\t\t// Hover state of the row should also change the favorite markers background\n\t\t\t\t.favorite-marker-icon svg path {\n\t\t\t\t\tstroke: var(--color-background-hover);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&--dragover * {\n\t\t\t\t// Prevent dropping on row children\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t}\n\n\t\t// Entry preview or mime icon\n\t\t.files-list__row-icon {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\toverflow: visible;\n\t\t\talign-items: center;\n\t\t\t// No shrinking or growing allowed\n\t\t\tflex: 0 0 var(--icon-preview-size);\n\t\t\tjustify-content: center;\n\t\t\twidth: var(--icon-preview-size);\n\t\t\theight: 100%;\n\t\t\t// Show same padding as the checkbox right padding for visual balance\n\t\t\tmargin-inline-end: var(--checkbox-padding);\n\t\t\tcolor: var(--color-primary-element);\n\n\t\t\t// Icon is also clickable\n\t\t\t* {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t& > span {\n\t\t\t\tjustify-content: flex-start;\n\n\t\t\t\t&:not(.files-list__row-icon-favorite) svg {\n\t\t\t\t\twidth: var(--icon-preview-size);\n\t\t\t\t\theight: var(--icon-preview-size);\n\t\t\t\t}\n\n\t\t\t\t// Slightly increase the size of the folder icon\n\t\t\t\t&.folder-icon,\n\t\t\t\t&.folder-open-icon {\n\t\t\t\t\tmargin: -3px;\n\t\t\t\t\tsvg {\n\t\t\t\t\t\twidth: calc(var(--icon-preview-size) + 6px);\n\t\t\t\t\t\theight: calc(var(--icon-preview-size) + 6px);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-preview-container {\n\t\t\t\tposition: relative; // Needed for the blurshash to be positioned correctly\n\t\t\t\toverflow: hidden;\n\t\t\t\twidth: var(--icon-preview-size);\n\t\t\t\theight: var(--icon-preview-size);\n\t\t\t\tborder-radius: var(--border-radius);\n\t\t\t}\n\n\t\t\t&-blurhash {\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-block-start: 0;\n\t\t\t\tinset-inline-start: 0;\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 100%;\n\t\t\t\tobject-fit: cover;\n\t\t\t}\n\n\t\t\t&-preview {\n\t\t\t\t// Center and contain the preview\n\t\t\t\tobject-fit: contain;\n\t\t\t\tobject-position: center;\n\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 100%;\n\n\t\t\t\t/* Preview not loaded animation effect */\n\t\t\t\t&:not(.files-list__row-icon-preview--loaded) {\n\t\t\t\t\tbackground: var(--color-loading-dark);\n\t\t\t\t\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&-favorite {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0px;\n\t\t\t\tinset-inline-end: -10px;\n\t\t\t}\n\n\t\t\t// File and folder overlay\n\t\t\t&-overlay {\n\t\t\t\tposition: absolute;\n\t\t\t\tmax-height: calc(var(--icon-preview-size) * 0.5);\n\t\t\t\tmax-width: calc(var(--icon-preview-size) * 0.5);\n\t\t\t\tcolor: var(--color-primary-element-text);\n\t\t\t\t// better alignment with the folder icon\n\t\t\t\tmargin-block-start: 2px;\n\n\t\t\t\t// Improve icon contrast with a background for files\n\t\t\t\t&--file {\n\t\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t\tbackground: var(--color-main-background);\n\t\t\t\t\tborder-radius: 100%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Entry link\n\t\t.files-list__row-name {\n\t\t\t// Prevent link from overflowing\n\t\t\toverflow: hidden;\n\t\t\t// Take as much space as possible\n\t\t\tflex: 1 1 auto;\n\n\t\t\tbutton.files-list__row-name-link {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\ttext-align: start;\n\t\t\t\t// Fill cell height and width\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\t// Necessary for flex grow to work\n\t\t\t\tmin-width: 0;\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding: 0;\n\n\t\t\t\t// Already added to the inner text, see rule below\n\t\t\t\t&:focus-visible {\n\t\t\t\t\toutline: none !important;\n\t\t\t\t}\n\n\t\t\t\t// Keyboard indicator a11y\n\t\t\t\t&:focus .files-list__row-name-text {\n\t\t\t\t\toutline: var(--border-width-input-focused) solid var(--color-main-text) !important;\n\t\t\t\t\tborder-radius: var(--border-radius-element);\n\t\t\t\t}\n\t\t\t\t&:focus:not(:focus-visible) .files-list__row-name-text {\n\t\t\t\t\toutline: none !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.files-list__row-name-text {\n\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t// Make some space for the outline\n\t\t\t\tpadding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline));\n\t\t\t\tpadding-inline-start: -10px;\n\t\t\t\t// Align two name and ext\n\t\t\t\tdisplay: inline-flex;\n\t\t\t}\n\n\t\t\t.files-list__row-name-ext {\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t\t// always show the extension\n\t\t\t\toverflow: visible;\n\t\t\t}\n\t\t}\n\n\t\t// Rename form\n\t\t.files-list__row-rename {\n\t\t\twidth: 100%;\n\t\t\tmax-width: 600px;\n\t\t\tinput {\n\t\t\t\twidth: 100%;\n\t\t\t\t// Align with text, 0 - padding - border\n\t\t\t\tmargin-inline-start: -8px;\n\t\t\t\tpadding: 2px 6px;\n\t\t\t\tborder-width: 2px;\n\n\t\t\t\t&:invalid {\n\t\t\t\t\t// Show red border on invalid input\n\t\t\t\t\tborder-color: var(--color-error);\n\t\t\t\t\tcolor: red;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-actions {\n\t\t\t// take as much space as necessary\n\t\t\twidth: auto;\n\n\t\t\t// Add margin to all cells after the actions\n\t\t\t& ~ td,\n\t\t\t& ~ th {\n\t\t\t\tmargin: 0 var(--cell-margin);\n\t\t\t}\n\n\t\t\tbutton {\n\t\t\t\t.button-vue__text {\n\t\t\t\t\t// Remove bold from default button styling\n\t\t\t\t\tfont-weight: normal;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.files-list__row-action--inline {\n\t\t\tmargin-inline-end: 7px;\n\t\t}\n\n\t\t.files-list__row-mtime,\n\t\t.files-list__row-size {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t\t.files-list__row-size {\n\t\t\twidth: calc(var(--row-height) * 1.5);\n\t\t\t// Right align content/text\n\t\t\tjustify-content: flex-end;\n\t\t}\n\n\t\t.files-list__row-mtime {\n\t\t\twidth: calc(var(--row-height) * 2);\n\t\t}\n\n\t\t.files-list__row-column-custom {\n\t\t\twidth: calc(var(--row-height) * 2);\n\t\t}\n\t}\n}\n\n@media screen and (max-width: 512px) {\n\t.files-list :deep(.files-list__filters) {\n\t\t// Reduce padding on mobile\n\t\tpadding-inline: var(--default-grid-baseline, 4px);\n\t}\n}\n\n"],sourceRoot:""}]);const o=r},64879:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,'.files-list--grid tbody.files-list__tbody{--item-padding: 16px;--icon-preview-size: 166px;--name-height: 32px;--mtime-height: 16px;--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);--checkbox-padding: 0px;display:grid;grid-template-columns:repeat(auto-fill, var(--row-width));align-content:center;align-items:center;justify-content:space-around;justify-items:center}.files-list--grid tbody.files-list__tbody tr{display:flex;flex-direction:column;width:var(--row-width);height:var(--row-height);border:none;border-radius:var(--border-radius-large);padding:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox{position:absolute;z-index:9;top:calc(var(--item-padding)/2);inset-inline-start:calc(var(--item-padding)/2);overflow:hidden;--checkbox-container-size: 44px;width:var(--checkbox-container-size);height:var(--checkbox-container-size)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox .checkbox-radio-switch__content::after{content:"";width:16px;height:16px;position:absolute;inset-inline-start:50%;margin-inline-start:-8px;z-index:-1;background:var(--color-main-background)}.files-list--grid tbody.files-list__tbody .files-list__row-icon-favorite{position:absolute;top:0;inset-inline-end:0;display:flex;align-items:center;justify-content:center;width:var(--clickable-area);height:var(--clickable-area)}.files-list--grid tbody.files-list__tbody .files-list__row-name{display:flex;flex-direction:column;width:var(--icon-preview-size);height:calc(var(--icon-preview-size) + var(--name-height));overflow:visible}.files-list--grid tbody.files-list__tbody .files-list__row-name span.files-list__row-icon{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list--grid tbody.files-list__tbody .files-list__row-name .files-list__row-name-text{margin:0;margin-inline-start:-4px;padding:0px 4px}.files-list--grid tbody.files-list__tbody .files-list__row-mtime{width:var(--icon-preview-size);height:var(--mtime-height);font-size:calc(var(--default-font-size) - 4px)}.files-list--grid tbody.files-list__tbody .files-list__row-actions{position:absolute;inset-inline-end:calc(var(--clickable-area)/4);inset-block-end:calc(var(--mtime-height)/2);width:var(--clickable-area);height:var(--clickable-area)}',"",{version:3,sources:["webpack://./apps/files/src/components/FilesListVirtual.vue"],names:[],mappings:"AAEA,0CACC,oBAAA,CACA,0BAAA,CACA,mBAAA,CACA,oBAAA,CACA,qEAAA,CACA,iHAAA,CACA,uBAAA,CACA,YAAA,CACA,yDAAA,CAEA,oBAAA,CACA,kBAAA,CACA,4BAAA,CACA,oBAAA,CAEA,6CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,wBAAA,CACA,WAAA,CACA,wCAAA,CACA,2BAAA,CAID,oEACC,iBAAA,CACA,SAAA,CACA,+BAAA,CACA,8CAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,qCAAA,CAGA,2GACC,UAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,sBAAA,CACA,wBAAA,CACA,UAAA,CACA,uCAAA,CAKF,yEACC,iBAAA,CACA,KAAA,CACA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,2BAAA,CACA,4BAAA,CAGD,gEACC,YAAA,CACA,qBAAA,CACA,8BAAA,CACA,0DAAA,CAEA,gBAAA,CAEA,0FACC,8BAAA,CACA,+BAAA,CAGD,2FACC,QAAA,CAEA,wBAAA,CACA,eAAA,CAIF,iEACC,8BAAA,CACA,0BAAA,CACA,8CAAA,CAGD,mEACC,iBAAA,CACA,8CAAA,CACA,2CAAA,CACA,2BAAA,CACA,4BAAA",sourcesContent:["\n// Grid mode\n.files-list--grid tbody.files-list__tbody {\n\t--item-padding: 16px;\n\t--icon-preview-size: 166px;\n\t--name-height: 32px;\n\t--mtime-height: 16px;\n\t--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);\n\t--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);\n\t--checkbox-padding: 0px;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fill, var(--row-width));\n\n\talign-content: center;\n\talign-items: center;\n\tjustify-content: space-around;\n\tjustify-items: center;\n\n\ttr {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: var(--row-width);\n\t\theight: var(--row-height);\n\t\tborder: none;\n\t\tborder-radius: var(--border-radius-large);\n\t\tpadding: var(--item-padding);\n\t}\n\n\t// Checkbox in the top left\n\t.files-list__row-checkbox {\n\t\tposition: absolute;\n\t\tz-index: 9;\n\t\ttop: calc(var(--item-padding) / 2);\n\t\tinset-inline-start: calc(var(--item-padding) / 2);\n\t\toverflow: hidden;\n\t\t--checkbox-container-size: 44px;\n\t\twidth: var(--checkbox-container-size);\n\t\theight: var(--checkbox-container-size);\n\n\t\t// Add a background to the checkbox so we do not see the image through it.\n\t\t.checkbox-radio-switch__content::after {\n\t\t\tcontent: '';\n\t\t\twidth: 16px;\n\t\t\theight: 16px;\n\t\t\tposition: absolute;\n\t\t\tinset-inline-start: 50%;\n\t\t\tmargin-inline-start: -8px;\n\t\t\tz-index: -1;\n\t\t\tbackground: var(--color-main-background);\n\t\t}\n\t}\n\n\t// Star icon in the top right\n\t.files-list__row-icon-favorite {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tinset-inline-end: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--clickable-area);\n\t\theight: var(--clickable-area);\n\t}\n\n\t.files-list__row-name {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: var(--icon-preview-size);\n\t\theight: calc(var(--icon-preview-size) + var(--name-height));\n\t\t// Ensure that the name outline is visible.\n\t\toverflow: visible;\n\n\t\tspan.files-list__row-icon {\n\t\t\twidth: var(--icon-preview-size);\n\t\t\theight: var(--icon-preview-size);\n\t\t}\n\n\t\t.files-list__row-name-text {\n\t\t\tmargin: 0;\n\t\t\t// Ensure that the outline is not too close to the text.\n\t\t\tmargin-inline-start: -4px;\n\t\t\tpadding: 0px 4px;\n\t\t}\n\t}\n\n\t.files-list__row-mtime {\n\t\twidth: var(--icon-preview-size);\n\t\theight: var(--mtime-height);\n\t\tfont-size: calc(var(--default-font-size) - 4px);\n\t}\n\n\t.files-list__row-actions {\n\t\tposition: absolute;\n\t\tinset-inline-end: calc(var(--clickable-area) / 4);\n\t\tinset-block-end: calc(var(--mtime-height) / 2);\n\t\twidth: var(--clickable-area);\n\t\theight: var(--clickable-area);\n\t}\n}\n"],sourceRoot:""}]);const o=r},84877:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".app-navigation-entry__settings-quota[data-v-6ed9379e]{--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2)}.app-navigation-entry__settings-quota--not-unlimited[data-v-6ed9379e] .app-navigation-entry__name{line-height:1;margin-top:var(--app-navigation-quota-margin)}.app-navigation-entry__settings-quota progress[data-v-6ed9379e]{position:absolute;bottom:var(--app-navigation-quota-margin);margin-inline-start:var(--default-clickable-area);width:calc(100% - 1.5*var(--default-clickable-area))}","",{version:3,sources:["webpack://./apps/files/src/components/NavigationQuota.vue"],names:[],mappings:"AAEA,uDAEC,+EAAA,CAEA,kGACC,aAAA,CACA,6CAAA,CAGD,gEACC,iBAAA,CACA,yCAAA,CACA,iDAAA,CACA,oDAAA",sourcesContent:["\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\n\n\t&--not-unlimited :deep(.app-navigation-entry__name) {\n\t\tline-height: 1;\n\t\tmargin-top: var(--app-navigation-quota-margin);\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: var(--app-navigation-quota-margin);\n\t\tmargin-inline-start: var(--default-clickable-area);\n\t\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\n\t}\n}\n"],sourceRoot:""}]);const o=r},78636:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".toast-loading-icon{margin-inline-start:-4px;min-width:26px}.app-content[data-v-693703cc]{display:flex;overflow:hidden;flex-direction:column;max-height:100%;position:relative !important}.files-list__header[data-v-693703cc]{display:flex;align-items:center;flex:0 0;max-width:100%;margin-block:var(--app-navigation-padding, 4px);margin-inline:calc(var(--default-clickable-area, 44px) + 2*var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px)}.files-list__header--public[data-v-693703cc]{margin-inline:0 var(--app-navigation-padding, 4px)}.files-list__header>*[data-v-693703cc]{flex:0 0}.files-list__header-share-button[data-v-693703cc]{color:var(--color-text-maxcontrast) !important}.files-list__header-share-button--shared[data-v-693703cc]{color:var(--color-main-text) !important}.files-list__header-actions[data-v-693703cc]{min-width:fit-content !important;margin-inline:calc(var(--default-grid-baseline)*2)}.files-list__empty-view-wrapper[data-v-693703cc]{display:flex;height:100%}.files-list__refresh-icon[data-v-693703cc]{flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);height:var(--default-clickable-area)}.files-list__loading-icon[data-v-693703cc]{margin:auto}","",{version:3,sources:["webpack://./apps/files/src/views/FilesList.vue"],names:[],mappings:"AACA,oBAEC,wBAAA,CAEA,cAAA,CAGD,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CACA,4BAAA,CAIA,qCACC,YAAA,CACA,kBAAA,CAEA,QAAA,CACA,cAAA,CAEA,+CAAA,CACA,iIAAA,CAEA,6CAEC,kDAAA,CAGD,uCAGC,QAAA,CAGD,kDACC,8CAAA,CAEA,0DACC,uCAAA,CAIF,6CACC,gCAAA,CACA,kDAAA,CAIF,iDACC,YAAA,CACA,WAAA,CAGD,2CACC,sCAAA,CACA,mCAAA,CACA,oCAAA,CAGD,2CACC,WAAA",sourcesContent:["\n:global(.toast-loading-icon) {\n\t// Reduce start margin (it was made for text but this is an icon)\n\tmargin-inline-start: -4px;\n\t// 16px icon + 5px on both sides\n\tmin-width: 26px;\n}\n\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n\tposition: relative !important;\n}\n\n.files-list {\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t// Do not grow or shrink (vertically)\n\t\tflex: 0 0;\n\t\tmax-width: 100%;\n\t\t// Align with the navigation toggle icon\n\t\tmargin-block: var(--app-navigation-padding, 4px);\n\t\tmargin-inline: calc(var(--default-clickable-area, 44px) + 2 * var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px);\n\n\t\t&--public {\n\t\t\t// There is no navigation toggle on public shares\n\t\t\tmargin-inline: 0 var(--app-navigation-padding, 4px);\n\t\t}\n\n\t\t>* {\n\t\t\t// Do not grow or shrink (horizontally)\n\t\t\t// Only the breadcrumbs shrinks\n\t\t\tflex: 0 0;\n\t\t}\n\n\t\t&-share-button {\n\t\t\tcolor: var(--color-text-maxcontrast) !important;\n\n\t\t\t&--shared {\n\t\t\t\tcolor: var(--color-main-text) !important;\n\t\t\t}\n\t\t}\n\n\t\t&-actions {\n\t\t\tmin-width: fit-content !important;\n\t\t\tmargin-inline: calc(var(--default-grid-baseline) * 2);\n\t\t}\n\t}\n\n\t&__empty-view-wrapper {\n\t\tdisplay: flex;\n\t\theight: 100%;\n\t}\n\n\t&__refresh-icon {\n\t\tflex: 0 0 var(--default-clickable-area);\n\t\twidth: var(--default-clickable-area);\n\t\theight: var(--default-clickable-area);\n\t}\n\n\t&__loading-icon {\n\t\tmargin: auto;\n\t}\n}\n"],sourceRoot:""}]);const o=r},13398:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".app-navigation[data-v-c6191948] .app-navigation-entry.active .button-vue.icon-collapse:not(:hover){color:var(--color-primary-element-text)}.app-navigation>ul.app-navigation__list[data-v-c6191948]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-c6191948]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}.files-navigation__list[data-v-c6191948]{height:100%}.files-navigation[data-v-c6191948] .app-navigation__content > ul.app-navigation__list{will-change:scroll-position}","",{version:3,sources:["webpack://./apps/files/src/views/Navigation.vue"],names:[],mappings:"AAEC,oGACC,uCAAA,CAGD,yDAEC,gDAAA,CAIF,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA,CAIA,yCACC,WAAA,CAGD,sFACC,2BAAA",sourcesContent:["\n.app-navigation {\n\t:deep(.app-navigation-entry.active .button-vue.icon-collapse:not(:hover)) {\n\t\tcolor: var(--color-primary-element-text);\n\t}\n\n\t> ul.app-navigation__list {\n\t\t// Use flex gap value for more elegant spacing\n\t\tpadding-bottom: var(--default-grid-baseline, 4px);\n\t}\n}\n\n.app-navigation-entry__settings {\n\theight: auto !important;\n\toverflow: hidden !important;\n\tpadding-top: 0 !important;\n\t// Prevent shrinking or growing\n\tflex: 0 0 auto;\n}\n\n.files-navigation {\n\t&__list {\n\t\theight: 100%; // Fill all available space for sticky views\n\t}\n\n\t:deep(.app-navigation__content > ul.app-navigation__list) {\n\t\twill-change: scroll-position;\n\t}\n}\n"],sourceRoot:""}]);const o=r},49790:(e,t,s)=>{s.d(t,{A:()=>o});var n=s(71354),i=s.n(n),a=s(76314),r=s.n(a)()(i());r.push([e.id,".setting-link[data-v-6fc727d7]:hover{text-decoration:underline}.shortcut-key[data-v-6fc727d7]{width:160px;white-space:normal}.shortcut-key span[data-v-6fc727d7]{white-space:nowrap}","",{version:3,sources:["webpack://./apps/files/src/views/Settings.vue"],names:[],mappings:"AACA,qCACC,yBAAA,CAGD,+BACC,WAAA,CAEA,kBAAA,CACA,oCAEC,kBAAA",sourcesContent:["\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n\n.shortcut-key {\n\twidth: 160px;\n\t// some shortcuts are too long to fit in one line\n\twhite-space: normal;\n\tspan {\n\t\t// force portion of a shortcut on a new line for nicer display\n\t\twhite-space: nowrap;\n\t}\n}\n"],sourceRoot:""}]);const o=r},35810:(e,t,s)=>{s.d(t,{Al:()=>n.r,By:()=>p,Dw:()=>je,E6:()=>A,H4:()=>n.c,KT:()=>w,L3:()=>Oe,PY:()=>n.b,Q$:()=>n.e,R3:()=>n.n,Ss:()=>de,VL:()=>n.l,ZH:()=>n.q,a7:()=>d,aX:()=>n.P,bP:()=>n.N,bh:()=>T,cZ:()=>Re,di:()=>v,g5:()=>f,hY:()=>u,lJ:()=>n.d,m1:()=>Ve,m9:()=>m,nF:()=>h,pt:()=>n.F,qK:()=>g,sR:()=>Me,ur:()=>k,v7:()=>y,vd:()=>n.s,zI:()=>n.t});var n=s(68251),i=s(87485),a=s(43627),r=s(53334),o=s(380),l=s(65606),d=(e=>(e[e.UploadFromDevice=0]="UploadFromDevice",e[e.CreateNew=1]="CreateNew",e[e.Other=2]="Other",e))(d||{});class c{_entries=[];registerEntry(e){this.validateEntry(e),e.category=e.category??1,this._entries.push(e)}unregisterEntry(e){const t="string"==typeof e?this.getEntryIndex(e):this.getEntryIndex(e.id);-1!==t?this._entries.splice(t,1):n.o.warn("Entry not found, nothing removed",{entry:e,entries:this.getEntries()})}getEntries(e){return e?this._entries.filter((t=>"function"!=typeof t.enabled||t.enabled(e))):this._entries}getEntryIndex(e){return this._entries.findIndex((t=>t.id===e))}validateEntry(e){if(!e.id||!e.displayName||!e.iconSvgInline&&!e.iconClass||!e.handler)throw new Error("Invalid entry");if("string"!=typeof e.id||"string"!=typeof e.displayName)throw new Error("Invalid id or displayName property");if(e.iconClass&&"string"!=typeof e.iconClass||e.iconSvgInline&&"string"!=typeof e.iconSvgInline)throw new Error("Invalid icon provided");if(void 0!==e.enabled&&"function"!=typeof e.enabled)throw new Error("Invalid enabled property");if("function"!=typeof e.handler)throw new Error("Invalid handler property");if("order"in e&&"number"!=typeof e.order)throw new Error("Invalid order property");if(-1!==this.getEntryIndex(e.id))throw new Error("Duplicate entry")}}var m=(e=>(e.DEFAULT="default",e.HIDDEN="hidden",e))(m||{});class u{_action;constructor(e){this.validateAction(e),this._action=e}get id(){return this._action.id}get displayName(){return this._action.displayName}get title(){return this._action.title}get iconSvgInline(){return this._action.iconSvgInline}get enabled(){return this._action.enabled}get exec(){return this._action.exec}get execBatch(){return this._action.execBatch}get order(){return this._action.order}get parent(){return this._action.parent}get default(){return this._action.default}get destructive(){return this._action.destructive}get inline(){return this._action.inline}get renderInline(){return this._action.renderInline}validateAction(e){if(!e.id||"string"!=typeof e.id)throw new Error("Invalid id");if(!e.displayName||"function"!=typeof e.displayName)throw new Error("Invalid displayName function");if("title"in e&&"function"!=typeof e.title)throw new Error("Invalid title function");if(!e.iconSvgInline||"function"!=typeof e.iconSvgInline)throw new Error("Invalid iconSvgInline function");if(!e.exec||"function"!=typeof e.exec)throw new Error("Invalid exec function");if("enabled"in e&&"function"!=typeof e.enabled)throw new Error("Invalid enabled function");if("execBatch"in e&&"function"!=typeof e.execBatch)throw new Error("Invalid execBatch function");if("order"in e&&"number"!=typeof e.order)throw new Error("Invalid order");if(void 0!==e.destructive&&"boolean"!=typeof e.destructive)throw new Error("Invalid destructive flag");if("parent"in e&&"string"!=typeof e.parent)throw new Error("Invalid parent");if(e.default&&!Object.values(m).includes(e.default))throw new Error("Invalid default");if("inline"in e&&"function"!=typeof e.inline)throw new Error("Invalid inline function");if("renderInline"in e&&"function"!=typeof e.renderInline)throw new Error("Invalid renderInline function")}}const g=function(){return void 0===window._nc_fileactions&&(window._nc_fileactions=[],n.o.debug("FileActions initialized")),window._nc_fileactions},f=()=>(void 0===window._nc_filelistactions&&(window._nc_filelistactions=[]),window._nc_filelistactions),p=function(){return void 0===window._nc_filelistheader&&(window._nc_filelistheader=[],n.o.debug("FileListHeaders initialized")),window._nc_filelistheader};var h=(e=>(e.ReservedName="reserved name",e.Character="character",e.Extension="extension",e))(h||{});class v extends Error{constructor(e){super(`Invalid ${e.reason} '${e.segment}' in filename '${e.filename}'`,{cause:e})}get filename(){return this.cause.filename}get reason(){return this.cause.reason}get segment(){return this.cause.segment}}function w(e){const t=(0,i.F)().files,s=t.forbidden_filename_characters??window._oc_config?.forbidden_filenames_characters??["/","\\"];for(const t of s)if(e.includes(t))throw new v({segment:t,reason:"character",filename:e});if(e=e.toLocaleLowerCase(),(t.forbidden_filenames??[".htaccess"]).includes(e))throw new v({filename:e,segment:e,reason:"reserved name"});const n=e.indexOf(".",1),a=e.substring(0,-1===n?void 0:n);if((t.forbidden_filename_basenames??[]).includes(a))throw new v({filename:e,segment:a,reason:"reserved name"});const r=t.forbidden_filename_extensions??[".part",".filepart"];for(const t of r)if(e.length>t.length&&e.endsWith(t))throw new v({segment:t,reason:"extension",filename:e})}function A(e,t,s){const n={suffix:e=>`(${e})`,ignoreFileExtension:!1,...s};let i=e,r=1;for(;t.includes(i);){const t=n.ignoreFileExtension?"":(0,a.extname)(e);i=`${(0,a.basename)(e,t)} ${n.suffix(r++)}${t}`}return i}const b=["B","KB","MB","GB","TB","PB"],C=["B","KiB","MiB","GiB","TiB","PiB"];function y(e,t=!1,s=!1,n=!1){s=s&&!n,"string"==typeof e&&(e=Number(e));let i=e>0?Math.floor(Math.log(e)/Math.log(n?1e3:1024)):0;i=Math.min((s?C.length:b.length)-1,i);const a=s?C[i]:b[i];let o=(e/Math.pow(n?1e3:1024,i)).toFixed(1);return!0===t&&0===i?("0.0"!==o?"< 1 ":"0 ")+(s?C[1]:b[1]):(o=i<2?parseFloat(o).toFixed(0):parseFloat(o).toLocaleString((0,r.lO)()),o+" "+a)}function x(e){return e instanceof Date?e.toISOString():String(e)}function k(e,t={}){const s={sortingMode:"basename",sortingOrder:"asc",...t};return function(e,t,s){s=s??[];const n=(t=t??[e=>e]).map(((e,t)=>"asc"===(s[t]??"asc")?1:-1)),i=Intl.Collator([(0,r.Z0)(),(0,r.lO)()],{numeric:!0,usage:"sort"});return[...e].sort(((e,s)=>{for(const[a,r]of t.entries()){const t=i.compare(x(r(e)),x(r(s)));if(0!==t)return t*n[a]}return 0}))}(e,[...s.sortFavoritesFirst?[e=>1!==e.attributes?.favorite]:[],...s.sortFoldersFirst?[e=>"folder"!==e.type]:[],..."basename"!==s.sortingMode?[e=>e[s.sortingMode]]:[],e=>{return(t=e.displayname||e.attributes?.displayname||e.basename).lastIndexOf(".")>0?t.slice(0,t.lastIndexOf(".")):t;var t},e=>e.basename],[...s.sortFavoritesFirst?["asc"]:[],...s.sortFoldersFirst?["asc"]:[],..."mtime"===s.sortingMode?["asc"===s.sortingOrder?"desc":"asc"]:[],..."mtime"!==s.sortingMode&&"basename"!==s.sortingMode?[s.sortingOrder]:[],s.sortingOrder,s.sortingOrder])}class _ extends o.m{_views=[];_currentView=null;register(e){if(this._views.find((t=>t.id===e.id)))throw new Error(`View id ${e.id} is already registered`);this._views.push(e),this.dispatchTypedEvent("update",new CustomEvent("update"))}remove(e){const t=this._views.findIndex((t=>t.id===e));-1!==t&&(this._views.splice(t,1),this.dispatchTypedEvent("update",new CustomEvent("update")))}setActive(e){this._currentView=e;const t=new CustomEvent("updateActive",{detail:e});this.dispatchTypedEvent("updateActive",t)}get active(){return this._currentView}get views(){return this._views}}const T=function(){return void 0===window._nc_navigation&&(window._nc_navigation=new _,n.o.debug("Navigation service initialized")),window._nc_navigation};class S{_column;constructor(e){L(e),this._column=e}get id(){return this._column.id}get title(){return this._column.title}get render(){return this._column.render}get sort(){return this._column.sort}get summary(){return this._column.summary}}const L=function(e){if(!e.id||"string"!=typeof e.id)throw new Error("A column id is required");if(!e.title||"string"!=typeof e.title)throw new Error("A column title is required");if(!e.render||"function"!=typeof e.render)throw new Error("A render function is required");if(e.sort&&"function"!=typeof e.sort)throw new Error("Column sortFunction must be a function");if(e.summary&&"function"!=typeof e.summary)throw new Error("Column summary must be a function");return!0};function N(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var F,E,U={},I={};function P(){return F||(F=1,function(e){const t=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",s="["+t+"]["+t+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",n=new RegExp("^"+s+"$");e.isExist=function(e){return void 0!==e},e.isEmptyObject=function(e){return 0===Object.keys(e).length},e.merge=function(e,t,s){if(t){const n=Object.keys(t),i=n.length;for(let a=0;a<i;a++)e[n[a]]="strict"===s?[t[n[a]]]:t[n[a]]}},e.getValue=function(t){return e.isExist(t)?t:""},e.isName=function(e){return!(null==n.exec(e))},e.getAllMatches=function(e,t){const s=[];let n=t.exec(e);for(;n;){const i=[];i.startIndex=t.lastIndex-n[0].length;const a=n.length;for(let e=0;e<a;e++)i.push(n[e]);s.push(i),n=t.exec(e)}return s},e.nameRegexp=s}(I)),I}function z(){if(E)return U;E=1;const e=P(),t={allowBooleanAttributes:!1,unpairedTags:[]};function s(e){return" "===e||"\t"===e||"\n"===e||"\r"===e}function n(e,t){const s=t;for(;t<e.length;t++)if("?"!=e[t]&&" "!=e[t]);else{const n=e.substr(s,t-s);if(t>5&&"xml"===n)return m("InvalidXml","XML declaration allowed only at the start of the document.",g(e,t));if("?"==e[t]&&">"==e[t+1]){t++;break}}return t}function i(e,t){if(e.length>t+5&&"-"===e[t+1]&&"-"===e[t+2]){for(t+=3;t<e.length;t++)if("-"===e[t]&&"-"===e[t+1]&&">"===e[t+2]){t+=2;break}}else if(e.length>t+8&&"D"===e[t+1]&&"O"===e[t+2]&&"C"===e[t+3]&&"T"===e[t+4]&&"Y"===e[t+5]&&"P"===e[t+6]&&"E"===e[t+7]){let s=1;for(t+=8;t<e.length;t++)if("<"===e[t])s++;else if(">"===e[t]&&(s--,0===s))break}else if(e.length>t+9&&"["===e[t+1]&&"C"===e[t+2]&&"D"===e[t+3]&&"A"===e[t+4]&&"T"===e[t+5]&&"A"===e[t+6]&&"["===e[t+7])for(t+=8;t<e.length;t++)if("]"===e[t]&&"]"===e[t+1]&&">"===e[t+2]){t+=2;break}return t}U.validate=function(a,r){r=Object.assign({},t,r);const l=[];let u=!1,f=!1;"\ufeff"===a[0]&&(a=a.substr(1));for(let t=0;t<a.length;t++)if("<"===a[t]&&"?"===a[t+1]){if(t+=2,t=n(a,t),t.err)return t}else{if("<"!==a[t]){if(s(a[t]))continue;return m("InvalidChar","char '"+a[t]+"' is not expected.",g(a,t))}{let h=t;if(t++,"!"===a[t]){t=i(a,t);continue}{let v=!1;"/"===a[t]&&(v=!0,t++);let w="";for(;t<a.length&&">"!==a[t]&&" "!==a[t]&&"\t"!==a[t]&&"\n"!==a[t]&&"\r"!==a[t];t++)w+=a[t];if(w=w.trim(),"/"===w[w.length-1]&&(w=w.substring(0,w.length-1),t--),p=w,!e.isName(p)){let e;return e=0===w.trim().length?"Invalid space after '<'.":"Tag '"+w+"' is an invalid name.",m("InvalidTag",e,g(a,t))}const A=o(a,t);if(!1===A)return m("InvalidAttr","Attributes for '"+w+"' have open quote.",g(a,t));let b=A.value;if(t=A.index,"/"===b[b.length-1]){const e=t-b.length;b=b.substring(0,b.length-1);const s=d(b,r);if(!0!==s)return m(s.err.code,s.err.msg,g(a,e+s.err.line));u=!0}else if(v){if(!A.tagClosed)return m("InvalidTag","Closing tag '"+w+"' doesn't have proper closing.",g(a,t));if(b.trim().length>0)return m("InvalidTag","Closing tag '"+w+"' can't have attributes or invalid starting.",g(a,h));if(0===l.length)return m("InvalidTag","Closing tag '"+w+"' has not been opened.",g(a,h));{const e=l.pop();if(w!==e.tagName){let t=g(a,e.tagStartPos);return m("InvalidTag","Expected closing tag '"+e.tagName+"' (opened in line "+t.line+", col "+t.col+") instead of closing tag '"+w+"'.",g(a,h))}0==l.length&&(f=!0)}}else{const e=d(b,r);if(!0!==e)return m(e.err.code,e.err.msg,g(a,t-b.length+e.err.line));if(!0===f)return m("InvalidXml","Multiple possible root nodes found.",g(a,t));-1!==r.unpairedTags.indexOf(w)||l.push({tagName:w,tagStartPos:h}),u=!0}for(t++;t<a.length;t++)if("<"===a[t]){if("!"===a[t+1]){t++,t=i(a,t);continue}if("?"!==a[t+1])break;if(t=n(a,++t),t.err)return t}else if("&"===a[t]){const e=c(a,t);if(-1==e)return m("InvalidChar","char '&' is not expected.",g(a,t));t=e}else if(!0===f&&!s(a[t]))return m("InvalidXml","Extra text at the end",g(a,t));"<"===a[t]&&t--}}}var p;return u?1==l.length?m("InvalidTag","Unclosed tag '"+l[0].tagName+"'.",g(a,l[0].tagStartPos)):!(l.length>0)||m("InvalidXml","Invalid '"+JSON.stringify(l.map((e=>e.tagName)),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):m("InvalidXml","Start tag expected.",1)};const a='"',r="'";function o(e,t){let s="",n="",i=!1;for(;t<e.length;t++){if(e[t]===a||e[t]===r)""===n?n=e[t]:n!==e[t]||(n="");else if(">"===e[t]&&""===n){i=!0;break}s+=e[t]}return""===n&&{value:s,index:t,tagClosed:i}}const l=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function d(t,s){const n=e.getAllMatches(t,l),i={};for(let e=0;e<n.length;e++){if(0===n[e][1].length)return m("InvalidAttr","Attribute '"+n[e][2]+"' has no space in starting.",f(n[e]));if(void 0!==n[e][3]&&void 0===n[e][4])return m("InvalidAttr","Attribute '"+n[e][2]+"' is without value.",f(n[e]));if(void 0===n[e][3]&&!s.allowBooleanAttributes)return m("InvalidAttr","boolean attribute '"+n[e][2]+"' is not allowed.",f(n[e]));const t=n[e][2];if(!u(t))return m("InvalidAttr","Attribute '"+t+"' is an invalid name.",f(n[e]));if(i.hasOwnProperty(t))return m("InvalidAttr","Attribute '"+t+"' is repeated.",f(n[e]));i[t]=1}return!0}function c(e,t){if(";"===e[++t])return-1;if("#"===e[t])return function(e,t){let s=/\d/;for("x"===e[t]&&(t++,s=/[\da-fA-F]/);t<e.length;t++){if(";"===e[t])return t;if(!e[t].match(s))break}return-1}(e,++t);let s=0;for(;t<e.length;t++,s++)if(!(e[t].match(/\w/)&&s<20)){if(";"===e[t])break;return-1}return t}function m(e,t,s){return{err:{code:e,msg:t,line:s.line||s,col:s.col}}}function u(t){return e.isName(t)}function g(e,t){const s=e.substring(0,t).split(/\r?\n/);return{line:s.length,col:s[s.length-1].length+1}}function f(e){return e.startIndex+e[1].length}return U}var B,D,O,R,j,M,V,$,W,H,q,G={};function Y(){return W?$:(W=1,$=function(e){return"function"==typeof e?e:Array.isArray(e)?t=>{for(const s of e){if("string"==typeof s&&t===s)return!0;if(s instanceof RegExp&&s.test(t))return!0}}:()=>!1})}var K,Q,X,J,Z,ee,te,se,ne,ie={};function ae(){if(K)return ie;function e(i,a,r){let o;const l={};for(let d=0;d<i.length;d++){const c=i[d],m=t(c);let u="";if(u=void 0===r?m:r+"."+m,m===a.textNodeName)void 0===o?o=c[m]:o+=""+c[m];else{if(void 0===m)continue;if(c[m]){let t=e(c[m],a,u);const i=n(t,a);c[":@"]?s(t,c[":@"],u,a):1!==Object.keys(t).length||void 0===t[a.textNodeName]||a.alwaysCreateTextNode?0===Object.keys(t).length&&(a.alwaysCreateTextNode?t[a.textNodeName]="":t=""):t=t[a.textNodeName],void 0!==l[m]&&l.hasOwnProperty(m)?(Array.isArray(l[m])||(l[m]=[l[m]]),l[m].push(t)):a.isArray(m,u,i)?l[m]=[t]:l[m]=t}}}return"string"==typeof o?o.length>0&&(l[a.textNodeName]=o):void 0!==o&&(l[a.textNodeName]=o),l}function t(e){const t=Object.keys(e);for(let e=0;e<t.length;e++){const s=t[e];if(":@"!==s)return s}}function s(e,t,s,n){if(t){const i=Object.keys(t),a=i.length;for(let r=0;r<a;r++){const a=i[r];n.isArray(a,s+"."+a,!0,!0)?e[a]=[t[a]]:e[a]=t[a]}}}function n(e,t){const{textNodeName:s}=t,n=Object.keys(e).length;return 0===n||!(1!==n||!e[s]&&"boolean"!=typeof e[s]&&0!==e[s])}return K=1,ie.prettify=function(t,s){return e(t,s)},ie}function re(){if(X)return Q;X=1;const{buildOptions:e}=function(){if(B)return G;B=1;const e={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(e,t,s){return e}};return G.buildOptions=function(t){return Object.assign({},e,t)},G.defaultOptions=e,G}(),t=function(){if(q)return H;q=1;const e=P(),t=O?D:(O=1,D=class{constructor(e){this.tagname=e,this.child=[],this[":@"]={}}add(e,t){"__proto__"===e&&(e="#__proto__"),this.child.push({[e]:t})}addChild(e){"__proto__"===e.tagname&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,":@":e[":@"]}):this.child.push({[e.tagname]:e.child})}}),s=function(){if(j)return R;j=1;const e=P();function t(e,t){let s="";for(;t<e.length&&"'"!==e[t]&&'"'!==e[t];t++)s+=e[t];if(s=s.trim(),-1!==s.indexOf(" "))throw new Error("External entites are not supported");const n=e[t++];let i="";for(;t<e.length&&e[t]!==n;t++)i+=e[t];return[s,i,t]}function s(e,t){return"!"===e[t+1]&&"E"===e[t+2]&&"N"===e[t+3]&&"T"===e[t+4]&&"I"===e[t+5]&&"T"===e[t+6]&&"Y"===e[t+7]}function n(e,t){return"!"===e[t+1]&&"E"===e[t+2]&&"L"===e[t+3]&&"E"===e[t+4]&&"M"===e[t+5]&&"E"===e[t+6]&&"N"===e[t+7]&&"T"===e[t+8]}function i(e,t){return"!"===e[t+1]&&"A"===e[t+2]&&"T"===e[t+3]&&"T"===e[t+4]&&"L"===e[t+5]&&"I"===e[t+6]&&"S"===e[t+7]&&"T"===e[t+8]}function a(e,t){return"!"===e[t+1]&&"N"===e[t+2]&&"O"===e[t+3]&&"T"===e[t+4]&&"A"===e[t+5]&&"T"===e[t+6]&&"I"===e[t+7]&&"O"===e[t+8]&&"N"===e[t+9]}function r(t){if(e.isName(t))return t;throw new Error(`Invalid entity name ${t}`)}return R=function(e,o){const l={};if("O"!==e[o+3]||"C"!==e[o+4]||"T"!==e[o+5]||"Y"!==e[o+6]||"P"!==e[o+7]||"E"!==e[o+8])throw new Error("Invalid Tag instead of DOCTYPE");{o+=9;let d=1,c=!1,m=!1,u="";for(;o<e.length;o++)if("<"!==e[o]||m)if(">"===e[o]){if(m?"-"===e[o-1]&&"-"===e[o-2]&&(m=!1,d--):d--,0===d)break}else"["===e[o]?c=!0:u+=e[o];else{if(c&&s(e,o)){let s,n;o+=7,[s,n,o]=t(e,o+1),-1===n.indexOf("&")&&(l[r(s)]={regx:RegExp(`&${s};`,"g"),val:n})}else c&&n(e,o)||c&&i(e,o)?o+=8:c&&a(e,o)?o+=9:m=!0;d++,u=""}if(0!==d)throw new Error("Unclosed DOCTYPE")}return{entities:l,i:o}}}(),n=function(){if(V)return M;V=1;const e=/^[-+]?0x[a-fA-F0-9]+$/,t=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const s={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};return M=function(n,i={}){if(i=Object.assign({},s,i),!n||"string"!=typeof n)return n;let a=n.trim();if(void 0!==i.skipLike&&i.skipLike.test(a))return n;if(i.hex&&e.test(a))return Number.parseInt(a,16);{const e=t.exec(a);if(e){const t=e[1],s=e[2];let o=(r=e[3])&&-1!==r.indexOf(".")?("."===(r=r.replace(/0+$/,""))?r="0":"."===r[0]?r="0"+r:"."===r[r.length-1]&&(r=r.substr(0,r.length-1)),r):r;const l=e[4]||e[6];if(!i.leadingZeros&&s.length>0&&t&&"."!==a[2])return n;if(!i.leadingZeros&&s.length>0&&!t&&"."!==a[1])return n;{const e=Number(a),r=""+e;return-1!==r.search(/[eE]/)||l?i.eNotation?e:n:-1!==a.indexOf(".")?"0"===r&&""===o||r===o||t&&r==="-"+o?e:n:s?o===r||t+o===r?e:n:a===r||a===t+r?e:n}}return n}var r}}(),i=Y();function a(e){const t=Object.keys(e);for(let s=0;s<t.length;s++){const n=t[s];this.lastEntities[n]={regex:new RegExp("&"+n+";","g"),val:e[n]}}}function r(e,t,s,n,i,a,r){if(void 0!==e&&(this.options.trimValues&&!n&&(e=e.trim()),e.length>0)){r||(e=this.replaceEntitiesValue(e));const n=this.options.tagValueProcessor(t,e,s,i,a);return null==n?e:typeof n!=typeof e||n!==e?n:this.options.trimValues||e.trim()===e?w(e,this.options.parseTagValue,this.options.numberParseOptions):e}}function o(e){if(this.options.removeNSPrefix){const t=e.split(":"),s="/"===e.charAt(0)?"/":"";if("xmlns"===t[0])return"";2===t.length&&(e=s+t[1])}return e}const l=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function d(t,s,n){if(!0!==this.options.ignoreAttributes&&"string"==typeof t){const n=e.getAllMatches(t,l),i=n.length,a={};for(let e=0;e<i;e++){const t=this.resolveNameSpace(n[e][1]);if(this.ignoreAttributesFn(t,s))continue;let i=n[e][4],r=this.options.attributeNamePrefix+t;if(t.length)if(this.options.transformAttributeName&&(r=this.options.transformAttributeName(r)),"__proto__"===r&&(r="#__proto__"),void 0!==i){this.options.trimValues&&(i=i.trim()),i=this.replaceEntitiesValue(i);const e=this.options.attributeValueProcessor(t,i,s);a[r]=null==e?i:typeof e!=typeof i||e!==i?e:w(i,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(a[r]=!0)}if(!Object.keys(a).length)return;if(this.options.attributesGroupName){const e={};return e[this.options.attributesGroupName]=a,e}return a}}const c=function(e){e=e.replace(/\r\n?/g,"\n");const n=new t("!xml");let i=n,a="",r="";for(let o=0;o<e.length;o++)if("<"===e[o])if("/"===e[o+1]){const t=p(e,">",o,"Closing Tag is not closed.");let s=e.substring(o+2,t).trim();if(this.options.removeNSPrefix){const e=s.indexOf(":");-1!==e&&(s=s.substr(e+1))}this.options.transformTagName&&(s=this.options.transformTagName(s)),i&&(a=this.saveTextToParentTag(a,i,r));const n=r.substring(r.lastIndexOf(".")+1);if(s&&-1!==this.options.unpairedTags.indexOf(s))throw new Error(`Unpaired tag can not be used as closing tag: </${s}>`);let l=0;n&&-1!==this.options.unpairedTags.indexOf(n)?(l=r.lastIndexOf(".",r.lastIndexOf(".")-1),this.tagsNodeStack.pop()):l=r.lastIndexOf("."),r=r.substring(0,l),i=this.tagsNodeStack.pop(),a="",o=t}else if("?"===e[o+1]){let s=h(e,o,!1,"?>");if(!s)throw new Error("Pi Tag is not closed.");if(a=this.saveTextToParentTag(a,i,r),this.options.ignoreDeclaration&&"?xml"===s.tagName||this.options.ignorePiTags);else{const e=new t(s.tagName);e.add(this.options.textNodeName,""),s.tagName!==s.tagExp&&s.attrExpPresent&&(e[":@"]=this.buildAttributesMap(s.tagExp,r,s.tagName)),this.addChild(i,e,r)}o=s.closeIndex+1}else if("!--"===e.substr(o+1,3)){const t=p(e,"--\x3e",o+4,"Comment is not closed.");if(this.options.commentPropName){const s=e.substring(o+4,t-2);a=this.saveTextToParentTag(a,i,r),i.add(this.options.commentPropName,[{[this.options.textNodeName]:s}])}o=t}else if("!D"===e.substr(o+1,2)){const t=s(e,o);this.docTypeEntities=t.entities,o=t.i}else if("!["===e.substr(o+1,2)){const t=p(e,"]]>",o,"CDATA is not closed.")-2,s=e.substring(o+9,t);a=this.saveTextToParentTag(a,i,r);let n=this.parseTextData(s,i.tagname,r,!0,!1,!0,!0);null==n&&(n=""),this.options.cdataPropName?i.add(this.options.cdataPropName,[{[this.options.textNodeName]:s}]):i.add(this.options.textNodeName,n),o=t+2}else{let s=h(e,o,this.options.removeNSPrefix),l=s.tagName;const d=s.rawTagName;let c=s.tagExp,m=s.attrExpPresent,u=s.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),i&&a&&"!xml"!==i.tagname&&(a=this.saveTextToParentTag(a,i,r,!1));const g=i;if(g&&-1!==this.options.unpairedTags.indexOf(g.tagname)&&(i=this.tagsNodeStack.pop(),r=r.substring(0,r.lastIndexOf("."))),l!==n.tagname&&(r+=r?"."+l:l),this.isItStopNode(this.options.stopNodes,r,l)){let n="";if(c.length>0&&c.lastIndexOf("/")===c.length-1)"/"===l[l.length-1]?(l=l.substr(0,l.length-1),r=r.substr(0,r.length-1),c=l):c=c.substr(0,c.length-1),o=s.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(l))o=s.closeIndex;else{const t=this.readStopNodeData(e,d,u+1);if(!t)throw new Error(`Unexpected end of ${d}`);o=t.i,n=t.tagContent}const a=new t(l);l!==c&&m&&(a[":@"]=this.buildAttributesMap(c,r,l)),n&&(n=this.parseTextData(n,l,r,!0,m,!0,!0)),r=r.substr(0,r.lastIndexOf(".")),a.add(this.options.textNodeName,n),this.addChild(i,a,r)}else{if(c.length>0&&c.lastIndexOf("/")===c.length-1){"/"===l[l.length-1]?(l=l.substr(0,l.length-1),r=r.substr(0,r.length-1),c=l):c=c.substr(0,c.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));const e=new t(l);l!==c&&m&&(e[":@"]=this.buildAttributesMap(c,r,l)),this.addChild(i,e,r),r=r.substr(0,r.lastIndexOf("."))}else{const e=new t(l);this.tagsNodeStack.push(i),l!==c&&m&&(e[":@"]=this.buildAttributesMap(c,r,l)),this.addChild(i,e,r),i=e}a="",o=u}}else a+=e[o];return n.child};function m(e,t,s){const n=this.options.updateTag(t.tagname,s,t[":@"]);!1===n||("string"==typeof n?(t.tagname=n,e.addChild(t)):e.addChild(t))}const u=function(e){if(this.options.processEntities){for(let t in this.docTypeEntities){const s=this.docTypeEntities[t];e=e.replace(s.regx,s.val)}for(let t in this.lastEntities){const s=this.lastEntities[t];e=e.replace(s.regex,s.val)}if(this.options.htmlEntities)for(let t in this.htmlEntities){const s=this.htmlEntities[t];e=e.replace(s.regex,s.val)}e=e.replace(this.ampEntity.regex,this.ampEntity.val)}return e};function g(e,t,s,n){return e&&(void 0===n&&(n=0===Object.keys(t.child).length),void 0!==(e=this.parseTextData(e,t.tagname,s,!1,!!t[":@"]&&0!==Object.keys(t[":@"]).length,n))&&""!==e&&t.add(this.options.textNodeName,e),e=""),e}function f(e,t,s){const n="*."+s;for(const s in e){const i=e[s];if(n===i||t===i)return!0}return!1}function p(e,t,s,n){const i=e.indexOf(t,s);if(-1===i)throw new Error(n);return i+t.length-1}function h(e,t,s,n=">"){const i=function(e,t,s=">"){let n,i="";for(let a=t;a<e.length;a++){let t=e[a];if(n)t===n&&(n="");else if('"'===t||"'"===t)n=t;else if(t===s[0]){if(!s[1])return{data:i,index:a};if(e[a+1]===s[1])return{data:i,index:a}}else"\t"===t&&(t=" ");i+=t}}(e,t+1,n);if(!i)return;let a=i.data;const r=i.index,o=a.search(/\s/);let l=a,d=!0;-1!==o&&(l=a.substring(0,o),a=a.substring(o+1).trimStart());const c=l;if(s){const e=l.indexOf(":");-1!==e&&(l=l.substr(e+1),d=l!==i.data.substr(e+1))}return{tagName:l,tagExp:a,closeIndex:r,attrExpPresent:d,rawTagName:c}}function v(e,t,s){const n=s;let i=1;for(;s<e.length;s++)if("<"===e[s])if("/"===e[s+1]){const a=p(e,">",s,`${t} is not closed`);if(e.substring(s+2,a).trim()===t&&(i--,0===i))return{tagContent:e.substring(n,s),i:a};s=a}else if("?"===e[s+1])s=p(e,"?>",s+1,"StopNode is not closed.");else if("!--"===e.substr(s+1,3))s=p(e,"--\x3e",s+3,"StopNode is not closed.");else if("!["===e.substr(s+1,2))s=p(e,"]]>",s,"StopNode is not closed.")-2;else{const n=h(e,s,">");n&&((n&&n.tagName)===t&&"/"!==n.tagExp[n.tagExp.length-1]&&i++,s=n.closeIndex)}}function w(t,s,i){if(s&&"string"==typeof t){const e=t.trim();return"true"===e||"false"!==e&&n(t,i)}return e.isExist(t)?t:""}return H=class{constructor(e){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(e,t)=>String.fromCharCode(Number.parseInt(t,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(e,t)=>String.fromCharCode(Number.parseInt(t,16))}},this.addExternalEntities=a,this.parseXml=c,this.parseTextData=r,this.resolveNameSpace=o,this.buildAttributesMap=d,this.isItStopNode=f,this.replaceEntitiesValue=u,this.readStopNodeData=v,this.saveTextToParentTag=g,this.addChild=m,this.ignoreAttributesFn=i(this.options.ignoreAttributes)}}}(),{prettify:s}=ae(),n=z();return Q=class{constructor(t){this.externalEntities={},this.options=e(t)}parse(e,i){if("string"==typeof e);else{if(!e.toString)throw new Error("XML data is accepted in String or Bytes[] form.");e=e.toString()}if(i){!0===i&&(i={});const t=n.validate(e,i);if(!0!==t)throw Error(`${t.err.msg}:${t.err.line}:${t.err.col}`)}const a=new t(this.options);a.addExternalEntities(this.externalEntities);const r=a.parseXml(e);return this.options.preserveOrder||void 0===r?r:s(r,this.options)}addEntity(e,t){if(-1!==t.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==e.indexOf("&")||-1!==e.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'");if("&"===t)throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=t}}}function oe(){if(Z)return J;function e(a,r,o,l){let d="",c=!1;for(let m=0;m<a.length;m++){const u=a[m],g=t(u);if(void 0===g)continue;let f="";if(f=0===o.length?g:`${o}.${g}`,g===r.textNodeName){let e=u[g];n(f,r)||(e=r.tagValueProcessor(g,e),e=i(e,r)),c&&(d+=l),d+=e,c=!1;continue}if(g===r.cdataPropName){c&&(d+=l),d+=`<![CDATA[${u[g][0][r.textNodeName]}]]>`,c=!1;continue}if(g===r.commentPropName){d+=l+`\x3c!--${u[g][0][r.textNodeName]}--\x3e`,c=!0;continue}if("?"===g[0]){const e=s(u[":@"],r),t="?xml"===g?"":l;let n=u[g][0][r.textNodeName];n=0!==n.length?" "+n:"",d+=t+`<${g}${n}${e}?>`,c=!0;continue}let p=l;""!==p&&(p+=r.indentBy);const h=l+`<${g}${s(u[":@"],r)}`,v=e(u[g],r,f,p);-1!==r.unpairedTags.indexOf(g)?r.suppressUnpairedNode?d+=h+">":d+=h+"/>":v&&0!==v.length||!r.suppressEmptyNode?v&&v.endsWith(">")?d+=h+`>${v}${l}</${g}>`:(d+=h+">",v&&""!==l&&(v.includes("/>")||v.includes("</"))?d+=l+r.indentBy+v+l:d+=v,d+=`</${g}>`):d+=h+"/>",c=!0}return d}function t(e){const t=Object.keys(e);for(let s=0;s<t.length;s++){const n=t[s];if(e.hasOwnProperty(n)&&":@"!==n)return n}}function s(e,t){let s="";if(e&&!t.ignoreAttributes)for(let n in e){if(!e.hasOwnProperty(n))continue;let a=t.attributeValueProcessor(n,e[n]);a=i(a,t),!0===a&&t.suppressBooleanAttributes?s+=` ${n.substr(t.attributeNamePrefix.length)}`:s+=` ${n.substr(t.attributeNamePrefix.length)}="${a}"`}return s}function n(e,t){let s=(e=e.substr(0,e.length-t.textNodeName.length-1)).substr(e.lastIndexOf(".")+1);for(let n in t.stopNodes)if(t.stopNodes[n]===e||t.stopNodes[n]==="*."+s)return!0;return!1}function i(e,t){if(e&&e.length>0&&t.processEntities)for(let s=0;s<t.entities.length;s++){const n=t.entities[s];e=e.replace(n.regex,n.val)}return e}return Z=1,J=function(t,s){let n="";return s.format&&s.indentBy.length>0&&(n="\n"),e(t,s,"",n)}}var le=function(){if(ne)return se;ne=1;const e=z(),t=re(),s=function(){if(te)return ee;te=1;const e=oe(),t=Y(),s={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function n(e){this.options=Object.assign({},s,e),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=t(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=r),this.processTextOrObjNode=i,this.options.format?(this.indentate=a,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function i(e,t,s,n){const i=this.j2x(e,s+1,n.concat(t));return void 0!==e[this.options.textNodeName]&&1===Object.keys(e).length?this.buildTextValNode(e[this.options.textNodeName],t,i.attrStr,s):this.buildObjectNode(i.val,t,i.attrStr,s)}function a(e){return this.options.indentBy.repeat(e)}function r(e){return!(!e.startsWith(this.options.attributeNamePrefix)||e===this.options.textNodeName)&&e.substr(this.attrPrefixLen)}return n.prototype.build=function(t){return this.options.preserveOrder?e(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},n.prototype.j2x=function(e,t,s){let n="",i="";const a=s.join(".");for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r))if(void 0===e[r])this.isAttribute(r)&&(i+="");else if(null===e[r])this.isAttribute(r)?i+="":"?"===r[0]?i+=this.indentate(t)+"<"+r+"?"+this.tagEndChar:i+=this.indentate(t)+"<"+r+"/"+this.tagEndChar;else if(e[r]instanceof Date)i+=this.buildTextValNode(e[r],r,"",t);else if("object"!=typeof e[r]){const s=this.isAttribute(r);if(s&&!this.ignoreAttributesFn(s,a))n+=this.buildAttrPairStr(s,""+e[r]);else if(!s)if(r===this.options.textNodeName){let t=this.options.tagValueProcessor(r,""+e[r]);i+=this.replaceEntitiesValue(t)}else i+=this.buildTextValNode(e[r],r,"",t)}else if(Array.isArray(e[r])){const n=e[r].length;let a="",o="";for(let l=0;l<n;l++){const n=e[r][l];if(void 0===n);else if(null===n)"?"===r[0]?i+=this.indentate(t)+"<"+r+"?"+this.tagEndChar:i+=this.indentate(t)+"<"+r+"/"+this.tagEndChar;else if("object"==typeof n)if(this.options.oneListGroup){const e=this.j2x(n,t+1,s.concat(r));a+=e.val,this.options.attributesGroupName&&n.hasOwnProperty(this.options.attributesGroupName)&&(o+=e.attrStr)}else a+=this.processTextOrObjNode(n,r,t,s);else if(this.options.oneListGroup){let e=this.options.tagValueProcessor(r,n);e=this.replaceEntitiesValue(e),a+=e}else a+=this.buildTextValNode(n,r,"",t)}this.options.oneListGroup&&(a=this.buildObjectNode(a,r,o,t)),i+=a}else if(this.options.attributesGroupName&&r===this.options.attributesGroupName){const t=Object.keys(e[r]),s=t.length;for(let i=0;i<s;i++)n+=this.buildAttrPairStr(t[i],""+e[r][t[i]])}else i+=this.processTextOrObjNode(e[r],r,t,s);return{attrStr:n,val:i}},n.prototype.buildAttrPairStr=function(e,t){return t=this.options.attributeValueProcessor(e,""+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&"true"===t?" "+e:" "+e+'="'+t+'"'},n.prototype.buildObjectNode=function(e,t,s,n){if(""===e)return"?"===t[0]?this.indentate(n)+"<"+t+s+"?"+this.tagEndChar:this.indentate(n)+"<"+t+s+this.closeTag(t)+this.tagEndChar;{let i="</"+t+this.tagEndChar,a="";return"?"===t[0]&&(a="?",i=""),!s&&""!==s||-1!==e.indexOf("<")?!1!==this.options.commentPropName&&t===this.options.commentPropName&&0===a.length?this.indentate(n)+`\x3c!--${e}--\x3e`+this.newLine:this.indentate(n)+"<"+t+s+a+this.tagEndChar+e+this.indentate(n)+i:this.indentate(n)+"<"+t+s+a+">"+e+i}},n.prototype.closeTag=function(e){let t="";return-1!==this.options.unpairedTags.indexOf(e)?this.options.suppressUnpairedNode||(t="/"):t=this.options.suppressEmptyNode?"/":`></${e}`,t},n.prototype.buildTextValNode=function(e,t,s,n){if(!1!==this.options.cdataPropName&&t===this.options.cdataPropName)return this.indentate(n)+`<![CDATA[${e}]]>`+this.newLine;if(!1!==this.options.commentPropName&&t===this.options.commentPropName)return this.indentate(n)+`\x3c!--${e}--\x3e`+this.newLine;if("?"===t[0])return this.indentate(n)+"<"+t+s+"?"+this.tagEndChar;{let i=this.options.tagValueProcessor(t,e);return i=this.replaceEntitiesValue(i),""===i?this.indentate(n)+"<"+t+s+this.closeTag(t)+this.tagEndChar:this.indentate(n)+"<"+t+s+">"+i+"</"+t+this.tagEndChar}},n.prototype.replaceEntitiesValue=function(e){if(e&&e.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){const s=this.options.entities[t];e=e.replace(s.regex,s.val)}return e},ee=n}();return se={XMLParser:t,XMLValidator:e,XMLBuilder:s}}();class de{_view;constructor(e){ce(e),this._view=e}get id(){return this._view.id}get name(){return this._view.name}get caption(){return this._view.caption}get emptyTitle(){return this._view.emptyTitle}get emptyCaption(){return this._view.emptyCaption}get getContents(){return this._view.getContents}get icon(){return this._view.icon}set icon(e){this._view.icon=e}get order(){return this._view.order}set order(e){this._view.order=e}get params(){return this._view.params}set params(e){this._view.params=e}get columns(){return this._view.columns}get emptyView(){return this._view.emptyView}get parent(){return this._view.parent}get sticky(){return this._view.sticky}get expanded(){return this._view.expanded}set expanded(e){this._view.expanded=e}get defaultSortKey(){return this._view.defaultSortKey}get loadChildViews(){return this._view.loadChildViews}}const ce=function(e){if(!e.id||"string"!=typeof e.id)throw new Error("View id is required and must be a string");if(!e.name||"string"!=typeof e.name)throw new Error("View name is required and must be a string");if("caption"in e&&"string"!=typeof e.caption)throw new Error("View caption must be a string");if(!e.getContents||"function"!=typeof e.getContents)throw new Error("View getContents is required and must be a function");if(!e.icon||"string"!=typeof e.icon||!function(e){if("string"!=typeof e)throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);if(0===(e=e.trim()).length)return!1;if(!0!==le.XMLValidator.validate(e))return!1;let t;const s=new le.XMLParser;try{t=s.parse(e)}catch{return!1}return!!t&&!!Object.keys(t).some((e=>"svg"===e.toLowerCase()))}(e.icon))throw new Error("View icon is required and must be a valid svg string");if("order"in e&&"number"!=typeof e.order)throw new Error("View order must be a number");if(e.columns&&e.columns.forEach((e=>{if(!(e instanceof S))throw new Error("View columns must be an array of Column. Invalid column found")})),e.emptyView&&"function"!=typeof e.emptyView)throw new Error("View emptyView must be a function");if(e.parent&&"string"!=typeof e.parent)throw new Error("View parent must be a string");if("sticky"in e&&"boolean"!=typeof e.sticky)throw new Error("View sticky must be a boolean");if("expanded"in e&&"boolean"!=typeof e.expanded)throw new Error("View expanded must be a boolean");if(e.defaultSortKey&&"string"!=typeof e.defaultSortKey)throw new Error("View defaultSortKey must be a string");if(e.loadChildViews&&"function"!=typeof e.loadChildViews)throw new Error("View loadChildViews must be a function");return!0};var me,ue,ge,fe;function pe(){if(ue)return me;ue=1;const e="object"==typeof l&&l.env&&l.env.NODE_DEBUG&&/\bsemver\b/i.test(l.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};return me=e}function he(){if(fe)return ge;fe=1;const e=Number.MAX_SAFE_INTEGER||9007199254740991;return ge={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:e,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}}var ve,we,Ae,be,Ce,ye,xe,ke,_e,Te,Se,Le={exports:{}};function Ne(){if(xe)return ye;xe=1;const e=pe(),{MAX_LENGTH:t,MAX_SAFE_INTEGER:s}=he(),{safeRe:n,t:i}=(ve||(ve=1,function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:s,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:i}=he(),a=pe(),r=(t=e.exports={}).re=[],o=t.safeRe=[],l=t.src=[],d=t.t={};let c=0;const m="[a-zA-Z0-9-]",u=[["\\s",1],["\\d",i],[m,n]],g=(e,t,s)=>{const n=(e=>{for(const[t,s]of u)e=e.split(`${t}*`).join(`${t}{0,${s}}`).split(`${t}+`).join(`${t}{1,${s}}`);return e})(t),i=c++;a(e,i,t),d[e]=i,l[i]=t,r[i]=new RegExp(t,s?"g":void 0),o[i]=new RegExp(n,s?"g":void 0)};g("NUMERICIDENTIFIER","0|[1-9]\\d*"),g("NUMERICIDENTIFIERLOOSE","\\d+"),g("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${m}*`),g("MAINVERSION",`(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})\\.(${l[d.NUMERICIDENTIFIER]})`),g("MAINVERSIONLOOSE",`(${l[d.NUMERICIDENTIFIERLOOSE]})\\.(${l[d.NUMERICIDENTIFIERLOOSE]})\\.(${l[d.NUMERICIDENTIFIERLOOSE]})`),g("PRERELEASEIDENTIFIER",`(?:${l[d.NUMERICIDENTIFIER]}|${l[d.NONNUMERICIDENTIFIER]})`),g("PRERELEASEIDENTIFIERLOOSE",`(?:${l[d.NUMERICIDENTIFIERLOOSE]}|${l[d.NONNUMERICIDENTIFIER]})`),g("PRERELEASE",`(?:-(${l[d.PRERELEASEIDENTIFIER]}(?:\\.${l[d.PRERELEASEIDENTIFIER]})*))`),g("PRERELEASELOOSE",`(?:-?(${l[d.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[d.PRERELEASEIDENTIFIERLOOSE]})*))`),g("BUILDIDENTIFIER",`${m}+`),g("BUILD",`(?:\\+(${l[d.BUILDIDENTIFIER]}(?:\\.${l[d.BUILDIDENTIFIER]})*))`),g("FULLPLAIN",`v?${l[d.MAINVERSION]}${l[d.PRERELEASE]}?${l[d.BUILD]}?`),g("FULL",`^${l[d.FULLPLAIN]}$`),g("LOOSEPLAIN",`[v=\\s]*${l[d.MAINVERSIONLOOSE]}${l[d.PRERELEASELOOSE]}?${l[d.BUILD]}?`),g("LOOSE",`^${l[d.LOOSEPLAIN]}$`),g("GTLT","((?:<|>)?=?)"),g("XRANGEIDENTIFIERLOOSE",`${l[d.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),g("XRANGEIDENTIFIER",`${l[d.NUMERICIDENTIFIER]}|x|X|\\*`),g("XRANGEPLAIN",`[v=\\s]*(${l[d.XRANGEIDENTIFIER]})(?:\\.(${l[d.XRANGEIDENTIFIER]})(?:\\.(${l[d.XRANGEIDENTIFIER]})(?:${l[d.PRERELEASE]})?${l[d.BUILD]}?)?)?`),g("XRANGEPLAINLOOSE",`[v=\\s]*(${l[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[d.XRANGEIDENTIFIERLOOSE]})(?:${l[d.PRERELEASELOOSE]})?${l[d.BUILD]}?)?)?`),g("XRANGE",`^${l[d.GTLT]}\\s*${l[d.XRANGEPLAIN]}$`),g("XRANGELOOSE",`^${l[d.GTLT]}\\s*${l[d.XRANGEPLAINLOOSE]}$`),g("COERCEPLAIN",`(^|[^\\d])(\\d{1,${s}})(?:\\.(\\d{1,${s}}))?(?:\\.(\\d{1,${s}}))?`),g("COERCE",`${l[d.COERCEPLAIN]}(?:$|[^\\d])`),g("COERCEFULL",l[d.COERCEPLAIN]+`(?:${l[d.PRERELEASE]})?(?:${l[d.BUILD]})?(?:$|[^\\d])`),g("COERCERTL",l[d.COERCE],!0),g("COERCERTLFULL",l[d.COERCEFULL],!0),g("LONETILDE","(?:~>?)"),g("TILDETRIM",`(\\s*)${l[d.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",g("TILDE",`^${l[d.LONETILDE]}${l[d.XRANGEPLAIN]}$`),g("TILDELOOSE",`^${l[d.LONETILDE]}${l[d.XRANGEPLAINLOOSE]}$`),g("LONECARET","(?:\\^)"),g("CARETTRIM",`(\\s*)${l[d.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",g("CARET",`^${l[d.LONECARET]}${l[d.XRANGEPLAIN]}$`),g("CARETLOOSE",`^${l[d.LONECARET]}${l[d.XRANGEPLAINLOOSE]}$`),g("COMPARATORLOOSE",`^${l[d.GTLT]}\\s*(${l[d.LOOSEPLAIN]})$|^$`),g("COMPARATOR",`^${l[d.GTLT]}\\s*(${l[d.FULLPLAIN]})$|^$`),g("COMPARATORTRIM",`(\\s*)${l[d.GTLT]}\\s*(${l[d.LOOSEPLAIN]}|${l[d.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",g("HYPHENRANGE",`^\\s*(${l[d.XRANGEPLAIN]})\\s+-\\s+(${l[d.XRANGEPLAIN]})\\s*$`),g("HYPHENRANGELOOSE",`^\\s*(${l[d.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[d.XRANGEPLAINLOOSE]})\\s*$`),g("STAR","(<|>)?=?\\s*\\*"),g("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),g("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}(Le,Le.exports)),Le.exports),a=function(){if(Ae)return we;Ae=1;const e=Object.freeze({loose:!0}),t=Object.freeze({});return we=s=>s?"object"!=typeof s?e:s:t}(),{compareIdentifiers:r}=function(){if(Ce)return be;Ce=1;const e=/^[0-9]+$/,t=(t,s)=>{const n=e.test(t),i=e.test(s);return n&&i&&(t=+t,s=+s),t===s?0:n&&!i?-1:i&&!n?1:t<s?-1:1};return be={compareIdentifiers:t,rcompareIdentifiers:(e,s)=>t(s,e)}}();class o{constructor(r,l){if(l=a(l),r instanceof o){if(r.loose===!!l.loose&&r.includePrerelease===!!l.includePrerelease)return r;r=r.version}else if("string"!=typeof r)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof r}".`);if(r.length>t)throw new TypeError(`version is longer than ${t} characters`);e("SemVer",r,l),this.options=l,this.loose=!!l.loose,this.includePrerelease=!!l.includePrerelease;const d=r.trim().match(l.loose?n[i.LOOSE]:n[i.FULL]);if(!d)throw new TypeError(`Invalid Version: ${r}`);if(this.raw=r,this.major=+d[1],this.minor=+d[2],this.patch=+d[3],this.major>s||this.major<0)throw new TypeError("Invalid major version");if(this.minor>s||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>s||this.patch<0)throw new TypeError("Invalid patch version");d[4]?this.prerelease=d[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<s)return t}return e})):this.prerelease=[],this.build=d[5]?d[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(e("SemVer.compare",this.version,this.options,t),!(t instanceof o)){if("string"==typeof t&&t===this.version)return 0;t=new o(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(e){return e instanceof o||(e=new o(e,this.options)),r(this.major,e.major)||r(this.minor,e.minor)||r(this.patch,e.patch)}comparePre(t){if(t instanceof o||(t=new o(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let s=0;do{const n=this.prerelease[s],i=t.prerelease[s];if(e("prerelease compare",s,n,i),void 0===n&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===n)return-1;if(n!==i)return r(n,i)}while(++s)}compareBuild(t){t instanceof o||(t=new o(t,this.options));let s=0;do{const n=this.build[s],i=t.build[s];if(e("build compare",s,n,i),void 0===n&&void 0===i)return 0;if(void 0===i)return 1;if(void 0===n)return-1;if(n!==i)return r(n,i)}while(++s)}inc(e,t,s){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,s);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,s);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,s),this.inc("pre",t,s);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t,s),this.inc("pre",t,s);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":{const e=Number(s)?1:0;if(!t&&!1===s)throw new Error("invalid increment argument: identifier is empty");if(0===this.prerelease.length)this.prerelease=[e];else{let n=this.prerelease.length;for(;--n>=0;)"number"==typeof this.prerelease[n]&&(this.prerelease[n]++,n=-2);if(-1===n){if(t===this.prerelease.join(".")&&!1===s)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(t){let n=[t,e];!1===s&&(n=[t]),0===r(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return ye=o}const Fe=N(function(){if(Se)return Te;Se=1;const e=function(){if(_e)return ke;_e=1;const e=Ne();return ke=(t,s,n=!1)=>{if(t instanceof e)return t;try{return new e(t,s)}catch(e){if(!n)return null;throw e}}}();return Te=(t,s)=>{const n=e(t,s);return n?n.version:null}}());var Ee,Ue;const Ie=N(function(){if(Ue)return Ee;Ue=1;const e=Ne();return Ee=(t,s)=>new e(t,s).major}());class Pe{bus;constructor(e){"function"==typeof e.getVersion&&Fe(e.getVersion())?Ie(e.getVersion())!==Ie(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()):console.warn("Proxying an event bus with an unknown or invalid version"),this.bus=e}getVersion(){return"3.3.1"}subscribe(e,t){this.bus.subscribe(e,t)}unsubscribe(e,t){this.bus.unsubscribe(e,t)}emit(e,t){this.bus.emit(e,t)}}class ze{handlers=new Map;getVersion(){return"3.3.1"}subscribe(e,t){this.handlers.set(e,(this.handlers.get(e)||[]).concat(t))}unsubscribe(e,t){this.handlers.set(e,(this.handlers.get(e)||[]).filter((e=>e!==t)))}emit(e,t){(this.handlers.get(e)||[]).forEach((e=>{try{e(t)}catch(e){console.error("could not invoke event listener",e)}}))}}let Be=null;function De(e,t){(null!==Be?Be:"undefined"==typeof window?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&void 0===window._nc_event_bus&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),Be=void 0!==window?._nc_event_bus?new Pe(window._nc_event_bus):window._nc_event_bus=new ze,Be)).emit(e,t)}class Oe extends o.m{id;order;constructor(e,t=100){super(),this.id=e,this.order=t}filter(e){throw new Error("Not implemented")}updateChips(e){this.dispatchTypedEvent("update:chips",new CustomEvent("update:chips",{detail:e}))}filterUpdated(){this.dispatchTypedEvent("update:filter",new CustomEvent("update:filter"))}}function Re(e){if(window._nc_filelist_filters||(window._nc_filelist_filters=new Map),window._nc_filelist_filters.has(e.id))throw new Error(`File list filter "${e.id}" already registered`);window._nc_filelist_filters.set(e.id,e),De("files:filter:added",e)}function je(e){window._nc_filelist_filters&&window._nc_filelist_filters.has(e)&&(window._nc_filelist_filters.delete(e),De("files:filter:removed",e))}function Me(){return window._nc_filelist_filters?[...window._nc_filelist_filters.values()]:[]}const Ve=function(e){return(void 0===window._nc_newfilemenu&&(window._nc_newfilemenu=new c,n.o.debug("NewFileMenu initialized")),window._nc_newfilemenu).getEntries(e).sort(((e,t)=>void 0!==e.order&&void 0!==t.order&&e.order!==t.order?e.order-t.order:e.displayName.localeCompare(t.displayName,void 0,{numeric:!0,sensitivity:"base"})))}},96111:(e,t,s)=>{s.d(t,{S:()=>E,U:()=>Q,a:()=>P,b:()=>O,g:()=>X,h:()=>Y,i:()=>I,l:()=>S,n:()=>V,o:()=>J,t:()=>R}),s(59733);var n=s(82680),i=s(85471),a=s(21777),r=s(35810),o=s(71225),l=s(43627),d=s(87485),c=s(65043),m=s(53553),u=s(57994),g=s(63814),f=s(11950),p=s(35947),h=s(11195),v=s(94205),w=s(75270),A=s(57505),b=s(75625),C=s(15502),y=s(24764),x=s(70995),k=s(6695),_=s(95101),T=s(85168);const S=(0,p.YK)().setApp("@nextcloud/upload").detectUser().build();(0,f.Ay)(c.Ay,{retries:0});const L=async function(e,t,s,n=()=>{},i=void 0,a={},r=5){let o;return o=t instanceof Blob?t:await t(),i&&(a.Destination=i),a["Content-Type"]||(a["Content-Type"]="application/octet-stream"),await c.Ay.request({method:"PUT",url:e,data:o,signal:s,onUploadProgress:n,headers:a,"axios-retry":{retries:r,retryDelay:(e,t)=>(0,f.Nv)(e,t,1e3)}})},N=function(e,t,s){return 0===t&&e.size<=s?Promise.resolve(new Blob([e],{type:e.type||"application/octet-stream"})):Promise.resolve(new Blob([e.slice(t,t+s)],{type:"application/octet-stream"}))},F=function(e=void 0){const t=window.OC?.appConfig?.files?.max_chunk_size;if(t<=0)return 0;if(!Number(t))return 10485760;const s=Math.max(Number(t),5242880);return void 0===e?s:Math.max(s,Math.ceil(e/1e4))};var E=(e=>(e[e.INITIALIZED=0]="INITIALIZED",e[e.UPLOADING=1]="UPLOADING",e[e.ASSEMBLING=2]="ASSEMBLING",e[e.FINISHED=3]="FINISHED",e[e.CANCELLED=4]="CANCELLED",e[e.FAILED=5]="FAILED",e))(E||{});class U{_source;_file;_isChunked;_chunks;_size;_uploaded=0;_startTime=0;_status=0;_controller;_response=null;constructor(e,t=!1,s,n){const i=Math.min(F()>0?Math.ceil(s/F()):1,1e4);this._source=e,this._isChunked=t&&F()>0&&i>1,this._chunks=this._isChunked?i:1,this._size=s,this._file=n,this._controller=new AbortController}get source(){return this._source}get file(){return this._file}get isChunked(){return this._isChunked}get chunks(){return this._chunks}get size(){return this._size}get startTime(){return this._startTime}set response(e){this._response=e}get response(){return this._response}get uploaded(){return this._uploaded}set uploaded(e){if(e>=this._size)return this._status=this._isChunked?2:3,void(this._uploaded=this._size);this._status=1,this._uploaded=e,0===this._startTime&&(this._startTime=(new Date).getTime())}get status(){return this._status}set status(e){this._status=e}get signal(){return this._controller.signal}cancel(){this._controller.abort(),this._status=4}}const I=e=>"FileSystemFileEntry"in window&&e instanceof FileSystemFileEntry,P=e=>"FileSystemEntry"in window&&e instanceof FileSystemEntry;class z extends File{_originalName;_path;_children;constructor(e){super([],(0,o.P8)(e),{type:"httpd/unix-directory",lastModified:0}),this._children=new Map,this._originalName=(0,o.P8)(e),this._path=e}get size(){return this.children.reduce(((e,t)=>e+t.size),0)}get lastModified(){return this.children.reduce(((e,t)=>Math.max(e,t.lastModified)),0)}get originalName(){return this._originalName}get children(){return Array.from(this._children.values())}get webkitRelativePath(){return this._path}getChild(e){return this._children.get(e)??null}async addChildren(e){for(const t of e)await this.addChild(t)}async addChild(e){const t=this._path&&`${this._path}/`;if(I(e))e=await new Promise(((t,s)=>e.file(t,s)));else if("FileSystemDirectoryEntry"in window&&e instanceof FileSystemDirectoryEntry){const s=e.createReader(),n=await new Promise(((e,t)=>s.readEntries(e,t))),i=new z(`${t}${e.name}`);return await i.addChildren(n),void this._children.set(e.name,i)}const s=e.webkitRelativePath??e.name;if(s.includes("/")){if(!s.startsWith(this._path))throw new Error(`File ${s} is not a child of ${this._path}`);const n=s.slice(t.length),i=(0,o.P8)(n);if(i===n)this._children.set(i,e);else{const s=n.slice(0,n.indexOf("/"));if(this._children.has(s))await this._children.get(s).addChild(e);else{const n=new z(`${t}${s}`);await n.addChild(e),this._children.set(s,n)}}}else this._children.set(e.name,e)}}const B=(0,h.$)().detectLocale();[{locale:"af",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)","Content-Type":"text/plain; charset=UTF-8",Language:"af","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: af\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ar",json:{charset:"utf-8",headers:{"Last-Translator":"abusaud, 2024","Language-Team":"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)","Content-Type":"text/plain; charset=UTF-8",Language:"ar","Plural-Forms":"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nAli <alimahwer@yahoo.com>, 2024\nabusaud, 2024\n"},msgstr:["Last-Translator: abusaud, 2024\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar\nPlural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" هو اسم ممنوع لملف أو مجلد.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" هو نوع ممنوع أن يكون لملف.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" هو غير مسموح به في اسم ملف أو مجلد.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ملف متعارض","{count} ملف متعارض","{count} ملفان متعارضان","{count} ملف متعارض","{count} ملفات متعارضة","{count} ملفات متعارضة"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} ملف متعارض في {dirname}","{count} ملف متعارض في {dirname}","{count} ملفان متعارضان في {dirname}","{count} ملف متعارض في {dirname}","{count} ملفات متعارضة في {dirname}","{count} ملفات متعارضة في {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} ثانية متبقية"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} متبقية"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["بضع ثوانٍ متبقية"]},Cancel:{msgid:"Cancel",msgstr:["إلغاء"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["إلغِ العملية بالكامل"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["إلغاء عمليات رفع الملفات"]},Continue:{msgid:"Continue",msgstr:["إستمر"]},"Create new":{msgid:"Create new",msgstr:["إنشاء جديد"]},"estimating time left":{msgid:"estimating time left",msgstr:["تقدير الوقت المتبقي"]},"Existing version":{msgid:"Existing version",msgstr:["الإصدار الحالي"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['غير مسموح ان ينتهي اسم الملف بـ "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["إذا اخترت الاحتفاظ بالنسختين فسيتم إلحاق رقم عداد آخر اسم الملف الوارد."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["اسم ملف غير صحيح"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["تاريخ آخر تعديل غير معروف"]},New:{msgid:"New",msgstr:["جديد"]},"New filename":{msgid:"New filename",msgstr:["اسم ملف جديد"]},"New version":{msgid:"New version",msgstr:["نسخة جديدة"]},paused:{msgid:"paused",msgstr:["مُجمَّد"]},"Preview image":{msgid:"Preview image",msgstr:["معاينة الصورة"]},Rename:{msgid:"Rename",msgstr:["تغيير التسمية"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["حدِّد كل صناديق الخيارات"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["حدِّد كل الملفات الموجودة"]},"Select all new files":{msgid:"Select all new files",msgstr:["حدِّد كل الملفات الجديدة"]},Skip:{msgid:"Skip",msgstr:["تخطِّي"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف","تخطَّ {count} ملف"]},"Unknown size":{msgid:"Unknown size",msgstr:["حجم غير معلوم"]},Upload:{msgid:"Upload",msgstr:["رفع الملفات"]},"Upload files":{msgid:"Upload files",msgstr:["رفع ملفات"]},"Upload folders":{msgid:"Upload folders",msgstr:["رفع مجلدات"]},"Upload from device":{msgid:"Upload from device",msgstr:["الرفع من جهاز "]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["تمّ إلغاء عملية رفع الملفات"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["تمّ تجاوز الرفع"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['رفع "{folder}" تمّ تجاوزه']},"Upload progress":{msgid:"Upload progress",msgstr:["تقدُّم الرفع "]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["عند تحديد مجلد وارد، ستتم كتابة المحتوى في المجلد الموجود و سيتم تنفيذ حل التعارض بشكل تعاوُدي."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["أيُّ الملفات ترغب في الإبقاء عليها؟"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["يمكنك إمّا تغيير اسم الملف، أو تجاوزه، أو إلغاء العملية برُمَّتها."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار."]}}}}},{locale:"ast",json:{charset:"utf-8",headers:{"Last-Translator":"enolp <enolp@softastur.org>, 2023","Language-Team":"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)","Content-Type":"text/plain; charset=UTF-8",Language:"ast","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nenolp <enolp@softastur.org>, 2023\n"},msgstr:["Last-Translator: enolp <enolp@softastur.org>, 2023\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ast\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ficheru en coflictu","{count} ficheros en coflictu"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} ficheru en coflictu en {dirname}","{count} ficheros en coflictu en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Queden {seconds} segundos"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Tiempu que queda: {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["queden unos segundos"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Encaboxar les xubes"]},Continue:{msgid:"Continue",msgstr:["Siguir"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando'l tiempu que falta"]},"Existing version":{msgid:"Existing version",msgstr:["Versión esistente"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["La data de la última modificación ye desconocida"]},New:{msgid:"New",msgstr:["Nuevu"]},"New version":{msgid:"New version",msgstr:["Versión nueva"]},paused:{msgid:"paused",msgstr:["en posa"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar la imaxe"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar toles caxelles"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleicionar tolos ficheros esistentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleicionar tolos ficheros nuevos"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Saltar esti ficheru","Saltar {count} ficheros"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamañu desconocíu"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Encaboxóse la xuba"]},"Upload files":{msgid:"Upload files",msgstr:["Xubir ficheros"]},"Upload progress":{msgid:"Upload progress",msgstr:["Xuba en cursu"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué ficheros quies caltener?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Tienes de seleicionar polo menos una versión de cada ficheru pa siguir."]}}}}},{locale:"az",json:{charset:"utf-8",headers:{"Last-Translator":"Rashad Aliyev <microphprashad@gmail.com>, 2023","Language-Team":"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)","Content-Type":"text/plain; charset=UTF-8",Language:"az","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRashad Aliyev <microphprashad@gmail.com>, 2023\n"},msgstr:["Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: az\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saniyə qalıb"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} qalıb"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir neçə saniyə qalıb"]},Add:{msgid:"Add",msgstr:["Əlavə et"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yükləməni imtina et"]},"estimating time left":{msgid:"estimating time left",msgstr:["Təxmini qalan vaxt"]},paused:{msgid:"paused",msgstr:["pauzadadır"]},"Upload files":{msgid:"Upload files",msgstr:["Faylları yüklə"]}}}}},{locale:"be",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)","Content-Type":"text/plain; charset=UTF-8",Language:"be","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: be\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bg",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)","Content-Type":"text/plain; charset=UTF-8",Language:"bg_BG","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bg_BG\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bn_BD",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)","Content-Type":"text/plain; charset=UTF-8",Language:"bn_BD","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bn_BD\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"br",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)","Content-Type":"text/plain; charset=UTF-8",Language:"br","Plural-Forms":"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: br\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"bs",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)","Content-Type":"text/plain; charset=UTF-8",Language:"bs","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bs\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ca",json:{charset:"utf-8",headers:{"Last-Translator":"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022","Language-Team":"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)","Content-Type":"text/plain; charset=UTF-8",Language:"ca","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMarc Riera <marcriera@softcatala.org>, 2022\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\n"},msgstr:["Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ca\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Queden {seconds} segons"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["Queden {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Queden uns segons"]},Add:{msgid:"Add",msgstr:["Afegeix"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancel·la les pujades"]},"estimating time left":{msgid:"estimating time left",msgstr:["S'està estimant el temps restant"]},paused:{msgid:"paused",msgstr:["En pausa"]},"Upload files":{msgid:"Upload files",msgstr:["Puja els fitxers"]}}}}},{locale:"cs",json:{charset:"utf-8",headers:{"Last-Translator":"Pavel Borecki <pavel.borecki@gmail.com>, 2024","Language-Team":"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)","Content-Type":"text/plain; charset=UTF-8",Language:"cs_CZ","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\nMartin Hankovec, 2024\nAppukonrad <appukonrad@gmail.com>, 2024\nPavel Borecki <pavel.borecki@gmail.com>, 2024\n"},msgstr:["Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2024\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs_CZ\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}“ není povoleno použít jako název souboru či složky."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["„{segment}“ není povoleného typu souboru."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["„{segment}“ není povoleno použít v rámci názvu souboru či složky."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} kolize souborů","{count} kolize souborů","{count} kolizí souborů","{count} kolize souborů"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} kolize souboru v {dirname}","{count} kolize souboru v {dirname}","{count} kolizí souborů v {dirname}","{count} kolize souboru v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["zbývá {seconds}"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["zbývá {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["zbývá několik sekund"]},Cancel:{msgid:"Cancel",msgstr:["Zrušit"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Zrušit celou operaci"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Zrušit nahrávání"]},Continue:{msgid:"Continue",msgstr:["Pokračovat"]},"Create new":{msgid:"Create new",msgstr:["Vytvořit nový"]},"estimating time left":{msgid:"estimating time left",msgstr:["odhaduje se zbývající čas"]},"Existing version":{msgid:"Existing version",msgstr:["Existující verze"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Názvy souborů nemohou končit na „{segment}“."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Pokud vyberete obě verze, příchozí soubor bude mít ke jménu přidánu číslici."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Neplatný název souboru"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Neznámé datum poslední úpravy"]},New:{msgid:"New",msgstr:["Nové"]},"New filename":{msgid:"New filename",msgstr:["Nový název souboru"]},"New version":{msgid:"New version",msgstr:["Nová verze"]},paused:{msgid:"paused",msgstr:["pozastaveno"]},"Preview image":{msgid:"Preview image",msgstr:["Náhled obrázku"]},Rename:{msgid:"Rename",msgstr:["Přejmenovat"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Označit všechny zaškrtávací kolonky"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vybrat veškeré stávající soubory"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vybrat veškeré nové soubory"]},Skip:{msgid:"Skip",msgstr:["Přeskočit"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Přeskočit tento soubor","Přeskočit {count} soubory","Přeskočit {count} souborů","Přeskočit {count} soubory"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznámá velikost"]},Upload:{msgid:"Upload",msgstr:["Nahrát"]},"Upload files":{msgid:"Upload files",msgstr:["Nahrát soubory"]},"Upload folders":{msgid:"Upload folders",msgstr:["Nahrát složky"]},"Upload from device":{msgid:"Upload from device",msgstr:["Nahrát ze zařízení"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Nahrávání bylo zrušeno"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Nahrání bylo přeskočeno"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Nahrání „{folder}“ bylo přeskočeno"]},"Upload progress":{msgid:"Upload progress",msgstr:["Postup v nahrávání"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Když je vybrána příchozí složka, obsah je zapsán do existující složky a je provedeno rekurzivní řešení kolizí."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Které soubory si přejete ponechat?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Soubor je možné buď přejmenovat, přeskočit nebo celou operaci zrušit."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru."]}}}}},{locale:"cy_GB",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)","Content-Type":"text/plain; charset=UTF-8",Language:"cy_GB","Plural-Forms":"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cy_GB\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"da",json:{charset:"utf-8",headers:{"Last-Translator":"Martin Bonde <Martin@maboni.dk>, 2024","Language-Team":"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)","Content-Type":"text/plain; charset=UTF-8",Language:"da","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nRasmus Rosendahl-Kaa, 2024\nMartin Bonde <Martin@maboni.dk>, 2024\n"},msgstr:["Last-Translator: Martin Bonde <Martin@maboni.dk>, 2024\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: da\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" er et forbudt fil- eller mappenavn.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" er en forbudt filtype.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" er ikke tilladt i et fil- eller mappenavn.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fil konflikt","{count} filer i konflikt"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fil konflikt i {dirname}","{count} filer i konflikt i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{sekunder} sekunder tilbage"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tilbage"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["et par sekunder tilbage"]},Cancel:{msgid:"Cancel",msgstr:["Annuller"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annuller hele handlingen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annuller uploads"]},Continue:{msgid:"Continue",msgstr:["Fortsæt"]},"Create new":{msgid:"Create new",msgstr:["Opret ny"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimering af resterende tid"]},"Existing version":{msgid:"Existing version",msgstr:["Eksisterende version"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filnavne må ikke slutte med "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ugyldigt filnavn"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Sidste modifikationsdato ukendt"]},New:{msgid:"New",msgstr:["Ny"]},"New filename":{msgid:"New filename",msgstr:["Nyt filnavn"]},"New version":{msgid:"New version",msgstr:["Ny version"]},paused:{msgid:"paused",msgstr:["pauset"]},"Preview image":{msgid:"Preview image",msgstr:["Forhåndsvisning af billede"]},Rename:{msgid:"Rename",msgstr:["Omdøb"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Vælg alle felter"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vælg alle eksisterende filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vælg alle nye filer"]},Skip:{msgid:"Skip",msgstr:["Spring over"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Spring denne fil over","Spring {count} filer over"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukendt størrelse"]},Upload:{msgid:"Upload",msgstr:["Upload"]},"Upload files":{msgid:"Upload files",msgstr:["Upload filer"]},"Upload folders":{msgid:"Upload folders",msgstr:["Upload mapper"]},"Upload from device":{msgid:"Upload from device",msgstr:["Upload fra enhed"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Upload er blevet annulleret"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Upload er blevet sprunget over"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Upload af "{folder}" er blevet sprunget over']},"Upload progress":{msgid:"Upload progress",msgstr:["Upload fremskridt"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en indkommende mappe er valgt, vil dens indhold blive skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer ønsker du at beholde?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kan enten omdøbe filen, springe denne fil over eller annullere hele handlingen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du skal vælge mindst én version af hver fil for at fortsætte."]}}}}},{locale:"de",json:{charset:"utf-8",headers:{"Last-Translator":"Andy Scherzinger <info@andy-scherzinger.de>, 2024","Language-Team":"German (https://app.transifex.com/nextcloud/teams/64236/de/)","Content-Type":"text/plain; charset=UTF-8",Language:"de","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\nMartin Wilichowski, 2024\nAndy Scherzinger <info@andy-scherzinger.de>, 2024\n"},msgstr:["Last-Translator: Andy Scherzinger <info@andy-scherzinger.de>, 2024\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" ist ein verbotener Datei- oder Ordnername.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" ist ein verbotener Dateityp.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ist in einem Datei- oder Ordnernamen nicht zulässig.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Datei-Konflikt","{count} Datei-Konflikte"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} Datei-Konflikt in {dirname}","{count} Datei-Konflikte in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} Sekunden verbleiben"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} verbleibend"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["ein paar Sekunden verbleiben"]},Cancel:{msgid:"Cancel",msgstr:["Abbrechen"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hochladen abbrechen"]},Continue:{msgid:"Continue",msgstr:["Fortsetzen"]},"Create new":{msgid:"Create new",msgstr:["Neu erstellen"]},"estimating time left":{msgid:"estimating time left",msgstr:["Geschätzte verbleibende Zeit"]},"Existing version":{msgid:"Existing version",msgstr:["Vorhandene Version"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Dateinamen dürfen nicht mit "{segment}" enden.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Wenn du beide Versionen auswählst, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ungültiger Dateiname"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},New:{msgid:"New",msgstr:["Neu"]},"New filename":{msgid:"New filename",msgstr:["Neuer Dateiname"]},"New version":{msgid:"New version",msgstr:["Neue Version"]},paused:{msgid:"paused",msgstr:["Pausiert"]},"Preview image":{msgid:"Preview image",msgstr:["Vorschaubild"]},Rename:{msgid:"Rename",msgstr:["Umbenennen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},"Select all new files":{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},Skip:{msgid:"Skip",msgstr:["Überspringen"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Diese Datei überspringen","{count} Dateien überspringen"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unbekannte Größe"]},Upload:{msgid:"Upload",msgstr:["Hochladen"]},"Upload files":{msgid:"Upload files",msgstr:["Dateien hochladen"]},"Upload folders":{msgid:"Upload folders",msgstr:["Ordner hochladen"]},"Upload from device":{msgid:"Upload from device",msgstr:["Vom Gerät hochladen"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Das Hochladen wurde abgebrochen"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Das Hochladen wurde übersprungen"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Das Hochladen von "{folder}" wurde übersprungen']},"Upload progress":{msgid:"Upload progress",msgstr:["Fortschritt beim Hochladen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien möchtest du behalten?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kannst die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren."]}}}}},{locale:"de_DE",json:{charset:"utf-8",headers:{"Last-Translator":"Mark Ziegler <mark.ziegler@rakekniven.de>, 2024","Language-Team":"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)","Content-Type":"text/plain; charset=UTF-8",Language:"de_DE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\nMark Ziegler <mark.ziegler@rakekniven.de>, 2024\n"},msgstr:["Last-Translator: Mark Ziegler <mark.ziegler@rakekniven.de>, 2024\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de_DE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" ist ein verbotener Datei- oder Ordnername.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" ist ein verbotener Dateityp.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ist in einem Datei- oder Ordnernamen nicht zulässig.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Datei-Konflikt","{count} Datei-Konflikte"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} Datei-Konflikt in {dirname}","{count} Datei-Konflikte in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} Sekunden verbleiben"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} verbleibend"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["ein paar Sekunden verbleiben"]},Cancel:{msgid:"Cancel",msgstr:["Abbrechen"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Den gesamten Vorgang abbrechen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hochladen abbrechen"]},Continue:{msgid:"Continue",msgstr:["Fortsetzen"]},"Create new":{msgid:"Create new",msgstr:["Neu erstellen"]},"estimating time left":{msgid:"estimating time left",msgstr:["Berechne verbleibende Zeit"]},"Existing version":{msgid:"Existing version",msgstr:["Vorhandene Version"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Dateinamen dürfen nicht mit "{segment}" enden.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Wenn Sie beide Versionen auswählen, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ungültiger Dateiname"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum der letzten Änderung unbekannt"]},New:{msgid:"New",msgstr:["Neu"]},"New filename":{msgid:"New filename",msgstr:["Neuer Dateiname"]},"New version":{msgid:"New version",msgstr:["Neue Version"]},paused:{msgid:"paused",msgstr:["Pausiert"]},"Preview image":{msgid:"Preview image",msgstr:["Vorschaubild"]},Rename:{msgid:"Rename",msgstr:["Umbenennen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Alle Kontrollkästchen aktivieren"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Alle vorhandenen Dateien auswählen"]},"Select all new files":{msgid:"Select all new files",msgstr:["Alle neuen Dateien auswählen"]},Skip:{msgid:"Skip",msgstr:["Überspringen"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count} Datei überspringen","{count} Dateien überspringen"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unbekannte Größe"]},Upload:{msgid:"Upload",msgstr:["Hochladen"]},"Upload files":{msgid:"Upload files",msgstr:["Dateien hochladen"]},"Upload folders":{msgid:"Upload folders",msgstr:["Ordner hochladen"]},"Upload from device":{msgid:"Upload from device",msgstr:["Vom Gerät hochladen"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Das Hochladen wurde abgebrochen"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Das Hochladen wurde übersprungen"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Das Hochladen von "{folder}" wurde übersprungen']},"Upload progress":{msgid:"Upload progress",msgstr:["Fortschritt beim Hochladen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Welche Dateien möchten Sie behalten?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Sie können die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren."]}}}}},{locale:"el",json:{charset:"utf-8",headers:{"Last-Translator":"Nik Pap, 2022","Language-Team":"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)","Content-Type":"text/plain; charset=UTF-8",Language:"el","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nNik Pap, 2022\n"},msgstr:["Last-Translator: Nik Pap, 2022\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["απομένουν {seconds} δευτερόλεπτα"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["απομένουν {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["απομένουν λίγα δευτερόλεπτα"]},Add:{msgid:"Add",msgstr:["Προσθήκη"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Ακύρωση μεταφορτώσεων"]},"estimating time left":{msgid:"estimating time left",msgstr:["εκτίμηση του χρόνου που απομένει"]},paused:{msgid:"paused",msgstr:["σε παύση"]},"Upload files":{msgid:"Upload files",msgstr:["Μεταφόρτωση αρχείων"]}}}}},{locale:"en_GB",json:{charset:"utf-8",headers:{"Last-Translator":"Andi Chandler <andi@gowling.com>, 2024","Language-Team":"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)","Content-Type":"text/plain; charset=UTF-8",Language:"en_GB","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nAndi Chandler <andi@gowling.com>, 2024\n"},msgstr:["Last-Translator: Andi Chandler <andi@gowling.com>, 2024\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: en_GB\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" is a forbidden file or folder name.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" is a forbidden file type.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" is not allowed inside a file or folder name.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file conflict","{count} files conflict"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file conflict in {dirname}","{count} file conflicts in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} seconds left"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} left"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["a few seconds left"]},Cancel:{msgid:"Cancel",msgstr:["Cancel"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancel the entire operation"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancel uploads"]},Continue:{msgid:"Continue",msgstr:["Continue"]},"Create new":{msgid:"Create new",msgstr:["Create new"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimating time left"]},"Existing version":{msgid:"Existing version",msgstr:["Existing version"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filenames must not end with "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["If you select both versions, the incoming file will have a number added to its name."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Invalid filename"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Last modified date unknown"]},New:{msgid:"New",msgstr:["New"]},"New filename":{msgid:"New filename",msgstr:["New filename"]},"New version":{msgid:"New version",msgstr:["New version"]},paused:{msgid:"paused",msgstr:["paused"]},"Preview image":{msgid:"Preview image",msgstr:["Preview image"]},Rename:{msgid:"Rename",msgstr:["Rename"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Select all checkboxes"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Select all existing files"]},"Select all new files":{msgid:"Select all new files",msgstr:["Select all new files"]},Skip:{msgid:"Skip",msgstr:["Skip"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Skip this file","Skip {count} files"]},"Unknown size":{msgid:"Unknown size",msgstr:["Unknown size"]},Upload:{msgid:"Upload",msgstr:["Upload"]},"Upload files":{msgid:"Upload files",msgstr:["Upload files"]},"Upload folders":{msgid:"Upload folders",msgstr:["Upload folders"]},"Upload from device":{msgid:"Upload from device",msgstr:["Upload from device"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Upload has been cancelled"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Upload has been skipped"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Upload of "{folder}" has been skipped']},"Upload progress":{msgid:"Upload progress",msgstr:["Upload progress"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["When an incoming folder is selected, any conflicting files within it will also be overwritten."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Which files do you want to keep?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["You can either rename the file, skip this file or cancel the whole operation."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["You need to select at least one version of each file to continue."]}}}}},{locale:"eo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)","Content-Type":"text/plain; charset=UTF-8",Language:"eo","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es",json:{charset:"utf-8",headers:{"Last-Translator":"Julio C. Ortega, 2024","Language-Team":"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)","Content-Type":"text/plain; charset=UTF-8",Language:"es","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nFranciscoFJ <dev-ooo@satel-sa.com>, 2024\nJulio C. Ortega, 2024\n"},msgstr:["Last-Translator: Julio C. Ortega, 2024\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{filename}" contains invalid characters, how do you want to continue?':{msgid:'"{filename}" contains invalid characters, how do you want to continue?',msgstr:['"{filename}" contiene caracteres inválidos, ¿cómo desea continuar?']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflicto de archivo","{count} conflictos de archivo","{count} conflictos de archivo"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflicto de archivo en {dirname}","{count} conflictos de archivo en {dirname}","{count} conflictos de archivo en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan unos segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar toda la operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear nuevo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si selecciona ambas versionas, el archivo entrante le será agregado un número a su nombre."]},"Invalid file name":{msgid:"Invalid file name",msgstr:["Nombre de archivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Última fecha de modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar imagen"]},Rename:{msgid:"Rename",msgstr:["Renombrar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},Skip:{msgid:"Skip",msgstr:["Saltar"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Saltar este archivo","Saltar {count} archivos","Saltar {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Subir carpetas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Subir desde dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["La subida ha sido cancelada"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la subida"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando una carpeta entrante es seleccionada, cualquier de los archivos en conflictos también serán sobre-escritos."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando una carpeta entrante es seleccionada, el contenido es escrito en la carpeta existente y se realizará una resolución de conflictos recursiva."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_419",json:{charset:"utf-8",headers:{"Last-Translator":"ALEJANDRO CASTRO, 2022","Language-Team":"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_419","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nALEJANDRO CASTRO, 2022\n"},msgstr:["Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_419\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{tiempo} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan pocos segundos"]},Add:{msgid:"Add",msgstr:["agregar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]}}}}},{locale:"es_AR",json:{charset:"utf-8",headers:{"Last-Translator":"Matías Campo Hoet <matiascampo@gmail.com>, 2024","Language-Team":"Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_AR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMatías Campo Hoet <matiascampo@gmail.com>, 2024\n"},msgstr:["Last-Translator: Matías Campo Hoet <matiascampo@gmail.com>, 2024\nLanguage-Team: Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_AR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{filename}" contains invalid characters, how do you want to continue?':{msgid:'"{filename}" contains invalid characters, how do you want to continue?',msgstr:['"{filename}" contiene caracteres inválidos, ¿cómo desea continuar?']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflicto de archivo","{count} conflictos de archivo","{count} conflictos de archivo"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflicto de archivo en {dirname}","{count} conflictos de archivo en {dirname}","{count} conflictos de archivo en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan unos segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar toda la operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear nuevo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante."]},"Invalid file name":{msgid:"Invalid file name",msgstr:["Nombre de archivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Fecha de última modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Vista previa de imagen"]},Rename:{msgid:"Rename",msgstr:["Renombrar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},Skip:{msgid:"Skip",msgstr:["Omitir"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omitir este archivo","Omitir {count} archivos","Omitir {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload files":{msgid:"Upload files",msgstr:["Cargar archivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Cargar carpetas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Cargar desde dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Carga cancelada"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la carga"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también serán sobreescritos."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Qué archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_CL",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CL","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CL\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_CO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CO","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_CR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_CR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_DO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_DO","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_DO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_EC",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_EC","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_EC\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_GT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_GT","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_GT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_HN",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_HN","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_HN\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_MX",json:{charset:"utf-8",headers:{"Last-Translator":"Jehu Marcos Herrera Puentes, 2024","Language-Team":"Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_MX","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nJehu Marcos Herrera Puentes, 2024\n"},msgstr:["Last-Translator: Jehu Marcos Herrera Puentes, 2024\nLanguage-Team: Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_MX\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{filename}" contains invalid characters, how do you want to continue?':{msgid:'"{filename}" contains invalid characters, how do you want to continue?',msgstr:['"{filename}" contiene caracteres inválidos, ¿Cómo desea continuar?']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflicto de archivo","{count} conflictos de archivo","{count} archivos en conflicto"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} archivo en conflicto en {dirname}","{count} archivos en conflicto en {dirname}","{count} archivo en conflicto en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{tiempo} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quedan pocos segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar toda la operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar subidas"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear nuevo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tiempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante."]},"Invalid file name":{msgid:"Invalid file name",msgstr:["Nombre de archivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Fecha de última modificación desconocida"]},New:{msgid:"New",msgstr:["Nuevo"]},"New version":{msgid:"New version",msgstr:["Nueva versión"]},paused:{msgid:"paused",msgstr:["en pausa"]},"Preview image":{msgid:"Preview image",msgstr:["Previsualizar imagen"]},Rename:{msgid:"Rename",msgstr:["Renombrar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleccionar todas las casillas de verificación"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos los archivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos los archivos nuevos"]},Skip:{msgid:"Skip",msgstr:["Omitir"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omitir este archivo","Omitir {count} archivos","Omitir {count} archivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño desconocido"]},"Upload files":{msgid:"Upload files",msgstr:["Subir archivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Subir carpetas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Subir desde dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["La subida ha sido cancelada"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso de la subida"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también será sobrescrito."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["¿Cuáles archivos desea conservar?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar al menos una versión de cada archivo para continuar."]}}}}},{locale:"es_NI",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_NI","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_NI\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PA",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PA","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PA\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PE",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PE","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PE\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PR",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PR","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_PY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_PY","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_SV",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_SV","Plural-Forms":"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_SV\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"es_UY",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)","Content-Type":"text/plain; charset=UTF-8",Language:"es_UY","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_UY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"et_EE",json:{charset:"utf-8",headers:{"Last-Translator":"Taavo Roos, 2023","Language-Team":"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)","Content-Type":"text/plain; charset=UTF-8",Language:"et_EE","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMait R, 2022\nTaavo Roos, 2023\n"},msgstr:["Last-Translator: Taavo Roos, 2023\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: et_EE\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} jäänud sekundid"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} aega jäänud"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["jäänud mõni sekund"]},Add:{msgid:"Add",msgstr:["Lisa"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Tühista üleslaadimine"]},"estimating time left":{msgid:"estimating time left",msgstr:["hinnanguline järelejäänud aeg"]},paused:{msgid:"paused",msgstr:["pausil"]},"Upload files":{msgid:"Upload files",msgstr:["Lae failid üles"]}}}}},{locale:"eu",json:{charset:"utf-8",headers:{"Last-Translator":"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022","Language-Team":"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)","Content-Type":"text/plain; charset=UTF-8",Language:"eu","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\n"},msgstr:["Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eu\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundo geratzen dira"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} geratzen da"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["segundo batzuk geratzen dira"]},Add:{msgid:"Add",msgstr:["Gehitu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Ezeztatu igoerak"]},"estimating time left":{msgid:"estimating time left",msgstr:["kalkulatutako geratzen den denbora"]},paused:{msgid:"paused",msgstr:["geldituta"]},"Upload files":{msgid:"Upload files",msgstr:["Igo fitxategiak"]}}}}},{locale:"fa",json:{charset:"utf-8",headers:{"Last-Translator":"Fatemeh Komeily, 2023","Language-Team":"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)","Content-Type":"text/plain; charset=UTF-8",Language:"fa","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nFatemeh Komeily, 2023\n"},msgstr:["Last-Translator: Fatemeh Komeily, 2023\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fa\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["ثانیه های باقی مانده"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["باقی مانده"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["چند ثانیه مانده"]},Add:{msgid:"Add",msgstr:["اضافه کردن"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["کنسل کردن فایل های اپلود شده"]},"estimating time left":{msgid:"estimating time left",msgstr:["تخمین زمان باقی مانده"]},paused:{msgid:"paused",msgstr:["مکث کردن"]},"Upload files":{msgid:"Upload files",msgstr:["بارگذاری فایل ها"]}}}}},{locale:"fi",json:{charset:"utf-8",headers:{"Last-Translator":"teemue, 2024","Language-Team":"Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)","Content-Type":"text/plain; charset=UTF-8",Language:"fi_FI","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nJiri Grönroos <jiri.gronroos@iki.fi>, 2024\nthingumy, 2024\nteemue, 2024\n"},msgstr:["Last-Translator: teemue, 2024\nLanguage-Team: Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fi_FI\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" on kielletty tiedoston tai hakemiston nimi.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" on kielletty tiedostotyyppi.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ei ole sallittu tiedoston tai hakemiston nimessä.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} tiedoston ristiriita","{count} tiedoston ristiriita"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} tiedoston ristiriita kansiossa {dirname}","{count} tiedoston ristiriita kansiossa {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekuntia jäljellä"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} jäljellä"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["muutama sekunti jäljellä"]},Cancel:{msgid:"Cancel",msgstr:["Peruuta"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Peruuta koko toimenpide"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Peruuta lähetykset"]},Continue:{msgid:"Continue",msgstr:["Jatka"]},"Create new":{msgid:"Create new",msgstr:["Luo uusi"]},"estimating time left":{msgid:"estimating time left",msgstr:["arvioidaan jäljellä olevaa aikaa"]},"Existing version":{msgid:"Existing version",msgstr:["Olemassa oleva versio"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Tiedoston nimi ei saa päättyä "{segment}"']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jos valitset molemmat versiot, saapuvan tiedoston nimeen lisätään numero."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Kielletty/väärä tiedoston nimi"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Viimeisin muokkauspäivä on tuntematon"]},New:{msgid:"New",msgstr:["Uusi"]},"New filename":{msgid:"New filename",msgstr:["Uusi tiedostonimi"]},"New version":{msgid:"New version",msgstr:["Uusi versio"]},paused:{msgid:"paused",msgstr:["keskeytetty"]},"Preview image":{msgid:"Preview image",msgstr:["Esikatsele kuva"]},Rename:{msgid:"Rename",msgstr:["Nimeä uudelleen"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Valitse kaikki valintaruudut"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Valitse kaikki olemassa olevat tiedostot"]},"Select all new files":{msgid:"Select all new files",msgstr:["Valitse kaikki uudet tiedostot"]},Skip:{msgid:"Skip",msgstr:["Ohita"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ohita tämä tiedosto","Ohita {count} tiedostoa"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tuntematon koko"]},Upload:{msgid:"Upload",msgstr:["Lähetä"]},"Upload files":{msgid:"Upload files",msgstr:["Lähetä tiedostoja"]},"Upload folders":{msgid:"Upload folders",msgstr:["Lähetä kansioita"]},"Upload from device":{msgid:"Upload from device",msgstr:["Lähetä laitteelta"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Lähetys on peruttu"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Lähetys on ohitettu"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Hakemiston "{folder}" lähetys on ohitettu']},"Upload progress":{msgid:"Upload progress",msgstr:["Lähetyksen edistyminen"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Valittuasi saapuvien kansion, kaikki ristiriitaiset tiedostot kansiossa ylikirjoitetaan."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Valittuasi saapuvien kansion, sisältö kirjoitetaan olemassaolevaan kansioon ja suoritetaan rekursiivinen ristiriitojen poisto."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Mitkä tiedostot haluat säilyttää?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Voit joko nimetä tiedoston uudelleen, ohittaa tämän tiedoston tai peruuttaa koko toiminnon."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Sinun täytyy valita vähintään yksi versio jokaisesta tiedostosta jatkaaksesi."]}}}}},{locale:"fo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)","Content-Type":"text/plain; charset=UTF-8",Language:"fo","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fo\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"fr",json:{charset:"utf-8",headers:{"Last-Translator":"Arnaud Cazenave, 2024","Language-Team":"French (https://app.transifex.com/nextcloud/teams/64236/fr/)","Content-Type":"text/plain; charset=UTF-8",Language:"fr","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nBenoit Pruneau, 2024\njed boulahya, 2024\nJérôme HERBINET, 2024\nArnaud Cazenave, 2024\n"},msgstr:["Last-Translator: Arnaud Cazenave, 2024\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fr\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" est un nom de fichier ou de dossier interdit.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" est un type de fichier interdit.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["\"{segment}\" n'est pas autorisé dans le nom d'un fichier ou d'un dossier."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} fichier en conflit","{count} fichiers en conflit","{count} fichiers en conflit"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fichier en conflit dans {dirname}","{count} fichiers en conflit dans {dirname}","{count} fichiers en conflit dans {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secondes restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restant"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["quelques secondes restantes"]},Cancel:{msgid:"Cancel",msgstr:["Annuler"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annuler l'opération entière"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annuler les téléversements"]},Continue:{msgid:"Continue",msgstr:["Continuer"]},"Create new":{msgid:"Create new",msgstr:["Créer un nouveau"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimation du temps restant"]},"Existing version":{msgid:"Existing version",msgstr:["Version existante"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Le nom des fichiers ne doit pas finir par "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Si vous sélectionnez les deux versions, le nouveau fichier aura un nombre ajouté à son nom."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nom de fichier invalide"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Date de la dernière modification est inconnue"]},New:{msgid:"New",msgstr:["Nouveau"]},"New filename":{msgid:"New filename",msgstr:["Nouveau nom de fichier"]},"New version":{msgid:"New version",msgstr:["Nouvelle version"]},paused:{msgid:"paused",msgstr:["en pause"]},"Preview image":{msgid:"Preview image",msgstr:["Aperçu de l'image"]},Rename:{msgid:"Rename",msgstr:["Renommer"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Sélectionner toutes les cases à cocher"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Sélectionner tous les fichiers existants"]},"Select all new files":{msgid:"Select all new files",msgstr:["Sélectionner tous les nouveaux fichiers"]},Skip:{msgid:"Skip",msgstr:["Ignorer"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ignorer ce fichier","Ignorer {count} fichiers","Ignorer {count} fichiers"]},"Unknown size":{msgid:"Unknown size",msgstr:["Taille inconnue"]},Upload:{msgid:"Upload",msgstr:["Téléverser"]},"Upload files":{msgid:"Upload files",msgstr:["Téléverser des fichiers"]},"Upload folders":{msgid:"Upload folders",msgstr:["Téléverser des dossiers"]},"Upload from device":{msgid:"Upload from device",msgstr:["Téléverser depuis l'appareil"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Le téléversement a été annulé"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Le téléversement a été ignoré"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Le téléversement de "{folder}" a été ignoré']},"Upload progress":{msgid:"Upload progress",msgstr:["Progression du téléversement"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Lorsqu'un dossier entrant est sélectionné, le contenu est ajouté dans le dossier existant et une résolution récursive des conflits est effectuée."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quels fichiers souhaitez-vous conserver ?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Vous pouvez soit renommer le fichier, soit ignorer le fichier soit annuler toute l'opération."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Vous devez sélectionner au moins une version de chaque fichier pour continuer."]}}}}},{locale:"ga",json:{charset:"utf-8",headers:{"Last-Translator":"Aindriú Mac Giolla Eoin, 2024","Language-Team":"Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)","Content-Type":"text/plain; charset=UTF-8",Language:"ga","Plural-Forms":"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nAindriú Mac Giolla Eoin, 2024\n"},msgstr:["Last-Translator: Aindriú Mac Giolla Eoin, 2024\nLanguage-Team: Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ga\nPlural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['Is ainm toirmiscthe comhaid nó fillteáin é "{segment}".']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['Is cineál comhaid toirmiscthe é "{segment}".']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Ní cheadaítear "{segment}" taobh istigh d\'ainm comhaid nó fillteáin.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} coimhlint comhaid","{count} coimhlintí comhaid","{count} coimhlintí comhaid","{count} coimhlintí comhaid","{count} coimhlintí comhaid"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} coimhlint comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}","{count} coimhlintí comhaid i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} soicind fágtha"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} fágtha"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["cúpla soicind fágtha"]},Cancel:{msgid:"Cancel",msgstr:["Cealaigh"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cealaigh an oibríocht iomlán"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cealaigh uaslódálacha"]},Continue:{msgid:"Continue",msgstr:["Leanúint ar aghaidh"]},"Create new":{msgid:"Create new",msgstr:["Cruthaigh nua"]},"estimating time left":{msgid:"estimating time left",msgstr:["ag déanamh meastachán ar an am atá fágtha"]},"Existing version":{msgid:"Existing version",msgstr:["Leagan láithreach "]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Níor cheart go gcríochnaíonn comhaid chomhad le "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Má roghnaíonn tú an dá leagan, cuirfear uimhir leis an ainm a thagann isteach."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ainm comhaid neamhbhailí"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Dáta modhnaithe is déanaí anaithnid"]},New:{msgid:"New",msgstr:["Nua"]},"New filename":{msgid:"New filename",msgstr:["Ainm comhaid nua"]},"New version":{msgid:"New version",msgstr:["Leagan nua"]},paused:{msgid:"paused",msgstr:["sos"]},"Preview image":{msgid:"Preview image",msgstr:["Íomhá réamhamharc"]},Rename:{msgid:"Rename",msgstr:["Athainmnigh"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Roghnaigh gach ticbhosca"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Roghnaigh gach comhad atá ann cheana féin"]},"Select all new files":{msgid:"Select all new files",msgstr:["Roghnaigh gach comhad nua"]},Skip:{msgid:"Skip",msgstr:["Scipeáil"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Léim an comhad seo","Léim ar {count} comhad","Léim ar {count} comhad","Léim ar {count} comhad","Léim ar {count} comhad"]},"Unknown size":{msgid:"Unknown size",msgstr:["Méid anaithnid"]},Upload:{msgid:"Upload",msgstr:["Uaslódáil"]},"Upload files":{msgid:"Upload files",msgstr:["Uaslódáil comhaid"]},"Upload folders":{msgid:"Upload folders",msgstr:["Uaslódáil fillteáin"]},"Upload from device":{msgid:"Upload from device",msgstr:["Íosluchtaigh ó ghléas"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Cuireadh an t-uaslódáil ar ceal"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Léiríodh an uaslódáil"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Léiríodh an uaslódáil "{folder}".']},"Upload progress":{msgid:"Upload progress",msgstr:["Uaslódáil dul chun cinn"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Nuair a roghnaítear fillteán isteach, déanfar aon chomhad contrártha laistigh de a fhorscríobh freisin."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach san fhillteán atá ann cheana agus déantar réiteach coinbhleachta athchúrsach."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Cé na comhaid ar mhaith leat a choinneáil?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Is féidir leat an comhad a athainmniú, scipeáil an comhad seo nó an oibríocht iomlán a chealú."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú chun leanúint ar aghaidh."]}}}}},{locale:"gd",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)","Content-Type":"text/plain; charset=UTF-8",Language:"gd","Plural-Forms":"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gd\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"gl",json:{charset:"utf-8",headers:{"Last-Translator":"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2024","Language-Team":"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)","Content-Type":"text/plain; charset=UTF-8",Language:"gl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2024\n"},msgstr:["Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2024\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["«{segment}» é un nome vedado para un ficheiro ou cartafol."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["«{segment}» é un tipo de ficheiro vedado."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["«{segment}» non está permitido dentro dun nome de ficheiro ou cartafol."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} conflito de ficheiros","{count} conflitos de ficheiros"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflito de ficheiros en {dirname}","{count} conflitos de ficheiros en {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["faltan {seconds} segundos"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["falta {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["faltan uns segundos"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancela toda a operación"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar envíos"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Crear un novo"]},"estimating time left":{msgid:"estimating time left",msgstr:["calculando canto tempo falta"]},"Existing version":{msgid:"Existing version",msgstr:["Versión existente"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Os nomes de ficheiros non deben rematar con «{segment}»."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["O nome de ficheiro non é válido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Data da última modificación descoñecida"]},New:{msgid:"New",msgstr:["Nova"]},"New filename":{msgid:"New filename",msgstr:["Novo nome de ficheiro"]},"New version":{msgid:"New version",msgstr:["Nova versión"]},paused:{msgid:"paused",msgstr:["detido"]},"Preview image":{msgid:"Preview image",msgstr:["Vista previa da imaxe"]},Rename:{msgid:"Rename",msgstr:["Renomear"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marcar todas as caixas de selección"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleccionar todos os ficheiros existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleccionar todos os ficheiros novos"]},Skip:{msgid:"Skip",msgstr:["Omitir"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Omita este ficheiro","Omitir {count} ficheiros"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamaño descoñecido"]},Upload:{msgid:"Upload",msgstr:["Enviar"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar ficheiros"]},"Upload folders":{msgid:"Upload folders",msgstr:["Enviar cartafoles"]},"Upload from device":{msgid:"Upload from device",msgstr:["Enviar dende o dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["O envío foi cancelado"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["O envío foi omitido"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["O envío de «{folder}» foi omitido"]},"Upload progress":{msgid:"Upload progress",msgstr:["Progreso do envío"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Cando se selecciona un cartafol entrante, tamén se sobrescribirán os ficheiros en conflito dentro del."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e lévase a cabo unha resolución recursiva de conflitos."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Que ficheiros quere conservar?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Pode cambiar o nome do ficheiro, omitir este ficheiro ou cancelar toda a operación."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Debe seleccionar polo menos unha versión de cada ficheiro para continuar."]}}}}},{locale:"he",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)","Content-Type":"text/plain; charset=UTF-8",Language:"he","Plural-Forms":"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: he\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hi_IN",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)","Content-Type":"text/plain; charset=UTF-8",Language:"hi_IN","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hi_IN\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hr",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)","Content-Type":"text/plain; charset=UTF-8",Language:"hr","Plural-Forms":"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hr\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hsb",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)","Content-Type":"text/plain; charset=UTF-8",Language:"hsb","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hsb\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"hu",json:{charset:"utf-8",headers:{"Last-Translator":"Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024","Language-Team":"Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)","Content-Type":"text/plain; charset=UTF-8",Language:"hu_HU","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nGyuris Gellért <jobel@ujevangelizacio.hu>, 2024\n"},msgstr:["Last-Translator: Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\nLanguage-Team: Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu_HU\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['Tiltott fájl- vagy mappanév: „{segment}".']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['Tiltott fájltípus: „{segment}".']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Nem megengedett egy fájl- vagy mappanévben: „{segment}".']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}fájlt érintő konfliktus","{count} fájlt érintő konfliktus"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fájlt érintő konfliktus a mappában: {dirname}","{count}fájlt érintő konfliktus a mappában: {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{} másodperc van hátra"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} van hátra"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["pár másodperc van hátra"]},Cancel:{msgid:"Cancel",msgstr:["Mégse"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Teljes művelet megszakítása"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Feltöltések megszakítása"]},Continue:{msgid:"Continue",msgstr:["Tovább"]},"Create new":{msgid:"Create new",msgstr:["Új létrehozása"]},"estimating time left":{msgid:"estimating time left",msgstr:["hátralévő idő becslése"]},"Existing version":{msgid:"Existing version",msgstr:["Jelenlegi változat"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Fájlnevek nem végződhetnek erre: „{segment}”."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ha mindkét verziót kiválasztja, a bejövő fájl neve egy számmal egészül ki."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Érvénytelen fájlnév"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Utolsó módosítás dátuma ismeretlen"]},New:{msgid:"New",msgstr:["Új"]},"New filename":{msgid:"New filename",msgstr:["Új fájlnév"]},"New version":{msgid:"New version",msgstr:["Új verzió"]},paused:{msgid:"paused",msgstr:["szüneteltetve"]},"Preview image":{msgid:"Preview image",msgstr:["Kép előnézete"]},Rename:{msgid:"Rename",msgstr:["Átnevezés"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Minden jelölőnégyzet kijelölése"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Minden jelenlegi fájl kijelölése"]},"Select all new files":{msgid:"Select all new files",msgstr:["Minden új fájl kijelölése"]},Skip:{msgid:"Skip",msgstr:["Kihagyás"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ezen fájl kihagyása","{count}fájl kihagyása"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ismeretlen méret"]},Upload:{msgid:"Upload",msgstr:["Feltöltés"]},"Upload files":{msgid:"Upload files",msgstr:["Fájlok feltöltése"]},"Upload folders":{msgid:"Upload folders",msgstr:["Mappák feltöltése"]},"Upload from device":{msgid:"Upload from device",msgstr:["Feltöltés eszközről"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Feltöltés meg lett szakítva"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Feltöltés át lett ugorva"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["„{folder}” feltöltése át lett ugorva"]},"Upload progress":{msgid:"Upload progress",msgstr:["Feltöltési folyamat"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ha egy bejövő mappa van kiválasztva, a mappában lévő ütköző fájlok is felülírásra kerülnek."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Ha egy bejövő mappa van kiválasztva, a tartalom a meglévő mappába íródik és rekurzív konfliktusfeloldás történik."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Mely fájlokat kívánja megtartani?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Átnevezheti a fájlt, kihagyhatja ezt a fájlt, vagy törölheti az egész műveletet."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["A folytatáshoz minden fájlból legalább egy verziót ki kell választani."]}}}}},{locale:"hy",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)","Content-Type":"text/plain; charset=UTF-8",Language:"hy","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hy\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ia",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)","Content-Type":"text/plain; charset=UTF-8",Language:"ia","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ia\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"id",json:{charset:"utf-8",headers:{"Last-Translator":"Linerly <linerly@proton.me>, 2023","Language-Team":"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)","Content-Type":"text/plain; charset=UTF-8",Language:"id","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nEmpty Slot Filler, 2023\nLinerly <linerly@proton.me>, 2023\n"},msgstr:["Last-Translator: Linerly <linerly@proton.me>, 2023\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: id\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} berkas berkonflik"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} berkas berkonflik dalam {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} detik tersisa"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tersisa"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["tinggal sebentar lagi"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Batalkan unggahan"]},Continue:{msgid:"Continue",msgstr:["Lanjutkan"]},"estimating time left":{msgid:"estimating time left",msgstr:["memperkirakan waktu yang tersisa"]},"Existing version":{msgid:"Existing version",msgstr:["Versi yang ada"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Tanggal perubahan terakhir tidak diketahui"]},New:{msgid:"New",msgstr:["Baru"]},"New version":{msgid:"New version",msgstr:["Versi baru"]},paused:{msgid:"paused",msgstr:["dijeda"]},"Preview image":{msgid:"Preview image",msgstr:["Gambar pratinjau"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak centang"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Pilih semua berkas yang ada"]},"Select all new files":{msgid:"Select all new files",msgstr:["Pilih semua berkas baru"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Lewati {count} berkas"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukuran tidak diketahui"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Unggahan dibatalkan"]},"Upload files":{msgid:"Upload files",msgstr:["Unggah berkas"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Berkas mana yang Anda ingin tetap simpan?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan."]}}}}},{locale:"ig",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)","Content-Type":"text/plain; charset=UTF-8",Language:"ig","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ig\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"is",json:{charset:"utf-8",headers:{"Last-Translator":"Sveinn í Felli <sv1@fellsnet.is>, 2023","Language-Team":"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)","Content-Type":"text/plain; charset=UTF-8",Language:"is","Plural-Forms":"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nSveinn í Felli <sv1@fellsnet.is>, 2023\n"},msgstr:["Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2023\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: is\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} árekstur skráa","{count} árekstrar skráa"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} árekstur skráa í {dirname}","{count} árekstrar skráa í {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekúndur eftir"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} eftir"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["nokkrar sekúndur eftir"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Hætta við innsendingar"]},Continue:{msgid:"Continue",msgstr:["Halda áfram"]},"estimating time left":{msgid:"estimating time left",msgstr:["áætla tíma sem eftir er"]},"Existing version":{msgid:"Existing version",msgstr:["Fyrirliggjandi útgáfa"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti afrituðu skrárinnar."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Síðasta breytingadagsetning er óþekkt"]},New:{msgid:"New",msgstr:["Nýtt"]},"New version":{msgid:"New version",msgstr:["Ný útgáfa"]},paused:{msgid:"paused",msgstr:["í bið"]},"Preview image":{msgid:"Preview image",msgstr:["Forskoðun myndar"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Velja gátreiti"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Velja allar fyrirliggjandi skrár"]},"Select all new files":{msgid:"Select all new files",msgstr:["Velja allar nýjar skrár"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Sleppa þessari skrá","Sleppa {count} skrám"]},"Unknown size":{msgid:"Unknown size",msgstr:["Óþekkt stærð"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Hætt við innsendingu"]},"Upload files":{msgid:"Upload files",msgstr:["Senda inn skrár"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvaða skrám vilt þú vilt halda eftir?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram."]}}}}},{locale:"it",json:{charset:"utf-8",headers:{"Last-Translator":"albanobattistella <albanobattistella@gmail.com>, 2024","Language-Team":"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)","Content-Type":"text/plain; charset=UTF-8",Language:"it","Plural-Forms":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nFrancesco Sercia, 2024\nalbanobattistella <albanobattistella@gmail.com>, 2024\n"},msgstr:["Last-Translator: albanobattistella <albanobattistella@gmail.com>, 2024\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" è un nome di file o cartella proibito.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}"è un tipo di file proibito.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" non è consentito all\'interno di un nome di file o cartella.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file in conflitto","{count} file in conflitto","{count} file in conflitto"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file in conflitto in {dirname}","{count} file in conflitto in {dirname}","{count} file in conflitto in {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secondi rimanenti "]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} rimanente"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["alcuni secondi rimanenti"]},Cancel:{msgid:"Cancel",msgstr:["Annulla"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Annulla l'intera operazione"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Annulla i caricamenti"]},Continue:{msgid:"Continue",msgstr:["Continua"]},"Create new":{msgid:"Create new",msgstr:["Crea nuovo"]},"estimating time left":{msgid:"estimating time left",msgstr:["calcolo il tempo rimanente"]},"Existing version":{msgid:"Existing version",msgstr:["Versione esistente"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['I nomi dei file non devono terminare con "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero "]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nome file non valido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Ultima modifica sconosciuta"]},New:{msgid:"New",msgstr:["Nuovo"]},"New filename":{msgid:"New filename",msgstr:["Nuovo nome file"]},"New version":{msgid:"New version",msgstr:["Nuova versione"]},paused:{msgid:"paused",msgstr:["pausa"]},"Preview image":{msgid:"Preview image",msgstr:["Anteprima immagine"]},Rename:{msgid:"Rename",msgstr:["Rinomina"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Seleziona tutte le caselle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Seleziona tutti i file esistenti"]},"Select all new files":{msgid:"Select all new files",msgstr:["Seleziona tutti i nuovi file"]},Skip:{msgid:"Skip",msgstr:["Salta"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Salta questo file","Salta {count} file","Salta {count} file"]},"Unknown size":{msgid:"Unknown size",msgstr:["Dimensione sconosciuta"]},Upload:{msgid:"Upload",msgstr:["Caricamento"]},"Upload files":{msgid:"Upload files",msgstr:["Carica i file"]},"Upload folders":{msgid:"Upload folders",msgstr:["Carica cartelle"]},"Upload from device":{msgid:"Upload from device",msgstr:["Carica dal dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Caricamento annullato"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Il caricamento è stato saltato"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Il caricamento di "{folder}" è stato saltato']},"Upload progress":{msgid:"Upload progress",msgstr:["Progresso del caricamento"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno verranno sovrascritti."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quali file vuoi mantenere?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["È possibile rinominare il file, ignorarlo o annullare l'intera operazione."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Devi selezionare almeno una versione di ogni file per continuare"]}}}}},{locale:"ja",json:{charset:"utf-8",headers:{"Last-Translator":"kshimohata, 2024","Language-Team":"Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)","Content-Type":"text/plain; charset=UTF-8",Language:"ja_JP","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nkojima.imamura, 2024\nTakafumi AKAMATSU, 2024\ndevi, 2024\nkshimohata, 2024\n"},msgstr:["Last-Translator: kshimohata, 2024\nLanguage-Team: Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ja_JP\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" は禁止されているファイルまたはフォルダ名です。']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" は禁止されているファイルタイプです。']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['ファイルまたはフォルダ名に "{segment}" を含めることはできません。']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} ファイル数の競合"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} で {count} 個のファイルが競合しています"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["残り {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["残り {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["残り数秒"]},Cancel:{msgid:"Cancel",msgstr:["キャンセル"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["すべての操作をキャンセルする"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["アップロードをキャンセル"]},Continue:{msgid:"Continue",msgstr:["続ける"]},"Create new":{msgid:"Create new",msgstr:["新規作成"]},"estimating time left":{msgid:"estimating time left",msgstr:["概算残り時間"]},"Existing version":{msgid:"Existing version",msgstr:["既存バージョン"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['ファイル名の末尾に "{segment}" を付けることはできません。']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["両方のバージョンを選択した場合、受信ファイルの名前に数字が追加されます。"]},"Invalid filename":{msgid:"Invalid filename",msgstr:["無効なファイル名"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最終更新日不明"]},New:{msgid:"New",msgstr:["新規作成"]},"New filename":{msgid:"New filename",msgstr:["新しいファイル名"]},"New version":{msgid:"New version",msgstr:["新しいバージョン"]},paused:{msgid:"paused",msgstr:["一時停止中"]},"Preview image":{msgid:"Preview image",msgstr:["プレビュー画像"]},Rename:{msgid:"Rename",msgstr:["名前を変更"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["すべて選択"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["すべての既存ファイルを選択"]},"Select all new files":{msgid:"Select all new files",msgstr:["すべての新規ファイルを選択"]},Skip:{msgid:"Skip",msgstr:["スキップ"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count} 個のファイルをスキップする"]},"Unknown size":{msgid:"Unknown size",msgstr:["サイズ不明"]},Upload:{msgid:"Upload",msgstr:["アップロード"]},"Upload files":{msgid:"Upload files",msgstr:["ファイルをアップロード"]},"Upload folders":{msgid:"Upload folders",msgstr:["フォルダのアップロード"]},"Upload from device":{msgid:"Upload from device",msgstr:["デバイスからのアップロード"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["アップロードはキャンセルされました"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["アップロードがスキップされました"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" のアップロードがスキップされました']},"Upload progress":{msgid:"Upload progress",msgstr:["アップロード進行状況"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["受信フォルダが選択されると、その中の競合するファイルもすべて上書きされます。"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["受信フォルダが選択されると、その内容は既存のフォルダに書き込まれ、再帰的な競合解決が行われます。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["どのファイルを保持しますか?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["ファイル名を変更するか、このファイルをスキップするか、操作全体をキャンセルすることができます。"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["続行するには、各ファイルの少なくとも1つのバージョンを選択する必要があります。"]}}}}},{locale:"ka",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)","Content-Type":"text/plain; charset=UTF-8",Language:"ka","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ka_GE",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)","Content-Type":"text/plain; charset=UTF-8",Language:"ka_GE","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka_GE\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"kab",json:{charset:"utf-8",headers:{"Last-Translator":"ZiriSut, 2023","Language-Team":"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)","Content-Type":"text/plain; charset=UTF-8",Language:"kab","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nZiriSut, 2023\n"},msgstr:["Last-Translator: ZiriSut, 2023\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kab\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} tesdatin i d-yeqqimen"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} i d-yeqqimen"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["qqiment-d kra n tesdatin kan"]},Add:{msgid:"Add",msgstr:["Rnu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Sefsex asali"]},"estimating time left":{msgid:"estimating time left",msgstr:["asizel n wakud i d-yeqqimen"]},paused:{msgid:"paused",msgstr:["yeḥbes"]},"Upload files":{msgid:"Upload files",msgstr:["Sali-d ifuyla"]}}}}},{locale:"kk",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)","Content-Type":"text/plain; charset=UTF-8",Language:"kk","Plural-Forms":"nplurals=2; plural=(n!=1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kk\nPlural-Forms: nplurals=2; plural=(n!=1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"km",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)","Content-Type":"text/plain; charset=UTF-8",Language:"km","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: km\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"kn",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)","Content-Type":"text/plain; charset=UTF-8",Language:"kn","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kn\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ko",json:{charset:"utf-8",headers:{"Last-Translator":"이상오, 2024","Language-Team":"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)","Content-Type":"text/plain; charset=UTF-8",Language:"ko","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\n이상오, 2024\n"},msgstr:["Last-Translator: 이상오, 2024\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ko\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}"(은)는 금지된 파일 및 폴더 이름입니다.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}"(은)는 금지된 파일 형식입니다.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['파일이나 폴더 이름에 "{segment}"(을)를 사용할 수 없습니다.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}개의 파일이 충돌함"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname}에서 {count}개의 파일이 충돌함"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds}초 남음"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} 남음"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["곧 완료"]},Cancel:{msgid:"Cancel",msgstr:["취소"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["전체 작업을 취소"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["업로드 취소"]},Continue:{msgid:"Continue",msgstr:["확인"]},"Create new":{msgid:"Create new",msgstr:["새로 만들기"]},"estimating time left":{msgid:"estimating time left",msgstr:["남은 시간 계산"]},"Existing version":{msgid:"Existing version",msgstr:["현재 버전"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['파일 이름은 "{segment}"(으)로 끝나야 합니다.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["두 파일을 모두 선택하면, 들어오는 파일의 이름에 번호가 추가됩니다."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["잘못된 파일 이름"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["최근 수정일 알 수 없음"]},New:{msgid:"New",msgstr:["새로 만들기"]},"New filename":{msgid:"New filename",msgstr:["새 파일 이름"]},"New version":{msgid:"New version",msgstr:["새 버전"]},paused:{msgid:"paused",msgstr:["일시정지됨"]},"Preview image":{msgid:"Preview image",msgstr:["미리보기 이미지"]},Rename:{msgid:"Rename",msgstr:["이름 바꾸기"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["모든 체크박스 선택"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["기존 파일을 모두 선택"]},"Select all new files":{msgid:"Select all new files",msgstr:["새로운 파일을 모두 선택"]},Skip:{msgid:"Skip",msgstr:["건너뛰기"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["{count}개의 파일 넘기기"]},"Unknown size":{msgid:"Unknown size",msgstr:["크기를 알 수 없음"]},Upload:{msgid:"Upload",msgstr:["업로드"]},"Upload files":{msgid:"Upload files",msgstr:["파일 업로드"]},"Upload folders":{msgid:"Upload folders",msgstr:["폴더 업로드"]},"Upload from device":{msgid:"Upload from device",msgstr:["장치에서 업로드"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["업로드가 취소되었습니다."]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["업로드를 건너뛰었습니다."]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" 업로드를 건너뛰었습니다.']},"Upload progress":{msgid:"Upload progress",msgstr:["업로드 진행도"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["들어오는 폴더를 선택했다면, 충돌하는 내부 파일들은 덮어쓰기 됩니다."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["들어오는 폴더를 선택했다면 내용물이 그 기존 폴더 안에 작성되고, 전체적으로 충돌 해결을 수행합니다."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["어떤 파일을 보존하시겠습니까?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["파일 이름을 바꾸거나, 이 파일을 건너뛰거나 모든 작업을 취소할 수 있습니다."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다."]}}}}},{locale:"la",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)","Content-Type":"text/plain; charset=UTF-8",Language:"la","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: la\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lb",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)","Content-Type":"text/plain; charset=UTF-8",Language:"lb","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lb\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lo",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)","Content-Type":"text/plain; charset=UTF-8",Language:"lo","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lo\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lt_LT",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)","Content-Type":"text/plain; charset=UTF-8",Language:"lt_LT","Plural-Forms":"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lt_LT\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"lv",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)","Content-Type":"text/plain; charset=UTF-8",Language:"lv","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lv\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"mk",json:{charset:"utf-8",headers:{"Last-Translator":"Сашко Тодоров <sasetodorov@gmail.com>, 2022","Language-Team":"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)","Content-Type":"text/plain; charset=UTF-8",Language:"mk","Plural-Forms":"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nСашко Тодоров <sasetodorov@gmail.com>, 2022\n"},msgstr:["Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mk\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["преостануваат {seconds} секунди"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["преостанува {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["уште неколку секунди"]},Add:{msgid:"Add",msgstr:["Додади"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Прекини прикачување"]},"estimating time left":{msgid:"estimating time left",msgstr:["приближно преостанато време"]},paused:{msgid:"paused",msgstr:["паузирано"]},"Upload files":{msgid:"Upload files",msgstr:["Прикачување датотеки"]}}}}},{locale:"mn",json:{charset:"utf-8",headers:{"Last-Translator":"BATKHUYAG Ganbold, 2023","Language-Team":"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)","Content-Type":"text/plain; charset=UTF-8",Language:"mn","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nBATKHUYAG Ganbold, 2023\n"},msgstr:["Last-Translator: BATKHUYAG Ganbold, 2023\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mn\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} секунд үлдсэн"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} үлдсэн"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["хэдхэн секунд үлдсэн"]},Add:{msgid:"Add",msgstr:["Нэмэх"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Илгээлтийг цуцлах"]},"estimating time left":{msgid:"estimating time left",msgstr:["Үлдсэн хугацааг тооцоолж байна"]},paused:{msgid:"paused",msgstr:["түр зогсоосон"]},"Upload files":{msgid:"Upload files",msgstr:["Файл илгээх"]}}}}},{locale:"mr",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)","Content-Type":"text/plain; charset=UTF-8",Language:"mr","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mr\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ms_MY",json:{charset:"utf-8",headers:{"Last-Translator":"DT Navy, 2024","Language-Team":"Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)","Content-Type":"text/plain; charset=UTF-8",Language:"ms_MY","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nDT Navy, 2024\n"},msgstr:["Last-Translator: DT Navy, 2024\nLanguage-Team: Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ms_MY\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" adalah fail dan nama folder yang dilarang']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" adalah jenis fail yang dilarang']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" adalah tidak dibenarkan dalam nama fail atau folder']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} files bertindih"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} fail bertindih dalam {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saat tinggal"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} tinggal"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["beberapa saat lagi"]},Cancel:{msgid:"Cancel",msgstr:["batal"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Batal keseluruhan operasi"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["batal muat naik"]},Continue:{msgid:"Continue",msgstr:["teruskan"]},"Create new":{msgid:"Create new",msgstr:["Buat baharu"]},"estimating time left":{msgid:"estimating time left",msgstr:["jangkaan masa tinggal"]},"Existing version":{msgid:"Existing version",msgstr:["versi sedia ada"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Nama fail tidak boleh berakhir dengan "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jika dua versi dipilih, fail yang masuk akan ditambah bilangan pada namanya."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nama fail tidak sah"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Tarikh terakhir diubah suai tidak diketahui"]},New:{msgid:"New",msgstr:["Baru"]},"New filename":{msgid:"New filename",msgstr:["Nama fail baharu"]},"New version":{msgid:"New version",msgstr:["Versi baharu"]},paused:{msgid:"paused",msgstr:["Jeda"]},"Preview image":{msgid:"Preview image",msgstr:["Pratonton gambar"]},Rename:{msgid:"Rename",msgstr:["Menamakan semula"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Pilih semua kotak pilihan"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Pilih semua fail yang wujud"]},"Select all new files":{msgid:"Select all new files",msgstr:["pilih semua fail baharu"]},Skip:{msgid:"Skip",msgstr:["Langkau"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Langkau fail {count}"]},"Unknown size":{msgid:"Unknown size",msgstr:["Saiz tidak diketahui"]},Upload:{msgid:"Upload",msgstr:["Muat naik"]},"Upload files":{msgid:"Upload files",msgstr:["Muat naik fail"]},"Upload folders":{msgid:"Upload folders",msgstr:["Muat naik folder"]},"Upload from device":{msgid:"Upload from device",msgstr:["Muat naik dari peranti"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Muat naik telah dibatalkan"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Muat naik telah dilangkau"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Muat naik "{folder}" telah dilangkau']},"Upload progress":{msgid:"Upload progress",msgstr:["Kemajuan muat naik"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Apabila folder masuk dipilih, sebarang fail bertindih akan ditulis semula"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Apabila folder masuk dipilih, kandungan ditulis ke dalam folder sedia ada dan penyelesaian konflik rekursif dilakukan."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Fail yang mana ingin disimpan?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["And boleh menamakan semula fail, langkau fail tersebut atau membatalkan keseluruhan operasi"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Anda perlu memilih sekurangnya satu versi setiap fail untuk teruskan"]}}}}},{locale:"my",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)","Content-Type":"text/plain; charset=UTF-8",Language:"my","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: my\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nb",json:{charset:"utf-8",headers:{"Last-Translator":"Roger Knutsen, 2024","Language-Team":"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nb_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nRoger Knutsen, 2024\n"},msgstr:["Last-Translator: Roger Knutsen, 2024\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nb_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" er et forbudt fil- eller mappenavn.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" er en forbudt filtype.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" er ikke tillatt i et fil- eller mappenavn.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} file conflict","{count} filkonflikter"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} file conflict in {dirname}","{count} filkonflikter i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekunder igjen"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} igjen"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["noen få sekunder igjen"]},Cancel:{msgid:"Cancel",msgstr:["Avbryt"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Avbryt hele operasjonen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Avbryt opplastninger"]},Continue:{msgid:"Continue",msgstr:["Fortsett"]},"Create new":{msgid:"Create new",msgstr:["Opprett ny"]},"estimating time left":{msgid:"estimating time left",msgstr:["Estimerer tid igjen"]},"Existing version":{msgid:"Existing version",msgstr:["Gjeldende versjon"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filnavn må ikke slutte med "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Hvis du velger begge versjonene, vil den innkommende filen ha et nummer lagt til navnet."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ugyldig filnavn"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Siste gang redigert ukjent"]},New:{msgid:"New",msgstr:["Ny"]},"New filename":{msgid:"New filename",msgstr:["Nytt filnavn"]},"New version":{msgid:"New version",msgstr:["Ny versjon"]},paused:{msgid:"paused",msgstr:["pauset"]},"Preview image":{msgid:"Preview image",msgstr:["Forhåndsvis bilde"]},Rename:{msgid:"Rename",msgstr:["Omdøp"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Velg alle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Velg alle eksisterende filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Velg alle nye filer"]},Skip:{msgid:"Skip",msgstr:["Hopp over"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Skip this file","Hopp over {count} filer"]},"Unknown size":{msgid:"Unknown size",msgstr:["Ukjent størrelse"]},"Upload files":{msgid:"Upload files",msgstr:["Last opp filer"]},"Upload folders":{msgid:"Upload folders",msgstr:["Last opp mapper"]},"Upload from device":{msgid:"Upload from device",msgstr:["Last opp fra enhet"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Opplastingen er kansellert"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Opplastingen er hoppet over"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Opplasting av "{folder}" er hoppet over']},"Upload progress":{msgid:"Upload progress",msgstr:["Fremdrift, opplasting"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Når en innkommende mappe velges, blir eventuelle motstridende filer i den også overskrevet."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Når en innkommende mappe velges, skrives innholdet inn i den eksisterende mappen, og en rekursiv konfliktløsning utføres."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hvilke filer vil du beholde?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kan enten gi nytt navn til filen, hoppe over denne filen eller avbryte hele operasjonen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du må velge minst en versjon av hver fil for å fortsette."]}}}}},{locale:"ne",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)","Content-Type":"text/plain; charset=UTF-8",Language:"ne","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ne\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"nl",json:{charset:"utf-8",headers:{"Last-Translator":"Rico <rico-schwab@hotmail.com>, 2023","Language-Team":"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)","Content-Type":"text/plain; charset=UTF-8",Language:"nl","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nRico <rico-schwab@hotmail.com>, 2023\n"},msgstr:["Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nl\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Nog {seconds} seconden"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{seconds} over"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Nog een paar seconden"]},Add:{msgid:"Add",msgstr:["Voeg toe"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Uploads annuleren"]},"estimating time left":{msgid:"estimating time left",msgstr:["Schatting van de resterende tijd"]},paused:{msgid:"paused",msgstr:["Gepauzeerd"]},"Upload files":{msgid:"Upload files",msgstr:["Upload bestanden"]}}}}},{locale:"nn_NO",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)","Content-Type":"text/plain; charset=UTF-8",Language:"nn_NO","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"oc",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)","Content-Type":"text/plain; charset=UTF-8",Language:"oc","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: oc\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"pl",json:{charset:"utf-8",headers:{"Last-Translator":"Piotr Strębski <strebski@gmail.com>, 2024","Language-Team":"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)","Content-Type":"text/plain; charset=UTF-8",Language:"pl","Plural-Forms":"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nPiotr Strębski <strebski@gmail.com>, 2024\n"},msgstr:["Last-Translator: Piotr Strębski <strebski@gmail.com>, 2024\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pl\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}” to zabroniona nazwa pliku lub folderu."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["„{segment}” jest zabronionym typem pliku."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["Znak „{segment}” nie jest dozwolony w nazwie pliku lub folderu."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["konflikt 1 pliku","{count} konfliktów plików","{count} konfliktów plików","{count} konfliktów plików"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} konfliktowy plik w {dirname}","{count} konfliktowych plików w {dirname}","{count} konfliktowych plików w {dirname}","{count} konfliktowych plików w {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Pozostało {seconds} sekund"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Pozostało {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Pozostało kilka sekund"]},Cancel:{msgid:"Cancel",msgstr:["Anuluj"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Anuluj całą operację"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Anuluj wysyłanie"]},Continue:{msgid:"Continue",msgstr:["Kontynuuj"]},"Create new":{msgid:"Create new",msgstr:["Utwórz nowe"]},"estimating time left":{msgid:"estimating time left",msgstr:["Szacowanie pozostałego czasu"]},"Existing version":{msgid:"Existing version",msgstr:["Istniejąca wersja"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Nazwy plików nie mogą kończyć się na „{segment}”."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Jeśli wybierzesz obie wersje, do nazwy pliku przychodzącego zostanie dodany numer."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nieprawidłowa nazwa pliku"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Nieznana data ostatniej modyfikacji"]},New:{msgid:"New",msgstr:["Nowy"]},"New filename":{msgid:"New filename",msgstr:["Nowa nazwa pliku"]},"New version":{msgid:"New version",msgstr:["Nowa wersja"]},paused:{msgid:"paused",msgstr:["Wstrzymane"]},"Preview image":{msgid:"Preview image",msgstr:["Podgląd obrazu"]},Rename:{msgid:"Rename",msgstr:["Zmiana nazwy"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Zaznacz wszystkie pola wyboru"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Zaznacz wszystkie istniejące pliki"]},"Select all new files":{msgid:"Select all new files",msgstr:["Zaznacz wszystkie nowe pliki"]},Skip:{msgid:"Skip",msgstr:["Pomiń"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Pomiń 1 plik","Pomiń {count} plików","Pomiń {count} plików","Pomiń {count} plików"]},"Unknown size":{msgid:"Unknown size",msgstr:["Nieznany rozmiar"]},Upload:{msgid:"Upload",msgstr:["Prześlij"]},"Upload files":{msgid:"Upload files",msgstr:["Wyślij pliki"]},"Upload folders":{msgid:"Upload folders",msgstr:["Prześlij foldery"]},"Upload from device":{msgid:"Upload from device",msgstr:["Prześlij z urządzenia"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Przesyłanie zostało anulowane"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Przesyłanie zostało pominięte"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Przesyłanie „{folder}” zostało pominięte"]},"Upload progress":{msgid:"Upload progress",msgstr:["Postęp wysyłania"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Po wybraniu folderu przychodzącego wszelkie znajdujące się w nim pliki powodujące konflikt również zostaną nadpisane."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Po wybraniu folderu przychodzącego zawartość jest zapisywana w istniejącym folderze i przeprowadzane jest rekursywne rozwiązywanie konfliktów."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Które pliki chcesz zachować?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Możesz zmienić nazwę pliku, pominąć ten plik lub anulować całą operację."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku."]}}}}},{locale:"ps",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)","Content-Type":"text/plain; charset=UTF-8",Language:"ps","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ps\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"pt_BR",json:{charset:"utf-8",headers:{"Last-Translator":"Paulo Schopf, 2024","Language-Team":"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_BR","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\nRodrigo Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 2024\nPaulo Schopf, 2024\n"},msgstr:["Last-Translator: Paulo Schopf, 2024\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_BR\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" é um nome de arquivo ou pasta proibido.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" é um tipo de arquivo proibido.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" não é permitido dentro de um nome de arquivo ou pasta.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} arquivos em conflito","{count} arquivos em conflito","{count} arquivos em conflito"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} conflitos de arquivo em {dirname}","{count} conflitos de arquivo em {dirname}","{count} conflitos de arquivo em {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} segundos restantes"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} restante"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["alguns segundos restantes"]},Cancel:{msgid:"Cancel",msgstr:["Cancelar"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Cancelar a operação inteira"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar uploads"]},Continue:{msgid:"Continue",msgstr:["Continuar"]},"Create new":{msgid:"Create new",msgstr:["Criar novo"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimando tempo restante"]},"Existing version":{msgid:"Existing version",msgstr:["Versão existente"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Os nomes dos arquivos não devem terminar com "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Se você selecionar ambas as versões, o arquivo recebido terá um número adicionado ao seu nome."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nome de arquivo inválido"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Data da última modificação desconhecida"]},New:{msgid:"New",msgstr:["Novo"]},"New filename":{msgid:"New filename",msgstr:["Novo nome de arquivo"]},"New version":{msgid:"New version",msgstr:["Nova versão"]},paused:{msgid:"paused",msgstr:["pausado"]},"Preview image":{msgid:"Preview image",msgstr:["Visualizar imagem"]},Rename:{msgid:"Rename",msgstr:["Renomear"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Marque todas as caixas de seleção"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Selecione todos os arquivos existentes"]},"Select all new files":{msgid:"Select all new files",msgstr:["Selecione todos os novos arquivos"]},Skip:{msgid:"Skip",msgstr:["Pular"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Ignorar {count} arquivos","Ignorar {count} arquivos","Ignorar {count} arquivos"]},"Unknown size":{msgid:"Unknown size",msgstr:["Tamanho desconhecido"]},Upload:{msgid:"Upload",msgstr:["Enviar"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar arquivos"]},"Upload folders":{msgid:"Upload folders",msgstr:["Enviar pastas"]},"Upload from device":{msgid:"Upload from device",msgstr:["Carregar do dispositivo"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["O upload foi cancelado"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["O upload foi pulado"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['O upload de "{folder}" foi ignorado']},"Upload progress":{msgid:"Upload progress",msgstr:["Envio em progresso"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Quando uma pasta é selecionada, quaisquer arquivos dentro dela também serão sobrescritos."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e uma resolução de conflito recursiva é executada."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Quais arquivos você deseja manter?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Você pode renomear o arquivo, pular este arquivo ou cancelar toda a operação."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Você precisa selecionar pelo menos uma versão de cada arquivo para continuar."]}}}}},{locale:"pt_PT",json:{charset:"utf-8",headers:{"Last-Translator":"Manuela Silva <mmsrs@sky.com>, 2022","Language-Team":"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)","Content-Type":"text/plain; charset=UTF-8",Language:"pt_PT","Plural-Forms":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nManuela Silva <mmsrs@sky.com>, 2022\n"},msgstr:["Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_PT\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["faltam {seconds} segundo(s)"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["faltam {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["faltam uns segundos"]},Add:{msgid:"Add",msgstr:["Adicionar"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Cancelar envios"]},"estimating time left":{msgid:"estimating time left",msgstr:["tempo em falta estimado"]},paused:{msgid:"paused",msgstr:["pausado"]},"Upload files":{msgid:"Upload files",msgstr:["Enviar ficheiros"]}}}}},{locale:"ro",json:{charset:"utf-8",headers:{"Last-Translator":"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022","Language-Team":"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)","Content-Type":"text/plain; charset=UTF-8",Language:"ro","Plural-Forms":"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\n"},msgstr:["Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ro\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} secunde rămase"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["{time} rămas"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["câteva secunde rămase"]},Add:{msgid:"Add",msgstr:["Adaugă"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Anulați încărcările"]},"estimating time left":{msgid:"estimating time left",msgstr:["estimarea timpului rămas"]},paused:{msgid:"paused",msgstr:["pus pe pauză"]},"Upload files":{msgid:"Upload files",msgstr:["Încarcă fișiere"]}}}}},{locale:"ru",json:{charset:"utf-8",headers:{"Last-Translator":"Александр, 2024","Language-Team":"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)","Content-Type":"text/plain; charset=UTF-8",Language:"ru","Plural-Forms":"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nВлад, 2024\nAlex <fedotov22091982@gmail.com>, 2024\nRoman Stepanov, 2024\nMaksim Sukharev, 2024\nАлександр, 2024\n"},msgstr:["Last-Translator: Александр, 2024\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["«{segment}» — это запрещенное имя файла или папки."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["«{segment}» — это запрещенный тип файла."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["«{segment}» не допускается в имени файла или папки."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["конфликт {count} файла","конфликт {count} файлов","конфликт {count} файлов","конфликт {count} файлов"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["конфликт {count} файла в «{dirname}»","конфликт {count} файлов в «{dirname}»","конфликт {count} файлов в «{dirname}»","конфликт {count} файлов в «{dirname}»"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["осталось {seconds} секунд"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["осталось {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["осталось несколько секунд"]},Cancel:{msgid:"Cancel",msgstr:["Отменить"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Отменить операцию целиком"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Отменить загрузки"]},Continue:{msgid:"Continue",msgstr:["Продолжить"]},"Create new":{msgid:"Create new",msgstr:["Создать новое"]},"estimating time left":{msgid:"estimating time left",msgstr:["оценка оставшегося времени"]},"Existing version":{msgid:"Existing version",msgstr:["Текущая версия"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Имена файлов не должны заканчиваться на «{segment}»"]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Если вы выберете обе версии, к имени входящего файла будет добавлен номер."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Неверное имя файла"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Дата последнего изменения неизвестна"]},New:{msgid:"New",msgstr:["Новый"]},"New filename":{msgid:"New filename",msgstr:["Новое имя файла"]},"New version":{msgid:"New version",msgstr:["Новая версия"]},paused:{msgid:"paused",msgstr:["приостановлено"]},"Preview image":{msgid:"Preview image",msgstr:["Предварительный просмотр"]},Rename:{msgid:"Rename",msgstr:["Переименовать"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Выбрать все"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Выбрать все существующие файлы"]},"Select all new files":{msgid:"Select all new files",msgstr:["Выбрать все новые файлы"]},Skip:{msgid:"Skip",msgstr:["Пропустить"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Пропустить файл","Пропустить {count} файла","Пропустить {count} файлов","Пропустить {count} файлов"]},"Unknown size":{msgid:"Unknown size",msgstr:["Неизвестный размер"]},Upload:{msgid:"Upload",msgstr:["Загрузить"]},"Upload files":{msgid:"Upload files",msgstr:["Загрузить файлы"]},"Upload folders":{msgid:"Upload folders",msgstr:["Загрузить папки"]},"Upload from device":{msgid:"Upload from device",msgstr:["Загрузить с устройства"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Загрузка была отменена"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Загрузка была пропущена"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Загрузка «{folder}» была пропущена"]},"Upload progress":{msgid:"Upload progress",msgstr:["Прогресс загрузки"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Какие файлы вы хотите сохранить?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Вы можете переименовать файл, пропустить этот файл или отменить всю операцию."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла."]}}}}},{locale:"sc",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)","Content-Type":"text/plain; charset=UTF-8",Language:"sc","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sc\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"si",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)","Content-Type":"text/plain; charset=UTF-8",Language:"si","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sk",json:{charset:"utf-8",headers:{"Last-Translator":"Tomas Rusnak <linkermail@gmail.com>, 2024","Language-Team":"Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)","Content-Type":"text/plain; charset=UTF-8",Language:"sk_SK","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJozef Gaal <preklady@mayday.sk>, 2024\nTomas Rusnak <linkermail@gmail.com>, 2024\n"},msgstr:["Last-Translator: Tomas Rusnak <linkermail@gmail.com>, 2024\nLanguage-Team: Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sk_SK\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}“ je zakázaný názov súboru alebo priečinka."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" je zákazaný typ súboru.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}“ je zakázané v názve súboru alebo adresára.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} súbor má konflikt","{count} súbory majú konflikt","{count} súborov má konflikt","{count} súborov má konflikt"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} súborový konflikt v {dirname}","{count} súborové konflikty v {dirname}","{count} súborových konfliktov v {dirname}","{count} súborových konfliktov v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekúnd zostáva"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} zostáva"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["zostáva niekoľko sekúnd"]},Cancel:{msgid:"Cancel",msgstr:["Zrušiť"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Zrušiť celú operáciu"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Zrušiť nahrávanie"]},Continue:{msgid:"Continue",msgstr:["Pokračovať"]},"Create new":{msgid:"Create new",msgstr:["Vytvoriť nové"]},"estimating time left":{msgid:"estimating time left",msgstr:["odhadovanie zostávajúceho času"]},"Existing version":{msgid:"Existing version",msgstr:["Existujúca verzia"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Názvy súborov nesmú končiť znakom "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ak vyberiete obe verzie, k názvu prichádzajúceho súboru sa pridá číslo."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Neplatný názov súboru"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Dátum poslednej úpravy neznámy"]},New:{msgid:"New",msgstr:["Nový"]},"New filename":{msgid:"New filename",msgstr:["Nový názov súboru"]},"New version":{msgid:"New version",msgstr:["Nová verzia"]},paused:{msgid:"paused",msgstr:["pozastavené"]},"Preview image":{msgid:"Preview image",msgstr:["Náhľad obrázka"]},Rename:{msgid:"Rename",msgstr:["Premenovať"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Označiť všetky výberové políčka"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Vybrať všetky existujúce súbory"]},"Select all new files":{msgid:"Select all new files",msgstr:["Vybrať všetky nové súbory"]},Skip:{msgid:"Skip",msgstr:["Preskočiť"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Preskočiť tento súbor","Preskočiť {count} súbory","Preskočiť {count} súborov","Preskočiť {count} súborov"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznáma veľkosť"]},Upload:{msgid:"Upload",msgstr:["Nahrať"]},"Upload files":{msgid:"Upload files",msgstr:["Nahrať súbory"]},"Upload folders":{msgid:"Upload folders",msgstr:["Nahrať priečinky"]},"Upload from device":{msgid:"Upload from device",msgstr:["Nahrať zo zariadenia"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Nahrávanie bolo zrušené"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Nahrávanie bolo preskočené"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Nahrávanie "{folder}" bolo preskočené']},"Upload progress":{msgid:"Upload progress",msgstr:["Priebeh nahrávania"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Keď je vybraný prichádzajúci priečinok, prepíšu sa aj všetky konfliktné súbory v ňom."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Po výbere prichádzajúceho priečinka sa obsah zapíše do existujúceho priečinka a vykoná sa rekurzívne riešenie konfliktov."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Ktoré súbory chcete ponechať?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Súbor môžete premenovať, preskočiť alebo zrušiť celú operáciu."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Ak chcete pokračovať, musíte vybrať aspoň jednu verziu každého súboru."]}}}}},{locale:"sl",json:{charset:"utf-8",headers:{"Last-Translator":"Simon Bogina, 2024","Language-Team":"Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)","Content-Type":"text/plain; charset=UTF-8",Language:"sl","Plural-Forms":"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nJan Kraljič <jan.kraljic@patware.eu>, 2024\nSimon Bogina, 2024\n"},msgstr:["Last-Translator: Simon Bogina, 2024\nLanguage-Team: Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" je prepovedano ime datoteka ali mape.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" je prepovedan tip datoteke.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" ni dovoljeno v imenu datoteke ali mape.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["1{count} datoteka je v konfliktu","1{count} datoteki sta v konfiktu","1{count} datotek je v konfliktu","{count} datotek je v konfliktu"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} datoteka je v konfiktu v {dirname}","{count} datoteki sta v konfiktu v {dirname}","{count} datotek je v konfiktu v {dirname}","{count} konfliktov datotek v {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["še {seconds} sekund"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["še {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["še nekaj sekund"]},Cancel:{msgid:"Cancel",msgstr:["Prekliči"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Prekliči celotni postopek"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Prekliči pošiljanje"]},Continue:{msgid:"Continue",msgstr:["Nadaljuj"]},"Create new":{msgid:"Create new",msgstr:["Ustvari nov"]},"estimating time left":{msgid:"estimating time left",msgstr:["ocenjujem čas do konca"]},"Existing version":{msgid:"Existing version",msgstr:["Obstoječa različica"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Imena datotek se ne smejo končati s "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Če izberete obe različici, bo imenu dohodne datoteke na koncu dodana številka."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Nepravilno ime datoteke"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Datum zadnje spremembe neznan"]},New:{msgid:"New",msgstr:["Nov"]},"New filename":{msgid:"New filename",msgstr:["Novo ime datoteke"]},"New version":{msgid:"New version",msgstr:["Nova različica"]},paused:{msgid:"paused",msgstr:["v premoru"]},"Preview image":{msgid:"Preview image",msgstr:["Predogled slike"]},Rename:{msgid:"Rename",msgstr:["Preimenuj"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Izberi vsa potrditvena polja"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Označi vse obstoječe datoteke"]},"Select all new files":{msgid:"Select all new files",msgstr:["Označi vse nove datoteke"]},Skip:{msgid:"Skip",msgstr:["Preskoči"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Preskoči datoteko","Preskoči {count} datoteki","Preskoči {count} datotek","Preskoči {count} datotek"]},"Unknown size":{msgid:"Unknown size",msgstr:["Neznana velikost"]},Upload:{msgid:"Upload",msgstr:["Naloži"]},"Upload files":{msgid:"Upload files",msgstr:["Naloži datoteke"]},"Upload folders":{msgid:"Upload folders",msgstr:["Naloži mape"]},"Upload from device":{msgid:"Upload from device",msgstr:["Naloži iz naprave"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Nalaganje je bilo preklicano"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Nalaganje je bilo preskočeno"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Nalaganje "{folder}" je bilo preskočeno']},"Upload progress":{msgid:"Upload progress",msgstr:["Napredek nalaganja"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Ko je izbrana dohodna mapa, bodo vse datototeke v konfliktu znotraj nje prepisane."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Ko je izbrana dohodna mapa, je vsebina vpisana v obstoječo mapo in je izvedeno rekurzivno reševanje konfliktov."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Katere datoteke želite obdržati?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Datoteko lahko preimenujete, preskočite ali prekličete celo operacijo."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Izbrati morate vsaj eno različico vsake datoteke da nadaljujete."]}}}}},{locale:"sq",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)","Content-Type":"text/plain; charset=UTF-8",Language:"sq","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sq\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sr",json:{charset:"utf-8",headers:{"Last-Translator":"Иван Пешић, 2024","Language-Team":"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)","Content-Type":"text/plain; charset=UTF-8",Language:"sr","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nИван Пешић, 2024\n"},msgstr:["Last-Translator: Иван Пешић, 2024\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:["„{segment}” је забрањено име фајла или фолдера."]},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:["„{segment}” је забрањен тип фајла."]},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:["„{segment}” није дозвољено унутар имена фајла или фолдера."]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} фајл конфликт","{count} фајл конфликта","{count} фајл конфликта"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} фајл конфликт у {dirname}","{count} фајл конфликта у {dirname}","{count} фајл конфликта у {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["преостало је {seconds} секунди"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} преостало"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["преостало је неколико секунди"]},Cancel:{msgid:"Cancel",msgstr:["Откажи"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Отказује комплетну операцију"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Обустави отпремања"]},Continue:{msgid:"Continue",msgstr:["Настави"]},"Create new":{msgid:"Create new",msgstr:["Креирај ново"]},"estimating time left":{msgid:"estimating time left",msgstr:["процена преосталог времена"]},"Existing version":{msgid:"Existing version",msgstr:["Постојећа верзија"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:["Имена фајлова не смеју да се завршавају на „{segment}”."]},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Ако изаберете обе верзије, на име долазног фајла ће се додати број."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Неисправно име фајла"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Није познат датум последње измене"]},New:{msgid:"New",msgstr:["Ново"]},"New filename":{msgid:"New filename",msgstr:["Ново име фајла"]},"New version":{msgid:"New version",msgstr:["Нова верзија"]},paused:{msgid:"paused",msgstr:["паузирано"]},"Preview image":{msgid:"Preview image",msgstr:["Слика прегледа"]},Rename:{msgid:"Rename",msgstr:["Промени име"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Штиклирај сва поља за штиклирање"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Изабери све постојеће фајлове"]},"Select all new files":{msgid:"Select all new files",msgstr:["Изабери све нове фајлове"]},Skip:{msgid:"Skip",msgstr:["Прескочи"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Прескочи овај фајл","Прескочи {count} фајла","Прескочи {count} фајлова"]},"Unknown size":{msgid:"Unknown size",msgstr:["Непозната величина"]},Upload:{msgid:"Upload",msgstr:["Отпреми"]},"Upload files":{msgid:"Upload files",msgstr:["Отпреми фајлове"]},"Upload folders":{msgid:"Upload folders",msgstr:["Отпреми фолдере"]},"Upload from device":{msgid:"Upload from device",msgstr:["Отпреми са уређаја"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Отпремање је отказано"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Отпремање је прескочено"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:["Отпремање „{folder}”је прескочено"]},"Upload progress":{msgid:"Upload progress",msgstr:["Напредак отпремања"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Када се изабере долазни фолдер, сва имена фајлова са конфликтом унутар њега ће се такође преписати."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Када се изабере долазни фолдер, садржај се уписује у постојећи фолдер и извршава се рекурзивно разрешавање конфликата."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Које фајлове желите да задржите?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Можете или да промените име фајлу, прескочите овај фајл или откажете комплетну операцију."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Морате да изаберете барем једну верзију сваког фајла да наставите."]}}}}},{locale:"sr@latin",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)","Content-Type":"text/plain; charset=UTF-8",Language:"sr@latin","Plural-Forms":"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr@latin\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"sv",json:{charset:"utf-8",headers:{"Last-Translator":"Magnus Höglund, 2024","Language-Team":"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)","Content-Type":"text/plain; charset=UTF-8",Language:"sv","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nMagnus Höglund, 2024\n"},msgstr:["Last-Translator: Magnus Höglund, 2024\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sv\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" är ett förbjudet fil- eller mappnamn.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" är en förbjuden filtyp.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" är inte tillåtet i ett fil- eller mappnamn.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} filkonflikt","{count} filkonflikter"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} filkonflikt i {dirname}","{count} filkonflikter i {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} sekunder kvarstår"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} kvarstår"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["några sekunder kvar"]},Cancel:{msgid:"Cancel",msgstr:["Avbryt"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Avbryt hela operationen"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Avbryt uppladdningar"]},Continue:{msgid:"Continue",msgstr:["Fortsätt"]},"Create new":{msgid:"Create new",msgstr:["Skapa ny"]},"estimating time left":{msgid:"estimating time left",msgstr:["uppskattar kvarstående tid"]},"Existing version":{msgid:"Existing version",msgstr:["Nuvarande version"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Filnamn får inte sluta med "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Om du väljer båda versionerna kommer den inkommande filen att läggas till ett nummer i namnet."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Ogiltigt filnamn"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Senaste ändringsdatum okänt"]},New:{msgid:"New",msgstr:["Ny"]},"New filename":{msgid:"New filename",msgstr:["Nytt filnamn"]},"New version":{msgid:"New version",msgstr:["Ny version"]},paused:{msgid:"paused",msgstr:["pausad"]},"Preview image":{msgid:"Preview image",msgstr:["Förhandsgranska bild"]},Rename:{msgid:"Rename",msgstr:["Byt namn"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Markera alla kryssrutor"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Välj alla befintliga filer"]},"Select all new files":{msgid:"Select all new files",msgstr:["Välj alla nya filer"]},Skip:{msgid:"Skip",msgstr:["Hoppa över"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Hoppa över denna fil","Hoppa över {count} filer"]},"Unknown size":{msgid:"Unknown size",msgstr:["Okänd storlek"]},Upload:{msgid:"Upload",msgstr:["Ladda upp"]},"Upload files":{msgid:"Upload files",msgstr:["Ladda upp filer"]},"Upload folders":{msgid:"Upload folders",msgstr:["Ladda upp mappar"]},"Upload from device":{msgid:"Upload from device",msgstr:["Ladda upp från enhet"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Uppladdningen har avbrutits"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Uppladdningen har hoppats över"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Uppladdningen av "{folder}" har hoppats över']},"Upload progress":{msgid:"Upload progress",msgstr:["Uppladdningsförlopp"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["När en inkommande mapp väljs skrivs även alla konfliktande filer i den över."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Vilka filer vill du behålla?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Du kan antingen byta namn på filen, hoppa över den här filen eller avbryta hela operationen."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Du måste välja minst en version av varje fil för att fortsätta."]}}}}},{locale:"sw",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)","Content-Type":"text/plain; charset=UTF-8",Language:"sw","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sw\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"ta",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)","Content-Type":"text/plain; charset=UTF-8",Language:"ta","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"th",json:{charset:"utf-8",headers:{"Last-Translator":"Phongpanot Phairat <ppnplus@protonmail.com>, 2022","Language-Team":"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)","Content-Type":"text/plain; charset=UTF-8",Language:"th_TH","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\n"},msgstr:["Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th_TH\nPlural-Forms: nplurals=1; plural=0;\n"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["เหลืออีก {seconds} วินาที"]},"{time} left":{msgid:"{time} left",comments:{extracted:"time has the format 00:00:00"},msgstr:["เหลืออีก {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["เหลืออีกไม่กี่วินาที"]},Add:{msgid:"Add",msgstr:["เพิ่ม"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["ยกเลิกการอัปโหลด"]},"estimating time left":{msgid:"estimating time left",msgstr:["กำลังคำนวณเวลาที่เหลือ"]},paused:{msgid:"paused",msgstr:["หยุดชั่วคราว"]},"Upload files":{msgid:"Upload files",msgstr:["อัปโหลดไฟล์"]}}}}},{locale:"tk",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)","Content-Type":"text/plain; charset=UTF-8",Language:"tk","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tk\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"tr",json:{charset:"utf-8",headers:{"Last-Translator":"Kaya Zeren <kayazeren@gmail.com>, 2024","Language-Team":"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)","Content-Type":"text/plain; charset=UTF-8",Language:"tr","Plural-Forms":"nplurals=2; plural=(n > 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nKaya Zeren <kayazeren@gmail.com>, 2024\n"},msgstr:["Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2024\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tr\nPlural-Forms: nplurals=2; plural=(n > 1);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" dosya ya da klasör adına izin verilmiyor.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" dosya türüne izin verilmiyor.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['Bir dosya ya da klasör adında "{segment}" ifadesine izin verilmiyor.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} dosya çakışması var","{count} dosya çakışması var"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} klasöründe {count} dosya çakışması var","{dirname} klasöründe {count} dosya çakışması var"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["{seconds} saniye kaldı"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["{time} kaldı"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["bir kaç saniye kaldı"]},Cancel:{msgid:"Cancel",msgstr:["İptal"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Tüm işlemi iptal et"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Yüklemeleri iptal et"]},Continue:{msgid:"Continue",msgstr:["İlerle"]},"Create new":{msgid:"Create new",msgstr:["Yeni ekle"]},"estimating time left":{msgid:"estimating time left",msgstr:["öngörülen kalan süre"]},"Existing version":{msgid:"Existing version",msgstr:["Var olan sürüm"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Dosya adları "{segment}" ile bitmemeli.']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Dosya adı geçersiz"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Son değiştirilme tarihi bilinmiyor"]},New:{msgid:"New",msgstr:["Yeni"]},"New filename":{msgid:"New filename",msgstr:["Yeni dosya adı"]},"New version":{msgid:"New version",msgstr:["Yeni sürüm"]},paused:{msgid:"paused",msgstr:["duraklatıldı"]},"Preview image":{msgid:"Preview image",msgstr:["Görsel ön izlemesi"]},Rename:{msgid:"Rename",msgstr:["Yeniden adlandır"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Tüm kutuları işaretle"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Tüm var olan dosyaları seç"]},"Select all new files":{msgid:"Select all new files",msgstr:["Tüm yeni dosyaları seç"]},Skip:{msgid:"Skip",msgstr:["Atla"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Bu dosyayı atla","{count} dosyayı atla"]},"Unknown size":{msgid:"Unknown size",msgstr:["Boyut bilinmiyor"]},Upload:{msgid:"Upload",msgstr:["Yükle"]},"Upload files":{msgid:"Upload files",msgstr:["Dosyaları yükle"]},"Upload folders":{msgid:"Upload folders",msgstr:["Klasörleri yükle"]},"Upload from device":{msgid:"Upload from device",msgstr:["Aygıttan yükle"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Yükleme iptal edildi"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Yükleme atlandı"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" klasörünün yüklenmesi atlandı']},"Upload progress":{msgid:"Upload progress",msgstr:["Yükleme ilerlemesi"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Bir gelen klasörü seçildiğinde içerik var olan klasöre yazılır ve yinelemeli bir çakışma çözümü uygulanır."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Hangi dosyaları tutmak istiyorsunuz?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Dosya adını değiştirebilir, bu dosyayı atlayabilir ya da tüm işlemi iptal edebilirsiniz."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz."]}}}}},{locale:"ug",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)","Content-Type":"text/plain; charset=UTF-8",Language:"ug","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ug\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"uk",json:{charset:"utf-8",headers:{"Last-Translator":"O St <oleksiy.stasevych@gmail.com>, 2024","Language-Team":"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)","Content-Type":"text/plain; charset=UTF-8",Language:"uk","Plural-Forms":"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nO St <oleksiy.stasevych@gmail.com>, 2024\n"},msgstr:["Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2024\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uk\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" не є дозволеним ім\'ям файлу або каталогу.']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" не є дозволеним типом файлу.']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" не дозволене сполучення символів в назві файлу або каталогу.']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} конфліктний файл","{count} конфліктних файли","{count} конфліктних файлів","{count} конфліктних файлів"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} конфліктний файл у каталозі {dirname}","{count} конфліктних файли у каталозі {dirname}","{count} конфліктних файлів у каталозі {dirname}","{count} конфліктних файлів у каталозі {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Залишилося {seconds} секунд"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Залишилося {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["залишилося кілька секунд"]},Cancel:{msgid:"Cancel",msgstr:["Скасувати"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["Скасувати операцію повністю"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Скасувати завантаження"]},Continue:{msgid:"Continue",msgstr:["Продовжити"]},"Create new":{msgid:"Create new",msgstr:["Створити новий"]},"estimating time left":{msgid:"estimating time left",msgstr:["оцінка часу, що залишився"]},"Existing version":{msgid:"Existing version",msgstr:["Присутня версія"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['Ім\'я файлів не можуть закінчуватися на "{segment}".']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["Якщо буде вибрано обидві версії, до імени вхідного файлу було додано цифру."]},"Invalid filename":{msgid:"Invalid filename",msgstr:["Недійсне ім'я файлу"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Дата останньої зміни невідома"]},New:{msgid:"New",msgstr:["Нове"]},"New filename":{msgid:"New filename",msgstr:["Нове ім'я файлу"]},"New version":{msgid:"New version",msgstr:["Нова версія"]},paused:{msgid:"paused",msgstr:["призупинено"]},"Preview image":{msgid:"Preview image",msgstr:["Попередній перегляд"]},Rename:{msgid:"Rename",msgstr:["Перейменувати"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Вибрати все"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Вибрати усі присутні файли"]},"Select all new files":{msgid:"Select all new files",msgstr:["Вибрати усі нові файли"]},Skip:{msgid:"Skip",msgstr:["Пропустити"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Пропустити файл","Пропустити {count} файли","Пропустити {count} файлів","Пропустити {count} файлів"]},"Unknown size":{msgid:"Unknown size",msgstr:["Невідомий розмір"]},Upload:{msgid:"Upload",msgstr:["Завантажити"]},"Upload files":{msgid:"Upload files",msgstr:["Завантажити файли"]},"Upload folders":{msgid:"Upload folders",msgstr:["Завантажити каталоги"]},"Upload from device":{msgid:"Upload from device",msgstr:["Завантажити з пристрою"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["Завантаження скасовано"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["Завантаження пропущено"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['Завантаження "{folder}" пропущено']},"Upload progress":{msgid:"Upload progress",msgstr:["Поступ завантаження"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх."]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["Якщо буде вибрано вхідний каталог, вміст буде записано до наявного каталогу та вирішено конфлікти у відповідних файлах каталогу та підкаталогів."]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Які файли залишити?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["Ви можете або перейменувати цей файл, пропустити або скасувати дію з файлом."]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Для продовження потрібно вибрати принаймні одну версію для кожного файлу."]}}}}},{locale:"ur_PK",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)","Content-Type":"text/plain; charset=UTF-8",Language:"ur_PK","Plural-Forms":"nplurals=2; plural=(n != 1);"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ur_PK\nPlural-Forms: nplurals=2; plural=(n != 1);\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"uz",json:{charset:"utf-8",headers:{"Last-Translator":"Transifex Bot <>, 2022","Language-Team":"Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)","Content-Type":"text/plain; charset=UTF-8",Language:"uz","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nTransifex Bot <>, 2022\n"},msgstr:["Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uz\nPlural-Forms: nplurals=1; plural=0;\n"]},"{estimate} seconds left":{msgid:"{estimate} seconds left",msgstr:[""]},"{hours} hours and {minutes} minutes left":{msgid:"{hours} hours and {minutes} minutes left",msgstr:[""]},"{minutes} minutes left":{msgid:"{minutes} minutes left",msgstr:[""]},"a few seconds left":{msgid:"a few seconds left",msgstr:[""]},Add:{msgid:"Add",msgstr:[""]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:[""]},"estimating time left":{msgid:"estimating time left",msgstr:[""]},paused:{msgid:"paused",msgstr:[""]}}}}},{locale:"vi",json:{charset:"utf-8",headers:{"Last-Translator":"Tung DangQuang, 2023","Language-Team":"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)","Content-Type":"text/plain; charset=UTF-8",Language:"vi","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nTung DangQuang, 2023\n"},msgstr:["Last-Translator: Tung DangQuang, 2023\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: vi\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} Tập tin xung đột"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{count} tập tin lỗi trong {dirname}"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["Còn {second} giây"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["Còn lại {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["Còn lại một vài giây"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["Huỷ tải lên"]},Continue:{msgid:"Continue",msgstr:["Tiếp Tục"]},"estimating time left":{msgid:"estimating time left",msgstr:["Thời gian còn lại dự kiến"]},"Existing version":{msgid:"Existing version",msgstr:["Phiên Bản Hiện Tại"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó."]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["Ngày sửa dổi lần cuối không xác định"]},New:{msgid:"New",msgstr:["Tạo Mới"]},"New version":{msgid:"New version",msgstr:["Phiên Bản Mới"]},paused:{msgid:"paused",msgstr:["đã tạm dừng"]},"Preview image":{msgid:"Preview image",msgstr:["Xem Trước Ảnh"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["Chọn tất cả hộp checkbox"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["Chọn tất cả các tập tin có sẵn"]},"Select all new files":{msgid:"Select all new files",msgstr:["Chọn tất cả các tập tin mới"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["Bỏ Qua {count} tập tin"]},"Unknown size":{msgid:"Unknown size",msgstr:["Không rõ dung lượng"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["Dừng Tải Lên"]},"Upload files":{msgid:"Upload files",msgstr:["Tập tin tải lên"]},"Upload progress":{msgid:"Upload progress",msgstr:["Đang Tải Lên"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["Bạn muốn giữ tập tin nào?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục"]}}}}},{locale:"zh_CN",json:{charset:"utf-8",headers:{"Last-Translator":"Gloryandel, 2024","Language-Team":"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_CN","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nGloryandel, 2024\n"},msgstr:["Last-Translator: Gloryandel, 2024\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_CN\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" 是被禁止的文件名或文件夹名。']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" 是被禁止的文件类型。']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" 不允许包含在文件名或文件夹名中。']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count}文件冲突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["在{dirname}目录下有{count}个文件冲突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩余 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩余 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["还剩几秒"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整个操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上传"]},Continue:{msgid:"Continue",msgstr:["继续"]},"Create new":{msgid:"Create new",msgstr:["新建"]},"estimating time left":{msgid:"estimating time left",msgstr:["估计剩余时间"]},"Existing version":{msgid:"Existing version",msgstr:["服务端版本"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['文件名不得以 "{segment}" 结尾。']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["如果同时选择两个版本,则上传文件的名称中将添加一个数字。"]},"Invalid filename":{msgid:"Invalid filename",msgstr:["无效文件名"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["文件最后修改日期未知"]},New:{msgid:"New",msgstr:["新建"]},"New filename":{msgid:"New filename",msgstr:["新文件名"]},"New version":{msgid:"New version",msgstr:["上传版本"]},paused:{msgid:"paused",msgstr:["已暂停"]},"Preview image":{msgid:"Preview image",msgstr:["图片预览"]},Rename:{msgid:"Rename",msgstr:["重命名"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["选择所有的选择框"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["保留所有服务端版本"]},"Select all new files":{msgid:"Select all new files",msgstr:["保留所有上传版本"]},Skip:{msgid:"Skip",msgstr:["跳过"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["跳过{count}个文件"]},"Unknown size":{msgid:"Unknown size",msgstr:["文件大小未知"]},Upload:{msgid:"Upload",msgstr:["上传"]},"Upload files":{msgid:"Upload files",msgstr:["上传文件"]},"Upload folders":{msgid:"Upload folders",msgstr:["上传文件夹"]},"Upload from device":{msgid:"Upload from device",msgstr:["从设备上传"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["上传已取消"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["上传已跳过"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['已跳过上传"{folder}"']},"Upload progress":{msgid:"Upload progress",msgstr:["上传进度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["当选择上传文件夹时,其中任何冲突的文件也都会被覆盖。"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["选择上传文件夹后,内容将写入现有文件夹,并递归执行冲突解决。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["你要保留哪些文件?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["您可以重命名文件、跳过此文件或取消整个操作。"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["每个文件至少选择保留一个版本"]}}}}},{locale:"zh_HK",json:{charset:"utf-8",headers:{"Last-Translator":"Café Tango, 2024","Language-Team":"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_HK","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\nCafé Tango, 2024\n"},msgstr:["Last-Translator: Café Tango, 2024\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_HK\nPlural-Forms: nplurals=1; plural=0;\n"]},'"{segment}" is a forbidden file or folder name.':{msgid:'"{segment}" is a forbidden file or folder name.',msgstr:['"{segment}" 是禁止使用的檔案或資料夾名稱。']},'"{segment}" is a forbidden file type.':{msgid:'"{segment}" is a forbidden file type.',msgstr:['"{segment}" 是禁止使用的檔案類型。']},'"{segment}" is not allowed inside a file or folder name.':{msgid:'"{segment}" is not allowed inside a file or folder name.',msgstr:['"{segment}" 不允許出現在檔案或資料夾名稱中。']},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} 個檔案衝突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} 中有 {count} 個檔案衝突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩餘 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩餘 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["還剩幾秒"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上傳"]},Continue:{msgid:"Continue",msgstr:["繼續"]},"Create new":{msgid:"Create new",msgstr:["創建新"]},"estimating time left":{msgid:"estimating time left",msgstr:["估計剩餘時間"]},"Existing version":{msgid:"Existing version",msgstr:["既有版本"]},'Filenames must not end with "{segment}".':{msgid:'Filenames must not end with "{segment}".',msgstr:['檔案名不得以 "{segment}" 結尾。']},"If you select both versions, the incoming file will have a number added to its name.":{msgid:"If you select both versions, the incoming file will have a number added to its name.",msgstr:["若您選取兩個版本,傳入檔案的名稱將會新增編號。"]},"Invalid filename":{msgid:"Invalid filename",msgstr:["無效的檔案名"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最後修改日期不詳"]},New:{msgid:"New",msgstr:["新增"]},"New filename":{msgid:"New filename",msgstr:["新檔案名"]},"New version":{msgid:"New version",msgstr:["新版本 "]},paused:{msgid:"paused",msgstr:["已暫停"]},"Preview image":{msgid:"Preview image",msgstr:["預覽圖片"]},Rename:{msgid:"Rename",msgstr:["重新命名"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["選取所有核取方塊"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["選取所有既有檔案"]},"Select all new files":{msgid:"Select all new files",msgstr:["選取所有新檔案"]},Skip:{msgid:"Skip",msgstr:["跳過"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["略過 {count} 個檔案"]},"Unknown size":{msgid:"Unknown size",msgstr:["大小不詳"]},Upload:{msgid:"Upload",msgstr:["上傳"]},"Upload files":{msgid:"Upload files",msgstr:["上傳檔案"]},"Upload folders":{msgid:"Upload folders",msgstr:["上傳資料夾"]},"Upload from device":{msgid:"Upload from device",msgstr:["從裝置上傳"]},"Upload has been cancelled":{msgid:"Upload has been cancelled",msgstr:["上傳已被取消"]},"Upload has been skipped":{msgid:"Upload has been skipped",msgstr:["上傳已被跳過"]},'Upload of "{folder}" has been skipped':{msgid:'Upload of "{folder}" has been skipped',msgstr:['"{folder}" 的上傳已被跳過']},"Upload progress":{msgid:"Upload progress",msgstr:["上傳進度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。"]},"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.":{msgid:"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.",msgstr:["選擇傳入資料夾後,內容將寫入現有資料夾並執行遞歸衝突解決。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["您想保留哪些檔案?"]},"You can either rename the file, skip this file or cancel the whole operation.":{msgid:"You can either rename the file, skip this file or cancel the whole operation.",msgstr:["您可以選擇重新命名檔案、跳過此檔案或取消整個操作。"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須為每個檔案都至少選取一個版本以繼續。"]}}}}},{locale:"zh_TW",json:{charset:"utf-8",headers:{"Last-Translator":"黃柏諺 <s8321414@gmail.com>, 2024","Language-Team":"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)","Content-Type":"text/plain; charset=UTF-8",Language:"zh_TW","Plural-Forms":"nplurals=1; plural=0;"},translations:{"":{"":{msgid:"",comments:{translator:"\nTranslators:\nJoas Schilling, 2024\n黃柏諺 <s8321414@gmail.com>, 2024\n"},msgstr:["Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_TW\nPlural-Forms: nplurals=1; plural=0;\n"]},"{count} file conflict":{msgid:"{count} file conflict",msgid_plural:"{count} files conflict",msgstr:["{count} 個檔案衝突"]},"{count} file conflict in {dirname}":{msgid:"{count} file conflict in {dirname}",msgid_plural:"{count} file conflicts in {dirname}",msgstr:["{dirname} 中有 {count} 個檔案衝突"]},"{seconds} seconds left":{msgid:"{seconds} seconds left",msgstr:["剩餘 {seconds} 秒"]},"{time} left":{msgid:"{time} left",comments:{extracted:"TRANSLATORS time has the format 00:00:00"},msgstr:["剩餘 {time}"]},"a few seconds left":{msgid:"a few seconds left",msgstr:["還剩幾秒"]},Cancel:{msgid:"Cancel",msgstr:["取消"]},"Cancel the entire operation":{msgid:"Cancel the entire operation",msgstr:["取消整個操作"]},"Cancel uploads":{msgid:"Cancel uploads",msgstr:["取消上傳"]},Continue:{msgid:"Continue",msgstr:["繼續"]},"estimating time left":{msgid:"estimating time left",msgstr:["估計剩餘時間"]},"Existing version":{msgid:"Existing version",msgstr:["既有版本"]},"If you select both versions, the copied file will have a number added to its name.":{msgid:"If you select both versions, the copied file will have a number added to its name.",msgstr:["若您選取兩個版本,複製的檔案的名稱將會新增編號。"]},"Last modified date unknown":{msgid:"Last modified date unknown",msgstr:["最後修改日期未知"]},New:{msgid:"New",msgstr:["新增"]},"New version":{msgid:"New version",msgstr:["新版本"]},paused:{msgid:"paused",msgstr:["已暫停"]},"Preview image":{msgid:"Preview image",msgstr:["預覽圖片"]},"Select all checkboxes":{msgid:"Select all checkboxes",msgstr:["選取所有核取方塊"]},"Select all existing files":{msgid:"Select all existing files",msgstr:["選取所有既有檔案"]},"Select all new files":{msgid:"Select all new files",msgstr:["選取所有新檔案"]},"Skip this file":{msgid:"Skip this file",msgid_plural:"Skip {count} files",msgstr:["略過 {count} 檔案"]},"Unknown size":{msgid:"Unknown size",msgstr:["未知大小"]},"Upload cancelled":{msgid:"Upload cancelled",msgstr:["已取消上傳"]},"Upload files":{msgid:"Upload files",msgstr:["上傳檔案"]},"Upload progress":{msgid:"Upload progress",msgstr:["上傳進度"]},"When an incoming folder is selected, any conflicting files within it will also be overwritten.":{msgid:"When an incoming folder is selected, any conflicting files within it will also be overwritten.",msgstr:["選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。"]},"Which files do you want to keep?":{msgid:"Which files do you want to keep?",msgstr:["您想保留哪些檔案?"]},"You need to select at least one version of each file to continue.":{msgid:"You need to select at least one version of each file to continue.",msgstr:["您必須為每個檔案都至少選取一個版本以繼續。"]}}}}}].map((e=>B.addTranslation(e.locale,e.json)));const D=B.build(),O=D.ngettext.bind(D),R=D.gettext.bind(D);var j=(e=>(e[e.IDLE=0]="IDLE",e[e.UPLOADING=1]="UPLOADING",e[e.PAUSED=2]="PAUSED",e))(j||{});class M{_destinationFolder;_isPublic;_customHeaders;_uploadQueue=[];_jobQueue=new u.A({concurrency:(0,d.F)().files?.chunked_upload?.max_parallel_count??5});_queueSize=0;_queueProgress=0;_queueStatus=0;_notifiers=[];constructor(e=!1,t){if(this._isPublic=e,this._customHeaders={},!t){const s=`${r.PY}${r.lJ}`;let n;if(e)n="anonymous";else{const e=(0,a.HW)()?.uid;if(!e)throw new Error("User is not logged in");n=e}t=new r.vd({id:0,owner:n,permissions:r.aX.ALL,root:r.lJ,source:s})}this.destination=t,S.debug("Upload workspace initialized",{destination:this.destination,root:this.root,isPublic:e,maxChunksSize:F()})}get destination(){return this._destinationFolder}set destination(e){if(!e||e.type!==r.pt.Folder||!e.source)throw new Error("Invalid destination folder");S.debug("Destination set",{folder:e}),this._destinationFolder=e}get root(){return this._destinationFolder.source}get customHeaders(){return structuredClone(this._customHeaders)}setCustomHeader(e,t=""){this._customHeaders[e]=t}deleteCustomerHeader(e){delete this._customHeaders[e]}get queue(){return this._uploadQueue}reset(){0===this._uploadQueue.length&&0===this._jobQueue.size||(this._uploadQueue.splice(0,this._uploadQueue.length),this._jobQueue.clear(),this._queueSize=0,this._queueProgress=0,this._queueStatus=0,S.debug("Uploader state reset"))}pause(){this._jobQueue.pause(),this._queueStatus=2}start(){this._jobQueue.start(),this._queueStatus=1,this.updateStats()}get info(){return{size:this._queueSize,progress:this._queueProgress,status:this._queueStatus}}updateStats(){const e=this._uploadQueue.map((e=>e.size)).reduce(((e,t)=>e+t),0),t=this._uploadQueue.map((e=>e.uploaded)).reduce(((e,t)=>e+t),0);this._queueSize=e,this._queueProgress=t,2!==this._queueStatus&&(this._queueStatus=this._jobQueue.size>0?1:0)}addNotifier(e){this._notifiers.push(e)}_notifyAll(e){for(const t of this._notifiers)try{t(e)}catch(t){S.warn("Error in upload notifier",{error:t,source:e.source})}}batchUpload(e,t,s){return s||(s=async e=>e),new m.A((async(n,i,a)=>{const o=new z("");await o.addChildren(t);const l=`${this.root.replace(/\/$/,"")}/${e.replace(/^\//,"")}`,d=new U(l,!1,0,o);d.status=E.UPLOADING,this._uploadQueue.push(d),S.debug("Starting new batch upload",{target:l});try{const t=(0,r.H4)(this.root,this._customHeaders),i=this.uploadDirectory(e,o,s,t);a((()=>i.cancel()));const l=await i;d.status=E.FINISHED,n(l)}catch(e){S.error("Error in batch upload",{error:e}),d.status=E.FAILED,i(R("Upload has been cancelled"))}finally{this._notifyAll(d),this.updateStats()}}))}createDirectory(e,t,s){const n=(0,l.normalize)(`${e}/${t.name}`).replace(/\/$/,""),i=`${this.root.replace(/\/$/,"")}/${n.replace(/^\//,"")}`;if(!t.name)throw new Error("Can not create empty directory");const a=new U(i,!1,0,t);return this._uploadQueue.push(a),new m.A((async(e,i,r)=>{const o=new AbortController;r((()=>o.abort())),a.signal.addEventListener("abort",(()=>i(R("Upload has been cancelled")))),await this._jobQueue.add((async()=>{a.status=E.UPLOADING;try{await s.createDirectory(n,{signal:o.signal}),e(a)}catch(e){e&&"object"==typeof e&&"status"in e&&405===e.status?(a.status=E.FINISHED,S.debug("Directory already exists, writing into it",{directory:t.name})):(a.status=E.FAILED,i(e))}finally{this._notifyAll(a),this.updateStats()}}))}))}uploadDirectory(e,t,s,n){const i=(0,l.normalize)(`${e}/${t.name}`).replace(/\/$/,"");return new m.A((async(a,r,o)=>{const l=new AbortController;o((()=>l.abort()));const d=await s(t.children,i);if(!1===d)return S.debug("Upload canceled by user",{directory:t}),void r(R("Upload has been cancelled"));if(0===d.length&&t.children.length>0)return S.debug("Skipping directory, as all files were skipped by user",{directory:t}),void a([]);const c=[],m=[];l.signal.addEventListener("abort",(()=>{c.forEach((e=>e.cancel())),m.forEach((e=>e.cancel()))})),S.debug("Start directory upload",{directory:t});try{t.name&&(m.push(this.createDirectory(e,t,n)),await m.at(-1));for(const e of d)e instanceof z?c.push(this.uploadDirectory(i,e,s,n)):m.push(this.upload(`${i}/${e.name}`,e));a([await Promise.all(m),...await Promise.all(c)].flat())}catch(e){l.abort(e),r(e)}}))}upload(e,t,s,n=5){const i=`${(s=s||this.root).replace(/\/$/,"")}/${e.replace(/^\//,"")}`,{origin:r}=new URL(i),l=r+(0,o.O0)(i.slice(r.length));return S.debug(`Uploading ${t.name} to ${l}`),new m.A((async(e,s,r)=>{I(t)&&(t=await new Promise((e=>t.file(e,s))));const o=t,d=F("size"in o?o.size:void 0),m=this._isPublic||0===d||"size"in o&&o.size<d,u=new U(i,!m,o.size,o);if(this._uploadQueue.push(u),this.updateStats(),r(u.cancel),m){S.debug("Initializing regular upload",{file:o,upload:u});const t=await N(o,0,u.size),n=async()=>{try{u.response=await L(l,t,u.signal,(e=>{u.uploaded=u.uploaded+e.bytes,this.updateStats()}),void 0,{...this._customHeaders,"X-OC-Mtime":Math.floor(o.lastModified/1e3),"Content-Type":o.type}),u.uploaded=u.size,this.updateStats(),S.debug(`Successfully uploaded ${o.name}`,{file:o,upload:u}),e(u)}catch(e){if((0,c.FZ)(e))return u.status=E.FAILED,void s(R("Upload has been cancelled"));e?.response&&(u.response=e.response),u.status=E.FAILED,S.error(`Failed uploading ${o.name}`,{error:e,file:o,upload:u}),s("Failed uploading the file")}this._notifyAll(u)};this._jobQueue.add(n),this.updateStats()}else{S.debug("Initializing chunked upload",{file:o,upload:u});const t=await async function(e,t=5){const s=`${(0,g.dC)(`dav/uploads/${(0,a.HW)()?.uid}`)}/web-file-upload-${[...Array(16)].map((()=>Math.floor(16*Math.random()).toString(16))).join("")}`,n=e?{Destination:e}:void 0;return await c.Ay.request({method:"MKCOL",url:s,headers:n,"axios-retry":{retries:t,retryDelay:(e,t)=>(0,f.Nv)(e,t,1e3)}}),S.debug("Created temporary upload workspace",{url:s}),s}(l,n),i=[];for(let e=0;e<u.chunks;e++){const s=e*d,a=Math.min(s+d,u.size),r=()=>N(o,s,d),m=()=>L(`${t}/${e+1}`,r,u.signal,(()=>this.updateStats()),l,{...this._customHeaders,"X-OC-Mtime":Math.floor(o.lastModified/1e3),"OC-Total-Length":o.size,"Content-Type":"application/octet-stream"},n).then((()=>{u.uploaded=u.uploaded+d})).catch((t=>{if(507===t?.response?.status)throw S.error("Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks",{error:t,upload:u}),u.cancel(),u.status=E.FAILED,t;throw(0,c.FZ)(t)||(S.error(`Chunk ${e+1} ${s} - ${a} uploading failed`,{error:t,upload:u}),u.cancel(),u.status=E.FAILED),t}));i.push(this._jobQueue.add(m))}try{await Promise.all(i),this.updateStats(),u.response=await c.Ay.request({method:"MOVE",url:`${t}/.file`,headers:{...this._customHeaders,"X-OC-Mtime":Math.floor(o.lastModified/1e3),"OC-Total-Length":o.size,Destination:l}}),this.updateStats(),u.status=E.FINISHED,S.debug(`Successfully uploaded ${o.name}`,{file:o,upload:u}),e(u)}catch(e){(0,c.FZ)(e)?(u.status=E.FAILED,s(R("Upload has been cancelled"))):(u.status=E.FAILED,s("Failed assembling the chunks together")),c.Ay.request({method:"DELETE",url:`${t}`})}this._notifyAll(u)}return this._jobQueue.onIdle().then((()=>this.reset())),u}))}}function V(e,t,s,n,i,a,r,o){var l="function"==typeof e?e.options:e;return t&&(l.render=t,l.staticRenderFns=s,l._compiled=!0),a&&(l._scopeId="data-v-"+a),{exports:e,options:l}}const $=V({name:"CancelIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon cancel-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports,W=V({name:"FolderUploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon folder-upload-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports,H=V({name:"PlusIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon plus-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports,q=V({name:"UploadIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},(function(){var e=this,t=e._self._c;return t("span",e._b({staticClass:"material-design-icon upload-icon",attrs:{"aria-hidden":e.title?null:"true","aria-label":e.title,role:"img"},on:{click:function(t){return e.$emit("click",t)}}},"span",e.$attrs,!1),[t("svg",{staticClass:"material-design-icon__svg",attrs:{fill:e.fillColor,width:e.size,height:e.size,viewBox:"0 0 24 24"}},[t("path",{attrs:{d:"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z"}},[e.title?t("title",[e._v(e._s(e.title))]):e._e()])])])}),[],0,0,null).exports;function G(e){const t=(0,i.$V)((()=>Promise.all([s.e(4208),s.e(8320)]).then(s.bind(s,8320)))),{promise:n,reject:a,resolve:o}=Promise.withResolvers();return(0,T.Ss)(t,{error:e,validateFilename:r.KT},((...e)=>{const[{skip:t,rename:s}]=e;t?o(!1):s?o(s):a()})),n}function Y(e,t){return K(e,t).length>0}function K(e,t){const s=t.map((e=>e.basename));return e.filter((e=>{const t="basename"in e?e.basename:e.name;return-1!==s.indexOf(t)}))}const Q=V((0,i.pM)({name:"UploadPicker",components:{IconCancel:$,IconFolderUpload:W,IconPlus:H,IconUpload:q,NcActionButton:A.A,NcActionCaption:b.A,NcActionSeparator:C.A,NcActions:y.A,NcButton:x.A,NcIconSvgWrapper:k.A,NcProgressBar:_.A},props:{accept:{type:Array,default:null},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noMenu:{type:Boolean,default:!1},destination:{type:r.vd,default:void 0},allowFolders:{type:Boolean,default:!1},content:{type:[Array,Function],default:()=>[]},forbiddenCharacters:{type:Array,default:()=>[]}},setup:()=>({t:R,progressTimeId:`nc-uploader-progress-${Math.random().toString(36).slice(7)}`}),data:()=>({eta:null,openedMenu:!1,timeLeft:"",newFileMenuEntries:[],uploadManager:X()}),computed:{menuEntriesUpload(){return this.newFileMenuEntries.filter((e=>e.category===r.a7.UploadFromDevice))},menuEntriesNew(){return this.newFileMenuEntries.filter((e=>e.category===r.a7.CreateNew))},menuEntriesOther(){return this.newFileMenuEntries.filter((e=>e.category===r.a7.Other))},canUploadFolders(){return this.allowFolders&&"webkitdirectory"in document.createElement("input")},totalQueueSize(){return this.uploadManager.info?.size||0},uploadedQueueSize(){return this.uploadManager.info?.progress||0},progress(){return Math.round(this.uploadedQueueSize/this.totalQueueSize*100)||0},queue(){return this.uploadManager.queue},hasFailure(){return 0!==this.queue?.filter((e=>e.status===E.FAILED)).length},isUploading(){return this.queue?.length>0},isAssembling(){return 0!==this.queue?.filter((e=>e.status===E.ASSEMBLING)).length},isPaused(){return this.uploadManager.info?.status===j.PAUSED},buttonLabel(){return this.noMenu?R("Upload"):R("New")},buttonName(){if(!this.isUploading)return this.buttonLabel},haveMenu(){return!((this.noMenu||0===this.newFileMenuEntries.length)&&!this.canUploadFolders)}},watch:{allowFolders:{immediate:!0,handler(){"function"!=typeof this.content&&this.allowFolders&&S.error("[UploadPicker] Setting `allowFolders` is only allowed if `content` is a function")}},destination(e){this.setDestination(e)},totalQueueSize(e){this.eta=w({min:0,max:e}),this.updateStatus()},uploadedQueueSize(e){this.eta?.report?.(e),this.updateStatus()},isPaused(e){e?this.$emit("paused",this.queue):this.$emit("resumed",this.queue)}},beforeMount(){this.destination&&this.setDestination(this.destination),this.uploadManager.addNotifier(this.onUploadCompletion),(0,v.C)("u",this.onKeyDown,{stop:!0,prevent:!0,shift:!0}),(0,v.C)("Escape",this.onKeyDown,{stop:!0,prevent:!0}),S.debug("UploadPicker initialised")},methods:{async onClick(e){e.handler(this.destination,await this.getContent().catch((()=>[])))},onTriggerPick(e=!1){const t=this.$refs.input;this.canUploadFolders&&(t.webkitdirectory=e),this.$nextTick((()=>t.click()))},async getContent(e){return Array.isArray(this.content)?this.content:await this.content(e)},onPick(){const e=this.$refs.input,t=e.files?Array.from(e.files):[];var s;this.uploadManager.batchUpload("",t,(s=this.getContent,async(e,t)=>{try{const n=await s(t).catch((()=>[])),i=K(e,n);if(i.length>0){const{selected:s,renamed:a}=await J(t,i,n,{recursive:!0});e=[...s,...a]}const a=[];for(const t of e)try{(0,r.KT)(t.name),a.push(t)}catch(s){if(!(s instanceof r.di))throw S.error(`Unexpected error while validating ${t.name}`,{error:s}),s;let n=await G(s);!1!==n&&(n=(0,r.E6)(n,e.map((e=>e.name))),Object.defineProperty(t,"name",{value:n}),a.push(t))}if(0===a.length&&e.length>0){const e=(0,o.P8)(t);(0,T.cf)(e?R('Upload of "{folder}" has been skipped',{folder:e}):R("Upload has been skipped"))}return a}catch(e){return S.debug("Upload has been cancelled",{error:e}),(0,T.I9)(R("Upload has been cancelled")),!1}})).catch((e=>S.debug("Error while uploading",{error:e}))).finally((()=>this.resetForm()))},resetForm(){const e=this.$refs.form;e?.reset()},onCancel(){this.uploadManager.queue.forEach((e=>{e.cancel()})),this.resetForm()},updateStatus(){if(this.isPaused)return void(this.timeLeft=R("paused"));const e=Math.round(this.eta.estimate());if(e!==1/0)if(e<10)this.timeLeft=R("a few seconds left");else if(e>60){const t=new Date(0);t.setSeconds(e);const s=t.toISOString().slice(11,19);this.timeLeft=R("{time} left",{time:s})}else this.timeLeft=R("{seconds} seconds left",{seconds:e});else this.timeLeft=R("estimating time left")},setDestination(e){this.destination?(this.uploadManager.destination=e,this.newFileMenuEntries=(0,r.m1)(e)):S.debug("Invalid destination")},onUploadCompletion(e){e.status===E.FAILED?this.$emit("failed",e):this.$emit("uploaded",e)},onKeyDown(e){if("u"===e.key){if(this.haveMenu)return void(this.openedMenu=!0);this.onTriggerPick()}"Escape"===e.key&&this.openedMenu&&(this.openedMenu=!1)}}}),(function(){var e=this,t=e._self._c;return e._self._setupProxy,e.destination?t("form",{ref:"form",staticClass:"upload-picker",class:{"upload-picker--uploading":e.isUploading,"upload-picker--paused":e.isPaused},attrs:{"data-cy-upload-picker":""}},[e.haveMenu?t("NcActions",{attrs:{"aria-label":e.buttonLabel,"menu-name":e.buttonName,open:e.openedMenu,type:"secondary"},on:{"update:open":function(t){e.openedMenu=t}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconPlus",{attrs:{size:20}})]},proxy:!0}],null,!1,1991456921)},[t("NcActionCaption",{attrs:{name:e.t("Upload from device")}}),t("NcActionButton",{attrs:{"data-cy-upload-picker-add":"","data-cy-upload-picker-menu-entry":"upload-file","close-after-click":!0},on:{click:function(t){return e.onTriggerPick()}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconUpload",{attrs:{size:20}})]},proxy:!0}],null,!1,337456192)},[e._v(" "+e._s(e.t("Upload files"))+" ")]),e.canUploadFolders?t("NcActionButton",{attrs:{"close-after-click":"","data-cy-upload-picker-add-folders":"","data-cy-upload-picker-menu-entry":"upload-folder"},on:{click:function(t){return e.onTriggerPick(!0)}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconFolderUpload",{staticStyle:{color:"var(--color-primary-element)"},attrs:{size:20}})]},proxy:!0}],null,!1,1037549157)},[e._v(" "+e._s(e.t("Upload folders"))+" ")]):e._e(),e.noMenu?e._e():e._l(e.menuEntriesUpload,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])})),!e.noMenu&&e.menuEntriesNew.length>0?[t("NcActionSeparator"),t("NcActionCaption",{attrs:{name:e.t("Create new")}}),e._l(e.menuEntriesNew,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])}))]:e._e(),!e.noMenu&&e.menuEntriesOther.length>0?[t("NcActionSeparator"),e._l(e.menuEntriesOther,(function(s){return t("NcActionButton",{key:s.id,staticClass:"upload-picker__menu-entry",attrs:{icon:s.iconClass,"close-after-click":!0,"data-cy-upload-picker-menu-entry":s.id},on:{click:function(t){return e.onClick(s)}},scopedSlots:e._u([s.iconSvgInline?{key:"icon",fn:function(){return[t("NcIconSvgWrapper",{attrs:{svg:s.iconSvgInline}})]},proxy:!0}:null],null,!0)},[e._v(" "+e._s(s.displayName)+" ")])}))]:e._e()],2):t("NcButton",{attrs:{disabled:e.disabled,"data-cy-upload-picker-add":"","data-cy-upload-picker-menu-entry":"upload-file",type:"secondary"},on:{click:function(t){return e.onTriggerPick()}},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconPlus",{attrs:{size:20}})]},proxy:!0}],null,!1,1991456921)},[e._v(" "+e._s(e.buttonName)+" ")]),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isUploading,expression:"isUploading"}],staticClass:"upload-picker__progress"},[t("NcProgressBar",{attrs:{"aria-label":e.t("Upload progress"),"aria-describedby":e.progressTimeId,error:e.hasFailure,value:e.progress,size:"medium"}}),t("p",{attrs:{id:e.progressTimeId}},[e._v(" "+e._s(e.timeLeft)+" ")])],1),e.isUploading?t("NcButton",{staticClass:"upload-picker__cancel",attrs:{type:"tertiary","aria-label":e.t("Cancel uploads"),"data-cy-upload-picker-cancel":""},on:{click:e.onCancel},scopedSlots:e._u([{key:"icon",fn:function(){return[t("IconCancel",{attrs:{size:20}})]},proxy:!0}],null,!1,3076329829)}):e._e(),t("input",{ref:"input",staticClass:"hidden-visually",attrs:{accept:e.accept?.join?.(", "),multiple:e.multiple,"data-cy-upload-picker-input":"",type:"file"},on:{change:e.onPick}})],1):e._e()}),[],0,0,"e69e222f").exports;function X(e=(0,n.f)(),t=!1){return(t||void 0===window._nc_uploader)&&(window._nc_uploader=new M(e)),window._nc_uploader}async function J(e,t,n,a){const r=(0,i.$V)((()=>Promise.all([s.e(4208),s.e(5266)]).then(s.bind(s,65266))));return new Promise(((s,o)=>{const l=new i.Ay({name:"ConflictPickerRoot",render:i=>i(r,{props:{dirname:e,conflicts:t,content:n,recursiveUpload:!0===a?.recursive},on:{submit(e){s(e),l.$destroy(),l.$el?.parentNode?.removeChild(l.$el)},cancel(e){o(e??new Error("Canceled")),l.$destroy(),l.$el?.parentNode?.removeChild(l.$el)}}})});l.$mount(),document.body.appendChild(l.$el)}))}}},a={};function r(e){var t=a[e];if(void 0!==t)return t.exports;var s=a[e]={id:e,loaded:!1,exports:{}};return i[e].call(s.exports,s,s.exports,r),s.loaded=!0,s.exports}r.m=i,e=[],r.O=(t,s,n,i)=>{if(!s){var a=1/0;for(c=0;c<e.length;c++){s=e[c][0],n=e[c][1],i=e[c][2];for(var o=!0,l=0;l<s.length;l++)(!1&i||a>=i)&&Object.keys(r.O).every((e=>r.O[e](s[l])))?s.splice(l--,1):(o=!1,i<a&&(a=i));if(o){e.splice(c--,1);var d=n();void 0!==d&&(t=d)}}return t}i=i||0;for(var c=e.length;c>0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[s,n,i]},r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var s in t)r.o(t,s)&&!r.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((t,s)=>(r.f[s](e,t),t)),[])),r.u=e=>e+"-"+e+".js?v="+{2441:"fc741cf57e9647f370a3",5266:"92742106cfd0ab7e96b2",5862:"7b9b02dc0a1b898066ef",7874:"3ea1c62ce5f0e7d75e81",8320:"87233c1e751a74de3fe2"}[e],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},n="nextcloud:",r.l=(e,t,i,a)=>{if(s[e])s[e].push(t);else{var o,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),c=0;c<d.length;c++){var m=d[c];if(m.getAttribute("src")==e||m.getAttribute("data-webpack")==n+i){o=m;break}}o||(l=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",n+i),o.src=e),s[e]=[t];var u=(t,n)=>{o.onerror=o.onload=null,clearTimeout(g);var i=s[e];if(delete s[e],o.parentNode&&o.parentNode.removeChild(o),i&&i.forEach((e=>e(n))),t)return t(n)},g=setTimeout(u.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=u.bind(null,o.onerror),o.onload=u.bind(null,o.onload),l&&document.head.appendChild(o)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.j=2882,(()=>{var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var s=t.getElementsByTagName("script");if(s.length)for(var n=s.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=s[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e})(),(()=>{r.b=document.baseURI||self.location.href;var e={2882:0};r.f.j=(t,s)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)s.push(n[2]);else{var i=new Promise(((s,i)=>n=e[t]=[s,i]));s.push(n[2]=i);var a=r.p+r.u(t),o=new Error;r.l(a,(s=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=s&&("load"===s.type?"missing":s.type),a=s&&s.target&&s.target.src;o.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",o.name="ChunkLoadError",o.type=i,o.request=a,n[1](o)}}),"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,s)=>{var n,i,a=s[0],o=s[1],l=s[2],d=0;if(a.some((t=>0!==e[t]))){for(n in o)r.o(o,n)&&(r.m[n]=o[n]);if(l)var c=l(r)}for(t&&t(s);d<a.length;d++)i=a[d],r.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return r.O(c)},s=self.webpackChunknextcloud=self.webpackChunknextcloud||[];s.forEach(t.bind(null,0)),s.push=t.bind(null,s.push.bind(s))})(),r.nc=void 0;var o=r.O(void 0,[4208],(()=>r(28874)));o=r.O(o)})();
+//# sourceMappingURL=files-main.js.map?v=724e410f25e4e892c74a \ No newline at end of file
diff --git a/dist/files-main.js.map b/dist/files-main.js.map
index 91e4c8d1daa..3a5ef6b982b 100644
--- a/dist/files-main.js.map
+++ b/dist/files-main.js.map
@@ -1 +1 @@
-{"version":3,"file":"files-main.js?v=7959d538bbdeb85a1d2a","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files/src/store/index.ts","webpack:///nextcloud/apps/files/src/logger.ts","webpack:///nextcloud/apps/files/src/actions/deleteUtils.ts","webpack:///nextcloud/apps/files/src/actions/deleteAction.ts","webpack:///nextcloud/apps/files/src/actions/favoriteAction.ts","webpack:///nextcloud/apps/files/src/actions/renameAction.ts","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","webpack:///nextcloud/apps/files/src/store/active.ts","webpack:///nextcloud/apps/files/src/utils/actionUtils.ts","webpack:///nextcloud/apps/files/src/store/userconfig.ts","webpack:///nextcloud/apps/files/src/FilesApp.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Cog.vue?4d6d","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue?vue&type=template&id=209aff25","webpack:///nextcloud/node_modules/throttle-debounce/esm/index.js","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ChartPie.vue?421f","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue?vue&type=template&id=90a70766","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?e0b0","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?2966","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?08cb","webpack://nextcloud/./apps/files/src/views/Settings.vue?84f7","webpack:///nextcloud/apps/files/src/components/Setting.vue","webpack:///nextcloud/apps/files/src/components/Setting.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files/src/components/Setting.vue?98ea","webpack://nextcloud/./apps/files/src/components/Setting.vue?8d57","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/views/Settings.vue","webpack://nextcloud/./apps/files/src/views/Settings.vue?9b39","webpack://nextcloud/./apps/files/src/views/Settings.vue?b81b","webpack:///nextcloud/apps/files/src/components/FilesNavigationItem.vue","webpack:///nextcloud/apps/files/src/composables/useNavigation.ts","webpack:///nextcloud/apps/files/src/store/viewConfig.ts","webpack:///nextcloud/apps/files/src/components/FilesNavigationItem.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesNavigationItem.vue?172f","webpack:///nextcloud/apps/files/src/filters/FilenameFilter.ts","webpack:///nextcloud/apps/files/src/store/filters.ts","webpack:///nextcloud/apps/files/src/views/Navigation.vue","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/composables/useFilenameFilter.ts","webpack://nextcloud/./apps/files/src/views/Navigation.vue?b220","webpack://nextcloud/./apps/files/src/views/Navigation.vue?74b9","webpack:///nextcloud/apps/files/src/views/FilesList.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Reload.vue?2e35","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue?vue&type=template&id=39a07256","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?5dae","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?vue&type=template&id=64cece03","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountPlus.vue?2818","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue?vue&type=template&id=53a26aa0","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ViewGrid.vue?4e55","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue?vue&type=template&id=672ea5c8","webpack:///nextcloud/apps/files/src/composables/useFileListWidth.ts","webpack:///nextcloud/apps/files/src/composables/useRouteParameters.ts","webpack:///nextcloud/node_modules/vue-router/composables.mjs","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/store/paths.ts","webpack:///nextcloud/apps/files/src/store/files.ts","webpack:///nextcloud/apps/files/src/store/selection.ts","webpack:///nextcloud/apps/files/src/store/uploader.ts","webpack:///nextcloud/apps/files/src/services/DropServiceUtils.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyActionUtils.ts","webpack:///nextcloud/apps/files/src/services/Files.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyAction.ts","webpack:///nextcloud/apps/files/src/services/DropService.ts","webpack:///nextcloud/apps/files/src/store/dragging.ts","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?3e99","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?d357","webpack:///nextcloud/apps/files/src/utils/fileUtils.ts","webpack:///nextcloud/apps/files/src/components/FileEntry.vue","webpack:///nextcloud/apps/files/src/store/actionsmenu.ts","webpack:///nextcloud/apps/files/src/store/renaming.ts","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue","webpack://nextcloud/./apps/files/src/components/CustomElementRender.vue?5f5c","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ArrowLeft.vue?f857","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=16833c02","webpack:///nextcloud/apps/files/src/mixins/actionsMixin.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?9429","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?93fa","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?7b52","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryCheckbox.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryCheckbox.vue","webpack:///nextcloud/apps/files/src/store/keyboard.ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryCheckbox.vue?a18b","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FileMultiple.vue?6e9d","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=template&id=15fca808","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/DragAndDropPreview.vue?dbe9","webpack://nextcloud/./apps/files/src/components/DragAndDropPreview.vue?36f6","webpack:///nextcloud/apps/files/src/utils/dragUtils.ts","webpack:///nextcloud/apps/files/src/components/FileEntryMixin.ts","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/files/src/utils/permissions.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue","webpack:///nextcloud/apps/files/src/utils/filenameValidity.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryName.vue?c9be","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryName.vue?98a4","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryPreview.vue","webpack:///nextcloud/node_modules/blurhash/dist/esm/index.js","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FolderOpen.vue?6818","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue?vue&type=template&id=ae0c5fc0","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Key.vue?157c","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue?vue&type=template&id=499b3412","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Network.vue?11eb","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue?vue&type=template&id=7bf2ec80","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Tag.vue?6116","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue?vue&type=template&id=356230e0","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/PlayCircle.vue?0c26","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue?vue&type=template&id=3cc1493c","webpack:///nextcloud/apps/files/src/components/FileEntry/CollectivesIcon.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/FileEntry/CollectivesIcon.vue","webpack://nextcloud/./apps/files/src/components/FileEntry/CollectivesIcon.vue?1937","webpack://nextcloud/./apps/files/src/components/FileEntry/CollectivesIcon.vue?949d","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue","webpack://nextcloud/./apps/files/src/components/FileEntry/FavoriteIcon.vue?f7c8","webpack://nextcloud/./apps/files/src/components/FileEntry/FavoriteIcon.vue?62c6","webpack:///nextcloud/apps/files/src/services/LivePhotos.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryPreview.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryPreview.vue?8c1f","webpack:///nextcloud/apps/files/src/components/FileEntry.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry.vue?da7c","webpack:///nextcloud/apps/files/src/components/FileEntryGrid.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntryGrid.vue","webpack://nextcloud/./apps/files/src/components/FileEntryGrid.vue?bb8e","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FileListFilters.vue?eef0","webpack://nextcloud/./apps/files/src/components/FileListFilters.vue?ac4e","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue","webpack://nextcloud/./apps/files/src/components/FilesListHeader.vue?349b","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue","webpack://nextcloud/./apps/files/src/components/FilesListTableFooter.vue?2beb","webpack://nextcloud/./apps/files/src/components/FilesListTableFooter.vue?fa4c","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue","webpack:///nextcloud/apps/files/src/mixins/filesSorting.ts","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderButton.vue?55b2","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderButton.vue?e364","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListTableHeader.vue?0b9e","webpack://nextcloud/./apps/files/src/components/FilesListTableHeader.vue?b1c9","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderActions.vue?961a","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderActions.vue?9494","webpack:///nextcloud/apps/files/src/components/VirtualList.vue","webpack:///nextcloud/apps/files/src/components/VirtualList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/VirtualList.vue?37fa","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?4d02","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?3804","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?3555","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/TrayArrowDown.vue?a897","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue?vue&type=template&id=5dbf2618","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue","webpack://nextcloud/./apps/files/src/components/DragAndDropNotice.vue?7ba1","webpack://nextcloud/./apps/files/src/components/DragAndDropNotice.vue?a2e0","webpack:///nextcloud/apps/files/src/utils/davUtils.ts","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/views/FilesList.vue?967e","webpack://nextcloud/./apps/files/src/views/FilesList.vue?1e5b","webpack:///nextcloud/apps/files/src/FilesApp.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/FilesApp.vue?597e","webpack:///nextcloud/apps/files/src/router/router.ts","webpack:///nextcloud/apps/files/src/services/RouterService.ts","webpack:///nextcloud/apps/files/src/main.ts","webpack:///nextcloud/apps/files/src/services/HotKeysService.ts","webpack:///nextcloud/apps/files/src/services/Settings.js","webpack:///nextcloud/apps/files/src/models/Setting.js","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=style&index=0&id=04abfffa&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue?vue&type=style&index=0&id=4959a5b4&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue?vue&type=style&index=0&id=f2d0cf6e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=style&index=0&id=5ba570cc&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=style&index=1&id=5ba570cc&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue?vue&type=style&index=0&id=c8581214&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue?vue&type=style&index=0&id=bd0c8440&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue?vue&type=style&index=0&id=5103b354&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue?vue&type=style&index=0&id=2790ede2&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue?vue&type=style&index=0&id=22469fbb&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue?vue&type=style&index=0&id=6d7680f0&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=0&id=fb65796a&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=1&id=fb65796a&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=style&index=0&id=6ed9379e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=style&index=0&id=693703cc&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=style&index=0&id=c6191948&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=style&index=0&id=6fc727d7&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/chunks/index-DUD0fqDs.mjs","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createPinia } from 'pinia';\nexport const getPinia = () => {\n if (window._nc_files_pinia) {\n return window._nc_files_pinia;\n }\n window._nc_files_pinia = createPinia();\n return window._nc_files_pinia;\n};\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('files')\n .detectUser()\n .build();\n","import { emit } from '@nextcloud/event-bus';\nimport { FileType } from '@nextcloud/files';\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { n, t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nexport const isTrashbinEnabled = () => getCapabilities()?.files?.undelete === true;\nexport const canUnshareOnly = (nodes) => {\n return nodes.every(node => node.attributes['is-mount-root'] === true\n && node.attributes['mount-type'] === 'shared');\n};\nexport const canDisconnectOnly = (nodes) => {\n return nodes.every(node => node.attributes['is-mount-root'] === true\n && node.attributes['mount-type'] === 'external');\n};\nexport const isMixedUnshareAndDelete = (nodes) => {\n if (nodes.length === 1) {\n return false;\n }\n const hasSharedItems = nodes.some(node => canUnshareOnly([node]));\n const hasDeleteItems = nodes.some(node => !canUnshareOnly([node]));\n return hasSharedItems && hasDeleteItems;\n};\nexport const isAllFiles = (nodes) => {\n return !nodes.some(node => node.type !== FileType.File);\n};\nexport const isAllFolders = (nodes) => {\n return !nodes.some(node => node.type !== FileType.Folder);\n};\nexport const displayName = (nodes, view) => {\n /**\n * If those nodes are all the root node of a\n * share, we can only unshare them.\n */\n if (canUnshareOnly(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Leave this share');\n }\n return t('files', 'Leave these shares');\n }\n /**\n * If those nodes are all the root node of an\n * external storage, we can only disconnect it.\n */\n if (canDisconnectOnly(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Disconnect storage');\n }\n return t('files', 'Disconnect storages');\n }\n /**\n * If we're in the trashbin, we can only delete permanently\n */\n if (view.id === 'trashbin' || !isTrashbinEnabled()) {\n return t('files', 'Delete permanently');\n }\n /**\n * If we're in the sharing view, we can only unshare\n */\n if (isMixedUnshareAndDelete(nodes)) {\n return t('files', 'Delete and unshare');\n }\n /**\n * If we're only selecting files, use proper wording\n */\n if (isAllFiles(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Delete file');\n }\n return t('files', 'Delete files');\n }\n /**\n * If we're only selecting folders, use proper wording\n */\n if (isAllFolders(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Delete folder');\n }\n return t('files', 'Delete folders');\n }\n return t('files', 'Delete');\n};\nexport const askConfirmation = async (nodes, view) => {\n const message = view.id === 'trashbin' || !isTrashbinEnabled()\n ? n('files', 'You are about to permanently delete {count} item', 'You are about to permanently delete {count} items', nodes.length, { count: nodes.length })\n : n('files', 'You are about to delete {count} item', 'You are about to delete {count} items', nodes.length, { count: nodes.length });\n return new Promise(resolve => {\n // TODO: Use the new dialog API\n window.OC.dialogs.confirmDestructive(message, t('files', 'Confirm deletion'), {\n type: window.OC.dialogs.YES_NO_BUTTONS,\n confirm: displayName(nodes, view),\n confirmClasses: 'error',\n cancel: t('files', 'Cancel'),\n }, (decision) => {\n resolve(decision);\n });\n });\n};\nexport const deleteNode = async (node) => {\n await axios.delete(node.encodedSource);\n // Let's delete even if it's moved to the trashbin\n // since it has been removed from the current view\n // and changing the view will trigger a reload anyway.\n emit('files:node:deleted', node);\n};\n","import { loadState } from '@nextcloud/initial-state';\nimport { Permission, Node, View, FileAction } from '@nextcloud/files';\nimport { showInfo } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport PQueue from 'p-queue';\nimport CloseSvg from '@mdi/svg/svg/close.svg?raw';\nimport NetworkOffSvg from '@mdi/svg/svg/network-off.svg?raw';\nimport TrashCanSvg from '@mdi/svg/svg/trash-can.svg?raw';\nimport logger from '../logger.ts';\nimport { askConfirmation, canDisconnectOnly, canUnshareOnly, deleteNode, displayName, isTrashbinEnabled } from './deleteUtils';\nconst queue = new PQueue({ concurrency: 5 });\nexport const ACTION_DELETE = 'delete';\nexport const action = new FileAction({\n id: ACTION_DELETE,\n displayName,\n iconSvgInline: (nodes) => {\n if (canUnshareOnly(nodes)) {\n return CloseSvg;\n }\n if (canDisconnectOnly(nodes)) {\n return NetworkOffSvg;\n }\n return TrashCanSvg;\n },\n enabled(nodes) {\n const config = loadState('files_trashbin', 'config');\n if (!config.allow_delete) {\n return false;\n }\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.DELETE) !== 0);\n },\n async exec(node, view) {\n try {\n let confirm = true;\n // Trick to detect if the action was called from a keyboard event\n // we need to make sure the method calling have its named containing 'keydown'\n // here we use `onKeydown` method from the FileEntryActions component\n const callStack = new Error().stack || '';\n const isCalledFromEventListener = callStack.toLocaleLowerCase().includes('keydown');\n // If trashbin is disabled, we need to ask for confirmation\n if (!isTrashbinEnabled() || isCalledFromEventListener) {\n confirm = await askConfirmation([node], view);\n }\n // If the user cancels the deletion, we don't want to do anything\n if (confirm === false) {\n showInfo(t('files', 'Deletion cancelled'));\n return null;\n }\n await deleteNode(node);\n return true;\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n return false;\n }\n },\n async execBatch(nodes, view) {\n let confirm = true;\n // If trashbin is disabled, we need to ask for confirmation\n if (!isTrashbinEnabled()) {\n confirm = await askConfirmation(nodes, view);\n }\n else if (nodes.length >= 5 && !canUnshareOnly(nodes) && !canDisconnectOnly(nodes)) {\n confirm = await askConfirmation(nodes, view);\n }\n // If the user cancels the deletion, we don't want to do anything\n if (confirm === false) {\n showInfo(t('files', 'Deletion cancelled'));\n return Promise.all(nodes.map(() => null));\n }\n // Map each node to a promise that resolves with the result of exec(node)\n const promises = nodes.map(node => {\n // Create a promise that resolves with the result of exec(node)\n const promise = new Promise(resolve => {\n queue.add(async () => {\n try {\n await deleteNode(node);\n resolve(true);\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n resolve(false);\n }\n });\n });\n return promise;\n });\n return Promise.all(promises);\n },\n order: 100,\n});\n","import { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { encodePath } from '@nextcloud/paths';\nimport { generateUrl } from '@nextcloud/router';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport axios from '@nextcloud/axios';\nimport PQueue from 'p-queue';\nimport Vue from 'vue';\nimport StarOutlineSvg from '@mdi/svg/svg/star-outline.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport logger from '../logger.ts';\nexport const ACTION_FAVORITE = 'favorite';\nconst queue = new PQueue({ concurrency: 5 });\n// If any of the nodes is not favorited, we display the favorite action.\nconst shouldFavorite = (nodes) => {\n return nodes.some(node => node.attributes.favorite !== 1);\n};\nexport const favoriteNode = async (node, view, willFavorite) => {\n try {\n // TODO: migrate to webdav tags plugin\n const url = generateUrl('/apps/files/api/v1/files') + encodePath(node.path);\n await axios.post(url, {\n tags: willFavorite\n ? [window.OC.TAG_FAVORITE]\n : [],\n });\n // Let's delete if we are in the favourites view\n // AND if it is removed from the user favorites\n // AND it's in the root of the favorites view\n if (view.id === 'favorites' && !willFavorite && node.dirname === '/') {\n emit('files:node:deleted', node);\n }\n // Update the node webdav attribute\n Vue.set(node.attributes, 'favorite', willFavorite ? 1 : 0);\n // Dispatch event to whoever is interested\n if (willFavorite) {\n emit('files:favorites:added', node);\n }\n else {\n emit('files:favorites:removed', node);\n }\n return true;\n }\n catch (error) {\n const action = willFavorite ? 'adding a file to favourites' : 'removing a file from favourites';\n logger.error('Error while ' + action, { error, source: node.source, node });\n return false;\n }\n};\nexport const action = new FileAction({\n id: ACTION_FAVORITE,\n displayName(nodes) {\n return shouldFavorite(nodes)\n ? t('files', 'Add to favorites')\n : t('files', 'Remove from favorites');\n },\n iconSvgInline: (nodes) => {\n return shouldFavorite(nodes)\n ? StarOutlineSvg\n : StarSvg;\n },\n enabled(nodes) {\n // Not enabled for public shares\n if (isPublicShare()) {\n return false;\n }\n // We can only favorite nodes if they are located in files\n return nodes.every(node => node.root?.startsWith?.('/files'))\n // and we have permissions\n && nodes.every(node => node.permissions !== Permission.NONE);\n },\n async exec(node, view) {\n const willFavorite = shouldFavorite([node]);\n return await favoriteNode(node, view, willFavorite);\n },\n async execBatch(nodes, view) {\n const willFavorite = shouldFavorite(nodes);\n // Map each node to a promise that resolves with the result of exec(node)\n const promises = nodes.map(node => {\n // Create a promise that resolves with the result of exec(node)\n const promise = new Promise(resolve => {\n queue.add(async () => {\n try {\n await favoriteNode(node, view, willFavorite);\n resolve(true);\n }\n catch (error) {\n logger.error('Error while adding file to favorite', { error, source: node.source, node });\n resolve(false);\n }\n });\n });\n return promise;\n });\n return Promise.all(promises);\n },\n order: -50,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction, View } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport PencilSvg from '@mdi/svg/svg/pencil.svg?raw';\nexport const ACTION_RENAME = 'rename';\nexport const action = new FileAction({\n id: ACTION_RENAME,\n displayName: () => t('files', 'Rename'),\n iconSvgInline: () => PencilSvg,\n enabled: (nodes, view) => {\n if (nodes.length === 0) {\n return false;\n }\n // Disable for single file shares\n if (view.id === 'public-file-share') {\n return false;\n }\n // Only enable if all nodes have the delete permission\n return nodes.every((node) => Boolean(node.permissions & Permission.DELETE));\n },\n async exec(node) {\n // Renaming is a built-in feature of the files app\n emit('files:node:rename', node);\n return null;\n },\n order: 10,\n});\n","import { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport InformationSvg from '@mdi/svg/svg/information-variant.svg?raw';\nimport logger from '../logger.ts';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n id: ACTION_DETAILS,\n displayName: () => t('files', 'Open details'),\n iconSvgInline: () => InformationSvg,\n // Sidebar currently supports user folder only, /files/USER\n enabled: (nodes) => {\n if (isPublicShare()) {\n return false;\n }\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n if (!nodes[0]) {\n return false;\n }\n // Only work if the sidebar is available\n if (!window?.OCA?.Files?.Sidebar) {\n return false;\n }\n return (nodes[0].root?.startsWith('/files/') && nodes[0].permissions !== Permission.NONE) ?? false;\n },\n async exec(node, view, dir) {\n try {\n // If the sidebar is already open for the current file, do nothing\n if (window.OCA.Files.Sidebar.file === node.path) {\n logger.debug('Sidebar already open for this file', { node });\n return null;\n }\n // Open sidebar and set active tab to sharing by default\n window.OCA.Files.Sidebar.setActiveTab('sharing');\n // TODO: migrate Sidebar to use a Node instead\n await window.OCA.Files.Sidebar.open(node.path);\n // Silently update current fileid\n window.OCP?.Files?.Router?.goToRoute(null, { view: view.id, fileid: String(node.fileid) }, { ...window.OCP.Files.Router.query, dir, opendetails: 'true' }, true);\n return null;\n }\n catch (error) {\n logger.error('Error while opening sidebar', { error });\n return false;\n }\n },\n order: -50,\n});\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia';\nimport { getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport logger from '../logger.ts';\nexport const useActiveStore = function (...args) {\n const store = defineStore('active', {\n state: () => ({\n _initialized: false,\n activeNode: null,\n activeView: null,\n activeAction: null,\n }),\n actions: {\n setActiveNode(node) {\n if (!node) {\n throw new Error('Use clearActiveNode to clear the active node');\n }\n logger.debug('Setting active node', { node });\n this.activeNode = node;\n },\n clearActiveNode() {\n this.activeNode = null;\n },\n onDeletedNode(node) {\n if (this.activeNode && this.activeNode.source === node.source) {\n this.clearActiveNode();\n }\n },\n setActiveAction(action) {\n this.activeAction = action;\n },\n clearActiveAction() {\n this.activeAction = null;\n },\n onChangedView(view = null) {\n logger.debug('Setting active view', { view });\n this.activeView = view;\n this.clearActiveNode();\n },\n },\n });\n const activeStore = store(...args);\n const navigation = getNavigation();\n // Make sure we only register the listeners once\n if (!activeStore._initialized) {\n subscribe('files:node:deleted', activeStore.onDeletedNode);\n activeStore._initialized = true;\n activeStore.onChangedView(navigation.active);\n // Or you can react to changes of the current active view\n navigation.addEventListener('updateActive', (event) => {\n activeStore.onChangedView(event.detail);\n });\n }\n return activeStore;\n};\n","import { NodeStatus } from '@nextcloud/files';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { getPinia } from '../store';\nimport { useActiveStore } from '../store/active';\nimport logger from '../logger';\n/**\n * Execute an action on the current active node\n *\n * @param action The action to execute\n */\nexport const executeAction = async (action) => {\n const activeStore = useActiveStore(getPinia());\n const currentDir = (window?.OCP?.Files?.Router?.query?.dir || '/');\n const currentNode = activeStore.activeNode;\n const currentView = activeStore.activeView;\n if (!currentNode || !currentView) {\n logger.error('No active node or view', { node: currentNode, view: currentView });\n return;\n }\n if (currentNode.status === NodeStatus.LOADING) {\n logger.debug('Node is already loading', { node: currentNode });\n return;\n }\n if (!action.enabled([currentNode], currentView)) {\n logger.debug('Action is not not available for the current context', { action, node: currentNode, view: currentView });\n return;\n }\n let displayName = action.id;\n try {\n displayName = action.displayName([currentNode], currentView);\n }\n catch (error) {\n logger.error('Error while getting action display name', { action, error });\n }\n try {\n // Set the loading marker\n Vue.set(currentNode, 'status', NodeStatus.LOADING);\n activeStore.setActiveAction(action);\n const success = await action.exec(currentNode, currentView, currentDir);\n // If the action returns null, we stay silent\n if (success === null || success === undefined) {\n return;\n }\n if (success) {\n showSuccess(t('files', '\"{displayName}\" action executed successfully', { displayName }));\n return;\n }\n showError(t('files', '\"{displayName}\" action failed', { displayName }));\n }\n catch (error) {\n logger.error('Error while executing action', { action, error });\n showError(t('files', '\"{displayName}\" action failed', { displayName }));\n }\n finally {\n // Reset the loading marker\n Vue.set(currentNode, 'status', undefined);\n activeStore.clearActiveAction();\n }\n};\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport { ref, set } from 'vue';\nimport axios from '@nextcloud/axios';\nconst initialUserConfig = loadState('files', 'config', {\n show_hidden: false,\n crop_image_previews: true,\n sort_favorites_first: true,\n sort_folders_first: true,\n grid_view: false,\n});\nexport const useUserConfigStore = defineStore('userconfig', () => {\n const userConfig = ref({ ...initialUserConfig });\n /**\n * Update the user config local store\n * @param key The config key\n * @param value The new value\n */\n function onUpdate(key, value) {\n set(userConfig.value, key, value);\n }\n /**\n * Update the user config local store AND on server side\n * @param key The config key\n * @param value The new value\n */\n async function update(key, value) {\n // only update if a user is logged in (not the case for public shares)\n if (getCurrentUser() !== null) {\n await axios.put(generateUrl('/apps/files/api/v1/config/{key}', { key }), {\n value,\n });\n }\n emit('files:config:updated', { key, value });\n }\n // Register the event listener\n subscribe('files:config:updated', ({ key, value }) => onUpdate(key, value));\n return {\n userConfig,\n update,\n };\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcContent',{attrs:{\"app-name\":\"files\"}},[(!_vm.isPublic)?_c('Navigation'):_vm._e(),_vm._v(\" \"),_c('FilesList',{attrs:{\"is-public\":_vm.isPublic}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon cog-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CogIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Cog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Cog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Cog.vue?vue&type=template&id=209aff25\"\nimport script from \"./Cog.vue?vue&type=script&lang=js\"\nexport * from \"./Cog.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 cog-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,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n * are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n * as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n * one final time after the last throttled-function call. (After the throttled-function has not been called for\n * `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n * callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n * false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, callback, options) {\n var _ref = options || {},\n _ref$noTrailing = _ref.noTrailing,\n noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,\n _ref$noLeading = _ref.noLeading,\n noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,\n _ref$debounceMode = _ref.debounceMode,\n debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false;\n\n // Keep track of the last time `callback` was executed.\n var lastExec = 0;\n\n // Function to clear existing timeout\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n }\n\n // Function to cancel next exec\n function cancel(options) {\n var _ref2 = options || {},\n _ref2$upcomingOnly = _ref2.upcomingOnly,\n upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;\n clearExistingTimeout();\n cancelled = !upcomingOnly;\n }\n\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n var self = this;\n var elapsed = Date.now() - lastExec;\n if (cancelled) {\n return;\n }\n\n // Execute `callback` and update the `lastExec` timestamp.\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n function clear() {\n timeoutID = undefined;\n }\n if (!noLeading && debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`\n * and noLeading != true.\n */\n exec();\n }\n clearExistingTimeout();\n if (debounceMode === undefined && elapsed > delay) {\n if (noLeading) {\n /*\n * In throttle mode with noLeading, if `delay` time has\n * been exceeded, update `lastExec` and schedule `callback`\n * to execute after `delay` ms.\n */\n lastExec = Date.now();\n if (!noTrailing) {\n timeoutID = setTimeout(debounceMode ? clear : exec, delay);\n }\n } else {\n /*\n * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n }\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n wrapper.cancel = cancel;\n\n // Return the wrapper function.\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\nfunction debounce (delay, callback, options) {\n var _ref = options || {},\n _ref$atBegin = _ref.atBegin,\n atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;\n return throttle(delay, callback, {\n debounceMode: atBegin !== false\n });\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon chart-pie-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ChartPieIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChartPie.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChartPie.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChartPie.vue?vue&type=template&id=90a70766\"\nimport script from \"./ChartPie.vue?vue&type=script&lang=js\"\nexport * from \"./ChartPie.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 chart-pie-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\":\"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\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 -->\n<template>\n\t<NcAppNavigationItem v-if=\"storageStats\"\n\t\t:aria-description=\"t('files', 'Storage information')\"\n\t\t:class=\"{ 'app-navigation-entry__settings-quota--not-unlimited': storageStats.quota >= 0}\"\n\t\t:loading=\"loadingStorageStats\"\n\t\t:name=\"storageStatsTitle\"\n\t\t:title=\"storageStatsTooltip\"\n\t\tclass=\"app-navigation-entry__settings-quota\"\n\t\tdata-cy-files-navigation-settings-quota\n\t\t@click.stop.prevent=\"debounceUpdateStorageStats\">\n\t\t<ChartPie slot=\"icon\" :size=\"20\" />\n\n\t\t<!-- Progress bar -->\n\t\t<NcProgressBar v-if=\"storageStats.quota >= 0\"\n\t\t\tslot=\"extra\"\n\t\t\t:aria-label=\"t('files', 'Storage quota')\"\n\t\t\t:error=\"storageStats.relative > 80\"\n\t\t\t:value=\"Math.min(storageStats.relative, 100)\" />\n\t</NcAppNavigationItem>\n</template>\n\n<script>\nimport { debounce, throttle } from 'throttle-debounce'\nimport { formatFileSize } from '@nextcloud/files'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport { subscribe } from '@nextcloud/event-bus'\nimport { translate } from '@nextcloud/l10n'\nimport axios from '@nextcloud/axios'\n\nimport ChartPie from 'vue-material-design-icons/ChartPie.vue'\nimport NcAppNavigationItem from '@nextcloud/vue/dist/Components/NcAppNavigationItem.js'\nimport NcProgressBar from '@nextcloud/vue/dist/Components/NcProgressBar.js'\n\nimport logger from '../logger.ts'\n\nexport default {\n\tname: 'NavigationQuota',\n\n\tcomponents: {\n\t\tChartPie,\n\t\tNcAppNavigationItem,\n\t\tNcProgressBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloadingStorageStats: false,\n\t\t\tstorageStats: loadState('files', 'storageStats', null),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tstorageStatsTitle() {\n\t\t\tconst usedQuotaByte = formatFileSize(this.storageStats?.used, false, false)\n\t\t\tconst quotaByte = formatFileSize(this.storageStats?.quota, false, false)\n\n\t\t\t// If no quota set\n\t\t\tif (this.storageStats?.quota < 0) {\n\t\t\t\treturn this.t('files', '{usedQuotaByte} used', { usedQuotaByte })\n\t\t\t}\n\n\t\t\treturn this.t('files', '{used} of {quota} used', {\n\t\t\t\tused: usedQuotaByte,\n\t\t\t\tquota: quotaByte,\n\t\t\t})\n\t\t},\n\t\tstorageStatsTooltip() {\n\t\t\tif (!this.storageStats.relative) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn this.t('files', '{relative}% used', this.storageStats)\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\t/**\n\t\t * Update storage stats every minute\n\t\t * TODO: remove when all views are migrated to Vue\n\t\t */\n\t\tsetInterval(this.throttleUpdateStorageStats, 60 * 1000)\n\n\t\tsubscribe('files:node:created', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:deleted', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:moved', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:updated', this.throttleUpdateStorageStats)\n\t},\n\n\tmounted() {\n\t\t// If the user has a quota set, warn if the available account storage is <=0\n\t\t//\n\t\t// NOTE: This doesn't catch situations where actual *server*\n\t\t// disk (non-quota) space is low, but those should probably\n\t\t// be handled differently anyway since a regular user can't\n\t\t// can't do much about them (If we did want to indicate server disk\n\t\t// space matters to users, we'd probably want to use a warning\n\t\t// specific to that situation anyhow. So this covers warning covers\n\t\t// our primary day-to-day concern (individual account quota usage).\n\t\t//\n\t\tif (this.storageStats?.quota > 0 && this.storageStats?.free === 0) {\n\t\t\tthis.showStorageFullWarning()\n\t\t}\n\t},\n\n\tmethods: {\n\t\t// From user input\n\t\tdebounceUpdateStorageStats: debounce(200, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\t\t// From interval or event bus\n\t\tthrottleUpdateStorageStats: throttle(1000, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\n\t\t/**\n\t\t * Update the storage stats\n\t\t * Throttled at max 1 refresh per minute\n\t\t *\n\t\t * @param {Event} [event] if user interaction\n\t\t */\n\t\tasync updateStorageStats(event = null) {\n\t\t\tif (this.loadingStorageStats) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loadingStorageStats = true\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(generateUrl('/apps/files/api/v1/stats'))\n\t\t\t\tif (!response?.data?.data) {\n\t\t\t\t\tthrow new Error('Invalid storage stats')\n\t\t\t\t}\n\n\t\t\t\t// Warn the user if the available account storage changed from > 0 to 0\n\t\t\t\t// (unless only because quota was intentionally set to 0 by admin in the interim)\n\t\t\t\tif (this.storageStats?.free > 0 && response.data.data?.free === 0 && response.data.data?.quota > 0) {\n\t\t\t\t\tthis.showStorageFullWarning()\n\t\t\t\t}\n\n\t\t\t\tthis.storageStats = response.data.data\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Could not refresh storage stats', { error })\n\t\t\t\t// Only show to the user if it was manually triggered\n\t\t\t\tif (event) {\n\t\t\t\t\tshowError(t('files', 'Could not refresh storage stats'))\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loadingStorageStats = false\n\t\t\t}\n\t\t},\n\n\t\tshowStorageFullWarning() {\n\t\t\tshowError(this.t('files', 'Your storage is full, files can not be updated or synced anymore!'))\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\n\n\t&--not-unlimited :deep(.app-navigation-entry__name) {\n\t\tline-height: 1;\n\t\tmargin-top: var(--app-navigation-quota-margin);\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: var(--app-navigation-quota-margin);\n\t\tmargin-inline-start: var(--default-clickable-area);\n\t\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.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!./NavigationQuota.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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=style&index=0&id=6ed9379e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=style&index=0&id=6ed9379e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NavigationQuota.vue?vue&type=template&id=6ed9379e&scoped=true\"\nimport script from \"./NavigationQuota.vue?vue&type=script&lang=js\"\nexport * from \"./NavigationQuota.vue?vue&type=script&lang=js\"\nimport style0 from \"./NavigationQuota.vue?vue&type=style&index=0&id=6ed9379e&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 \"6ed9379e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.storageStats)?_c('NcAppNavigationItem',{staticClass:\"app-navigation-entry__settings-quota\",class:{ 'app-navigation-entry__settings-quota--not-unlimited': _vm.storageStats.quota >= 0},attrs:{\"aria-description\":_vm.t('files', 'Storage information'),\"loading\":_vm.loadingStorageStats,\"name\":_vm.storageStatsTitle,\"title\":_vm.storageStatsTooltip,\"data-cy-files-navigation-settings-quota\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.debounceUpdateStorageStats.apply(null, arguments)}}},[_c('ChartPie',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"}),_vm._v(\" \"),(_vm.storageStats.quota >= 0)?_c('NcProgressBar',{attrs:{\"slot\":\"extra\",\"aria-label\":_vm.t('files', 'Storage quota'),\"error\":_vm.storageStats.relative > 80,\"value\":Math.min(_vm.storageStats.relative, 100)},slot:\"extra\"}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.open,\"show-navigation\":true,\"name\":_vm.t('files', 'Files settings')},on:{\"update:open\":_vm.onClose}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"settings\",\"name\":_vm.t('files', 'Files settings')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"sort_favorites_first\",\"checked\":_vm.userConfig.sort_favorites_first},on:{\"update:checked\":function($event){return _vm.setConfig('sort_favorites_first', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Sort favorites first'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"sort_folders_first\",\"checked\":_vm.userConfig.sort_folders_first},on:{\"update:checked\":function($event){return _vm.setConfig('sort_folders_first', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Sort folders before files'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"show_hidden\",\"checked\":_vm.userConfig.show_hidden},on:{\"update:checked\":function($event){return _vm.setConfig('show_hidden', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show hidden files'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"crop_image_previews\",\"checked\":_vm.userConfig.crop_image_previews},on:{\"update:checked\":function($event){return _vm.setConfig('crop_image_previews', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Crop image previews'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.enableGridView)?_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"grid_view\",\"checked\":_vm.userConfig.grid_view},on:{\"update:checked\":function($event){return _vm.setConfig('grid_view', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Enable the grid view'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"folder_tree\",\"checked\":_vm.userConfig.folder_tree},on:{\"update:checked\":function($event){return _vm.setConfig('folder_tree', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Enable folder tree'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.settings.length !== 0)?_c('NcAppSettingsSection',{attrs:{\"id\":\"more-settings\",\"name\":_vm.t('files', 'Additional settings')}},[_vm._l((_vm.settings),function(setting){return [_c('Setting',{key:setting.name,attrs:{\"el\":setting.el}})]})],2):_vm._e(),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"webdav\",\"name\":_vm.t('files', 'WebDAV')}},[_c('NcInputField',{attrs:{\"id\":\"webdav-url-input\",\"label\":_vm.t('files', 'WebDAV URL'),\"show-trailing-button\":true,\"success\":_vm.webdavUrlCopied,\"trailing-button-label\":_vm.t('files', 'Copy to clipboard'),\"value\":_vm.webdavUrl,\"readonly\":\"readonly\",\"type\":\"url\"},on:{\"focus\":function($event){return $event.target.select()},\"trailing-button-click\":_vm.copyCloudId},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [_c('Clipboard',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.webdavDocs,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Use this address to access your Files via WebDAV'))+\" ↗\\n\\t\\t\\t\")])]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.appPasswordUrl}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.'))+\" ↗\\n\\t\\t\\t\")])])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"shortcuts\",\"name\":_vm.t('files', 'Keyboard shortcuts')}},[_c('em',[_vm._v(_vm._s(_vm.t('files', 'Speed up your Files experience with these quick shortcuts.')))]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'Actions')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"a\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Open the actions menu for a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"F2\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Rename a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Del\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Delete a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"s\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Favorite or remove a file from favorites'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),(_vm.isSystemtagsEnabled)?_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"t\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Manage tags for a file'))+\"\\n\\t\\t\\t\\t\")])]):_vm._e()]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'Selection')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"A\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Select all files'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"ESC\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Deselect all files'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"Space\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Select or deselect a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"Shift\")]),_vm._v(\" \"),_c('span',[_vm._v(\"+ \"),_c('kbd',[_vm._v(\"Space\")])])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Select a range of files'))+\"\\n\\t\\t\\t\\t\")])])]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'Navigation')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Alt\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"↑\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the parent folder'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"↑\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file above'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"↓\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file below'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"←\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file on the left (in grid mode)'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"→\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file on the right (in grid mode)'))+\"\\n\\t\\t\\t\\t\")])])]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'View')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"V\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Toggle the grid view'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"D\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Open the sidebar for a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"?\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show those shortcuts'))+\"\\n\\t\\t\\t\\t\")])])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div />\n</template>\n<script>\nexport default {\n\tname: 'Setting',\n\tprops: {\n\t\tel: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$el.appendChild(this.el())\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.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!./Setting.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Setting.vue?vue&type=template&id=315a4ce8\"\nimport script from \"./Setting.vue?vue&type=script&lang=js\"\nexport * from \"./Setting.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('div')\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!./Settings.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!./Settings.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcAppSettingsDialog :open=\"open\"\n\t\t:show-navigation=\"true\"\n\t\t:name=\"t('files', 'Files settings')\"\n\t\t@update:open=\"onClose\">\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection id=\"settings\" :name=\"t('files', 'Files settings')\">\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"sort_favorites_first\"\n\t\t\t\t:checked=\"userConfig.sort_favorites_first\"\n\t\t\t\t@update:checked=\"setConfig('sort_favorites_first', $event)\">\n\t\t\t\t{{ t('files', 'Sort favorites first') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"sort_folders_first\"\n\t\t\t\t:checked=\"userConfig.sort_folders_first\"\n\t\t\t\t@update:checked=\"setConfig('sort_folders_first', $event)\">\n\t\t\t\t{{ t('files', 'Sort folders before files') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"show_hidden\"\n\t\t\t\t:checked=\"userConfig.show_hidden\"\n\t\t\t\t@update:checked=\"setConfig('show_hidden', $event)\">\n\t\t\t\t{{ t('files', 'Show hidden files') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"crop_image_previews\"\n\t\t\t\t:checked=\"userConfig.crop_image_previews\"\n\t\t\t\t@update:checked=\"setConfig('crop_image_previews', $event)\">\n\t\t\t\t{{ t('files', 'Crop image previews') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch v-if=\"enableGridView\"\n\t\t\t\tdata-cy-files-settings-setting=\"grid_view\"\n\t\t\t\t:checked=\"userConfig.grid_view\"\n\t\t\t\t@update:checked=\"setConfig('grid_view', $event)\">\n\t\t\t\t{{ t('files', 'Enable the grid view') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"folder_tree\"\n\t\t\t\t:checked=\"userConfig.folder_tree\"\n\t\t\t\t@update:checked=\"setConfig('folder_tree', $event)\">\n\t\t\t\t{{ t('files', 'Enable folder tree') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection v-if=\"settings.length !== 0\"\n\t\t\tid=\"more-settings\"\n\t\t\t:name=\"t('files', 'Additional settings')\">\n\t\t\t<template v-for=\"setting in settings\">\n\t\t\t\t<Setting :key=\"setting.name\" :el=\"setting.el\" />\n\t\t\t</template>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Webdav URL-->\n\t\t<NcAppSettingsSection id=\"webdav\" :name=\"t('files', 'WebDAV')\">\n\t\t\t<NcInputField id=\"webdav-url-input\"\n\t\t\t\t:label=\"t('files', 'WebDAV URL')\"\n\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t:success=\"webdavUrlCopied\"\n\t\t\t\t:trailing-button-label=\"t('files', 'Copy to clipboard')\"\n\t\t\t\t:value=\"webdavUrl\"\n\t\t\t\treadonly=\"readonly\"\n\t\t\t\ttype=\"url\"\n\t\t\t\t@focus=\"$event.target.select()\"\n\t\t\t\t@trailing-button-click=\"copyCloudId\">\n\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t<Clipboard :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcInputField>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\"\n\t\t\t\t\t:href=\"webdavDocs\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noreferrer noopener\">\n\t\t\t\t\t{{ t('files', 'Use this address to access your Files via WebDAV') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\" :href=\"appPasswordUrl\">\n\t\t\t\t\t{{ t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"shortcuts\"\n\t\t\t:name=\"t('files', 'Keyboard shortcuts')\">\n\t\t\t<em>{{ t('files', 'Speed up your Files experience with these quick shortcuts.') }}</em>\n\n\t\t\t<h3>{{ t('files', 'Actions') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>a</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Open the actions menu for a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>F2</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Rename a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Del</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Delete a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>s</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Favorite or remove a file from favorites') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"isSystemtagsEnabled\">\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>t</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Manage tags for a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\n\t\t\t<h3>{{ t('files', 'Selection') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Ctrl</kbd> + <kbd>A</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Select all files') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>ESC</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Deselect all files') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Ctrl</kbd> + <kbd>Space</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Select or deselect a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Ctrl</kbd> + <kbd>Shift</kbd> <span>+ <kbd>Space</kbd></span>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Select a range of files') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\n\t\t\t<h3>{{ t('files', 'Navigation') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Alt</kbd> + <kbd>↑</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the parent folder') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>↑</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file above') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>↓</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file below') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>←</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file on the left (in grid mode)') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>→</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file on the right (in grid mode)') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\n\t\t\t<h3>{{ t('files', 'View') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>V</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Toggle the grid view') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>D</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Open the sidebar for a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>?</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Show those shortcuts') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\t\t</NcAppSettingsSection>\n\t</NcAppSettingsDialog>\n</template>\n\n<script>\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport Clipboard from 'vue-material-design-icons/ContentCopy.vue'\nimport NcAppSettingsDialog from '@nextcloud/vue/dist/Components/NcAppSettingsDialog.js'\nimport NcAppSettingsSection from '@nextcloud/vue/dist/Components/NcAppSettingsSection.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'\n\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport { useHotKey } from '@nextcloud/vue/dist/Composables/useHotKey.js'\n\nimport { useUserConfigStore } from '../store/userconfig.ts'\nimport Setting from '../components/Setting.vue'\n\nexport default {\n\tname: 'Settings',\n\tcomponents: {\n\t\tClipboard,\n\t\tNcAppSettingsDialog,\n\t\tNcAppSettingsSection,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcInputField,\n\t\tSetting,\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst userConfigStore = useUserConfigStore()\n\t\tconst isSystemtagsEnabled = getCapabilities()?.systemtags?.enabled === true\n\t\treturn {\n\t\t\tisSystemtagsEnabled,\n\t\t\tuserConfigStore,\n\t\t\tt,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// Settings API\n\t\t\tsettings: window.OCA?.Files?.Settings?.settings || [],\n\n\t\t\t// Webdav infos\n\t\t\twebdavUrl: generateRemoteUrl('dav/files/' + encodeURIComponent(getCurrentUser()?.uid)),\n\t\t\twebdavDocs: 'https://docs.nextcloud.com/server/stable/go.php?to=user-webdav',\n\t\t\tappPasswordUrl: generateUrl('/settings/user/security#generate-app-token-section'),\n\t\t\twebdavUrlCopied: false,\n\t\t\tenableGridView: (loadState('core', 'config', [])['enable_non-accessible_features'] ?? true),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tuserConfig() {\n\t\t\treturn this.userConfigStore.userConfig\n\t\t},\n\t},\n\n\tcreated() {\n\t\t// ? opens the settings dialog on the keyboard shortcuts section\n\t\tuseHotKey('?', this.showKeyboardShortcuts, {\n\t\t\tstop: true,\n\t\t\tprevent: true,\n\t\t})\n\t},\n\n\tbeforeMount() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.open())\n\t},\n\n\tbeforeDestroy() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.close())\n\t},\n\n\tmethods: {\n\t\tonClose() {\n\t\t\tthis.$emit('close')\n\t\t},\n\n\t\tsetConfig(key, value) {\n\t\t\tthis.userConfigStore.update(key, value)\n\t\t},\n\n\t\tasync copyCloudId() {\n\t\t\tdocument.querySelector('input#webdav-url-input').select()\n\n\t\t\tif (!navigator.clipboard) {\n\t\t\t\t// Clipboard API not available\n\t\t\t\tshowError(t('files', 'Clipboard is not available'))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tawait navigator.clipboard.writeText(this.webdavUrl)\n\t\t\tthis.webdavUrlCopied = true\n\t\t\tshowSuccess(t('files', 'WebDAV URL copied to clipboard'))\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.webdavUrlCopied = false\n\t\t\t}, 5000)\n\t\t},\n\n\t\tasync showKeyboardShortcuts() {\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\tawait this.$nextTick()\n\t\t\tdocument.getElementById('settings-section_shortcuts').scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tinline: 'nearest',\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n\n.shortcut-key {\n\twidth: 160px;\n\t// some shortcuts are too long to fit in one line\n\twhite-space: normal;\n\tspan {\n\t\t// force portion of a shortcut on a new line for nicer display\n\t\twhite-space: nowrap;\n\t}\n}\n</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=6fc727d7&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=6fc727d7&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=6fc727d7&scoped=true\"\nimport script from \"./Settings.vue?vue&type=script&lang=js\"\nexport * from \"./Settings.vue?vue&type=script&lang=js\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=6fc727d7&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 \"6fc727d7\",\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('Fragment',_vm._l((_vm.currentViews),function(view){return _c('NcAppNavigationItem',{key:view.id,staticClass:\"files-navigation__item\",style:(_vm.style),attrs:{\"allow-collapse\":\"\",\"loading\":view.loading,\"data-cy-files-navigation-item\":view.id,\"exact\":_vm.useExactRouteMatching(view),\"icon\":view.iconClass,\"name\":view.name,\"open\":_vm.isExpanded(view),\"pinned\":view.sticky,\"to\":_vm.generateToNavigation(view)},on:{\"update:open\":(open) => _vm.onOpen(open, view)},scopedSlots:_vm._u([(view.icon)?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":view.icon}})]},proxy:true}:null],null,true)},[_vm._v(\" \"),(view.loadChildViews && !view.loaded)?_c('li',{staticStyle:{\"display\":\"none\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasChildViews(view))?_c('FilesNavigationItem',{attrs:{\"parent\":view,\"level\":_vm.level + 1,\"views\":_vm.filterView(_vm.views, _vm.parent.id)}}):_vm._e()],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport { onMounted, onUnmounted, shallowRef, triggerRef } from 'vue';\n/**\n * Composable to get the currently active files view from the files navigation\n * @param _loaded If set enforce a current view is loaded\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function useNavigation(_loaded) {\n const navigation = getNavigation();\n const views = shallowRef(navigation.views);\n const currentView = shallowRef(navigation.active);\n /**\n * Event listener to update the `currentView`\n * @param event The update event\n */\n function onUpdateActive(event) {\n currentView.value = event.detail;\n }\n /**\n * Event listener to update all registered views\n */\n function onUpdateViews() {\n views.value = navigation.views;\n triggerRef(views);\n }\n onMounted(() => {\n navigation.addEventListener('update', onUpdateViews);\n navigation.addEventListener('updateActive', onUpdateActive);\n subscribe('files:navigation:updated', onUpdateViews);\n });\n onUnmounted(() => {\n navigation.removeEventListener('update', onUpdateViews);\n navigation.removeEventListener('updateActive', onUpdateActive);\n });\n return {\n currentView,\n views,\n };\n}\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport { ref, set } from 'vue';\nimport axios from '@nextcloud/axios';\nconst initialViewConfig = loadState('files', 'viewConfigs', {});\nexport const useViewConfigStore = defineStore('viewconfig', () => {\n const viewConfigs = ref({ ...initialViewConfig });\n /**\n * Get the config for a specific view\n * @param viewid Id of the view to fet the config for\n */\n function getConfig(viewid) {\n return viewConfigs.value[viewid] || {};\n }\n /**\n * Update the view config local store\n * @param viewId The id of the view to update\n * @param key The config key to update\n * @param value The new value\n */\n function onUpdate(viewId, key, value) {\n if (!(viewId in viewConfigs.value)) {\n set(viewConfigs.value, viewId, {});\n }\n set(viewConfigs.value[viewId], key, value);\n }\n /**\n * Update the view config local store AND on server side\n * @param view Id of the view to update\n * @param key Config key to update\n * @param value New value\n */\n async function update(view, key, value) {\n if (getCurrentUser() !== null) {\n await axios.put(generateUrl('/apps/files/api/v1/views'), {\n value,\n view,\n key,\n });\n }\n emit('files:view-config:updated', { view, key, value });\n }\n /**\n * Set the sorting key AND sort by ASC\n * The key param must be a valid key of a File object\n * If not found, will be searched within the File attributes\n * @param key Key to sort by\n * @param view View to set the sorting key for\n */\n function setSortingBy(key = 'basename', view = 'files') {\n // Save new config\n update(view, 'sorting_mode', key);\n update(view, 'sorting_direction', 'asc');\n }\n /**\n * Toggle the sorting direction\n * @param viewId id of the view to set the sorting order for\n */\n function toggleSortingDirection(viewId = 'files') {\n const config = viewConfigs.value[viewId] || { sorting_direction: 'asc' };\n const newDirection = config.sorting_direction === 'asc' ? 'desc' : 'asc';\n // Save new config\n update(viewId, 'sorting_direction', newDirection);\n }\n // Initialize event listener\n subscribe('files:view-config:updated', ({ view, key, value }) => onUpdate(view, key, value));\n return {\n viewConfigs,\n getConfig,\n setSortingBy,\n toggleSortingDirection,\n update,\n };\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationItem.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationItem.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FilesNavigationItem.vue?vue&type=template&id=7a39a8a8\"\nimport script from \"./FilesNavigationItem.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesNavigationItem.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FileListFilter } from '@nextcloud/files';\n/**\n * Simple file list filter controlled by the Navigation search box\n */\nexport class FilenameFilter extends FileListFilter {\n searchQuery = '';\n constructor() {\n super('files:filename', 5);\n }\n filter(nodes) {\n const queryParts = this.searchQuery.toLocaleLowerCase().split(' ').filter(Boolean);\n return nodes.filter((node) => {\n const displayname = node.displayname.toLocaleLowerCase();\n return queryParts.every((part) => displayname.includes(part));\n });\n }\n reset() {\n this.updateQuery('');\n }\n updateQuery(query) {\n query = (query || '').trim();\n // Only if the query is different we update the filter to prevent re-computing all nodes\n if (query !== this.searchQuery) {\n this.searchQuery = query;\n this.filterUpdated();\n const chips = [];\n if (query !== '') {\n chips.push({\n text: query,\n onclick: () => {\n this.updateQuery('');\n },\n });\n }\n this.updateChips(chips);\n // Emit the new query as it might have come not from the Navigation\n this.dispatchTypedEvent('update:query', new CustomEvent('update:query', { detail: query }));\n }\n }\n}\n","import { subscribe } from '@nextcloud/event-bus';\nimport { getFileListFilters } from '@nextcloud/files';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\nimport logger from '../logger';\n/**\n * Check if the given value is an instance file list filter with mount function\n * @param value The filter to check\n */\nfunction isFileListFilterWithUi(value) {\n return 'mount' in value;\n}\nexport const useFiltersStore = defineStore('filters', () => {\n const chips = ref({});\n const filters = ref([]);\n const filtersChanged = ref(false);\n /**\n * Currently active filter chips\n */\n const activeChips = computed(() => Object.values(chips.value).flat());\n /**\n * Filters sorted by order\n */\n const sortedFilters = computed(() => filters.value.sort((a, b) => a.order - b.order));\n /**\n * All filters that provide a UI for visual controlling the filter state\n */\n const filtersWithUI = computed(() => sortedFilters.value.filter(isFileListFilterWithUi));\n /**\n * Register a new filter on the store.\n * This will subscribe the store to the filters events.\n *\n * @param filter The filter to add\n */\n function addFilter(filter) {\n filter.addEventListener('update:chips', onFilterUpdateChips);\n filter.addEventListener('update:filter', onFilterUpdate);\n filters.value.push(filter);\n logger.debug('New file list filter registered', { id: filter.id });\n }\n /**\n * Unregister a filter from the store.\n * This will remove the filter from the store and unsubscribe the store from the filer events.\n * @param filterId Id of the filter to remove\n */\n function removeFilter(filterId) {\n const index = filters.value.findIndex(({ id }) => id === filterId);\n if (index > -1) {\n const [filter] = filters.value.splice(index, 1);\n filter.removeEventListener('update:chips', onFilterUpdateChips);\n filter.removeEventListener('update:filter', onFilterUpdate);\n logger.debug('Files list filter unregistered', { id: filterId });\n }\n }\n /**\n * Event handler for filter update events\n * @private\n */\n function onFilterUpdate() {\n filtersChanged.value = true;\n }\n /**\n * Event handler for filter chips updates\n * @param event The update event\n * @private\n */\n function onFilterUpdateChips(event) {\n const id = event.target.id;\n chips.value = {\n ...chips.value,\n [id]: [...event.detail],\n };\n logger.debug('File list filter chips updated', { filter: id, chips: event.detail });\n }\n /**\n * Event handler that resets all filters if the file list view was changed.\n * @private\n */\n function onViewChanged() {\n logger.debug('Reset all file list filters - view changed');\n for (const filter of filters.value) {\n if (filter.reset !== undefined) {\n filter.reset();\n }\n }\n }\n // Initialize the store\n subscribe('files:navigation:changed', onViewChanged);\n subscribe('files:filter:added', addFilter);\n subscribe('files:filter:removed', removeFilter);\n for (const filter of getFileListFilters()) {\n addFilter(filter);\n }\n return {\n // state\n chips,\n filters,\n filtersWithUI,\n filtersChanged,\n // getters / computed\n activeChips,\n sortedFilters,\n // actions / methods\n addFilter,\n removeFilter,\n };\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppNavigation',{staticClass:\"files-navigation\",attrs:{\"data-cy-files-navigation\":\"\",\"aria-label\":_vm.t('files', 'Files')},scopedSlots:_vm._u([{key:\"search\",fn:function(){return [_c('NcAppNavigationSearch',{attrs:{\"label\":_vm.t('files', 'Filter file names …')},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})]},proxy:true},{key:\"default\",fn:function(){return [_c('NcAppNavigationList',{staticClass:\"files-navigation__list\",attrs:{\"aria-label\":_vm.t('files', 'Views')}},[_c('FilesNavigationItem',{attrs:{\"views\":_vm.viewMap}})],1),_vm._v(\" \"),_c('SettingsModal',{attrs:{\"open\":_vm.settingsOpened,\"data-cy-files-navigation-settings\":\"\"},on:{\"update:open\":function($event){_vm.settingsOpened=$event},\"close\":_vm.onSettingsClose}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ul',{staticClass:\"app-navigation-entry__settings\"},[_c('NavigationQuota'),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"name\":_vm.t('files', 'Files settings'),\"data-cy-files-navigation-settings-button\":\"\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openSettings.apply(null, arguments)}}},[_c('IconCog',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"})],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=ts\"","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { registerFileListFilter, unregisterFileListFilter } from '@nextcloud/files';\nimport { watchThrottled } from '@vueuse/core';\nimport { onMounted, onUnmounted, ref } from 'vue';\nimport { FilenameFilter } from '../filters/FilenameFilter';\n/**\n * This is for the `Navigation` component to provide a filename filter\n */\nexport function useFilenameFilter() {\n const searchQuery = ref('');\n const filenameFilter = new FilenameFilter();\n /**\n * Updating the search query ref from the filter\n * @param event The update:query event\n */\n function updateQuery(event) {\n if (event.type === 'update:query') {\n searchQuery.value = event.detail;\n event.stopPropagation();\n }\n }\n onMounted(() => {\n filenameFilter.addEventListener('update:query', updateQuery);\n registerFileListFilter(filenameFilter);\n });\n onUnmounted(() => {\n filenameFilter.removeEventListener('update:query', updateQuery);\n unregisterFileListFilter(filenameFilter.id);\n });\n // Update the query on the filter, but throttle to max. every 800ms\n // This will debounce the filter refresh\n watchThrottled(searchQuery, () => {\n filenameFilter.updateQuery(searchQuery.value);\n }, { throttle: 800 });\n return {\n searchQuery,\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=c6191948&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=c6191948&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=c6191948&scoped=true\"\nimport script from \"./Navigation.vue?vue&type=script&lang=ts\"\nexport * from \"./Navigation.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Navigation.vue?vue&type=style&index=0&id=c6191948&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 \"c6191948\",\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('NcAppContent',{attrs:{\"page-heading\":_vm.pageHeading,\"data-cy-files-content\":\"\"}},[_c('div',{staticClass:\"files-list__header\",class:{ 'files-list__header--public': _vm.isPublic }},[_c('BreadCrumbs',{attrs:{\"path\":_vm.directory},on:{\"reload\":_vm.fetchContent},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [(_vm.canShare && _vm.fileListWidth >= 512)?_c('NcButton',{staticClass:\"files-list__header-share-button\",class:{ 'files-list__header-share-button--shared': _vm.shareButtonType },attrs:{\"aria-label\":_vm.shareButtonLabel,\"title\":_vm.shareButtonLabel,\"type\":\"tertiary\"},on:{\"click\":_vm.openSharingSidebar},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.shareButtonType === _vm.ShareType.Link)?_c('LinkIcon'):_c('AccountPlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,4106306959)}):_vm._e(),_vm._v(\" \"),(_vm.canUpload && !_vm.isQuotaExceeded && _vm.currentFolder)?_c('UploadPicker',{staticClass:\"files-list__header-upload-button\",attrs:{\"allow-folders\":\"\",\"content\":_vm.getContent,\"destination\":_vm.currentFolder,\"forbidden-characters\":_vm.forbiddenCharacters,\"multiple\":\"\"},on:{\"failed\":_vm.onUploadFail,\"uploaded\":_vm.onUpload}}):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__refresh-icon\"}):_vm._e(),_vm._v(\" \"),_c('NcActions',{staticClass:\"files-list__header-actions\",attrs:{\"inline\":1,\"type\":\"tertiary\",\"force-name\":\"\"}},_vm._l((_vm.enabledFileListActions),function(action){return _c('NcActionButton',{key:action.id,attrs:{\"disabled\":!!_vm.loadingAction,\"data-cy-files-list-action\":action.id,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.execFileListAction(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loadingAction === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):(action.iconSvgInline !== undefined && _vm.currentView)?_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.currentView)}}):_vm._e()]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])}),1),_vm._v(\" \"),(_vm.fileListWidth >= 512 && _vm.enableGridView)?_c('NcButton',{staticClass:\"files-list__header-grid-button\",attrs:{\"aria-label\":_vm.gridViewButtonLabel,\"title\":_vm.gridViewButtonLabel,\"type\":\"tertiary\"},on:{\"click\":_vm.toggleGridView},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.userConfig.grid_view)?_c('ListViewIcon'):_c('ViewGridIcon')]},proxy:true}],null,false,1682960703)}):_vm._e()],1),_vm._v(\" \"),(!_vm.loading && _vm.canUpload)?_c('DragAndDropNotice',{attrs:{\"current-folder\":_vm.currentFolder}}):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__loading-icon\",attrs:{\"size\":38,\"name\":_vm.t('files', 'Loading current folder')}}):(!_vm.loading && _vm.isEmptyDir)?[(_vm.error)?_c('NcEmptyContent',{attrs:{\"name\":_vm.error,\"data-cy-files-content-error\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [_c('NcButton',{attrs:{\"type\":\"secondary\"},on:{\"click\":_vm.fetchContent},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconReload',{attrs:{\"size\":20}})]},proxy:true}],null,false,3448385010)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Retry'))+\"\\n\\t\\t\\t\\t\")])]},proxy:true},{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}],null,false,2673163798)}):(_vm.currentView?.emptyView)?_c('div',{staticClass:\"files-list__empty-view-wrapper\"},[_c('div',{ref:\"customEmptyView\"})]):_c('NcEmptyContent',{attrs:{\"name\":_vm.currentView?.emptyTitle || _vm.t('files', 'No files in here'),\"description\":_vm.currentView?.emptyCaption || _vm.t('files', 'Upload some content or sync with your devices!'),\"data-cy-files-content-empty\":\"\"},scopedSlots:_vm._u([(_vm.directory !== '/')?{key:\"action\",fn:function(){return [(_vm.canUpload && !_vm.isQuotaExceeded)?_c('UploadPicker',{staticClass:\"files-list__header-upload-button\",attrs:{\"allow-folders\":\"\",\"content\":_vm.getContent,\"destination\":_vm.currentFolder,\"forbidden-characters\":_vm.forbiddenCharacters,\"multiple\":\"\"},on:{\"failed\":_vm.onUploadFail,\"uploaded\":_vm.onUpload}}):_c('NcButton',{attrs:{\"to\":_vm.toPreviousDir,\"type\":\"primary\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Go back'))+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null,{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.currentView.icon}})]},proxy:true}],null,true)})]:_c('FilesListVirtual',{ref:\"filesListVirtual\",attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"nodes\":_vm.dirContentsSorted}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon reload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ReloadIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Reload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Reload.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Reload.vue?vue&type=template&id=39a07256\"\nimport script from \"./Reload.vue?vue&type=script&lang=js\"\nexport * from \"./Reload.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 reload-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 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon format-list-bulleted-square-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FormatListBulletedSquareIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FormatListBulletedSquare.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FormatListBulletedSquare.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FormatListBulletedSquare.vue?vue&type=template&id=64cece03\"\nimport script from \"./FormatListBulletedSquare.vue?vue&type=script&lang=js\"\nexport * from \"./FormatListBulletedSquare.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 format-list-bulleted-square-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,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-plus-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountPlusIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountPlus.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountPlus.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountPlus.vue?vue&type=template&id=53a26aa0\"\nimport script from \"./AccountPlus.vue?vue&type=script&lang=js\"\nexport * from \"./AccountPlus.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-plus-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\":\"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ViewGrid.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ViewGrid.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon view-grid-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ViewGridIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./ViewGrid.vue?vue&type=template&id=672ea5c8\"\nimport script from \"./ViewGrid.vue?vue&type=script&lang=js\"\nexport * from \"./ViewGrid.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 view-grid-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,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { onMounted, readonly, ref } from 'vue';\n/** The element we observe */\nlet element;\n/** The current width of the element */\nconst width = ref(0);\nconst observer = new ResizeObserver((elements) => {\n if (elements[0].contentBoxSize) {\n // use the newer `contentBoxSize` property if available\n width.value = elements[0].contentBoxSize[0].inlineSize;\n }\n else {\n // fall back to `contentRect`\n width.value = elements[0].contentRect.width;\n }\n});\n/**\n * Update the observed element if needed and reconfigure the observer\n */\nfunction updateObserver() {\n const el = document.querySelector('#app-content-vue') ?? document.body;\n if (el !== element) {\n // if already observing: stop observing the old element\n if (element) {\n observer.unobserve(element);\n }\n // observe the new element if needed\n observer.observe(el);\n element = el;\n }\n}\n/**\n * Get the reactive width of the file list\n */\nexport function useFileListWidth() {\n // Update the observer when the component is mounted (e.g. because this is the files app)\n onMounted(updateObserver);\n // Update the observer also in setup context, so we already have an initial value\n updateObserver();\n return readonly(width);\n}\n","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { computed } from 'vue';\nimport { useRoute } from 'vue-router/composables';\n/**\n * Get information about the current route\n */\nexport function useRouteParameters() {\n const route = useRoute();\n /**\n * Get the path of the current active directory\n */\n const directory = computed(() => String(route.query.dir || '/')\n // Remove any trailing slash but leave root slash\n .replace(/^(.+)\\/$/, '$1'));\n /**\n * Get the current fileId used on the route\n */\n const fileId = computed(() => {\n const fileId = Number.parseInt(route.params.fileid ?? '0') || null;\n return Number.isNaN(fileId) ? null : fileId;\n });\n /**\n * State of `openFile` route param\n */\n const openFile = computed(\n // if `openfile` is set it is considered truthy, but allow to explicitly set it to 'false'\n () => 'openfile' in route.query && (typeof route.query.openfile !== 'string' || route.query.openfile.toLocaleLowerCase() !== 'false'));\n const openDetails = computed(\n // if `opendetails` is set it is considered truthy, but allow to explicitly set it to 'false'\n () => 'opendetails' in route.query && (typeof route.query.opendetails !== 'string' || route.query.opendetails.toLocaleLowerCase() !== 'false'));\n return {\n /** Path of currently open directory */\n directory,\n /** Current active fileId */\n fileId,\n /** Should the active node should be opened (`openFile` route param) */\n openFile,\n /** Should the details sidebar be shown (`openDetails` route param) */\n openDetails,\n };\n}\n","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\nimport { getCurrentInstance, effectScope, shallowReactive, onUnmounted, computed, unref } from 'vue';\n\n// dev only warn if no current instance\n\nfunction throwNoCurrentInstance (method) {\n if (!getCurrentInstance()) {\n throw new Error(\n (\"[vue-router]: Missing current instance. \" + method + \"() must be called inside <script setup> or setup().\")\n )\n }\n}\n\nfunction useRouter () {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useRouter');\n }\n\n return getCurrentInstance().proxy.$root.$router\n}\n\nfunction useRoute () {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useRoute');\n }\n\n var root = getCurrentInstance().proxy.$root;\n if (!root._$route) {\n var route = effectScope(true).run(function () { return shallowReactive(Object.assign({}, root.$router.currentRoute)); }\n );\n root._$route = route;\n\n root.$router.afterEach(function (to) {\n Object.assign(route, to);\n });\n }\n\n return root._$route\n}\n\nfunction onBeforeRouteUpdate (guard) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('onBeforeRouteUpdate');\n }\n\n return useFilteredGuard(guard, isUpdateNavigation)\n}\nfunction isUpdateNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return (\n toMatched.length >= depth &&\n toMatched\n .slice(0, depth + 1)\n .every(function (record, i) { return record === fromMatched[i]; })\n )\n}\n\nfunction isLeaveNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return toMatched.length < depth || toMatched[depth] !== fromMatched[depth]\n}\n\nfunction onBeforeRouteLeave (guard) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('onBeforeRouteLeave');\n }\n\n return useFilteredGuard(guard, isLeaveNavigation)\n}\n\nvar noop = function () {};\nfunction useFilteredGuard (guard, fn) {\n var instance = getCurrentInstance();\n var router = useRouter();\n\n var target = instance.proxy;\n // find the nearest RouterView to know the depth\n while (\n target &&\n target.$vnode &&\n target.$vnode.data &&\n target.$vnode.data.routerViewDepth == null\n ) {\n target = target.$parent;\n }\n\n var depth =\n target && target.$vnode && target.$vnode.data\n ? target.$vnode.data.routerViewDepth\n : null;\n\n if (depth != null) {\n var removeGuard = router.beforeEach(function (to, from, next) {\n return fn(to, from, depth) ? guard(to, from, next) : next()\n });\n\n onUnmounted(removeGuard);\n return removeGuard\n }\n\n return noop\n}\n\n/* */\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction includesParams (outer, inner) {\n var loop = function ( key ) {\n var innerValue = inner[key];\n var outerValue = outer[key];\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue) { return { v: false } }\n } else {\n if (\n !Array.isArray(outerValue) ||\n outerValue.length !== innerValue.length ||\n innerValue.some(function (value, i) { return value !== outerValue[i]; })\n ) {\n return { v: false }\n }\n }\n };\n\n for (var key in inner) {\n var returned = loop( key );\n\n if ( returned ) return returned.v;\n }\n\n return true\n}\n\n// helpers from vue router 4\n\nfunction isSameRouteLocationParamsValue (a, b) {\n return Array.isArray(a)\n ? isEquivalentArray(a, b)\n : Array.isArray(b)\n ? isEquivalentArray(b, a)\n : a === b\n}\n\nfunction isEquivalentArray (a, b) {\n return Array.isArray(b)\n ? a.length === b.length && a.every(function (value, i) { return value === b[i]; })\n : a.length === 1 && a[0] === b\n}\n\nfunction isSameRouteLocationParams (a, b) {\n if (Object.keys(a).length !== Object.keys(b).length) { return false }\n\n for (var key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key])) { return false }\n }\n\n return true\n}\n\nfunction useLink (props) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useLink');\n }\n\n var router = useRouter();\n var currentRoute = useRoute();\n\n var resolvedRoute = computed(function () { return router.resolve(unref(props.to), currentRoute); });\n\n var activeRecordIndex = computed(function () {\n var route = resolvedRoute.value.route;\n var matched = route.matched;\n var length = matched.length;\n var routeMatched = matched[length - 1];\n var currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length) { return -1 }\n var index = currentMatched.indexOf(routeMatched);\n if (index > -1) { return index }\n // possible parent record\n var parentRecord = currentMatched[currentMatched.length - 2];\n\n return (\n // we are dealing with nested routes\n length > 1 &&\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n parentRecord && parentRecord === routeMatched.parent\n )\n });\n\n var isActive = computed(\n function () { return activeRecordIndex.value > -1 &&\n includesParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n var isExactActive = computed(\n function () { return activeRecordIndex.value > -1 &&\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\n isSameRouteLocationParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n\n var navigate = function (e) {\n var href = resolvedRoute.value.route;\n if (guardEvent(e)) {\n return props.replace\n ? router.replace(href)\n : router.push(href)\n }\n return Promise.resolve()\n };\n\n return {\n href: computed(function () { return resolvedRoute.value.href; }),\n route: computed(function () { return resolvedRoute.value.route; }),\n isExactActive: isExactActive,\n isActive: isActive,\n navigate: navigate\n }\n}\n\nexport { isSameRouteLocationParams, onBeforeRouteLeave, onBeforeRouteUpdate, useLink, useRoute, useRouter };\n","import { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\nexport const fetchNode = async (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","import { defineStore } from 'pinia';\nimport { dirname } from '@nextcloud/paths';\nimport { File, FileType, Folder, Node, getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport Vue from 'vue';\nimport logger from '../logger';\nimport { useFilesStore } from './files';\nexport const usePathsStore = function (...args) {\n const files = useFilesStore(...args);\n const store = defineStore('paths', {\n state: () => ({\n paths: {},\n }),\n getters: {\n getPath: (state) => {\n return (service, path) => {\n if (!state.paths[service]) {\n return undefined;\n }\n return state.paths[service][path];\n };\n },\n },\n actions: {\n addPath(payload) {\n // If it doesn't exists, init the service state\n if (!this.paths[payload.service]) {\n Vue.set(this.paths, payload.service, {});\n }\n // Now we can set the provided path\n Vue.set(this.paths[payload.service], payload.path, payload.source);\n },\n deletePath(service, path) {\n // skip if service does not exist\n if (!this.paths[service]) {\n return;\n }\n Vue.delete(this.paths[service], path);\n },\n onCreatedNode(node) {\n const service = getNavigation()?.active?.id || 'files';\n if (!node.fileid) {\n logger.error('Node has no fileid', { node });\n return;\n }\n // Only add path if it's a folder\n if (node.type === FileType.Folder) {\n this.addPath({\n service,\n path: node.path,\n source: node.source,\n });\n }\n // Update parent folder children if exists\n // If the folder is the root, get it and update it\n this.addNodeToParentChildren(node);\n },\n onDeletedNode(node) {\n const service = getNavigation()?.active?.id || 'files';\n if (node.type === FileType.Folder) {\n // Delete the path\n this.deletePath(service, node.path);\n }\n this.deleteNodeFromParentChildren(node);\n },\n onMovedNode({ node, oldSource }) {\n const service = getNavigation()?.active?.id || 'files';\n // Update the path of the node\n if (node.type === FileType.Folder) {\n // Delete the old path if it exists\n const oldPath = Object.entries(this.paths[service]).find(([, source]) => source === oldSource);\n if (oldPath?.[0]) {\n this.deletePath(service, oldPath[0]);\n }\n // Add the new path\n this.addPath({\n service,\n path: node.path,\n source: node.source,\n });\n }\n // Dummy simple clone of the renamed node from a previous state\n const oldNode = new File({ source: oldSource, owner: node.owner, mime: node.mime });\n this.deleteNodeFromParentChildren(oldNode);\n this.addNodeToParentChildren(node);\n },\n deleteNodeFromParentChildren(node) {\n const service = getNavigation()?.active?.id || 'files';\n // Update children of a root folder\n const parentSource = dirname(node.source);\n const folder = (node.dirname === '/' ? files.getRoot(service) : files.getNode(parentSource));\n if (folder) {\n // ensure sources are unique\n const children = new Set(folder._children ?? []);\n children.delete(node.source);\n Vue.set(folder, '_children', [...children.values()]);\n logger.debug('Children updated', { parent: folder, node, children: folder._children });\n return;\n }\n logger.debug('Parent path does not exists, skipping children update', { node });\n },\n addNodeToParentChildren(node) {\n const service = getNavigation()?.active?.id || 'files';\n // Update children of a root folder\n const parentSource = dirname(node.source);\n const folder = (node.dirname === '/' ? files.getRoot(service) : files.getNode(parentSource));\n if (folder) {\n // ensure sources are unique\n const children = new Set(folder._children ?? []);\n children.add(node.source);\n Vue.set(folder, '_children', [...children.values()]);\n logger.debug('Children updated', { parent: folder, node, children: folder._children });\n return;\n }\n logger.debug('Parent path does not exists, skipping children update', { node });\n },\n },\n });\n const pathsStore = store(...args);\n // Make sure we only register the listeners once\n if (!pathsStore._initialized) {\n subscribe('files:node:created', pathsStore.onCreatedNode);\n subscribe('files:node:deleted', pathsStore.onDeletedNode);\n subscribe('files:node:moved', pathsStore.onMovedNode);\n pathsStore._initialized = true;\n }\n return pathsStore;\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia';\nimport { subscribe } from '@nextcloud/event-bus';\nimport logger from '../logger';\nimport Vue from 'vue';\nimport { fetchNode } from '../services/WebdavClient.ts';\nimport { usePathsStore } from './paths.ts';\nexport const useFilesStore = function (...args) {\n const store = defineStore('files', {\n state: () => ({\n files: {},\n roots: {},\n }),\n getters: {\n /**\n * Get a file or folder by its source\n * @param state\n */\n getNode: (state) => (source) => state.files[source],\n /**\n * Get a list of files or folders by their IDs\n * Note: does not return undefined values\n * @param state\n */\n getNodes: (state) => (sources) => sources\n .map(source => state.files[source])\n .filter(Boolean),\n /**\n * Get files or folders by their file ID\n * Multiple nodes can have the same file ID but different sources\n * (e.g. in a shared context)\n * @param state\n */\n getNodesById: (state) => (fileId) => Object.values(state.files).filter(node => node.fileid === fileId),\n /**\n * Get the root folder of a service\n * @param state\n */\n getRoot: (state) => (service) => state.roots[service],\n },\n actions: {\n /**\n * Get cached child nodes within a given path\n *\n * @param service The service (files view)\n * @param path The path relative within the service\n * @return Array of cached nodes within the path\n */\n getNodesByPath(service, path) {\n const pathsStore = usePathsStore();\n let folder;\n // Get the containing folder from path store\n if (!path || path === '/') {\n folder = this.getRoot(service);\n }\n else {\n const source = pathsStore.getPath(service, path);\n if (source) {\n folder = this.getNode(source);\n }\n }\n // If we found a cache entry and the cache entry was already loaded (has children) then use it\n return (folder?._children ?? [])\n .map((source) => this.getNode(source))\n .filter(Boolean);\n },\n updateNodes(nodes) {\n // Update the store all at once\n const files = nodes.reduce((acc, node) => {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return acc;\n }\n acc[node.source] = node;\n return acc;\n }, {});\n Vue.set(this, 'files', { ...this.files, ...files });\n },\n deleteNodes(nodes) {\n nodes.forEach(node => {\n if (node.source) {\n Vue.delete(this.files, node.source);\n }\n });\n },\n setRoot({ service, root }) {\n Vue.set(this.roots, service, root);\n },\n onDeletedNode(node) {\n this.deleteNodes([node]);\n },\n onCreatedNode(node) {\n this.updateNodes([node]);\n },\n onMovedNode({ node, oldSource }) {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return;\n }\n // Update the path of the node\n Vue.delete(this.files, oldSource);\n this.updateNodes([node]);\n },\n async onUpdatedNode(node) {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return;\n }\n // If we have multiple nodes with the same file ID, we need to update all of them\n const nodes = this.getNodesById(node.fileid);\n if (nodes.length > 1) {\n await Promise.all(nodes.map(node => fetchNode(node.path))).then(this.updateNodes);\n logger.debug(nodes.length + ' nodes updated in store', { fileid: node.fileid });\n return;\n }\n // If we have only one node with the file ID, we can update it directly\n if (node.source === nodes[0].source) {\n this.updateNodes([node]);\n return;\n }\n // Otherwise, it means we receive an event for a node that is not in the store\n fetchNode(node.path).then(n => this.updateNodes([n]));\n },\n // Handlers for legacy sidebar (no real nodes support)\n onAddFavorite(node) {\n const ourNode = this.getNode(node.source);\n if (ourNode) {\n Vue.set(ourNode.attributes, 'favorite', 1);\n }\n },\n onRemoveFavorite(node) {\n const ourNode = this.getNode(node.source);\n if (ourNode) {\n Vue.set(ourNode.attributes, 'favorite', 0);\n }\n },\n },\n });\n const fileStore = store(...args);\n // Make sure we only register the listeners once\n if (!fileStore._initialized) {\n subscribe('files:node:created', fileStore.onCreatedNode);\n subscribe('files:node:deleted', fileStore.onDeletedNode);\n subscribe('files:node:updated', fileStore.onUpdatedNode);\n subscribe('files:node:moved', fileStore.onMovedNode);\n // legacy sidebar\n subscribe('files:favorites:added', fileStore.onAddFavorite);\n subscribe('files:favorites:removed', fileStore.onRemoveFavorite);\n fileStore._initialized = true;\n }\n return fileStore;\n};\n","import { defineStore } from 'pinia';\nimport Vue from 'vue';\nexport const useSelectionStore = defineStore('selection', {\n state: () => ({\n selected: [],\n lastSelection: [],\n lastSelectedIndex: null,\n }),\n actions: {\n /**\n * Set the selection of fileIds\n * @param selection\n */\n set(selection = []) {\n Vue.set(this, 'selected', [...new Set(selection)]);\n },\n /**\n * Set the last selected index\n * @param lastSelectedIndex\n */\n setLastIndex(lastSelectedIndex = null) {\n // Update the last selection if we provided a new selection starting point\n Vue.set(this, 'lastSelection', lastSelectedIndex ? this.selected : []);\n Vue.set(this, 'lastSelectedIndex', lastSelectedIndex);\n },\n /**\n * Reset the selection\n */\n reset() {\n Vue.set(this, 'selected', []);\n Vue.set(this, 'lastSelection', []);\n Vue.set(this, 'lastSelectedIndex', null);\n },\n },\n});\n","import { defineStore } from 'pinia';\nimport { getUploader } from '@nextcloud/upload';\nlet uploader;\nexport const useUploaderStore = function (...args) {\n // Only init on runtime\n uploader = getUploader();\n const store = defineStore('uploader', {\n state: () => ({\n queue: uploader.queue,\n }),\n });\n return store(...args);\n};\n","import { emit } from '@nextcloud/event-bus';\nimport { Folder, Node, davGetClient, davGetDefaultPropfind, davResultToNode } from '@nextcloud/files';\nimport { openConflictPicker } from '@nextcloud/upload';\nimport { showError, showInfo } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport logger from '../logger.ts';\n/**\n * This represents a Directory in the file tree\n * We extend the File class to better handling uploading\n * and stay as close as possible as the Filesystem API.\n * This also allow us to hijack the size or lastModified\n * properties to compute them dynamically.\n */\nexport class Directory extends File {\n /* eslint-disable no-use-before-define */\n _contents;\n constructor(name, contents = []) {\n super([], name, { type: 'httpd/unix-directory' });\n this._contents = contents;\n }\n set contents(contents) {\n this._contents = contents;\n }\n get contents() {\n return this._contents;\n }\n get size() {\n return this._computeDirectorySize(this);\n }\n get lastModified() {\n if (this._contents.length === 0) {\n return Date.now();\n }\n return this._computeDirectoryMtime(this);\n }\n /**\n * Get the last modification time of a file tree\n * This is not perfect, but will get us a pretty good approximation\n * @param directory the directory to traverse\n */\n _computeDirectoryMtime(directory) {\n return directory.contents.reduce((acc, file) => {\n return file.lastModified > acc\n // If the file is a directory, the lastModified will\n // also return the results of its _computeDirectoryMtime method\n // Fancy recursion, huh?\n ? file.lastModified\n : acc;\n }, 0);\n }\n /**\n * Get the size of a file tree\n * @param directory the directory to traverse\n */\n _computeDirectorySize(directory) {\n return directory.contents.reduce((acc, entry) => {\n // If the file is a directory, the size will\n // also return the results of its _computeDirectorySize method\n // Fancy recursion, huh?\n return acc + entry.size;\n }, 0);\n }\n}\n/**\n * Traverse a file tree using the Filesystem API\n * @param entry the entry to traverse\n */\nexport const traverseTree = async (entry) => {\n // Handle file\n if (entry.isFile) {\n return new Promise((resolve, reject) => {\n entry.file(resolve, reject);\n });\n }\n // Handle directory\n logger.debug('Handling recursive file tree', { entry: entry.name });\n const directory = entry;\n const entries = await readDirectory(directory);\n const contents = (await Promise.all(entries.map(traverseTree))).flat();\n return new Directory(directory.name, contents);\n};\n/**\n * Read a directory using Filesystem API\n * @param directory the directory to read\n */\nconst readDirectory = (directory) => {\n const dirReader = directory.createReader();\n return new Promise((resolve, reject) => {\n const entries = [];\n const getEntries = () => {\n dirReader.readEntries((results) => {\n if (results.length) {\n entries.push(...results);\n getEntries();\n }\n else {\n resolve(entries);\n }\n }, (error) => {\n reject(error);\n });\n };\n getEntries();\n });\n};\nexport const createDirectoryIfNotExists = async (absolutePath) => {\n const davClient = davGetClient();\n const dirExists = await davClient.exists(absolutePath);\n if (!dirExists) {\n logger.debug('Directory does not exist, creating it', { absolutePath });\n await davClient.createDirectory(absolutePath, { recursive: true });\n const stat = await davClient.stat(absolutePath, { details: true, data: davGetDefaultPropfind() });\n emit('files:node:created', davResultToNode(stat.data));\n }\n};\nexport const resolveConflict = async (files, destination, contents) => {\n try {\n // List all conflicting files\n const conflicts = files.filter((file) => {\n return contents.find((node) => node.basename === (file instanceof File ? file.name : file.basename));\n }).filter(Boolean);\n // List of incoming files that are NOT in conflict\n const uploads = files.filter((file) => {\n return !conflicts.includes(file);\n });\n // Let the user choose what to do with the conflicting files\n const { selected, renamed } = await openConflictPicker(destination.path, conflicts, contents);\n logger.debug('Conflict resolution', { uploads, selected, renamed });\n // If the user selected nothing, we cancel the upload\n if (selected.length === 0 && renamed.length === 0) {\n // User skipped\n showInfo(t('files', 'Conflicts resolution skipped'));\n logger.info('User skipped the conflict resolution');\n return [];\n }\n // Update the list of files to upload\n return [...uploads, ...selected, ...renamed];\n }\n catch (error) {\n console.error(error);\n // User cancelled\n showError(t('files', 'Upload cancelled'));\n logger.error('User cancelled the upload');\n }\n return [];\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission } from '@nextcloud/files';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport PQueue from 'p-queue';\nimport { loadState } from '@nextcloud/initial-state';\nconst sharePermissions = loadState('files_sharing', 'sharePermissions', Permission.NONE);\n// This is the processing queue. We only want to allow 3 concurrent requests\nlet queue;\n// Maximum number of concurrent operations\nconst MAX_CONCURRENCY = 5;\n/**\n * Get the processing queue\n */\nexport const getQueue = () => {\n if (!queue) {\n queue = new PQueue({ concurrency: MAX_CONCURRENCY });\n }\n return queue;\n};\nexport var MoveCopyAction;\n(function (MoveCopyAction) {\n MoveCopyAction[\"MOVE\"] = \"Move\";\n MoveCopyAction[\"COPY\"] = \"Copy\";\n MoveCopyAction[\"MOVE_OR_COPY\"] = \"move-or-copy\";\n})(MoveCopyAction || (MoveCopyAction = {}));\nexport const canMove = (nodes) => {\n const minPermission = nodes.reduce((min, node) => Math.min(min, node.permissions), Permission.ALL);\n return Boolean(minPermission & Permission.DELETE);\n};\nexport const canDownload = (nodes) => {\n return nodes.every(node => {\n const shareAttributes = JSON.parse(node.attributes?.['share-attributes'] ?? '[]');\n return !shareAttributes.some(attribute => attribute.scope === 'permissions' && attribute.value === false && attribute.key === 'download');\n });\n};\nexport const canCopy = (nodes) => {\n // a shared file cannot be copied if the download is disabled\n if (!canDownload(nodes)) {\n return false;\n }\n // it cannot be copied if the user has only view permissions\n if (nodes.some((node) => node.permissions === Permission.NONE)) {\n return false;\n }\n // on public shares all files have the same permission so copy is only possible if write permission is granted\n if (isPublicShare()) {\n return Boolean(sharePermissions & Permission.CREATE);\n }\n // otherwise permission is granted\n return true;\n};\n","import { davGetDefaultPropfind, davResultToNode, davRootPath } from '@nextcloud/files';\nimport { CancelablePromise } from 'cancelable-promise';\nimport { join } from 'path';\nimport { client } from './WebdavClient.ts';\nimport logger from '../logger.ts';\n/**\n * Slim wrapper over `@nextcloud/files` `davResultToNode` to allow using the function with `Array.map`\n * @param stat The result returned by the webdav library\n */\nexport const resultToNode = (stat) => davResultToNode(stat);\nexport const getContents = (path = '/') => {\n path = join(davRootPath, path);\n const controller = new AbortController();\n const propfindPayload = davGetDefaultPropfind();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data: propfindPayload,\n includeSelf: true,\n signal: controller.signal,\n });\n const root = contentsResponse.data[0];\n const contents = contentsResponse.data.slice(1);\n if (root.filename !== path && `${root.filename}/` !== path) {\n logger.debug(`Exepected \"${path}\" but got filename \"${root.filename}\" instead.`);\n throw new Error('Root node does not match requested path');\n }\n resolve({\n folder: resultToNode(root),\n contents: contents.map((result) => {\n try {\n return resultToNode(result);\n }\n catch (error) {\n logger.error(`Invalid node detected '${result.basename}'`, { error });\n return null;\n }\n }).filter(Boolean),\n });\n }\n catch (error) {\n reject(error);\n }\n });\n};\n","import { isAxiosError } from '@nextcloud/axios';\nimport { FilePickerClosed, getFilePickerBuilder, showError, showInfo, TOAST_PERMANENT_TIMEOUT } from '@nextcloud/dialogs';\nimport { emit } from '@nextcloud/event-bus';\nimport { FileAction, FileType, NodeStatus, davGetClient, davRootPath, davResultToNode, davGetDefaultPropfind, getUniqueName, Permission } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { openConflictPicker, hasConflict } from '@nextcloud/upload';\nimport { basename, join } from 'path';\nimport Vue from 'vue';\nimport CopyIconSvg from '@mdi/svg/svg/folder-multiple.svg?raw';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nimport { MoveCopyAction, canCopy, canMove, getQueue } from './moveOrCopyActionUtils';\nimport { getContents } from '../services/Files';\nimport logger from '../logger';\n/**\n * Return the action that is possible for the given nodes\n * @param {Node[]} nodes The nodes to check against\n * @return {MoveCopyAction} The action that is possible for the given nodes\n */\nconst getActionForNodes = (nodes) => {\n if (canMove(nodes)) {\n if (canCopy(nodes)) {\n return MoveCopyAction.MOVE_OR_COPY;\n }\n return MoveCopyAction.MOVE;\n }\n // Assuming we can copy as the enabled checks for copy permissions\n return MoveCopyAction.COPY;\n};\n/**\n * Create a loading notification toast\n * @param mode The move or copy mode\n * @param source Name of the node that is copied / moved\n * @param destination Destination path\n * @return {() => void} Function to hide the notification\n */\nfunction createLoadingNotification(mode, source, destination) {\n const text = mode === MoveCopyAction.MOVE ? t('files', 'Moving \"{source}\" to \"{destination}\" …', { source, destination }) : t('files', 'Copying \"{source}\" to \"{destination}\" …', { source, destination });\n let toast;\n toast = showInfo(`<span class=\"icon icon-loading-small toast-loading-icon\"></span> ${text}`, {\n isHTML: true,\n timeout: TOAST_PERMANENT_TIMEOUT,\n onRemove: () => { toast?.hideToast(); toast = undefined; },\n });\n return () => toast && toast.hideToast();\n}\n/**\n * Handle the copy/move of a node to a destination\n * This can be imported and used by other scripts/components on server\n * @param {Node} node The node to copy/move\n * @param {Folder} destination The destination to copy/move the node to\n * @param {MoveCopyAction} method The method to use for the copy/move\n * @param {boolean} overwrite Whether to overwrite the destination if it exists\n * @return {Promise<void>} A promise that resolves when the copy/move is done\n */\nexport const handleCopyMoveNodeTo = async (node, destination, method, overwrite = false) => {\n if (!destination) {\n return;\n }\n if (destination.type !== FileType.Folder) {\n throw new Error(t('files', 'Destination is not a folder'));\n }\n // Do not allow to MOVE a node to the same folder it is already located\n if (method === MoveCopyAction.MOVE && node.dirname === destination.path) {\n throw new Error(t('files', 'This file/folder is already in that directory'));\n }\n /**\n * Example:\n * - node: /foo/bar/file.txt -> path = /foo/bar/file.txt, destination: /foo\n * Allow move of /foo does not start with /foo/bar/file.txt so allow\n * - node: /foo , destination: /foo/bar\n * Do not allow as it would copy foo within itself\n * - node: /foo/bar.txt, destination: /foo\n * Allow copy a file to the same directory\n * - node: \"/foo/bar\", destination: \"/foo/bar 1\"\n * Allow to move or copy but we need to check with trailing / otherwise it would report false positive\n */\n if (`${destination.path}/`.startsWith(`${node.path}/`)) {\n throw new Error(t('files', 'You cannot move a file/folder onto itself or into a subfolder of itself'));\n }\n // Set loading state\n Vue.set(node, 'status', NodeStatus.LOADING);\n const actionFinished = createLoadingNotification(method, node.basename, destination.path);\n const queue = getQueue();\n return await queue.add(async () => {\n const copySuffix = (index) => {\n if (index === 1) {\n return t('files', '(copy)'); // TRANSLATORS: Mark a file as a copy of another file\n }\n return t('files', '(copy %n)', undefined, index); // TRANSLATORS: Meaning it is the n'th copy of a file\n };\n try {\n const client = davGetClient();\n const currentPath = join(davRootPath, node.path);\n const destinationPath = join(davRootPath, destination.path);\n if (method === MoveCopyAction.COPY) {\n let target = node.basename;\n // If we do not allow overwriting then find an unique name\n if (!overwrite) {\n const otherNodes = await client.getDirectoryContents(destinationPath);\n target = getUniqueName(node.basename, otherNodes.map((n) => n.basename), {\n suffix: copySuffix,\n ignoreFileExtension: node.type === FileType.Folder,\n });\n }\n await client.copyFile(currentPath, join(destinationPath, target));\n // If the node is copied into current directory the view needs to be updated\n if (node.dirname === destination.path) {\n const { data } = await client.stat(join(destinationPath, target), {\n details: true,\n data: davGetDefaultPropfind(),\n });\n emit('files:node:created', davResultToNode(data));\n }\n }\n else {\n // show conflict file popup if we do not allow overwriting\n if (!overwrite) {\n const otherNodes = await getContents(destination.path);\n if (hasConflict([node], otherNodes.contents)) {\n try {\n // Let the user choose what to do with the conflicting files\n const { selected, renamed } = await openConflictPicker(destination.path, [node], otherNodes.contents);\n // two empty arrays: either only old files or conflict skipped -> no action required\n if (!selected.length && !renamed.length) {\n return;\n }\n }\n catch (error) {\n // User cancelled\n showError(t('files', 'Move cancelled'));\n return;\n }\n }\n }\n // getting here means either no conflict, file was renamed to keep both files\n // in a conflict, or the selected file was chosen to be kept during the conflict\n try {\n await client.moveFile(currentPath, join(destinationPath, node.basename));\n }\n catch (error) {\n const parser = new DOMParser();\n const text = await error.response?.text();\n const message = parser.parseFromString(text ?? '', 'text/xml')\n .querySelector('message')?.textContent;\n if (message) {\n showError(message);\n }\n throw error;\n }\n // Delete the node as it will be fetched again\n // when navigating to the destination folder\n emit('files:node:deleted', node);\n }\n }\n catch (error) {\n if (isAxiosError(error)) {\n if (error.response?.status === 412) {\n throw new Error(t('files', 'A file or folder with that name already exists in this folder'));\n }\n else if (error.response?.status === 423) {\n throw new Error(t('files', 'The files are locked'));\n }\n else if (error.response?.status === 404) {\n throw new Error(t('files', 'The file does not exist anymore'));\n }\n else if (error.message) {\n throw new Error(error.message);\n }\n }\n logger.debug(error);\n throw new Error();\n }\n finally {\n Vue.set(node, 'status', '');\n actionFinished();\n }\n });\n};\n/**\n * Open a file picker for the given action\n * @param action The action to open the file picker for\n * @param dir The directory to start the file picker in\n * @param nodes The nodes to move/copy\n * @return The picked destination or false if cancelled by user\n */\nasync function openFilePickerForAction(action, dir = '/', nodes) {\n const { resolve, reject, promise } = Promise.withResolvers();\n const fileIDs = nodes.map(node => node.fileid).filter(Boolean);\n const filePicker = getFilePickerBuilder(t('files', 'Choose destination'))\n .allowDirectories(true)\n .setFilter((n) => {\n // We don't want to show the current nodes in the file picker\n return !fileIDs.includes(n.fileid);\n })\n .setMimeTypeFilter([])\n .setMultiSelect(false)\n .startAt(dir)\n .setButtonFactory((selection, path) => {\n const buttons = [];\n const target = basename(path);\n const dirnames = nodes.map(node => node.dirname);\n const paths = nodes.map(node => node.path);\n if (action === MoveCopyAction.COPY || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Copy to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Copy'),\n type: 'primary',\n icon: CopyIconSvg,\n disabled: selection.some((node) => (node.permissions & Permission.CREATE) === 0),\n async callback(destination) {\n resolve({\n destination: destination[0],\n action: MoveCopyAction.COPY,\n });\n },\n });\n }\n // Invalid MOVE targets (but valid copy targets)\n if (dirnames.includes(path)) {\n // This file/folder is already in that directory\n return buttons;\n }\n if (paths.includes(path)) {\n // You cannot move a file/folder onto itself\n return buttons;\n }\n if (selection.some((node) => (node.permissions & Permission.CREATE) === 0)) {\n // Missing 'CREATE' permissions for selected destination\n return buttons;\n }\n if (action === MoveCopyAction.MOVE || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Move to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Move'),\n type: action === MoveCopyAction.MOVE ? 'primary' : 'secondary',\n icon: FolderMoveSvg,\n async callback(destination) {\n resolve({\n destination: destination[0],\n action: MoveCopyAction.MOVE,\n });\n },\n });\n }\n return buttons;\n })\n .build();\n filePicker.pick()\n .catch((error) => {\n logger.debug(error);\n if (error instanceof FilePickerClosed) {\n resolve(false);\n }\n else {\n reject(new Error(t('files', 'Move or copy operation failed')));\n }\n });\n return promise;\n}\nexport const ACTION_COPY_MOVE = 'move-copy';\nexport const action = new FileAction({\n id: ACTION_COPY_MOVE,\n displayName(nodes) {\n switch (getActionForNodes(nodes)) {\n case MoveCopyAction.MOVE:\n return t('files', 'Move');\n case MoveCopyAction.COPY:\n return t('files', 'Copy');\n case MoveCopyAction.MOVE_OR_COPY:\n return t('files', 'Move or copy');\n }\n },\n iconSvgInline: () => FolderMoveSvg,\n enabled(nodes, view) {\n // We can not copy or move in single file shares\n if (view.id === 'public-file-share') {\n return false;\n }\n // We only support moving/copying files within the user folder\n if (!nodes.every(node => node.root?.startsWith('/files/'))) {\n return false;\n }\n return nodes.length > 0 && (canMove(nodes) || canCopy(nodes));\n },\n async exec(node, view, dir) {\n const action = getActionForNodes([node]);\n let result;\n try {\n result = await openFilePickerForAction(action, dir, [node]);\n }\n catch (e) {\n logger.error(e);\n return false;\n }\n if (result === false) {\n showInfo(t('files', 'Cancelled move or copy of \"{filename}\".', { filename: node.displayname }));\n return null;\n }\n try {\n await handleCopyMoveNodeTo(node, result.destination, result.action);\n return true;\n }\n catch (error) {\n if (error instanceof Error && !!error.message) {\n showError(error.message);\n // Silent action as we handle the toast\n return null;\n }\n return false;\n }\n },\n async execBatch(nodes, view, dir) {\n const action = getActionForNodes(nodes);\n const result = await openFilePickerForAction(action, dir, nodes);\n // Handle cancellation silently\n if (result === false) {\n showInfo(nodes.length === 1\n ? t('files', 'Cancelled move or copy of \"{filename}\".', { filename: nodes[0].displayname })\n : t('files', 'Cancelled move or copy operation'));\n return nodes.map(() => null);\n }\n const promises = nodes.map(async (node) => {\n try {\n await handleCopyMoveNodeTo(node, result.destination, result.action);\n return true;\n }\n catch (error) {\n logger.error(`Failed to ${result.action} node`, { node, error });\n return false;\n }\n });\n // We need to keep the selection on error!\n // So we do not return null, and for batch action\n // we let the front handle the error.\n return await Promise.all(promises);\n },\n order: 15,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Folder, Node, NodeStatus, davRootPath } from '@nextcloud/files';\nimport { getUploader, hasConflict } from '@nextcloud/upload';\nimport { join } from 'path';\nimport { joinPaths } from '@nextcloud/paths';\nimport { showError, showInfo, showSuccess, showWarning } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { Directory, traverseTree, resolveConflict, createDirectoryIfNotExists } from './DropServiceUtils';\nimport { handleCopyMoveNodeTo } from '../actions/moveOrCopyAction';\nimport { MoveCopyAction } from '../actions/moveOrCopyActionUtils';\nimport logger from '../logger.ts';\n/**\n * This function converts a list of DataTransferItems to a file tree.\n * It uses the Filesystem API if available, otherwise it falls back to the File API.\n * The File API will NOT be available if the browser is not in a secure context (e.g. HTTP).\n * ⚠️ When using this method, you need to use it as fast as possible, as the DataTransferItems\n * will be cleared after the first access to the props of one of the entries.\n *\n * @param items the list of DataTransferItems\n */\nexport const dataTransferToFileTree = async (items) => {\n // Check if the browser supports the Filesystem API\n // We need to cache the entries to prevent Blink engine bug that clears\n // the list (`data.items`) after first access props of one of the entries\n const entries = items\n .filter((item) => {\n if (item.kind !== 'file') {\n logger.debug('Skipping dropped item', { kind: item.kind, type: item.type });\n return false;\n }\n return true;\n }).map((item) => {\n // MDN recommends to try both, as it might be renamed in the future\n return item?.getAsEntry?.()\n ?? item?.webkitGetAsEntry?.()\n ?? item;\n });\n let warned = false;\n const fileTree = new Directory('root');\n // Traverse the file tree\n for (const entry of entries) {\n // Handle browser issues if Filesystem API is not available. Fallback to File API\n if (entry instanceof DataTransferItem) {\n logger.warn('Could not get FilesystemEntry of item, falling back to file');\n const file = entry.getAsFile();\n if (file === null) {\n logger.warn('Could not process DataTransferItem', { type: entry.type, kind: entry.kind });\n showError(t('files', 'One of the dropped files could not be processed'));\n continue;\n }\n // Warn the user that the browser does not support the Filesystem API\n // we therefore cannot upload directories recursively.\n if (file.type === 'httpd/unix-directory' || !file.type) {\n if (!warned) {\n logger.warn('Browser does not support Filesystem API. Directories will not be uploaded');\n showWarning(t('files', 'Your browser does not support the Filesystem API. Directories will not be uploaded'));\n warned = true;\n }\n continue;\n }\n fileTree.contents.push(file);\n continue;\n }\n // Use Filesystem API\n try {\n fileTree.contents.push(await traverseTree(entry));\n }\n catch (error) {\n // Do not throw, as we want to continue with the other files\n logger.error('Error while traversing file tree', { error });\n }\n }\n return fileTree;\n};\nexport const onDropExternalFiles = async (root, destination, contents) => {\n const uploader = getUploader();\n // Check for conflicts on root elements\n if (await hasConflict(root.contents, contents)) {\n root.contents = await resolveConflict(root.contents, destination, contents);\n }\n if (root.contents.length === 0) {\n logger.info('No files to upload', { root });\n showInfo(t('files', 'No files to upload'));\n return [];\n }\n // Let's process the files\n logger.debug(`Uploading files to ${destination.path}`, { root, contents: root.contents });\n const queue = [];\n const uploadDirectoryContents = async (directory, path) => {\n for (const file of directory.contents) {\n // This is the relative path to the resource\n // from the current uploader destination\n const relativePath = join(path, file.name);\n // If the file is a directory, we need to create it first\n // then browse its tree and upload its contents.\n if (file instanceof Directory) {\n const absolutePath = joinPaths(davRootPath, destination.path, relativePath);\n try {\n console.debug('Processing directory', { relativePath });\n await createDirectoryIfNotExists(absolutePath);\n await uploadDirectoryContents(file, relativePath);\n }\n catch (error) {\n showError(t('files', 'Unable to create the directory {directory}', { directory: file.name }));\n logger.error('', { error, absolutePath, directory: file });\n }\n continue;\n }\n // If we've reached a file, we can upload it\n logger.debug('Uploading file to ' + join(destination.path, relativePath), { file });\n // Overriding the root to avoid changing the current uploader context\n queue.push(uploader.upload(relativePath, file, destination.source));\n }\n };\n // Pause the uploader to prevent it from starting\n // while we compute the queue\n uploader.pause();\n // Upload the files. Using '/' as the starting point\n // as we already adjusted the uploader destination\n await uploadDirectoryContents(root, '/');\n uploader.start();\n // Wait for all promises to settle\n const results = await Promise.allSettled(queue);\n // Check for errors\n const errors = results.filter(result => result.status === 'rejected');\n if (errors.length > 0) {\n logger.error('Error while uploading files', { errors });\n showError(t('files', 'Some files could not be uploaded'));\n return [];\n }\n logger.debug('Files uploaded successfully');\n showSuccess(t('files', 'Files uploaded successfully'));\n return Promise.all(queue);\n};\nexport const onDropInternalFiles = async (nodes, destination, contents, isCopy = false) => {\n const queue = [];\n // Check for conflicts on root elements\n if (await hasConflict(nodes, contents)) {\n nodes = await resolveConflict(nodes, destination, contents);\n }\n if (nodes.length === 0) {\n logger.info('No files to process', { nodes });\n showInfo(t('files', 'No files to process'));\n return;\n }\n for (const node of nodes) {\n Vue.set(node, 'status', NodeStatus.LOADING);\n queue.push(handleCopyMoveNodeTo(node, destination, isCopy ? MoveCopyAction.COPY : MoveCopyAction.MOVE, true));\n }\n // Wait for all promises to settle\n const results = await Promise.allSettled(queue);\n nodes.forEach(node => Vue.set(node, 'status', undefined));\n // Check for errors\n const errors = results.filter(result => result.status === 'rejected');\n if (errors.length > 0) {\n logger.error('Error while copying or moving files', { errors });\n showError(isCopy ? t('files', 'Some files could not be copied') : t('files', 'Some files could not be moved'));\n return;\n }\n logger.debug('Files copy/move successful');\n showSuccess(isCopy ? t('files', 'Files copied successfully') : t('files', 'Files moved successfully'));\n};\n","import { defineStore } from 'pinia';\nimport Vue from 'vue';\nexport const useDragAndDropStore = defineStore('dragging', {\n state: () => ({\n dragging: [],\n }),\n actions: {\n /**\n * Set the selection of files being dragged currently\n * @param selection array of node sources\n */\n set(selection = []) {\n Vue.set(this, 'dragging', selection);\n },\n /**\n * Reset the selection\n */\n reset() {\n Vue.set(this, 'dragging', []);\n },\n },\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcBreadcrumbs',{staticClass:\"files-list__breadcrumbs\",class:{ 'files-list__breadcrumbs--with-progress': _vm.wrapUploadProgressBar },attrs:{\"data-cy-files-content-breadcrumbs\":\"\",\"aria-label\":_vm.t('files', 'Current directory path')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)},_vm._l((_vm.sections),function(section,index){return _c('NcBreadcrumb',_vm._b({key:section.dir,attrs:{\"dir\":\"auto\",\"to\":section.to,\"force-icon-text\":index === 0 && _vm.fileListWidth >= 486,\"title\":_vm.titleForSection(index, section),\"aria-description\":_vm.ariaForSection(section)},on:{\"drop\":function($event){return _vm.onDrop($event, section.dir)}},nativeOn:{\"click\":function($event){return _vm.onClick(section.to)},\"dragover\":function($event){return _vm.onDragOver($event, section.dir)}},scopedSlots:_vm._u([(index === 0)?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"size\":20,\"svg\":_vm.viewIcon}})]},proxy:true}:null],null,true)},'NcBreadcrumb',section,false))}),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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=style&index=0&id=04abfffa&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=style&index=0&id=04abfffa&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BreadCrumbs.vue?vue&type=template&id=04abfffa&scoped=true\"\nimport script from \"./BreadCrumbs.vue?vue&type=script&lang=ts\"\nexport * from \"./BreadCrumbs.vue?vue&type=script&lang=ts\"\nimport style0 from \"./BreadCrumbs.vue?vue&type=style&index=0&id=04abfffa&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 \"04abfffa\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FileType } from '@nextcloud/files';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\n/**\n * Extract dir and name from file path\n *\n * @param {string} path the full path\n * @return {string[]} [dirPath, fileName]\n */\nexport const extractFilePaths = function (path) {\n const pathSections = path.split('/');\n const fileName = pathSections[pathSections.length - 1];\n const dirPath = pathSections.slice(0, pathSections.length - 1).join('/');\n return [dirPath, fileName];\n};\n/**\n * Generate a translated summary of an array of nodes\n * @param {Node[]} nodes the nodes to summarize\n * @return {string}\n */\nexport const getSummaryFor = (nodes) => {\n const fileCount = nodes.filter(node => node.type === FileType.File).length;\n const folderCount = nodes.filter(node => node.type === FileType.Folder).length;\n if (fileCount === 0) {\n return n('files', '{folderCount} folder', '{folderCount} folders', folderCount, { folderCount });\n }\n else if (folderCount === 0) {\n return n('files', '{fileCount} file', '{fileCount} files', fileCount, { fileCount });\n }\n if (fileCount === 1) {\n return n('files', '1 file and {folderCount} folder', '1 file and {folderCount} folders', folderCount, { folderCount });\n }\n if (folderCount === 1) {\n return n('files', '{fileCount} file and 1 folder', '{fileCount} files and 1 folder', fileCount, { fileCount });\n }\n return t('files', '{fileCount} files and {folderCount} folders', { fileCount, folderCount });\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',_vm._g({staticClass:\"files-list__row\",class:{\n\t\t'files-list__row--dragover': _vm.dragover,\n\t\t'files-list__row--loading': _vm.isLoading,\n\t\t'files-list__row--active': _vm.isActive,\n\t},attrs:{\"data-cy-files-list-row\":\"\",\"data-cy-files-list-row-fileid\":_vm.fileid,\"data-cy-files-list-row-name\":_vm.source.basename,\"draggable\":_vm.canDrag}},_vm.rowListeners),[(_vm.isFailedSource)?_c('span',{staticClass:\"files-list__row--failed\"}):_vm._e(),_vm._v(\" \"),_c('FileEntryCheckbox',{attrs:{\"fileid\":_vm.fileid,\"is-loading\":_vm.isLoading,\"nodes\":_vm.nodes,\"source\":_vm.source}}),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\",attrs:{\"data-cy-files-list-row-name\":\"\"}},[_c('FileEntryPreview',{ref:\"preview\",attrs:{\"source\":_vm.source,\"dragover\":_vm.dragover},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}}),_vm._v(\" \"),_c('FileEntryName',{ref:\"name\",attrs:{\"basename\":_vm.basename,\"extension\":_vm.extension,\"nodes\":_vm.nodes,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}})],1),_vm._v(\" \"),_c('FileEntryActions',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isRenamingSmallScreen),expression:\"!isRenamingSmallScreen\"}],ref:\"actions\",class:`files-list__row-actions-${_vm.uniqueId}`,attrs:{\"opened\":_vm.openedMenu,\"source\":_vm.source},on:{\"update:opened\":function($event){_vm.openedMenu=$event}}}),_vm._v(\" \"),(!_vm.compact && _vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__row-size\",style:(_vm.sizeOpacity),attrs:{\"data-cy-files-list-row-size\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('span',[_vm._v(_vm._s(_vm.size))])]):_vm._e(),_vm._v(\" \"),(!_vm.compact && _vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__row-mtime\",style:(_vm.mtimeOpacity),attrs:{\"data-cy-files-list-row-mtime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[(_vm.mtime)?_c('NcDateTime',{attrs:{\"timestamp\":_vm.mtime,\"ignore-seconds\":true}}):_c('span',[_vm._v(_vm._s(_vm.t('files', 'Unknown date')))])],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('td',{key:column.id,staticClass:\"files-list__row-column-custom\",class:`files-list__row-${_vm.currentView.id}-${column.id}`,attrs:{\"data-cy-files-list-row-column-custom\":column.id},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('CustomElementRender',{attrs:{\"current-view\":_vm.currentView,\"render\":column.render,\"source\":_vm.source}})],1)})],2)\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 { defineStore } from 'pinia';\nexport const useActionsMenuStore = defineStore('actionsmenu', {\n state: () => ({\n opened: null,\n }),\n});\n","import axios, { isAxiosError } from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { FileType, NodeStatus } from '@nextcloud/files';\nimport { DialogBuilder } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport { basename, dirname, extname } from 'path';\nimport { defineStore } from 'pinia';\nimport logger from '../logger';\nimport Vue from 'vue';\nimport IconCancel from '@mdi/svg/svg/cancel.svg?raw';\nimport IconCheck from '@mdi/svg/svg/check.svg?raw';\nlet isDialogVisible = false;\nconst showWarningDialog = (oldExtension, newExtension) => {\n if (isDialogVisible) {\n return Promise.resolve(false);\n }\n isDialogVisible = true;\n let message;\n if (!oldExtension && newExtension) {\n message = t('files', 'Adding the file extension \"{new}\" may render the file unreadable.', { new: newExtension });\n }\n else if (!newExtension) {\n message = t('files', 'Removing the file extension \"{old}\" may render the file unreadable.', { old: oldExtension });\n }\n else {\n message = t('files', 'Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable.', { old: oldExtension, new: newExtension });\n }\n return new Promise((resolve) => {\n const dialog = new DialogBuilder()\n .setName(t('files', 'Change file extension'))\n .setText(message)\n .setButtons([\n {\n label: t('files', 'Keep {oldextension}', { oldextension: oldExtension }),\n icon: IconCancel,\n type: 'secondary',\n callback: () => {\n isDialogVisible = false;\n resolve(false);\n },\n },\n {\n label: newExtension.length ? t('files', 'Use {newextension}', { newextension: newExtension }) : t('files', 'Remove extension'),\n icon: IconCheck,\n type: 'primary',\n callback: () => {\n isDialogVisible = false;\n resolve(true);\n },\n },\n ])\n .build();\n dialog.show().then(() => {\n dialog.hide();\n });\n });\n};\nexport const useRenamingStore = function (...args) {\n const store = defineStore('renaming', {\n state: () => ({\n renamingNode: undefined,\n newName: '',\n }),\n actions: {\n /**\n * Execute the renaming.\n * This will rename the node set as `renamingNode` to the configured new name `newName`.\n * @return true if success, false if skipped (e.g. new and old name are the same)\n * @throws Error if renaming fails, details are set in the error message\n */\n async rename() {\n if (this.renamingNode === undefined) {\n throw new Error('No node is currently being renamed');\n }\n const newName = this.newName.trim?.() || '';\n const oldName = this.renamingNode.basename;\n const oldEncodedSource = this.renamingNode.encodedSource;\n // Check for extension change for files\n const oldExtension = extname(oldName);\n const newExtension = extname(newName);\n if (oldExtension !== newExtension && this.renamingNode.type === FileType.File) {\n const proceed = await showWarningDialog(oldExtension, newExtension);\n if (!proceed) {\n return false;\n }\n }\n if (oldName === newName) {\n return false;\n }\n const node = this.renamingNode;\n Vue.set(node, 'status', NodeStatus.LOADING);\n try {\n // rename the node\n this.renamingNode.rename(newName);\n logger.debug('Moving file to', { destination: this.renamingNode.encodedSource, oldEncodedSource });\n // create MOVE request\n await axios({\n method: 'MOVE',\n url: oldEncodedSource,\n headers: {\n Destination: this.renamingNode.encodedSource,\n Overwrite: 'F',\n },\n });\n // Success 🎉\n emit('files:node:updated', this.renamingNode);\n emit('files:node:renamed', this.renamingNode);\n emit('files:node:moved', {\n node: this.renamingNode,\n oldSource: `${dirname(this.renamingNode.source)}/${oldName}`,\n });\n this.$reset();\n return true;\n }\n catch (error) {\n logger.error('Error while renaming file', { error });\n // Rename back as it failed\n this.renamingNode.rename(oldName);\n if (isAxiosError(error)) {\n // TODO: 409 means current folder does not exist, redirect ?\n if (error?.response?.status === 404) {\n throw new Error(t('files', 'Could not rename \"{oldName}\", it does not exist any more', { oldName }));\n }\n else if (error?.response?.status === 412) {\n throw new Error(t('files', 'The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name.', {\n newName,\n dir: basename(this.renamingNode.dirname),\n }));\n }\n }\n // Unknown error\n throw new Error(t('files', 'Could not rename \"{oldName}\"', { oldName }));\n }\n finally {\n Vue.set(node, 'status', undefined);\n }\n },\n },\n });\n const renamingStore = store(...args);\n // Make sure we only register the listeners once\n if (!renamingStore._initialized) {\n subscribe('files:node:rename', function (node) {\n renamingStore.renamingNode = node;\n renamingStore.newName = node.basename;\n });\n renamingStore._initialized = true;\n }\n return renamingStore;\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomElementRender.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomElementRender.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./CustomElementRender.vue?vue&type=template&id=7b30c709\"\nimport script from \"./CustomElementRender.vue?vue&type=script&lang=ts\"\nexport * from \"./CustomElementRender.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon arrow-left-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ArrowLeftIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./ArrowLeft.vue?vue&type=template&id=16833c02\"\nimport script from \"./ArrowLeft.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowLeft.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 arrow-left-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,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n data() {\n return {\n openedSubmenu: null,\n };\n },\n computed: {\n enabledSubmenuActions() {\n return this.enabledFileActions\n .reduce((record, action) => {\n if (action.parent !== undefined) {\n if (!record[action.parent]) {\n record[action.parent] = [];\n }\n record[action.parent].push(action);\n }\n return record;\n }, {});\n },\n },\n methods: {\n /**\n * Check if a menu is valid, meaning it is\n * defined and has at least one action\n *\n * @param action The action to check\n */\n isValidMenu(action) {\n return this.enabledSubmenuActions[action.id]?.length > 0;\n },\n async onBackToMenuClick(action) {\n if (!action) {\n return;\n }\n this.openedSubmenu = null;\n // Wait for first render\n await this.$nextTick();\n // Focus the previous menu action button\n this.$nextTick(() => {\n // Focus the action button, test both batch and single action references\n // as this mixin is used in both single and batch actions.\n const menuAction = this.$refs[`action-batch-${action.id}`]?.[0]\n || this.$refs[`action-${action.id}`]?.[0];\n if (menuAction) {\n menuAction.$el.querySelector('button')?.focus();\n }\n });\n },\n },\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',{staticClass:\"files-list__row-actions\",attrs:{\"data-cy-files-list-row-actions\":\"\"}},[_vm._l((_vm.enabledRenderActions),function(action){return _c('CustomElementRender',{key:action.id,staticClass:\"files-list__row-action--inline\",class:'files-list__row-action-' + action.id,attrs:{\"current-view\":_vm.currentView,\"render\":action.renderInline,\"source\":_vm.source}})}),_vm._v(\" \"),_c('NcActions',{ref:\"actionsMenu\",attrs:{\"boundaries-element\":_vm.getBoundariesElement,\"container\":_vm.getBoundariesElement,\"force-name\":true,\"type\":\"tertiary\",\"force-menu\":_vm.enabledInlineActions.length === 0 /* forceMenu only if no inline actions */,\"inline\":_vm.enabledInlineActions.length,\"open\":_vm.openedMenu},on:{\"update:open\":function($event){_vm.openedMenu=$event},\"close\":function($event){_vm.openedSubmenu = null}}},[_vm._l((_vm.enabledMenuActions),function(action){return _c('NcActionButton',{key:action.id,ref:`action-${action.id}`,refInFor:true,class:{\n\t\t\t\t[`files-list__row-action-${action.id}`]: true,\n\t\t\t\t[`files-list__row-action--menu`]: _vm.isValidMenu(action)\n\t\t\t},attrs:{\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-row-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.title?.([_vm.source], _vm.currentView),\"title\":action.title?.([_vm.source], _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline([_vm.source], _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.mountType === 'shared' && action.id === 'sharing-status' ? '' : _vm.actionDisplayName(action))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-action-back\",attrs:{\"data-cy-files-list-row-action\":\"menu-back\"},on:{\"click\":function($event){return _vm.onBackToMenuClick(_vm.openedSubmenu)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowLeftIcon')]},proxy:true}],null,false,3001860362)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Back'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.enabledSubmenuActions[_vm.openedSubmenu?.id]),function(action){return _c('NcActionButton',{key:action.id,staticClass:\"files-list__row-action--submenu\",class:`files-list__row-action-${action.id}`,attrs:{\"close-after-click\":\"\",\"data-cy-files-list-row-action\":action.id,\"title\":action.title?.([_vm.source], _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline([_vm.source], _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])})]:_vm._e()],2)],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-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=0&id=5ba570cc&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.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=0&id=5ba570cc&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\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.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=1&id=5ba570cc&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=1&id=5ba570cc&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntryActions.vue?vue&type=template&id=5ba570cc&scoped=true\"\nimport script from \"./FileEntryActions.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryActions.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FileEntryActions.vue?vue&type=style&index=0&id=5ba570cc&prod&lang=scss\"\nimport style1 from \"./FileEntryActions.vue?vue&type=style&index=1&id=5ba570cc&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 \"5ba570cc\",\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-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryCheckbox.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryCheckbox.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',{staticClass:\"files-list__row-checkbox\",on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.resetSelection.apply(null, arguments)}}},[(_vm.isLoading)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.loadingLabel}}):_c('NcCheckboxRadioSwitch',{attrs:{\"aria-label\":_vm.ariaLabel,\"checked\":_vm.isSelected,\"data-cy-files-list-row-checkbox\":\"\"},on:{\"update:checked\":_vm.onSelectionChange}})],1)\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 { defineStore } from 'pinia';\nimport Vue from 'vue';\n/**\n * Observe various events and save the current\n * special keys states. Useful for checking the\n * current status of a key when executing a method.\n * @param {...any} args\n */\nexport const useKeyboardStore = function (...args) {\n const store = defineStore('keyboard', {\n state: () => ({\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n shiftKey: false,\n }),\n actions: {\n onEvent(event) {\n if (!event) {\n event = window.event;\n }\n Vue.set(this, 'altKey', !!event.altKey);\n Vue.set(this, 'ctrlKey', !!event.ctrlKey);\n Vue.set(this, 'metaKey', !!event.metaKey);\n Vue.set(this, 'shiftKey', !!event.shiftKey);\n },\n },\n });\n const keyboardStore = store(...args);\n // Make sure we only register the listeners once\n if (!keyboardStore._initialized) {\n window.addEventListener('keydown', keyboardStore.onEvent);\n window.addEventListener('keyup', keyboardStore.onEvent);\n window.addEventListener('mousemove', keyboardStore.onEvent);\n keyboardStore._initialized = true;\n }\n return keyboardStore;\n};\n","import { render, staticRenderFns } from \"./FileEntryCheckbox.vue?vue&type=template&id=2b295080\"\nimport script from \"./FileEntryCheckbox.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryCheckbox.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon file-multiple-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileMultipleIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileMultiple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileMultiple.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileMultiple.vue?vue&type=template&id=15fca808\"\nimport script from \"./FileMultiple.vue?vue&type=script&lang=js\"\nexport * from \"./FileMultiple.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 file-multiple-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\":\"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\"}},[(_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,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list-drag-image\"},[_c('span',{staticClass:\"files-list-drag-image__icon\"},[_c('span',{ref:\"previewImg\"}),_vm._v(\" \"),(_vm.isSingleFolder)?_c('FolderIcon'):_c('FileMultipleIcon')],1),_vm._v(\" \"),_c('span',{staticClass:\"files-list-drag-image__name\"},[_vm._v(_vm._s(_vm.name))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DragAndDropPreview.vue?vue&type=template&id=01562099\"\nimport script from \"./DragAndDropPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./DragAndDropPreview.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&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 DragAndDropPreview from '../components/DragAndDropPreview.vue';\nimport Vue from 'vue';\nconst Preview = Vue.extend(DragAndDropPreview);\nlet preview;\nexport const getDragAndDropPreview = async (nodes) => {\n return new Promise((resolve) => {\n if (!preview) {\n preview = new Preview().$mount();\n document.body.appendChild(preview.$el);\n }\n preview.update(nodes);\n preview.$on('loaded', () => {\n resolve(preview.$el);\n preview.$off('loaded');\n });\n });\n};\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { extname } from 'path';\nimport { FileType, Permission, Folder, File as NcFile, NodeStatus, Node, getFileActions } from '@nextcloud/files';\nimport { generateUrl } from '@nextcloud/router';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport { showError } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport { vOnClickOutside } from '@vueuse/components';\nimport Vue, { computed, defineComponent } from 'vue';\nimport { action as sidebarAction } from '../actions/sidebarAction.ts';\nimport { dataTransferToFileTree, onDropExternalFiles, onDropInternalFiles } from '../services/DropService.ts';\nimport { getDragAndDropPreview } from '../utils/dragUtils.ts';\nimport { hashCode } from '../utils/hashUtils.ts';\nimport { isDownloadable } from '../utils/permissions.ts';\nimport logger from '../logger.ts';\nVue.directive('onClickOutside', vOnClickOutside);\nconst actions = getFileActions();\nexport default defineComponent({\n props: {\n source: {\n type: [Folder, NcFile, Node],\n required: true,\n },\n nodes: {\n type: Array,\n required: true,\n },\n filesListWidth: {\n type: Number,\n default: 0,\n },\n isMtimeAvailable: {\n type: Boolean,\n default: false,\n },\n compact: {\n type: Boolean,\n default: false,\n },\n },\n provide() {\n return {\n defaultFileAction: computed(() => this.defaultFileAction),\n enabledFileActions: computed(() => this.enabledFileActions),\n };\n },\n data() {\n return {\n dragover: false,\n gridMode: false,\n };\n },\n computed: {\n fileid() {\n return this.source.fileid ?? 0;\n },\n uniqueId() {\n return hashCode(this.source.source);\n },\n isLoading() {\n return this.source.status === NodeStatus.LOADING;\n },\n /**\n * The display name of the current node\n * Either the nodes filename or a custom display name (e.g. for shares)\n */\n displayName() {\n // basename fallback needed for apps using old `@nextcloud/files` prior 3.6.0\n return this.source.displayname || this.source.basename;\n },\n /**\n * The display name without extension\n */\n basename() {\n if (this.extension === '') {\n return this.displayName;\n }\n return this.displayName.slice(0, 0 - this.extension.length);\n },\n /**\n * The extension of the file\n */\n extension() {\n if (this.source.type === FileType.Folder) {\n return '';\n }\n return extname(this.displayName);\n },\n draggingFiles() {\n return this.draggingStore.dragging;\n },\n selectedFiles() {\n return this.selectionStore.selected;\n },\n isSelected() {\n return this.selectedFiles.includes(this.source.source);\n },\n isRenaming() {\n return this.renamingStore.renamingNode === this.source;\n },\n isRenamingSmallScreen() {\n return this.isRenaming && this.filesListWidth < 512;\n },\n isActive() {\n return String(this.fileid) === String(this.currentFileId);\n },\n /**\n * Check if the source is in a failed state after an API request\n */\n isFailedSource() {\n return this.source.status === NodeStatus.FAILED;\n },\n canDrag() {\n if (this.isRenaming) {\n return false;\n }\n const canDrag = (node) => {\n return (node?.permissions & Permission.UPDATE) !== 0;\n };\n // If we're dragging a selection, we need to check all files\n if (this.selectedFiles.length > 0) {\n const nodes = this.selectedFiles.map(source => this.filesStore.getNode(source));\n return nodes.every(canDrag);\n }\n return canDrag(this.source);\n },\n canDrop() {\n if (this.source.type !== FileType.Folder) {\n return false;\n }\n // If the current folder is also being dragged, we can't drop it on itself\n if (this.draggingFiles.includes(this.source.source)) {\n return false;\n }\n return (this.source.permissions & Permission.CREATE) !== 0;\n },\n openedMenu: {\n get() {\n return this.actionsMenuStore.opened === this.uniqueId.toString();\n },\n set(opened) {\n this.actionsMenuStore.opened = opened ? this.uniqueId.toString() : null;\n },\n },\n mtimeOpacity() {\n const maxOpacityTime = 31 * 24 * 60 * 60 * 1000; // 31 days\n const mtime = this.source.mtime?.getTime?.();\n if (!mtime) {\n return {};\n }\n // 1 = today, 0 = 31 days ago\n const ratio = Math.round(Math.min(100, 100 * (maxOpacityTime - (Date.now() - mtime)) / maxOpacityTime));\n if (ratio < 0) {\n return {};\n }\n return {\n color: `color-mix(in srgb, var(--color-main-text) ${ratio}%, var(--color-text-maxcontrast))`,\n };\n },\n /**\n * Sorted actions that are enabled for this node\n */\n enabledFileActions() {\n if (this.source.status === NodeStatus.FAILED) {\n return [];\n }\n return actions\n .filter(action => {\n if (!action.enabled) {\n return true;\n }\n // In case something goes wrong, since we don't want to break\n // the entire list, we filter out actions that throw an error.\n try {\n return action.enabled([this.source], this.currentView);\n }\n catch (error) {\n logger.error('Error while checking action', { action, error });\n return false;\n }\n })\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n },\n defaultFileAction() {\n return this.enabledFileActions.find((action) => action.default !== undefined);\n },\n },\n watch: {\n /**\n * When the source changes, reset the preview\n * and fetch the new one.\n * @param newSource The new value of the source prop\n * @param oldSource The previous value\n */\n source(newSource, oldSource) {\n if (newSource.source !== oldSource.source) {\n this.resetState();\n }\n },\n openedMenu() {\n if (this.openedMenu === false) {\n // TODO: This timeout can be removed once `close` event only triggers after the transition\n // ref: https://github.com/nextcloud-libraries/nextcloud-vue/pull/6065\n window.setTimeout(() => {\n if (this.openedMenu) {\n // was reopened while the animation run\n return;\n }\n // Reset any right menu position potentially set\n const root = document.getElementById('app-content-vue');\n if (root !== null) {\n root.style.removeProperty('--mouse-pos-x');\n root.style.removeProperty('--mouse-pos-y');\n }\n }, 300);\n }\n },\n },\n beforeDestroy() {\n this.resetState();\n },\n methods: {\n resetState() {\n // Reset the preview state\n this.$refs?.preview?.reset?.();\n // Close menu\n this.openedMenu = false;\n },\n // Open the actions menu on right click\n onRightClick(event) {\n // If already opened, fallback to default browser\n if (this.openedMenu) {\n return;\n }\n // The grid mode is compact enough to not care about\n // the actions menu mouse position\n if (!this.gridMode) {\n // Actions menu is contained within the app content\n const root = this.$el?.closest('main.app-content');\n const contentRect = root.getBoundingClientRect();\n // Using Math.min/max to prevent the menu from going out of the AppContent\n // 200 = max width of the menu\n root.style.setProperty('--mouse-pos-x', Math.max(0, event.clientX - contentRect.left - 200) + 'px');\n root.style.setProperty('--mouse-pos-y', Math.max(0, event.clientY - contentRect.top) + 'px');\n }\n else {\n // Reset any right menu position potentially set\n const root = this.$el?.closest('main.app-content');\n root.style.removeProperty('--mouse-pos-x');\n root.style.removeProperty('--mouse-pos-y');\n }\n // If the clicked row is in the selection, open global menu\n const isMoreThanOneSelected = this.selectedFiles.length > 1;\n this.actionsMenuStore.opened = this.isSelected && isMoreThanOneSelected ? 'global' : this.uniqueId.toString();\n // Prevent any browser defaults\n event.preventDefault();\n event.stopPropagation();\n },\n execDefaultAction(event) {\n // Ignore click if we are renaming\n if (this.isRenaming) {\n return;\n }\n // Ignore right click (button & 2) and any auxiliary button expect mouse-wheel (button & 4)\n if (Boolean(event.button & 2) || event.button > 4) {\n return;\n }\n // if ctrl+click / cmd+click (MacOS uses the meta key) or middle mouse button (button & 4), open in new tab\n // also if there is no default action use this as a fallback\n const metaKeyPressed = event.ctrlKey || event.metaKey || Boolean(event.button & 4);\n if (metaKeyPressed || !this.defaultFileAction) {\n // If no download permission, then we can not allow to download (direct link) the files\n if (isPublicShare() && !isDownloadable(this.source)) {\n return;\n }\n const url = isPublicShare()\n ? this.source.encodedSource\n : generateUrl('/f/{fileId}', { fileId: this.fileid });\n event.preventDefault();\n event.stopPropagation();\n window.open(url, metaKeyPressed ? '_self' : undefined);\n return;\n }\n // every special case handled so just execute the default action\n event.preventDefault();\n event.stopPropagation();\n // Execute the first default action if any\n this.defaultFileAction.exec(this.source, this.currentView, this.currentDir);\n },\n openDetailsIfAvailable(event) {\n event.preventDefault();\n event.stopPropagation();\n if (sidebarAction?.enabled?.([this.source], this.currentView)) {\n sidebarAction.exec(this.source, this.currentView, this.currentDir);\n }\n },\n onDragOver(event) {\n this.dragover = this.canDrop;\n if (!this.canDrop) {\n event.dataTransfer.dropEffect = 'none';\n return;\n }\n // Handle copy/move drag and drop\n if (event.ctrlKey) {\n event.dataTransfer.dropEffect = 'copy';\n }\n else {\n event.dataTransfer.dropEffect = 'move';\n }\n },\n onDragLeave(event) {\n // Counter bubbling, make sure we're ending the drag\n // only when we're leaving the current element\n const currentTarget = event.currentTarget;\n if (currentTarget?.contains(event.relatedTarget)) {\n return;\n }\n this.dragover = false;\n },\n async onDragStart(event) {\n event.stopPropagation();\n if (!this.canDrag || !this.fileid) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n logger.debug('Drag started', { event });\n // Make sure that we're not dragging a file like the preview\n event.dataTransfer?.clearData?.();\n // Reset any renaming\n this.renamingStore.$reset();\n // Dragging set of files, if we're dragging a file\n // that is already selected, we use the entire selection\n if (this.selectedFiles.includes(this.source.source)) {\n this.draggingStore.set(this.selectedFiles);\n }\n else {\n this.draggingStore.set([this.source.source]);\n }\n const nodes = this.draggingStore.dragging\n .map(source => this.filesStore.getNode(source));\n const image = await getDragAndDropPreview(nodes);\n event.dataTransfer?.setDragImage(image, -10, -10);\n },\n onDragEnd() {\n this.draggingStore.reset();\n this.dragover = false;\n logger.debug('Drag ended');\n },\n async onDrop(event) {\n // skip if native drop like text drag and drop from files names\n if (!this.draggingFiles && !event.dataTransfer?.items?.length) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n // Caching the selection\n const selection = this.draggingFiles;\n const items = [...event.dataTransfer?.items || []];\n // We need to process the dataTransfer ASAP before the\n // browser clears it. This is why we cache the items too.\n const fileTree = await dataTransferToFileTree(items);\n // We might not have the target directory fetched yet\n const contents = await this.currentView?.getContents(this.source.path);\n const folder = contents?.folder;\n if (!folder) {\n showError(this.t('files', 'Target folder does not exist any more'));\n return;\n }\n // If another button is pressed, cancel it. This\n // allows cancelling the drag with the right click.\n if (!this.canDrop || event.button) {\n return;\n }\n const isCopy = event.ctrlKey;\n this.dragover = false;\n logger.debug('Dropped', { event, folder, selection, fileTree });\n // Check whether we're uploading files\n if (fileTree.contents.length > 0) {\n await onDropExternalFiles(fileTree, folder, contents.contents);\n return;\n }\n // Else we're moving/copying files\n const nodes = selection.map(source => this.filesStore.getNode(source));\n await onDropInternalFiles(nodes, folder, contents.contents, isCopy);\n // Reset selection after we dropped the files\n // if the dropped files are within the selection\n if (selection.some(source => this.selectedFiles.includes(source))) {\n logger.debug('Dropped selection, resetting select store...');\n this.selectionStore.reset();\n }\n },\n t,\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Simple non-secure hashing function similar to Java's `hashCode`\n * @param str The string to hash\n * @return {number} a non secure hash of the string\n */\nexport const hashCode = function (str) {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) - hash + str.charCodeAt(i)) | 0;\n }\n return (hash >>> 0);\n};\n","import { Permission } from '@nextcloud/files';\n/**\n * Check permissions on the node if it can be downloaded\n * @param node The node to check\n * @return True if downloadable, false otherwise\n */\nexport function isDownloadable(node) {\n if ((node.permissions & Permission.READ) === 0) {\n return false;\n }\n // If the mount type is a share, ensure it got download permissions.\n if (node.attributes['share-attributes']) {\n const shareAttributes = JSON.parse(node.attributes['share-attributes'] || '[]');\n const downloadAttribute = shareAttributes.find(({ scope, key }) => scope === 'permissions' && key === 'download');\n if (downloadAttribute !== undefined) {\n return downloadAttribute.value === true;\n }\n }\n return true;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isRenaming)?_c('form',{directives:[{name:\"on-click-outside\",rawName:\"v-on-click-outside\",value:(_vm.onRename),expression:\"onRename\"}],ref:\"renameForm\",staticClass:\"files-list__row-rename\",attrs:{\"aria-label\":_vm.t('files', 'Rename file')},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onRename.apply(null, arguments)}}},[_c('NcTextField',{ref:\"renameInput\",attrs:{\"label\":_vm.renameLabel,\"autofocus\":true,\"minlength\":1,\"required\":true,\"value\":_vm.newName,\"enterkeyhint\":\"done\"},on:{\"update:value\":function($event){_vm.newName=$event},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.stopRenaming.apply(null, arguments)}}})],1):_c(_vm.linkTo.is,_vm._b({ref:\"basename\",tag:\"component\",staticClass:\"files-list__row-name-link\",attrs:{\"aria-hidden\":_vm.isRenaming,\"data-cy-files-list-row-name-link\":\"\"}},'component',_vm.linkTo.params,false),[_c('span',{staticClass:\"files-list__row-name-text\",attrs:{\"dir\":\"auto\"}},[_c('span',{staticClass:\"files-list__row-name-\",domProps:{\"textContent\":_vm._s(_vm.basename)}}),_vm._v(\" \"),_c('span',{staticClass:\"files-list__row-name-ext\",domProps:{\"textContent\":_vm._s(_vm.extension)}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { InvalidFilenameError, InvalidFilenameErrorReason, validateFilename } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\n/**\n * Get the validity of a filename (empty if valid).\n * This can be used for `setCustomValidity` on input elements\n * @param name The filename\n * @param escape Escape the matched string in the error (only set when used in HTML)\n */\nexport function getFilenameValidity(name, escape = false) {\n if (name.trim() === '') {\n return t('files', 'Filename must not be empty.');\n }\n try {\n validateFilename(name);\n return '';\n }\n catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n throw error;\n }\n switch (error.reason) {\n case InvalidFilenameErrorReason.Character:\n return t('files', '\"{char}\" is not allowed inside a filename.', { char: error.segment }, undefined, { escape });\n case InvalidFilenameErrorReason.ReservedName:\n return t('files', '\"{segment}\" is a reserved name and not allowed for filenames.', { segment: error.segment }, undefined, { escape: false });\n case InvalidFilenameErrorReason.Extension:\n if (error.segment.match(/\\.[a-z]/i)) {\n return t('files', '\"{extension}\" is not an allowed filetype.', { extension: error.segment }, undefined, { escape: false });\n }\n return t('files', 'Filenames must not end with \"{extension}\".', { extension: error.segment }, undefined, { escape: false });\n default:\n return t('files', 'Invalid filename.');\n }\n }\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=style&index=0&id=c8581214&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.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=style&index=0&id=c8581214&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntryName.vue?vue&type=template&id=c8581214&scoped=true\"\nimport script from \"./FileEntryName.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryName.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FileEntryName.vue?vue&type=style&index=0&id=c8581214&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 \"c8581214\",\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('span',{staticClass:\"files-list__row-icon\"},[(_vm.source.type === 'folder')?[(_vm.dragover)?_vm._m(0):[_vm._m(1),_vm._v(\" \"),(_vm.folderOverlay)?_c(_vm.folderOverlay,{tag:\"OverlayIcon\",staticClass:\"files-list__row-icon-overlay\"}):_vm._e()]]:(_vm.previewUrl)?_c('span',{staticClass:\"files-list__row-icon-preview-container\"},[(_vm.hasBlurhash && (_vm.backgroundFailed === true || !_vm.backgroundLoaded))?_c('canvas',{ref:\"canvas\",staticClass:\"files-list__row-icon-blurhash\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"),(_vm.backgroundFailed !== true)?_c('img',{ref:\"previewImg\",staticClass:\"files-list__row-icon-preview\",class:{'files-list__row-icon-preview--loaded': _vm.backgroundFailed === false},attrs:{\"alt\":\"\",\"loading\":\"lazy\",\"src\":_vm.previewUrl},on:{\"error\":_vm.onBackgroundError,\"load\":_vm.onBackgroundLoad}}):_vm._e()]):_vm._m(2),_vm._v(\" \"),(_vm.isFavorite)?_c('span',{staticClass:\"files-list__row-icon-favorite\"},[_vm._m(3)],1):_vm._e(),_vm._v(\" \"),(_vm.fileOverlay)?_c(_vm.fileOverlay,{tag:\"OverlayIcon\",staticClass:\"files-list__row-icon-overlay files-list__row-icon-overlay--file\"}):_vm._e()],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FolderOpenIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FolderIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FileIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FavoriteIcon')\n}]\n\nexport { render, staticRenderFns }","var q=[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"#\",\"$\",\"%\",\"*\",\"+\",\",\",\"-\",\".\",\":\",\";\",\"=\",\"?\",\"@\",\"[\",\"]\",\"^\",\"_\",\"{\",\"|\",\"}\",\"~\"],x=t=>{let e=0;for(let r=0;r<t.length;r++){let n=t[r],l=q.indexOf(n);e=e*83+l}return e},p=(t,e)=>{var r=\"\";for(let n=1;n<=e;n++){let l=Math.floor(t)/Math.pow(83,e-n)%83;r+=q[Math.floor(l)]}return r};var f=t=>{let e=t/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},h=t=>{let e=Math.max(0,Math.min(1,t));return e<=.0031308?Math.trunc(e*12.92*255+.5):Math.trunc((1.055*Math.pow(e,.4166666666666667)-.055)*255+.5)},F=t=>t<0?-1:1,M=(t,e)=>F(t)*Math.pow(Math.abs(t),e);var d=class extends Error{constructor(e){super(e),this.name=\"ValidationError\",this.message=e}};var C=t=>{if(!t||t.length<6)throw new d(\"The blurhash string must be at least 6 characters\");let e=x(t[0]),r=Math.floor(e/9)+1,n=e%9+1;if(t.length!==4+2*n*r)throw new d(`blurhash length mismatch: length is ${t.length} but it should be ${4+2*n*r}`)},N=t=>{try{C(t)}catch(e){return{result:!1,errorReason:e.message}}return{result:!0}},z=t=>{let e=t>>16,r=t>>8&255,n=t&255;return[f(e),f(r),f(n)]},L=(t,e)=>{let r=Math.floor(t/361),n=Math.floor(t/19)%19,l=t%19;return[M((r-9)/9,2)*e,M((n-9)/9,2)*e,M((l-9)/9,2)*e]},U=(t,e,r,n)=>{C(t),n=n|1;let l=x(t[0]),m=Math.floor(l/9)+1,b=l%9+1,i=(x(t[1])+1)/166,u=new Array(b*m);for(let o=0;o<u.length;o++)if(o===0){let a=x(t.substring(2,6));u[o]=z(a)}else{let a=x(t.substring(4+o*2,6+o*2));u[o]=L(a,i*n)}let c=e*4,s=new Uint8ClampedArray(c*r);for(let o=0;o<r;o++)for(let a=0;a<e;a++){let y=0,B=0,R=0;for(let w=0;w<m;w++)for(let P=0;P<b;P++){let G=Math.cos(Math.PI*a*P/e)*Math.cos(Math.PI*o*w/r),T=u[P+w*b];y+=T[0]*G,B+=T[1]*G,R+=T[2]*G}let V=h(y),I=h(B),E=h(R);s[4*a+0+o*c]=V,s[4*a+1+o*c]=I,s[4*a+2+o*c]=E,s[4*a+3+o*c]=255}return s},j=U;var A=4,D=(t,e,r,n)=>{let l=0,m=0,b=0,g=e*A;for(let u=0;u<e;u++){let c=A*u;for(let s=0;s<r;s++){let o=c+s*g,a=n(u,s);l+=a*f(t[o]),m+=a*f(t[o+1]),b+=a*f(t[o+2])}}let i=1/(e*r);return[l*i,m*i,b*i]},$=t=>{let e=h(t[0]),r=h(t[1]),n=h(t[2]);return(e<<16)+(r<<8)+n},H=(t,e)=>{let r=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[0]/e,.5)*9+9.5)))),n=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[1]/e,.5)*9+9.5)))),l=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[2]/e,.5)*9+9.5))));return r*19*19+n*19+l},O=(t,e,r,n,l)=>{if(n<1||n>9||l<1||l>9)throw new d(\"BlurHash must have between 1 and 9 components\");if(e*r*4!==t.length)throw new d(\"Width and height must match the pixels array\");let m=[];for(let s=0;s<l;s++)for(let o=0;o<n;o++){let a=o==0&&s==0?1:2,y=D(t,e,r,(B,R)=>a*Math.cos(Math.PI*o*B/e)*Math.cos(Math.PI*s*R/r));m.push(y)}let b=m[0],g=m.slice(1),i=\"\",u=n-1+(l-1)*9;i+=p(u,1);let c;if(g.length>0){let s=Math.max(...g.map(a=>Math.max(...a))),o=Math.floor(Math.max(0,Math.min(82,Math.floor(s*166-.5))));c=(o+1)/166,i+=p(o,1)}else c=1,i+=p(0,1);return i+=p($(b),4),g.forEach(s=>{i+=p(H(s,c),2)}),i},S=O;export{d as ValidationError,j as decode,S as encode,N as isBlurhashValid};\n//# sourceMappingURL=index.js.map","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-open-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderOpenIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderOpen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderOpen.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FolderOpen.vue?vue&type=template&id=ae0c5fc0\"\nimport script from \"./FolderOpen.vue?vue&type=script&lang=js\"\nexport * from \"./FolderOpen.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 folder-open-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,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z\"}},[(_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!./Key.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Key.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon key-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"KeyIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./Key.vue?vue&type=template&id=499b3412\"\nimport script from \"./Key.vue?vue&type=script&lang=js\"\nexport * from \"./Key.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 key-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\":\"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z\"}},[(_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!./Network.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Network.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon network-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"NetworkIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Network.vue?vue&type=template&id=7bf2ec80\"\nimport script from \"./Network.vue?vue&type=script&lang=js\"\nexport * from \"./Network.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 network-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,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tag.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tag.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon tag-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TagIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Tag.vue?vue&type=template&id=356230e0\"\nimport script from \"./Tag.vue?vue&type=script&lang=js\"\nexport * from \"./Tag.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 tag-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\":\"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./PlayCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./PlayCircle.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon play-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10,16.5V7.5L16,12M12,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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"PlayCircleIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./PlayCircle.vue?vue&type=template&id=3cc1493c\"\nimport script from \"./PlayCircle.vue?vue&type=script&lang=js\"\nexport * from \"./PlayCircle.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 play-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\":\"M10,16.5V7.5L16,12M12,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 }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollectivesIcon.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!./CollectivesIcon.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n -->\n<template>\n\t<span :aria-hidden=\"!title\"\n\t\t:aria-label=\"title\"\n\t\tclass=\"material-design-icon collectives-icon\"\n\t\trole=\"img\"\n\t\tv-bind=\"$attrs\"\n\t\t@click=\"$emit('click', $event)\">\n\t\t<svg :fill=\"fillColor\"\n\t\t\tclass=\"material-design-icon__svg\"\n\t\t\t:width=\"size\"\n\t\t\t:height=\"size\"\n\t\t\tviewBox=\"0 0 16 16\">\n\t\t\t<path d=\"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z\" />\n\t\t\t<path d=\"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z\" />\n\t\t\t<path d=\"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z\" />\n\t\t\t<path d=\"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z\" />\n\t\t\t<path d=\"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z\" />\n\t\t\t<path d=\"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z\" />\n\t\t</svg>\n\t</span>\n</template>\n\n<script>\nexport default {\n\tname: 'CollectivesIcon',\n\tprops: {\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tfillColor: {\n\t\t\ttype: String,\n\t\t\tdefault: 'currentColor',\n\t\t},\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 24,\n\t\t},\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./CollectivesIcon.vue?vue&type=template&id=43528c7c\"\nimport script from \"./CollectivesIcon.vue?vue&type=script&lang=js\"\nexport * from \"./CollectivesIcon.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('span',_vm._b({staticClass:\"material-design-icon collectives-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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 16 16\"}},[_c('path',{attrs:{\"d\":\"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcIconSvgWrapper',{staticClass:\"favorite-marker-icon\",attrs:{\"name\":_vm.t('files', 'Favorite'),\"svg\":_vm.StarSvg}})\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/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=style&index=0&id=f2d0cf6e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=style&index=0&id=f2d0cf6e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FavoriteIcon.vue?vue&type=template&id=f2d0cf6e&scoped=true\"\nimport script from \"./FavoriteIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./FavoriteIcon.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FavoriteIcon.vue?vue&type=style&index=0&id=f2d0cf6e&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 \"f2d0cf6e\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Node, registerDavProperty } from '@nextcloud/files';\n/**\n *\n */\nexport function initLivePhotos() {\n registerDavProperty('nc:metadata-files-live-photo', { nc: 'http://nextcloud.org/ns' });\n}\n/**\n * @param {Node} node - The node\n */\nexport function isLivePhoto(node) {\n return node.attributes['metadata-files-live-photo'] !== undefined;\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryPreview.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryPreview.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileEntryPreview.vue?vue&type=template&id=d02c9e3e\"\nimport script from \"./FileEntryPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryPreview.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileEntry.vue?vue&type=template&id=d1d8c0dc\"\nimport script from \"./FileEntry.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntry.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryGrid.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryGrid.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"files-list__row\",class:{'files-list__row--active': _vm.isActive, 'files-list__row--dragover': _vm.dragover, 'files-list__row--loading': _vm.isLoading},attrs:{\"data-cy-files-list-row\":\"\",\"data-cy-files-list-row-fileid\":_vm.fileid,\"data-cy-files-list-row-name\":_vm.source.basename,\"draggable\":_vm.canDrag},on:{\"contextmenu\":_vm.onRightClick,\"dragover\":_vm.onDragOver,\"dragleave\":_vm.onDragLeave,\"dragstart\":_vm.onDragStart,\"dragend\":_vm.onDragEnd,\"drop\":_vm.onDrop}},[(_vm.isFailedSource)?_c('span',{staticClass:\"files-list__row--failed\"}):_vm._e(),_vm._v(\" \"),_c('FileEntryCheckbox',{attrs:{\"fileid\":_vm.fileid,\"is-loading\":_vm.isLoading,\"nodes\":_vm.nodes,\"source\":_vm.source}}),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\",attrs:{\"data-cy-files-list-row-name\":\"\"}},[_c('FileEntryPreview',{ref:\"preview\",attrs:{\"dragover\":_vm.dragover,\"grid-mode\":true,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}}),_vm._v(\" \"),_c('FileEntryName',{ref:\"name\",attrs:{\"basename\":_vm.basename,\"extension\":_vm.extension,\"grid-mode\":true,\"nodes\":_vm.nodes,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}})],1),_vm._v(\" \"),(!_vm.compact && _vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__row-mtime\",style:(_vm.mtimeOpacity),attrs:{\"data-cy-files-list-row-mtime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[(_vm.source.mtime)?_c('NcDateTime',{attrs:{\"timestamp\":_vm.source.mtime,\"ignore-seconds\":true}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('FileEntryActions',{ref:\"actions\",class:`files-list__row-actions-${_vm.uniqueId}`,attrs:{\"grid-mode\":true,\"opened\":_vm.openedMenu,\"source\":_vm.source},on:{\"update:opened\":function($event){_vm.openedMenu=$event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FileEntryGrid.vue?vue&type=template&id=32a9ff87\"\nimport script from \"./FileEntryGrid.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryGrid.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"file-list-filters\"},[_c('div',{staticClass:\"file-list-filters__filter\",attrs:{\"data-cy-files-filters\":\"\"}},_vm._l((_setup.visualFilters),function(filter){return _c('span',{key:filter.id,ref:\"filterElements\",refInFor:true})}),0),_vm._v(\" \"),(_setup.activeChips.length > 0)?_c('ul',{staticClass:\"file-list-filters__active\",attrs:{\"aria-label\":_setup.t('files', 'Active filters')}},_vm._l((_setup.activeChips),function(chip,index){return _c('li',{key:index},[_c(_setup.NcChip,{attrs:{\"aria-label-close\":_setup.t('files', 'Remove filter'),\"icon-svg\":chip.icon,\"text\":chip.text},on:{\"close\":chip.onclick},scopedSlots:_vm._u([(chip.user)?{key:\"icon\",fn:function(){return [_c(_setup.NcAvatar,{attrs:{\"disable-menu\":\"\",\"show-user-status\":false,\"size\":24,\"user\":chip.user}})]},proxy:true}:null],null,true)})],1)}),0):_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-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.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-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=style&index=0&id=bd0c8440&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=style&index=0&id=bd0c8440&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileListFilters.vue?vue&type=template&id=bd0c8440&scoped=true\"\nimport script from \"./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FileListFilters.vue?vue&type=style&index=0&id=bd0c8440&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 \"bd0c8440\",\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-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.enabled),expression:\"enabled\"}],class:`files-list__header-${_vm.header.id}`},[_c('span',{ref:\"mount\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FilesListHeader.vue?vue&type=template&id=33e2173e\"\nimport script from \"./FilesListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListHeader.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('th',{staticClass:\"files-list__row-checkbox\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('files', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\"},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.summary))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-size\"},[_c('span',[_vm._v(_vm._s(_vm.totalSize))])]):_vm._e(),_vm._v(\" \"),(_vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-mtime\"}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column)},[_c('span',[_vm._v(_vm._s(column.summary?.(_vm.nodes, _vm.currentView)))])])})],2)\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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=style&index=0&id=5103b354&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=style&index=0&id=5103b354&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableFooter.vue?vue&type=template&id=5103b354&scoped=true\"\nimport script from \"./FilesListTableFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableFooter.vue?vue&type=style&index=0&id=5103b354&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 \"5103b354\",\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('tr',{staticClass:\"files-list__row-head\"},[_c('th',{staticClass:\"files-list__column files-list__row-checkbox\",on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.resetSelection.apply(null, arguments)}}},[_c('NcCheckboxRadioSwitch',_vm._b({attrs:{\"data-cy-files-list-selection-checkbox\":\"\"},on:{\"update:checked\":_vm.onToggleAll}},'NcCheckboxRadioSwitch',_vm.selectAllBind,false))],1),_vm._v(\" \"),_c('th',{staticClass:\"files-list__column files-list__row-name files-list__column--sortable\",attrs:{\"aria-sort\":_vm.ariaSortForMode('basename')}},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Name'),\"mode\":\"basename\"}})],1),_vm._v(\" \"),_c('th',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-size\",class:{ 'files-list__column--sortable': _vm.isSizeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('size')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Size'),\"mode\":\"size\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.isMtimeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-mtime\",class:{ 'files-list__column--sortable': _vm.isMtimeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('mtime')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Modified'),\"mode\":\"mtime\"}})],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column),attrs:{\"aria-sort\":_vm.ariaSortForMode(column.id)}},[(!!column.sort)?_c('FilesListTableHeaderButton',{attrs:{\"name\":column.title,\"mode\":column.id}}):_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(column.title)+\"\\n\\t\\t\")])],1)})],2)\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 Vue from 'vue';\nimport { mapState } from 'pinia';\nimport { useViewConfigStore } from '../store/viewConfig';\nimport { useNavigation } from '../composables/useNavigation';\nexport default Vue.extend({\n setup() {\n const { currentView } = useNavigation();\n return {\n currentView,\n };\n },\n computed: {\n ...mapState(useViewConfigStore, ['getConfig', 'setSortingBy', 'toggleSortingDirection']),\n /**\n * Get the sorting mode for the current view\n */\n sortingMode() {\n return this.getConfig(this.currentView.id)?.sorting_mode\n || this.currentView?.defaultSortKey\n || 'basename';\n },\n /**\n * Get the sorting direction for the current view\n */\n isAscSorting() {\n const sortingDirection = this.getConfig(this.currentView.id)?.sorting_direction;\n return sortingDirection !== 'desc';\n },\n },\n methods: {\n toggleSortBy(key) {\n // If we're already sorting by this key, flip the direction\n if (this.sortingMode === key) {\n this.toggleSortingDirection(this.currentView.id);\n return;\n }\n // else sort ASC by this new key\n this.setSortingBy(key, this.currentView.id);\n },\n },\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcButton',{class:['files-list__column-sort-button', {\n\t\t'files-list__column-sort-button--active': _vm.sortingMode === _vm.mode,\n\t\t'files-list__column-sort-button--size': _vm.sortingMode === 'size',\n\t}],attrs:{\"alignment\":_vm.mode === 'size' ? 'end' : 'start-reverse',\"type\":\"tertiary\",\"title\":_vm.name},on:{\"click\":function($event){return _vm.toggleSortBy(_vm.mode)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.sortingMode !== _vm.mode || _vm.isAscSorting)?_c('MenuUp',{staticClass:\"files-list__column-sort-button-icon\"}):_c('MenuDown',{staticClass:\"files-list__column-sort-button-icon\"})]},proxy:true}])},[_vm._v(\" \"),_c('span',{staticClass:\"files-list__column-sort-button-text\"},[_vm._v(_vm._s(_vm.name))])])\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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=6d7680f0&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=6d7680f0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeaderButton.vue?vue&type=template&id=6d7680f0&scoped=true\"\nimport script from \"./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=6d7680f0&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 \"6d7680f0\",\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-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=style&index=0&id=2790ede2&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=style&index=0&id=2790ede2&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeader.vue?vue&type=template&id=2790ede2&scoped=true\"\nimport script from \"./FilesListTableHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeader.vue?vue&type=style&index=0&id=2790ede2&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 \"2790ede2\",\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:\"files-list__column files-list__row-actions-batch\",attrs:{\"data-cy-files-list-selection-actions\":\"\"}},[_c('NcActions',{ref:\"actionsMenu\",attrs:{\"container\":\"#app-content-vue\",\"disabled\":!!_vm.loading || _vm.areSomeNodesLoading,\"force-name\":true,\"inline\":_vm.enabledInlineActions.length,\"menu-name\":_vm.enabledInlineActions.length <= 1 ? _vm.t('files', 'Actions') : null,\"open\":_vm.openedMenu},on:{\"update:open\":function($event){_vm.openedMenu=$event},\"close\":function($event){_vm.openedSubmenu = null}}},[_vm._l((_vm.enabledMenuActions),function(action){return _c('NcActionButton',{key:action.id,ref:`action-batch-${action.id}`,refInFor:true,class:{\n\t\t\t\t[`files-list__row-actions-batch-${action.id}`]: true,\n\t\t\t\t[`files-list__row-actions-batch--menu`]: _vm.isValidMenu(action)\n\t\t\t},attrs:{\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-selection-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.displayName(_vm.nodes, _vm.currentView) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"title\":action.title?.(_vm.nodes, _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.nodes, _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(action.displayName(_vm.nodes, _vm.currentView))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-actions-batch-back\",attrs:{\"data-cy-files-list-selection-action\":\"menu-back\"},on:{\"click\":function($event){return _vm.onBackToMenuClick(_vm.openedSubmenu)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowLeftIcon')]},proxy:true}],null,false,3001860362)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Back'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.enabledSubmenuActions[_vm.openedSubmenu?.id]),function(action){return _c('NcActionButton',{key:action.id,staticClass:\"files-list__row-actions-batch--submenu\",class:`files-list__row-actions-batch-${action.id}`,attrs:{\"close-after-click\":\"\",\"data-cy-files-list-selection-action\":action.id,\"aria-label\":action.displayName(_vm.nodes, _vm.currentView) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"title\":action.title?.(_vm.nodes, _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.nodes, _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.displayName(_vm.nodes, _vm.currentView))+\"\\n\\t\\t\\t\")])})]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=22469fbb&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=22469fbb&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeaderActions.vue?vue&type=template&id=22469fbb&scoped=true\"\nimport script from \"./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=22469fbb&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 \"22469fbb\",\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:\"files-list\",class:{ 'files-list--grid': _vm.gridMode },attrs:{\"data-cy-files-list\":\"\"},on:{\"&scroll\":function($event){return _vm.onScroll.apply(null, arguments)}}},[_c('div',{ref:\"before\",staticClass:\"files-list__before\"},[_vm._t(\"before\")],2),_vm._v(\" \"),_c('div',{ref:\"filters\",staticClass:\"files-list__filters\"},[_vm._t(\"filters\")],2),_vm._v(\" \"),(!!_vm.$scopedSlots['header-overlay'])?_c('div',{staticClass:\"files-list__thead-overlay\"},[_vm._t(\"header-overlay\")],2):_vm._e(),_vm._v(\" \"),_c('table',{staticClass:\"files-list__table\",class:{ 'files-list__table--with-thead-overlay': !!_vm.$scopedSlots['header-overlay'] }},[(_vm.caption)?_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.caption)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"files-list__thead\",attrs:{\"data-cy-files-list-thead\":\"\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"files-list__tbody\",style:(_vm.tbodyStyle),attrs:{\"data-cy-files-list-tbody\":\"\"}},_vm._l((_vm.renderedItems),function({key, item},i){return _c(_vm.dataComponent,_vm._b({key:key,tag:\"component\",attrs:{\"source\":item,\"index\":i}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{ref:\"footer\",staticClass:\"files-list__tfoot\",attrs:{\"data-cy-files-list-tfoot\":\"\"}},[_vm._t(\"footer\")],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-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=fed5a918\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('VirtualList',{ref:\"table\",attrs:{\"data-component\":_vm.userConfig.grid_view ? _vm.FileEntryGrid : _vm.FileEntry,\"data-key\":'source',\"data-sources\":_vm.nodes,\"grid-mode\":_vm.userConfig.grid_view,\"extra-props\":{\n\t\tisMtimeAvailable: _vm.isMtimeAvailable,\n\t\tisSizeAvailable: _vm.isSizeAvailable,\n\t\tnodes: _vm.nodes,\n\t},\"scroll-to-index\":_vm.scrollToIndex,\"caption\":_vm.caption},scopedSlots:_vm._u([{key:\"filters\",fn:function(){return [_c('FileListFilters')]},proxy:true},(!_vm.isNoneSelected)?{key:\"header-overlay\",fn:function(){return [_c('span',{staticClass:\"files-list__selected\"},[_vm._v(_vm._s(_vm.t('files', '{count} selected', { count: _vm.selectedNodes.length })))]),_vm._v(\" \"),_c('FilesListTableHeaderActions',{attrs:{\"current-view\":_vm.currentView,\"selected-nodes\":_vm.selectedNodes}})]},proxy:true}:null,{key:\"before\",fn:function(){return _vm._l((_vm.sortedHeaders),function(header){return _c('FilesListHeader',{key:header.id,attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"header\":header}})})},proxy:true},{key:\"header\",fn:function(){return [_c('FilesListTableHeader',{ref:\"thead\",attrs:{\"files-list-width\":_vm.fileListWidth,\"is-mtime-available\":_vm.isMtimeAvailable,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('FilesListTableFooter',{attrs:{\"current-view\":_vm.currentView,\"files-list-width\":_vm.fileListWidth,\"is-mtime-available\":_vm.isMtimeAvailable,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes,\"summary\":_vm.summary}})]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=0&id=fb65796a&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=0&id=fb65796a&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=1&id=fb65796a&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=1&id=fb65796a&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListVirtual.vue?vue&type=template&id=fb65796a&scoped=true\"\nimport script from \"./FilesListVirtual.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListVirtual.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListVirtual.vue?vue&type=style&index=0&id=fb65796a&prod&scoped=true&lang=scss\"\nimport style1 from \"./FilesListVirtual.vue?vue&type=style&index=1&id=fb65796a&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 \"fb65796a\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowDown.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon tray-arrow-down-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TrayArrowDownIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./TrayArrowDown.vue?vue&type=template&id=5dbf2618\"\nimport script from \"./TrayArrowDown.vue?vue&type=script&lang=js\"\nexport * from \"./TrayArrowDown.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-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\":\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z\"}},[(_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-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dragover),expression:\"dragover\"}],staticClass:\"files-list__drag-drop-notice\",attrs:{\"data-cy-files-drag-drop-area\":\"\"},on:{\"drop\":_vm.onDrop}},[_c('div',{staticClass:\"files-list__drag-drop-notice-wrapper\"},[(_vm.canUpload && !_vm.isQuotaExceeded)?[_c('TrayArrowDownIcon',{attrs:{\"size\":48}}),_vm._v(\" \"),_c('h3',{staticClass:\"files-list-drag-drop-notice__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Drag and drop files here to upload'))+\"\\n\\t\\t\\t\")])]:[_c('h3',{staticClass:\"files-list-drag-drop-notice__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.cantUploadLabel)+\"\\n\\t\\t\\t\")])]],2)])\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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=style&index=0&id=4959a5b4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=style&index=0&id=4959a5b4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DragAndDropNotice.vue?vue&type=template&id=4959a5b4&scoped=true\"\nimport script from \"./DragAndDropNotice.vue?vue&type=script&lang=ts\"\nexport * from \"./DragAndDropNotice.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DragAndDropNotice.vue?vue&type=style&index=0&id=4959a5b4&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 \"4959a5b4\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { t } from '@nextcloud/l10n';\n/**\n * Whether error is a WebDAVClientError\n * @param error - Any exception\n * @return {boolean} - Whether error is a WebDAVClientError\n */\nfunction isWebDAVClientError(error) {\n return error instanceof Error && 'status' in error && 'response' in error;\n}\n/**\n * Get a localized error message from webdav request\n * @param error - An exception from webdav request\n * @return {string} Localized error message for end user\n */\nexport function humanizeWebDAVError(error) {\n if (error instanceof Error) {\n if (isWebDAVClientError(error)) {\n const status = error.status || error.response?.status || 0;\n if ([400, 404, 405].includes(status)) {\n return t('files', 'Folder not found');\n }\n else if (status === 403) {\n return t('files', 'This operation is forbidden');\n }\n else if (status === 500) {\n return t('files', 'This directory is unavailable, please check the logs or contact the administrator');\n }\n else if (status === 503) {\n return t('files', 'Storage is temporarily not available');\n }\n }\n return t('files', 'Unexpected error: {error}', { error: error.message });\n }\n return t('files', 'Unknown error');\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=693703cc&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=693703cc&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesList.vue?vue&type=template&id=693703cc&scoped=true\"\nimport script from \"./FilesList.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesList.vue?vue&type=style&index=0&id=693703cc&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 \"693703cc\",\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-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesApp.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesApp.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FilesApp.vue?vue&type=template&id=43ffc6ca\"\nimport script from \"./FilesApp.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesApp.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { generateUrl } from '@nextcloud/router';\nimport queryString from 'query-string';\nimport Router, { isNavigationFailure, NavigationFailureType } from 'vue-router';\nimport Vue from 'vue';\nimport logger from '../logger';\nVue.use(Router);\n// Prevent router from throwing errors when we're already on the page we're trying to go to\nconst originalPush = Router.prototype.push;\nRouter.prototype.push = (function (...args) {\n if (args.length > 1) {\n return originalPush.call(this, ...args);\n }\n return originalPush.call(this, args[0]).catch(ignoreDuplicateNavigation);\n});\nconst originalReplace = Router.prototype.replace;\nRouter.prototype.replace = (function (...args) {\n if (args.length > 1) {\n return originalReplace.call(this, ...args);\n }\n return originalReplace.call(this, args[0]).catch(ignoreDuplicateNavigation);\n});\n/**\n * Ignore duplicated-navigation error but forward real exceptions\n * @param error The thrown error\n */\nfunction ignoreDuplicateNavigation(error) {\n if (isNavigationFailure(error, NavigationFailureType.duplicated)) {\n logger.debug('Ignoring duplicated navigation from vue-router', { error });\n }\n else {\n throw error;\n }\n}\nconst router = new Router({\n mode: 'history',\n // if index.php is in the url AND we got this far, then it's working:\n // let's keep using index.php in the url\n base: generateUrl('/apps/files'),\n linkActiveClass: 'active',\n routes: [\n {\n path: '/',\n // Pretending we're using the default view\n redirect: { name: 'filelist', params: { view: 'files' } },\n },\n {\n path: '/:view/:fileid(\\\\d+)?',\n name: 'filelist',\n props: true,\n },\n ],\n // Custom stringifyQuery to prevent encoding of slashes in the url\n stringifyQuery(query) {\n const result = queryString.stringify(query).replace(/%2F/gmi, '/');\n return result ? ('?' + result) : '';\n },\n});\nexport default router;\n","export default class RouterService {\n // typescript compiles this to `#router` to make it private even in JS,\n // but in TS it needs to be called without the visibility specifier\n router;\n constructor(router) {\n this.router = router;\n }\n get name() {\n return this.router.currentRoute.name;\n }\n get query() {\n return this.router.currentRoute.query || {};\n }\n get params() {\n return this.router.currentRoute.params || {};\n }\n /**\n * This is a protected getter only for internal use\n * @private\n */\n get _router() {\n return this.router;\n }\n /**\n * Trigger a route change on the files app\n *\n * @param path the url path, eg: '/trashbin?dir=/Deleted'\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goTo(path, replace = false) {\n return this.router.push({\n path,\n replace,\n });\n }\n /**\n * Trigger a route change on the files App\n *\n * @param name the route name\n * @param params the route parameters\n * @param query the url query parameters\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goToRoute(name, params, query, replace) {\n return this.router.push({\n name,\n query,\n params,\n replace,\n });\n }\n}\n","import { getCSPNonce } from '@nextcloud/auth';\nimport { PiniaVuePlugin } from 'pinia';\nimport Vue from 'vue';\nimport { getPinia } from './store/index.ts';\nimport { registerHotkeys } from './services/HotKeysService.ts';\nimport FilesApp from './FilesApp.vue';\nimport router from './router/router';\nimport RouterService from './services/RouterService';\nimport SettingsModel from './models/Setting.js';\nimport SettingsService from './services/Settings.js';\n__webpack_nonce__ = getCSPNonce();\n// Init private and public Files namespace\nwindow.OCA.Files = window.OCA.Files ?? {};\nwindow.OCP.Files = window.OCP.Files ?? {};\n// Expose router\nif (!window.OCP.Files.Router) {\n const Router = new RouterService(router);\n Object.assign(window.OCP.Files, { Router });\n}\n// Init Pinia store\nVue.use(PiniaVuePlugin);\n// Init HotKeys AFTER pinia is set up\nregisterHotkeys();\n// Init Files App Settings Service\nconst Settings = new SettingsService();\nObject.assign(window.OCA.Files, { Settings });\nObject.assign(window.OCA.Files.Settings, { Setting: SettingsModel });\nconst FilesAppVue = Vue.extend(FilesApp);\nnew FilesAppVue({\n router: window.OCP.Files.Router._router,\n pinia: getPinia(),\n}).$mount('#content');\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { dirname } from 'path';\nimport { useHotKey } from '@nextcloud/vue/dist/Composables/useHotKey.js';\nimport { action as deleteAction } from '../actions/deleteAction.ts';\nimport { action as favoriteAction } from '../actions/favoriteAction.ts';\nimport { action as renameAction } from '../actions/renameAction.ts';\nimport { action as sidebarAction } from '../actions/sidebarAction.ts';\nimport { executeAction } from '../utils/actionUtils.ts';\nimport { useUserConfigStore } from '../store/userconfig.ts';\nimport logger from '../logger.ts';\n/**\n * This register the hotkeys for the Files app.\n * As much as possible, we try to have all the hotkeys in one place.\n * Please make sure to add tests for the hotkeys after adding a new one.\n */\nexport const registerHotkeys = function () {\n // d opens the sidebar\n useHotKey('d', () => executeAction(sidebarAction), {\n stop: true,\n prevent: true,\n });\n // F2 renames the file\n useHotKey('F2', () => executeAction(renameAction), {\n stop: true,\n prevent: true,\n });\n // s toggle favorite\n useHotKey('s', () => executeAction(favoriteAction), {\n stop: true,\n prevent: true,\n });\n // Delete deletes the file\n useHotKey('Delete', () => executeAction(deleteAction), {\n stop: true,\n prevent: true,\n });\n // alt+up go to parent directory\n useHotKey('ArrowUp', goToParentDir, {\n stop: true,\n prevent: true,\n alt: true,\n });\n // v toggle grid view\n useHotKey('v', toggleGridView, {\n stop: true,\n prevent: true,\n });\n logger.debug('Hotkeys registered');\n};\nconst goToParentDir = function () {\n const params = window.OCP.Files.Router?.params || {};\n const query = window.OCP.Files.Router?.query || {};\n const currentDir = (query?.dir || '/');\n const parentDir = dirname(currentDir);\n logger.debug('Navigating to parent directory', { parentDir });\n window.OCP.Files.Router.goToRoute(null, { ...params }, { ...query, dir: parentDir });\n};\nconst toggleGridView = function () {\n const userConfigStore = useUserConfigStore();\n const value = userConfigStore?.userConfig?.grid_view;\n logger.debug('Toggling grid view', { old: value, new: !value });\n userConfigStore.update('grid_view', !value);\n};\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class Settings {\n\n\t_settings\n\n\tconstructor() {\n\t\tthis._settings = []\n\t\tconsole.debug('OCA.Files.Settings initialized')\n\t}\n\n\t/**\n\t * Register a new setting\n\t *\n\t * @since 19.0.0\n\t * @param {OCA.Files.Settings.Setting} view element to add to settings\n\t * @return {boolean} whether registering was successful\n\t */\n\tregister(view) {\n\t\tif (this._settings.filter(e => e.name === view.name).length > 0) {\n\t\t\tconsole.error('A setting with the same name is already registered')\n\t\t\treturn false\n\t\t}\n\t\tthis._settings.push(view)\n\t\treturn true\n\t}\n\n\t/**\n\t * All settings elements\n\t *\n\t * @return {OCA.Files.Settings.Setting[]} All currently registered settings\n\t */\n\tget settings() {\n\t\treturn this._settings\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class Setting {\n\n\t_close\n\t_el\n\t_name\n\t_open\n\n\t/**\n\t * Create a new files app setting\n\t *\n\t * @since 19.0.0\n\t * @param {string} name the name of this setting\n\t * @param {object} component the component\n\t * @param {Function} component.el function that returns an unmounted dom element to be added\n\t * @param {Function} [component.open] callback for when setting is added\n\t * @param {Function} [component.close] callback for when setting is closed\n\t */\n\tconstructor(name, { el, open, close }) {\n\t\tthis._name = name\n\t\tthis._el = el\n\t\tthis._open = open\n\t\tthis._close = close\n\n\t\tif (typeof this._open !== 'function') {\n\t\t\tthis._open = () => {}\n\t\t}\n\n\t\tif (typeof this._close !== 'function') {\n\t\t\tthis._close = () => {}\n\t\t}\n\t}\n\n\tget name() {\n\t\treturn this._name\n\t}\n\n\tget el() {\n\t\treturn this._el\n\t}\n\n\tget open() {\n\t\treturn this._open\n\t}\n\n\tget close() {\n\t\treturn this._close\n\t}\n\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__breadcrumbs[data-v-04abfffa]{flex:1 1 100% !important;width:100%;height:100%;margin-block:0;margin-inline:10px;min-width:0}.files-list__breadcrumbs[data-v-04abfffa] a{cursor:pointer !important}.files-list__breadcrumbs--with-progress[data-v-04abfffa]{flex-direction:column !important;align-items:flex-start !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/BreadCrumbs.vue\"],\"names\":[],\"mappings\":\"AACA,0CAEC,wBAAA,CACA,UAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,WAAA,CAGC,6CACC,yBAAA,CAIF,yDACC,gCAAA,CACA,iCAAA\",\"sourcesContent\":[\"\\n.files-list__breadcrumbs {\\n\\t// Take as much space as possible\\n\\tflex: 1 1 100% !important;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tmargin-block: 0;\\n\\tmargin-inline: 10px;\\n\\tmin-width: 0;\\n\\n\\t:deep() {\\n\\t\\ta {\\n\\t\\t\\tcursor: pointer !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&--with-progress {\\n\\t\\tflex-direction: column !important;\\n\\t\\talign-items: flex-start !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__drag-drop-notice[data-v-4959a5b4]{display:flex;align-items:center;justify-content:center;width:100%;min-height:113px;margin:0;user-select:none;color:var(--color-text-maxcontrast);background-color:var(--color-main-background);border-color:#000}.files-list__drag-drop-notice h3[data-v-4959a5b4]{margin-inline-start:16px;color:inherit}.files-list__drag-drop-notice-wrapper[data-v-4959a5b4]{display:flex;align-items:center;justify-content:center;height:15vh;max-height:70%;padding:0 5vw;border:2px var(--color-border-dark) dashed;border-radius:var(--border-radius-large)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/DragAndDropNotice.vue\"],\"names\":[],\"mappings\":\"AACA,+CACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CAEA,gBAAA,CACA,QAAA,CACA,gBAAA,CACA,mCAAA,CACA,6CAAA,CACA,iBAAA,CAEA,kDACC,wBAAA,CACA,aAAA,CAGD,uDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,aAAA,CACA,0CAAA,CACA,wCAAA\",\"sourcesContent\":[\"\\n.files-list__drag-drop-notice {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\twidth: 100%;\\n\\t// Breadcrumbs height + row thead height\\n\\tmin-height: calc(58px + 55px);\\n\\tmargin: 0;\\n\\tuser-select: none;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tbackground-color: var(--color-main-background);\\n\\tborder-color: black;\\n\\n\\th3 {\\n\\t\\tmargin-inline-start: 16px;\\n\\t\\tcolor: inherit;\\n\\t}\\n\\n\\t&-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\theight: 15vh;\\n\\t\\tmax-height: 70%;\\n\\t\\tpadding: 0 5vw;\\n\\t\\tborder: 2px var(--color-border-dark) dashed;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list-drag-image{position:absolute;top:-9999px;inset-inline-start:-9999px;display:flex;overflow:hidden;align-items:center;height:44px;padding:6px 12px;background:var(--color-main-background)}.files-list-drag-image__icon,.files-list-drag-image .files-list__row-icon{display:flex;overflow:hidden;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--border-radius)}.files-list-drag-image__icon{overflow:visible;margin-inline-end:12px}.files-list-drag-image__icon img{max-width:100%;max-height:100%}.files-list-drag-image__icon .material-design-icon{color:var(--color-text-maxcontrast)}.files-list-drag-image__icon .material-design-icon.folder-icon{color:var(--color-primary-element)}.files-list-drag-image__icon>span{display:flex}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon{margin-top:6px;margin-inline-start:-26px}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon+.files-list__row-icon{margin-top:12px}.files-list-drag-image__icon>span:not(:empty)+*{display:none}.files-list-drag-image__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/DragAndDropPreview.vue\"],\"names\":[],\"mappings\":\"AAIA,uBACC,iBAAA,CACA,WAAA,CACA,0BAAA,CACA,YAAA,CACA,eAAA,CACA,kBAAA,CACA,WAAA,CACA,gBAAA,CACA,uCAAA,CAEA,0EAEC,YAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,kCAAA,CAGD,6BACC,gBAAA,CACA,sBAAA,CAEA,iCACC,cAAA,CACA,eAAA,CAGD,mDACC,mCAAA,CACA,+DACC,kCAAA,CAKF,kCACC,YAAA,CAGA,8EACC,cA9CU,CA+CV,yBAAA,CACA,oGACC,eAAA,CAKF,gDACC,YAAA,CAKH,6BACC,eAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n$size: 32px;\\n$stack-shift: 6px;\\n\\n.files-list-drag-image {\\n\\tposition: absolute;\\n\\ttop: -9999px;\\n\\tinset-inline-start: -9999px;\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\tpadding: 6px 12px;\\n\\tbackground: var(--color-main-background);\\n\\n\\t&__icon,\\n\\t.files-list__row-icon {\\n\\t\\tdisplay: flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\toverflow: visible;\\n\\t\\tmargin-inline-end: 12px;\\n\\n\\t\\timg {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tmax-height: 100%;\\n\\t\\t}\\n\\n\\t\\t.material-design-icon {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t&.folder-icon {\\n\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Previews container\\n\\t\\t> span {\\n\\t\\t\\tdisplay: flex;\\n\\n\\t\\t\\t// Stack effect if more than one element\\n\\t\\t\\t.files-list__row-icon + .files-list__row-icon {\\n\\t\\t\\t\\tmargin-top: $stack-shift;\\n\\t\\t\\t\\tmargin-inline-start: $stack-shift - $size;\\n\\t\\t\\t\\t& + .files-list__row-icon {\\n\\t\\t\\t\\t\\tmargin-top: $stack-shift * 2;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t// If we have manually clone the preview,\\n\\t\\t\\t// let's hide any fallback icons\\n\\t\\t\\t&:not(:empty) + * {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__name {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.favorite-marker-icon[data-v-f2d0cf6e]{color:var(--color-favorite);min-width:unset !important;min-height:unset !important}.favorite-marker-icon[data-v-f2d0cf6e] svg{width:26px !important;height:26px !important;max-width:unset !important;max-height:unset !important}.favorite-marker-icon[data-v-f2d0cf6e] svg path{stroke:var(--color-main-background);stroke-width:8px;stroke-linejoin:round;paint-order:stroke}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FavoriteIcon.vue\"],\"names\":[],\"mappings\":\"AACA,uCACC,2BAAA,CAEA,0BAAA,CACG,2BAAA,CAGF,4CAEC,qBAAA,CACA,sBAAA,CAGA,0BAAA,CACA,2BAAA,CAGA,iDACC,mCAAA,CACA,gBAAA,CACA,qBAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.favorite-marker-icon {\\n\\tcolor: var(--color-favorite);\\n\\t// Override NcIconSvgWrapper defaults (clickable area)\\n\\tmin-width: unset !important;\\n min-height: unset !important;\\n\\n\\t:deep() {\\n\\t\\tsvg {\\n\\t\\t\\t// We added a stroke for a11y so we must increase the size to include the stroke\\n\\t\\t\\twidth: 26px !important;\\n\\t\\t\\theight: 26px !important;\\n\\n\\t\\t\\t// Override NcIconSvgWrapper defaults of 20px\\n\\t\\t\\tmax-width: unset !important;\\n\\t\\t\\tmax-height: unset !important;\\n\\n\\t\\t\\t// Sow a border around the icon for better contrast\\n\\t\\t\\tpath {\\n\\t\\t\\t\\tstroke: var(--color-main-background);\\n\\t\\t\\t\\tstroke-width: 8px;\\n\\t\\t\\t\\tstroke-linejoin: round;\\n\\t\\t\\t\\tpaint-order: stroke;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `main.app-content[style*=mouse-pos-x] .v-popper__popper{transform:translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper[data-popper-placement=top]{transform:translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper .v-popper__arrow-container{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue\"],\"names\":[],\"mappings\":\"AAGA,uDACC,6EAAA,CAGA,kFAEC,iGAAA,CAGD,kFACC,YAAA\",\"sourcesContent\":[\"\\n// Allow right click to define the position of the menu\\n// only if defined\\nmain.app-content[style*=\\\"mouse-pos-x\\\"] .v-popper__popper {\\n\\ttransform: translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important;\\n\\n\\t// If the menu is too close to the bottom, we move it up\\n\\t&[data-popper-placement=\\\"top\\\"] {\\n\\t\\t// 34px added to align with the top of the cursor\\n\\t\\ttransform: translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important;\\n\\t}\\n\\t// Hide arrow if floating\\n\\t.v-popper__arrow-container {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `[data-v-5ba570cc] .button-vue--icon-and-text .button-vue__text{color:var(--color-primary-element)}[data-v-5ba570cc] .button-vue--icon-and-text .button-vue__icon{color:var(--color-primary-element)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue\"],\"names\":[],\"mappings\":\"AAEC,+DACC,kCAAA,CAED,+DACC,kCAAA\",\"sourcesContent\":[\"\\n:deep(.button-vue--icon-and-text, .files-list__row-action-sharing-status) {\\n\\t.button-vue__text {\\n\\t\\tcolor: var(--color-primary-element);\\n\\t}\\n\\t.button-vue__icon {\\n\\t\\tcolor: var(--color-primary-element);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `button.files-list__row-name-link[data-v-c8581214]{background-color:unset;border:none;font-weight:normal}button.files-list__row-name-link[data-v-c8581214]:active{background-color:unset !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryName.vue\"],\"names\":[],\"mappings\":\"AACA,kDACC,sBAAA,CACA,WAAA,CACA,kBAAA,CAEA,yDAEC,iCAAA\",\"sourcesContent\":[\"\\nbutton.files-list__row-name-link {\\n\\tbackground-color: unset;\\n\\tborder: none;\\n\\tfont-weight: normal;\\n\\n\\t&:active {\\n\\t\\t// No active styles - handled by the row entry\\n\\t\\tbackground-color: unset !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.file-list-filters[data-v-bd0c8440]{display:flex;flex-direction:column;gap:var(--default-grid-baseline);height:100%;width:100%}.file-list-filters__filter[data-v-bd0c8440]{display:flex;align-items:start;justify-content:start;gap:calc(var(--default-grid-baseline, 4px)*2)}.file-list-filters__filter>*[data-v-bd0c8440]{flex:0 1 fit-content}.file-list-filters__active[data-v-bd0c8440]{display:flex;flex-direction:row;gap:calc(var(--default-grid-baseline, 4px)*2)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileListFilters.vue\"],\"names\":[],\"mappings\":\"AACA,oCACC,YAAA,CACA,qBAAA,CACA,gCAAA,CACA,WAAA,CACA,UAAA,CAEA,4CACC,YAAA,CACA,iBAAA,CACA,qBAAA,CACA,6CAAA,CAEA,8CACC,oBAAA,CAIF,4CACC,YAAA,CACA,kBAAA,CACA,6CAAA\",\"sourcesContent\":[\"\\n.file-list-filters {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: var(--default-grid-baseline);\\n\\theight: 100%;\\n\\twidth: 100%;\\n\\n\\t&__filter {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: start;\\n\\t\\tjustify-content: start;\\n\\t\\tgap: calc(var(--default-grid-baseline, 4px) * 2);\\n\\n\\t\\t> * {\\n\\t\\t\\tflex: 0 1 fit-content;\\n\\t\\t}\\n\\t}\\n\\n\\t&__active {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tgap: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `tr[data-v-5103b354]{margin-bottom:var(--body-container-margin);border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}tr td[data-v-5103b354]{user-select:none;color:var(--color-text-maxcontrast) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableFooter.vue\"],\"names\":[],\"mappings\":\"AAEA,oBACC,0CAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAEA,uBACC,gBAAA,CAEA,8CAAA\",\"sourcesContent\":[\"\\n// Scoped row\\ntr {\\n\\tmargin-bottom: var(--body-container-margin);\\n\\tborder-top: 1px solid var(--color-border);\\n\\t// Prevent hover effect on the whole row\\n\\tbackground-color: transparent !important;\\n\\tborder-bottom: none !important;\\n\\n\\ttd {\\n\\t\\tuser-select: none;\\n\\t\\t// Make sure the cell colors don't apply to column headers\\n\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__column[data-v-2790ede2]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-2790ede2]{cursor:pointer}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeader.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA\",\"sourcesContent\":[\"\\n.files-list__column {\\n\\tuser-select: none;\\n\\t// Make sure the cell colors don't apply to column headers\\n\\tcolor: var(--color-text-maxcontrast) !important;\\n\\n\\t&--sortable {\\n\\t\\tcursor: pointer;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__row-actions-batch[data-v-22469fbb]{flex:1 1 100% !important;max-width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeaderActions.vue\"],\"names\":[],\"mappings\":\"AACA,gDACC,wBAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.files-list__row-actions-batch {\\n\\tflex: 1 1 100% !important;\\n\\tmax-width: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__column-sort-button[data-v-6d7680f0]{margin:0 calc(var(--button-padding, var(--cell-margin))*-1);min-width:calc(100% - 3*var(--cell-margin)) !important}.files-list__column-sort-button-text[data-v-6d7680f0]{color:var(--color-text-maxcontrast);font-weight:normal}.files-list__column-sort-button-icon[data-v-6d7680f0]{color:var(--color-text-maxcontrast);opacity:0;transition:opacity var(--animation-quick);inset-inline-start:-10px}.files-list__column-sort-button--size .files-list__column-sort-button-icon[data-v-6d7680f0]{inset-inline-start:10px}.files-list__column-sort-button--active .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:hover .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:focus .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:active .files-list__column-sort-button-icon[data-v-6d7680f0]{opacity:1}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeaderButton.vue\"],\"names\":[],\"mappings\":\"AACA,iDAEC,2DAAA,CACA,sDAAA,CAEA,sDACC,mCAAA,CACA,kBAAA,CAGD,sDACC,mCAAA,CACA,SAAA,CACA,yCAAA,CACA,wBAAA,CAGD,4FACC,uBAAA,CAGD,mXAIC,SAAA\",\"sourcesContent\":[\"\\n.files-list__column-sort-button {\\n\\t// Compensate for cells margin\\n\\tmargin: 0 calc(var(--button-padding, var(--cell-margin)) * -1);\\n\\tmin-width: calc(100% - 3 * var(--cell-margin))!important;\\n\\n\\t&-text {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tfont-weight: normal;\\n\\t}\\n\\n\\t&-icon {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\topacity: 0;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\tinset-inline-start: -10px;\\n\\t}\\n\\n\\t&--size &-icon {\\n\\t\\tinset-inline-start: 10px;\\n\\t}\\n\\n\\t&--active &-icon,\\n\\t&:hover &-icon,\\n\\t&:focus &-icon,\\n\\t&:active &-icon {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list[data-v-fb65796a]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: var(--default-clickable-area);--icon-preview-size: 32px;--fixed-block-start-position: var(--default-clickable-area);overflow:auto;height:100%;will-change:scroll-position}.files-list[data-v-fb65796a]:has(.file-list-filters__active){--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small))}.files-list[data-v-fb65796a] tbody{will-change:padding;contain:layout paint style;display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-fb65796a] tbody tr{contain:strict}.files-list[data-v-fb65796a] tbody tr:hover,.files-list[data-v-fb65796a] tbody tr:focus{background-color:var(--color-background-dark)}.files-list[data-v-fb65796a] .files-list__before{display:flex;flex-direction:column}.files-list[data-v-fb65796a] .files-list__selected{padding-inline-end:12px;white-space:nowrap}.files-list[data-v-fb65796a] .files-list__table{display:block}.files-list[data-v-fb65796a] .files-list__table.files-list__table--with-thead-overlay{margin-block-start:calc(-1*var(--row-height))}.files-list[data-v-fb65796a] .files-list__filters{position:sticky;top:0;background-color:var(--color-main-background);z-index:10;padding-inline:var(--row-height) var(--default-grid-baseline, 4px);height:var(--fixed-block-start-position);width:100%}.files-list[data-v-fb65796a] .files-list__thead-overlay{position:sticky;top:var(--fixed-block-start-position);margin-inline-start:var(--row-height);z-index:20;display:flex;align-items:center;background-color:var(--color-main-background);border-block-end:1px solid var(--color-border);height:var(--row-height)}.files-list[data-v-fb65796a] .files-list__thead,.files-list[data-v-fb65796a] .files-list__tfoot{display:flex;flex-direction:column;width:100%;background-color:var(--color-main-background)}.files-list[data-v-fb65796a] .files-list__thead{position:sticky;z-index:10;top:var(--fixed-block-start-position)}.files-list[data-v-fb65796a] tr{position:relative;display:flex;align-items:center;width:100%;border-block-end:1px solid var(--color-border);box-sizing:border-box;user-select:none;height:var(--row-height)}.files-list[data-v-fb65796a] td,.files-list[data-v-fb65796a] th{display:flex;align-items:center;flex:0 0 auto;justify-content:start;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-fb65796a] td span,.files-list[data-v-fb65796a] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-fb65796a] .files-list__row--failed{position:absolute;display:block;top:0;inset-inline:0;bottom:0;opacity:.1;z-index:-1;background:var(--color-error)}.files-list[data-v-fb65796a] .files-list__row-checkbox{justify-content:center}.files-list[data-v-fb65796a] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-fb65796a] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-fb65796a] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-fb65796a] .files-list__row:hover,.files-list[data-v-fb65796a] .files-list__row:focus,.files-list[data-v-fb65796a] .files-list__row:active,.files-list[data-v-fb65796a] .files-list__row--active,.files-list[data-v-fb65796a] .files-list__row--dragover{background-color:var(--color-background-hover);--color-text-maxcontrast: var(--color-main-text)}.files-list[data-v-fb65796a] .files-list__row:hover>*,.files-list[data-v-fb65796a] .files-list__row:focus>*,.files-list[data-v-fb65796a] .files-list__row:active>*,.files-list[data-v-fb65796a] .files-list__row--active>*,.files-list[data-v-fb65796a] .files-list__row--dragover>*{--color-border: var(--color-border-dark)}.files-list[data-v-fb65796a] .files-list__row:hover .favorite-marker-icon svg path,.files-list[data-v-fb65796a] .files-list__row:focus .favorite-marker-icon svg path,.files-list[data-v-fb65796a] .files-list__row:active .favorite-marker-icon svg path,.files-list[data-v-fb65796a] .files-list__row--active .favorite-marker-icon svg path,.files-list[data-v-fb65796a] .files-list__row--dragover .favorite-marker-icon svg path{stroke:var(--color-background-hover)}.files-list[data-v-fb65796a] .files-list__row--dragover *{pointer-events:none}.files-list[data-v-fb65796a] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-inline-end:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-fb65796a] .files-list__row-icon *{cursor:pointer}.files-list[data-v-fb65796a] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-fb65796a] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-fb65796a] .files-list__row-icon>span.folder-icon,.files-list[data-v-fb65796a] .files-list__row-icon>span.folder-open-icon{margin:-3px}.files-list[data-v-fb65796a] .files-list__row-icon>span.folder-icon svg,.files-list[data-v-fb65796a] .files-list__row-icon>span.folder-open-icon svg{width:calc(var(--icon-preview-size) + 6px);height:calc(var(--icon-preview-size) + 6px)}.files-list[data-v-fb65796a] .files-list__row-icon-preview-container{position:relative;overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius)}.files-list[data-v-fb65796a] .files-list__row-icon-blurhash{position:absolute;inset-block-start:0;inset-inline-start:0;height:100%;width:100%;object-fit:cover}.files-list[data-v-fb65796a] .files-list__row-icon-preview{object-fit:contain;object-position:center;height:100%;width:100%}.files-list[data-v-fb65796a] .files-list__row-icon-preview:not(.files-list__row-icon-preview--loaded){background:var(--color-loading-dark)}.files-list[data-v-fb65796a] .files-list__row-icon-favorite{position:absolute;top:0px;inset-inline-end:-10px}.files-list[data-v-fb65796a] .files-list__row-icon-overlay{position:absolute;max-height:calc(var(--icon-preview-size)*.5);max-width:calc(var(--icon-preview-size)*.5);color:var(--color-primary-element-text);margin-block-start:2px}.files-list[data-v-fb65796a] .files-list__row-icon-overlay--file{color:var(--color-main-text);background:var(--color-main-background);border-radius:100%}.files-list[data-v-fb65796a] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-fb65796a] .files-list__row-name button.files-list__row-name-link{display:flex;align-items:center;text-align:start;width:100%;height:100%;min-width:0;margin:0;padding:0}.files-list[data-v-fb65796a] .files-list__row-name button.files-list__row-name-link:focus-visible{outline:none !important}.files-list[data-v-fb65796a] .files-list__row-name button.files-list__row-name-link:focus .files-list__row-name-text{outline:var(--border-width-input-focused) solid var(--color-main-text) !important;border-radius:var(--border-radius-element)}.files-list[data-v-fb65796a] .files-list__row-name button.files-list__row-name-link:focus:not(:focus-visible) .files-list__row-name-text{outline:none !important}.files-list[data-v-fb65796a] .files-list__row-name .files-list__row-name-text{color:var(--color-main-text);padding:var(--default-grid-baseline) calc(2*var(--default-grid-baseline));padding-inline-start:-10px;display:inline-flex}.files-list[data-v-fb65796a] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast);overflow:visible}.files-list[data-v-fb65796a] .files-list__row-rename{width:100%;max-width:600px}.files-list[data-v-fb65796a] .files-list__row-rename input{width:100%;margin-inline-start:-8px;padding:2px 6px;border-width:2px}.files-list[data-v-fb65796a] .files-list__row-rename input:invalid{border-color:var(--color-error);color:red}.files-list[data-v-fb65796a] .files-list__row-actions{width:auto}.files-list[data-v-fb65796a] .files-list__row-actions~td,.files-list[data-v-fb65796a] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-fb65796a] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-fb65796a] .files-list__row-action--inline{margin-inline-end:7px}.files-list[data-v-fb65796a] .files-list__row-mtime,.files-list[data-v-fb65796a] .files-list__row-size{color:var(--color-text-maxcontrast)}.files-list[data-v-fb65796a] .files-list__row-size{width:calc(var(--row-height)*1.5);justify-content:flex-end}.files-list[data-v-fb65796a] .files-list__row-mtime{width:calc(var(--row-height)*2)}.files-list[data-v-fb65796a] .files-list__row-column-custom{width:calc(var(--row-height)*2)}@media screen and (max-width: 512px){.files-list[data-v-fb65796a] .files-list__filters{padding-inline:var(--default-grid-baseline, 4px)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"\\n.files-list {\\n\\t--row-height: 55px;\\n\\t--cell-margin: 14px;\\n\\n\\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\\n\\t--checkbox-size: 24px;\\n\\t--clickable-area: var(--default-clickable-area);\\n\\t--icon-preview-size: 32px;\\n\\n\\t--fixed-block-start-position: var(--default-clickable-area);\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&:has(.file-list-filters__active) {\\n\\t\\t--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small));\\n\\t}\\n\\n\\t& :deep() {\\n\\t\\t// Table head, body and footer\\n\\t\\ttbody {\\n\\t\\t\\twill-change: padding;\\n\\t\\t\\tcontain: layout paint style;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\t// Necessary for virtual scrolling absolute\\n\\t\\t\\tposition: relative;\\n\\n\\t\\t\\t/* Hover effect on tbody lines only */\\n\\t\\t\\ttr {\\n\\t\\t\\t\\tcontain: strict;\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Before table and thead\\n\\t\\t.files-list__before {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t}\\n\\n\\t\\t.files-list__selected {\\n\\t\\t\\tpadding-inline-end: 12px;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t.files-list__table {\\n\\t\\t\\tdisplay: block;\\n\\n\\t\\t\\t&.files-list__table--with-thead-overlay {\\n\\t\\t\\t\\t// Hide the table header below the overlay\\n\\t\\t\\t\\tmargin-block-start: calc(-1 * var(--row-height));\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__filters {\\n\\t\\t\\t// Pinned on top when scrolling above table header\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\t// ensure there is a background to hide the file list on scroll\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\t// fixed the size\\n\\t\\t\\tpadding-inline: var(--row-height) var(--default-grid-baseline, 4px);\\n\\t\\t\\theight: var(--fixed-block-start-position);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t.files-list__thead-overlay {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: var(--fixed-block-start-position);\\n\\t\\t\\t// Save space for a row checkbox\\n\\t\\t\\tmargin-inline-start: var(--row-height);\\n\\t\\t\\t// More than .files-list__thead\\n\\t\\t\\tz-index: 20;\\n\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t// Reuse row styles\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t}\\n\\n\\t\\t.files-list__thead,\\n\\t\\t.files-list__tfoot {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// Table header\\n\\t\\t.files-list__thead {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\ttop: var(--fixed-block-start-position);\\n\\t\\t}\\n\\n\\t\\ttr {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\tuser-select: none;\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t}\\n\\n\\t\\ttd, th {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\tjustify-content: start;\\n\\t\\t\\twidth: var(--row-height);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tborder: none;\\n\\n\\t\\t\\t// Columns should try to add any text\\n\\t\\t\\t// node wrapped in a span. That should help\\n\\t\\t\\t// with the ellipsis on overflow.\\n\\t\\t\\tspan {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row--failed {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tinset-inline: 0;\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\topacity: .1;\\n\\t\\t\\tz-index: -1;\\n\\t\\t\\tbackground: var(--color-error);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-checkbox {\\n\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t.checkbox-radio-switch {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t\\t--icon-size: var(--checkbox-size);\\n\\n\\t\\t\\t\\tlabel.checkbox-radio-switch__label {\\n\\t\\t\\t\\t\\twidth: var(--clickable-area);\\n\\t\\t\\t\\t\\theight: var(--clickable-area);\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.checkbox-radio-switch__icon {\\n\\t\\t\\t\\t\\tmargin: 0 !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row {\\n\\t\\t\\t&:hover, &:focus, &:active, &--active, &--dragover {\\n\\t\\t\\t\\t// WCAG AA compliant\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\t// text-maxcontrast have been designed to pass WCAG AA over\\n\\t\\t\\t\\t// a white background, we need to adjust then.\\n\\t\\t\\t\\t--color-text-maxcontrast: var(--color-main-text);\\n\\t\\t\\t\\t> * {\\n\\t\\t\\t\\t\\t--color-border: var(--color-border-dark);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Hover state of the row should also change the favorite markers background\\n\\t\\t\\t\\t.favorite-marker-icon svg path {\\n\\t\\t\\t\\t\\tstroke: var(--color-background-hover);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--dragover * {\\n\\t\\t\\t\\t// Prevent dropping on row children\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Entry preview or mime icon\\n\\t\\t.files-list__row-icon {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\toverflow: visible;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\t// No shrinking or growing allowed\\n\\t\\t\\tflex: 0 0 var(--icon-preview-size);\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: 100%;\\n\\t\\t\\t// Show same padding as the checkbox right padding for visual balance\\n\\t\\t\\tmargin-inline-end: var(--checkbox-padding);\\n\\t\\t\\tcolor: var(--color-primary-element);\\n\\n\\t\\t\\t// Icon is also clickable\\n\\t\\t\\t* {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > span {\\n\\t\\t\\t\\tjustify-content: flex-start;\\n\\n\\t\\t\\t\\t&:not(.files-list__row-icon-favorite) svg {\\n\\t\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Slightly increase the size of the folder icon\\n\\t\\t\\t\\t&.folder-icon,\\n\\t\\t\\t\\t&.folder-open-icon {\\n\\t\\t\\t\\t\\tmargin: -3px;\\n\\t\\t\\t\\t\\tsvg {\\n\\t\\t\\t\\t\\t\\twidth: calc(var(--icon-preview-size) + 6px);\\n\\t\\t\\t\\t\\t\\theight: calc(var(--icon-preview-size) + 6px);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview-container {\\n\\t\\t\\t\\tposition: relative; // Needed for the blurshash to be positioned correctly\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-blurhash {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tinset-block-start: 0;\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\tobject-fit: cover;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview {\\n\\t\\t\\t\\t// Center and contain the preview\\n\\t\\t\\t\\tobject-fit: contain;\\n\\t\\t\\t\\tobject-position: center;\\n\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t/* Preview not loaded animation effect */\\n\\t\\t\\t\\t&:not(.files-list__row-icon-preview--loaded) {\\n\\t\\t\\t\\t\\tbackground: var(--color-loading-dark);\\n\\t\\t\\t\\t\\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-favorite {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: 0px;\\n\\t\\t\\t\\tinset-inline-end: -10px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// File and folder overlay\\n\\t\\t\\t&-overlay {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tmax-height: calc(var(--icon-preview-size) * 0.5);\\n\\t\\t\\t\\tmax-width: calc(var(--icon-preview-size) * 0.5);\\n\\t\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\t\\t// better alignment with the folder icon\\n\\t\\t\\t\\tmargin-block-start: 2px;\\n\\n\\t\\t\\t\\t// Improve icon contrast with a background for files\\n\\t\\t\\t\\t&--file {\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t\\t\\t\\tborder-radius: 100%;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Entry link\\n\\t\\t.files-list__row-name {\\n\\t\\t\\t// Prevent link from overflowing\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\t// Take as much space as possible\\n\\t\\t\\tflex: 1 1 auto;\\n\\n\\t\\t\\tbutton.files-list__row-name-link {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\ttext-align: start;\\n\\t\\t\\t\\t// Fill cell height and width\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\t// Necessary for flex grow to work\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t\\t// Already added to the inner text, see rule below\\n\\t\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Keyboard indicator a11y\\n\\t\\t\\t\\t&:focus .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: var(--border-width-input-focused) solid var(--color-main-text) !important;\\n\\t\\t\\t\\t\\tborder-radius: var(--border-radius-element);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&:focus:not(:focus-visible) .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-text {\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t// Make some space for the outline\\n\\t\\t\\t\\tpadding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline));\\n\\t\\t\\t\\tpadding-inline-start: -10px;\\n\\t\\t\\t\\t// Align two name and ext\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-ext {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t\\t// always show the extension\\n\\t\\t\\t\\toverflow: visible;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Rename form\\n\\t\\t.files-list__row-rename {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmax-width: 600px;\\n\\t\\t\\tinput {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t// Align with text, 0 - padding - border\\n\\t\\t\\t\\tmargin-inline-start: -8px;\\n\\t\\t\\t\\tpadding: 2px 6px;\\n\\t\\t\\t\\tborder-width: 2px;\\n\\n\\t\\t\\t\\t&:invalid {\\n\\t\\t\\t\\t\\t// Show red border on invalid input\\n\\t\\t\\t\\t\\tborder-color: var(--color-error);\\n\\t\\t\\t\\t\\tcolor: red;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-actions {\\n\\t\\t\\t// take as much space as necessary\\n\\t\\t\\twidth: auto;\\n\\n\\t\\t\\t// Add margin to all cells after the actions\\n\\t\\t\\t& ~ td,\\n\\t\\t\\t& ~ th {\\n\\t\\t\\t\\tmargin: 0 var(--cell-margin);\\n\\t\\t\\t}\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\t.button-vue__text {\\n\\t\\t\\t\\t\\t// Remove bold from default button styling\\n\\t\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-action--inline {\\n\\t\\t\\tmargin-inline-end: 7px;\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mtime,\\n\\t\\t.files-list__row-size {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t\\t.files-list__row-size {\\n\\t\\t\\twidth: calc(var(--row-height) * 1.5);\\n\\t\\t\\t// Right align content/text\\n\\t\\t\\tjustify-content: flex-end;\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mtime {\\n\\t\\t\\twidth: calc(var(--row-height) * 2);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-column-custom {\\n\\t\\t\\twidth: calc(var(--row-height) * 2);\\n\\t\\t}\\n\\t}\\n}\\n\\n@media screen and (max-width: 512px) {\\n\\t.files-list :deep(.files-list__filters) {\\n\\t\\t// Reduce padding on mobile\\n\\t\\tpadding-inline: var(--default-grid-baseline, 4px);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list--grid tbody.files-list__tbody{--item-padding: 16px;--icon-preview-size: 166px;--name-height: 32px;--mtime-height: 16px;--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);--checkbox-padding: 0px;display:grid;grid-template-columns:repeat(auto-fill, var(--row-width));align-content:center;align-items:center;justify-content:space-around;justify-items:center}.files-list--grid tbody.files-list__tbody tr{display:flex;flex-direction:column;width:var(--row-width);height:var(--row-height);border:none;border-radius:var(--border-radius-large);padding:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox{position:absolute;z-index:9;top:calc(var(--item-padding)/2);inset-inline-start:calc(var(--item-padding)/2);overflow:hidden;--checkbox-container-size: 44px;width:var(--checkbox-container-size);height:var(--checkbox-container-size)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox .checkbox-radio-switch__content::after{content:\"\";width:16px;height:16px;position:absolute;inset-inline-start:50%;margin-inline-start:-8px;z-index:-1;background:var(--color-main-background)}.files-list--grid tbody.files-list__tbody .files-list__row-icon-favorite{position:absolute;top:0;inset-inline-end:0;display:flex;align-items:center;justify-content:center;width:var(--clickable-area);height:var(--clickable-area)}.files-list--grid tbody.files-list__tbody .files-list__row-name{display:flex;flex-direction:column;width:var(--icon-preview-size);height:calc(var(--icon-preview-size) + var(--name-height));overflow:visible}.files-list--grid tbody.files-list__tbody .files-list__row-name span.files-list__row-icon{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list--grid tbody.files-list__tbody .files-list__row-name .files-list__row-name-text{margin:0;margin-inline-start:-4px;padding:0px 4px}.files-list--grid tbody.files-list__tbody .files-list__row-mtime{width:var(--icon-preview-size);height:var(--mtime-height);font-size:calc(var(--default-font-size) - 4px)}.files-list--grid tbody.files-list__tbody .files-list__row-actions{position:absolute;inset-inline-end:calc(var(--clickable-area)/4);inset-block-end:calc(var(--mtime-height)/2);width:var(--clickable-area);height:var(--clickable-area)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"AAEA,0CACC,oBAAA,CACA,0BAAA,CACA,mBAAA,CACA,oBAAA,CACA,qEAAA,CACA,iHAAA,CACA,uBAAA,CACA,YAAA,CACA,yDAAA,CAEA,oBAAA,CACA,kBAAA,CACA,4BAAA,CACA,oBAAA,CAEA,6CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,wBAAA,CACA,WAAA,CACA,wCAAA,CACA,2BAAA,CAID,oEACC,iBAAA,CACA,SAAA,CACA,+BAAA,CACA,8CAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,qCAAA,CAGA,2GACC,UAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,sBAAA,CACA,wBAAA,CACA,UAAA,CACA,uCAAA,CAKF,yEACC,iBAAA,CACA,KAAA,CACA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,2BAAA,CACA,4BAAA,CAGD,gEACC,YAAA,CACA,qBAAA,CACA,8BAAA,CACA,0DAAA,CAEA,gBAAA,CAEA,0FACC,8BAAA,CACA,+BAAA,CAGD,2FACC,QAAA,CAEA,wBAAA,CACA,eAAA,CAIF,iEACC,8BAAA,CACA,0BAAA,CACA,8CAAA,CAGD,mEACC,iBAAA,CACA,8CAAA,CACA,2CAAA,CACA,2BAAA,CACA,4BAAA\",\"sourcesContent\":[\"\\n// Grid mode\\n.files-list--grid tbody.files-list__tbody {\\n\\t--item-padding: 16px;\\n\\t--icon-preview-size: 166px;\\n\\t--name-height: 32px;\\n\\t--mtime-height: 16px;\\n\\t--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);\\n\\t--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);\\n\\t--checkbox-padding: 0px;\\n\\tdisplay: grid;\\n\\tgrid-template-columns: repeat(auto-fill, var(--row-width));\\n\\n\\talign-content: center;\\n\\talign-items: center;\\n\\tjustify-content: space-around;\\n\\tjustify-items: center;\\n\\n\\ttr {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: var(--row-width);\\n\\t\\theight: var(--row-height);\\n\\t\\tborder: none;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tpadding: var(--item-padding);\\n\\t}\\n\\n\\t// Checkbox in the top left\\n\\t.files-list__row-checkbox {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 9;\\n\\t\\ttop: calc(var(--item-padding) / 2);\\n\\t\\tinset-inline-start: calc(var(--item-padding) / 2);\\n\\t\\toverflow: hidden;\\n\\t\\t--checkbox-container-size: 44px;\\n\\t\\twidth: var(--checkbox-container-size);\\n\\t\\theight: var(--checkbox-container-size);\\n\\n\\t\\t// Add a background to the checkbox so we do not see the image through it.\\n\\t\\t.checkbox-radio-switch__content::after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\twidth: 16px;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tinset-inline-start: 50%;\\n\\t\\t\\tmargin-inline-start: -8px;\\n\\t\\t\\tz-index: -1;\\n\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t}\\n\\t}\\n\\n\\t// Star icon in the top right\\n\\t.files-list__row-icon-favorite {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tinset-inline-end: 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: var(--clickable-area);\\n\\t\\theight: var(--clickable-area);\\n\\t}\\n\\n\\t.files-list__row-name {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: var(--icon-preview-size);\\n\\t\\theight: calc(var(--icon-preview-size) + var(--name-height));\\n\\t\\t// Ensure that the name outline is visible.\\n\\t\\toverflow: visible;\\n\\n\\t\\tspan.files-list__row-icon {\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-name-text {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\t// Ensure that the outline is not too close to the text.\\n\\t\\t\\tmargin-inline-start: -4px;\\n\\t\\t\\tpadding: 0px 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t.files-list__row-mtime {\\n\\t\\twidth: var(--icon-preview-size);\\n\\t\\theight: var(--mtime-height);\\n\\t\\tfont-size: calc(var(--default-font-size) - 4px);\\n\\t}\\n\\n\\t.files-list__row-actions {\\n\\t\\tposition: absolute;\\n\\t\\tinset-inline-end: calc(var(--clickable-area) / 4);\\n\\t\\tinset-block-end: calc(var(--mtime-height) / 2);\\n\\t\\twidth: var(--clickable-area);\\n\\t\\theight: var(--clickable-area);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-navigation-entry__settings-quota[data-v-6ed9379e]{--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2)}.app-navigation-entry__settings-quota--not-unlimited[data-v-6ed9379e] .app-navigation-entry__name{line-height:1;margin-top:var(--app-navigation-quota-margin)}.app-navigation-entry__settings-quota progress[data-v-6ed9379e]{position:absolute;bottom:var(--app-navigation-quota-margin);margin-inline-start:var(--default-clickable-area);width:calc(100% - 1.5*var(--default-clickable-area))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/NavigationQuota.vue\"],\"names\":[],\"mappings\":\"AAEA,uDAEC,+EAAA,CAEA,kGACC,aAAA,CACA,6CAAA,CAGD,gEACC,iBAAA,CACA,yCAAA,CACA,iDAAA,CACA,oDAAA\",\"sourcesContent\":[\"\\n// User storage stats display\\n.app-navigation-entry__settings-quota {\\n\\t// Align title with progress and icon\\n\\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\\n\\n\\t&--not-unlimited :deep(.app-navigation-entry__name) {\\n\\t\\tline-height: 1;\\n\\t\\tmargin-top: var(--app-navigation-quota-margin);\\n\\t}\\n\\n\\tprogress {\\n\\t\\tposition: absolute;\\n\\t\\tbottom: var(--app-navigation-quota-margin);\\n\\t\\tmargin-inline-start: var(--default-clickable-area);\\n\\t\\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.toast-loading-icon{margin-inline-start:-4px;min-width:26px}.app-content[data-v-693703cc]{display:flex;overflow:hidden;flex-direction:column;max-height:100%;position:relative !important}.files-list__header[data-v-693703cc]{display:flex;align-items:center;flex:0 0;max-width:100%;margin-block:var(--app-navigation-padding, 4px);margin-inline:calc(var(--default-clickable-area, 44px) + 2*var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px)}.files-list__header--public[data-v-693703cc]{margin-inline:0 var(--app-navigation-padding, 4px)}.files-list__header>*[data-v-693703cc]{flex:0 0}.files-list__header-share-button[data-v-693703cc]{color:var(--color-text-maxcontrast) !important}.files-list__header-share-button--shared[data-v-693703cc]{color:var(--color-main-text) !important}.files-list__header-actions[data-v-693703cc]{min-width:fit-content !important;margin-inline:calc(var(--default-grid-baseline)*2)}.files-list__empty-view-wrapper[data-v-693703cc]{display:flex;height:100%}.files-list__refresh-icon[data-v-693703cc]{flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);height:var(--default-clickable-area)}.files-list__loading-icon[data-v-693703cc]{margin:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/FilesList.vue\"],\"names\":[],\"mappings\":\"AACA,oBAEC,wBAAA,CAEA,cAAA,CAGD,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CACA,4BAAA,CAIA,qCACC,YAAA,CACA,kBAAA,CAEA,QAAA,CACA,cAAA,CAEA,+CAAA,CACA,iIAAA,CAEA,6CAEC,kDAAA,CAGD,uCAGC,QAAA,CAGD,kDACC,8CAAA,CAEA,0DACC,uCAAA,CAIF,6CACC,gCAAA,CACA,kDAAA,CAIF,iDACC,YAAA,CACA,WAAA,CAGD,2CACC,sCAAA,CACA,mCAAA,CACA,oCAAA,CAGD,2CACC,WAAA\",\"sourcesContent\":[\"\\n:global(.toast-loading-icon) {\\n\\t// Reduce start margin (it was made for text but this is an icon)\\n\\tmargin-inline-start: -4px;\\n\\t// 16px icon + 5px on both sides\\n\\tmin-width: 26px;\\n}\\n\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n\\tposition: relative !important;\\n}\\n\\n.files-list {\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\t// Do not grow or shrink (vertically)\\n\\t\\tflex: 0 0;\\n\\t\\tmax-width: 100%;\\n\\t\\t// Align with the navigation toggle icon\\n\\t\\tmargin-block: var(--app-navigation-padding, 4px);\\n\\t\\tmargin-inline: calc(var(--default-clickable-area, 44px) + 2 * var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px);\\n\\n\\t\\t&--public {\\n\\t\\t\\t// There is no navigation toggle on public shares\\n\\t\\t\\tmargin-inline: 0 var(--app-navigation-padding, 4px);\\n\\t\\t}\\n\\n\\t\\t>* {\\n\\t\\t\\t// Do not grow or shrink (horizontally)\\n\\t\\t\\t// Only the breadcrumbs shrinks\\n\\t\\t\\tflex: 0 0;\\n\\t\\t}\\n\\n\\t\\t&-share-button {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\n\\t\\t\\t&--shared {\\n\\t\\t\\t\\tcolor: var(--color-main-text) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-actions {\\n\\t\\t\\tmin-width: fit-content !important;\\n\\t\\t\\tmargin-inline: calc(var(--default-grid-baseline) * 2);\\n\\t\\t}\\n\\t}\\n\\n\\t&__empty-view-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\theight: 100%;\\n\\t}\\n\\n\\t&__refresh-icon {\\n\\t\\tflex: 0 0 var(--default-clickable-area);\\n\\t\\twidth: var(--default-clickable-area);\\n\\t\\theight: var(--default-clickable-area);\\n\\t}\\n\\n\\t&__loading-icon {\\n\\t\\tmargin: auto;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-navigation[data-v-c6191948] .app-navigation-entry.active .button-vue.icon-collapse:not(:hover){color:var(--color-primary-element-text)}.app-navigation>ul.app-navigation__list[data-v-c6191948]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-c6191948]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}.files-navigation__list[data-v-c6191948]{height:100%}.files-navigation[data-v-c6191948] .app-navigation__content > ul.app-navigation__list{will-change:scroll-position}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Navigation.vue\"],\"names\":[],\"mappings\":\"AAEC,oGACC,uCAAA,CAGD,yDAEC,gDAAA,CAIF,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA,CAIA,yCACC,WAAA,CAGD,sFACC,2BAAA\",\"sourcesContent\":[\"\\n.app-navigation {\\n\\t:deep(.app-navigation-entry.active .button-vue.icon-collapse:not(:hover)) {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t}\\n\\n\\t> ul.app-navigation__list {\\n\\t\\t// Use flex gap value for more elegant spacing\\n\\t\\tpadding-bottom: var(--default-grid-baseline, 4px);\\n\\t}\\n}\\n\\n.app-navigation-entry__settings {\\n\\theight: auto !important;\\n\\toverflow: hidden !important;\\n\\tpadding-top: 0 !important;\\n\\t// Prevent shrinking or growing\\n\\tflex: 0 0 auto;\\n}\\n\\n.files-navigation {\\n\\t&__list {\\n\\t\\theight: 100%; // Fill all available space for sticky views\\n\\t}\\n\\n\\t:deep(.app-navigation__content > ul.app-navigation__list) {\\n\\t\\twill-change: scroll-position;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.setting-link[data-v-6fc727d7]:hover{text-decoration:underline}.shortcut-key[data-v-6fc727d7]{width:160px;white-space:normal}.shortcut-key span[data-v-6fc727d7]{white-space:nowrap}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Settings.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,yBAAA,CAGD,+BACC,WAAA,CAEA,kBAAA,CACA,oCAEC,kBAAA\",\"sourcesContent\":[\"\\n.setting-link:hover {\\n\\ttext-decoration: underline;\\n}\\n\\n.shortcut-key {\\n\\twidth: 160px;\\n\\t// some shortcuts are too long to fit in one line\\n\\twhite-space: normal;\\n\\tspan {\\n\\t\\t// force portion of a shortcut on a new line for nicer display\\n\\t\\twhite-space: nowrap;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { o as logger } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { q, F, s, N, t, P, c, l, m, n, a, g, p, b, r, d, h, f, k, j, e, i } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"path\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewFileMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? 1;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {Folder} context the creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nconst getNewFileMenu = function() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewFileMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n};\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n DefaultType2[\"DEFAULT\"] = \"default\";\n DefaultType2[\"HIDDEN\"] = \"hidden\";\n return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n }\n}\nconst registerFileAction = function(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n};\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nconst registerFileListAction = (action) => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n};\nconst getFileListActions = () => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n};\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nconst registerFileListHeaders = function(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n};\nvar InvalidFilenameErrorReason = /* @__PURE__ */ ((InvalidFilenameErrorReason2) => {\n InvalidFilenameErrorReason2[\"ReservedName\"] = \"reserved name\";\n InvalidFilenameErrorReason2[\"Character\"] = \"character\";\n InvalidFilenameErrorReason2[\"Extension\"] = \"extension\";\n return InvalidFilenameErrorReason2;\n})(InvalidFilenameErrorReason || {});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: \"character\", filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({\n filename,\n segment: filename,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({\n filename,\n segment: basename2,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [\".part\", \".filepart\"];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: \"extension\", filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n2) => `(${n2})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i2 = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i2++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch (e2) {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers2.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n FilesSortingMode2[\"Name\"] = \"basename\";\n FilesSortingMode2[\"Modified\"] = \"mtime\";\n FilesSortingMode2[\"Size\"] = \"size\";\n return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: \"basename\",\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n const basename2 = (name) => name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n const identifiers2 = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v.displayname || v.attributes?.displayname || v.basename),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers2, orders);\n}\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n * @param view The view to register\n * @throws `Error` is thrown if a view with the same id is already registered\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`View id ${view.id} is already registered`);\n }\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n * @fires UpdateActiveViewEvent\n * @param view New active view\n */\n setActive(view) {\n this._currentView = view;\n const event = new CustomEvent(\"updateActive\", { detail: view });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nconst getNavigation = function() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n};\nclass Column {\n _column;\n constructor(column) {\n isValidColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst isValidColumn = function(column) {\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n if (column.sort && typeof column.sort !== \"function\") {\n throw new Error(\"Column sortFunction must be a function\");\n }\n if (column.summary && typeof column.summary !== \"function\") {\n throw new Error(\"Column summary must be a function\");\n }\n return true;\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar validator = {};\nvar util = {};\nvar hasRequiredUtil;\nfunction requireUtil() {\n if (hasRequiredUtil) return util;\n hasRequiredUtil = 1;\n (function(exports) {\n const nameStartChar = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n const nameChar = nameStartChar + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n const nameRegexp = \"[\" + nameStartChar + \"][\" + nameChar + \"]*\";\n const regexName = new RegExp(\"^\" + nameRegexp + \"$\");\n const getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n };\n const isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === \"undefined\");\n };\n exports.isExist = function(v) {\n return typeof v !== \"undefined\";\n };\n exports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n };\n exports.merge = function(target, a2, arrayMode) {\n if (a2) {\n const keys = Object.keys(a2);\n const len = keys.length;\n for (let i2 = 0; i2 < len; i2++) {\n if (arrayMode === \"strict\") {\n target[keys[i2]] = [a2[keys[i2]]];\n } else {\n target[keys[i2]] = a2[keys[i2]];\n }\n }\n }\n };\n exports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return \"\";\n }\n };\n exports.isName = isName;\n exports.getAllMatches = getAllMatches;\n exports.nameRegexp = nameRegexp;\n })(util);\n return util;\n}\nvar hasRequiredValidator;\nfunction requireValidator() {\n if (hasRequiredValidator) return validator;\n hasRequiredValidator = 1;\n const util2 = requireUtil();\n const defaultOptions = {\n allowBooleanAttributes: false,\n //A tag can have attributes without any value\n unpairedTags: []\n };\n validator.validate = function(xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n const tags = [];\n let tagFound = false;\n let reachedRoot = false;\n if (xmlData[0] === \"\\uFEFF\") {\n xmlData = xmlData.substr(1);\n }\n for (let i2 = 0; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\" && xmlData[i2 + 1] === \"?\") {\n i2 += 2;\n i2 = readPI(xmlData, i2);\n if (i2.err) return i2;\n } else if (xmlData[i2] === \"<\") {\n let tagStartPos = i2;\n i2++;\n if (xmlData[i2] === \"!\") {\n i2 = readCommentAndCDATA(xmlData, i2);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i2] === \"/\") {\n closingTag = true;\n i2++;\n }\n let tagName = \"\";\n for (; i2 < xmlData.length && xmlData[i2] !== \">\" && xmlData[i2] !== \" \" && xmlData[i2] !== \"\t\" && xmlData[i2] !== \"\\n\" && xmlData[i2] !== \"\\r\"; i2++) {\n tagName += xmlData[i2];\n }\n tagName = tagName.trim();\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substring(0, tagName.length - 1);\n i2--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\" + tagName + \"' is an invalid name.\";\n }\n return getErrorObject(\"InvalidTag\", msg, getLineNumberForPosition(xmlData, i2));\n }\n const result = readAttributeStr(xmlData, i2);\n if (result === false) {\n return getErrorObject(\"InvalidAttr\", \"Attributes for '\" + tagName + \"' have open quote.\", getLineNumberForPosition(xmlData, i2));\n }\n let attrStr = result.value;\n i2 = result.index;\n if (attrStr[attrStr.length - 1] === \"/\") {\n const attrStrStart = i2 - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n } else {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i2));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else if (tags.length === 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject(\n \"InvalidTag\",\n \"Expected closing tag '\" + otg.tagName + \"' (opened in line \" + openPos.line + \", col \" + openPos.col + \") instead of closing tag '\" + tagName + \"'.\",\n getLineNumberForPosition(xmlData, tagStartPos)\n );\n }\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i2 - attrStr.length + isValid.err.line));\n }\n if (reachedRoot === true) {\n return getErrorObject(\"InvalidXml\", \"Multiple possible root nodes found.\", getLineNumberForPosition(xmlData, i2));\n } else if (options.unpairedTags.indexOf(tagName) !== -1) ;\n else {\n tags.push({ tagName, tagStartPos });\n }\n tagFound = true;\n }\n for (i2++; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n if (xmlData[i2 + 1] === \"!\") {\n i2++;\n i2 = readCommentAndCDATA(xmlData, i2);\n continue;\n } else if (xmlData[i2 + 1] === \"?\") {\n i2 = readPI(xmlData, ++i2);\n if (i2.err) return i2;\n } else {\n break;\n }\n } else if (xmlData[i2] === \"&\") {\n const afterAmp = validateAmpersand(xmlData, i2);\n if (afterAmp == -1)\n return getErrorObject(\"InvalidChar\", \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i2));\n i2 = afterAmp;\n } else {\n if (reachedRoot === true && !isWhiteSpace(xmlData[i2])) {\n return getErrorObject(\"InvalidXml\", \"Extra text at the end\", getLineNumberForPosition(xmlData, i2));\n }\n }\n }\n if (xmlData[i2] === \"<\") {\n i2--;\n }\n }\n } else {\n if (isWhiteSpace(xmlData[i2])) {\n continue;\n }\n return getErrorObject(\"InvalidChar\", \"char '\" + xmlData[i2] + \"' is not expected.\", getLineNumberForPosition(xmlData, i2));\n }\n }\n if (!tagFound) {\n return getErrorObject(\"InvalidXml\", \"Start tag expected.\", 1);\n } else if (tags.length == 1) {\n return getErrorObject(\"InvalidTag\", \"Unclosed tag '\" + tags[0].tagName + \"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n } else if (tags.length > 0) {\n return getErrorObject(\"InvalidXml\", \"Invalid '\" + JSON.stringify(tags.map((t2) => t2.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n }\n return true;\n };\n function isWhiteSpace(char) {\n return char === \" \" || char === \"\t\" || char === \"\\n\" || char === \"\\r\";\n }\n function readPI(xmlData, i2) {\n const start = i2;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] == \"?\" || xmlData[i2] == \" \") {\n const tagname = xmlData.substr(start, i2 - start);\n if (i2 > 5 && tagname === \"xml\") {\n return getErrorObject(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", getLineNumberForPosition(xmlData, i2));\n } else if (xmlData[i2] == \"?\" && xmlData[i2 + 1] == \">\") {\n i2++;\n break;\n } else {\n continue;\n }\n }\n }\n return i2;\n }\n function readCommentAndCDATA(xmlData, i2) {\n if (xmlData.length > i2 + 5 && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \"-\") {\n for (i2 += 3; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"-\" && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \">\") {\n i2 += 2;\n break;\n }\n }\n } else if (xmlData.length > i2 + 8 && xmlData[i2 + 1] === \"D\" && xmlData[i2 + 2] === \"O\" && xmlData[i2 + 3] === \"C\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"Y\" && xmlData[i2 + 6] === \"P\" && xmlData[i2 + 7] === \"E\") {\n let angleBracketsCount = 1;\n for (i2 += 8; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n angleBracketsCount++;\n } else if (xmlData[i2] === \">\") {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (xmlData.length > i2 + 9 && xmlData[i2 + 1] === \"[\" && xmlData[i2 + 2] === \"C\" && xmlData[i2 + 3] === \"D\" && xmlData[i2 + 4] === \"A\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"A\" && xmlData[i2 + 7] === \"[\") {\n for (i2 += 8; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"]\" && xmlData[i2 + 1] === \"]\" && xmlData[i2 + 2] === \">\") {\n i2 += 2;\n break;\n }\n }\n }\n return i2;\n }\n const doubleQuote = '\"';\n const singleQuote = \"'\";\n function readAttributeStr(xmlData, i2) {\n let attrStr = \"\";\n let startChar = \"\";\n let tagClosed = false;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === doubleQuote || xmlData[i2] === singleQuote) {\n if (startChar === \"\") {\n startChar = xmlData[i2];\n } else if (startChar !== xmlData[i2]) ;\n else {\n startChar = \"\";\n }\n } else if (xmlData[i2] === \">\") {\n if (startChar === \"\") {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i2];\n }\n if (startChar !== \"\") {\n return false;\n }\n return {\n value: attrStr,\n index: i2,\n tagClosed\n };\n }\n const validAttrStrRegxp = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\n function validateAttributeString(attrStr, options) {\n const matches = util2.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n for (let i2 = 0; i2 < matches.length; i2++) {\n if (matches[i2][1].length === 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' has no space in starting.\", getPositionFromMatch(matches[i2]));\n } else if (matches[i2][3] !== void 0 && matches[i2][4] === void 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' is without value.\", getPositionFromMatch(matches[i2]));\n } else if (matches[i2][3] === void 0 && !options.allowBooleanAttributes) {\n return getErrorObject(\"InvalidAttr\", \"boolean attribute '\" + matches[i2][2] + \"' is not allowed.\", getPositionFromMatch(matches[i2]));\n }\n const attrName = matches[i2][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is an invalid name.\", getPositionFromMatch(matches[i2]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n attrNames[attrName] = 1;\n } else {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is repeated.\", getPositionFromMatch(matches[i2]));\n }\n }\n return true;\n }\n function validateNumberAmpersand(xmlData, i2) {\n let re2 = /\\d/;\n if (xmlData[i2] === \"x\") {\n i2++;\n re2 = /[\\da-fA-F]/;\n }\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \";\")\n return i2;\n if (!xmlData[i2].match(re2))\n break;\n }\n return -1;\n }\n function validateAmpersand(xmlData, i2) {\n i2++;\n if (xmlData[i2] === \";\")\n return -1;\n if (xmlData[i2] === \"#\") {\n i2++;\n return validateNumberAmpersand(xmlData, i2);\n }\n let count = 0;\n for (; i2 < xmlData.length; i2++, count++) {\n if (xmlData[i2].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i2] === \";\")\n break;\n return -1;\n }\n return i2;\n }\n function getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col\n }\n };\n }\n function validateAttrName(attrName) {\n return util2.isName(attrName);\n }\n function validateTagName(tagname) {\n return util2.isName(tagname);\n }\n function getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n }\n function getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n }\n return validator;\n}\nvar OptionsBuilder = {};\nvar hasRequiredOptionsBuilder;\nfunction requireOptionsBuilder() {\n if (hasRequiredOptionsBuilder) return OptionsBuilder;\n hasRequiredOptionsBuilder = 1;\n const defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n removeNSPrefix: false,\n // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false,\n //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true,\n //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [],\n //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function(tagName, jPath, attrs) {\n return tagName;\n }\n // skipEmptyListItem: false\n };\n const buildOptions = function(options) {\n return Object.assign({}, defaultOptions, options);\n };\n OptionsBuilder.buildOptions = buildOptions;\n OptionsBuilder.defaultOptions = defaultOptions;\n return OptionsBuilder;\n}\nvar xmlNode;\nvar hasRequiredXmlNode;\nfunction requireXmlNode() {\n if (hasRequiredXmlNode) return xmlNode;\n hasRequiredXmlNode = 1;\n class XmlNode {\n constructor(tagname) {\n this.tagname = tagname;\n this.child = [];\n this[\":@\"] = {};\n }\n add(key, val) {\n if (key === \"__proto__\") key = \"#__proto__\";\n this.child.push({ [key]: val });\n }\n addChild(node) {\n if (node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if (node[\":@\"] && Object.keys(node[\":@\"]).length > 0) {\n this.child.push({ [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n } else {\n this.child.push({ [node.tagname]: node.child });\n }\n }\n }\n xmlNode = XmlNode;\n return xmlNode;\n}\nvar DocTypeReader;\nvar hasRequiredDocTypeReader;\nfunction requireDocTypeReader() {\n if (hasRequiredDocTypeReader) return DocTypeReader;\n hasRequiredDocTypeReader = 1;\n const util2 = requireUtil();\n function readDocType(xmlData, i2) {\n const entities = {};\n if (xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"C\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"Y\" && xmlData[i2 + 7] === \"P\" && xmlData[i2 + 8] === \"E\") {\n i2 = i2 + 9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\" && !comment) {\n if (hasBody && isEntity(xmlData, i2)) {\n i2 += 7;\n let entityName, val;\n [entityName, val, i2] = readEntityExp(xmlData, i2 + 1);\n if (val.indexOf(\"&\") === -1)\n entities[validateEntityName(entityName)] = {\n regx: RegExp(`&${entityName};`, \"g\"),\n val\n };\n } else if (hasBody && isElement(xmlData, i2)) i2 += 8;\n else if (hasBody && isAttlist(xmlData, i2)) i2 += 8;\n else if (hasBody && isNotation(xmlData, i2)) i2 += 9;\n else comment = true;\n angleBracketsCount++;\n exp = \"\";\n } else if (xmlData[i2] === \">\") {\n if (comment) {\n if (xmlData[i2 - 1] === \"-\" && xmlData[i2 - 2] === \"-\") {\n comment = false;\n angleBracketsCount--;\n }\n } else {\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n } else if (xmlData[i2] === \"[\") {\n hasBody = true;\n } else {\n exp += xmlData[i2];\n }\n }\n if (angleBracketsCount !== 0) {\n throw new Error(`Unclosed DOCTYPE`);\n }\n } else {\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return { entities, i: i2 };\n }\n function readEntityExp(xmlData, i2) {\n let entityName = \"\";\n for (; i2 < xmlData.length && (xmlData[i2] !== \"'\" && xmlData[i2] !== '\"'); i2++) {\n entityName += xmlData[i2];\n }\n entityName = entityName.trim();\n if (entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n const startChar = xmlData[i2++];\n let val = \"\";\n for (; i2 < xmlData.length && xmlData[i2] !== startChar; i2++) {\n val += xmlData[i2];\n }\n return [entityName, val, i2];\n }\n function isEntity(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"N\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"I\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"Y\") return true;\n return false;\n }\n function isElement(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"L\" && xmlData[i2 + 4] === \"E\" && xmlData[i2 + 5] === \"M\" && xmlData[i2 + 6] === \"E\" && xmlData[i2 + 7] === \"N\" && xmlData[i2 + 8] === \"T\") return true;\n return false;\n }\n function isAttlist(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"A\" && xmlData[i2 + 3] === \"T\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"L\" && xmlData[i2 + 6] === \"I\" && xmlData[i2 + 7] === \"S\" && xmlData[i2 + 8] === \"T\") return true;\n return false;\n }\n function isNotation(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"N\" && xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"A\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"I\" && xmlData[i2 + 8] === \"O\" && xmlData[i2 + 9] === \"N\") return true;\n return false;\n }\n function validateEntityName(name) {\n if (util2.isName(name))\n return name;\n else\n throw new Error(`Invalid entity name ${name}`);\n }\n DocTypeReader = readDocType;\n return DocTypeReader;\n}\nvar strnum;\nvar hasRequiredStrnum;\nfunction requireStrnum() {\n if (hasRequiredStrnum) return strnum;\n hasRequiredStrnum = 1;\n const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\n const numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n if (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n }\n if (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n }\n const consider = {\n hex: true,\n leadingZeros: true,\n decimalPoint: \".\",\n eNotation: true\n //skipLike: /regex/\n };\n function toNumber(str, options = {}) {\n options = Object.assign({}, consider, options);\n if (!str || typeof str !== \"string\") return str;\n let trimmedStr = str.trim();\n if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr)) return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n } else {\n const match = numRegex.exec(trimmedStr);\n if (match) {\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]);\n const eNotation = match[4] || match[6];\n if (!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str;\n else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str;\n else {\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n if (numStr.search(/[eE]/) !== -1) {\n if (options.eNotation) return num;\n else return str;\n } else if (eNotation) {\n if (options.eNotation) return num;\n else return str;\n } else if (trimmedStr.indexOf(\".\") !== -1) {\n if (numStr === \"0\" && numTrimmedByZeros === \"\") return num;\n else if (numStr === numTrimmedByZeros) return num;\n else if (sign && numStr === \"-\" + numTrimmedByZeros) return num;\n else return str;\n }\n if (leadingZeros) {\n if (numTrimmedByZeros === numStr) return num;\n else if (sign + numTrimmedByZeros === numStr) return num;\n else return str;\n }\n if (trimmedStr === numStr) return num;\n else if (trimmedStr === sign + numStr) return num;\n return str;\n }\n } else {\n return str;\n }\n }\n }\n function trimZeros(numStr) {\n if (numStr && numStr.indexOf(\".\") !== -1) {\n numStr = numStr.replace(/0+$/, \"\");\n if (numStr === \".\") numStr = \"0\";\n else if (numStr[0] === \".\") numStr = \"0\" + numStr;\n else if (numStr[numStr.length - 1] === \".\") numStr = numStr.substr(0, numStr.length - 1);\n return numStr;\n }\n return numStr;\n }\n strnum = toNumber;\n return strnum;\n}\nvar ignoreAttributes;\nvar hasRequiredIgnoreAttributes;\nfunction requireIgnoreAttributes() {\n if (hasRequiredIgnoreAttributes) return ignoreAttributes;\n hasRequiredIgnoreAttributes = 1;\n function getIgnoreAttributesFn(ignoreAttributes2) {\n if (typeof ignoreAttributes2 === \"function\") {\n return ignoreAttributes2;\n }\n if (Array.isArray(ignoreAttributes2)) {\n return (attrName) => {\n for (const pattern of ignoreAttributes2) {\n if (typeof pattern === \"string\" && attrName === pattern) {\n return true;\n }\n if (pattern instanceof RegExp && pattern.test(attrName)) {\n return true;\n }\n }\n };\n }\n return () => false;\n }\n ignoreAttributes = getIgnoreAttributesFn;\n return ignoreAttributes;\n}\nvar OrderedObjParser_1;\nvar hasRequiredOrderedObjParser;\nfunction requireOrderedObjParser() {\n if (hasRequiredOrderedObjParser) return OrderedObjParser_1;\n hasRequiredOrderedObjParser = 1;\n const util2 = requireUtil();\n const xmlNode2 = requireXmlNode();\n const readDocType = requireDocTypeReader();\n const toNumber = requireStrnum();\n const getIgnoreAttributesFn = requireIgnoreAttributes();\n class OrderedObjParser {\n constructor(options) {\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n \"quot\": { regex: /&(quot|#34|#x22);/g, val: '\"' }\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\": { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 16)) }\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n }\n }\n function addExternalEntities(externalEntities) {\n const entKeys = Object.keys(externalEntities);\n for (let i2 = 0; i2 < entKeys.length; i2++) {\n const ent = entKeys[i2];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\" + ent + \";\", \"g\"),\n val: externalEntities[ent]\n };\n }\n }\n function parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== void 0) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if (val.length > 0) {\n if (!escapeEntities) val = this.replaceEntitiesValue(val);\n const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if (newval === null || newval === void 0) {\n return val;\n } else if (typeof newval !== typeof val || newval !== val) {\n return newval;\n } else if (this.options.trimValues) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n const trimmedVal = val.trim();\n if (trimmedVal === val) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n return val;\n }\n }\n }\n }\n }\n function resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(\":\");\n const prefix = tagname.charAt(0) === \"/\" ? \"/\" : \"\";\n if (tags[0] === \"xmlns\") {\n return \"\";\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n }\n const attrsRegx = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\n function buildAttributesMap(attrStr, jPath, tagName) {\n if (this.options.ignoreAttributes !== true && typeof attrStr === \"string\") {\n const matches = util2.getAllMatches(attrStr, attrsRegx);\n const len = matches.length;\n const attrs = {};\n for (let i2 = 0; i2 < len; i2++) {\n const attrName = this.resolveNameSpace(matches[i2][1]);\n if (this.ignoreAttributesFn(attrName, jPath)) {\n continue;\n }\n let oldVal = matches[i2][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if (aName === \"__proto__\") aName = \"#__proto__\";\n if (oldVal !== void 0) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if (newVal === null || newVal === void 0) {\n attrs[aName] = oldVal;\n } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n attrs[aName] = newVal;\n } else {\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n }\n const parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n const xmlObj = new xmlNode2(\"!xml\");\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for (let i2 = 0; i2 < xmlData.length; i2++) {\n const ch = xmlData[i2];\n if (ch === \"<\") {\n if (xmlData[i2 + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i2, \"Closing Tag is not closed.\");\n let tagName = xmlData.substring(i2 + 2, closeIndex).trim();\n if (this.options.removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n }\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode) {\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n const lastTagName = jPath.substring(jPath.lastIndexOf(\".\") + 1);\n if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n }\n let propIndex = 0;\n if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n propIndex = jPath.lastIndexOf(\".\", jPath.lastIndexOf(\".\") - 1);\n this.tagsNodeStack.pop();\n } else {\n propIndex = jPath.lastIndexOf(\".\");\n }\n jPath = jPath.substring(0, propIndex);\n currentNode = this.tagsNodeStack.pop();\n textData = \"\";\n i2 = closeIndex;\n } else if (xmlData[i2 + 1] === \"?\") {\n let tagData = readTagExp(xmlData, i2, false, \"?>\");\n if (!tagData) throw new Error(\"Pi Tag is not closed.\");\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if (this.options.ignoreDeclaration && tagData.tagName === \"?xml\" || this.options.ignorePiTags) ;\n else {\n const childNode = new xmlNode2(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n }\n i2 = tagData.closeIndex + 1;\n } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n const endIndex = findClosingIndex(xmlData, \"-->\", i2 + 4, \"Comment is not closed.\");\n if (this.options.commentPropName) {\n const comment = xmlData.substring(i2 + 4, endIndex - 2);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n }\n i2 = endIndex;\n } else if (xmlData.substr(i2 + 1, 2) === \"!D\") {\n const result = readDocType(xmlData, i2);\n this.docTypeEntities = result.entities;\n i2 = result.i;\n } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i2 + 9, closeIndex);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n if (val == void 0) val = \"\";\n if (this.options.cdataPropName) {\n currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n } else {\n currentNode.add(this.options.textNodeName, val);\n }\n i2 = closeIndex + 2;\n } else {\n let result = readTagExp(xmlData, i2, this.options.removeNSPrefix);\n let tagName = result.tagName;\n const rawTagName = result.rawTagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode && textData) {\n if (currentNode.tagname !== \"!xml\") {\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n const lastTag = currentNode;\n if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n currentNode = this.tagsNodeStack.pop();\n jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n }\n if (tagName !== xmlObj.tagname) {\n jPath += jPath ? \".\" + tagName : tagName;\n }\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n let tagContent = \"\";\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n i2 = result.closeIndex;\n } else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n i2 = result.closeIndex;\n } else {\n const result2 = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n if (!result2) throw new Error(`Unexpected end of ${rawTagName}`);\n i2 = result2.i;\n tagContent = result2.tagContent;\n }\n const childNode = new xmlNode2(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n if (tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n this.addChild(currentNode, childNode, jPath);\n } else {\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n const childNode = new xmlNode2(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n } else {\n const childNode = new xmlNode2(tagName);\n this.tagsNodeStack.push(currentNode);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n currentNode = childNode;\n }\n textData = \"\";\n i2 = closeIndex;\n }\n }\n } else {\n textData += xmlData[i2];\n }\n }\n return xmlObj.child;\n };\n function addChild(currentNode, childNode, jPath) {\n const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"]);\n if (result === false) ;\n else if (typeof result === \"string\") {\n childNode.tagname = result;\n currentNode.addChild(childNode);\n } else {\n currentNode.addChild(childNode);\n }\n }\n const replaceEntitiesValue = function(val) {\n if (this.options.processEntities) {\n for (let entityName in this.docTypeEntities) {\n const entity = this.docTypeEntities[entityName];\n val = val.replace(entity.regx, entity.val);\n }\n for (let entityName in this.lastEntities) {\n const entity = this.lastEntities[entityName];\n val = val.replace(entity.regex, entity.val);\n }\n if (this.options.htmlEntities) {\n for (let entityName in this.htmlEntities) {\n const entity = this.htmlEntities[entityName];\n val = val.replace(entity.regex, entity.val);\n }\n }\n val = val.replace(this.ampEntity.regex, this.ampEntity.val);\n }\n return val;\n };\n function saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) {\n if (isLeafNode === void 0) isLeafNode = Object.keys(currentNode.child).length === 0;\n textData = this.parseTextData(\n textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode\n );\n if (textData !== void 0 && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n }\n function isItStopNode(stopNodes, jPath, currentTagName) {\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if (allNodesExp === stopNodeExp || jPath === stopNodeExp) return true;\n }\n return false;\n }\n function tagExpWithClosingIndex(xmlData, i2, closingChar = \">\") {\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i2; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if (closingChar[1]) {\n if (xmlData[index + 1] === closingChar[1]) {\n return {\n data: tagExp,\n index\n };\n }\n } else {\n return {\n data: tagExp,\n index\n };\n }\n } else if (ch === \"\t\") {\n ch = \" \";\n }\n tagExp += ch;\n }\n }\n function findClosingIndex(xmlData, str, i2, errMsg) {\n const closingIndex = xmlData.indexOf(str, i2);\n if (closingIndex === -1) {\n throw new Error(errMsg);\n } else {\n return closingIndex + str.length - 1;\n }\n }\n function readTagExp(xmlData, i2, removeNSPrefix, closingChar = \">\") {\n const result = tagExpWithClosingIndex(xmlData, i2 + 1, closingChar);\n if (!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if (separatorIndex !== -1) {\n tagName = tagExp.substring(0, separatorIndex);\n tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n }\n const rawTagName = tagName;\n if (removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n return {\n tagName,\n tagExp,\n closeIndex,\n attrExpPresent,\n rawTagName\n };\n }\n function readStopNodeData(xmlData, tagName, i2) {\n const startIndex = i2;\n let openTagCount = 1;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n if (xmlData[i2 + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i2, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i2 + 2, closeIndex).trim();\n if (closeTagName === tagName) {\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i2),\n i: closeIndex\n };\n }\n }\n i2 = closeIndex;\n } else if (xmlData[i2 + 1] === \"?\") {\n const closeIndex = findClosingIndex(xmlData, \"?>\", i2 + 1, \"StopNode is not closed.\");\n i2 = closeIndex;\n } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n const closeIndex = findClosingIndex(xmlData, \"-->\", i2 + 3, \"StopNode is not closed.\");\n i2 = closeIndex;\n } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"StopNode is not closed.\") - 2;\n i2 = closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i2, \">\");\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n openTagCount++;\n }\n i2 = tagData.closeIndex;\n }\n }\n }\n }\n }\n function parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === \"string\") {\n const newval = val.trim();\n if (newval === \"true\") return true;\n else if (newval === \"false\") return false;\n else return toNumber(val, options);\n } else {\n if (util2.isExist(val)) {\n return val;\n } else {\n return \"\";\n }\n }\n }\n OrderedObjParser_1 = OrderedObjParser;\n return OrderedObjParser_1;\n}\nvar node2json = {};\nvar hasRequiredNode2json;\nfunction requireNode2json() {\n if (hasRequiredNode2json) return node2json;\n hasRequiredNode2json = 1;\n function prettify(node, options) {\n return compress(node, options);\n }\n function compress(arr, options, jPath) {\n let text;\n const compressedObj = {};\n for (let i2 = 0; i2 < arr.length; i2++) {\n const tagObj = arr[i2];\n const property = propName(tagObj);\n let newJpath = \"\";\n if (jPath === void 0) newJpath = property;\n else newJpath = jPath + \".\" + property;\n if (property === options.textNodeName) {\n if (text === void 0) text = tagObj[property];\n else text += \"\" + tagObj[property];\n } else if (property === void 0) {\n continue;\n } else if (tagObj[property]) {\n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n if (tagObj[\":@\"]) {\n assignAttributes(val, tagObj[\":@\"], newJpath, options);\n } else if (Object.keys(val).length === 1 && val[options.textNodeName] !== void 0 && !options.alwaysCreateTextNode) {\n val = val[options.textNodeName];\n } else if (Object.keys(val).length === 0) {\n if (options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n if (compressedObj[property] !== void 0 && compressedObj.hasOwnProperty(property)) {\n if (!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [compressedObj[property]];\n }\n compressedObj[property].push(val);\n } else {\n if (options.isArray(property, newJpath, isLeaf)) {\n compressedObj[property] = [val];\n } else {\n compressedObj[property] = val;\n }\n }\n }\n }\n if (typeof text === \"string\") {\n if (text.length > 0) compressedObj[options.textNodeName] = text;\n } else if (text !== void 0) compressedObj[options.textNodeName] = text;\n return compressedObj;\n }\n function propName(obj) {\n const keys = Object.keys(obj);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n if (key !== \":@\") return key;\n }\n }\n function assignAttributes(obj, attrMap, jpath, options) {\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length;\n for (let i2 = 0; i2 < len; i2++) {\n const atrrName = keys[i2];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [attrMap[atrrName]];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n }\n function isLeafTag(obj, options) {\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n if (propCount === 0) {\n return true;\n }\n if (propCount === 1 && (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)) {\n return true;\n }\n return false;\n }\n node2json.prettify = prettify;\n return node2json;\n}\nvar XMLParser_1;\nvar hasRequiredXMLParser;\nfunction requireXMLParser() {\n if (hasRequiredXMLParser) return XMLParser_1;\n hasRequiredXMLParser = 1;\n const { buildOptions } = requireOptionsBuilder();\n const OrderedObjParser = requireOrderedObjParser();\n const { prettify } = requireNode2json();\n const validator2 = requireValidator();\n class XMLParser {\n constructor(options) {\n this.externalEntities = {};\n this.options = buildOptions(options);\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData, validationOption) {\n if (typeof xmlData === \"string\") ;\n else if (xmlData.toString) {\n xmlData = xmlData.toString();\n } else {\n throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n }\n if (validationOption) {\n if (validationOption === true) validationOption = {};\n const result = validator2.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`);\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if (this.options.preserveOrder || orderedResult === void 0) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value) {\n if (value.indexOf(\"&\") !== -1) {\n throw new Error(\"Entity value can't have '&'\");\n } else if (key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1) {\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\");\n } else if (value === \"&\") {\n throw new Error(\"An entity with value '&' is not permitted\");\n } else {\n this.externalEntities[key] = value;\n }\n }\n }\n XMLParser_1 = XMLParser;\n return XMLParser_1;\n}\nvar orderedJs2Xml;\nvar hasRequiredOrderedJs2Xml;\nfunction requireOrderedJs2Xml() {\n if (hasRequiredOrderedJs2Xml) return orderedJs2Xml;\n hasRequiredOrderedJs2Xml = 1;\n const EOL = \"\\n\";\n function toXml(jArray, options) {\n let indentation = \"\";\n if (options.format && options.indentBy.length > 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n }\n function arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n for (let i2 = 0; i2 < arr.length; i2++) {\n const tagObj = arr[i2];\n const tagName = propName(tagObj);\n if (tagName === void 0) continue;\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName;\n else newJPath = `${jPath}.${tagName}`;\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr2 = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\";\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr2}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n xmlStr += indentation + options.indentBy + tagValue + indentation;\n } else {\n xmlStr += tagValue;\n }\n xmlStr += `</${tagName}>`;\n }\n isPreviousElementTag = true;\n }\n return xmlStr;\n }\n function propName(obj) {\n const keys = Object.keys(obj);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n if (!obj.hasOwnProperty(key)) continue;\n if (key !== \":@\") return key;\n }\n }\n function attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n if (!attrMap.hasOwnProperty(attr)) continue;\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n }\n function isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n }\n function replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i2 = 0; i2 < options.entities.length; i2++) {\n const entity = options.entities[i2];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n }\n orderedJs2Xml = toXml;\n return orderedJs2Xml;\n}\nvar json2xml;\nvar hasRequiredJson2xml;\nfunction requireJson2xml() {\n if (hasRequiredJson2xml) return json2xml;\n hasRequiredJson2xml = 1;\n const buildFromOrderedJs = requireOrderedJs2Xml();\n const getIgnoreAttributesFn = requireIgnoreAttributes();\n const defaultOptions = {\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: \" \",\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a2) {\n return a2;\n },\n attributeValueProcessor: function(attrName, a2) {\n return a2;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },\n //it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n { regex: new RegExp(\"'\", \"g\"), val: \"&apos;\" },\n { regex: new RegExp('\"', \"g\"), val: \"&quot;\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n };\n function Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n this.isAttribute = function() {\n return false;\n };\n } else {\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n this.processTextOrObjNode = processTextOrObjNode;\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = \">\\n\";\n this.newLine = \"\\n\";\n } else {\n this.indentate = function() {\n return \"\";\n };\n this.tagEndChar = \">\";\n this.newLine = \"\";\n }\n }\n Builder.prototype.build = function(jObj) {\n if (this.options.preserveOrder) {\n return buildFromOrderedJs(jObj, this.options);\n } else {\n if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) {\n jObj = {\n [this.options.arrayNodeName]: jObj\n };\n }\n return this.j2x(jObj, 0, []).val;\n }\n };\n Builder.prototype.j2x = function(jObj, level, ajPath) {\n let attrStr = \"\";\n let val = \"\";\n const jPath = ajPath.join(\".\");\n for (let key in jObj) {\n if (!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n if (typeof jObj[key] === \"undefined\") {\n if (this.isAttribute(key)) {\n val += \"\";\n }\n } else if (jObj[key] === null) {\n if (this.isAttribute(key)) {\n val += \"\";\n } else if (key[0] === \"?\") {\n val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n } else {\n val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n }\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, \"\", level);\n } else if (typeof jObj[key] !== \"object\") {\n const attr = this.isAttribute(key);\n if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n attrStr += this.buildAttrPairStr(attr, \"\" + jObj[key]);\n } else if (!attr) {\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, \"\" + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, \"\", level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n let listTagAttr = \"\";\n for (let j2 = 0; j2 < arrLen; j2++) {\n const item = jObj[key][j2];\n if (typeof item === \"undefined\") ;\n else if (item === null) {\n if (key[0] === \"?\") val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n else val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n } else if (typeof item === \"object\") {\n if (this.options.oneListGroup) {\n const result = this.j2x(item, level + 1, ajPath.concat(key));\n listTagVal += result.val;\n if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n listTagAttr += result.attrStr;\n }\n } else {\n listTagVal += this.processTextOrObjNode(item, key, level, ajPath);\n }\n } else {\n if (this.options.oneListGroup) {\n let textValue = this.options.tagValueProcessor(key, item);\n textValue = this.replaceEntitiesValue(textValue);\n listTagVal += textValue;\n } else {\n listTagVal += this.buildTextValNode(item, key, \"\", level);\n }\n }\n }\n if (this.options.oneListGroup) {\n listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n }\n val += listTagVal;\n } else {\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j2 = 0; j2 < L; j2++) {\n attrStr += this.buildAttrPairStr(Ks[j2], \"\" + jObj[key][Ks[j2]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level, ajPath);\n }\n }\n }\n return { attrStr, val };\n };\n Builder.prototype.buildAttrPairStr = function(attrName, val) {\n val = this.options.attributeValueProcessor(attrName, \"\" + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return \" \" + attrName;\n } else return \" \" + attrName + '=\"' + val + '\"';\n };\n function processTextOrObjNode(object, key, level, ajPath) {\n const result = this.j2x(object, level + 1, ajPath.concat(key));\n if (object[this.options.textNodeName] !== void 0 && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n }\n Builder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if (val === \"\") {\n if (key[0] === \"?\") return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n else {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n } else {\n let tagEndExp = \"</\" + key + this.tagEndChar;\n let piClosingChar = \"\";\n if (key[0] === \"?\") {\n piClosingChar = \"?\";\n tagEndExp = \"\";\n }\n if ((attrStr || attrStr === \"\") && val.indexOf(\"<\") === -1) {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + \">\" + val + tagEndExp;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + this.tagEndChar + val + this.indentate(level) + tagEndExp;\n }\n }\n };\n Builder.prototype.closeTag = function(key) {\n let closeTag = \"\";\n if (this.options.unpairedTags.indexOf(key) !== -1) {\n if (!this.options.suppressUnpairedNode) closeTag = \"/\";\n } else if (this.options.suppressEmptyNode) {\n closeTag = \"/\";\n } else {\n closeTag = `></${key}`;\n }\n return closeTag;\n };\n Builder.prototype.buildTextValNode = function(val, key, attrStr, level) {\n if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n return this.indentate(level) + `<![CDATA[${val}]]>` + this.newLine;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n } else if (key[0] === \"?\") {\n return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n } else {\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n if (textValue === \"\") {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + \">\" + textValue + \"</\" + key + this.tagEndChar;\n }\n }\n };\n Builder.prototype.replaceEntitiesValue = function(textValue) {\n if (textValue && textValue.length > 0 && this.options.processEntities) {\n for (let i2 = 0; i2 < this.options.entities.length; i2++) {\n const entity = this.options.entities[i2];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n };\n function indentate(level) {\n return this.options.indentBy.repeat(level);\n }\n function isAttribute(name) {\n if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n return name.substr(this.attrPrefixLen);\n } else {\n return false;\n }\n }\n json2xml = Builder;\n return json2xml;\n}\nvar fxp;\nvar hasRequiredFxp;\nfunction requireFxp() {\n if (hasRequiredFxp) return fxp;\n hasRequiredFxp = 1;\n const validator2 = requireValidator();\n const XMLParser = requireXMLParser();\n const XMLBuilder = requireJson2xml();\n fxp = {\n XMLParser,\n XMLValidator: validator2,\n XMLBuilder\n };\n return fxp;\n}\nvar fxpExports = requireFxp();\nfunction isSvg(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n }\n string = string.trim();\n if (string.length === 0) {\n return false;\n }\n if (fxpExports.XMLValidator.validate(string) !== true) {\n return false;\n }\n let jsonObject;\n const parser = new fxpExports.XMLParser();\n try {\n jsonObject = parser.parse(string);\n } catch {\n return false;\n }\n if (!jsonObject) {\n return false;\n }\n if (!Object.keys(jsonObject).some((x) => x.toLowerCase() === \"svg\")) {\n return false;\n }\n return true;\n}\nclass View {\n _view;\n constructor(view) {\n isValidView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n get loadChildViews() {\n return this._view.loadChildViews;\n }\n}\nconst isValidView = function(view) {\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n if (\"caption\" in view && typeof view.caption !== \"string\") {\n throw new Error(\"View caption must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (\"order\" in view && typeof view.order !== \"number\") {\n throw new Error(\"View order must be a number\");\n }\n if (view.columns) {\n view.columns.forEach((column) => {\n if (!(column instanceof Column)) {\n throw new Error(\"View columns must be an array of Column. Invalid column found\");\n }\n });\n }\n if (view.emptyView && typeof view.emptyView !== \"function\") {\n throw new Error(\"View emptyView must be a function\");\n }\n if (view.parent && typeof view.parent !== \"string\") {\n throw new Error(\"View parent must be a string\");\n }\n if (\"sticky\" in view && typeof view.sticky !== \"boolean\") {\n throw new Error(\"View sticky must be a boolean\");\n }\n if (\"expanded\" in view && typeof view.expanded !== \"boolean\") {\n throw new Error(\"View expanded must be a boolean\");\n }\n if (view.defaultSortKey && typeof view.defaultSortKey !== \"string\") {\n throw new Error(\"View defaultSortKey must be a string\");\n }\n if (view.loadChildViews && typeof view.loadChildViews !== \"function\") {\n throw new Error(\"View loadChildViews must be a function\");\n }\n return true;\n};\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const t2 = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t2[name] = index;\n src[index] = value;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t2.NUMERICIDENTIFIER]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t2.NUMERICIDENTIFIERLOOSE]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t2.BUILDIDENTIFIER]}(?:\\\\.${src[t2.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`);\n createToken(\"FULL\", `^${src[t2.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t2.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t2.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t2.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t2.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t2.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t2.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t2.GTLT]}\\\\s*(${src[t2.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t2.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t2.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t: t2 } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m2 = version.trim().match(options.loose ? re2[t2.LOOSE] : re2[t2.FULL]);\n if (!m2) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m2[1];\n this.minor = +m2[2];\n this.patch = +m2[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m2[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m2[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m2[5] ? m2[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i2 = 0;\n do {\n const a2 = this.prerelease[i2];\n const b2 = other.prerelease[i2];\n debug(\"prerelease compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i2 = 0;\n do {\n const a2 = this.build[i2];\n const b2 = other.build[i2];\n debug(\"build compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i2 = this.prerelease.length;\n while (--i2 >= 0) {\n if (typeof this.prerelease[i2] === \"number\") {\n this.prerelease[i2]++;\n i2 = -2;\n }\n }\n if (i2 === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, event) {\n this.bus.emit(name, event);\n }\n}\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h2) => h2 !== handler)\n );\n }\n emit(name, event) {\n (this.handlers.get(name) || []).forEach((h2) => {\n try {\n h2(event);\n } catch (e2) {\n console.error(\"could not invoke event listener\", e2);\n }\n });\n }\n}\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, event) {\n getBus().emit(name, event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\n}\nconst addNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n};\nconst removeNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n};\nconst getNewFileMenuEntries = function(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a2, b2) => {\n if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n return a2.order - b2.order;\n }\n return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n};\nexport {\n Column,\n DefaultType,\n q as File,\n FileAction,\n FileListAction,\n FileListFilter,\n F as FileType,\n FilesSortingMode,\n s as Folder,\n Header,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n N as Node,\n t as NodeStatus,\n P as Permission,\n View,\n addNewFileMenuEntry,\n c as davGetClient,\n l as davGetDefaultPropfind,\n m as davGetFavoritesReport,\n n as davGetRecentSearch,\n a as davGetRemoteURL,\n g as davGetRootPath,\n p as davParsePermissions,\n b as davRemoteURL,\n r as davResultToNode,\n d as davRootPath,\n h as defaultDavNamespaces,\n f as defaultDavProperties,\n formatFileSize,\n k as getDavNameSpaces,\n j as getDavProperties,\n e as getFavoriteNodes,\n getFileActions,\n getFileListActions,\n getFileListFilters,\n getFileListHeaders,\n getNavigation,\n getNewFileMenuEntries,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n i as registerDavProperty,\n registerFileAction,\n registerFileListAction,\n registerFileListFilter,\n registerFileListHeaders,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateFilename\n};\n","import '../assets/index-CdLjHZZ_.css';\nimport { isPublicShare } from \"@nextcloud/sharing/public\";\nimport Vue, { defineAsyncComponent, defineComponent } from \"vue\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport { Folder, Permission, davRootPath, FileType, davGetClient, davRemoteURL, validateFilename, InvalidFilenameError, getUniqueName, NewMenuEntryCategory, getNewFileMenuEntries } from \"@nextcloud/files\";\nimport { basename, encodePath } from \"@nextcloud/paths\";\nimport { normalize } from \"path\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport axios, { isCancel } from \"@nextcloud/axios\";\nimport PCancelable from \"p-cancelable\";\nimport PQueue from \"p-queue\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport axiosRetry, { exponentialDelay } from \"axios-retry\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { useHotKey } from \"@nextcloud/vue/dist/Composables/useHotKey.js\";\nimport makeEta from \"simple-eta\";\nimport NcActionButton from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport NcActionCaption from \"@nextcloud/vue/dist/Components/NcActionCaption.js\";\nimport NcActionSeparator from \"@nextcloud/vue/dist/Components/NcActionSeparator.js\";\nimport NcActions from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport NcButton from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport NcIconSvgWrapper from \"@nextcloud/vue/dist/Components/NcIconSvgWrapper.js\";\nimport NcProgressBar from \"@nextcloud/vue/dist/Components/NcProgressBar.js\";\nimport { spawnDialog, showInfo, showWarning } from \"@nextcloud/dialogs\";\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/upload\").detectUser().build();\naxiosRetry(axios, { retries: 0 });\nconst uploadData = async function(url, uploadData2, signal, onUploadProgress = () => {\n}, destinationFile = void 0, headers = {}, retries = 5) {\n let data;\n if (uploadData2 instanceof Blob) {\n data = uploadData2;\n } else {\n data = await uploadData2();\n }\n if (destinationFile) {\n headers.Destination = destinationFile;\n }\n if (!headers[\"Content-Type\"]) {\n headers[\"Content-Type\"] = \"application/octet-stream\";\n }\n return await axios.request({\n method: \"PUT\",\n url,\n data,\n signal,\n onUploadProgress,\n headers,\n \"axios-retry\": {\n retries,\n retryDelay: (retryCount, error) => exponentialDelay(retryCount, error, 1e3)\n }\n });\n};\nconst getChunk = function(file, start, length) {\n if (start === 0 && file.size <= length) {\n return Promise.resolve(new Blob([file], { type: file.type || \"application/octet-stream\" }));\n }\n return Promise.resolve(new Blob([file.slice(start, start + length)], { type: \"application/octet-stream\" }));\n};\nconst initChunkWorkspace = async function(destinationFile = void 0, retries = 5) {\n const chunksWorkspace = generateRemoteUrl(`dav/uploads/${getCurrentUser()?.uid}`);\n const hash = [...Array(16)].map(() => Math.floor(Math.random() * 16).toString(16)).join(\"\");\n const tempWorkspace = `web-file-upload-${hash}`;\n const url = `${chunksWorkspace}/${tempWorkspace}`;\n const headers = destinationFile ? { Destination: destinationFile } : void 0;\n await axios.request({\n method: \"MKCOL\",\n url,\n headers,\n \"axios-retry\": {\n retries,\n retryDelay: (retryCount, error) => exponentialDelay(retryCount, error, 1e3)\n }\n });\n logger.debug(\"Created temporary upload workspace\", { url });\n return url;\n};\nconst getMaxChunksSize = function(fileSize = void 0) {\n const maxChunkSize = window.OC?.appConfig?.files?.max_chunk_size;\n if (maxChunkSize <= 0) {\n return 0;\n }\n if (!Number(maxChunkSize)) {\n return 10 * 1024 * 1024;\n }\n const minimumChunkSize = Math.max(Number(maxChunkSize), 5 * 1024 * 1024);\n if (fileSize === void 0) {\n return minimumChunkSize;\n }\n return Math.max(minimumChunkSize, Math.ceil(fileSize / 1e4));\n};\nvar Status$1 = /* @__PURE__ */ ((Status2) => {\n Status2[Status2[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n Status2[Status2[\"UPLOADING\"] = 1] = \"UPLOADING\";\n Status2[Status2[\"ASSEMBLING\"] = 2] = \"ASSEMBLING\";\n Status2[Status2[\"FINISHED\"] = 3] = \"FINISHED\";\n Status2[Status2[\"CANCELLED\"] = 4] = \"CANCELLED\";\n Status2[Status2[\"FAILED\"] = 5] = \"FAILED\";\n return Status2;\n})(Status$1 || {});\nclass Upload {\n _source;\n _file;\n _isChunked;\n _chunks;\n _size;\n _uploaded = 0;\n _startTime = 0;\n _status = 0;\n _controller;\n _response = null;\n constructor(source, chunked = false, size, file) {\n const chunks = Math.min(getMaxChunksSize() > 0 ? Math.ceil(size / getMaxChunksSize()) : 1, 1e4);\n this._source = source;\n this._isChunked = chunked && getMaxChunksSize() > 0 && chunks > 1;\n this._chunks = this._isChunked ? chunks : 1;\n this._size = size;\n this._file = file;\n this._controller = new AbortController();\n }\n get source() {\n return this._source;\n }\n get file() {\n return this._file;\n }\n get isChunked() {\n return this._isChunked;\n }\n get chunks() {\n return this._chunks;\n }\n get size() {\n return this._size;\n }\n get startTime() {\n return this._startTime;\n }\n set response(response) {\n this._response = response;\n }\n get response() {\n return this._response;\n }\n get uploaded() {\n return this._uploaded;\n }\n /**\n * Update the uploaded bytes of this upload\n */\n set uploaded(length) {\n if (length >= this._size) {\n this._status = this._isChunked ? 2 : 3;\n this._uploaded = this._size;\n return;\n }\n this._status = 1;\n this._uploaded = length;\n if (this._startTime === 0) {\n this._startTime = (/* @__PURE__ */ new Date()).getTime();\n }\n }\n get status() {\n return this._status;\n }\n /**\n * Update this upload status\n */\n set status(status) {\n this._status = status;\n }\n /**\n * Returns the axios cancel token source\n */\n get signal() {\n return this._controller.signal;\n }\n /**\n * Cancel any ongoing requests linked to this upload\n */\n cancel() {\n this._controller.abort();\n this._status = 4;\n }\n}\nconst isFileSystemDirectoryEntry = (o) => \"FileSystemDirectoryEntry\" in window && o instanceof FileSystemDirectoryEntry;\nconst isFileSystemFileEntry = (o) => \"FileSystemFileEntry\" in window && o instanceof FileSystemFileEntry;\nconst isFileSystemEntry = (o) => \"FileSystemEntry\" in window && o instanceof FileSystemEntry;\nclass Directory extends File {\n _originalName;\n _path;\n _children;\n constructor(path) {\n super([], basename(path), { type: \"httpd/unix-directory\", lastModified: 0 });\n this._children = /* @__PURE__ */ new Map();\n this._originalName = basename(path);\n this._path = path;\n }\n get size() {\n return this.children.reduce((sum, file) => sum + file.size, 0);\n }\n get lastModified() {\n return this.children.reduce((latest, file) => Math.max(latest, file.lastModified), 0);\n }\n // We need this to keep track of renamed files\n get originalName() {\n return this._originalName;\n }\n get children() {\n return Array.from(this._children.values());\n }\n get webkitRelativePath() {\n return this._path;\n }\n getChild(name) {\n return this._children.get(name) ?? null;\n }\n /**\n * Add multiple children at once\n * @param files The files to add\n */\n async addChildren(files) {\n for (const file of files) {\n await this.addChild(file);\n }\n }\n /**\n * Add a child to the directory.\n * If it is a nested child the parents will be created if not already exist.\n * @param file The child to add\n */\n async addChild(file) {\n const rootPath = this._path && `${this._path}/`;\n if (isFileSystemFileEntry(file)) {\n file = await new Promise((resolve, reject) => file.file(resolve, reject));\n } else if (isFileSystemDirectoryEntry(file)) {\n const reader = file.createReader();\n const entries = await new Promise((resolve, reject) => reader.readEntries(resolve, reject));\n const child = new Directory(`${rootPath}${file.name}`);\n await child.addChildren(entries);\n this._children.set(file.name, child);\n return;\n }\n file = file;\n const filePath = file.webkitRelativePath ?? file.name;\n if (!filePath.includes(\"/\")) {\n this._children.set(file.name, file);\n } else {\n if (!filePath.startsWith(this._path)) {\n throw new Error(`File ${filePath} is not a child of ${this._path}`);\n }\n const relPath = filePath.slice(rootPath.length);\n const name = basename(relPath);\n if (name === relPath) {\n this._children.set(name, file);\n } else {\n const base = relPath.slice(0, relPath.indexOf(\"/\"));\n if (this._children.has(base)) {\n await this._children.get(base).addChild(file);\n } else {\n const child = new Directory(`${rootPath}${base}`);\n await child.addChild(file);\n this._children.set(base, child);\n }\n }\n }\n }\n}\nconst gtBuilder = getGettextBuilder().detectLocale();\n[{ \"locale\": \"af\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"af\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: af\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ar\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"abusaud, 2024\", \"Language-Team\": \"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ar\", \"Plural-Forms\": \"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nAli <alimahwer@yahoo.com>, 2024\\nabusaud, 2024\\n\" }, \"msgstr\": [\"Last-Translator: abusaud, 2024\\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ar\\nPlural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" هو اسم ممنوع لملف أو مجلد.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" هو نوع ممنوع أن يكون لملف.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" هو غير مسموح به في اسم ملف أو مجلد.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} ملف متعارض\", \"{count} ملف متعارض\", \"{count} ملفان متعارضان\", \"{count} ملف متعارض\", \"{count} ملفات متعارضة\", \"{count} ملفات متعارضة\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} ملف متعارض في {dirname}\", \"{count} ملف متعارض في {dirname}\", \"{count} ملفان متعارضان في {dirname}\", \"{count} ملف متعارض في {dirname}\", \"{count} ملفات متعارضة في {dirname}\", \"{count} ملفات متعارضة في {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} ثانية متبقية\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} متبقية\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"بضع ثوانٍ متبقية\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"إلغاء\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"إلغِ العملية بالكامل\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"إلغاء عمليات رفع الملفات\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"إستمر\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"إنشاء جديد\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"تقدير الوقت المتبقي\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"الإصدار الحالي\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['غير مسموح ان ينتهي اسم الملف بـ \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"إذا اخترت الاحتفاظ بالنسختين فسيتم إلحاق رقم عداد آخر اسم الملف الوارد.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"اسم ملف غير صحيح\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"تاريخ آخر تعديل غير معروف\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"جديد\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"اسم ملف جديد\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"نسخة جديدة\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"مُجمَّد\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"معاينة الصورة\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"تغيير التسمية\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"حدِّد كل صناديق الخيارات\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"حدِّد كل الملفات الموجودة\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"حدِّد كل الملفات الجديدة\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"تخطِّي\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"حجم غير معلوم\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"رفع الملفات\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"رفع ملفات\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"رفع مجلدات\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"الرفع من جهاز \"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"تمّ إلغاء عملية رفع الملفات\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"تمّ تجاوز الرفع\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['رفع \"{folder}\" تمّ تجاوزه'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"تقدُّم الرفع \"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"عند تحديد مجلد وارد، ستتم كتابة المحتوى في المجلد الموجود و سيتم تنفيذ حل التعارض بشكل تعاوُدي.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"أيُّ الملفات ترغب في الإبقاء عليها؟\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"يمكنك إمّا تغيير اسم الملف، أو تجاوزه، أو إلغاء العملية برُمَّتها.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار.\"] } } } } }, { \"locale\": \"ast\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"enolp <enolp@softastur.org>, 2023\", \"Language-Team\": \"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ast\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nenolp <enolp@softastur.org>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: enolp <enolp@softastur.org>, 2023\\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ast\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} ficheru en coflictu\", \"{count} ficheros en coflictu\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} ficheru en coflictu en {dirname}\", \"{count} ficheros en coflictu en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Queden {seconds} segundos\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Tiempu que queda: {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"queden unos segundos\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Encaboxar les xubes\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Siguir\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando'l tiempu que falta\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión esistente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"La data de la última modificación ye desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevu\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versión nueva\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en posa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar la imaxe\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Marcar toles caxelles\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleicionar tolos ficheros esistentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleicionar tolos ficheros nuevos\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Saltar esti ficheru\", \"Saltar {count} ficheros\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamañu desconocíu\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Encaboxóse la xuba\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Xubir ficheros\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Xuba en cursu\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué ficheros quies caltener?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Tienes de seleicionar polo menos una versión de cada ficheru pa siguir.\"] } } } } }, { \"locale\": \"az\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Rashad Aliyev <microphprashad@gmail.com>, 2023\", \"Language-Team\": \"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"az\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nRashad Aliyev <microphprashad@gmail.com>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: az\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saniyə qalıb\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} qalıb\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"bir neçə saniyə qalıb\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Əlavə et\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Yükləməni imtina et\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Təxmini qalan vaxt\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauzadadır\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Faylları yüklə\"] } } } } }, { \"locale\": \"be\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"be\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: be\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"bg\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"bg_BG\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bg_BG\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"bn_BD\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"bn_BD\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bn_BD\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"br\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"br\", \"Plural-Forms\": \"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: br\\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"bs\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"bs\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bs\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ca\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\", \"Language-Team\": \"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ca\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nMarc Riera <marcriera@softcatala.org>, 2022\\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ca\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Queden {seconds} segons\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"Queden {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Queden uns segons\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Afegeix\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancel·la les pujades\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"S'està estimant el temps restant\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"En pausa\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Puja els fitxers\"] } } } } }, { \"locale\": \"cs\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Pavel Borecki <pavel.borecki@gmail.com>, 2024\", \"Language-Team\": \"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"cs_CZ\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\\nMartin Hankovec, 2024\\nAppukonrad <appukonrad@gmail.com>, 2024\\nPavel Borecki <pavel.borecki@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2024\\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cs_CZ\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ není povoleno použít jako název souboru či složky.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}“ není povoleného typu souboru.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}“ není povoleno použít v rámci názvu souboru či složky.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} kolize souborů\", \"{count} kolize souborů\", \"{count} kolizí souborů\", \"{count} kolize souborů\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} kolize souboru v {dirname}\", \"{count} kolize souboru v {dirname}\", \"{count} kolizí souborů v {dirname}\", \"{count} kolize souboru v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"zbývá {seconds}\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"zbývá {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"zbývá několik sekund\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Zrušit\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušit celou operaci\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Zrušit nahrávání\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovat\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Vytvořit nový\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"odhaduje se zbývající čas\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existující verze\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Názvy souborů nemohou končit na „{segment}“.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Pokud vyberete obě verze, příchozí soubor bude mít ke jménu přidánu číslici.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Neplatný název souboru\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Neznámé datum poslední úpravy\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nové\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nový název souboru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nová verze\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pozastaveno\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Náhled obrázku\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Přejmenovat\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Označit všechny zaškrtávací kolonky\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrat veškeré stávající soubory\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrat veškeré nové soubory\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Přeskočit\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Přeskočit tento soubor\", \"Přeskočit {count} soubory\", \"Přeskočit {count} souborů\", \"Přeskočit {count} soubory\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznámá velikost\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Nahrát\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Nahrát soubory\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Nahrát složky\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Nahrát ze zařízení\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nahrávání bylo zrušeno\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nahrání bylo přeskočeno\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Nahrání „{folder}“ bylo přeskočeno\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Postup v nahrávání\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Když je vybrána příchozí složka, obsah je zapsán do existující složky a je provedeno rekurzivní řešení kolizí.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Které soubory si přejete ponechat?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Soubor je možné buď přejmenovat, přeskočit nebo celou operaci zrušit.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru.\"] } } } } }, { \"locale\": \"cy_GB\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"cy_GB\", \"Plural-Forms\": \"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cy_GB\\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"da\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Martin Bonde <Martin@maboni.dk>, 2024\", \"Language-Team\": \"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"da\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nRasmus Rosendahl-Kaa, 2024\\nMartin Bonde <Martin@maboni.dk>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Martin Bonde <Martin@maboni.dk>, 2024\\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: da\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er et forbudt fil- eller mappenavn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er en forbudt filtype.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ikke tilladt i et fil- eller mappenavn.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fil konflikt\", \"{count} filer i konflikt\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fil konflikt i {dirname}\", \"{count} filer i konflikt i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{sekunder} sekunder tilbage\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tilbage\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"et par sekunder tilbage\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuller\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annuller hele handlingen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annuller uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsæt\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Opret ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimering af resterende tid\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Eksisterende version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnavne må ikke slutte med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ugyldigt filnavn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Sidste modifikationsdato ukendt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nyt filnavn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauset\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forhåndsvisning af billede\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Omdøb\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vælg alle felter\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vælg alle eksisterende filer\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vælg alle nye filer\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Spring over\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Spring denne fil over\", \"Spring {count} filer over\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukendt størrelse\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Upload mapper\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Upload fra enhed\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Upload er blevet annulleret\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload er blevet sprunget over\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload af \"{folder}\" er blevet sprunget over'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Upload fremskridt\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Når en indkommende mappe er valgt, vil dens indhold blive skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvilke filer ønsker du at beholde?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan enten omdøbe filen, springe denne fil over eller annullere hele handlingen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du skal vælge mindst én version af hver fil for at fortsætte.\"] } } } } }, { \"locale\": \"de\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Andy Scherzinger <info@andy-scherzinger.de>, 2024\", \"Language-Team\": \"German (https://app.transifex.com/nextcloud/teams/64236/de/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"de\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMario Siegmann <mario_siegmann@web.de>, 2024\\nMartin Wilichowski, 2024\\nAndy Scherzinger <info@andy-scherzinger.de>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Andy Scherzinger <info@andy-scherzinger.de>, 2024\\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ist ein verbotener Datei- oder Ordnername.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ist ein verbotener Dateityp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ist in einem Datei- oder Ordnernamen nicht zulässig.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} Sekunden verbleiben\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} verbleibend\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"ein paar Sekunden verbleiben\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Abbrechen\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hochladen abbrechen\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsetzen\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Neu erstellen\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Geschätzte verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dateinamen dürfen nicht mit \"{segment}\" enden.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn du beide Versionen auswählst, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ungültiger Dateiname\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Neuer Dateiname\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Pausiert\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vorschaubild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Umbenennen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle neuen Dateien auswählen\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Überspringen\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Diese Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Unbekannte Größe\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Hochladen\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dateien hochladen\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ordner hochladen\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Vom Gerät hochladen\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Das Hochladen wurde abgebrochen\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Das Hochladen wurde übersprungen\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Das Hochladen von \"{folder}\" wurde übersprungen'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien möchtest du behalten?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kannst die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { \"locale\": \"de_DE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Mark Ziegler <mark.ziegler@rakekniven.de>, 2024\", \"Language-Team\": \"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"de_DE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMario Siegmann <mario_siegmann@web.de>, 2024\\nMark Ziegler <mark.ziegler@rakekniven.de>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Mark Ziegler <mark.ziegler@rakekniven.de>, 2024\\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de_DE\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ist ein verbotener Datei- oder Ordnername.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ist ein verbotener Dateityp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ist in einem Datei- oder Ordnernamen nicht zulässig.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} Sekunden verbleiben\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} verbleibend\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"ein paar Sekunden verbleiben\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Abbrechen\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hochladen abbrechen\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsetzen\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Neu erstellen\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Berechne verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dateinamen dürfen nicht mit \"{segment}\" enden.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn Sie beide Versionen auswählen, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ungültiger Dateiname\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Neuer Dateiname\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Pausiert\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vorschaubild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Umbenennen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle neuen Dateien auswählen\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Überspringen\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Unbekannte Größe\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Hochladen\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dateien hochladen\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ordner hochladen\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Vom Gerät hochladen\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Das Hochladen wurde abgebrochen\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Das Hochladen wurde übersprungen\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Das Hochladen von \"{folder}\" wurde übersprungen'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien möchten Sie behalten?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Sie können die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { \"locale\": \"el\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Nik Pap, 2022\", \"Language-Team\": \"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"el\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nNik Pap, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Nik Pap, 2022\\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: el\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"απομένουν {seconds} δευτερόλεπτα\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"απομένουν {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"απομένουν λίγα δευτερόλεπτα\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Προσθήκη\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Ακύρωση μεταφορτώσεων\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"εκτίμηση του χρόνου που απομένει\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"σε παύση\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Μεταφόρτωση αρχείων\"] } } } } }, { \"locale\": \"en_GB\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Andi Chandler <andi@gowling.com>, 2024\", \"Language-Team\": \"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"en_GB\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nAndi Chandler <andi@gowling.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Andi Chandler <andi@gowling.com>, 2024\\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: en_GB\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" is a forbidden file or folder name.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" is a forbidden file type.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" is not allowed inside a file or folder name.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} file conflict\", \"{count} files conflict\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} file conflict in {dirname}\", \"{count} file conflicts in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} seconds left\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} left\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"a few seconds left\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancel\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancel the entire operation\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancel uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continue\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Create new\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimating time left\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existing version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filenames must not end with \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"If you select both versions, the incoming file will have a number added to its name.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Invalid filename\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Last modified date unknown\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"New\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"New filename\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"New version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"paused\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Preview image\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Rename\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Select all checkboxes\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Select all existing files\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Select all new files\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Skip\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Skip this file\", \"Skip {count} files\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Unknown size\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload files\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Upload folders\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Upload from device\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Upload has been cancelled\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload has been skipped\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload of \"{folder}\" has been skipped'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Upload progress\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"When an incoming folder is selected, any conflicting files within it will also be overwritten.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Which files do you want to keep?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"You can either rename the file, skip this file or cancel the whole operation.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"You need to select at least one version of each file to continue.\"] } } } } }, { \"locale\": \"eo\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"eo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eo\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Julio C. Ortega, 2024\", \"Language-Team\": \"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nFranciscoFJ <dev-ooo@satel-sa.com>, 2024\\nJulio C. Ortega, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Julio C. Ortega, 2024\\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} conflictos de archivo\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflicto de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan unos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, el archivo entrante le será agregado un número a su nombre.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Última fecha de modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos los archivos nuevos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Saltar\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Saltar este archivo\", \"Saltar {count} archivos\", \"Saltar {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Subir carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Subir desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"La subida ha sido cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la subida\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, cualquier de los archivos en conflictos también serán sobre-escritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido es escrito en la carpeta existente y se realizará una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { \"locale\": \"es_419\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"ALEJANDRO CASTRO, 2022\", \"Language-Team\": \"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_419\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nALEJANDRO CASTRO, 2022\\n\" }, \"msgstr\": [\"Last-Translator: ALEJANDRO CASTRO, 2022\\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_419\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{tiempo} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan pocos segundos\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"agregar\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] } } } } }, { \"locale\": \"es_AR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Matías Campo Hoet <matiascampo@gmail.com>, 2024\", \"Language-Team\": \"Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_AR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMatías Campo Hoet <matiascampo@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Matías Campo Hoet <matiascampo@gmail.com>, 2024\\nLanguage-Team: Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_AR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} conflictos de archivo\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflicto de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan unos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Fecha de última modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vista previa de imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos los archivos nuevos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir este archivo\", \"Omitir {count} archivos\", \"Omitir {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Cargar archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Cargar carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Cargar desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Carga cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la carga\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también serán sobreescritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { \"locale\": \"es_CL\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_CL\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CL\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_CO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_CO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CO\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_CR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_CR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_DO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_DO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_DO\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_EC\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_EC\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_EC\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_GT\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_GT\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_GT\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_HN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_HN\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_HN\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_MX\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Jehu Marcos Herrera Puentes, 2024\", \"Language-Team\": \"Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_MX\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nJehu Marcos Herrera Puentes, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Jehu Marcos Herrera Puentes, 2024\\nLanguage-Team: Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_MX\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿Cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} archivos en conflicto\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} archivo en conflicto en {dirname}\", \"{count} archivos en conflicto en {dirname}\", \"{count} archivo en conflicto en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{tiempo} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan pocos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Fecha de última modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos los archivos nuevos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir este archivo\", \"Omitir {count} archivos\", \"Omitir {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Subir carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Subir desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"La subida ha sido cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la subida\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también será sobrescrito.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Cuáles archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { \"locale\": \"es_NI\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_NI\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_NI\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PA\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PA\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PA\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PE\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PE\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PY\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PY\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_SV\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_SV\", \"Plural-Forms\": \"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_SV\\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_UY\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_UY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_UY\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"et_EE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Taavo Roos, 2023\", \"Language-Team\": \"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"et_EE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nMait R, 2022\\nTaavo Roos, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Taavo Roos, 2023\\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: et_EE\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} jäänud sekundid\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} aega jäänud\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"jäänud mõni sekund\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Lisa\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Tühista üleslaadimine\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"hinnanguline järelejäänud aeg\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausil\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Lae failid üles\"] } } } } }, { \"locale\": \"eu\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\", \"Language-Team\": \"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"eu\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eu\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundo geratzen dira\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} geratzen da\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"segundo batzuk geratzen dira\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Gehitu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Ezeztatu igoerak\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"kalkulatutako geratzen den denbora\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"geldituta\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Igo fitxategiak\"] } } } } }, { \"locale\": \"fa\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Fatemeh Komeily, 2023\", \"Language-Team\": \"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fa\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nFatemeh Komeily, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Fatemeh Komeily, 2023\\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fa\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"ثانیه های باقی مانده\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"باقی مانده\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"چند ثانیه مانده\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"اضافه کردن\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"کنسل کردن فایل های اپلود شده\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"تخمین زمان باقی مانده\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"مکث کردن\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"بارگذاری فایل ها\"] } } } } }, { \"locale\": \"fi\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"teemue, 2024\", \"Language-Team\": \"Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fi_FI\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nJiri Grönroos <jiri.gronroos@iki.fi>, 2024\\nthingumy, 2024\\nteemue, 2024\\n\" }, \"msgstr\": [\"Last-Translator: teemue, 2024\\nLanguage-Team: Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fi_FI\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" on kielletty tiedoston tai hakemiston nimi.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" on kielletty tiedostotyyppi.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ei ole sallittu tiedoston tai hakemiston nimessä.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} tiedoston ristiriita\", \"{count} tiedoston ristiriita\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} tiedoston ristiriita kansiossa {dirname}\", \"{count} tiedoston ristiriita kansiossa {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekuntia jäljellä\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} jäljellä\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"muutama sekunti jäljellä\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Peruuta\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Peruuta koko toimenpide\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Peruuta lähetykset\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Jatka\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Luo uusi\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"arvioidaan jäljellä olevaa aikaa\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Olemassa oleva versio\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Tiedoston nimi ei saa päättyä \"{segment}\"'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jos valitset molemmat versiot, saapuvan tiedoston nimeen lisätään numero.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Kielletty/väärä tiedoston nimi\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Viimeisin muokkauspäivä on tuntematon\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Uusi\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Uusi tiedostonimi\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Uusi versio\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"keskeytetty\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Esikatsele kuva\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Nimeä uudelleen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Valitse kaikki valintaruudut\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Valitse kaikki olemassa olevat tiedostot\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Valitse kaikki uudet tiedostot\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Ohita\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ohita tämä tiedosto\", \"Ohita {count} tiedostoa\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tuntematon koko\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Lähetä\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Lähetä tiedostoja\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Lähetä kansioita\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Lähetä laitteelta\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Lähetys on peruttu\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Lähetys on ohitettu\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Hakemiston \"{folder}\" lähetys on ohitettu'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Lähetyksen edistyminen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Valittuasi saapuvien kansion, kaikki ristiriitaiset tiedostot kansiossa ylikirjoitetaan.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Valittuasi saapuvien kansion, sisältö kirjoitetaan olemassaolevaan kansioon ja suoritetaan rekursiivinen ristiriitojen poisto.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Mitkä tiedostot haluat säilyttää?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Voit joko nimetä tiedoston uudelleen, ohittaa tämän tiedoston tai peruuttaa koko toiminnon.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Sinun täytyy valita vähintään yksi versio jokaisesta tiedostosta jatkaaksesi.\"] } } } } }, { \"locale\": \"fo\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fo\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"fr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Arnaud Cazenave, 2024\", \"Language-Team\": \"French (https://app.transifex.com/nextcloud/teams/64236/fr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fr\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nBenoit Pruneau, 2024\\njed boulahya, 2024\\nJérôme HERBINET, 2024\\nArnaud Cazenave, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Arnaud Cazenave, 2024\\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fr\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" est un nom de fichier ou de dossier interdit.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" est un type de fichier interdit.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`\"{segment}\" n'est pas autorisé dans le nom d'un fichier ou d'un dossier.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fichier en conflit\", \"{count} fichiers en conflit\", \"{count} fichiers en conflit\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fichier en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} secondes restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restant\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quelques secondes restantes\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuler\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annuler l'opération entière\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annuler les téléversements\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuer\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Créer un nouveau\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimation du temps restant\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Version existante\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Le nom des fichiers ne doit pas finir par \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si vous sélectionnez les deux versions, le nouveau fichier aura un nombre ajouté à son nom.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nom de fichier invalide\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Date de la dernière modification est inconnue\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nouveau\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nouveau nom de fichier\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nouvelle version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en pause\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Aperçu de l'image\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renommer\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Sélectionner toutes les cases à cocher\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Sélectionner tous les fichiers existants\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Sélectionner tous les nouveaux fichiers\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Ignorer\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ignorer ce fichier\", \"Ignorer {count} fichiers\", \"Ignorer {count} fichiers\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Taille inconnue\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Téléverser\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Téléverser des fichiers\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Téléverser des dossiers\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Téléverser depuis l'appareil\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Le téléversement a été annulé\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Le téléversement a été ignoré\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Le téléversement de \"{folder}\" a été ignoré'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progression du téléversement\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Lorsqu'un dossier entrant est sélectionné, le contenu est ajouté dans le dossier existant et une résolution récursive des conflits est effectuée.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quels fichiers souhaitez-vous conserver ?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Vous pouvez soit renommer le fichier, soit ignorer le fichier soit annuler toute l'opération.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Vous devez sélectionner au moins une version de chaque fichier pour continuer.\"] } } } } }, { \"locale\": \"ga\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Aindriú Mac Giolla Eoin, 2024\", \"Language-Team\": \"Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ga\", \"Plural-Forms\": \"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nAindriú Mac Giolla Eoin, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Aindriú Mac Giolla Eoin, 2024\\nLanguage-Team: Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ga\\nPlural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['Is ainm toirmiscthe comhaid nó fillteáin é \"{segment}\".'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['Is cineál comhaid toirmiscthe é \"{segment}\".'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`Ní cheadaítear \"{segment}\" taobh istigh d'ainm comhaid nó fillteáin.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} coimhlint comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} coimhlint comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} soicind fágtha\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} fágtha\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"cúpla soicind fágtha\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cealaigh\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cealaigh an oibríocht iomlán\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cealaigh uaslódálacha\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Leanúint ar aghaidh\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Cruthaigh nua\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"ag déanamh meastachán ar an am atá fágtha\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Leagan láithreach \"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Níor cheart go gcríochnaíonn comhaid chomhad le \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Má roghnaíonn tú an dá leagan, cuirfear uimhir leis an ainm a thagann isteach.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ainm comhaid neamhbhailí\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dáta modhnaithe is déanaí anaithnid\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nua\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Ainm comhaid nua\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Leagan nua\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"sos\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Íomhá réamhamharc\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Athainmnigh\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Roghnaigh gach ticbhosca\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Roghnaigh gach comhad atá ann cheana féin\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Roghnaigh gach comhad nua\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Scipeáil\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Léim an comhad seo\", \"Léim ar {count} comhad\", \"Léim ar {count} comhad\", \"Léim ar {count} comhad\", \"Léim ar {count} comhad\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Méid anaithnid\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Uaslódáil\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Uaslódáil comhaid\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Uaslódáil fillteáin\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Íosluchtaigh ó ghléas\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Cuireadh an t-uaslódáil ar ceal\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Léiríodh an uaslódáil\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Léiríodh an uaslódáil \"{folder}\".'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Uaslódáil dul chun cinn\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, déanfar aon chomhad contrártha laistigh de a fhorscríobh freisin.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach san fhillteán atá ann cheana agus déantar réiteach coinbhleachta athchúrsach.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Cé na comhaid ar mhaith leat a choinneáil?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Is féidir leat an comhad a athainmniú, scipeáil an comhad seo nó an oibríocht iomlán a chealú.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú chun leanúint ar aghaidh.\"] } } } } }, { \"locale\": \"gd\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"gd\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: gd\\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"gl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2024\", \"Language-Team\": \"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"gl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2024\\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: gl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"«{segment}» é un nome vedado para un ficheiro ou cartafol.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"«{segment}» é un tipo de ficheiro vedado.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"«{segment}» non está permitido dentro dun nome de ficheiro ou cartafol.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflito de ficheiros\", \"{count} conflitos de ficheiros\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflito de ficheiros en {dirname}\", \"{count} conflitos de ficheiros en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"faltan {seconds} segundos\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"falta {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"faltan uns segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancela toda a operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar envíos\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear un novo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"calculando canto tempo falta\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Os nomes de ficheiros non deben rematar con «{segment}».\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"O nome de ficheiro non é válido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificación descoñecida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nova\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo nome de ficheiro\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"detido\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vista previa da imaxe\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renomear\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Marcar todas as caixas de selección\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos os ficheiros existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos os ficheiros novos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omita este ficheiro\", \"Omitir {count} ficheiros\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño descoñecido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Enviar\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar ficheiros\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Enviar cartafoles\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Enviar dende o dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"O envío foi cancelado\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"O envío foi omitido\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"O envío de «{folder}» foi omitido\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso do envío\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, tamén se sobrescribirán os ficheiros en conflito dentro del.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e lévase a cabo unha resolución recursiva de conflitos.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Que ficheiros quere conservar?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Pode cambiar o nome do ficheiro, omitir este ficheiro ou cancelar toda a operación.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar polo menos unha versión de cada ficheiro para continuar.\"] } } } } }, { \"locale\": \"he\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"he\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: he\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hi_IN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hi_IN\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hi_IN\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hr\", \"Plural-Forms\": \"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hr\\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hsb\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hsb\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hsb\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hu\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\", \"Language-Team\": \"Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hu_HU\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nGyuris Gellért <jobel@ujevangelizacio.hu>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\\nLanguage-Team: Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hu_HU\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['Tiltott fájl- vagy mappanév: „{segment}\".'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['Tiltott fájltípus: „{segment}\".'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Nem megengedett egy fájl- vagy mappanévben: „{segment}\".'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}fájlt érintő konfliktus\", \"{count} fájlt érintő konfliktus\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fájlt érintő konfliktus a mappában: {dirname}\", \"{count}fájlt érintő konfliktus a mappában: {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{} másodperc van hátra\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} van hátra\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"pár másodperc van hátra\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Mégse\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Teljes művelet megszakítása\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Feltöltések megszakítása\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Tovább\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Új létrehozása\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"hátralévő idő becslése\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Jelenlegi változat\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Fájlnevek nem végződhetnek erre: „{segment}”.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ha mindkét verziót kiválasztja, a bejövő fájl neve egy számmal egészül ki.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Érvénytelen fájlnév\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Utolsó módosítás dátuma ismeretlen\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Új\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Új fájlnév\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Új verzió\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"szüneteltetve\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Kép előnézete\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Átnevezés\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Minden jelölőnégyzet kijelölése\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Minden jelenlegi fájl kijelölése\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Minden új fájl kijelölése\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Kihagyás\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ezen fájl kihagyása\", \"{count}fájl kihagyása\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ismeretlen méret\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Feltöltés\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fájlok feltöltése\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Mappák feltöltése\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Feltöltés eszközről\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Feltöltés meg lett szakítva\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Feltöltés át lett ugorva\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"„{folder}” feltöltése át lett ugorva\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Feltöltési folyamat\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ha egy bejövő mappa van kiválasztva, a mappában lévő ütköző fájlok is felülírásra kerülnek.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Ha egy bejövő mappa van kiválasztva, a tartalom a meglévő mappába íródik és rekurzív konfliktusfeloldás történik.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Mely fájlokat kívánja megtartani?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Átnevezheti a fájlt, kihagyhatja ezt a fájlt, vagy törölheti az egész műveletet.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"A folytatáshoz minden fájlból legalább egy verziót ki kell választani.\"] } } } } }, { \"locale\": \"hy\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hy\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hy\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ia\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ia\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ia\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"id\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Linerly <linerly@proton.me>, 2023\", \"Language-Team\": \"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"id\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\\nEmpty Slot Filler, 2023\\nLinerly <linerly@proton.me>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Linerly <linerly@proton.me>, 2023\\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: id\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} berkas berkonflik\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} berkas berkonflik dalam {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} detik tersisa\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tersisa\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"tinggal sebentar lagi\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Batalkan unggahan\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Lanjutkan\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"memperkirakan waktu yang tersisa\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versi yang ada\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Tanggal perubahan terakhir tidak diketahui\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versi baru\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"dijeda\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Gambar pratinjau\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pilih semua kotak centang\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pilih semua berkas yang ada\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Pilih semua berkas baru\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Lewati {count} berkas\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukuran tidak diketahui\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Unggahan dibatalkan\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Unggah berkas\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Berkas mana yang Anda ingin tetap simpan?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan.\"] } } } } }, { \"locale\": \"ig\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ig\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ig\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"is\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Sveinn í Felli <sv1@fellsnet.is>, 2023\", \"Language-Team\": \"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"is\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nSveinn í Felli <sv1@fellsnet.is>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2023\\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: is\\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} árekstur skráa\", \"{count} árekstrar skráa\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} árekstur skráa í {dirname}\", \"{count} árekstrar skráa í {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekúndur eftir\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} eftir\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"nokkrar sekúndur eftir\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hætta við innsendingar\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Halda áfram\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"áætla tíma sem eftir er\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Fyrirliggjandi útgáfa\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti afrituðu skrárinnar.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Síðasta breytingadagsetning er óþekkt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nýtt\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ný útgáfa\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"í bið\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forskoðun myndar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Velja gátreiti\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Velja allar fyrirliggjandi skrár\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Velja allar nýjar skrár\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Sleppa þessari skrá\", \"Sleppa {count} skrám\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Óþekkt stærð\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Hætt við innsendingu\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Senda inn skrár\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvaða skrám vilt þú vilt halda eftir?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram.\"] } } } } }, { \"locale\": \"it\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"albanobattistella <albanobattistella@gmail.com>, 2024\", \"Language-Team\": \"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"it\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nFrancesco Sercia, 2024\\nalbanobattistella <albanobattistella@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: albanobattistella <albanobattistella@gmail.com>, 2024\\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: it\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" è un nome di file o cartella proibito.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\"è un tipo di file proibito.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`\"{segment}\" non è consentito all'interno di un nome di file o cartella.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} file in conflitto\", \"{count} file in conflitto\", \"{count} file in conflitto\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} secondi rimanenti \"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} rimanente\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"alcuni secondi rimanenti\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annulla\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annulla l'intera operazione\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annulla i caricamenti\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continua\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crea nuovo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"calcolo il tempo rimanente\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versione esistente\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['I nomi dei file non devono terminare con \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero \"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome file non valido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Ultima modifica sconosciuta\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuovo\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nuovo nome file\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nuova versione\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Anteprima immagine\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Rinomina\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleziona tutte le caselle\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleziona tutti i file esistenti\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleziona tutti i nuovi file\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Salta\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Salta questo file\", \"Salta {count} file\", \"Salta {count} file\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Dimensione sconosciuta\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Caricamento\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Carica i file\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Carica cartelle\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Carica dal dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Caricamento annullato\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Il caricamento è stato saltato\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Il caricamento di \"{folder}\" è stato saltato'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progresso del caricamento\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno verranno sovrascritti.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quali file vuoi mantenere?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"È possibile rinominare il file, ignorarlo o annullare l'intera operazione.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Devi selezionare almeno una versione di ogni file per continuare\"] } } } } }, { \"locale\": \"ja\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"kshimohata, 2024\", \"Language-Team\": \"Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ja_JP\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nkojima.imamura, 2024\\nTakafumi AKAMATSU, 2024\\ndevi, 2024\\nkshimohata, 2024\\n\" }, \"msgstr\": [\"Last-Translator: kshimohata, 2024\\nLanguage-Team: Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ja_JP\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" は禁止されているファイルまたはフォルダ名です。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" は禁止されているファイルタイプです。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['ファイルまたはフォルダ名に \"{segment}\" を含めることはできません。'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} ファイル数の競合\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} で {count} 個のファイルが競合しています\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"残り {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"残り {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"残り数秒\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"キャンセル\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"すべての操作をキャンセルする\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"アップロードをキャンセル\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"続ける\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"新規作成\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"概算残り時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既存バージョン\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['ファイル名の末尾に \"{segment}\" を付けることはできません。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"両方のバージョンを選択した場合、受信ファイルの名前に数字が追加されます。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"無効なファイル名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最終更新日不明\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新規作成\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新しいファイル名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新しいバージョン\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"一時停止中\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"プレビュー画像\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"名前を変更\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"すべて選択\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"すべての既存ファイルを選択\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"すべての新規ファイルを選択\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"スキップ\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} 個のファイルをスキップする\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"サイズ不明\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"アップロード\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"ファイルをアップロード\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"フォルダのアップロード\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"デバイスからのアップロード\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"アップロードはキャンセルされました\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"アップロードがスキップされました\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" のアップロードがスキップされました'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"アップロード進行状況\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"受信フォルダが選択されると、その中の競合するファイルもすべて上書きされます。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"受信フォルダが選択されると、その内容は既存のフォルダに書き込まれ、再帰的な競合解決が行われます。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"どのファイルを保持しますか?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"ファイル名を変更するか、このファイルをスキップするか、操作全体をキャンセルすることができます。\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"続行するには、各ファイルの少なくとも1つのバージョンを選択する必要があります。\"] } } } } }, { \"locale\": \"ka\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ka\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ka\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ka_GE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ka_GE\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ka_GE\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"kab\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"ZiriSut, 2023\", \"Language-Team\": \"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"kab\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nZiriSut, 2023\\n\" }, \"msgstr\": [\"Last-Translator: ZiriSut, 2023\\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kab\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} tesdatin i d-yeqqimen\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} i d-yeqqimen\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"qqiment-d kra n tesdatin kan\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Rnu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Sefsex asali\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"asizel n wakud i d-yeqqimen\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"yeḥbes\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Sali-d ifuyla\"] } } } } }, { \"locale\": \"kk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"kk\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kk\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"km\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"km\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: km\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"kn\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"kn\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kn\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ko\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"이상오, 2024\", \"Language-Team\": \"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ko\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\n이상오, 2024\\n\" }, \"msgstr\": [\"Last-Translator: 이상오, 2024\\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ko\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\"(은)는 금지된 파일 및 폴더 이름입니다.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\"(은)는 금지된 파일 형식입니다.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['파일이나 폴더 이름에 \"{segment}\"(을)를 사용할 수 없습니다.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}개의 파일이 충돌함\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname}에서 {count}개의 파일이 충돌함\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds}초 남음\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} 남음\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"곧 완료\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"취소\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"전체 작업을 취소\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"업로드 취소\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"확인\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"새로 만들기\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"남은 시간 계산\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"현재 버전\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['파일 이름은 \"{segment}\"(으)로 끝나야 합니다.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"두 파일을 모두 선택하면, 들어오는 파일의 이름에 번호가 추가됩니다.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"잘못된 파일 이름\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"최근 수정일 알 수 없음\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"새로 만들기\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"새 파일 이름\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"새 버전\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"일시정지됨\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"미리보기 이미지\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"이름 바꾸기\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"모든 체크박스 선택\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"기존 파일을 모두 선택\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"새로운 파일을 모두 선택\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"건너뛰기\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count}개의 파일 넘기기\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"크기를 알 수 없음\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"업로드\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"파일 업로드\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"폴더 업로드\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"장치에서 업로드\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"업로드가 취소되었습니다.\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"업로드를 건너뛰었습니다.\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" 업로드를 건너뛰었습니다.'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"업로드 진행도\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"들어오는 폴더를 선택했다면, 충돌하는 내부 파일들은 덮어쓰기 됩니다.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"들어오는 폴더를 선택했다면 내용물이 그 기존 폴더 안에 작성되고, 전체적으로 충돌 해결을 수행합니다.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"어떤 파일을 보존하시겠습니까?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"파일 이름을 바꾸거나, 이 파일을 건너뛰거나 모든 작업을 취소할 수 있습니다.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다.\"] } } } } }, { \"locale\": \"la\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"la\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: la\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lb\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lb\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lb\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lo\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lo\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lo\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lt_LT\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lt_LT\", \"Plural-Forms\": \"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lt_LT\\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lv\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lv\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lv\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"mk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Сашко Тодоров <sasetodorov@gmail.com>, 2022\", \"Language-Team\": \"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"mk\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nСашко Тодоров <sasetodorov@gmail.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mk\\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"преостануваат {seconds} секунди\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"преостанува {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"уште неколку секунди\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Додади\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Прекини прикачување\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"приближно преостанато време\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"паузирано\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Прикачување датотеки\"] } } } } }, { \"locale\": \"mn\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"BATKHUYAG Ganbold, 2023\", \"Language-Team\": \"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"mn\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nBATKHUYAG Ganbold, 2023\\n\" }, \"msgstr\": [\"Last-Translator: BATKHUYAG Ganbold, 2023\\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mn\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} секунд үлдсэн\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} үлдсэн\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"хэдхэн секунд үлдсэн\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Нэмэх\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Илгээлтийг цуцлах\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Үлдсэн хугацааг тооцоолж байна\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"түр зогсоосон\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Файл илгээх\"] } } } } }, { \"locale\": \"mr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"mr\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mr\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ms_MY\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"DT Navy, 2024\", \"Language-Team\": \"Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ms_MY\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nDT Navy, 2024\\n\" }, \"msgstr\": [\"Last-Translator: DT Navy, 2024\\nLanguage-Team: Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ms_MY\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" adalah fail dan nama folder yang dilarang'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" adalah jenis fail yang dilarang'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" adalah tidak dibenarkan dalam nama fail atau folder'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} files bertindih\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fail bertindih dalam {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saat tinggal\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tinggal\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"beberapa saat lagi\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"batal\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Batal keseluruhan operasi\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"batal muat naik\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"teruskan\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Buat baharu\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"jangkaan masa tinggal\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"versi sedia ada\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Nama fail tidak boleh berakhir dengan \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jika dua versi dipilih, fail yang masuk akan ditambah bilangan pada namanya.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nama fail tidak sah\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Tarikh terakhir diubah suai tidak diketahui\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nama fail baharu\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versi baharu\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Jeda\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Pratonton gambar\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Menamakan semula\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pilih semua kotak pilihan\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pilih semua fail yang wujud\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"pilih semua fail baharu\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Langkau\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Langkau fail {count}\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Saiz tidak diketahui\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Muat naik\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Muat naik fail\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Muat naik folder\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Muat naik dari peranti\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Muat naik telah dibatalkan\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Muat naik telah dilangkau\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Muat naik \"{folder}\" telah dilangkau'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Kemajuan muat naik\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Apabila folder masuk dipilih, sebarang fail bertindih akan ditulis semula\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Apabila folder masuk dipilih, kandungan ditulis ke dalam folder sedia ada dan penyelesaian konflik rekursif dilakukan.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Fail yang mana ingin disimpan?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"And boleh menamakan semula fail, langkau fail tersebut atau membatalkan keseluruhan operasi\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Anda perlu memilih sekurangnya satu versi setiap fail untuk teruskan\"] } } } } }, { \"locale\": \"my\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"my\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: my\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"nb\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Roger Knutsen, 2024\", \"Language-Team\": \"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nb_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nRoger Knutsen, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Roger Knutsen, 2024\\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nb_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er et forbudt fil- eller mappenavn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er en forbudt filtype.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ikke tillatt i et fil- eller mappenavn.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} file conflict\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} file conflict in {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunder igjen\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} igjen\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"noen få sekunder igjen\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Avbryt hele operasjonen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Avbryt opplastninger\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsett\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Opprett ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Estimerer tid igjen\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Gjeldende versjon\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnavn må ikke slutte med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Hvis du velger begge versjonene, vil den innkommende filen ha et nummer lagt til navnet.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ugyldig filnavn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Siste gang redigert ukjent\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nytt filnavn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny versjon\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauset\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forhåndsvis bilde\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Omdøp\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Velg alle\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Velg alle eksisterende filer\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Velg alle nye filer\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Hopp over\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Skip this file\", \"Hopp over {count} filer\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukjent størrelse\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Last opp filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Last opp mapper\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Last opp fra enhet\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Opplastingen er kansellert\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Opplastingen er hoppet over\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Opplasting av \"{folder}\" er hoppet over'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fremdrift, opplasting\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Når en innkommende mappe velges, blir eventuelle motstridende filer i den også overskrevet.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Når en innkommende mappe velges, skrives innholdet inn i den eksisterende mappen, og en rekursiv konfliktløsning utføres.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvilke filer vil du beholde?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan enten gi nytt navn til filen, hoppe over denne filen eller avbryte hele operasjonen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du må velge minst en versjon av hver fil for å fortsette.\"] } } } } }, { \"locale\": \"ne\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ne\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ne\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"nl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Rico <rico-schwab@hotmail.com>, 2023\", \"Language-Team\": \"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nRico <rico-schwab@hotmail.com>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Nog {seconds} seconden\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{seconds} over\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Nog een paar seconden\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Voeg toe\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Uploads annuleren\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Schatting van de resterende tijd\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Gepauzeerd\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload bestanden\"] } } } } }, { \"locale\": \"nn_NO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nn_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nn_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"oc\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"oc\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: oc\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"pl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Piotr Strębski <strebski@gmail.com>, 2024\", \"Language-Team\": \"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"pl\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nPiotr Strębski <strebski@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Piotr Strębski <strebski@gmail.com>, 2024\\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pl\\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}” to zabroniona nazwa pliku lub folderu.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}” jest zabronionym typem pliku.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"Znak „{segment}” nie jest dozwolony w nazwie pliku lub folderu.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"konflikt 1 pliku\", \"{count} konfliktów plików\", \"{count} konfliktów plików\", \"{count} konfliktów plików\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} konfliktowy plik w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Pozostało {seconds} sekund\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Pozostało {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Pozostało kilka sekund\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Anuluj\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Anuluj całą operację\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Anuluj wysyłanie\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Kontynuuj\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Utwórz nowe\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Szacowanie pozostałego czasu\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Istniejąca wersja\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Nazwy plików nie mogą kończyć się na „{segment}”.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jeśli wybierzesz obie wersje, do nazwy pliku przychodzącego zostanie dodany numer.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nieprawidłowa nazwa pliku\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Nieznana data ostatniej modyfikacji\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nowy\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nowa nazwa pliku\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nowa wersja\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Wstrzymane\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Podgląd obrazu\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Zmiana nazwy\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Zaznacz wszystkie pola wyboru\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Zaznacz wszystkie istniejące pliki\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Zaznacz wszystkie nowe pliki\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pomiń\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Pomiń 1 plik\", \"Pomiń {count} plików\", \"Pomiń {count} plików\", \"Pomiń {count} plików\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Nieznany rozmiar\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Prześlij\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Wyślij pliki\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Prześlij foldery\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Prześlij z urządzenia\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Przesyłanie zostało anulowane\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Przesyłanie zostało pominięte\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Przesyłanie „{folder}” zostało pominięte\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Postęp wysyłania\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Po wybraniu folderu przychodzącego wszelkie znajdujące się w nim pliki powodujące konflikt również zostaną nadpisane.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Po wybraniu folderu przychodzącego zawartość jest zapisywana w istniejącym folderze i przeprowadzane jest rekursywne rozwiązywanie konfliktów.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Które pliki chcesz zachować?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Możesz zmienić nazwę pliku, pominąć ten plik lub anulować całą operację.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku.\"] } } } } }, { \"locale\": \"ps\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ps\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ps\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"pt_BR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Paulo Schopf, 2024\", \"Language-Team\": \"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"pt_BR\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\\nRodrigo Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 2024\\nPaulo Schopf, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Paulo Schopf, 2024\\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_BR\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" é um nome de arquivo ou pasta proibido.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" é um tipo de arquivo proibido.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" não é permitido dentro de um nome de arquivo ou pasta.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} arquivos em conflito\", \"{count} arquivos em conflito\", \"{count} arquivos em conflito\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"alguns segundos restantes\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar a operação inteira\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Criar novo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versão existente\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Os nomes dos arquivos não devem terminar com \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se você selecionar ambas as versões, o arquivo recebido terá um número adicionado ao seu nome.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome de arquivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificação desconhecida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo nome de arquivo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versão\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Visualizar imagem\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renomear\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Marque todas as caixas de seleção\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecione todos os arquivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecione todos os novos arquivos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pular\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ignorar {count} arquivos\", \"Ignorar {count} arquivos\", \"Ignorar {count} arquivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamanho desconhecido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Enviar\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar arquivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Enviar pastas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Carregar do dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"O upload foi cancelado\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"O upload foi pulado\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['O upload de \"{folder}\" foi ignorado'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Envio em progresso\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Quando uma pasta é selecionada, quaisquer arquivos dentro dela também serão sobrescritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e uma resolução de conflito recursiva é executada.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quais arquivos você deseja manter?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Você pode renomear o arquivo, pular este arquivo ou cancelar toda a operação.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Você precisa selecionar pelo menos uma versão de cada arquivo para continuar.\"] } } } } }, { \"locale\": \"pt_PT\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Manuela Silva <mmsrs@sky.com>, 2022\", \"Language-Team\": \"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"pt_PT\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nManuela Silva <mmsrs@sky.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_PT\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"faltam {seconds} segundo(s)\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"faltam {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"faltam uns segundos\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Adicionar\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar envios\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"tempo em falta estimado\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar ficheiros\"] } } } } }, { \"locale\": \"ro\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\", \"Language-Team\": \"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ro\", \"Plural-Forms\": \"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ro\\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} secunde rămase\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} rămas\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"câteva secunde rămase\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Adaugă\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Anulați încărcările\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimarea timpului rămas\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pus pe pauză\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Încarcă fișiere\"] } } } } }, { \"locale\": \"ru\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Александр, 2024\", \"Language-Team\": \"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ru\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nВлад, 2024\\nAlex <fedotov22091982@gmail.com>, 2024\\nRoman Stepanov, 2024\\nMaksim Sukharev, 2024\\nАлександр, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Александр, 2024\\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ru\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"«{segment}» — это запрещенное имя файла или папки.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"«{segment}» — это запрещенный тип файла.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"«{segment}» не допускается в имени файла или папки.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"конфликт {count} файла\", \"конфликт {count} файлов\", \"конфликт {count} файлов\", \"конфликт {count} файлов\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"конфликт {count} файла в «{dirname}»\", \"конфликт {count} файлов в «{dirname}»\", \"конфликт {count} файлов в «{dirname}»\", \"конфликт {count} файлов в «{dirname}»\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"осталось {seconds} секунд\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"осталось {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"осталось несколько секунд\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Отменить\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Отменить операцию целиком\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Отменить загрузки\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Продолжить\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Создать новое\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"оценка оставшегося времени\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Текущая версия\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Имена файлов не должны заканчиваться на «{segment}»\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Если вы выберете обе версии, к имени входящего файла будет добавлен номер.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Неверное имя файла\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата последнего изменения неизвестна\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Новый\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Новое имя файла\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Новая версия\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"приостановлено\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Предварительный просмотр\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Переименовать\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Выбрать все\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Выбрать все существующие файлы\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Выбрать все новые файлы\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Пропустить\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустить файл\", \"Пропустить {count} файла\", \"Пропустить {count} файлов\", \"Пропустить {count} файлов\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Неизвестный размер\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Загрузить\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Загрузить файлы\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Загрузить папки\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Загрузить с устройства\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Загрузка была отменена\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Загрузка была пропущена\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Загрузка «{folder}» была пропущена\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Прогресс загрузки\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Какие файлы вы хотите сохранить?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Вы можете переименовать файл, пропустить этот файл или отменить всю операцию.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла.\"] } } } } }, { \"locale\": \"sc\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sc\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sc\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"si\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"si\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: si\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"sk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Tomas Rusnak <linkermail@gmail.com>, 2024\", \"Language-Team\": \"Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sk_SK\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJozef Gaal <preklady@mayday.sk>, 2024\\nTomas Rusnak <linkermail@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Tomas Rusnak <linkermail@gmail.com>, 2024\\nLanguage-Team: Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sk_SK\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ je zakázaný názov súboru alebo priečinka.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" je zákazaný typ súboru.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}“ je zakázané v názve súboru alebo adresára.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} súbor má konflikt\", \"{count} súbory majú konflikt\", \"{count} súborov má konflikt\", \"{count} súborov má konflikt\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} súborový konflikt v {dirname}\", \"{count} súborové konflikty v {dirname}\", \"{count} súborových konfliktov v {dirname}\", \"{count} súborových konfliktov v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekúnd zostáva\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} zostáva\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"zostáva niekoľko sekúnd\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Zrušiť\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušiť celú operáciu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Zrušiť nahrávanie\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovať\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Vytvoriť nové\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"odhadovanie zostávajúceho času\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existujúca verzia\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Názvy súborov nesmú končiť znakom \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ak vyberiete obe verzie, k názvu prichádzajúceho súboru sa pridá číslo.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Neplatný názov súboru\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dátum poslednej úpravy neznámy\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nový\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nový názov súboru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nová verzia\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pozastavené\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Náhľad obrázka\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Premenovať\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Označiť všetky výberové políčka\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrať všetky existujúce súbory\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrať všetky nové súbory\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Preskočiť\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Preskočiť tento súbor\", \"Preskočiť {count} súbory\", \"Preskočiť {count} súborov\", \"Preskočiť {count} súborov\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznáma veľkosť\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Nahrať\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Nahrať súbory\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Nahrať priečinky\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Nahrať zo zariadenia\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nahrávanie bolo zrušené\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nahrávanie bolo preskočené\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Nahrávanie \"{folder}\" bolo preskočené'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Priebeh nahrávania\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Keď je vybraný prichádzajúci priečinok, prepíšu sa aj všetky konfliktné súbory v ňom.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Po výbere prichádzajúceho priečinka sa obsah zapíše do existujúceho priečinka a vykoná sa rekurzívne riešenie konfliktov.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Ktoré súbory chcete ponechať?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Súbor môžete premenovať, preskočiť alebo zrušiť celú operáciu.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Ak chcete pokračovať, musíte vybrať aspoň jednu verziu každého súboru.\"] } } } } }, { \"locale\": \"sl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Simon Bogina, 2024\", \"Language-Team\": \"Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sl\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nJan Kraljič <jan.kraljic@patware.eu>, 2024\\nSimon Bogina, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Simon Bogina, 2024\\nLanguage-Team: Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sl\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" je prepovedano ime datoteka ali mape.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" je prepovedan tip datoteke.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ni dovoljeno v imenu datoteke ali mape.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"1{count} datoteka je v konfliktu\", \"1{count} datoteki sta v konfiktu\", \"1{count} datotek je v konfliktu\", \"{count} datotek je v konfliktu\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} datoteka je v konfiktu v {dirname}\", \"{count} datoteki sta v konfiktu v {dirname}\", \"{count} datotek je v konfiktu v {dirname}\", \"{count} konfliktov datotek v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"še {seconds} sekund\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"še {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"še nekaj sekund\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Prekliči\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Prekliči celotni postopek\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Prekliči pošiljanje\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Nadaljuj\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Ustvari nov\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"ocenjujem čas do konca\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Obstoječa različica\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Imena datotek se ne smejo končati s \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Če izberete obe različici, bo imenu dohodne datoteke na koncu dodana številka.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nepravilno ime datoteke\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum zadnje spremembe neznan\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nov\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo ime datoteke\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova različica\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"v premoru\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Predogled slike\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Preimenuj\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Izberi vsa potrditvena polja\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Označi vse obstoječe datoteke\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Označi vse nove datoteke\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Preskoči\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Preskoči datoteko\", \"Preskoči {count} datoteki\", \"Preskoči {count} datotek\", \"Preskoči {count} datotek\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznana velikost\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Naloži\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Naloži datoteke\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Naloži mape\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Naloži iz naprave\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nalaganje je bilo preklicano\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nalaganje je bilo preskočeno\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Nalaganje \"{folder}\" je bilo preskočeno'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Napredek nalaganja\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ko je izbrana dohodna mapa, bodo vse datototeke v konfliktu znotraj nje prepisane.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Ko je izbrana dohodna mapa, je vsebina vpisana v obstoječo mapo in je izvedeno rekurzivno reševanje konfliktov.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Katere datoteke želite obdržati?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Datoteko lahko preimenujete, preskočite ali prekličete celo operacijo.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Izbrati morate vsaj eno različico vsake datoteke da nadaljujete.\"] } } } } }, { \"locale\": \"sq\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sq\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sq\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"sr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Иван Пешић, 2024\", \"Language-Team\": \"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sr\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nИван Пешић, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Иван Пешић, 2024\\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sr\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}” је забрањено име фајла или фолдера.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}” је забрањен тип фајла.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}” није дозвољено унутар имена фајла или фолдера.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} фајл конфликт\", \"{count} фајл конфликта\", \"{count} фајл конфликта\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} фајл конфликт у {dirname}\", \"{count} фајл конфликта у {dirname}\", \"{count} фајл конфликта у {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"преостало је {seconds} секунди\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} преостало\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"преостало је неколико секунди\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Откажи\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Отказује комплетну операцију\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Обустави отпремања\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Настави\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Креирај ново\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"процена преосталог времена\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Постојећа верзија\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Имена фајлова не смеју да се завршавају на „{segment}”.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ако изаберете обе верзије, на име долазног фајла ће се додати број.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Неисправно име фајла\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Није познат датум последње измене\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ново\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Ново име фајла\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Нова верзија\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"паузирано\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Слика прегледа\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Промени име\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Штиклирај сва поља за штиклирање\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Изабери све постојеће фајлове\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Изабери све нове фајлове\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Прескочи\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Прескочи овај фајл\", \"Прескочи {count} фајла\", \"Прескочи {count} фајлова\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Непозната величина\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Отпреми\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Отпреми фајлове\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Отпреми фолдере\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Отпреми са уређаја\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Отпремање је отказано\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Отпремање је прескочено\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Отпремање „{folder}”је прескочено\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Напредак отпремања\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Када се изабере долазни фолдер, сва имена фајлова са конфликтом унутар њега ће се такође преписати.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Када се изабере долазни фолдер, садржај се уписује у постојећи фолдер и извршава се рекурзивно разрешавање конфликата.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Које фајлове желите да задржите?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Можете или да промените име фајлу, прескочите овај фајл или откажете комплетну операцију.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Морате да изаберете барем једну верзију сваког фајла да наставите.\"] } } } } }, { \"locale\": \"sr@latin\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sr@latin\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sr@latin\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"sv\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Magnus Höglund, 2024\", \"Language-Team\": \"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sv\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMagnus Höglund, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Magnus Höglund, 2024\\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sv\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" är ett förbjudet fil- eller mappnamn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" är en förbjuden filtyp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" är inte tillåtet i ett fil- eller mappnamn.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} filkonflikt\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} filkonflikt i {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunder kvarstår\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} kvarstår\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"några sekunder kvar\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Avbryt hela operationen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Avbryt uppladdningar\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsätt\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Skapa ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"uppskattar kvarstående tid\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Nuvarande version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnamn får inte sluta med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Om du väljer båda versionerna kommer den inkommande filen att läggas till ett nummer i namnet.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ogiltigt filnamn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Senaste ändringsdatum okänt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nytt filnamn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausad\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Förhandsgranska bild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Byt namn\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Markera alla kryssrutor\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Välj alla befintliga filer\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Välj alla nya filer\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Hoppa över\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Hoppa över denna fil\", \"Hoppa över {count} filer\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Okänd storlek\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Ladda upp\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Ladda upp filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ladda upp mappar\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Ladda upp från enhet\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Uppladdningen har avbrutits\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Uppladdningen har hoppats över\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Uppladdningen av \"{folder}\" har hoppats över'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Uppladdningsförlopp\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"När en inkommande mapp väljs skrivs även alla konfliktande filer i den över.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Vilka filer vill du behålla?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan antingen byta namn på filen, hoppa över den här filen eller avbryta hela operationen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du måste välja minst en version av varje fil för att fortsätta.\"] } } } } }, { \"locale\": \"sw\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sw\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sw\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ta\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ta\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ta\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"th\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Phongpanot Phairat <ppnplus@protonmail.com>, 2022\", \"Language-Team\": \"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"th_TH\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: th_TH\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"เหลืออีก {seconds} วินาที\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"เหลืออีก {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"เหลืออีกไม่กี่วินาที\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"เพิ่ม\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"ยกเลิกการอัปโหลด\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"กำลังคำนวณเวลาที่เหลือ\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"หยุดชั่วคราว\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"อัปโหลดไฟล์\"] } } } } }, { \"locale\": \"tk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"tk\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: tk\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"tr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Kaya Zeren <kayazeren@gmail.com>, 2024\", \"Language-Team\": \"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"tr\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nKaya Zeren <kayazeren@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2024\\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: tr\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" dosya ya da klasör adına izin verilmiyor.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" dosya türüne izin verilmiyor.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Bir dosya ya da klasör adında \"{segment}\" ifadesine izin verilmiyor.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} dosya çakışması var\", \"{count} dosya çakışması var\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} klasöründe {count} dosya çakışması var\", \"{dirname} klasöründe {count} dosya çakışması var\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saniye kaldı\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} kaldı\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"bir kaç saniye kaldı\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"İptal\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Tüm işlemi iptal et\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Yüklemeleri iptal et\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"İlerle\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Yeni ekle\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"öngörülen kalan süre\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Var olan sürüm\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dosya adları \"{segment}\" ile bitmemeli.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Dosya adı geçersiz\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Son değiştirilme tarihi bilinmiyor\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Yeni\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Yeni dosya adı\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Yeni sürüm\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"duraklatıldı\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Görsel ön izlemesi\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Yeniden adlandır\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Tüm kutuları işaretle\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Tüm var olan dosyaları seç\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Tüm yeni dosyaları seç\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Atla\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Bu dosyayı atla\", \"{count} dosyayı atla\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Boyut bilinmiyor\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Yükle\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dosyaları yükle\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Klasörleri yükle\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Aygıttan yükle\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Yükleme iptal edildi\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Yükleme atlandı\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" klasörünün yüklenmesi atlandı'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Yükleme ilerlemesi\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bir gelen klasörü seçildiğinde içerik var olan klasöre yazılır ve yinelemeli bir çakışma çözümü uygulanır.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hangi dosyaları tutmak istiyorsunuz?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Dosya adını değiştirebilir, bu dosyayı atlayabilir ya da tüm işlemi iptal edebilirsiniz.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz.\"] } } } } }, { \"locale\": \"ug\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ug\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ug\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"uk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"O St <oleksiy.stasevych@gmail.com>, 2024\", \"Language-Team\": \"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"uk\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nO St <oleksiy.stasevych@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2024\\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uk\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [`\"{segment}\" не є дозволеним ім'ям файлу або каталогу.`] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" не є дозволеним типом файлу.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" не дозволене сполучення символів в назві файлу або каталогу.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} конфліктний файл\", \"{count} конфліктних файли\", \"{count} конфліктних файлів\", \"{count} конфліктних файлів\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} конфліктний файл у каталозі {dirname}\", \"{count} конфліктних файли у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Залишилося {seconds} секунд\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Залишилося {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"залишилося кілька секунд\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Скасувати\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Скасувати операцію повністю\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Скасувати завантаження\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Продовжити\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Створити новий\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"оцінка часу, що залишився\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Присутня версія\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [`Ім'я файлів не можуть закінчуватися на \"{segment}\".`] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Якщо буде вибрано обидві версії, до імени вхідного файлу було додано цифру.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Недійсне ім'я файлу\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата останньої зміни невідома\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Нове\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Нове ім'я файлу\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Нова версія\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"призупинено\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Попередній перегляд\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Перейменувати\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Вибрати все\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Вибрати усі присутні файли\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Вибрати усі нові файли\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Пропустити\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустити файл\", \"Пропустити {count} файли\", \"Пропустити {count} файлів\", \"Пропустити {count} файлів\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Невідомий розмір\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Завантажити\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Завантажити файли\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Завантажити каталоги\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Завантажити з пристрою\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Завантаження скасовано\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Завантаження пропущено\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Завантаження \"{folder}\" пропущено'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Поступ завантаження\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Якщо буде вибрано вхідний каталог, вміст буде записано до наявного каталогу та вирішено конфлікти у відповідних файлах каталогу та підкаталогів.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Які файли залишити?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Ви можете або перейменувати цей файл, пропустити або скасувати дію з файлом.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Для продовження потрібно вибрати принаймні одну версію для кожного файлу.\"] } } } } }, { \"locale\": \"ur_PK\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ur_PK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ur_PK\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"uz\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"uz\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uz\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"vi\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Tung DangQuang, 2023\", \"Language-Team\": \"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"vi\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\\nTung DangQuang, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Tung DangQuang, 2023\\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: vi\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} Tập tin xung đột\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} tập tin lỗi trong {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Còn {second} giây\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Còn lại {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Còn lại một vài giây\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Huỷ tải lên\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Tiếp Tục\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Thời gian còn lại dự kiến\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Phiên Bản Hiện Tại\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Ngày sửa dổi lần cuối không xác định\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Tạo Mới\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Phiên Bản Mới\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"đã tạm dừng\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Xem Trước Ảnh\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Chọn tất cả hộp checkbox\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Chọn tất cả các tập tin có sẵn\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Chọn tất cả các tập tin mới\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Bỏ Qua {count} tập tin\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Không rõ dung lượng\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Dừng Tải Lên\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Tập tin tải lên\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Đang Tải Lên\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Bạn muốn giữ tập tin nào?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục\"] } } } } }, { \"locale\": \"zh_CN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Gloryandel, 2024\", \"Language-Team\": \"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"zh_CN\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nGloryandel, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Gloryandel, 2024\\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_CN\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" 是被禁止的文件名或文件夹名。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" 是被禁止的文件类型。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" 不允许包含在文件名或文件夹名中。'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}文件冲突\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"在{dirname}目录下有{count}个文件冲突\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"剩余 {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"剩余 {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"还剩几秒\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整个操作\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"取消上传\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"继续\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"新建\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估计剩余时间\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"服务端版本\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['文件名不得以 \"{segment}\" 结尾。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"如果同时选择两个版本,则上传文件的名称中将添加一个数字。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"无效文件名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"文件最后修改日期未知\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新建\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新文件名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"上传版本\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暂停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"图片预览\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"重命名\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"选择所有的选择框\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"保留所有服务端版本\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"保留所有上传版本\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"跳过\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"跳过{count}个文件\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"文件大小未知\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"上传\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上传文件\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"上传文件夹\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"从设备上传\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"上传已取消\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"上传已跳过\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['已跳过上传\"{folder}\"'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"上传进度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"当选择上传文件夹时,其中任何冲突的文件也都会被覆盖。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"选择上传文件夹后,内容将写入现有文件夹,并递归执行冲突解决。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"你要保留哪些文件?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"您可以重命名文件、跳过此文件或取消整个操作。\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"每个文件至少选择保留一个版本\"] } } } } }, { \"locale\": \"zh_HK\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Café Tango, 2024\", \"Language-Team\": \"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"zh_HK\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nCafé Tango, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Café Tango, 2024\\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_HK\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" 是禁止使用的檔案或資料夾名稱。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" 是禁止使用的檔案類型。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" 不允許出現在檔案或資料夾名稱中。'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"剩餘 {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"還剩幾秒\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整個操作\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"取消上傳\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"繼續\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"創建新\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估計剩餘時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既有版本\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['檔案名不得以 \"{segment}\" 結尾。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"若您選取兩個版本,傳入檔案的名稱將會新增編號。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"無效的檔案名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最後修改日期不詳\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新增\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新檔案名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新版本 \"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暫停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"預覽圖片\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"重新命名\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"選取所有核取方塊\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"選取所有既有檔案\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"選取所有新檔案\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"跳過\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"略過 {count} 個檔案\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"大小不詳\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"上傳\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上傳檔案\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"上傳資料夾\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"從裝置上傳\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"上傳已被取消\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"上傳已被跳過\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" 的上傳已被跳過'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"上傳進度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"選擇傳入資料夾後,內容將寫入現有資料夾並執行遞歸衝突解決。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"您想保留哪些檔案?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"您可以選擇重新命名檔案、跳過此檔案或取消整個操作。\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }, { \"locale\": \"zh_TW\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"黃柏諺 <s8321414@gmail.com>, 2024\", \"Language-Team\": \"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"zh_TW\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\n黃柏諺 <s8321414@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_TW\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"剩餘 {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"還剩幾秒\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整個操作\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"取消上傳\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"繼續\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估計剩餘時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既有版本\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"若您選取兩個版本,複製的檔案的名稱將會新增編號。\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最後修改日期未知\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新增\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新版本\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暫停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"預覽圖片\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"選取所有核取方塊\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"選取所有既有檔案\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"選取所有新檔案\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"略過 {count} 檔案\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"未知大小\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"已取消上傳\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上傳檔案\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"上傳進度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"您想保留哪些檔案?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }].map((data) => gtBuilder.addTranslation(data.locale, data.json));\nconst gt = gtBuilder.build();\nconst n = gt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\nvar Status = /* @__PURE__ */ ((Status2) => {\n Status2[Status2[\"IDLE\"] = 0] = \"IDLE\";\n Status2[Status2[\"UPLOADING\"] = 1] = \"UPLOADING\";\n Status2[Status2[\"PAUSED\"] = 2] = \"PAUSED\";\n return Status2;\n})(Status || {});\nclass Uploader {\n // Initialized via setter in the constructor\n _destinationFolder;\n _isPublic;\n _customHeaders;\n // Global upload queue\n _uploadQueue = [];\n _jobQueue = new PQueue({\n // Maximum number of concurrent uploads\n // @ts-expect-error TS2339 Object has no defined properties\n concurrency: getCapabilities().files?.chunked_upload?.max_parallel_count ?? 5\n });\n _queueSize = 0;\n _queueProgress = 0;\n _queueStatus = 0;\n _notifiers = [];\n /**\n * Initialize uploader\n *\n * @param {boolean} isPublic are we in public mode ?\n * @param {Folder} destinationFolder the context folder to operate, relative to the root folder\n */\n constructor(isPublic = false, destinationFolder) {\n this._isPublic = isPublic;\n this._customHeaders = {};\n if (!destinationFolder) {\n const source = `${davRemoteURL}${davRootPath}`;\n let owner;\n if (isPublic) {\n owner = \"anonymous\";\n } else {\n const user = getCurrentUser()?.uid;\n if (!user) {\n throw new Error(\"User is not logged in\");\n }\n owner = user;\n }\n destinationFolder = new Folder({\n id: 0,\n owner,\n permissions: Permission.ALL,\n root: davRootPath,\n source\n });\n }\n this.destination = destinationFolder;\n logger.debug(\"Upload workspace initialized\", {\n destination: this.destination,\n root: this.root,\n isPublic,\n maxChunksSize: getMaxChunksSize()\n });\n }\n /**\n * Get the upload destination path relative to the root folder\n */\n get destination() {\n return this._destinationFolder;\n }\n /**\n * Set the upload destination path relative to the root folder\n */\n set destination(folder) {\n if (!folder || folder.type !== FileType.Folder || !folder.source) {\n throw new Error(\"Invalid destination folder\");\n }\n logger.debug(\"Destination set\", { folder });\n this._destinationFolder = folder;\n }\n /**\n * Get the root folder\n */\n get root() {\n return this._destinationFolder.source;\n }\n /**\n * Get registered custom headers for uploads\n */\n get customHeaders() {\n return structuredClone(this._customHeaders);\n }\n /**\n * Set a custom header\n * @param name The header to set\n * @param value The string value\n */\n setCustomHeader(name, value = \"\") {\n this._customHeaders[name] = value;\n }\n /**\n * Unset a custom header\n * @param name The header to unset\n */\n deleteCustomerHeader(name) {\n delete this._customHeaders[name];\n }\n /**\n * Get the upload queue\n */\n get queue() {\n return this._uploadQueue;\n }\n reset() {\n if (this._uploadQueue.length === 0 && this._jobQueue.size === 0) {\n return;\n }\n this._uploadQueue.splice(0, this._uploadQueue.length);\n this._jobQueue.clear();\n this._queueSize = 0;\n this._queueProgress = 0;\n this._queueStatus = 0;\n logger.debug(\"Uploader state reset\");\n }\n /**\n * Pause any ongoing upload(s)\n */\n pause() {\n this._jobQueue.pause();\n this._queueStatus = 2;\n }\n /**\n * Resume any pending upload(s)\n */\n start() {\n this._jobQueue.start();\n this._queueStatus = 1;\n this.updateStats();\n }\n /**\n * Get the upload queue stats\n */\n get info() {\n return {\n size: this._queueSize,\n progress: this._queueProgress,\n status: this._queueStatus\n };\n }\n updateStats() {\n const size = this._uploadQueue.map((upload2) => upload2.size).reduce((partialSum, a) => partialSum + a, 0);\n const uploaded = this._uploadQueue.map((upload2) => upload2.uploaded).reduce((partialSum, a) => partialSum + a, 0);\n this._queueSize = size;\n this._queueProgress = uploaded;\n if (this._queueStatus === 2) {\n return;\n }\n this._queueStatus = this._jobQueue.size > 0 ? 1 : 0;\n }\n addNotifier(notifier) {\n this._notifiers.push(notifier);\n }\n /**\n * Notify listeners of the upload completion\n * @param upload The upload that finished\n */\n _notifyAll(upload2) {\n for (const notifier of this._notifiers) {\n try {\n notifier(upload2);\n } catch (error) {\n logger.warn(\"Error in upload notifier\", { error, source: upload2.source });\n }\n }\n }\n /**\n * Uploads multiple files or folders while preserving the relative path (if available)\n * @param {string} destination The destination path relative to the root folder. e.g. /foo/bar (a file \"a.txt\" will be uploaded then to \"/foo/bar/a.txt\")\n * @param {Array<File|FileSystemEntry>} files The files and/or folders to upload\n * @param {Function} callback Callback that receives the nodes in the current folder and the current path to allow resolving conflicts, all nodes that are returned will be uploaded (if a folder does not exist it will be created)\n * @return Cancelable promise that resolves to an array of uploads\n *\n * @example\n * ```ts\n * // For example this is from handling the onchange event of an input[type=file]\n * async handleFiles(files: File[]) {\n * this.uploads = await this.uploader.batchUpload('uploads', files, this.handleConflicts)\n * }\n *\n * async handleConflicts(nodes: File[], currentPath: string) {\n * const conflicts = getConflicts(nodes, this.fetchContent(currentPath))\n * if (conflicts.length === 0) {\n * // No conflicts so upload all\n * return nodes\n * } else {\n * // Open the conflict picker to resolve conflicts\n * try {\n * const { selected, renamed } = await openConflictPicker(currentPath, conflicts, this.fetchContent(currentPath), { recursive: true })\n * return [...selected, ...renamed]\n * } catch (e) {\n * return false\n * }\n * }\n * }\n * ```\n */\n batchUpload(destination, files, callback) {\n if (!callback) {\n callback = async (files2) => files2;\n }\n return new PCancelable(async (resolve, reject, onCancel) => {\n const rootFolder = new Directory(\"\");\n await rootFolder.addChildren(files);\n const target = `${this.root.replace(/\\/$/, \"\")}/${destination.replace(/^\\//, \"\")}`;\n const upload2 = new Upload(target, false, 0, rootFolder);\n upload2.status = Status$1.UPLOADING;\n this._uploadQueue.push(upload2);\n logger.debug(\"Starting new batch upload\", { target });\n try {\n const client = davGetClient(this.root, this._customHeaders);\n const promise = this.uploadDirectory(destination, rootFolder, callback, client);\n onCancel(() => promise.cancel());\n const uploads = await promise;\n upload2.status = Status$1.FINISHED;\n resolve(uploads);\n } catch (error) {\n logger.error(\"Error in batch upload\", { error });\n upload2.status = Status$1.FAILED;\n reject(t(\"Upload has been cancelled\"));\n } finally {\n this._notifyAll(upload2);\n this.updateStats();\n }\n });\n }\n /**\n * Helper to create a directory wrapped inside an Upload class\n * @param destination Destination where to create the directory\n * @param directory The directory to create\n * @param client The cached WebDAV client\n */\n createDirectory(destination, directory, client) {\n const folderPath = normalize(`${destination}/${directory.name}`).replace(/\\/$/, \"\");\n const rootPath = `${this.root.replace(/\\/$/, \"\")}/${folderPath.replace(/^\\//, \"\")}`;\n if (!directory.name) {\n throw new Error(\"Can not create empty directory\");\n }\n const currentUpload = new Upload(rootPath, false, 0, directory);\n this._uploadQueue.push(currentUpload);\n return new PCancelable(async (resolve, reject, onCancel) => {\n const abort = new AbortController();\n onCancel(() => abort.abort());\n currentUpload.signal.addEventListener(\"abort\", () => reject(t(\"Upload has been cancelled\")));\n await this._jobQueue.add(async () => {\n currentUpload.status = Status$1.UPLOADING;\n try {\n await client.createDirectory(folderPath, { signal: abort.signal });\n resolve(currentUpload);\n } catch (error) {\n if (error && typeof error === \"object\" && \"status\" in error && error.status === 405) {\n currentUpload.status = Status$1.FINISHED;\n logger.debug(\"Directory already exists, writing into it\", { directory: directory.name });\n } else {\n currentUpload.status = Status$1.FAILED;\n reject(error);\n }\n } finally {\n this._notifyAll(currentUpload);\n this.updateStats();\n }\n });\n });\n }\n // Helper for uploading directories (recursively)\n uploadDirectory(destination, directory, callback, client) {\n const folderPath = normalize(`${destination}/${directory.name}`).replace(/\\/$/, \"\");\n return new PCancelable(async (resolve, reject, onCancel) => {\n const abort = new AbortController();\n onCancel(() => abort.abort());\n const selectedForUpload = await callback(directory.children, folderPath);\n if (selectedForUpload === false) {\n logger.debug(\"Upload canceled by user\", { directory });\n reject(t(\"Upload has been cancelled\"));\n return;\n } else if (selectedForUpload.length === 0 && directory.children.length > 0) {\n logger.debug(\"Skipping directory, as all files were skipped by user\", { directory });\n resolve([]);\n return;\n }\n const directories = [];\n const uploads = [];\n abort.signal.addEventListener(\"abort\", () => {\n directories.forEach((upload2) => upload2.cancel());\n uploads.forEach((upload2) => upload2.cancel());\n });\n logger.debug(\"Start directory upload\", { directory });\n try {\n if (directory.name) {\n uploads.push(this.createDirectory(destination, directory, client));\n await uploads.at(-1);\n }\n for (const node of selectedForUpload) {\n if (node instanceof Directory) {\n directories.push(this.uploadDirectory(folderPath, node, callback, client));\n } else {\n uploads.push(this.upload(`${folderPath}/${node.name}`, node));\n }\n }\n const resolvedUploads = await Promise.all(uploads);\n const resolvedDirectoryUploads = await Promise.all(directories);\n resolve([resolvedUploads, ...resolvedDirectoryUploads].flat());\n } catch (e) {\n abort.abort(e);\n reject(e);\n }\n });\n }\n /**\n * Upload a file to the given path\n * @param {string} destination the destination path relative to the root folder. e.g. /foo/bar.txt\n * @param {File|FileSystemFileEntry} fileHandle the file to upload\n * @param {string} root the root folder to upload to\n * @param retries number of retries\n */\n upload(destination, fileHandle, root, retries = 5) {\n root = root || this.root;\n const destinationPath = `${root.replace(/\\/$/, \"\")}/${destination.replace(/^\\//, \"\")}`;\n const { origin } = new URL(destinationPath);\n const encodedDestinationFile = origin + encodePath(destinationPath.slice(origin.length));\n logger.debug(`Uploading ${fileHandle.name} to ${encodedDestinationFile}`);\n const promise = new PCancelable(async (resolve, reject, onCancel) => {\n if (isFileSystemFileEntry(fileHandle)) {\n fileHandle = await new Promise((resolve2) => fileHandle.file(resolve2, reject));\n }\n const file = fileHandle;\n const maxChunkSize = getMaxChunksSize(\"size\" in file ? file.size : void 0);\n const disabledChunkUpload = this._isPublic || maxChunkSize === 0 || \"size\" in file && file.size < maxChunkSize;\n const upload2 = new Upload(destinationPath, !disabledChunkUpload, file.size, file);\n this._uploadQueue.push(upload2);\n this.updateStats();\n onCancel(upload2.cancel);\n if (!disabledChunkUpload) {\n logger.debug(\"Initializing chunked upload\", { file, upload: upload2 });\n const tempUrl = await initChunkWorkspace(encodedDestinationFile, retries);\n const chunksQueue = [];\n for (let chunk = 0; chunk < upload2.chunks; chunk++) {\n const bufferStart = chunk * maxChunkSize;\n const bufferEnd = Math.min(bufferStart + maxChunkSize, upload2.size);\n const blob = () => getChunk(file, bufferStart, maxChunkSize);\n const request = () => {\n return uploadData(\n `${tempUrl}/${chunk + 1}`,\n blob,\n upload2.signal,\n () => this.updateStats(),\n encodedDestinationFile,\n {\n ...this._customHeaders,\n \"X-OC-Mtime\": Math.floor(file.lastModified / 1e3),\n \"OC-Total-Length\": file.size,\n \"Content-Type\": \"application/octet-stream\"\n },\n retries\n ).then(() => {\n upload2.uploaded = upload2.uploaded + maxChunkSize;\n }).catch((error) => {\n if (error?.response?.status === 507) {\n logger.error(\"Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks\", { error, upload: upload2 });\n upload2.cancel();\n upload2.status = Status$1.FAILED;\n throw error;\n }\n if (!isCancel(error)) {\n logger.error(`Chunk ${chunk + 1} ${bufferStart} - ${bufferEnd} uploading failed`, { error, upload: upload2 });\n upload2.cancel();\n upload2.status = Status$1.FAILED;\n }\n throw error;\n });\n };\n chunksQueue.push(this._jobQueue.add(request));\n }\n try {\n await Promise.all(chunksQueue);\n this.updateStats();\n upload2.response = await axios.request({\n method: \"MOVE\",\n url: `${tempUrl}/.file`,\n headers: {\n ...this._customHeaders,\n \"X-OC-Mtime\": Math.floor(file.lastModified / 1e3),\n \"OC-Total-Length\": file.size,\n Destination: encodedDestinationFile\n }\n });\n this.updateStats();\n upload2.status = Status$1.FINISHED;\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload: upload2 });\n resolve(upload2);\n } catch (error) {\n if (!isCancel(error)) {\n upload2.status = Status$1.FAILED;\n reject(\"Failed assembling the chunks together\");\n } else {\n upload2.status = Status$1.FAILED;\n reject(t(\"Upload has been cancelled\"));\n }\n axios.request({\n method: \"DELETE\",\n url: `${tempUrl}`\n });\n }\n this._notifyAll(upload2);\n } else {\n logger.debug(\"Initializing regular upload\", { file, upload: upload2 });\n const blob = await getChunk(file, 0, upload2.size);\n const request = async () => {\n try {\n upload2.response = await uploadData(\n encodedDestinationFile,\n blob,\n upload2.signal,\n (event) => {\n upload2.uploaded = upload2.uploaded + event.bytes;\n this.updateStats();\n },\n void 0,\n {\n ...this._customHeaders,\n \"X-OC-Mtime\": Math.floor(file.lastModified / 1e3),\n \"Content-Type\": file.type\n }\n );\n upload2.uploaded = upload2.size;\n this.updateStats();\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload: upload2 });\n resolve(upload2);\n } catch (error) {\n if (isCancel(error)) {\n upload2.status = Status$1.FAILED;\n reject(t(\"Upload has been cancelled\"));\n return;\n }\n if (error?.response) {\n upload2.response = error.response;\n }\n upload2.status = Status$1.FAILED;\n logger.error(`Failed uploading ${file.name}`, { error, file, upload: upload2 });\n reject(\"Failed uploading the file\");\n }\n this._notifyAll(upload2);\n };\n this._jobQueue.add(request);\n this.updateStats();\n }\n this._jobQueue.onIdle().then(() => this.reset());\n return upload2;\n });\n return promise;\n }\n}\nfunction normalizeComponent(scriptExports, render6, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render6) {\n options.render = render6;\n options.staticRenderFns = staticRenderFns;\n options._compiled = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst _sfc_main$4 = {\n name: \"CancelIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$4 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon cancel-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n null\n);\nconst IconCancel = __component__$4.exports;\nconst _sfc_main$3 = {\n name: \"FolderUploadIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$3 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon folder-upload-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n null\n);\nconst IconFolderUpload = __component__$3.exports;\nconst _sfc_main$2 = {\n name: \"PlusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$2 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon plus-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n null\n);\nconst IconPlus = __component__$2.exports;\nconst _sfc_main$1 = {\n name: \"UploadIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$1 = function render4() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon upload-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst IconUpload = __component__$1.exports;\nfunction showInvalidFilenameDialog(error) {\n const InvalidFilenameDialog = defineAsyncComponent(() => import(\"./InvalidFilenameDialog-CQ6TfYs0.mjs\"));\n const { promise, reject, resolve } = Promise.withResolvers();\n spawnDialog(\n InvalidFilenameDialog,\n {\n error,\n validateFilename\n },\n (...rest) => {\n const [{ skip, rename }] = rest;\n if (skip) {\n resolve(false);\n } else if (rename) {\n resolve(rename);\n } else {\n reject();\n }\n }\n );\n return promise;\n}\nfunction hasConflict(files, content) {\n return getConflicts(files, content).length > 0;\n}\nfunction getConflicts(files, content) {\n const contentNames = content.map((node) => node.basename);\n const conflicts = files.filter((node) => {\n const name = \"basename\" in node ? node.basename : node.name;\n return contentNames.indexOf(name) !== -1;\n });\n return conflicts;\n}\nfunction uploadConflictHandler(contentsCallback) {\n return async (nodes, path) => {\n try {\n const content = await contentsCallback(path).catch(() => []);\n const conflicts = getConflicts(nodes, content);\n if (conflicts.length > 0) {\n const { selected, renamed } = await openConflictPicker(path, conflicts, content, { recursive: true });\n nodes = [...selected, ...renamed];\n }\n const filesToUpload = [];\n for (const file of nodes) {\n try {\n validateFilename(file.name);\n filesToUpload.push(file);\n } catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n logger.error(`Unexpected error while validating ${file.name}`, { error });\n throw error;\n }\n let newName = await showInvalidFilenameDialog(error);\n if (newName !== false) {\n newName = getUniqueName(newName, nodes.map((node) => node.name));\n Object.defineProperty(file, \"name\", { value: newName });\n filesToUpload.push(file);\n }\n }\n }\n if (filesToUpload.length === 0 && nodes.length > 0) {\n const folder = basename(path);\n showInfo(\n folder ? t('Upload of \"{folder}\" has been skipped', { folder }) : t(\"Upload has been skipped\")\n );\n }\n return filesToUpload;\n } catch (error) {\n logger.debug(\"Upload has been cancelled\", { error });\n showWarning(t(\"Upload has been cancelled\"));\n return false;\n }\n };\n}\nconst _sfc_main = defineComponent({\n name: \"UploadPicker\",\n components: {\n IconCancel,\n IconFolderUpload,\n IconPlus,\n IconUpload,\n NcActionButton,\n NcActionCaption,\n NcActionSeparator,\n NcActions,\n NcButton,\n NcIconSvgWrapper,\n NcProgressBar\n },\n props: {\n accept: {\n type: Array,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Allow to disable the \"new\"-menu for this UploadPicker instance\n */\n noMenu: {\n type: Boolean,\n default: false\n },\n destination: {\n type: Folder,\n default: void 0\n },\n allowFolders: {\n type: Boolean,\n default: false\n },\n /**\n * List of file present in the destination folder\n * It is also possible to provide a function that takes a relative path to the current directory and returns the content of it\n * Note: If a function is passed it should return the current base directory when no path or an empty is passed\n */\n content: {\n type: [Array, Function],\n default: () => []\n },\n /**\n * Overwrite forbidden characters (by default the capabilities of the server are used)\n * @deprecated Deprecated and will be removed in the next major version\n */\n forbiddenCharacters: {\n type: Array,\n default: () => []\n }\n },\n setup() {\n return {\n t,\n // non reactive data / properties\n progressTimeId: `nc-uploader-progress-${Math.random().toString(36).slice(7)}`\n };\n },\n data() {\n return {\n eta: null,\n openedMenu: false,\n timeLeft: \"\",\n newFileMenuEntries: [],\n uploadManager: getUploader()\n };\n },\n computed: {\n menuEntriesUpload() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.UploadFromDevice);\n },\n menuEntriesNew() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.CreateNew);\n },\n menuEntriesOther() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.Other);\n },\n /**\n * Check whether the current browser supports uploading directories\n * Hint: This does not check if the current connection supports this, as some browsers require a secure context!\n */\n canUploadFolders() {\n return this.allowFolders && \"webkitdirectory\" in document.createElement(\"input\");\n },\n totalQueueSize() {\n return this.uploadManager.info?.size || 0;\n },\n uploadedQueueSize() {\n return this.uploadManager.info?.progress || 0;\n },\n progress() {\n return Math.round(this.uploadedQueueSize / this.totalQueueSize * 100) || 0;\n },\n queue() {\n return this.uploadManager.queue;\n },\n hasFailure() {\n return this.queue?.filter((upload2) => upload2.status === Status$1.FAILED).length !== 0;\n },\n isUploading() {\n return this.queue?.length > 0;\n },\n isAssembling() {\n return this.queue?.filter((upload2) => upload2.status === Status$1.ASSEMBLING).length !== 0;\n },\n isPaused() {\n return this.uploadManager.info?.status === Status.PAUSED;\n },\n buttonLabel() {\n return this.noMenu ? t(\"Upload\") : t(\"New\");\n },\n // Hide the button text if we're uploading\n buttonName() {\n if (this.isUploading) {\n return void 0;\n }\n return this.buttonLabel;\n },\n haveMenu() {\n return !((this.noMenu || this.newFileMenuEntries.length === 0) && !this.canUploadFolders);\n }\n },\n watch: {\n allowFolders: {\n immediate: true,\n handler() {\n if (typeof this.content !== \"function\" && this.allowFolders) {\n logger.error(\"[UploadPicker] Setting `allowFolders` is only allowed if `content` is a function\");\n }\n }\n },\n destination(destination) {\n this.setDestination(destination);\n },\n totalQueueSize(size) {\n this.eta = makeEta({ min: 0, max: size });\n this.updateStatus();\n },\n uploadedQueueSize(size) {\n this.eta?.report?.(size);\n this.updateStatus();\n },\n isPaused(isPaused) {\n if (isPaused) {\n this.$emit(\"paused\", this.queue);\n } else {\n this.$emit(\"resumed\", this.queue);\n }\n }\n },\n beforeMount() {\n if (this.destination) {\n this.setDestination(this.destination);\n }\n this.uploadManager.addNotifier(this.onUploadCompletion);\n useHotKey(\"u\", this.onKeyDown, {\n stop: true,\n prevent: true,\n shift: true\n });\n useHotKey(\"Escape\", this.onKeyDown, {\n stop: true,\n prevent: true\n });\n logger.debug(\"UploadPicker initialised\");\n },\n methods: {\n /**\n * Handle clicking a new-menu entry\n * @param entry The entry that was clicked\n */\n async onClick(entry) {\n entry.handler(\n this.destination,\n await this.getContent().catch(() => [])\n );\n },\n /**\n * Trigger file picker\n * @param uploadFolders Upload folders\n */\n onTriggerPick(uploadFolders = false) {\n const input = this.$refs.input;\n if (this.canUploadFolders) {\n input.webkitdirectory = uploadFolders;\n }\n this.$nextTick(() => input.click());\n },\n /**\n * Helper for backwards compatibility that queries the content of the current directory\n * @param path The current path\n */\n async getContent(path) {\n return Array.isArray(this.content) ? this.content : await this.content(path);\n },\n /**\n * Start uploading\n */\n onPick() {\n const input = this.$refs.input;\n const files = input.files ? Array.from(input.files) : [];\n this.uploadManager.batchUpload(\"\", files, uploadConflictHandler(this.getContent)).catch((error) => logger.debug(\"Error while uploading\", { error })).finally(() => this.resetForm());\n },\n resetForm() {\n const form = this.$refs.form;\n form?.reset();\n },\n /**\n * Cancel ongoing queue\n */\n onCancel() {\n this.uploadManager.queue.forEach((upload2) => {\n upload2.cancel();\n });\n this.resetForm();\n },\n updateStatus() {\n if (this.isPaused) {\n this.timeLeft = t(\"paused\");\n return;\n }\n const estimate = Math.round(this.eta.estimate());\n if (estimate === Infinity) {\n this.timeLeft = t(\"estimating time left\");\n return;\n }\n if (estimate < 10) {\n this.timeLeft = t(\"a few seconds left\");\n return;\n }\n if (estimate > 60) {\n const date = /* @__PURE__ */ new Date(0);\n date.setSeconds(estimate);\n const time = date.toISOString().slice(11, 11 + 8);\n this.timeLeft = t(\"{time} left\", { time });\n return;\n }\n this.timeLeft = t(\"{seconds} seconds left\", { seconds: estimate });\n },\n setDestination(destination) {\n if (!this.destination) {\n logger.debug(\"Invalid destination\");\n return;\n }\n this.uploadManager.destination = destination;\n this.newFileMenuEntries = getNewFileMenuEntries(destination);\n },\n onUploadCompletion(upload2) {\n if (upload2.status === Status$1.FAILED) {\n this.$emit(\"failed\", upload2);\n } else {\n this.$emit(\"uploaded\", upload2);\n }\n },\n onKeyDown(event) {\n if (event.key === \"u\") {\n if (this.haveMenu) {\n this.openedMenu = true;\n return;\n }\n this.onTriggerPick();\n }\n if (event.key === \"Escape\" && this.openedMenu) {\n this.openedMenu = false;\n }\n }\n }\n});\nvar _sfc_render = function render5() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _vm.destination ? _c(\"form\", { ref: \"form\", staticClass: \"upload-picker\", class: { \"upload-picker--uploading\": _vm.isUploading, \"upload-picker--paused\": _vm.isPaused }, attrs: { \"data-cy-upload-picker\": \"\" } }, [!_vm.haveMenu ? _c(\"NcButton\", { attrs: { \"disabled\": _vm.disabled, \"data-cy-upload-picker-add\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-file\", \"type\": \"secondary\" }, on: { \"click\": function($event) {\n return _vm.onTriggerPick();\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconPlus\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1991456921) }, [_vm._v(\" \" + _vm._s(_vm.buttonName) + \" \")]) : _c(\"NcActions\", { attrs: { \"aria-label\": _vm.buttonLabel, \"menu-name\": _vm.buttonName, \"open\": _vm.openedMenu, \"type\": \"secondary\" }, on: { \"update:open\": function($event) {\n _vm.openedMenu = $event;\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconPlus\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1991456921) }, [_c(\"NcActionCaption\", { attrs: { \"name\": _vm.t(\"Upload from device\") } }), _c(\"NcActionButton\", { attrs: { \"data-cy-upload-picker-add\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-file\", \"close-after-click\": true }, on: { \"click\": function($event) {\n return _vm.onTriggerPick();\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconUpload\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 337456192) }, [_vm._v(\" \" + _vm._s(_vm.t(\"Upload files\")) + \" \")]), _vm.canUploadFolders ? _c(\"NcActionButton\", { attrs: { \"close-after-click\": \"\", \"data-cy-upload-picker-add-folders\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-folder\" }, on: { \"click\": function($event) {\n return _vm.onTriggerPick(true);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconFolderUpload\", { staticStyle: { \"color\": \"var(--color-primary-element)\" }, attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1037549157) }, [_vm._v(\" \" + _vm._s(_vm.t(\"Upload folders\")) + \" \")]) : _vm._e(), !_vm.noMenu ? _vm._l(_vm.menuEntriesUpload, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n }) : _vm._e(), !_vm.noMenu && _vm.menuEntriesNew.length > 0 ? [_c(\"NcActionSeparator\"), _c(\"NcActionCaption\", { attrs: { \"name\": _vm.t(\"Create new\") } }), _vm._l(_vm.menuEntriesNew, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n })] : _vm._e(), !_vm.noMenu && _vm.menuEntriesOther.length > 0 ? [_c(\"NcActionSeparator\"), _vm._l(_vm.menuEntriesOther, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n })] : _vm._e()], 2), _c(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: _vm.isUploading, expression: \"isUploading\" }], staticClass: \"upload-picker__progress\" }, [_c(\"NcProgressBar\", { attrs: { \"aria-label\": _vm.t(\"Upload progress\"), \"aria-describedby\": _vm.progressTimeId, \"error\": _vm.hasFailure, \"value\": _vm.progress, \"size\": \"medium\" } }), _c(\"p\", { attrs: { \"id\": _vm.progressTimeId } }, [_vm._v(\" \" + _vm._s(_vm.timeLeft) + \" \")])], 1), _vm.isUploading ? _c(\"NcButton\", { staticClass: \"upload-picker__cancel\", attrs: { \"type\": \"tertiary\", \"aria-label\": _vm.t(\"Cancel uploads\"), \"data-cy-upload-picker-cancel\": \"\" }, on: { \"click\": _vm.onCancel }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconCancel\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 3076329829) }) : _vm._e(), _c(\"input\", { ref: \"input\", staticClass: \"hidden-visually\", attrs: { \"accept\": _vm.accept?.join?.(\", \"), \"multiple\": _vm.multiple, \"data-cy-upload-picker-input\": \"\", \"type\": \"file\" }, on: { \"change\": _vm.onPick } })], 1) : _vm._e();\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"e69e222f\"\n);\nconst UploadPicker = __component__.exports;\nfunction getUploader(isPublic = isPublicShare(), forceRecreate = false) {\n if (forceRecreate || window._nc_uploader === void 0) {\n window._nc_uploader = new Uploader(isPublic);\n }\n return window._nc_uploader;\n}\nfunction upload(destinationPath, file) {\n const uploader = getUploader();\n uploader.upload(destinationPath, file);\n return uploader;\n}\nasync function openConflictPicker(dirname, conflicts, content, options) {\n const ConflictPicker = defineAsyncComponent(() => import(\"./ConflictPicker-NXkHfBMv.mjs\"));\n return new Promise((resolve, reject) => {\n const picker = new Vue({\n name: \"ConflictPickerRoot\",\n render: (h) => h(ConflictPicker, {\n props: {\n dirname,\n conflicts,\n content,\n recursiveUpload: options?.recursive === true\n },\n on: {\n submit(results) {\n resolve(results);\n picker.$destroy();\n picker.$el?.parentNode?.removeChild(picker.$el);\n },\n cancel(error) {\n reject(error ?? new Error(\"Canceled\"));\n picker.$destroy();\n picker.$el?.parentNode?.removeChild(picker.$el);\n }\n }\n })\n });\n picker.$mount();\n document.body.appendChild(picker.$el);\n });\n}\nexport {\n Status$1 as S,\n UploadPicker as U,\n isFileSystemEntry as a,\n n as b,\n getConflicts as c,\n uploadConflictHandler as d,\n Upload as e,\n Uploader as f,\n getUploader as g,\n hasConflict as h,\n isFileSystemFileEntry as i,\n Status as j,\n logger as l,\n normalizeComponent as n,\n openConflictPicker as o,\n t,\n upload as u\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"2441\":\"fc741cf57e9647f370a3\",\"5266\":\"92742106cfd0ab7e96b2\",\"5862\":\"7b9b02dc0a1b898066ef\",\"7874\":\"3ea1c62ce5f0e7d75e81\",\"8320\":\"87233c1e751a74de3fe2\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2882;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2882: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(52054)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","getPinia","window","_nc_files_pinia","createPinia","getLoggerBuilder","setApp","detectUser","build","isTrashbinEnabled","getCapabilities","files","undelete","canUnshareOnly","nodes","every","node","attributes","canDisconnectOnly","displayName","view","length","t","id","hasSharedItems","some","hasDeleteItems","isMixedUnshareAndDelete","type","FileType","File","isAllFiles","Folder","isAllFolders","askConfirmation","async","message","n","count","Promise","resolve","OC","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","cancel","decision","deleteNode","axios","delete","encodedSource","emit","queue","PQueue","concurrency","action","FileAction","iconSvgInline","CloseSvg","enabled","loadState","allow_delete","map","permissions","permission","Permission","DELETE","exec","isCalledFromEventListener","Error","stack","toLocaleLowerCase","includes","showInfo","error","logger","source","execBatch","all","promises","add","order","shouldFavorite","favorite","favoriteNode","willFavorite","url","generateUrl","encodePath","path","post","tags","TAG_FAVORITE","dirname","Vue","StarOutlineSvg","StarSvg","isPublicShare","root","startsWith","NONE","PencilSvg","Boolean","InformationSvg","OCA","Files","Sidebar","dir","file","debug","setActiveTab","open","OCP","Router","goToRoute","fileid","String","query","opendetails","useActiveStore","store","defineStore","state","_initialized","activeNode","activeView","activeAction","actions","setActiveNode","this","clearActiveNode","onDeletedNode","setActiveAction","clearActiveAction","onChangedView","arguments","undefined","activeStore","navigation","getNavigation","subscribe","active","addEventListener","event","detail","executeAction","currentDir","currentNode","currentView","status","NodeStatus","LOADING","success","showSuccess","showError","initialUserConfig","show_hidden","crop_image_previews","sort_favorites_first","sort_folders_first","grid_view","useUserConfigStore","userConfig","ref","_ref","key","value","set","onUpdate","update","getCurrentUser","put","name","emits","props","title","fillColor","default","size","Number","_vm","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","throttle","delay","callback","options","timeoutID","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","cancelled","lastExec","clearExistingTimeout","clearTimeout","wrapper","_len","arguments_","Array","_key","self","elapsed","Date","now","apply","clear","setTimeout","_ref2$upcomingOnly","upcomingOnly","components","ChartPie","NcAppNavigationItem","NcProgressBar","data","loadingStorageStats","storageStats","computed","storageStatsTitle","usedQuotaByte","formatFileSize","used","quotaByte","quota","storageStatsTooltip","relative","beforeMount","setInterval","throttleUpdateStorageStats","mounted","free","showStorageFullWarning","methods","debounceUpdateStorageStats","_ref$atBegin","atBegin","updateStorageStats","response","get","translate","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","class","stopPropagation","preventDefault","slot","Math","min","el","Function","required","$el","appendChild","Clipboard","NcAppSettingsDialog","NcAppSettingsSection","NcCheckboxRadioSwitch","NcInputField","Setting","setup","userConfigStore","isSystemtagsEnabled","systemtags","settings","Settings","webdavUrl","generateRemoteUrl","encodeURIComponent","uid","webdavDocs","appPasswordUrl","webdavUrlCopied","enableGridView","created","useHotKey","showKeyboardShortcuts","stop","prevent","forEach","setting","beforeDestroy","close","onClose","setConfig","copyCloudId","document","querySelector","select","navigator","clipboard","writeText","$nextTick","getElementById","scrollIntoView","behavior","inline","folder_tree","_l","target","scopedSlots","_u","fn","proxy","useNavigation","_loaded","views","shallowRef","onUpdateActive","onUpdateViews","triggerRef","onMounted","onUnmounted","removeEventListener","initialViewConfig","useViewConfigStore","viewConfigs","viewId","getConfig","viewid","setSortingBy","toggleSortingDirection","sorting_direction","defineComponent","Fragment","NcIconSvgWrapper","parent","Object","level","viewConfigStore","currentViews","values","reduce","acc","filter","params","style","hasChildViews","useExactRouteMatching","generateToNavigation","isExpanded","expanded","onOpen","loadChildViews","filterView","viewMap","fromEntries","entries","_views","_setupProxy","loading","iconClass","sticky","icon","loaded","staticStyle","FilenameFilter","FileListFilter","constructor","super","_defineProperty","queryParts","searchQuery","split","displayname","part","reset","updateQuery","trim","filterUpdated","chips","push","text","onclick","updateChips","dispatchTypedEvent","CustomEvent","isFileListFilterWithUi","useFiltersStore","filters","filtersChanged","activeChips","flat","sortedFilters","sort","a","b","filtersWithUI","addFilter","onFilterUpdateChips","onFilterUpdate","removeFilter","filterId","index","findIndex","splice","getFileListFilters","collator","Intl","Collator","getLanguage","getCanonicalLocale","numeric","usage","IconCog","FilesNavigationItem","NavigationQuota","NcAppNavigation","NcAppNavigationList","NcAppNavigationSearch","SettingsModal","filtersStore","filenameFilter","registerFileListFilter","unregisterFileListFilter","watchThrottled","useFilenameFilter","settingsOpened","currentViewId","$route","compare","watch","newView","oldView","find","showView","to","loadExpandedViews","_ref2","viewsToLoad","_ref3","config","_ref4","setActive","openSettings","onSettingsClose","model","$$v","expression","element","width","observer","ResizeObserver","elements","contentBoxSize","inlineSize","contentRect","updateObserver","body","unobserve","observe","useFileListWidth","readonly","useRouteParameters","route","$root","_$route","run","assign","$router","currentRoute","afterEach","useRoute","directory","replace","fileId","parseInt","isNaN","openFile","openfile","openDetails","client","getClient","fetchNode","propfindPayload","getDefaultPropfind","result","stat","getRootPath","details","resultToNode","usePathsStore","useFilesStore","pathsStore","paths","getters","getPath","service","addPath","payload","deletePath","onCreatedNode","addNodeToParentChildren","deleteNodeFromParentChildren","onMovedNode","oldSource","oldPath","oldNode","owner","mime","parentSource","folder","getRoot","getNode","children","Set","_children","fileStore","roots","getNodes","sources","getNodesById","getNodesByPath","updateNodes","deleteNodes","setRoot","onUpdatedNode","then","onAddFavorite","ourNode","onRemoveFavorite","useSelectionStore","selected","lastSelection","lastSelectedIndex","selection","setLastIndex","uploader","useUploaderStore","getUploader","Directory","contents","_contents","_computeDirectorySize","lastModified","_computeDirectoryMtime","entry","traverseTree","isFile","reject","readDirectory","dirReader","createReader","getEntries","readEntries","results","createDirectoryIfNotExists","davClient","davGetClient","exists","absolutePath","createDirectory","recursive","davGetDefaultPropfind","davResultToNode","resolveConflict","destination","conflicts","basename","uploads","renamed","openConflictPicker","info","console","sharePermissions","MoveCopyAction","canMove","minPermission","ALL","canCopy","JSON","parse","attribute","scope","canDownload","CREATE","getContents","join","davRootPath","controller","AbortController","CancelablePromise","onCancel","abort","contentsResponse","getDirectoryContents","includeSelf","signal","slice","filename","getActionForNodes","MOVE_OR_COPY","MOVE","COPY","handleCopyMoveNodeTo","method","overwrite","actionFinished","mode","toast","isHTML","timeout","TOAST_PERMANENT_TIMEOUT","onRemove","hideToast","createLoadingNotification","copySuffix","currentPath","destinationPath","otherNodes","getUniqueName","suffix","ignoreFileExtension","copyFile","hasConflict","moveFile","parser","DOMParser","parseFromString","textContent","isAxiosError","openFilePickerForAction","promise","withResolvers","fileIDs","getFilePickerBuilder","allowDirectories","setFilter","setMimeTypeFilter","setMultiSelect","startAt","setButtonFactory","buttons","dirnames","label","escape","sanitize","CopyIconSvg","disabled","FolderMoveSvg","pick","catch","FilePickerClosed","e","dataTransferToFileTree","items","item","kind","getAsEntry","webkitGetAsEntry","warned","fileTree","DataTransferItem","warn","getAsFile","showWarning","onDropExternalFiles","uploadDirectoryContents","relativePath","joinPaths","upload","pause","start","errors","allSettled","onDropInternalFiles","isCopy","useDragAndDropStore","dragging","NcBreadcrumbs","NcBreadcrumb","draggingStore","filesStore","selectionStore","uploaderStore","fileListWidth","dirs","sections","getFileSourceFromPath","getNodeFromSource","exact","getDirDisplayName","getTo","disableDrop","isUploadInProgress","wrapUploadProgressBar","viewIcon","selectedFiles","draggingFiles","onClick","onDragOver","dataTransfer","ctrlKey","dropEffect","onDrop","canDrop","button","titleForSection","section","ariaForSection","_t","nativeOn","getSummaryFor","fileCount","folderCount","useActionsMenuStore","opened","isDialogVisible","useRenamingStore","renamingStore","renamingNode","newName","rename","oldName","oldEncodedSource","oldExtension","extname","newExtension","proceed","showWarningDialog","new","old","dialog","DialogBuilder","setName","setText","setButtons","oldextension","newextension","IconCheck","show","hide","headers","Destination","Overwrite","$reset","render","updateRootElement","replaceChildren","openedSubmenu","enabledSubmenuActions","enabledFileActions","record","isValidMenu","onBackToMenuClick","menuAction","$refs","focus","ArrowLeftIcon","CustomElementRender","NcActionButton","NcActions","NcActionSeparator","NcLoadingIcon","mixins","actionsMixins","gridMode","filesListWidth","inject","isActive","isLoading","enabledInlineActions","enabledRenderActions","renderInline","enabledMenuActions","DefaultType","HIDDEN","topActionsIds","openedMenu","getBoundariesElement","mountType","onKeyDown","actionDisplayName","isLoadingAction","onActionClick","refInFor","keyboardStore","altKey","metaKey","shiftKey","onEvent","useKeyboardStore","isSelected","ariaLabel","loadingLabel","onToggleSelect","ctrl","shift","onSelectionChange","newSelectedIndex","isAlreadySelected","end","max","filesToSelect","resetSelection","indexOf","_k","keyCode","extend","FileMultipleIcon","FolderIcon","isSingleNode","isSingleFolder","summary","totalSize","total","previewImg","preview","parentNode","cloneNode","Preview","DragAndDropPreview","directive","vOnClickOutside","getFileActions","NcFile","Node","isMtimeAvailable","compact","provide","defaultFileAction","dragover","uniqueId","str","hash","i","charCodeAt","hashCode","extension","isRenaming","isRenamingSmallScreen","currentFileId","isFailedSource","FAILED","canDrag","UPDATE","actionsMenuStore","toString","mtimeOpacity","maxOpacityTime","mtime","getTime","ratio","round","color","newSource","resetState","removeProperty","onRightClick","closest","getBoundingClientRect","setProperty","clientX","left","clientY","top","isMoreThanOneSelected","execDefaultAction","metaKeyPressed","READ","downloadAttribute","isDownloadable","openDetailsIfAvailable","sidebarAction","onDragLeave","currentTarget","contains","relatedTarget","onDragStart","clearData","image","$mount","$on","$off","getDragAndDropPreview","setDragImage","onDragEnd","getFilenameValidity","validateFilename","InvalidFilenameError","reason","InvalidFilenameErrorReason","Character","char","segment","ReservedName","Extension","match","NcTextField","renameLabel","linkTo","is","tabindex","immediate","handler","renaming","startRenaming","input","renameInput","validity","checkIfNodeExists","setCustomValidity","reportValidity","setSelectionRange","dispatchEvent","Event","stopRenaming","onRename","renameForm","checkValidity","nameContainer","directives","rawName","tag","domProps","q","x","r","f","pow","h","trunc","M","F","abs","d","z","L","floor","l","j","C","m","u","o","substring","c","s","Uint8ClampedArray","y","B","R","w","P","G","cos","PI","T","V","I","E","setAttribute","AccountGroupIcon","AccountPlusIcon","CollectivesIcon","FavoriteIcon","FileIcon","FolderOpenIcon","KeyIcon","LinkIcon","NetworkIcon","TagIcon","isPublic","publicSharingToken","getSharingToken","backgroundFailed","backgroundLoaded","isFavorite","cropPreviews","previewUrl","token","URL","location","origin","searchParams","etag","href","fileOverlay","PlayCircleIcon","folderOverlay","shareTypes","ShareType","Link","Email","hasBlurhash","canvas","drawBlurhash","src","onBackgroundLoad","onBackgroundError","height","pixels","decode","ctx","getContext","imageData","createImageData","putImageData","_m","FileEntryActions","FileEntryCheckbox","FileEntryName","FileEntryPreview","NcDateTime","FileEntryMixin","isSizeAvailable","rowListeners","dragstart","contextmenu","dragleave","dragend","drop","columns","sizeOpacity","getDate","crtime","mtimeTitle","moment","format","triggerDefaultAction","_g","column","inheritAttrs","_defineComponent","__name","__props","filterStore","visualFilters","filterElements","watchEffect","mount","__sfc","NcAvatar","NcChip","_setup","chip","user","header","currentFolder","updated","View","classForColumn","mapState","sortingMode","sorting_mode","defaultSortKey","isAscSorting","sortingDirection","toggleSortBy","MenuDown","MenuUp","NcButton","filesSortingMixin","FilesListTableHeaderButton","selectAllBind","checked","isAllSelected","indeterminate","isSomeSelected","selectedNodes","isNoneSelected","onToggleAll","ariaSortForMode","inlineActions","childrenActionsIds","menuActions","areSomeNodesLoading","selectionSources","$set","failedSources","dataComponent","dataKey","dataSources","extraProps","scrollToIndex","caption","beforeHeight","footerHeight","headerHeight","tableHeight","resizeObserver","isReady","bufferItems","columnCount","itemHeight","itemWidth","visibleRows","rowCount","startIndex","firstColumnIndex","shownItems","renderedItems","oldItemsKeys","$_recycledPool","unusedKeys","keys","pop","random","substr","totalRowCount","ceil","tbodyStyle","rowsAbove","rowsBelow","paddingBlock","minHeight","scrollTo","oldColumnCount","debounce","updateHeightVariables","onScroll","before","footer","disconnect","totalRows","clampedIndex","scrollTop","indexToScrollPos","_onScrollHandle","requestAnimationFrame","scrollPosToIndex","scrollPos","topScroll","clientHeight","theadHeight","thead","filterHeight","$scopedSlots","FileListFilters","FilesListHeader","FilesListTableFooter","FilesListTableHeader","VirtualList","FilesListTableHeaderActions","FileEntry","FileEntryGrid","getFileListHeaders","openFileId","sortedHeaders","cantUpload","isQuotaExceeded","defaultCaption","scrollToFile","handleOpenFile","openSidebarForFile","unselectFile","onSidebarClosed","unsubscribe","defaultAction","at","isForeignFile","types","tableElement","table","tableTop","tableBottom","nextIndex","nextNode","TrayArrowDownIcon","canUpload","cantUploadLabel","resetDragOver","mainContent","onContentDrop","lastUpload","findLast","UploadStatus","webkitRelativePath","isSharingEnabled","files_sharing","BreadCrumbs","DragAndDropNotice","FilesListVirtual","ListViewIcon","NcAppContent","NcEmptyContent","UploadPicker","ViewGridIcon","IconAlertCircleOutline","IconReload","forbiddenCharacters","loadingAction","dirContentsFiltered","getContent","normalizedPath","normalize","pageHeading","dirContents","dirContentsSorted","customColumn","reverse","sortNodes","sortFavoritesFirst","sortFoldersFirst","sortingOrder","isEmptyDir","isRefreshing","toPreviousDir","shareTypesAttributes","shareButtonLabel","shareButtonType","User","gridViewButtonLabel","canShare","SHARE","showCustomEmptyView","emptyView","enabledFileListActions","enabledActions","getFileListActions","toSorted","theming","productName","customEmptyView","fetchContent","newDir","oldDir","filesListVirtual","filterDirContent","onNodeDeleted","unmounted","fatal","isWebDAVClientError","humanizeWebDAVError","onUpload","onUploadFail","CANCELLED","doc","getElementsByTagName","openSharingSidebar","toggleGridView","execFileListAction","emptyTitle","emptyCaption","NcContent","FilesList","Navigation","use","originalPush","prototype","args","call","ignoreDuplicateNavigation","originalReplace","isNavigationFailure","NavigationFailureType","duplicated","_len2","_key2","base","linkActiveClass","routes","redirect","stringifyQuery","queryString","stringify","RouterService","router","_router","goTo","__webpack_nonce__","getCSPNonce","PiniaVuePlugin","renameAction","favoriteAction","deleteAction","parentDir","alt","_settings","register","_name","_el","_open","_close","FilesApp","pinia","___CSS_LOADER_EXPORT___","module","NewMenuEntryCategory","NewMenuEntryCategory2","NewFileMenu","_entries","registerEntry","validateEntry","category","unregisterEntry","entryIndex","getEntryIndex","context","DefaultType2","_action","validateAction","destructive","_nc_fileactions","_nc_filelistactions","_nc_filelistheader","InvalidFilenameErrorReason2","cause","capabilities","forbidden_filename_characters","_oc_config","forbidden_filenames_characters","character","forbidden_filenames","endOfBasename","basename2","forbidden_filename_basenames","forbiddenFilenameExtensions","forbidden_filename_extensions","endsWith","otherNames","opts","n2","i2","ext","humanList","humanListBinary","skipSmallSizes","binaryPrefixes","base1000","log","readableFormat","relativeSize","toFixed","parseFloat","toLocaleString","toISOString","sortingOptions","collection","identifiers2","orders","sorting","_","a2","b2","identifier","orderBy","v","lastIndexOf","_currentView","search","remove","_nc_navigation","Column","_column","isValidColumn","getDefaultExportFromCjs","__esModule","hasOwnProperty","hasRequiredUtil","hasRequiredValidator","validator","util","requireUtil","exports","nameStartChar","nameRegexp","regexName","RegExp","isExist","isEmptyObject","obj","merge","arrayMode","len","getValue","isName","string","getAllMatches","regex","matches","allmatches","lastIndex","requireValidator","util2","defaultOptions","allowBooleanAttributes","unpairedTags","isWhiteSpace","readPI","xmlData","tagname","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","msg","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","openPos","col","afterAmp","validateAmpersand","t2","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re2","validateNumberAmpersand","lineNumber","lines","hasRequiredOptionsBuilder","xmlNode","hasRequiredXmlNode","DocTypeReader","hasRequiredDocTypeReader","strnum","hasRequiredStrnum","ignoreAttributes","hasRequiredIgnoreAttributes","OrderedObjParser_1","hasRequiredOrderedObjParser","OptionsBuilder","requireIgnoreAttributes","ignoreAttributes2","isArray","pattern","test","hasRequiredNode2json","XMLParser_1","hasRequiredXMLParser","orderedJs2Xml","hasRequiredOrderedJs2Xml","json2xml","hasRequiredJson2xml","fxp","hasRequiredFxp","node2json","requireNode2json","compress","arr","jPath","compressedObj","tagObj","property","propName","newJpath","textNodeName","val","isLeaf","isLeafTag","assignAttributes","alwaysCreateTextNode","attrMap","jpath","atrrName","propCount","prettify","requireXMLParser","buildOptions","preserveOrder","attributeNamePrefix","attributesGroupName","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","requireOptionsBuilder","OrderedObjParser","xmlNode2","child","addChild","readDocType","readEntityExp","entityName","isEntity","isElement","isAttlist","isNotation","validateEntityName","entities","hasBody","comment","exp","regx","requireDocTypeReader","toNumber","hexRegex","numRegex","consider","decimalPoint","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","num","requireStrnum","getIgnoreAttributesFn","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","replaceEntitiesValue","newval","parseValue","resolveNameSpace","prefix","charAt","attrsRegx","buildAttributesMap","ignoreAttributesFn","oldVal","aName","newVal","attrCollection","parseXml","xmlObj","textData","closeIndex","findClosingIndex","colonIndex","saveTextToParentTag","lastTagName","propIndex","tagsNodeStack","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","docTypeEntities","rawTagName","lastTag","isItStopNode","tagContent","result2","readStopNodeData","entity","ampEntity","currentTagName","allNodesExp","stopNodePath","stopNodeExp","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","fromCharCode","requireOrderedObjParser","validator2","validationOption","orderedObjParser","orderedResult","addEntity","requireOrderedJs2Xml","arrToStr","indentation","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","attr","attrVal","suppressBooleanAttributes","textValue","jArray","fxpExports","XMLParser","XMLBuilder","buildFromOrderedJs","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","ajPath","j2x","concat","buildTextValNode","buildObjectNode","repeat","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","listTagAttr","j2","Ks","closeTag","tagEndExp","piClosingChar","requireJson2xml","XMLValidator","requireFxp","_view","isValidView","TypeError","jsonObject","toLowerCase","isSvg","debug_1","hasRequiredDebug","constants","hasRequiredConstants","requireDebug","process","env","NODE_DEBUG","requireConstants","MAX_SAFE_INTEGER","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","hasRequiredRe","parseOptions_1","hasRequiredParseOptions","identifiers","hasRequiredIdentifiers","semver","hasRequiredSemver","parse_1","hasRequiredParse","valid_1","hasRequiredValid","re","requireSemver","safeRe","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","parseOptions","looseOption","freeze","loose","emptyOpts","requireParseOptions","compareIdentifiers","anum","bnum","rcompareIdentifiers","requireIdentifiers","SemVer","version","includePrerelease","m2","LOOSE","FULL","raw","major","minor","patch","prerelease","other","compareMain","comparePre","compareBuild","inc","release","identifierBase","valid","throwErrors","er","requireParse","requireValid","major_1","hasRequiredMajor","requireMajor","ProxyBus","bus","bus2","getVersion","SimpleBus","handlers","Map","h2","e2","Proxy","_eventBus","_nc_event_bus","_nc_filelist_filters","has","getNewFileMenuEntries","_nc_newfilemenu","localeCompare","sensitivity","retries","uploadData","uploadData2","onUploadProgress","destinationFile","Blob","request","retryDelay","retryCount","getChunk","getMaxChunksSize","fileSize","maxChunkSize","appConfig","max_chunk_size","minimumChunkSize","Status$1","Status2","Upload","_source","_file","_isChunked","_chunks","_size","_uploaded","_startTime","_status","_controller","_response","chunked","chunks","isChunked","startTime","uploaded","isFileSystemFileEntry","FileSystemFileEntry","isFileSystemEntry","FileSystemEntry","_originalName","_path","sum","latest","originalName","from","getChild","addChildren","rootPath","FileSystemDirectoryEntry","reader","filePath","relPath","gtBuilder","detectLocale","addTranslation","locale","json","gt","ngettext","bind","gettext","Status","Uploader","_destinationFolder","_isPublic","_customHeaders","_uploadQueue","_jobQueue","chunked_upload","max_parallel_count","_queueSize","_queueProgress","_queueStatus","_notifiers","destinationFolder","maxChunksSize","customHeaders","structuredClone","setCustomHeader","deleteCustomerHeader","updateStats","progress","upload2","partialSum","addNotifier","notifier","_notifyAll","batchUpload","files2","rootFolder","UPLOADING","uploadDirectory","FINISHED","folderPath","currentUpload","selectedForUpload","directories","fileHandle","encodedDestinationFile","resolve2","disabledChunkUpload","blob","bytes","tempUrl","initChunkWorkspace","chunksQueue","chunk","bufferStart","bufferEnd","onIdle","normalizeComponent","scriptExports","render6","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","_scopeId","IconCancel","IconFolderUpload","IconPlus","IconUpload","showInvalidFilenameDialog","InvalidFilenameDialog","rest","skip","content","getConflicts","contentNames","NcActionCaption","accept","multiple","noMenu","allowFolders","progressTimeId","eta","timeLeft","newFileMenuEntries","uploadManager","menuEntriesUpload","UploadFromDevice","menuEntriesNew","CreateNew","menuEntriesOther","Other","canUploadFolders","createElement","totalQueueSize","uploadedQueueSize","hasFailure","isUploading","isAssembling","ASSEMBLING","isPaused","PAUSED","buttonLabel","buttonName","haveMenu","setDestination","updateStatus","report","onUploadCompletion","onTriggerPick","uploadFolders","webkitdirectory","click","onPick","contentsCallback","filesToUpload","defineProperty","finally","resetForm","form","estimate","Infinity","date","setSeconds","time","seconds","forceRecreate","_nc_uploader","ConflictPicker","picker","recursiveUpload","submit","$destroy","removeChild","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","O","chunkIds","priority","notFulfilled","fulfilled","getter","definition","enumerable","chunkId","g","globalThis","prop","done","script","needAttach","scripts","getAttribute","charset","nc","onScriptComplete","prev","onerror","onload","doneFns","head","Symbol","toStringTag","nmd","scriptUrl","importScripts","currentScript","toUpperCase","p","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"files-main.js?v=724e410f25e4e892c74a","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files/src/store/index.ts","webpack:///nextcloud/apps/files/src/logger.ts","webpack:///nextcloud/apps/files/src/actions/deleteUtils.ts","webpack:///nextcloud/apps/files/src/actions/deleteAction.ts","webpack:///nextcloud/apps/files/src/actions/favoriteAction.ts","webpack:///nextcloud/apps/files/src/actions/renameAction.ts","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","webpack:///nextcloud/apps/files/src/store/active.ts","webpack:///nextcloud/apps/files/src/utils/actionUtils.ts","webpack:///nextcloud/apps/files/src/store/userconfig.ts","webpack:///nextcloud/apps/files/src/FilesApp.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Cog.vue?4d6d","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue?vue&type=template&id=209aff25","webpack:///nextcloud/node_modules/throttle-debounce/esm/index.js","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ChartPie.vue?421f","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue?vue&type=template&id=90a70766","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?e0b0","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?2966","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?08cb","webpack://nextcloud/./apps/files/src/views/Settings.vue?84f7","webpack:///nextcloud/apps/files/src/components/Setting.vue","webpack:///nextcloud/apps/files/src/components/Setting.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files/src/components/Setting.vue?98ea","webpack://nextcloud/./apps/files/src/components/Setting.vue?8d57","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/views/Settings.vue","webpack://nextcloud/./apps/files/src/views/Settings.vue?9b39","webpack://nextcloud/./apps/files/src/views/Settings.vue?b81b","webpack:///nextcloud/apps/files/src/components/FilesNavigationItem.vue","webpack:///nextcloud/apps/files/src/composables/useNavigation.ts","webpack:///nextcloud/apps/files/src/store/viewConfig.ts","webpack:///nextcloud/apps/files/src/components/FilesNavigationItem.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesNavigationItem.vue?172f","webpack:///nextcloud/apps/files/src/filters/FilenameFilter.ts","webpack:///nextcloud/apps/files/src/store/filters.ts","webpack:///nextcloud/apps/files/src/views/Navigation.vue","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/composables/useFilenameFilter.ts","webpack://nextcloud/./apps/files/src/views/Navigation.vue?b220","webpack://nextcloud/./apps/files/src/views/Navigation.vue?74b9","webpack:///nextcloud/apps/files/src/views/FilesList.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Reload.vue?2e35","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue?vue&type=template&id=39a07256","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?5dae","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?vue&type=template&id=64cece03","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountPlus.vue?2818","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue?vue&type=template&id=53a26aa0","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ViewGrid.vue?4e55","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue?vue&type=template&id=672ea5c8","webpack:///nextcloud/apps/files/src/composables/useFileListWidth.ts","webpack:///nextcloud/apps/files/src/composables/useRouteParameters.ts","webpack:///nextcloud/node_modules/vue-router/composables.mjs","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/store/paths.ts","webpack:///nextcloud/apps/files/src/store/files.ts","webpack:///nextcloud/apps/files/src/store/selection.ts","webpack:///nextcloud/apps/files/src/store/uploader.ts","webpack:///nextcloud/apps/files/src/services/DropServiceUtils.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyActionUtils.ts","webpack:///nextcloud/apps/files/src/services/Files.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyAction.ts","webpack:///nextcloud/apps/files/src/services/DropService.ts","webpack:///nextcloud/apps/files/src/store/dragging.ts","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?3e99","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?d357","webpack:///nextcloud/apps/files/src/utils/fileUtils.ts","webpack:///nextcloud/apps/files/src/components/FileEntry.vue","webpack:///nextcloud/apps/files/src/store/actionsmenu.ts","webpack:///nextcloud/apps/files/src/store/renaming.ts","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue","webpack://nextcloud/./apps/files/src/components/CustomElementRender.vue?5f5c","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ArrowLeft.vue?f857","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=16833c02","webpack:///nextcloud/apps/files/src/mixins/actionsMixin.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?9429","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?93fa","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?7b52","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryCheckbox.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryCheckbox.vue","webpack:///nextcloud/apps/files/src/store/keyboard.ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryCheckbox.vue?a18b","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FileMultiple.vue?6e9d","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=template&id=15fca808","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/DragAndDropPreview.vue?dbe9","webpack://nextcloud/./apps/files/src/components/DragAndDropPreview.vue?36f6","webpack:///nextcloud/apps/files/src/utils/dragUtils.ts","webpack:///nextcloud/apps/files/src/components/FileEntryMixin.ts","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/files/src/utils/permissions.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue","webpack:///nextcloud/apps/files/src/utils/filenameValidity.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryName.vue?c9be","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryName.vue?98a4","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryPreview.vue","webpack:///nextcloud/node_modules/blurhash/dist/esm/index.js","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FolderOpen.vue?6818","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue?vue&type=template&id=ae0c5fc0","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Key.vue?157c","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue?vue&type=template&id=499b3412","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Network.vue?11eb","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue?vue&type=template&id=7bf2ec80","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Tag.vue?6116","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue?vue&type=template&id=356230e0","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/PlayCircle.vue?0c26","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue?vue&type=template&id=3cc1493c","webpack:///nextcloud/apps/files/src/components/FileEntry/CollectivesIcon.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/FileEntry/CollectivesIcon.vue","webpack://nextcloud/./apps/files/src/components/FileEntry/CollectivesIcon.vue?1937","webpack://nextcloud/./apps/files/src/components/FileEntry/CollectivesIcon.vue?949d","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue","webpack://nextcloud/./apps/files/src/components/FileEntry/FavoriteIcon.vue?f7c8","webpack://nextcloud/./apps/files/src/components/FileEntry/FavoriteIcon.vue?62c6","webpack:///nextcloud/apps/files/src/services/LivePhotos.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryPreview.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryPreview.vue?8c1f","webpack:///nextcloud/apps/files/src/components/FileEntry.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry.vue?da7c","webpack:///nextcloud/apps/files/src/components/FileEntryGrid.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntryGrid.vue","webpack://nextcloud/./apps/files/src/components/FileEntryGrid.vue?bb8e","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FileListFilters.vue?eef0","webpack://nextcloud/./apps/files/src/components/FileListFilters.vue?ac4e","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue","webpack://nextcloud/./apps/files/src/components/FilesListHeader.vue?349b","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue","webpack://nextcloud/./apps/files/src/components/FilesListTableFooter.vue?2beb","webpack://nextcloud/./apps/files/src/components/FilesListTableFooter.vue?fa4c","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue","webpack:///nextcloud/apps/files/src/mixins/filesSorting.ts","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderButton.vue?55b2","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderButton.vue?e364","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListTableHeader.vue?0b9e","webpack://nextcloud/./apps/files/src/components/FilesListTableHeader.vue?b1c9","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderActions.vue?961a","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderActions.vue?9494","webpack:///nextcloud/apps/files/src/components/VirtualList.vue","webpack:///nextcloud/apps/files/src/components/VirtualList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/VirtualList.vue?37fa","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?49fc","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?955e","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?3555","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/TrayArrowDown.vue?a897","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue?vue&type=template&id=5dbf2618","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue","webpack://nextcloud/./apps/files/src/components/DragAndDropNotice.vue?760a","webpack://nextcloud/./apps/files/src/components/DragAndDropNotice.vue?a2e0","webpack:///nextcloud/apps/files/src/utils/davUtils.ts","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/views/FilesList.vue?967e","webpack://nextcloud/./apps/files/src/views/FilesList.vue?1e5b","webpack:///nextcloud/apps/files/src/FilesApp.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/FilesApp.vue?597e","webpack:///nextcloud/apps/files/src/router/router.ts","webpack:///nextcloud/apps/files/src/services/RouterService.ts","webpack:///nextcloud/apps/files/src/main.ts","webpack:///nextcloud/apps/files/src/services/HotKeysService.ts","webpack:///nextcloud/apps/files/src/services/Settings.js","webpack:///nextcloud/apps/files/src/models/Setting.js","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=style&index=0&id=04abfffa&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue?vue&type=style&index=0&id=6efab70c&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue?vue&type=style&index=0&id=f2d0cf6e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=style&index=0&id=5ba570cc&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=style&index=1&id=5ba570cc&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue?vue&type=style&index=0&id=c8581214&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue?vue&type=style&index=0&id=bd0c8440&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue?vue&type=style&index=0&id=5103b354&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue?vue&type=style&index=0&id=2790ede2&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue?vue&type=style&index=0&id=22469fbb&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue?vue&type=style&index=0&id=6d7680f0&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=0&id=f2dba2ba&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=1&id=f2dba2ba&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=style&index=0&id=6ed9379e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=style&index=0&id=693703cc&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=style&index=0&id=c6191948&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=style&index=0&id=6fc727d7&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/chunks/index-DUD0fqDs.mjs","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createPinia } from 'pinia';\nexport const getPinia = () => {\n if (window._nc_files_pinia) {\n return window._nc_files_pinia;\n }\n window._nc_files_pinia = createPinia();\n return window._nc_files_pinia;\n};\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('files')\n .detectUser()\n .build();\n","import { emit } from '@nextcloud/event-bus';\nimport { FileType } from '@nextcloud/files';\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { n, t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nexport const isTrashbinEnabled = () => getCapabilities()?.files?.undelete === true;\nexport const canUnshareOnly = (nodes) => {\n return nodes.every(node => node.attributes['is-mount-root'] === true\n && node.attributes['mount-type'] === 'shared');\n};\nexport const canDisconnectOnly = (nodes) => {\n return nodes.every(node => node.attributes['is-mount-root'] === true\n && node.attributes['mount-type'] === 'external');\n};\nexport const isMixedUnshareAndDelete = (nodes) => {\n if (nodes.length === 1) {\n return false;\n }\n const hasSharedItems = nodes.some(node => canUnshareOnly([node]));\n const hasDeleteItems = nodes.some(node => !canUnshareOnly([node]));\n return hasSharedItems && hasDeleteItems;\n};\nexport const isAllFiles = (nodes) => {\n return !nodes.some(node => node.type !== FileType.File);\n};\nexport const isAllFolders = (nodes) => {\n return !nodes.some(node => node.type !== FileType.Folder);\n};\nexport const displayName = (nodes, view) => {\n /**\n * If those nodes are all the root node of a\n * share, we can only unshare them.\n */\n if (canUnshareOnly(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Leave this share');\n }\n return t('files', 'Leave these shares');\n }\n /**\n * If those nodes are all the root node of an\n * external storage, we can only disconnect it.\n */\n if (canDisconnectOnly(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Disconnect storage');\n }\n return t('files', 'Disconnect storages');\n }\n /**\n * If we're in the trashbin, we can only delete permanently\n */\n if (view.id === 'trashbin' || !isTrashbinEnabled()) {\n return t('files', 'Delete permanently');\n }\n /**\n * If we're in the sharing view, we can only unshare\n */\n if (isMixedUnshareAndDelete(nodes)) {\n return t('files', 'Delete and unshare');\n }\n /**\n * If we're only selecting files, use proper wording\n */\n if (isAllFiles(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Delete file');\n }\n return t('files', 'Delete files');\n }\n /**\n * If we're only selecting folders, use proper wording\n */\n if (isAllFolders(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Delete folder');\n }\n return t('files', 'Delete folders');\n }\n return t('files', 'Delete');\n};\nexport const askConfirmation = async (nodes, view) => {\n const message = view.id === 'trashbin' || !isTrashbinEnabled()\n ? n('files', 'You are about to permanently delete {count} item', 'You are about to permanently delete {count} items', nodes.length, { count: nodes.length })\n : n('files', 'You are about to delete {count} item', 'You are about to delete {count} items', nodes.length, { count: nodes.length });\n return new Promise(resolve => {\n // TODO: Use the new dialog API\n window.OC.dialogs.confirmDestructive(message, t('files', 'Confirm deletion'), {\n type: window.OC.dialogs.YES_NO_BUTTONS,\n confirm: displayName(nodes, view),\n confirmClasses: 'error',\n cancel: t('files', 'Cancel'),\n }, (decision) => {\n resolve(decision);\n });\n });\n};\nexport const deleteNode = async (node) => {\n await axios.delete(node.encodedSource);\n // Let's delete even if it's moved to the trashbin\n // since it has been removed from the current view\n // and changing the view will trigger a reload anyway.\n emit('files:node:deleted', node);\n};\n","import { loadState } from '@nextcloud/initial-state';\nimport { Permission, Node, View, FileAction } from '@nextcloud/files';\nimport { showInfo } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport PQueue from 'p-queue';\nimport CloseSvg from '@mdi/svg/svg/close.svg?raw';\nimport NetworkOffSvg from '@mdi/svg/svg/network-off.svg?raw';\nimport TrashCanSvg from '@mdi/svg/svg/trash-can.svg?raw';\nimport logger from '../logger.ts';\nimport { askConfirmation, canDisconnectOnly, canUnshareOnly, deleteNode, displayName, isTrashbinEnabled } from './deleteUtils';\nconst queue = new PQueue({ concurrency: 5 });\nexport const ACTION_DELETE = 'delete';\nexport const action = new FileAction({\n id: ACTION_DELETE,\n displayName,\n iconSvgInline: (nodes) => {\n if (canUnshareOnly(nodes)) {\n return CloseSvg;\n }\n if (canDisconnectOnly(nodes)) {\n return NetworkOffSvg;\n }\n return TrashCanSvg;\n },\n enabled(nodes) {\n const config = loadState('files_trashbin', 'config');\n if (!config.allow_delete) {\n return false;\n }\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.DELETE) !== 0);\n },\n async exec(node, view) {\n try {\n let confirm = true;\n // Trick to detect if the action was called from a keyboard event\n // we need to make sure the method calling have its named containing 'keydown'\n // here we use `onKeydown` method from the FileEntryActions component\n const callStack = new Error().stack || '';\n const isCalledFromEventListener = callStack.toLocaleLowerCase().includes('keydown');\n // If trashbin is disabled, we need to ask for confirmation\n if (!isTrashbinEnabled() || isCalledFromEventListener) {\n confirm = await askConfirmation([node], view);\n }\n // If the user cancels the deletion, we don't want to do anything\n if (confirm === false) {\n showInfo(t('files', 'Deletion cancelled'));\n return null;\n }\n await deleteNode(node);\n return true;\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n return false;\n }\n },\n async execBatch(nodes, view) {\n let confirm = true;\n // If trashbin is disabled, we need to ask for confirmation\n if (!isTrashbinEnabled()) {\n confirm = await askConfirmation(nodes, view);\n }\n else if (nodes.length >= 5 && !canUnshareOnly(nodes) && !canDisconnectOnly(nodes)) {\n confirm = await askConfirmation(nodes, view);\n }\n // If the user cancels the deletion, we don't want to do anything\n if (confirm === false) {\n showInfo(t('files', 'Deletion cancelled'));\n return Promise.all(nodes.map(() => null));\n }\n // Map each node to a promise that resolves with the result of exec(node)\n const promises = nodes.map(node => {\n // Create a promise that resolves with the result of exec(node)\n const promise = new Promise(resolve => {\n queue.add(async () => {\n try {\n await deleteNode(node);\n resolve(true);\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n resolve(false);\n }\n });\n });\n return promise;\n });\n return Promise.all(promises);\n },\n order: 100,\n});\n","import { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { encodePath } from '@nextcloud/paths';\nimport { generateUrl } from '@nextcloud/router';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport axios from '@nextcloud/axios';\nimport PQueue from 'p-queue';\nimport Vue from 'vue';\nimport StarOutlineSvg from '@mdi/svg/svg/star-outline.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport logger from '../logger.ts';\nexport const ACTION_FAVORITE = 'favorite';\nconst queue = new PQueue({ concurrency: 5 });\n// If any of the nodes is not favorited, we display the favorite action.\nconst shouldFavorite = (nodes) => {\n return nodes.some(node => node.attributes.favorite !== 1);\n};\nexport const favoriteNode = async (node, view, willFavorite) => {\n try {\n // TODO: migrate to webdav tags plugin\n const url = generateUrl('/apps/files/api/v1/files') + encodePath(node.path);\n await axios.post(url, {\n tags: willFavorite\n ? [window.OC.TAG_FAVORITE]\n : [],\n });\n // Let's delete if we are in the favourites view\n // AND if it is removed from the user favorites\n // AND it's in the root of the favorites view\n if (view.id === 'favorites' && !willFavorite && node.dirname === '/') {\n emit('files:node:deleted', node);\n }\n // Update the node webdav attribute\n Vue.set(node.attributes, 'favorite', willFavorite ? 1 : 0);\n // Dispatch event to whoever is interested\n if (willFavorite) {\n emit('files:favorites:added', node);\n }\n else {\n emit('files:favorites:removed', node);\n }\n return true;\n }\n catch (error) {\n const action = willFavorite ? 'adding a file to favourites' : 'removing a file from favourites';\n logger.error('Error while ' + action, { error, source: node.source, node });\n return false;\n }\n};\nexport const action = new FileAction({\n id: ACTION_FAVORITE,\n displayName(nodes) {\n return shouldFavorite(nodes)\n ? t('files', 'Add to favorites')\n : t('files', 'Remove from favorites');\n },\n iconSvgInline: (nodes) => {\n return shouldFavorite(nodes)\n ? StarOutlineSvg\n : StarSvg;\n },\n enabled(nodes) {\n // Not enabled for public shares\n if (isPublicShare()) {\n return false;\n }\n // We can only favorite nodes if they are located in files\n return nodes.every(node => node.root?.startsWith?.('/files'))\n // and we have permissions\n && nodes.every(node => node.permissions !== Permission.NONE);\n },\n async exec(node, view) {\n const willFavorite = shouldFavorite([node]);\n return await favoriteNode(node, view, willFavorite);\n },\n async execBatch(nodes, view) {\n const willFavorite = shouldFavorite(nodes);\n // Map each node to a promise that resolves with the result of exec(node)\n const promises = nodes.map(node => {\n // Create a promise that resolves with the result of exec(node)\n const promise = new Promise(resolve => {\n queue.add(async () => {\n try {\n await favoriteNode(node, view, willFavorite);\n resolve(true);\n }\n catch (error) {\n logger.error('Error while adding file to favorite', { error, source: node.source, node });\n resolve(false);\n }\n });\n });\n return promise;\n });\n return Promise.all(promises);\n },\n order: -50,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction, View } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport PencilSvg from '@mdi/svg/svg/pencil.svg?raw';\nexport const ACTION_RENAME = 'rename';\nexport const action = new FileAction({\n id: ACTION_RENAME,\n displayName: () => t('files', 'Rename'),\n iconSvgInline: () => PencilSvg,\n enabled: (nodes, view) => {\n if (nodes.length === 0) {\n return false;\n }\n // Disable for single file shares\n if (view.id === 'public-file-share') {\n return false;\n }\n // Only enable if all nodes have the delete permission\n return nodes.every((node) => Boolean(node.permissions & Permission.DELETE));\n },\n async exec(node) {\n // Renaming is a built-in feature of the files app\n emit('files:node:rename', node);\n return null;\n },\n order: 10,\n});\n","import { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport InformationSvg from '@mdi/svg/svg/information-variant.svg?raw';\nimport logger from '../logger.ts';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n id: ACTION_DETAILS,\n displayName: () => t('files', 'Open details'),\n iconSvgInline: () => InformationSvg,\n // Sidebar currently supports user folder only, /files/USER\n enabled: (nodes) => {\n if (isPublicShare()) {\n return false;\n }\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n if (!nodes[0]) {\n return false;\n }\n // Only work if the sidebar is available\n if (!window?.OCA?.Files?.Sidebar) {\n return false;\n }\n return (nodes[0].root?.startsWith('/files/') && nodes[0].permissions !== Permission.NONE) ?? false;\n },\n async exec(node, view, dir) {\n try {\n // If the sidebar is already open for the current file, do nothing\n if (window.OCA.Files.Sidebar.file === node.path) {\n logger.debug('Sidebar already open for this file', { node });\n return null;\n }\n // Open sidebar and set active tab to sharing by default\n window.OCA.Files.Sidebar.setActiveTab('sharing');\n // TODO: migrate Sidebar to use a Node instead\n await window.OCA.Files.Sidebar.open(node.path);\n // Silently update current fileid\n window.OCP?.Files?.Router?.goToRoute(null, { view: view.id, fileid: String(node.fileid) }, { ...window.OCP.Files.Router.query, dir, opendetails: 'true' }, true);\n return null;\n }\n catch (error) {\n logger.error('Error while opening sidebar', { error });\n return false;\n }\n },\n order: -50,\n});\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia';\nimport { getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport logger from '../logger.ts';\nexport const useActiveStore = function (...args) {\n const store = defineStore('active', {\n state: () => ({\n _initialized: false,\n activeNode: null,\n activeView: null,\n activeAction: null,\n }),\n actions: {\n setActiveNode(node) {\n if (!node) {\n throw new Error('Use clearActiveNode to clear the active node');\n }\n logger.debug('Setting active node', { node });\n this.activeNode = node;\n },\n clearActiveNode() {\n this.activeNode = null;\n },\n onDeletedNode(node) {\n if (this.activeNode && this.activeNode.source === node.source) {\n this.clearActiveNode();\n }\n },\n setActiveAction(action) {\n this.activeAction = action;\n },\n clearActiveAction() {\n this.activeAction = null;\n },\n onChangedView(view = null) {\n logger.debug('Setting active view', { view });\n this.activeView = view;\n this.clearActiveNode();\n },\n },\n });\n const activeStore = store(...args);\n const navigation = getNavigation();\n // Make sure we only register the listeners once\n if (!activeStore._initialized) {\n subscribe('files:node:deleted', activeStore.onDeletedNode);\n activeStore._initialized = true;\n activeStore.onChangedView(navigation.active);\n // Or you can react to changes of the current active view\n navigation.addEventListener('updateActive', (event) => {\n activeStore.onChangedView(event.detail);\n });\n }\n return activeStore;\n};\n","import { NodeStatus } from '@nextcloud/files';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { getPinia } from '../store';\nimport { useActiveStore } from '../store/active';\nimport logger from '../logger';\n/**\n * Execute an action on the current active node\n *\n * @param action The action to execute\n */\nexport const executeAction = async (action) => {\n const activeStore = useActiveStore(getPinia());\n const currentDir = (window?.OCP?.Files?.Router?.query?.dir || '/');\n const currentNode = activeStore.activeNode;\n const currentView = activeStore.activeView;\n if (!currentNode || !currentView) {\n logger.error('No active node or view', { node: currentNode, view: currentView });\n return;\n }\n if (currentNode.status === NodeStatus.LOADING) {\n logger.debug('Node is already loading', { node: currentNode });\n return;\n }\n if (!action.enabled([currentNode], currentView)) {\n logger.debug('Action is not not available for the current context', { action, node: currentNode, view: currentView });\n return;\n }\n let displayName = action.id;\n try {\n displayName = action.displayName([currentNode], currentView);\n }\n catch (error) {\n logger.error('Error while getting action display name', { action, error });\n }\n try {\n // Set the loading marker\n Vue.set(currentNode, 'status', NodeStatus.LOADING);\n activeStore.setActiveAction(action);\n const success = await action.exec(currentNode, currentView, currentDir);\n // If the action returns null, we stay silent\n if (success === null || success === undefined) {\n return;\n }\n if (success) {\n showSuccess(t('files', '\"{displayName}\" action executed successfully', { displayName }));\n return;\n }\n showError(t('files', '\"{displayName}\" action failed', { displayName }));\n }\n catch (error) {\n logger.error('Error while executing action', { action, error });\n showError(t('files', '\"{displayName}\" action failed', { displayName }));\n }\n finally {\n // Reset the loading marker\n Vue.set(currentNode, 'status', undefined);\n activeStore.clearActiveAction();\n }\n};\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport { ref, set } from 'vue';\nimport axios from '@nextcloud/axios';\nconst initialUserConfig = loadState('files', 'config', {\n show_hidden: false,\n crop_image_previews: true,\n sort_favorites_first: true,\n sort_folders_first: true,\n grid_view: false,\n});\nexport const useUserConfigStore = defineStore('userconfig', () => {\n const userConfig = ref({ ...initialUserConfig });\n /**\n * Update the user config local store\n * @param key The config key\n * @param value The new value\n */\n function onUpdate(key, value) {\n set(userConfig.value, key, value);\n }\n /**\n * Update the user config local store AND on server side\n * @param key The config key\n * @param value The new value\n */\n async function update(key, value) {\n // only update if a user is logged in (not the case for public shares)\n if (getCurrentUser() !== null) {\n await axios.put(generateUrl('/apps/files/api/v1/config/{key}', { key }), {\n value,\n });\n }\n emit('files:config:updated', { key, value });\n }\n // Register the event listener\n subscribe('files:config:updated', ({ key, value }) => onUpdate(key, value));\n return {\n userConfig,\n update,\n };\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcContent',{attrs:{\"app-name\":\"files\"}},[(!_vm.isPublic)?_c('Navigation'):_vm._e(),_vm._v(\" \"),_c('FilesList',{attrs:{\"is-public\":_vm.isPublic}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon cog-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CogIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Cog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Cog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Cog.vue?vue&type=template&id=209aff25\"\nimport script from \"./Cog.vue?vue&type=script&lang=js\"\nexport * from \"./Cog.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 cog-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,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n * are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n * as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n * one final time after the last throttled-function call. (After the throttled-function has not been called for\n * `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n * callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n * false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, callback, options) {\n var _ref = options || {},\n _ref$noTrailing = _ref.noTrailing,\n noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,\n _ref$noLeading = _ref.noLeading,\n noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,\n _ref$debounceMode = _ref.debounceMode,\n debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false;\n\n // Keep track of the last time `callback` was executed.\n var lastExec = 0;\n\n // Function to clear existing timeout\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n }\n\n // Function to cancel next exec\n function cancel(options) {\n var _ref2 = options || {},\n _ref2$upcomingOnly = _ref2.upcomingOnly,\n upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;\n clearExistingTimeout();\n cancelled = !upcomingOnly;\n }\n\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n var self = this;\n var elapsed = Date.now() - lastExec;\n if (cancelled) {\n return;\n }\n\n // Execute `callback` and update the `lastExec` timestamp.\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n function clear() {\n timeoutID = undefined;\n }\n if (!noLeading && debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`\n * and noLeading != true.\n */\n exec();\n }\n clearExistingTimeout();\n if (debounceMode === undefined && elapsed > delay) {\n if (noLeading) {\n /*\n * In throttle mode with noLeading, if `delay` time has\n * been exceeded, update `lastExec` and schedule `callback`\n * to execute after `delay` ms.\n */\n lastExec = Date.now();\n if (!noTrailing) {\n timeoutID = setTimeout(debounceMode ? clear : exec, delay);\n }\n } else {\n /*\n * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n }\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n wrapper.cancel = cancel;\n\n // Return the wrapper function.\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\nfunction debounce (delay, callback, options) {\n var _ref = options || {},\n _ref$atBegin = _ref.atBegin,\n atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;\n return throttle(delay, callback, {\n debounceMode: atBegin !== false\n });\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon chart-pie-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ChartPieIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChartPie.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChartPie.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChartPie.vue?vue&type=template&id=90a70766\"\nimport script from \"./ChartPie.vue?vue&type=script&lang=js\"\nexport * from \"./ChartPie.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 chart-pie-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\":\"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\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 -->\n<template>\n\t<NcAppNavigationItem v-if=\"storageStats\"\n\t\t:aria-description=\"t('files', 'Storage information')\"\n\t\t:class=\"{ 'app-navigation-entry__settings-quota--not-unlimited': storageStats.quota >= 0}\"\n\t\t:loading=\"loadingStorageStats\"\n\t\t:name=\"storageStatsTitle\"\n\t\t:title=\"storageStatsTooltip\"\n\t\tclass=\"app-navigation-entry__settings-quota\"\n\t\tdata-cy-files-navigation-settings-quota\n\t\t@click.stop.prevent=\"debounceUpdateStorageStats\">\n\t\t<ChartPie slot=\"icon\" :size=\"20\" />\n\n\t\t<!-- Progress bar -->\n\t\t<NcProgressBar v-if=\"storageStats.quota >= 0\"\n\t\t\tslot=\"extra\"\n\t\t\t:aria-label=\"t('files', 'Storage quota')\"\n\t\t\t:error=\"storageStats.relative > 80\"\n\t\t\t:value=\"Math.min(storageStats.relative, 100)\" />\n\t</NcAppNavigationItem>\n</template>\n\n<script>\nimport { debounce, throttle } from 'throttle-debounce'\nimport { formatFileSize } from '@nextcloud/files'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport { subscribe } from '@nextcloud/event-bus'\nimport { translate } from '@nextcloud/l10n'\nimport axios from '@nextcloud/axios'\n\nimport ChartPie from 'vue-material-design-icons/ChartPie.vue'\nimport NcAppNavigationItem from '@nextcloud/vue/dist/Components/NcAppNavigationItem.js'\nimport NcProgressBar from '@nextcloud/vue/dist/Components/NcProgressBar.js'\n\nimport logger from '../logger.ts'\n\nexport default {\n\tname: 'NavigationQuota',\n\n\tcomponents: {\n\t\tChartPie,\n\t\tNcAppNavigationItem,\n\t\tNcProgressBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloadingStorageStats: false,\n\t\t\tstorageStats: loadState('files', 'storageStats', null),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tstorageStatsTitle() {\n\t\t\tconst usedQuotaByte = formatFileSize(this.storageStats?.used, false, false)\n\t\t\tconst quotaByte = formatFileSize(this.storageStats?.quota, false, false)\n\n\t\t\t// If no quota set\n\t\t\tif (this.storageStats?.quota < 0) {\n\t\t\t\treturn this.t('files', '{usedQuotaByte} used', { usedQuotaByte })\n\t\t\t}\n\n\t\t\treturn this.t('files', '{used} of {quota} used', {\n\t\t\t\tused: usedQuotaByte,\n\t\t\t\tquota: quotaByte,\n\t\t\t})\n\t\t},\n\t\tstorageStatsTooltip() {\n\t\t\tif (!this.storageStats.relative) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn this.t('files', '{relative}% used', this.storageStats)\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\t/**\n\t\t * Update storage stats every minute\n\t\t * TODO: remove when all views are migrated to Vue\n\t\t */\n\t\tsetInterval(this.throttleUpdateStorageStats, 60 * 1000)\n\n\t\tsubscribe('files:node:created', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:deleted', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:moved', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:updated', this.throttleUpdateStorageStats)\n\t},\n\n\tmounted() {\n\t\t// If the user has a quota set, warn if the available account storage is <=0\n\t\t//\n\t\t// NOTE: This doesn't catch situations where actual *server*\n\t\t// disk (non-quota) space is low, but those should probably\n\t\t// be handled differently anyway since a regular user can't\n\t\t// can't do much about them (If we did want to indicate server disk\n\t\t// space matters to users, we'd probably want to use a warning\n\t\t// specific to that situation anyhow. So this covers warning covers\n\t\t// our primary day-to-day concern (individual account quota usage).\n\t\t//\n\t\tif (this.storageStats?.quota > 0 && this.storageStats?.free === 0) {\n\t\t\tthis.showStorageFullWarning()\n\t\t}\n\t},\n\n\tmethods: {\n\t\t// From user input\n\t\tdebounceUpdateStorageStats: debounce(200, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\t\t// From interval or event bus\n\t\tthrottleUpdateStorageStats: throttle(1000, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\n\t\t/**\n\t\t * Update the storage stats\n\t\t * Throttled at max 1 refresh per minute\n\t\t *\n\t\t * @param {Event} [event] if user interaction\n\t\t */\n\t\tasync updateStorageStats(event = null) {\n\t\t\tif (this.loadingStorageStats) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loadingStorageStats = true\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(generateUrl('/apps/files/api/v1/stats'))\n\t\t\t\tif (!response?.data?.data) {\n\t\t\t\t\tthrow new Error('Invalid storage stats')\n\t\t\t\t}\n\n\t\t\t\t// Warn the user if the available account storage changed from > 0 to 0\n\t\t\t\t// (unless only because quota was intentionally set to 0 by admin in the interim)\n\t\t\t\tif (this.storageStats?.free > 0 && response.data.data?.free === 0 && response.data.data?.quota > 0) {\n\t\t\t\t\tthis.showStorageFullWarning()\n\t\t\t\t}\n\n\t\t\t\tthis.storageStats = response.data.data\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Could not refresh storage stats', { error })\n\t\t\t\t// Only show to the user if it was manually triggered\n\t\t\t\tif (event) {\n\t\t\t\t\tshowError(t('files', 'Could not refresh storage stats'))\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loadingStorageStats = false\n\t\t\t}\n\t\t},\n\n\t\tshowStorageFullWarning() {\n\t\t\tshowError(this.t('files', 'Your storage is full, files can not be updated or synced anymore!'))\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\n\n\t&--not-unlimited :deep(.app-navigation-entry__name) {\n\t\tline-height: 1;\n\t\tmargin-top: var(--app-navigation-quota-margin);\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: var(--app-navigation-quota-margin);\n\t\tmargin-inline-start: var(--default-clickable-area);\n\t\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.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!./NavigationQuota.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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=style&index=0&id=6ed9379e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=style&index=0&id=6ed9379e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NavigationQuota.vue?vue&type=template&id=6ed9379e&scoped=true\"\nimport script from \"./NavigationQuota.vue?vue&type=script&lang=js\"\nexport * from \"./NavigationQuota.vue?vue&type=script&lang=js\"\nimport style0 from \"./NavigationQuota.vue?vue&type=style&index=0&id=6ed9379e&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 \"6ed9379e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.storageStats)?_c('NcAppNavigationItem',{staticClass:\"app-navigation-entry__settings-quota\",class:{ 'app-navigation-entry__settings-quota--not-unlimited': _vm.storageStats.quota >= 0},attrs:{\"aria-description\":_vm.t('files', 'Storage information'),\"loading\":_vm.loadingStorageStats,\"name\":_vm.storageStatsTitle,\"title\":_vm.storageStatsTooltip,\"data-cy-files-navigation-settings-quota\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.debounceUpdateStorageStats.apply(null, arguments)}}},[_c('ChartPie',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"}),_vm._v(\" \"),(_vm.storageStats.quota >= 0)?_c('NcProgressBar',{attrs:{\"slot\":\"extra\",\"aria-label\":_vm.t('files', 'Storage quota'),\"error\":_vm.storageStats.relative > 80,\"value\":Math.min(_vm.storageStats.relative, 100)},slot:\"extra\"}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.open,\"show-navigation\":true,\"name\":_vm.t('files', 'Files settings')},on:{\"update:open\":_vm.onClose}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"settings\",\"name\":_vm.t('files', 'Files settings')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"sort_favorites_first\",\"checked\":_vm.userConfig.sort_favorites_first},on:{\"update:checked\":function($event){return _vm.setConfig('sort_favorites_first', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Sort favorites first'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"sort_folders_first\",\"checked\":_vm.userConfig.sort_folders_first},on:{\"update:checked\":function($event){return _vm.setConfig('sort_folders_first', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Sort folders before files'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"show_hidden\",\"checked\":_vm.userConfig.show_hidden},on:{\"update:checked\":function($event){return _vm.setConfig('show_hidden', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show hidden files'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"crop_image_previews\",\"checked\":_vm.userConfig.crop_image_previews},on:{\"update:checked\":function($event){return _vm.setConfig('crop_image_previews', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Crop image previews'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.enableGridView)?_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"grid_view\",\"checked\":_vm.userConfig.grid_view},on:{\"update:checked\":function($event){return _vm.setConfig('grid_view', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Enable the grid view'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"folder_tree\",\"checked\":_vm.userConfig.folder_tree},on:{\"update:checked\":function($event){return _vm.setConfig('folder_tree', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Enable folder tree'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.settings.length !== 0)?_c('NcAppSettingsSection',{attrs:{\"id\":\"more-settings\",\"name\":_vm.t('files', 'Additional settings')}},[_vm._l((_vm.settings),function(setting){return [_c('Setting',{key:setting.name,attrs:{\"el\":setting.el}})]})],2):_vm._e(),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"webdav\",\"name\":_vm.t('files', 'WebDAV')}},[_c('NcInputField',{attrs:{\"id\":\"webdav-url-input\",\"label\":_vm.t('files', 'WebDAV URL'),\"show-trailing-button\":true,\"success\":_vm.webdavUrlCopied,\"trailing-button-label\":_vm.t('files', 'Copy to clipboard'),\"value\":_vm.webdavUrl,\"readonly\":\"readonly\",\"type\":\"url\"},on:{\"focus\":function($event){return $event.target.select()},\"trailing-button-click\":_vm.copyCloudId},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [_c('Clipboard',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.webdavDocs,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Use this address to access your Files via WebDAV'))+\" ↗\\n\\t\\t\\t\")])]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.appPasswordUrl}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.'))+\" ↗\\n\\t\\t\\t\")])])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"shortcuts\",\"name\":_vm.t('files', 'Keyboard shortcuts')}},[_c('em',[_vm._v(_vm._s(_vm.t('files', 'Speed up your Files experience with these quick shortcuts.')))]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'Actions')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"a\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Open the actions menu for a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"F2\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Rename a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Del\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Delete a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"s\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Favorite or remove a file from favorites'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),(_vm.isSystemtagsEnabled)?_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"t\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Manage tags for a file'))+\"\\n\\t\\t\\t\\t\")])]):_vm._e()]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'Selection')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"A\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Select all files'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"ESC\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Deselect all files'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"Space\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Select or deselect a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Ctrl\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"Shift\")]),_vm._v(\" \"),_c('span',[_vm._v(\"+ \"),_c('kbd',[_vm._v(\"Space\")])])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Select a range of files'))+\"\\n\\t\\t\\t\\t\")])])]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'Navigation')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"Alt\")]),_vm._v(\" + \"),_c('kbd',[_vm._v(\"↑\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the parent folder'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"↑\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file above'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"↓\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file below'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"←\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file on the left (in grid mode)'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"→\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Navigate to the file on the right (in grid mode)'))+\"\\n\\t\\t\\t\\t\")])])]),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('files', 'View')))]),_vm._v(\" \"),_c('dl',[_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"V\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Toggle the grid view'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"D\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Open the sidebar for a file'))+\"\\n\\t\\t\\t\\t\")])]),_vm._v(\" \"),_c('div',[_c('dt',{staticClass:\"shortcut-key\"},[_c('kbd',[_vm._v(\"?\")])]),_vm._v(\" \"),_c('dd',{staticClass:\"shortcut-description\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show those shortcuts'))+\"\\n\\t\\t\\t\\t\")])])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div />\n</template>\n<script>\nexport default {\n\tname: 'Setting',\n\tprops: {\n\t\tel: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$el.appendChild(this.el())\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.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!./Setting.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Setting.vue?vue&type=template&id=315a4ce8\"\nimport script from \"./Setting.vue?vue&type=script&lang=js\"\nexport * from \"./Setting.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('div')\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!./Settings.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!./Settings.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcAppSettingsDialog :open=\"open\"\n\t\t:show-navigation=\"true\"\n\t\t:name=\"t('files', 'Files settings')\"\n\t\t@update:open=\"onClose\">\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection id=\"settings\" :name=\"t('files', 'Files settings')\">\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"sort_favorites_first\"\n\t\t\t\t:checked=\"userConfig.sort_favorites_first\"\n\t\t\t\t@update:checked=\"setConfig('sort_favorites_first', $event)\">\n\t\t\t\t{{ t('files', 'Sort favorites first') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"sort_folders_first\"\n\t\t\t\t:checked=\"userConfig.sort_folders_first\"\n\t\t\t\t@update:checked=\"setConfig('sort_folders_first', $event)\">\n\t\t\t\t{{ t('files', 'Sort folders before files') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"show_hidden\"\n\t\t\t\t:checked=\"userConfig.show_hidden\"\n\t\t\t\t@update:checked=\"setConfig('show_hidden', $event)\">\n\t\t\t\t{{ t('files', 'Show hidden files') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"crop_image_previews\"\n\t\t\t\t:checked=\"userConfig.crop_image_previews\"\n\t\t\t\t@update:checked=\"setConfig('crop_image_previews', $event)\">\n\t\t\t\t{{ t('files', 'Crop image previews') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch v-if=\"enableGridView\"\n\t\t\t\tdata-cy-files-settings-setting=\"grid_view\"\n\t\t\t\t:checked=\"userConfig.grid_view\"\n\t\t\t\t@update:checked=\"setConfig('grid_view', $event)\">\n\t\t\t\t{{ t('files', 'Enable the grid view') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"folder_tree\"\n\t\t\t\t:checked=\"userConfig.folder_tree\"\n\t\t\t\t@update:checked=\"setConfig('folder_tree', $event)\">\n\t\t\t\t{{ t('files', 'Enable folder tree') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection v-if=\"settings.length !== 0\"\n\t\t\tid=\"more-settings\"\n\t\t\t:name=\"t('files', 'Additional settings')\">\n\t\t\t<template v-for=\"setting in settings\">\n\t\t\t\t<Setting :key=\"setting.name\" :el=\"setting.el\" />\n\t\t\t</template>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Webdav URL-->\n\t\t<NcAppSettingsSection id=\"webdav\" :name=\"t('files', 'WebDAV')\">\n\t\t\t<NcInputField id=\"webdav-url-input\"\n\t\t\t\t:label=\"t('files', 'WebDAV URL')\"\n\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t:success=\"webdavUrlCopied\"\n\t\t\t\t:trailing-button-label=\"t('files', 'Copy to clipboard')\"\n\t\t\t\t:value=\"webdavUrl\"\n\t\t\t\treadonly=\"readonly\"\n\t\t\t\ttype=\"url\"\n\t\t\t\t@focus=\"$event.target.select()\"\n\t\t\t\t@trailing-button-click=\"copyCloudId\">\n\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t<Clipboard :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcInputField>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\"\n\t\t\t\t\t:href=\"webdavDocs\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noreferrer noopener\">\n\t\t\t\t\t{{ t('files', 'Use this address to access your Files via WebDAV') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\" :href=\"appPasswordUrl\">\n\t\t\t\t\t{{ t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"shortcuts\"\n\t\t\t:name=\"t('files', 'Keyboard shortcuts')\">\n\t\t\t<em>{{ t('files', 'Speed up your Files experience with these quick shortcuts.') }}</em>\n\n\t\t\t<h3>{{ t('files', 'Actions') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>a</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Open the actions menu for a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>F2</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Rename a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Del</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Delete a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>s</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Favorite or remove a file from favorites') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"isSystemtagsEnabled\">\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>t</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Manage tags for a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\n\t\t\t<h3>{{ t('files', 'Selection') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Ctrl</kbd> + <kbd>A</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Select all files') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>ESC</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Deselect all files') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Ctrl</kbd> + <kbd>Space</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Select or deselect a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Ctrl</kbd> + <kbd>Shift</kbd> <span>+ <kbd>Space</kbd></span>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Select a range of files') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\n\t\t\t<h3>{{ t('files', 'Navigation') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>Alt</kbd> + <kbd>↑</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the parent folder') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>↑</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file above') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>↓</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file below') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>←</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file on the left (in grid mode)') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>→</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Navigate to the file on the right (in grid mode)') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\n\t\t\t<h3>{{ t('files', 'View') }}</h3>\n\t\t\t<dl>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>V</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Toggle the grid view') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>D</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Open the sidebar for a file') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"shortcut-key\">\n\t\t\t\t\t\t<kbd>?</kbd>\n\t\t\t\t\t</dt>\n\t\t\t\t\t<dd class=\"shortcut-description\">\n\t\t\t\t\t\t{{ t('files', 'Show those shortcuts') }}\n\t\t\t\t\t</dd>\n\t\t\t\t</div>\n\t\t\t</dl>\n\t\t</NcAppSettingsSection>\n\t</NcAppSettingsDialog>\n</template>\n\n<script>\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport Clipboard from 'vue-material-design-icons/ContentCopy.vue'\nimport NcAppSettingsDialog from '@nextcloud/vue/dist/Components/NcAppSettingsDialog.js'\nimport NcAppSettingsSection from '@nextcloud/vue/dist/Components/NcAppSettingsSection.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'\n\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { t } from '@nextcloud/l10n'\nimport { useHotKey } from '@nextcloud/vue/dist/Composables/useHotKey.js'\n\nimport { useUserConfigStore } from '../store/userconfig.ts'\nimport Setting from '../components/Setting.vue'\n\nexport default {\n\tname: 'Settings',\n\tcomponents: {\n\t\tClipboard,\n\t\tNcAppSettingsDialog,\n\t\tNcAppSettingsSection,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcInputField,\n\t\tSetting,\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst userConfigStore = useUserConfigStore()\n\t\tconst isSystemtagsEnabled = getCapabilities()?.systemtags?.enabled === true\n\t\treturn {\n\t\t\tisSystemtagsEnabled,\n\t\t\tuserConfigStore,\n\t\t\tt,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// Settings API\n\t\t\tsettings: window.OCA?.Files?.Settings?.settings || [],\n\n\t\t\t// Webdav infos\n\t\t\twebdavUrl: generateRemoteUrl('dav/files/' + encodeURIComponent(getCurrentUser()?.uid)),\n\t\t\twebdavDocs: 'https://docs.nextcloud.com/server/stable/go.php?to=user-webdav',\n\t\t\tappPasswordUrl: generateUrl('/settings/user/security#generate-app-token-section'),\n\t\t\twebdavUrlCopied: false,\n\t\t\tenableGridView: (loadState('core', 'config', [])['enable_non-accessible_features'] ?? true),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tuserConfig() {\n\t\t\treturn this.userConfigStore.userConfig\n\t\t},\n\t},\n\n\tcreated() {\n\t\t// ? opens the settings dialog on the keyboard shortcuts section\n\t\tuseHotKey('?', this.showKeyboardShortcuts, {\n\t\t\tstop: true,\n\t\t\tprevent: true,\n\t\t})\n\t},\n\n\tbeforeMount() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.open())\n\t},\n\n\tbeforeDestroy() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.close())\n\t},\n\n\tmethods: {\n\t\tonClose() {\n\t\t\tthis.$emit('close')\n\t\t},\n\n\t\tsetConfig(key, value) {\n\t\t\tthis.userConfigStore.update(key, value)\n\t\t},\n\n\t\tasync copyCloudId() {\n\t\t\tdocument.querySelector('input#webdav-url-input').select()\n\n\t\t\tif (!navigator.clipboard) {\n\t\t\t\t// Clipboard API not available\n\t\t\t\tshowError(t('files', 'Clipboard is not available'))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tawait navigator.clipboard.writeText(this.webdavUrl)\n\t\t\tthis.webdavUrlCopied = true\n\t\t\tshowSuccess(t('files', 'WebDAV URL copied to clipboard'))\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.webdavUrlCopied = false\n\t\t\t}, 5000)\n\t\t},\n\n\t\tasync showKeyboardShortcuts() {\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\tawait this.$nextTick()\n\t\t\tdocument.getElementById('settings-section_shortcuts').scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tinline: 'nearest',\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n\n.shortcut-key {\n\twidth: 160px;\n\t// some shortcuts are too long to fit in one line\n\twhite-space: normal;\n\tspan {\n\t\t// force portion of a shortcut on a new line for nicer display\n\t\twhite-space: nowrap;\n\t}\n}\n</style>\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=6fc727d7&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=6fc727d7&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=6fc727d7&scoped=true\"\nimport script from \"./Settings.vue?vue&type=script&lang=js\"\nexport * from \"./Settings.vue?vue&type=script&lang=js\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=6fc727d7&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 \"6fc727d7\",\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('Fragment',_vm._l((_vm.currentViews),function(view){return _c('NcAppNavigationItem',{key:view.id,staticClass:\"files-navigation__item\",style:(_vm.style),attrs:{\"allow-collapse\":\"\",\"loading\":view.loading,\"data-cy-files-navigation-item\":view.id,\"exact\":_vm.useExactRouteMatching(view),\"icon\":view.iconClass,\"name\":view.name,\"open\":_vm.isExpanded(view),\"pinned\":view.sticky,\"to\":_vm.generateToNavigation(view)},on:{\"update:open\":(open) => _vm.onOpen(open, view)},scopedSlots:_vm._u([(view.icon)?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":view.icon}})]},proxy:true}:null],null,true)},[_vm._v(\" \"),(view.loadChildViews && !view.loaded)?_c('li',{staticStyle:{\"display\":\"none\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasChildViews(view))?_c('FilesNavigationItem',{attrs:{\"parent\":view,\"level\":_vm.level + 1,\"views\":_vm.filterView(_vm.views, _vm.parent.id)}}):_vm._e()],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport { onMounted, onUnmounted, shallowRef, triggerRef } from 'vue';\n/**\n * Composable to get the currently active files view from the files navigation\n * @param _loaded If set enforce a current view is loaded\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function useNavigation(_loaded) {\n const navigation = getNavigation();\n const views = shallowRef(navigation.views);\n const currentView = shallowRef(navigation.active);\n /**\n * Event listener to update the `currentView`\n * @param event The update event\n */\n function onUpdateActive(event) {\n currentView.value = event.detail;\n }\n /**\n * Event listener to update all registered views\n */\n function onUpdateViews() {\n views.value = navigation.views;\n triggerRef(views);\n }\n onMounted(() => {\n navigation.addEventListener('update', onUpdateViews);\n navigation.addEventListener('updateActive', onUpdateActive);\n subscribe('files:navigation:updated', onUpdateViews);\n });\n onUnmounted(() => {\n navigation.removeEventListener('update', onUpdateViews);\n navigation.removeEventListener('updateActive', onUpdateActive);\n });\n return {\n currentView,\n views,\n };\n}\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport { ref, set } from 'vue';\nimport axios from '@nextcloud/axios';\nconst initialViewConfig = loadState('files', 'viewConfigs', {});\nexport const useViewConfigStore = defineStore('viewconfig', () => {\n const viewConfigs = ref({ ...initialViewConfig });\n /**\n * Get the config for a specific view\n * @param viewid Id of the view to fet the config for\n */\n function getConfig(viewid) {\n return viewConfigs.value[viewid] || {};\n }\n /**\n * Update the view config local store\n * @param viewId The id of the view to update\n * @param key The config key to update\n * @param value The new value\n */\n function onUpdate(viewId, key, value) {\n if (!(viewId in viewConfigs.value)) {\n set(viewConfigs.value, viewId, {});\n }\n set(viewConfigs.value[viewId], key, value);\n }\n /**\n * Update the view config local store AND on server side\n * @param view Id of the view to update\n * @param key Config key to update\n * @param value New value\n */\n async function update(view, key, value) {\n if (getCurrentUser() !== null) {\n await axios.put(generateUrl('/apps/files/api/v1/views'), {\n value,\n view,\n key,\n });\n }\n emit('files:view-config:updated', { view, key, value });\n }\n /**\n * Set the sorting key AND sort by ASC\n * The key param must be a valid key of a File object\n * If not found, will be searched within the File attributes\n * @param key Key to sort by\n * @param view View to set the sorting key for\n */\n function setSortingBy(key = 'basename', view = 'files') {\n // Save new config\n update(view, 'sorting_mode', key);\n update(view, 'sorting_direction', 'asc');\n }\n /**\n * Toggle the sorting direction\n * @param viewId id of the view to set the sorting order for\n */\n function toggleSortingDirection(viewId = 'files') {\n const config = viewConfigs.value[viewId] || { sorting_direction: 'asc' };\n const newDirection = config.sorting_direction === 'asc' ? 'desc' : 'asc';\n // Save new config\n update(viewId, 'sorting_direction', newDirection);\n }\n // Initialize event listener\n subscribe('files:view-config:updated', ({ view, key, value }) => onUpdate(view, key, value));\n return {\n viewConfigs,\n getConfig,\n setSortingBy,\n toggleSortingDirection,\n update,\n };\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationItem.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationItem.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FilesNavigationItem.vue?vue&type=template&id=7a39a8a8\"\nimport script from \"./FilesNavigationItem.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesNavigationItem.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FileListFilter } from '@nextcloud/files';\n/**\n * Simple file list filter controlled by the Navigation search box\n */\nexport class FilenameFilter extends FileListFilter {\n searchQuery = '';\n constructor() {\n super('files:filename', 5);\n }\n filter(nodes) {\n const queryParts = this.searchQuery.toLocaleLowerCase().split(' ').filter(Boolean);\n return nodes.filter((node) => {\n const displayname = node.displayname.toLocaleLowerCase();\n return queryParts.every((part) => displayname.includes(part));\n });\n }\n reset() {\n this.updateQuery('');\n }\n updateQuery(query) {\n query = (query || '').trim();\n // Only if the query is different we update the filter to prevent re-computing all nodes\n if (query !== this.searchQuery) {\n this.searchQuery = query;\n this.filterUpdated();\n const chips = [];\n if (query !== '') {\n chips.push({\n text: query,\n onclick: () => {\n this.updateQuery('');\n },\n });\n }\n this.updateChips(chips);\n // Emit the new query as it might have come not from the Navigation\n this.dispatchTypedEvent('update:query', new CustomEvent('update:query', { detail: query }));\n }\n }\n}\n","import { subscribe } from '@nextcloud/event-bus';\nimport { getFileListFilters } from '@nextcloud/files';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\nimport logger from '../logger';\n/**\n * Check if the given value is an instance file list filter with mount function\n * @param value The filter to check\n */\nfunction isFileListFilterWithUi(value) {\n return 'mount' in value;\n}\nexport const useFiltersStore = defineStore('filters', () => {\n const chips = ref({});\n const filters = ref([]);\n const filtersChanged = ref(false);\n /**\n * Currently active filter chips\n */\n const activeChips = computed(() => Object.values(chips.value).flat());\n /**\n * Filters sorted by order\n */\n const sortedFilters = computed(() => filters.value.sort((a, b) => a.order - b.order));\n /**\n * All filters that provide a UI for visual controlling the filter state\n */\n const filtersWithUI = computed(() => sortedFilters.value.filter(isFileListFilterWithUi));\n /**\n * Register a new filter on the store.\n * This will subscribe the store to the filters events.\n *\n * @param filter The filter to add\n */\n function addFilter(filter) {\n filter.addEventListener('update:chips', onFilterUpdateChips);\n filter.addEventListener('update:filter', onFilterUpdate);\n filters.value.push(filter);\n logger.debug('New file list filter registered', { id: filter.id });\n }\n /**\n * Unregister a filter from the store.\n * This will remove the filter from the store and unsubscribe the store from the filer events.\n * @param filterId Id of the filter to remove\n */\n function removeFilter(filterId) {\n const index = filters.value.findIndex(({ id }) => id === filterId);\n if (index > -1) {\n const [filter] = filters.value.splice(index, 1);\n filter.removeEventListener('update:chips', onFilterUpdateChips);\n filter.removeEventListener('update:filter', onFilterUpdate);\n logger.debug('Files list filter unregistered', { id: filterId });\n }\n }\n /**\n * Event handler for filter update events\n * @private\n */\n function onFilterUpdate() {\n filtersChanged.value = true;\n }\n /**\n * Event handler for filter chips updates\n * @param event The update event\n * @private\n */\n function onFilterUpdateChips(event) {\n const id = event.target.id;\n chips.value = {\n ...chips.value,\n [id]: [...event.detail],\n };\n logger.debug('File list filter chips updated', { filter: id, chips: event.detail });\n }\n /**\n * Event handler that resets all filters if the file list view was changed.\n * @private\n */\n function onViewChanged() {\n logger.debug('Reset all file list filters - view changed');\n for (const filter of filters.value) {\n if (filter.reset !== undefined) {\n filter.reset();\n }\n }\n }\n // Initialize the store\n subscribe('files:navigation:changed', onViewChanged);\n subscribe('files:filter:added', addFilter);\n subscribe('files:filter:removed', removeFilter);\n for (const filter of getFileListFilters()) {\n addFilter(filter);\n }\n return {\n // state\n chips,\n filters,\n filtersWithUI,\n filtersChanged,\n // getters / computed\n activeChips,\n sortedFilters,\n // actions / methods\n addFilter,\n removeFilter,\n };\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppNavigation',{staticClass:\"files-navigation\",attrs:{\"data-cy-files-navigation\":\"\",\"aria-label\":_vm.t('files', 'Files')},scopedSlots:_vm._u([{key:\"search\",fn:function(){return [_c('NcAppNavigationSearch',{attrs:{\"label\":_vm.t('files', 'Filter file names …')},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})]},proxy:true},{key:\"default\",fn:function(){return [_c('NcAppNavigationList',{staticClass:\"files-navigation__list\",attrs:{\"aria-label\":_vm.t('files', 'Views')}},[_c('FilesNavigationItem',{attrs:{\"views\":_vm.viewMap}})],1),_vm._v(\" \"),_c('SettingsModal',{attrs:{\"open\":_vm.settingsOpened,\"data-cy-files-navigation-settings\":\"\"},on:{\"update:open\":function($event){_vm.settingsOpened=$event},\"close\":_vm.onSettingsClose}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ul',{staticClass:\"app-navigation-entry__settings\"},[_c('NavigationQuota'),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"name\":_vm.t('files', 'Files settings'),\"data-cy-files-navigation-settings-button\":\"\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openSettings.apply(null, arguments)}}},[_c('IconCog',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"})],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=ts\"","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { registerFileListFilter, unregisterFileListFilter } from '@nextcloud/files';\nimport { watchThrottled } from '@vueuse/core';\nimport { onMounted, onUnmounted, ref } from 'vue';\nimport { FilenameFilter } from '../filters/FilenameFilter';\n/**\n * This is for the `Navigation` component to provide a filename filter\n */\nexport function useFilenameFilter() {\n const searchQuery = ref('');\n const filenameFilter = new FilenameFilter();\n /**\n * Updating the search query ref from the filter\n * @param event The update:query event\n */\n function updateQuery(event) {\n if (event.type === 'update:query') {\n searchQuery.value = event.detail;\n event.stopPropagation();\n }\n }\n onMounted(() => {\n filenameFilter.addEventListener('update:query', updateQuery);\n registerFileListFilter(filenameFilter);\n });\n onUnmounted(() => {\n filenameFilter.removeEventListener('update:query', updateQuery);\n unregisterFileListFilter(filenameFilter.id);\n });\n // Update the query on the filter, but throttle to max. every 800ms\n // This will debounce the filter refresh\n watchThrottled(searchQuery, () => {\n filenameFilter.updateQuery(searchQuery.value);\n }, { throttle: 800 });\n return {\n searchQuery,\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=c6191948&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=c6191948&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=c6191948&scoped=true\"\nimport script from \"./Navigation.vue?vue&type=script&lang=ts\"\nexport * from \"./Navigation.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Navigation.vue?vue&type=style&index=0&id=c6191948&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 \"c6191948\",\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('NcAppContent',{attrs:{\"page-heading\":_vm.pageHeading,\"data-cy-files-content\":\"\"}},[_c('div',{staticClass:\"files-list__header\",class:{ 'files-list__header--public': _vm.isPublic }},[_c('BreadCrumbs',{attrs:{\"path\":_vm.directory},on:{\"reload\":_vm.fetchContent},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [(_vm.canShare && _vm.fileListWidth >= 512)?_c('NcButton',{staticClass:\"files-list__header-share-button\",class:{ 'files-list__header-share-button--shared': _vm.shareButtonType },attrs:{\"aria-label\":_vm.shareButtonLabel,\"title\":_vm.shareButtonLabel,\"type\":\"tertiary\"},on:{\"click\":_vm.openSharingSidebar},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.shareButtonType === _vm.ShareType.Link)?_c('LinkIcon'):_c('AccountPlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,4106306959)}):_vm._e(),_vm._v(\" \"),(_vm.canUpload && !_vm.isQuotaExceeded && _vm.currentFolder)?_c('UploadPicker',{staticClass:\"files-list__header-upload-button\",attrs:{\"allow-folders\":\"\",\"content\":_vm.getContent,\"destination\":_vm.currentFolder,\"forbidden-characters\":_vm.forbiddenCharacters,\"multiple\":\"\"},on:{\"failed\":_vm.onUploadFail,\"uploaded\":_vm.onUpload}}):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__refresh-icon\"}):_vm._e(),_vm._v(\" \"),_c('NcActions',{staticClass:\"files-list__header-actions\",attrs:{\"inline\":1,\"type\":\"tertiary\",\"force-name\":\"\"}},_vm._l((_vm.enabledFileListActions),function(action){return _c('NcActionButton',{key:action.id,attrs:{\"disabled\":!!_vm.loadingAction,\"data-cy-files-list-action\":action.id,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.execFileListAction(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loadingAction === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):(action.iconSvgInline !== undefined && _vm.currentView)?_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.currentView)}}):_vm._e()]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])}),1),_vm._v(\" \"),(_vm.fileListWidth >= 512 && _vm.enableGridView)?_c('NcButton',{staticClass:\"files-list__header-grid-button\",attrs:{\"aria-label\":_vm.gridViewButtonLabel,\"title\":_vm.gridViewButtonLabel,\"type\":\"tertiary\"},on:{\"click\":_vm.toggleGridView},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.userConfig.grid_view)?_c('ListViewIcon'):_c('ViewGridIcon')]},proxy:true}],null,false,1682960703)}):_vm._e()],1),_vm._v(\" \"),(!_vm.loading && _vm.canUpload)?_c('DragAndDropNotice',{attrs:{\"current-folder\":_vm.currentFolder}}):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__loading-icon\",attrs:{\"size\":38,\"name\":_vm.t('files', 'Loading current folder')}}):(!_vm.loading && _vm.isEmptyDir)?[(_vm.error)?_c('NcEmptyContent',{attrs:{\"name\":_vm.error,\"data-cy-files-content-error\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [_c('NcButton',{attrs:{\"type\":\"secondary\"},on:{\"click\":_vm.fetchContent},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconReload',{attrs:{\"size\":20}})]},proxy:true}],null,false,3448385010)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Retry'))+\"\\n\\t\\t\\t\\t\")])]},proxy:true},{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}],null,false,2673163798)}):(_vm.currentView?.emptyView)?_c('div',{staticClass:\"files-list__empty-view-wrapper\"},[_c('div',{ref:\"customEmptyView\"})]):_c('NcEmptyContent',{attrs:{\"name\":_vm.currentView?.emptyTitle || _vm.t('files', 'No files in here'),\"description\":_vm.currentView?.emptyCaption || _vm.t('files', 'Upload some content or sync with your devices!'),\"data-cy-files-content-empty\":\"\"},scopedSlots:_vm._u([(_vm.directory !== '/')?{key:\"action\",fn:function(){return [(_vm.canUpload && !_vm.isQuotaExceeded)?_c('UploadPicker',{staticClass:\"files-list__header-upload-button\",attrs:{\"allow-folders\":\"\",\"content\":_vm.getContent,\"destination\":_vm.currentFolder,\"forbidden-characters\":_vm.forbiddenCharacters,\"multiple\":\"\"},on:{\"failed\":_vm.onUploadFail,\"uploaded\":_vm.onUpload}}):_c('NcButton',{attrs:{\"to\":_vm.toPreviousDir,\"type\":\"primary\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Go back'))+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null,{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.currentView.icon}})]},proxy:true}],null,true)})]:_c('FilesListVirtual',{ref:\"filesListVirtual\",attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"nodes\":_vm.dirContentsSorted}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon reload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ReloadIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Reload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Reload.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Reload.vue?vue&type=template&id=39a07256\"\nimport script from \"./Reload.vue?vue&type=script&lang=js\"\nexport * from \"./Reload.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 reload-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 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon format-list-bulleted-square-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FormatListBulletedSquareIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FormatListBulletedSquare.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FormatListBulletedSquare.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FormatListBulletedSquare.vue?vue&type=template&id=64cece03\"\nimport script from \"./FormatListBulletedSquare.vue?vue&type=script&lang=js\"\nexport * from \"./FormatListBulletedSquare.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 format-list-bulleted-square-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,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-plus-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountPlusIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountPlus.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountPlus.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountPlus.vue?vue&type=template&id=53a26aa0\"\nimport script from \"./AccountPlus.vue?vue&type=script&lang=js\"\nexport * from \"./AccountPlus.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-plus-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\":\"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ViewGrid.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ViewGrid.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon view-grid-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ViewGridIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./ViewGrid.vue?vue&type=template&id=672ea5c8\"\nimport script from \"./ViewGrid.vue?vue&type=script&lang=js\"\nexport * from \"./ViewGrid.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 view-grid-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,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { onMounted, readonly, ref } from 'vue';\n/** The element we observe */\nlet element;\n/** The current width of the element */\nconst width = ref(0);\nconst observer = new ResizeObserver((elements) => {\n if (elements[0].contentBoxSize) {\n // use the newer `contentBoxSize` property if available\n width.value = elements[0].contentBoxSize[0].inlineSize;\n }\n else {\n // fall back to `contentRect`\n width.value = elements[0].contentRect.width;\n }\n});\n/**\n * Update the observed element if needed and reconfigure the observer\n */\nfunction updateObserver() {\n const el = document.querySelector('#app-content-vue') ?? document.body;\n if (el !== element) {\n // if already observing: stop observing the old element\n if (element) {\n observer.unobserve(element);\n }\n // observe the new element if needed\n observer.observe(el);\n element = el;\n }\n}\n/**\n * Get the reactive width of the file list\n */\nexport function useFileListWidth() {\n // Update the observer when the component is mounted (e.g. because this is the files app)\n onMounted(updateObserver);\n // Update the observer also in setup context, so we already have an initial value\n updateObserver();\n return readonly(width);\n}\n","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { computed } from 'vue';\nimport { useRoute } from 'vue-router/composables';\n/**\n * Get information about the current route\n */\nexport function useRouteParameters() {\n const route = useRoute();\n /**\n * Get the path of the current active directory\n */\n const directory = computed(() => String(route.query.dir || '/')\n // Remove any trailing slash but leave root slash\n .replace(/^(.+)\\/$/, '$1'));\n /**\n * Get the current fileId used on the route\n */\n const fileId = computed(() => {\n const fileId = Number.parseInt(route.params.fileid ?? '0') || null;\n return Number.isNaN(fileId) ? null : fileId;\n });\n /**\n * State of `openFile` route param\n */\n const openFile = computed(\n // if `openfile` is set it is considered truthy, but allow to explicitly set it to 'false'\n () => 'openfile' in route.query && (typeof route.query.openfile !== 'string' || route.query.openfile.toLocaleLowerCase() !== 'false'));\n const openDetails = computed(\n // if `opendetails` is set it is considered truthy, but allow to explicitly set it to 'false'\n () => 'opendetails' in route.query && (typeof route.query.opendetails !== 'string' || route.query.opendetails.toLocaleLowerCase() !== 'false'));\n return {\n /** Path of currently open directory */\n directory,\n /** Current active fileId */\n fileId,\n /** Should the active node should be opened (`openFile` route param) */\n openFile,\n /** Should the details sidebar be shown (`openDetails` route param) */\n openDetails,\n };\n}\n","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\nimport { getCurrentInstance, effectScope, shallowReactive, onUnmounted, computed, unref } from 'vue';\n\n// dev only warn if no current instance\n\nfunction throwNoCurrentInstance (method) {\n if (!getCurrentInstance()) {\n throw new Error(\n (\"[vue-router]: Missing current instance. \" + method + \"() must be called inside <script setup> or setup().\")\n )\n }\n}\n\nfunction useRouter () {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useRouter');\n }\n\n return getCurrentInstance().proxy.$root.$router\n}\n\nfunction useRoute () {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useRoute');\n }\n\n var root = getCurrentInstance().proxy.$root;\n if (!root._$route) {\n var route = effectScope(true).run(function () { return shallowReactive(Object.assign({}, root.$router.currentRoute)); }\n );\n root._$route = route;\n\n root.$router.afterEach(function (to) {\n Object.assign(route, to);\n });\n }\n\n return root._$route\n}\n\nfunction onBeforeRouteUpdate (guard) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('onBeforeRouteUpdate');\n }\n\n return useFilteredGuard(guard, isUpdateNavigation)\n}\nfunction isUpdateNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return (\n toMatched.length >= depth &&\n toMatched\n .slice(0, depth + 1)\n .every(function (record, i) { return record === fromMatched[i]; })\n )\n}\n\nfunction isLeaveNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return toMatched.length < depth || toMatched[depth] !== fromMatched[depth]\n}\n\nfunction onBeforeRouteLeave (guard) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('onBeforeRouteLeave');\n }\n\n return useFilteredGuard(guard, isLeaveNavigation)\n}\n\nvar noop = function () {};\nfunction useFilteredGuard (guard, fn) {\n var instance = getCurrentInstance();\n var router = useRouter();\n\n var target = instance.proxy;\n // find the nearest RouterView to know the depth\n while (\n target &&\n target.$vnode &&\n target.$vnode.data &&\n target.$vnode.data.routerViewDepth == null\n ) {\n target = target.$parent;\n }\n\n var depth =\n target && target.$vnode && target.$vnode.data\n ? target.$vnode.data.routerViewDepth\n : null;\n\n if (depth != null) {\n var removeGuard = router.beforeEach(function (to, from, next) {\n return fn(to, from, depth) ? guard(to, from, next) : next()\n });\n\n onUnmounted(removeGuard);\n return removeGuard\n }\n\n return noop\n}\n\n/* */\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction includesParams (outer, inner) {\n var loop = function ( key ) {\n var innerValue = inner[key];\n var outerValue = outer[key];\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue) { return { v: false } }\n } else {\n if (\n !Array.isArray(outerValue) ||\n outerValue.length !== innerValue.length ||\n innerValue.some(function (value, i) { return value !== outerValue[i]; })\n ) {\n return { v: false }\n }\n }\n };\n\n for (var key in inner) {\n var returned = loop( key );\n\n if ( returned ) return returned.v;\n }\n\n return true\n}\n\n// helpers from vue router 4\n\nfunction isSameRouteLocationParamsValue (a, b) {\n return Array.isArray(a)\n ? isEquivalentArray(a, b)\n : Array.isArray(b)\n ? isEquivalentArray(b, a)\n : a === b\n}\n\nfunction isEquivalentArray (a, b) {\n return Array.isArray(b)\n ? a.length === b.length && a.every(function (value, i) { return value === b[i]; })\n : a.length === 1 && a[0] === b\n}\n\nfunction isSameRouteLocationParams (a, b) {\n if (Object.keys(a).length !== Object.keys(b).length) { return false }\n\n for (var key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key])) { return false }\n }\n\n return true\n}\n\nfunction useLink (props) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useLink');\n }\n\n var router = useRouter();\n var currentRoute = useRoute();\n\n var resolvedRoute = computed(function () { return router.resolve(unref(props.to), currentRoute); });\n\n var activeRecordIndex = computed(function () {\n var route = resolvedRoute.value.route;\n var matched = route.matched;\n var length = matched.length;\n var routeMatched = matched[length - 1];\n var currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length) { return -1 }\n var index = currentMatched.indexOf(routeMatched);\n if (index > -1) { return index }\n // possible parent record\n var parentRecord = currentMatched[currentMatched.length - 2];\n\n return (\n // we are dealing with nested routes\n length > 1 &&\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n parentRecord && parentRecord === routeMatched.parent\n )\n });\n\n var isActive = computed(\n function () { return activeRecordIndex.value > -1 &&\n includesParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n var isExactActive = computed(\n function () { return activeRecordIndex.value > -1 &&\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\n isSameRouteLocationParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n\n var navigate = function (e) {\n var href = resolvedRoute.value.route;\n if (guardEvent(e)) {\n return props.replace\n ? router.replace(href)\n : router.push(href)\n }\n return Promise.resolve()\n };\n\n return {\n href: computed(function () { return resolvedRoute.value.href; }),\n route: computed(function () { return resolvedRoute.value.route; }),\n isExactActive: isExactActive,\n isActive: isActive,\n navigate: navigate\n }\n}\n\nexport { isSameRouteLocationParams, onBeforeRouteLeave, onBeforeRouteUpdate, useLink, useRoute, useRouter };\n","import { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\nexport const fetchNode = async (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","import { defineStore } from 'pinia';\nimport { dirname } from '@nextcloud/paths';\nimport { File, FileType, Folder, Node, getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport Vue from 'vue';\nimport logger from '../logger';\nimport { useFilesStore } from './files';\nexport const usePathsStore = function (...args) {\n const files = useFilesStore(...args);\n const store = defineStore('paths', {\n state: () => ({\n paths: {},\n }),\n getters: {\n getPath: (state) => {\n return (service, path) => {\n if (!state.paths[service]) {\n return undefined;\n }\n return state.paths[service][path];\n };\n },\n },\n actions: {\n addPath(payload) {\n // If it doesn't exists, init the service state\n if (!this.paths[payload.service]) {\n Vue.set(this.paths, payload.service, {});\n }\n // Now we can set the provided path\n Vue.set(this.paths[payload.service], payload.path, payload.source);\n },\n deletePath(service, path) {\n // skip if service does not exist\n if (!this.paths[service]) {\n return;\n }\n Vue.delete(this.paths[service], path);\n },\n onCreatedNode(node) {\n const service = getNavigation()?.active?.id || 'files';\n if (!node.fileid) {\n logger.error('Node has no fileid', { node });\n return;\n }\n // Only add path if it's a folder\n if (node.type === FileType.Folder) {\n this.addPath({\n service,\n path: node.path,\n source: node.source,\n });\n }\n // Update parent folder children if exists\n // If the folder is the root, get it and update it\n this.addNodeToParentChildren(node);\n },\n onDeletedNode(node) {\n const service = getNavigation()?.active?.id || 'files';\n if (node.type === FileType.Folder) {\n // Delete the path\n this.deletePath(service, node.path);\n }\n this.deleteNodeFromParentChildren(node);\n },\n onMovedNode({ node, oldSource }) {\n const service = getNavigation()?.active?.id || 'files';\n // Update the path of the node\n if (node.type === FileType.Folder) {\n // Delete the old path if it exists\n const oldPath = Object.entries(this.paths[service]).find(([, source]) => source === oldSource);\n if (oldPath?.[0]) {\n this.deletePath(service, oldPath[0]);\n }\n // Add the new path\n this.addPath({\n service,\n path: node.path,\n source: node.source,\n });\n }\n // Dummy simple clone of the renamed node from a previous state\n const oldNode = new File({ source: oldSource, owner: node.owner, mime: node.mime });\n this.deleteNodeFromParentChildren(oldNode);\n this.addNodeToParentChildren(node);\n },\n deleteNodeFromParentChildren(node) {\n const service = getNavigation()?.active?.id || 'files';\n // Update children of a root folder\n const parentSource = dirname(node.source);\n const folder = (node.dirname === '/' ? files.getRoot(service) : files.getNode(parentSource));\n if (folder) {\n // ensure sources are unique\n const children = new Set(folder._children ?? []);\n children.delete(node.source);\n Vue.set(folder, '_children', [...children.values()]);\n logger.debug('Children updated', { parent: folder, node, children: folder._children });\n return;\n }\n logger.debug('Parent path does not exists, skipping children update', { node });\n },\n addNodeToParentChildren(node) {\n const service = getNavigation()?.active?.id || 'files';\n // Update children of a root folder\n const parentSource = dirname(node.source);\n const folder = (node.dirname === '/' ? files.getRoot(service) : files.getNode(parentSource));\n if (folder) {\n // ensure sources are unique\n const children = new Set(folder._children ?? []);\n children.add(node.source);\n Vue.set(folder, '_children', [...children.values()]);\n logger.debug('Children updated', { parent: folder, node, children: folder._children });\n return;\n }\n logger.debug('Parent path does not exists, skipping children update', { node });\n },\n },\n });\n const pathsStore = store(...args);\n // Make sure we only register the listeners once\n if (!pathsStore._initialized) {\n subscribe('files:node:created', pathsStore.onCreatedNode);\n subscribe('files:node:deleted', pathsStore.onDeletedNode);\n subscribe('files:node:moved', pathsStore.onMovedNode);\n pathsStore._initialized = true;\n }\n return pathsStore;\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia';\nimport { subscribe } from '@nextcloud/event-bus';\nimport logger from '../logger';\nimport Vue from 'vue';\nimport { fetchNode } from '../services/WebdavClient.ts';\nimport { usePathsStore } from './paths.ts';\nexport const useFilesStore = function (...args) {\n const store = defineStore('files', {\n state: () => ({\n files: {},\n roots: {},\n }),\n getters: {\n /**\n * Get a file or folder by its source\n * @param state\n */\n getNode: (state) => (source) => state.files[source],\n /**\n * Get a list of files or folders by their IDs\n * Note: does not return undefined values\n * @param state\n */\n getNodes: (state) => (sources) => sources\n .map(source => state.files[source])\n .filter(Boolean),\n /**\n * Get files or folders by their file ID\n * Multiple nodes can have the same file ID but different sources\n * (e.g. in a shared context)\n * @param state\n */\n getNodesById: (state) => (fileId) => Object.values(state.files).filter(node => node.fileid === fileId),\n /**\n * Get the root folder of a service\n * @param state\n */\n getRoot: (state) => (service) => state.roots[service],\n },\n actions: {\n /**\n * Get cached child nodes within a given path\n *\n * @param service The service (files view)\n * @param path The path relative within the service\n * @return Array of cached nodes within the path\n */\n getNodesByPath(service, path) {\n const pathsStore = usePathsStore();\n let folder;\n // Get the containing folder from path store\n if (!path || path === '/') {\n folder = this.getRoot(service);\n }\n else {\n const source = pathsStore.getPath(service, path);\n if (source) {\n folder = this.getNode(source);\n }\n }\n // If we found a cache entry and the cache entry was already loaded (has children) then use it\n return (folder?._children ?? [])\n .map((source) => this.getNode(source))\n .filter(Boolean);\n },\n updateNodes(nodes) {\n // Update the store all at once\n const files = nodes.reduce((acc, node) => {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return acc;\n }\n acc[node.source] = node;\n return acc;\n }, {});\n Vue.set(this, 'files', { ...this.files, ...files });\n },\n deleteNodes(nodes) {\n nodes.forEach(node => {\n if (node.source) {\n Vue.delete(this.files, node.source);\n }\n });\n },\n setRoot({ service, root }) {\n Vue.set(this.roots, service, root);\n },\n onDeletedNode(node) {\n this.deleteNodes([node]);\n },\n onCreatedNode(node) {\n this.updateNodes([node]);\n },\n onMovedNode({ node, oldSource }) {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return;\n }\n // Update the path of the node\n Vue.delete(this.files, oldSource);\n this.updateNodes([node]);\n },\n async onUpdatedNode(node) {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return;\n }\n // If we have multiple nodes with the same file ID, we need to update all of them\n const nodes = this.getNodesById(node.fileid);\n if (nodes.length > 1) {\n await Promise.all(nodes.map(node => fetchNode(node.path))).then(this.updateNodes);\n logger.debug(nodes.length + ' nodes updated in store', { fileid: node.fileid });\n return;\n }\n // If we have only one node with the file ID, we can update it directly\n if (node.source === nodes[0].source) {\n this.updateNodes([node]);\n return;\n }\n // Otherwise, it means we receive an event for a node that is not in the store\n fetchNode(node.path).then(n => this.updateNodes([n]));\n },\n // Handlers for legacy sidebar (no real nodes support)\n onAddFavorite(node) {\n const ourNode = this.getNode(node.source);\n if (ourNode) {\n Vue.set(ourNode.attributes, 'favorite', 1);\n }\n },\n onRemoveFavorite(node) {\n const ourNode = this.getNode(node.source);\n if (ourNode) {\n Vue.set(ourNode.attributes, 'favorite', 0);\n }\n },\n },\n });\n const fileStore = store(...args);\n // Make sure we only register the listeners once\n if (!fileStore._initialized) {\n subscribe('files:node:created', fileStore.onCreatedNode);\n subscribe('files:node:deleted', fileStore.onDeletedNode);\n subscribe('files:node:updated', fileStore.onUpdatedNode);\n subscribe('files:node:moved', fileStore.onMovedNode);\n // legacy sidebar\n subscribe('files:favorites:added', fileStore.onAddFavorite);\n subscribe('files:favorites:removed', fileStore.onRemoveFavorite);\n fileStore._initialized = true;\n }\n return fileStore;\n};\n","import { defineStore } from 'pinia';\nimport Vue from 'vue';\nexport const useSelectionStore = defineStore('selection', {\n state: () => ({\n selected: [],\n lastSelection: [],\n lastSelectedIndex: null,\n }),\n actions: {\n /**\n * Set the selection of fileIds\n * @param selection\n */\n set(selection = []) {\n Vue.set(this, 'selected', [...new Set(selection)]);\n },\n /**\n * Set the last selected index\n * @param lastSelectedIndex\n */\n setLastIndex(lastSelectedIndex = null) {\n // Update the last selection if we provided a new selection starting point\n Vue.set(this, 'lastSelection', lastSelectedIndex ? this.selected : []);\n Vue.set(this, 'lastSelectedIndex', lastSelectedIndex);\n },\n /**\n * Reset the selection\n */\n reset() {\n Vue.set(this, 'selected', []);\n Vue.set(this, 'lastSelection', []);\n Vue.set(this, 'lastSelectedIndex', null);\n },\n },\n});\n","import { defineStore } from 'pinia';\nimport { getUploader } from '@nextcloud/upload';\nlet uploader;\nexport const useUploaderStore = function (...args) {\n // Only init on runtime\n uploader = getUploader();\n const store = defineStore('uploader', {\n state: () => ({\n queue: uploader.queue,\n }),\n });\n return store(...args);\n};\n","import { emit } from '@nextcloud/event-bus';\nimport { Folder, Node, davGetClient, davGetDefaultPropfind, davResultToNode } from '@nextcloud/files';\nimport { openConflictPicker } from '@nextcloud/upload';\nimport { showError, showInfo } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport logger from '../logger.ts';\n/**\n * This represents a Directory in the file tree\n * We extend the File class to better handling uploading\n * and stay as close as possible as the Filesystem API.\n * This also allow us to hijack the size or lastModified\n * properties to compute them dynamically.\n */\nexport class Directory extends File {\n /* eslint-disable no-use-before-define */\n _contents;\n constructor(name, contents = []) {\n super([], name, { type: 'httpd/unix-directory' });\n this._contents = contents;\n }\n set contents(contents) {\n this._contents = contents;\n }\n get contents() {\n return this._contents;\n }\n get size() {\n return this._computeDirectorySize(this);\n }\n get lastModified() {\n if (this._contents.length === 0) {\n return Date.now();\n }\n return this._computeDirectoryMtime(this);\n }\n /**\n * Get the last modification time of a file tree\n * This is not perfect, but will get us a pretty good approximation\n * @param directory the directory to traverse\n */\n _computeDirectoryMtime(directory) {\n return directory.contents.reduce((acc, file) => {\n return file.lastModified > acc\n // If the file is a directory, the lastModified will\n // also return the results of its _computeDirectoryMtime method\n // Fancy recursion, huh?\n ? file.lastModified\n : acc;\n }, 0);\n }\n /**\n * Get the size of a file tree\n * @param directory the directory to traverse\n */\n _computeDirectorySize(directory) {\n return directory.contents.reduce((acc, entry) => {\n // If the file is a directory, the size will\n // also return the results of its _computeDirectorySize method\n // Fancy recursion, huh?\n return acc + entry.size;\n }, 0);\n }\n}\n/**\n * Traverse a file tree using the Filesystem API\n * @param entry the entry to traverse\n */\nexport const traverseTree = async (entry) => {\n // Handle file\n if (entry.isFile) {\n return new Promise((resolve, reject) => {\n entry.file(resolve, reject);\n });\n }\n // Handle directory\n logger.debug('Handling recursive file tree', { entry: entry.name });\n const directory = entry;\n const entries = await readDirectory(directory);\n const contents = (await Promise.all(entries.map(traverseTree))).flat();\n return new Directory(directory.name, contents);\n};\n/**\n * Read a directory using Filesystem API\n * @param directory the directory to read\n */\nconst readDirectory = (directory) => {\n const dirReader = directory.createReader();\n return new Promise((resolve, reject) => {\n const entries = [];\n const getEntries = () => {\n dirReader.readEntries((results) => {\n if (results.length) {\n entries.push(...results);\n getEntries();\n }\n else {\n resolve(entries);\n }\n }, (error) => {\n reject(error);\n });\n };\n getEntries();\n });\n};\nexport const createDirectoryIfNotExists = async (absolutePath) => {\n const davClient = davGetClient();\n const dirExists = await davClient.exists(absolutePath);\n if (!dirExists) {\n logger.debug('Directory does not exist, creating it', { absolutePath });\n await davClient.createDirectory(absolutePath, { recursive: true });\n const stat = await davClient.stat(absolutePath, { details: true, data: davGetDefaultPropfind() });\n emit('files:node:created', davResultToNode(stat.data));\n }\n};\nexport const resolveConflict = async (files, destination, contents) => {\n try {\n // List all conflicting files\n const conflicts = files.filter((file) => {\n return contents.find((node) => node.basename === (file instanceof File ? file.name : file.basename));\n }).filter(Boolean);\n // List of incoming files that are NOT in conflict\n const uploads = files.filter((file) => {\n return !conflicts.includes(file);\n });\n // Let the user choose what to do with the conflicting files\n const { selected, renamed } = await openConflictPicker(destination.path, conflicts, contents);\n logger.debug('Conflict resolution', { uploads, selected, renamed });\n // If the user selected nothing, we cancel the upload\n if (selected.length === 0 && renamed.length === 0) {\n // User skipped\n showInfo(t('files', 'Conflicts resolution skipped'));\n logger.info('User skipped the conflict resolution');\n return [];\n }\n // Update the list of files to upload\n return [...uploads, ...selected, ...renamed];\n }\n catch (error) {\n console.error(error);\n // User cancelled\n showError(t('files', 'Upload cancelled'));\n logger.error('User cancelled the upload');\n }\n return [];\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission } from '@nextcloud/files';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport PQueue from 'p-queue';\nimport { loadState } from '@nextcloud/initial-state';\nconst sharePermissions = loadState('files_sharing', 'sharePermissions', Permission.NONE);\n// This is the processing queue. We only want to allow 3 concurrent requests\nlet queue;\n// Maximum number of concurrent operations\nconst MAX_CONCURRENCY = 5;\n/**\n * Get the processing queue\n */\nexport const getQueue = () => {\n if (!queue) {\n queue = new PQueue({ concurrency: MAX_CONCURRENCY });\n }\n return queue;\n};\nexport var MoveCopyAction;\n(function (MoveCopyAction) {\n MoveCopyAction[\"MOVE\"] = \"Move\";\n MoveCopyAction[\"COPY\"] = \"Copy\";\n MoveCopyAction[\"MOVE_OR_COPY\"] = \"move-or-copy\";\n})(MoveCopyAction || (MoveCopyAction = {}));\nexport const canMove = (nodes) => {\n const minPermission = nodes.reduce((min, node) => Math.min(min, node.permissions), Permission.ALL);\n return Boolean(minPermission & Permission.DELETE);\n};\nexport const canDownload = (nodes) => {\n return nodes.every(node => {\n const shareAttributes = JSON.parse(node.attributes?.['share-attributes'] ?? '[]');\n return !shareAttributes.some(attribute => attribute.scope === 'permissions' && attribute.value === false && attribute.key === 'download');\n });\n};\nexport const canCopy = (nodes) => {\n // a shared file cannot be copied if the download is disabled\n if (!canDownload(nodes)) {\n return false;\n }\n // it cannot be copied if the user has only view permissions\n if (nodes.some((node) => node.permissions === Permission.NONE)) {\n return false;\n }\n // on public shares all files have the same permission so copy is only possible if write permission is granted\n if (isPublicShare()) {\n return Boolean(sharePermissions & Permission.CREATE);\n }\n // otherwise permission is granted\n return true;\n};\n","import { davGetDefaultPropfind, davResultToNode, davRootPath } from '@nextcloud/files';\nimport { CancelablePromise } from 'cancelable-promise';\nimport { join } from 'path';\nimport { client } from './WebdavClient.ts';\nimport logger from '../logger.ts';\n/**\n * Slim wrapper over `@nextcloud/files` `davResultToNode` to allow using the function with `Array.map`\n * @param stat The result returned by the webdav library\n */\nexport const resultToNode = (stat) => davResultToNode(stat);\nexport const getContents = (path = '/') => {\n path = join(davRootPath, path);\n const controller = new AbortController();\n const propfindPayload = davGetDefaultPropfind();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data: propfindPayload,\n includeSelf: true,\n signal: controller.signal,\n });\n const root = contentsResponse.data[0];\n const contents = contentsResponse.data.slice(1);\n if (root.filename !== path && `${root.filename}/` !== path) {\n logger.debug(`Exepected \"${path}\" but got filename \"${root.filename}\" instead.`);\n throw new Error('Root node does not match requested path');\n }\n resolve({\n folder: resultToNode(root),\n contents: contents.map((result) => {\n try {\n return resultToNode(result);\n }\n catch (error) {\n logger.error(`Invalid node detected '${result.basename}'`, { error });\n return null;\n }\n }).filter(Boolean),\n });\n }\n catch (error) {\n reject(error);\n }\n });\n};\n","import { isAxiosError } from '@nextcloud/axios';\nimport { FilePickerClosed, getFilePickerBuilder, showError, showInfo, TOAST_PERMANENT_TIMEOUT } from '@nextcloud/dialogs';\nimport { emit } from '@nextcloud/event-bus';\nimport { FileAction, FileType, NodeStatus, davGetClient, davRootPath, davResultToNode, davGetDefaultPropfind, getUniqueName, Permission } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { openConflictPicker, hasConflict } from '@nextcloud/upload';\nimport { basename, join } from 'path';\nimport Vue from 'vue';\nimport CopyIconSvg from '@mdi/svg/svg/folder-multiple.svg?raw';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nimport { MoveCopyAction, canCopy, canMove, getQueue } from './moveOrCopyActionUtils';\nimport { getContents } from '../services/Files';\nimport logger from '../logger';\n/**\n * Return the action that is possible for the given nodes\n * @param {Node[]} nodes The nodes to check against\n * @return {MoveCopyAction} The action that is possible for the given nodes\n */\nconst getActionForNodes = (nodes) => {\n if (canMove(nodes)) {\n if (canCopy(nodes)) {\n return MoveCopyAction.MOVE_OR_COPY;\n }\n return MoveCopyAction.MOVE;\n }\n // Assuming we can copy as the enabled checks for copy permissions\n return MoveCopyAction.COPY;\n};\n/**\n * Create a loading notification toast\n * @param mode The move or copy mode\n * @param source Name of the node that is copied / moved\n * @param destination Destination path\n * @return {() => void} Function to hide the notification\n */\nfunction createLoadingNotification(mode, source, destination) {\n const text = mode === MoveCopyAction.MOVE ? t('files', 'Moving \"{source}\" to \"{destination}\" …', { source, destination }) : t('files', 'Copying \"{source}\" to \"{destination}\" …', { source, destination });\n let toast;\n toast = showInfo(`<span class=\"icon icon-loading-small toast-loading-icon\"></span> ${text}`, {\n isHTML: true,\n timeout: TOAST_PERMANENT_TIMEOUT,\n onRemove: () => { toast?.hideToast(); toast = undefined; },\n });\n return () => toast && toast.hideToast();\n}\n/**\n * Handle the copy/move of a node to a destination\n * This can be imported and used by other scripts/components on server\n * @param {Node} node The node to copy/move\n * @param {Folder} destination The destination to copy/move the node to\n * @param {MoveCopyAction} method The method to use for the copy/move\n * @param {boolean} overwrite Whether to overwrite the destination if it exists\n * @return {Promise<void>} A promise that resolves when the copy/move is done\n */\nexport const handleCopyMoveNodeTo = async (node, destination, method, overwrite = false) => {\n if (!destination) {\n return;\n }\n if (destination.type !== FileType.Folder) {\n throw new Error(t('files', 'Destination is not a folder'));\n }\n // Do not allow to MOVE a node to the same folder it is already located\n if (method === MoveCopyAction.MOVE && node.dirname === destination.path) {\n throw new Error(t('files', 'This file/folder is already in that directory'));\n }\n /**\n * Example:\n * - node: /foo/bar/file.txt -> path = /foo/bar/file.txt, destination: /foo\n * Allow move of /foo does not start with /foo/bar/file.txt so allow\n * - node: /foo , destination: /foo/bar\n * Do not allow as it would copy foo within itself\n * - node: /foo/bar.txt, destination: /foo\n * Allow copy a file to the same directory\n * - node: \"/foo/bar\", destination: \"/foo/bar 1\"\n * Allow to move or copy but we need to check with trailing / otherwise it would report false positive\n */\n if (`${destination.path}/`.startsWith(`${node.path}/`)) {\n throw new Error(t('files', 'You cannot move a file/folder onto itself or into a subfolder of itself'));\n }\n // Set loading state\n Vue.set(node, 'status', NodeStatus.LOADING);\n const actionFinished = createLoadingNotification(method, node.basename, destination.path);\n const queue = getQueue();\n return await queue.add(async () => {\n const copySuffix = (index) => {\n if (index === 1) {\n return t('files', '(copy)'); // TRANSLATORS: Mark a file as a copy of another file\n }\n return t('files', '(copy %n)', undefined, index); // TRANSLATORS: Meaning it is the n'th copy of a file\n };\n try {\n const client = davGetClient();\n const currentPath = join(davRootPath, node.path);\n const destinationPath = join(davRootPath, destination.path);\n if (method === MoveCopyAction.COPY) {\n let target = node.basename;\n // If we do not allow overwriting then find an unique name\n if (!overwrite) {\n const otherNodes = await client.getDirectoryContents(destinationPath);\n target = getUniqueName(node.basename, otherNodes.map((n) => n.basename), {\n suffix: copySuffix,\n ignoreFileExtension: node.type === FileType.Folder,\n });\n }\n await client.copyFile(currentPath, join(destinationPath, target));\n // If the node is copied into current directory the view needs to be updated\n if (node.dirname === destination.path) {\n const { data } = await client.stat(join(destinationPath, target), {\n details: true,\n data: davGetDefaultPropfind(),\n });\n emit('files:node:created', davResultToNode(data));\n }\n }\n else {\n // show conflict file popup if we do not allow overwriting\n if (!overwrite) {\n const otherNodes = await getContents(destination.path);\n if (hasConflict([node], otherNodes.contents)) {\n try {\n // Let the user choose what to do with the conflicting files\n const { selected, renamed } = await openConflictPicker(destination.path, [node], otherNodes.contents);\n // two empty arrays: either only old files or conflict skipped -> no action required\n if (!selected.length && !renamed.length) {\n return;\n }\n }\n catch (error) {\n // User cancelled\n showError(t('files', 'Move cancelled'));\n return;\n }\n }\n }\n // getting here means either no conflict, file was renamed to keep both files\n // in a conflict, or the selected file was chosen to be kept during the conflict\n try {\n await client.moveFile(currentPath, join(destinationPath, node.basename));\n }\n catch (error) {\n const parser = new DOMParser();\n const text = await error.response?.text();\n const message = parser.parseFromString(text ?? '', 'text/xml')\n .querySelector('message')?.textContent;\n if (message) {\n showError(message);\n }\n throw error;\n }\n // Delete the node as it will be fetched again\n // when navigating to the destination folder\n emit('files:node:deleted', node);\n }\n }\n catch (error) {\n if (isAxiosError(error)) {\n if (error.response?.status === 412) {\n throw new Error(t('files', 'A file or folder with that name already exists in this folder'));\n }\n else if (error.response?.status === 423) {\n throw new Error(t('files', 'The files are locked'));\n }\n else if (error.response?.status === 404) {\n throw new Error(t('files', 'The file does not exist anymore'));\n }\n else if (error.message) {\n throw new Error(error.message);\n }\n }\n logger.debug(error);\n throw new Error();\n }\n finally {\n Vue.set(node, 'status', '');\n actionFinished();\n }\n });\n};\n/**\n * Open a file picker for the given action\n * @param action The action to open the file picker for\n * @param dir The directory to start the file picker in\n * @param nodes The nodes to move/copy\n * @return The picked destination or false if cancelled by user\n */\nasync function openFilePickerForAction(action, dir = '/', nodes) {\n const { resolve, reject, promise } = Promise.withResolvers();\n const fileIDs = nodes.map(node => node.fileid).filter(Boolean);\n const filePicker = getFilePickerBuilder(t('files', 'Choose destination'))\n .allowDirectories(true)\n .setFilter((n) => {\n // We don't want to show the current nodes in the file picker\n return !fileIDs.includes(n.fileid);\n })\n .setMimeTypeFilter([])\n .setMultiSelect(false)\n .startAt(dir)\n .setButtonFactory((selection, path) => {\n const buttons = [];\n const target = basename(path);\n const dirnames = nodes.map(node => node.dirname);\n const paths = nodes.map(node => node.path);\n if (action === MoveCopyAction.COPY || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Copy to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Copy'),\n type: 'primary',\n icon: CopyIconSvg,\n disabled: selection.some((node) => (node.permissions & Permission.CREATE) === 0),\n async callback(destination) {\n resolve({\n destination: destination[0],\n action: MoveCopyAction.COPY,\n });\n },\n });\n }\n // Invalid MOVE targets (but valid copy targets)\n if (dirnames.includes(path)) {\n // This file/folder is already in that directory\n return buttons;\n }\n if (paths.includes(path)) {\n // You cannot move a file/folder onto itself\n return buttons;\n }\n if (selection.some((node) => (node.permissions & Permission.CREATE) === 0)) {\n // Missing 'CREATE' permissions for selected destination\n return buttons;\n }\n if (action === MoveCopyAction.MOVE || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Move to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Move'),\n type: action === MoveCopyAction.MOVE ? 'primary' : 'secondary',\n icon: FolderMoveSvg,\n async callback(destination) {\n resolve({\n destination: destination[0],\n action: MoveCopyAction.MOVE,\n });\n },\n });\n }\n return buttons;\n })\n .build();\n filePicker.pick()\n .catch((error) => {\n logger.debug(error);\n if (error instanceof FilePickerClosed) {\n resolve(false);\n }\n else {\n reject(new Error(t('files', 'Move or copy operation failed')));\n }\n });\n return promise;\n}\nexport const ACTION_COPY_MOVE = 'move-copy';\nexport const action = new FileAction({\n id: ACTION_COPY_MOVE,\n displayName(nodes) {\n switch (getActionForNodes(nodes)) {\n case MoveCopyAction.MOVE:\n return t('files', 'Move');\n case MoveCopyAction.COPY:\n return t('files', 'Copy');\n case MoveCopyAction.MOVE_OR_COPY:\n return t('files', 'Move or copy');\n }\n },\n iconSvgInline: () => FolderMoveSvg,\n enabled(nodes, view) {\n // We can not copy or move in single file shares\n if (view.id === 'public-file-share') {\n return false;\n }\n // We only support moving/copying files within the user folder\n if (!nodes.every(node => node.root?.startsWith('/files/'))) {\n return false;\n }\n return nodes.length > 0 && (canMove(nodes) || canCopy(nodes));\n },\n async exec(node, view, dir) {\n const action = getActionForNodes([node]);\n let result;\n try {\n result = await openFilePickerForAction(action, dir, [node]);\n }\n catch (e) {\n logger.error(e);\n return false;\n }\n if (result === false) {\n showInfo(t('files', 'Cancelled move or copy of \"{filename}\".', { filename: node.displayname }));\n return null;\n }\n try {\n await handleCopyMoveNodeTo(node, result.destination, result.action);\n return true;\n }\n catch (error) {\n if (error instanceof Error && !!error.message) {\n showError(error.message);\n // Silent action as we handle the toast\n return null;\n }\n return false;\n }\n },\n async execBatch(nodes, view, dir) {\n const action = getActionForNodes(nodes);\n const result = await openFilePickerForAction(action, dir, nodes);\n // Handle cancellation silently\n if (result === false) {\n showInfo(nodes.length === 1\n ? t('files', 'Cancelled move or copy of \"{filename}\".', { filename: nodes[0].displayname })\n : t('files', 'Cancelled move or copy operation'));\n return nodes.map(() => null);\n }\n const promises = nodes.map(async (node) => {\n try {\n await handleCopyMoveNodeTo(node, result.destination, result.action);\n return true;\n }\n catch (error) {\n logger.error(`Failed to ${result.action} node`, { node, error });\n return false;\n }\n });\n // We need to keep the selection on error!\n // So we do not return null, and for batch action\n // we let the front handle the error.\n return await Promise.all(promises);\n },\n order: 15,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Folder, Node, NodeStatus, davRootPath } from '@nextcloud/files';\nimport { getUploader, hasConflict } from '@nextcloud/upload';\nimport { join } from 'path';\nimport { joinPaths } from '@nextcloud/paths';\nimport { showError, showInfo, showSuccess, showWarning } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { Directory, traverseTree, resolveConflict, createDirectoryIfNotExists } from './DropServiceUtils';\nimport { handleCopyMoveNodeTo } from '../actions/moveOrCopyAction';\nimport { MoveCopyAction } from '../actions/moveOrCopyActionUtils';\nimport logger from '../logger.ts';\n/**\n * This function converts a list of DataTransferItems to a file tree.\n * It uses the Filesystem API if available, otherwise it falls back to the File API.\n * The File API will NOT be available if the browser is not in a secure context (e.g. HTTP).\n * ⚠️ When using this method, you need to use it as fast as possible, as the DataTransferItems\n * will be cleared after the first access to the props of one of the entries.\n *\n * @param items the list of DataTransferItems\n */\nexport const dataTransferToFileTree = async (items) => {\n // Check if the browser supports the Filesystem API\n // We need to cache the entries to prevent Blink engine bug that clears\n // the list (`data.items`) after first access props of one of the entries\n const entries = items\n .filter((item) => {\n if (item.kind !== 'file') {\n logger.debug('Skipping dropped item', { kind: item.kind, type: item.type });\n return false;\n }\n return true;\n }).map((item) => {\n // MDN recommends to try both, as it might be renamed in the future\n return item?.getAsEntry?.()\n ?? item?.webkitGetAsEntry?.()\n ?? item;\n });\n let warned = false;\n const fileTree = new Directory('root');\n // Traverse the file tree\n for (const entry of entries) {\n // Handle browser issues if Filesystem API is not available. Fallback to File API\n if (entry instanceof DataTransferItem) {\n logger.warn('Could not get FilesystemEntry of item, falling back to file');\n const file = entry.getAsFile();\n if (file === null) {\n logger.warn('Could not process DataTransferItem', { type: entry.type, kind: entry.kind });\n showError(t('files', 'One of the dropped files could not be processed'));\n continue;\n }\n // Warn the user that the browser does not support the Filesystem API\n // we therefore cannot upload directories recursively.\n if (file.type === 'httpd/unix-directory' || !file.type) {\n if (!warned) {\n logger.warn('Browser does not support Filesystem API. Directories will not be uploaded');\n showWarning(t('files', 'Your browser does not support the Filesystem API. Directories will not be uploaded'));\n warned = true;\n }\n continue;\n }\n fileTree.contents.push(file);\n continue;\n }\n // Use Filesystem API\n try {\n fileTree.contents.push(await traverseTree(entry));\n }\n catch (error) {\n // Do not throw, as we want to continue with the other files\n logger.error('Error while traversing file tree', { error });\n }\n }\n return fileTree;\n};\nexport const onDropExternalFiles = async (root, destination, contents) => {\n const uploader = getUploader();\n // Check for conflicts on root elements\n if (await hasConflict(root.contents, contents)) {\n root.contents = await resolveConflict(root.contents, destination, contents);\n }\n if (root.contents.length === 0) {\n logger.info('No files to upload', { root });\n showInfo(t('files', 'No files to upload'));\n return [];\n }\n // Let's process the files\n logger.debug(`Uploading files to ${destination.path}`, { root, contents: root.contents });\n const queue = [];\n const uploadDirectoryContents = async (directory, path) => {\n for (const file of directory.contents) {\n // This is the relative path to the resource\n // from the current uploader destination\n const relativePath = join(path, file.name);\n // If the file is a directory, we need to create it first\n // then browse its tree and upload its contents.\n if (file instanceof Directory) {\n const absolutePath = joinPaths(davRootPath, destination.path, relativePath);\n try {\n console.debug('Processing directory', { relativePath });\n await createDirectoryIfNotExists(absolutePath);\n await uploadDirectoryContents(file, relativePath);\n }\n catch (error) {\n showError(t('files', 'Unable to create the directory {directory}', { directory: file.name }));\n logger.error('', { error, absolutePath, directory: file });\n }\n continue;\n }\n // If we've reached a file, we can upload it\n logger.debug('Uploading file to ' + join(destination.path, relativePath), { file });\n // Overriding the root to avoid changing the current uploader context\n queue.push(uploader.upload(relativePath, file, destination.source));\n }\n };\n // Pause the uploader to prevent it from starting\n // while we compute the queue\n uploader.pause();\n // Upload the files. Using '/' as the starting point\n // as we already adjusted the uploader destination\n await uploadDirectoryContents(root, '/');\n uploader.start();\n // Wait for all promises to settle\n const results = await Promise.allSettled(queue);\n // Check for errors\n const errors = results.filter(result => result.status === 'rejected');\n if (errors.length > 0) {\n logger.error('Error while uploading files', { errors });\n showError(t('files', 'Some files could not be uploaded'));\n return [];\n }\n logger.debug('Files uploaded successfully');\n showSuccess(t('files', 'Files uploaded successfully'));\n return Promise.all(queue);\n};\nexport const onDropInternalFiles = async (nodes, destination, contents, isCopy = false) => {\n const queue = [];\n // Check for conflicts on root elements\n if (await hasConflict(nodes, contents)) {\n nodes = await resolveConflict(nodes, destination, contents);\n }\n if (nodes.length === 0) {\n logger.info('No files to process', { nodes });\n showInfo(t('files', 'No files to process'));\n return;\n }\n for (const node of nodes) {\n Vue.set(node, 'status', NodeStatus.LOADING);\n queue.push(handleCopyMoveNodeTo(node, destination, isCopy ? MoveCopyAction.COPY : MoveCopyAction.MOVE, true));\n }\n // Wait for all promises to settle\n const results = await Promise.allSettled(queue);\n nodes.forEach(node => Vue.set(node, 'status', undefined));\n // Check for errors\n const errors = results.filter(result => result.status === 'rejected');\n if (errors.length > 0) {\n logger.error('Error while copying or moving files', { errors });\n showError(isCopy ? t('files', 'Some files could not be copied') : t('files', 'Some files could not be moved'));\n return;\n }\n logger.debug('Files copy/move successful');\n showSuccess(isCopy ? t('files', 'Files copied successfully') : t('files', 'Files moved successfully'));\n};\n","import { defineStore } from 'pinia';\nimport Vue from 'vue';\nexport const useDragAndDropStore = defineStore('dragging', {\n state: () => ({\n dragging: [],\n }),\n actions: {\n /**\n * Set the selection of files being dragged currently\n * @param selection array of node sources\n */\n set(selection = []) {\n Vue.set(this, 'dragging', selection);\n },\n /**\n * Reset the selection\n */\n reset() {\n Vue.set(this, 'dragging', []);\n },\n },\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcBreadcrumbs',{staticClass:\"files-list__breadcrumbs\",class:{ 'files-list__breadcrumbs--with-progress': _vm.wrapUploadProgressBar },attrs:{\"data-cy-files-content-breadcrumbs\":\"\",\"aria-label\":_vm.t('files', 'Current directory path')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)},_vm._l((_vm.sections),function(section,index){return _c('NcBreadcrumb',_vm._b({key:section.dir,attrs:{\"dir\":\"auto\",\"to\":section.to,\"force-icon-text\":index === 0 && _vm.fileListWidth >= 486,\"title\":_vm.titleForSection(index, section),\"aria-description\":_vm.ariaForSection(section)},on:{\"drop\":function($event){return _vm.onDrop($event, section.dir)}},nativeOn:{\"click\":function($event){return _vm.onClick(section.to)},\"dragover\":function($event){return _vm.onDragOver($event, section.dir)}},scopedSlots:_vm._u([(index === 0)?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"size\":20,\"svg\":_vm.viewIcon}})]},proxy:true}:null],null,true)},'NcBreadcrumb',section,false))}),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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=style&index=0&id=04abfffa&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=style&index=0&id=04abfffa&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BreadCrumbs.vue?vue&type=template&id=04abfffa&scoped=true\"\nimport script from \"./BreadCrumbs.vue?vue&type=script&lang=ts\"\nexport * from \"./BreadCrumbs.vue?vue&type=script&lang=ts\"\nimport style0 from \"./BreadCrumbs.vue?vue&type=style&index=0&id=04abfffa&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 \"04abfffa\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FileType } from '@nextcloud/files';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\n/**\n * Extract dir and name from file path\n *\n * @param {string} path the full path\n * @return {string[]} [dirPath, fileName]\n */\nexport const extractFilePaths = function (path) {\n const pathSections = path.split('/');\n const fileName = pathSections[pathSections.length - 1];\n const dirPath = pathSections.slice(0, pathSections.length - 1).join('/');\n return [dirPath, fileName];\n};\n/**\n * Generate a translated summary of an array of nodes\n * @param {Node[]} nodes the nodes to summarize\n * @return {string}\n */\nexport const getSummaryFor = (nodes) => {\n const fileCount = nodes.filter(node => node.type === FileType.File).length;\n const folderCount = nodes.filter(node => node.type === FileType.Folder).length;\n if (fileCount === 0) {\n return n('files', '{folderCount} folder', '{folderCount} folders', folderCount, { folderCount });\n }\n else if (folderCount === 0) {\n return n('files', '{fileCount} file', '{fileCount} files', fileCount, { fileCount });\n }\n if (fileCount === 1) {\n return n('files', '1 file and {folderCount} folder', '1 file and {folderCount} folders', folderCount, { folderCount });\n }\n if (folderCount === 1) {\n return n('files', '{fileCount} file and 1 folder', '{fileCount} files and 1 folder', fileCount, { fileCount });\n }\n return t('files', '{fileCount} files and {folderCount} folders', { fileCount, folderCount });\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',_vm._g({staticClass:\"files-list__row\",class:{\n\t\t'files-list__row--dragover': _vm.dragover,\n\t\t'files-list__row--loading': _vm.isLoading,\n\t\t'files-list__row--active': _vm.isActive,\n\t},attrs:{\"data-cy-files-list-row\":\"\",\"data-cy-files-list-row-fileid\":_vm.fileid,\"data-cy-files-list-row-name\":_vm.source.basename,\"draggable\":_vm.canDrag}},_vm.rowListeners),[(_vm.isFailedSource)?_c('span',{staticClass:\"files-list__row--failed\"}):_vm._e(),_vm._v(\" \"),_c('FileEntryCheckbox',{attrs:{\"fileid\":_vm.fileid,\"is-loading\":_vm.isLoading,\"nodes\":_vm.nodes,\"source\":_vm.source}}),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\",attrs:{\"data-cy-files-list-row-name\":\"\"}},[_c('FileEntryPreview',{ref:\"preview\",attrs:{\"source\":_vm.source,\"dragover\":_vm.dragover},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}}),_vm._v(\" \"),_c('FileEntryName',{ref:\"name\",attrs:{\"basename\":_vm.basename,\"extension\":_vm.extension,\"nodes\":_vm.nodes,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}})],1),_vm._v(\" \"),_c('FileEntryActions',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isRenamingSmallScreen),expression:\"!isRenamingSmallScreen\"}],ref:\"actions\",class:`files-list__row-actions-${_vm.uniqueId}`,attrs:{\"opened\":_vm.openedMenu,\"source\":_vm.source},on:{\"update:opened\":function($event){_vm.openedMenu=$event}}}),_vm._v(\" \"),(!_vm.compact && _vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__row-size\",style:(_vm.sizeOpacity),attrs:{\"data-cy-files-list-row-size\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('span',[_vm._v(_vm._s(_vm.size))])]):_vm._e(),_vm._v(\" \"),(!_vm.compact && _vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__row-mtime\",style:(_vm.mtimeOpacity),attrs:{\"data-cy-files-list-row-mtime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[(_vm.mtime)?_c('NcDateTime',{attrs:{\"timestamp\":_vm.mtime,\"ignore-seconds\":true}}):_c('span',[_vm._v(_vm._s(_vm.t('files', 'Unknown date')))])],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('td',{key:column.id,staticClass:\"files-list__row-column-custom\",class:`files-list__row-${_vm.currentView.id}-${column.id}`,attrs:{\"data-cy-files-list-row-column-custom\":column.id},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('CustomElementRender',{attrs:{\"current-view\":_vm.currentView,\"render\":column.render,\"source\":_vm.source}})],1)})],2)\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 { defineStore } from 'pinia';\nexport const useActionsMenuStore = defineStore('actionsmenu', {\n state: () => ({\n opened: null,\n }),\n});\n","import axios, { isAxiosError } from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { FileType, NodeStatus } from '@nextcloud/files';\nimport { DialogBuilder } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport { basename, dirname, extname } from 'path';\nimport { defineStore } from 'pinia';\nimport logger from '../logger';\nimport Vue from 'vue';\nimport IconCancel from '@mdi/svg/svg/cancel.svg?raw';\nimport IconCheck from '@mdi/svg/svg/check.svg?raw';\nlet isDialogVisible = false;\nconst showWarningDialog = (oldExtension, newExtension) => {\n if (isDialogVisible) {\n return Promise.resolve(false);\n }\n isDialogVisible = true;\n let message;\n if (!oldExtension && newExtension) {\n message = t('files', 'Adding the file extension \"{new}\" may render the file unreadable.', { new: newExtension });\n }\n else if (!newExtension) {\n message = t('files', 'Removing the file extension \"{old}\" may render the file unreadable.', { old: oldExtension });\n }\n else {\n message = t('files', 'Changing the file extension from \"{old}\" to \"{new}\" may render the file unreadable.', { old: oldExtension, new: newExtension });\n }\n return new Promise((resolve) => {\n const dialog = new DialogBuilder()\n .setName(t('files', 'Change file extension'))\n .setText(message)\n .setButtons([\n {\n label: t('files', 'Keep {oldextension}', { oldextension: oldExtension }),\n icon: IconCancel,\n type: 'secondary',\n callback: () => {\n isDialogVisible = false;\n resolve(false);\n },\n },\n {\n label: newExtension.length ? t('files', 'Use {newextension}', { newextension: newExtension }) : t('files', 'Remove extension'),\n icon: IconCheck,\n type: 'primary',\n callback: () => {\n isDialogVisible = false;\n resolve(true);\n },\n },\n ])\n .build();\n dialog.show().then(() => {\n dialog.hide();\n });\n });\n};\nexport const useRenamingStore = function (...args) {\n const store = defineStore('renaming', {\n state: () => ({\n renamingNode: undefined,\n newName: '',\n }),\n actions: {\n /**\n * Execute the renaming.\n * This will rename the node set as `renamingNode` to the configured new name `newName`.\n * @return true if success, false if skipped (e.g. new and old name are the same)\n * @throws Error if renaming fails, details are set in the error message\n */\n async rename() {\n if (this.renamingNode === undefined) {\n throw new Error('No node is currently being renamed');\n }\n const newName = this.newName.trim?.() || '';\n const oldName = this.renamingNode.basename;\n const oldEncodedSource = this.renamingNode.encodedSource;\n // Check for extension change for files\n const oldExtension = extname(oldName);\n const newExtension = extname(newName);\n if (oldExtension !== newExtension && this.renamingNode.type === FileType.File) {\n const proceed = await showWarningDialog(oldExtension, newExtension);\n if (!proceed) {\n return false;\n }\n }\n if (oldName === newName) {\n return false;\n }\n const node = this.renamingNode;\n Vue.set(node, 'status', NodeStatus.LOADING);\n try {\n // rename the node\n this.renamingNode.rename(newName);\n logger.debug('Moving file to', { destination: this.renamingNode.encodedSource, oldEncodedSource });\n // create MOVE request\n await axios({\n method: 'MOVE',\n url: oldEncodedSource,\n headers: {\n Destination: this.renamingNode.encodedSource,\n Overwrite: 'F',\n },\n });\n // Success 🎉\n emit('files:node:updated', this.renamingNode);\n emit('files:node:renamed', this.renamingNode);\n emit('files:node:moved', {\n node: this.renamingNode,\n oldSource: `${dirname(this.renamingNode.source)}/${oldName}`,\n });\n this.$reset();\n return true;\n }\n catch (error) {\n logger.error('Error while renaming file', { error });\n // Rename back as it failed\n this.renamingNode.rename(oldName);\n if (isAxiosError(error)) {\n // TODO: 409 means current folder does not exist, redirect ?\n if (error?.response?.status === 404) {\n throw new Error(t('files', 'Could not rename \"{oldName}\", it does not exist any more', { oldName }));\n }\n else if (error?.response?.status === 412) {\n throw new Error(t('files', 'The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name.', {\n newName,\n dir: basename(this.renamingNode.dirname),\n }));\n }\n }\n // Unknown error\n throw new Error(t('files', 'Could not rename \"{oldName}\"', { oldName }));\n }\n finally {\n Vue.set(node, 'status', undefined);\n }\n },\n },\n });\n const renamingStore = store(...args);\n // Make sure we only register the listeners once\n if (!renamingStore._initialized) {\n subscribe('files:node:rename', function (node) {\n renamingStore.renamingNode = node;\n renamingStore.newName = node.basename;\n });\n renamingStore._initialized = true;\n }\n return renamingStore;\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomElementRender.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomElementRender.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./CustomElementRender.vue?vue&type=template&id=7b30c709\"\nimport script from \"./CustomElementRender.vue?vue&type=script&lang=ts\"\nexport * from \"./CustomElementRender.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon arrow-left-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ArrowLeftIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./ArrowLeft.vue?vue&type=template&id=16833c02\"\nimport script from \"./ArrowLeft.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowLeft.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 arrow-left-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,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n data() {\n return {\n openedSubmenu: null,\n };\n },\n computed: {\n enabledSubmenuActions() {\n return this.enabledFileActions\n .reduce((record, action) => {\n if (action.parent !== undefined) {\n if (!record[action.parent]) {\n record[action.parent] = [];\n }\n record[action.parent].push(action);\n }\n return record;\n }, {});\n },\n },\n methods: {\n /**\n * Check if a menu is valid, meaning it is\n * defined and has at least one action\n *\n * @param action The action to check\n */\n isValidMenu(action) {\n return this.enabledSubmenuActions[action.id]?.length > 0;\n },\n async onBackToMenuClick(action) {\n if (!action) {\n return;\n }\n this.openedSubmenu = null;\n // Wait for first render\n await this.$nextTick();\n // Focus the previous menu action button\n this.$nextTick(() => {\n // Focus the action button, test both batch and single action references\n // as this mixin is used in both single and batch actions.\n const menuAction = this.$refs[`action-batch-${action.id}`]?.[0]\n || this.$refs[`action-${action.id}`]?.[0];\n if (menuAction) {\n menuAction.$el.querySelector('button')?.focus();\n }\n });\n },\n },\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',{staticClass:\"files-list__row-actions\",attrs:{\"data-cy-files-list-row-actions\":\"\"}},[_vm._l((_vm.enabledRenderActions),function(action){return _c('CustomElementRender',{key:action.id,staticClass:\"files-list__row-action--inline\",class:'files-list__row-action-' + action.id,attrs:{\"current-view\":_vm.currentView,\"render\":action.renderInline,\"source\":_vm.source}})}),_vm._v(\" \"),_c('NcActions',{ref:\"actionsMenu\",attrs:{\"boundaries-element\":_vm.getBoundariesElement,\"container\":_vm.getBoundariesElement,\"force-name\":true,\"type\":\"tertiary\",\"force-menu\":_vm.enabledInlineActions.length === 0 /* forceMenu only if no inline actions */,\"inline\":_vm.enabledInlineActions.length,\"open\":_vm.openedMenu},on:{\"update:open\":function($event){_vm.openedMenu=$event},\"close\":function($event){_vm.openedSubmenu = null}}},[_vm._l((_vm.enabledMenuActions),function(action){return _c('NcActionButton',{key:action.id,ref:`action-${action.id}`,refInFor:true,class:{\n\t\t\t\t[`files-list__row-action-${action.id}`]: true,\n\t\t\t\t[`files-list__row-action--menu`]: _vm.isValidMenu(action)\n\t\t\t},attrs:{\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-row-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.title?.([_vm.source], _vm.currentView),\"title\":action.title?.([_vm.source], _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline([_vm.source], _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.mountType === 'shared' && action.id === 'sharing-status' ? '' : _vm.actionDisplayName(action))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-action-back\",attrs:{\"data-cy-files-list-row-action\":\"menu-back\"},on:{\"click\":function($event){return _vm.onBackToMenuClick(_vm.openedSubmenu)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowLeftIcon')]},proxy:true}],null,false,3001860362)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Back'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.enabledSubmenuActions[_vm.openedSubmenu?.id]),function(action){return _c('NcActionButton',{key:action.id,staticClass:\"files-list__row-action--submenu\",class:`files-list__row-action-${action.id}`,attrs:{\"close-after-click\":\"\",\"data-cy-files-list-row-action\":action.id,\"title\":action.title?.([_vm.source], _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline([_vm.source], _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])})]:_vm._e()],2)],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-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=0&id=5ba570cc&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.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=0&id=5ba570cc&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\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.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=1&id=5ba570cc&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=1&id=5ba570cc&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntryActions.vue?vue&type=template&id=5ba570cc&scoped=true\"\nimport script from \"./FileEntryActions.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryActions.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FileEntryActions.vue?vue&type=style&index=0&id=5ba570cc&prod&lang=scss\"\nimport style1 from \"./FileEntryActions.vue?vue&type=style&index=1&id=5ba570cc&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 \"5ba570cc\",\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-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryCheckbox.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryCheckbox.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',{staticClass:\"files-list__row-checkbox\",on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.resetSelection.apply(null, arguments)}}},[(_vm.isLoading)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.loadingLabel}}):_c('NcCheckboxRadioSwitch',{attrs:{\"aria-label\":_vm.ariaLabel,\"checked\":_vm.isSelected,\"data-cy-files-list-row-checkbox\":\"\"},on:{\"update:checked\":_vm.onSelectionChange}})],1)\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 { defineStore } from 'pinia';\nimport Vue from 'vue';\n/**\n * Observe various events and save the current\n * special keys states. Useful for checking the\n * current status of a key when executing a method.\n * @param {...any} args\n */\nexport const useKeyboardStore = function (...args) {\n const store = defineStore('keyboard', {\n state: () => ({\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n shiftKey: false,\n }),\n actions: {\n onEvent(event) {\n if (!event) {\n event = window.event;\n }\n Vue.set(this, 'altKey', !!event.altKey);\n Vue.set(this, 'ctrlKey', !!event.ctrlKey);\n Vue.set(this, 'metaKey', !!event.metaKey);\n Vue.set(this, 'shiftKey', !!event.shiftKey);\n },\n },\n });\n const keyboardStore = store(...args);\n // Make sure we only register the listeners once\n if (!keyboardStore._initialized) {\n window.addEventListener('keydown', keyboardStore.onEvent);\n window.addEventListener('keyup', keyboardStore.onEvent);\n window.addEventListener('mousemove', keyboardStore.onEvent);\n keyboardStore._initialized = true;\n }\n return keyboardStore;\n};\n","import { render, staticRenderFns } from \"./FileEntryCheckbox.vue?vue&type=template&id=2b295080\"\nimport script from \"./FileEntryCheckbox.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryCheckbox.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon file-multiple-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileMultipleIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileMultiple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileMultiple.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileMultiple.vue?vue&type=template&id=15fca808\"\nimport script from \"./FileMultiple.vue?vue&type=script&lang=js\"\nexport * from \"./FileMultiple.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 file-multiple-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\":\"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\"}},[(_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,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list-drag-image\"},[_c('span',{staticClass:\"files-list-drag-image__icon\"},[_c('span',{ref:\"previewImg\"}),_vm._v(\" \"),(_vm.isSingleFolder)?_c('FolderIcon'):_c('FileMultipleIcon')],1),_vm._v(\" \"),_c('span',{staticClass:\"files-list-drag-image__name\"},[_vm._v(_vm._s(_vm.name))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DragAndDropPreview.vue?vue&type=template&id=01562099\"\nimport script from \"./DragAndDropPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./DragAndDropPreview.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&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 DragAndDropPreview from '../components/DragAndDropPreview.vue';\nimport Vue from 'vue';\nconst Preview = Vue.extend(DragAndDropPreview);\nlet preview;\nexport const getDragAndDropPreview = async (nodes) => {\n return new Promise((resolve) => {\n if (!preview) {\n preview = new Preview().$mount();\n document.body.appendChild(preview.$el);\n }\n preview.update(nodes);\n preview.$on('loaded', () => {\n resolve(preview.$el);\n preview.$off('loaded');\n });\n });\n};\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { extname } from 'path';\nimport { FileType, Permission, Folder, File as NcFile, NodeStatus, Node, getFileActions } from '@nextcloud/files';\nimport { generateUrl } from '@nextcloud/router';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport { showError } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport { vOnClickOutside } from '@vueuse/components';\nimport Vue, { computed, defineComponent } from 'vue';\nimport { action as sidebarAction } from '../actions/sidebarAction.ts';\nimport { dataTransferToFileTree, onDropExternalFiles, onDropInternalFiles } from '../services/DropService.ts';\nimport { getDragAndDropPreview } from '../utils/dragUtils.ts';\nimport { hashCode } from '../utils/hashUtils.ts';\nimport { isDownloadable } from '../utils/permissions.ts';\nimport logger from '../logger.ts';\nVue.directive('onClickOutside', vOnClickOutside);\nconst actions = getFileActions();\nexport default defineComponent({\n props: {\n source: {\n type: [Folder, NcFile, Node],\n required: true,\n },\n nodes: {\n type: Array,\n required: true,\n },\n filesListWidth: {\n type: Number,\n default: 0,\n },\n isMtimeAvailable: {\n type: Boolean,\n default: false,\n },\n compact: {\n type: Boolean,\n default: false,\n },\n },\n provide() {\n return {\n defaultFileAction: computed(() => this.defaultFileAction),\n enabledFileActions: computed(() => this.enabledFileActions),\n };\n },\n data() {\n return {\n dragover: false,\n gridMode: false,\n };\n },\n computed: {\n fileid() {\n return this.source.fileid ?? 0;\n },\n uniqueId() {\n return hashCode(this.source.source);\n },\n isLoading() {\n return this.source.status === NodeStatus.LOADING;\n },\n /**\n * The display name of the current node\n * Either the nodes filename or a custom display name (e.g. for shares)\n */\n displayName() {\n // basename fallback needed for apps using old `@nextcloud/files` prior 3.6.0\n return this.source.displayname || this.source.basename;\n },\n /**\n * The display name without extension\n */\n basename() {\n if (this.extension === '') {\n return this.displayName;\n }\n return this.displayName.slice(0, 0 - this.extension.length);\n },\n /**\n * The extension of the file\n */\n extension() {\n if (this.source.type === FileType.Folder) {\n return '';\n }\n return extname(this.displayName);\n },\n draggingFiles() {\n return this.draggingStore.dragging;\n },\n selectedFiles() {\n return this.selectionStore.selected;\n },\n isSelected() {\n return this.selectedFiles.includes(this.source.source);\n },\n isRenaming() {\n return this.renamingStore.renamingNode === this.source;\n },\n isRenamingSmallScreen() {\n return this.isRenaming && this.filesListWidth < 512;\n },\n isActive() {\n return String(this.fileid) === String(this.currentFileId);\n },\n /**\n * Check if the source is in a failed state after an API request\n */\n isFailedSource() {\n return this.source.status === NodeStatus.FAILED;\n },\n canDrag() {\n if (this.isRenaming) {\n return false;\n }\n const canDrag = (node) => {\n return (node?.permissions & Permission.UPDATE) !== 0;\n };\n // If we're dragging a selection, we need to check all files\n if (this.selectedFiles.length > 0) {\n const nodes = this.selectedFiles.map(source => this.filesStore.getNode(source));\n return nodes.every(canDrag);\n }\n return canDrag(this.source);\n },\n canDrop() {\n if (this.source.type !== FileType.Folder) {\n return false;\n }\n // If the current folder is also being dragged, we can't drop it on itself\n if (this.draggingFiles.includes(this.source.source)) {\n return false;\n }\n return (this.source.permissions & Permission.CREATE) !== 0;\n },\n openedMenu: {\n get() {\n return this.actionsMenuStore.opened === this.uniqueId.toString();\n },\n set(opened) {\n this.actionsMenuStore.opened = opened ? this.uniqueId.toString() : null;\n },\n },\n mtimeOpacity() {\n const maxOpacityTime = 31 * 24 * 60 * 60 * 1000; // 31 days\n const mtime = this.source.mtime?.getTime?.();\n if (!mtime) {\n return {};\n }\n // 1 = today, 0 = 31 days ago\n const ratio = Math.round(Math.min(100, 100 * (maxOpacityTime - (Date.now() - mtime)) / maxOpacityTime));\n if (ratio < 0) {\n return {};\n }\n return {\n color: `color-mix(in srgb, var(--color-main-text) ${ratio}%, var(--color-text-maxcontrast))`,\n };\n },\n /**\n * Sorted actions that are enabled for this node\n */\n enabledFileActions() {\n if (this.source.status === NodeStatus.FAILED) {\n return [];\n }\n return actions\n .filter(action => {\n if (!action.enabled) {\n return true;\n }\n // In case something goes wrong, since we don't want to break\n // the entire list, we filter out actions that throw an error.\n try {\n return action.enabled([this.source], this.currentView);\n }\n catch (error) {\n logger.error('Error while checking action', { action, error });\n return false;\n }\n })\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n },\n defaultFileAction() {\n return this.enabledFileActions.find((action) => action.default !== undefined);\n },\n },\n watch: {\n /**\n * When the source changes, reset the preview\n * and fetch the new one.\n * @param newSource The new value of the source prop\n * @param oldSource The previous value\n */\n source(newSource, oldSource) {\n if (newSource.source !== oldSource.source) {\n this.resetState();\n }\n },\n openedMenu() {\n if (this.openedMenu === false) {\n // TODO: This timeout can be removed once `close` event only triggers after the transition\n // ref: https://github.com/nextcloud-libraries/nextcloud-vue/pull/6065\n window.setTimeout(() => {\n if (this.openedMenu) {\n // was reopened while the animation run\n return;\n }\n // Reset any right menu position potentially set\n const root = document.getElementById('app-content-vue');\n if (root !== null) {\n root.style.removeProperty('--mouse-pos-x');\n root.style.removeProperty('--mouse-pos-y');\n }\n }, 300);\n }\n },\n },\n beforeDestroy() {\n this.resetState();\n },\n methods: {\n resetState() {\n // Reset the preview state\n this.$refs?.preview?.reset?.();\n // Close menu\n this.openedMenu = false;\n },\n // Open the actions menu on right click\n onRightClick(event) {\n // If already opened, fallback to default browser\n if (this.openedMenu) {\n return;\n }\n // The grid mode is compact enough to not care about\n // the actions menu mouse position\n if (!this.gridMode) {\n // Actions menu is contained within the app content\n const root = this.$el?.closest('main.app-content');\n const contentRect = root.getBoundingClientRect();\n // Using Math.min/max to prevent the menu from going out of the AppContent\n // 200 = max width of the menu\n root.style.setProperty('--mouse-pos-x', Math.max(0, event.clientX - contentRect.left - 200) + 'px');\n root.style.setProperty('--mouse-pos-y', Math.max(0, event.clientY - contentRect.top) + 'px');\n }\n else {\n // Reset any right menu position potentially set\n const root = this.$el?.closest('main.app-content');\n root.style.removeProperty('--mouse-pos-x');\n root.style.removeProperty('--mouse-pos-y');\n }\n // If the clicked row is in the selection, open global menu\n const isMoreThanOneSelected = this.selectedFiles.length > 1;\n this.actionsMenuStore.opened = this.isSelected && isMoreThanOneSelected ? 'global' : this.uniqueId.toString();\n // Prevent any browser defaults\n event.preventDefault();\n event.stopPropagation();\n },\n execDefaultAction(event) {\n // Ignore click if we are renaming\n if (this.isRenaming) {\n return;\n }\n // Ignore right click (button & 2) and any auxiliary button expect mouse-wheel (button & 4)\n if (Boolean(event.button & 2) || event.button > 4) {\n return;\n }\n // if ctrl+click / cmd+click (MacOS uses the meta key) or middle mouse button (button & 4), open in new tab\n // also if there is no default action use this as a fallback\n const metaKeyPressed = event.ctrlKey || event.metaKey || Boolean(event.button & 4);\n if (metaKeyPressed || !this.defaultFileAction) {\n // If no download permission, then we can not allow to download (direct link) the files\n if (isPublicShare() && !isDownloadable(this.source)) {\n return;\n }\n const url = isPublicShare()\n ? this.source.encodedSource\n : generateUrl('/f/{fileId}', { fileId: this.fileid });\n event.preventDefault();\n event.stopPropagation();\n window.open(url, metaKeyPressed ? '_self' : undefined);\n return;\n }\n // every special case handled so just execute the default action\n event.preventDefault();\n event.stopPropagation();\n // Execute the first default action if any\n this.defaultFileAction.exec(this.source, this.currentView, this.currentDir);\n },\n openDetailsIfAvailable(event) {\n event.preventDefault();\n event.stopPropagation();\n if (sidebarAction?.enabled?.([this.source], this.currentView)) {\n sidebarAction.exec(this.source, this.currentView, this.currentDir);\n }\n },\n onDragOver(event) {\n this.dragover = this.canDrop;\n if (!this.canDrop) {\n event.dataTransfer.dropEffect = 'none';\n return;\n }\n // Handle copy/move drag and drop\n if (event.ctrlKey) {\n event.dataTransfer.dropEffect = 'copy';\n }\n else {\n event.dataTransfer.dropEffect = 'move';\n }\n },\n onDragLeave(event) {\n // Counter bubbling, make sure we're ending the drag\n // only when we're leaving the current element\n const currentTarget = event.currentTarget;\n if (currentTarget?.contains(event.relatedTarget)) {\n return;\n }\n this.dragover = false;\n },\n async onDragStart(event) {\n event.stopPropagation();\n if (!this.canDrag || !this.fileid) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n logger.debug('Drag started', { event });\n // Make sure that we're not dragging a file like the preview\n event.dataTransfer?.clearData?.();\n // Reset any renaming\n this.renamingStore.$reset();\n // Dragging set of files, if we're dragging a file\n // that is already selected, we use the entire selection\n if (this.selectedFiles.includes(this.source.source)) {\n this.draggingStore.set(this.selectedFiles);\n }\n else {\n this.draggingStore.set([this.source.source]);\n }\n const nodes = this.draggingStore.dragging\n .map(source => this.filesStore.getNode(source));\n const image = await getDragAndDropPreview(nodes);\n event.dataTransfer?.setDragImage(image, -10, -10);\n },\n onDragEnd() {\n this.draggingStore.reset();\n this.dragover = false;\n logger.debug('Drag ended');\n },\n async onDrop(event) {\n // skip if native drop like text drag and drop from files names\n if (!this.draggingFiles && !event.dataTransfer?.items?.length) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n // Caching the selection\n const selection = this.draggingFiles;\n const items = [...event.dataTransfer?.items || []];\n // We need to process the dataTransfer ASAP before the\n // browser clears it. This is why we cache the items too.\n const fileTree = await dataTransferToFileTree(items);\n // We might not have the target directory fetched yet\n const contents = await this.currentView?.getContents(this.source.path);\n const folder = contents?.folder;\n if (!folder) {\n showError(this.t('files', 'Target folder does not exist any more'));\n return;\n }\n // If another button is pressed, cancel it. This\n // allows cancelling the drag with the right click.\n if (!this.canDrop || event.button) {\n return;\n }\n const isCopy = event.ctrlKey;\n this.dragover = false;\n logger.debug('Dropped', { event, folder, selection, fileTree });\n // Check whether we're uploading files\n if (fileTree.contents.length > 0) {\n await onDropExternalFiles(fileTree, folder, contents.contents);\n return;\n }\n // Else we're moving/copying files\n const nodes = selection.map(source => this.filesStore.getNode(source));\n await onDropInternalFiles(nodes, folder, contents.contents, isCopy);\n // Reset selection after we dropped the files\n // if the dropped files are within the selection\n if (selection.some(source => this.selectedFiles.includes(source))) {\n logger.debug('Dropped selection, resetting select store...');\n this.selectionStore.reset();\n }\n },\n t,\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Simple non-secure hashing function similar to Java's `hashCode`\n * @param str The string to hash\n * @return {number} a non secure hash of the string\n */\nexport const hashCode = function (str) {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) - hash + str.charCodeAt(i)) | 0;\n }\n return (hash >>> 0);\n};\n","import { Permission } from '@nextcloud/files';\n/**\n * Check permissions on the node if it can be downloaded\n * @param node The node to check\n * @return True if downloadable, false otherwise\n */\nexport function isDownloadable(node) {\n if ((node.permissions & Permission.READ) === 0) {\n return false;\n }\n // If the mount type is a share, ensure it got download permissions.\n if (node.attributes['share-attributes']) {\n const shareAttributes = JSON.parse(node.attributes['share-attributes'] || '[]');\n const downloadAttribute = shareAttributes.find(({ scope, key }) => scope === 'permissions' && key === 'download');\n if (downloadAttribute !== undefined) {\n return downloadAttribute.value === true;\n }\n }\n return true;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isRenaming)?_c('form',{directives:[{name:\"on-click-outside\",rawName:\"v-on-click-outside\",value:(_vm.onRename),expression:\"onRename\"}],ref:\"renameForm\",staticClass:\"files-list__row-rename\",attrs:{\"aria-label\":_vm.t('files', 'Rename file')},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onRename.apply(null, arguments)}}},[_c('NcTextField',{ref:\"renameInput\",attrs:{\"label\":_vm.renameLabel,\"autofocus\":true,\"minlength\":1,\"required\":true,\"value\":_vm.newName,\"enterkeyhint\":\"done\"},on:{\"update:value\":function($event){_vm.newName=$event},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.stopRenaming.apply(null, arguments)}}})],1):_c(_vm.linkTo.is,_vm._b({ref:\"basename\",tag:\"component\",staticClass:\"files-list__row-name-link\",attrs:{\"aria-hidden\":_vm.isRenaming,\"data-cy-files-list-row-name-link\":\"\"}},'component',_vm.linkTo.params,false),[_c('span',{staticClass:\"files-list__row-name-text\",attrs:{\"dir\":\"auto\"}},[_c('span',{staticClass:\"files-list__row-name-\",domProps:{\"textContent\":_vm._s(_vm.basename)}}),_vm._v(\" \"),_c('span',{staticClass:\"files-list__row-name-ext\",domProps:{\"textContent\":_vm._s(_vm.extension)}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { InvalidFilenameError, InvalidFilenameErrorReason, validateFilename } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\n/**\n * Get the validity of a filename (empty if valid).\n * This can be used for `setCustomValidity` on input elements\n * @param name The filename\n * @param escape Escape the matched string in the error (only set when used in HTML)\n */\nexport function getFilenameValidity(name, escape = false) {\n if (name.trim() === '') {\n return t('files', 'Filename must not be empty.');\n }\n try {\n validateFilename(name);\n return '';\n }\n catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n throw error;\n }\n switch (error.reason) {\n case InvalidFilenameErrorReason.Character:\n return t('files', '\"{char}\" is not allowed inside a filename.', { char: error.segment }, undefined, { escape });\n case InvalidFilenameErrorReason.ReservedName:\n return t('files', '\"{segment}\" is a reserved name and not allowed for filenames.', { segment: error.segment }, undefined, { escape: false });\n case InvalidFilenameErrorReason.Extension:\n if (error.segment.match(/\\.[a-z]/i)) {\n return t('files', '\"{extension}\" is not an allowed filetype.', { extension: error.segment }, undefined, { escape: false });\n }\n return t('files', 'Filenames must not end with \"{extension}\".', { extension: error.segment }, undefined, { escape: false });\n default:\n return t('files', 'Invalid filename.');\n }\n }\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=style&index=0&id=c8581214&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.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=style&index=0&id=c8581214&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntryName.vue?vue&type=template&id=c8581214&scoped=true\"\nimport script from \"./FileEntryName.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryName.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FileEntryName.vue?vue&type=style&index=0&id=c8581214&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 \"c8581214\",\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('span',{staticClass:\"files-list__row-icon\"},[(_vm.source.type === 'folder')?[(_vm.dragover)?_vm._m(0):[_vm._m(1),_vm._v(\" \"),(_vm.folderOverlay)?_c(_vm.folderOverlay,{tag:\"OverlayIcon\",staticClass:\"files-list__row-icon-overlay\"}):_vm._e()]]:(_vm.previewUrl)?_c('span',{staticClass:\"files-list__row-icon-preview-container\"},[(_vm.hasBlurhash && (_vm.backgroundFailed === true || !_vm.backgroundLoaded))?_c('canvas',{ref:\"canvas\",staticClass:\"files-list__row-icon-blurhash\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"),(_vm.backgroundFailed !== true)?_c('img',{ref:\"previewImg\",staticClass:\"files-list__row-icon-preview\",class:{'files-list__row-icon-preview--loaded': _vm.backgroundFailed === false},attrs:{\"alt\":\"\",\"loading\":\"lazy\",\"src\":_vm.previewUrl},on:{\"error\":_vm.onBackgroundError,\"load\":_vm.onBackgroundLoad}}):_vm._e()]):_vm._m(2),_vm._v(\" \"),(_vm.isFavorite)?_c('span',{staticClass:\"files-list__row-icon-favorite\"},[_vm._m(3)],1):_vm._e(),_vm._v(\" \"),(_vm.fileOverlay)?_c(_vm.fileOverlay,{tag:\"OverlayIcon\",staticClass:\"files-list__row-icon-overlay files-list__row-icon-overlay--file\"}):_vm._e()],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FolderOpenIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FolderIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FileIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FavoriteIcon')\n}]\n\nexport { render, staticRenderFns }","var q=[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"#\",\"$\",\"%\",\"*\",\"+\",\",\",\"-\",\".\",\":\",\";\",\"=\",\"?\",\"@\",\"[\",\"]\",\"^\",\"_\",\"{\",\"|\",\"}\",\"~\"],x=t=>{let e=0;for(let r=0;r<t.length;r++){let n=t[r],l=q.indexOf(n);e=e*83+l}return e},p=(t,e)=>{var r=\"\";for(let n=1;n<=e;n++){let l=Math.floor(t)/Math.pow(83,e-n)%83;r+=q[Math.floor(l)]}return r};var f=t=>{let e=t/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},h=t=>{let e=Math.max(0,Math.min(1,t));return e<=.0031308?Math.trunc(e*12.92*255+.5):Math.trunc((1.055*Math.pow(e,.4166666666666667)-.055)*255+.5)},F=t=>t<0?-1:1,M=(t,e)=>F(t)*Math.pow(Math.abs(t),e);var d=class extends Error{constructor(e){super(e),this.name=\"ValidationError\",this.message=e}};var C=t=>{if(!t||t.length<6)throw new d(\"The blurhash string must be at least 6 characters\");let e=x(t[0]),r=Math.floor(e/9)+1,n=e%9+1;if(t.length!==4+2*n*r)throw new d(`blurhash length mismatch: length is ${t.length} but it should be ${4+2*n*r}`)},N=t=>{try{C(t)}catch(e){return{result:!1,errorReason:e.message}}return{result:!0}},z=t=>{let e=t>>16,r=t>>8&255,n=t&255;return[f(e),f(r),f(n)]},L=(t,e)=>{let r=Math.floor(t/361),n=Math.floor(t/19)%19,l=t%19;return[M((r-9)/9,2)*e,M((n-9)/9,2)*e,M((l-9)/9,2)*e]},U=(t,e,r,n)=>{C(t),n=n|1;let l=x(t[0]),m=Math.floor(l/9)+1,b=l%9+1,i=(x(t[1])+1)/166,u=new Array(b*m);for(let o=0;o<u.length;o++)if(o===0){let a=x(t.substring(2,6));u[o]=z(a)}else{let a=x(t.substring(4+o*2,6+o*2));u[o]=L(a,i*n)}let c=e*4,s=new Uint8ClampedArray(c*r);for(let o=0;o<r;o++)for(let a=0;a<e;a++){let y=0,B=0,R=0;for(let w=0;w<m;w++)for(let P=0;P<b;P++){let G=Math.cos(Math.PI*a*P/e)*Math.cos(Math.PI*o*w/r),T=u[P+w*b];y+=T[0]*G,B+=T[1]*G,R+=T[2]*G}let V=h(y),I=h(B),E=h(R);s[4*a+0+o*c]=V,s[4*a+1+o*c]=I,s[4*a+2+o*c]=E,s[4*a+3+o*c]=255}return s},j=U;var A=4,D=(t,e,r,n)=>{let l=0,m=0,b=0,g=e*A;for(let u=0;u<e;u++){let c=A*u;for(let s=0;s<r;s++){let o=c+s*g,a=n(u,s);l+=a*f(t[o]),m+=a*f(t[o+1]),b+=a*f(t[o+2])}}let i=1/(e*r);return[l*i,m*i,b*i]},$=t=>{let e=h(t[0]),r=h(t[1]),n=h(t[2]);return(e<<16)+(r<<8)+n},H=(t,e)=>{let r=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[0]/e,.5)*9+9.5)))),n=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[1]/e,.5)*9+9.5)))),l=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[2]/e,.5)*9+9.5))));return r*19*19+n*19+l},O=(t,e,r,n,l)=>{if(n<1||n>9||l<1||l>9)throw new d(\"BlurHash must have between 1 and 9 components\");if(e*r*4!==t.length)throw new d(\"Width and height must match the pixels array\");let m=[];for(let s=0;s<l;s++)for(let o=0;o<n;o++){let a=o==0&&s==0?1:2,y=D(t,e,r,(B,R)=>a*Math.cos(Math.PI*o*B/e)*Math.cos(Math.PI*s*R/r));m.push(y)}let b=m[0],g=m.slice(1),i=\"\",u=n-1+(l-1)*9;i+=p(u,1);let c;if(g.length>0){let s=Math.max(...g.map(a=>Math.max(...a))),o=Math.floor(Math.max(0,Math.min(82,Math.floor(s*166-.5))));c=(o+1)/166,i+=p(o,1)}else c=1,i+=p(0,1);return i+=p($(b),4),g.forEach(s=>{i+=p(H(s,c),2)}),i},S=O;export{d as ValidationError,j as decode,S as encode,N as isBlurhashValid};\n//# sourceMappingURL=index.js.map","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-open-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderOpenIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderOpen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderOpen.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FolderOpen.vue?vue&type=template&id=ae0c5fc0\"\nimport script from \"./FolderOpen.vue?vue&type=script&lang=js\"\nexport * from \"./FolderOpen.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 folder-open-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,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z\"}},[(_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!./Key.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Key.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon key-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"KeyIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./Key.vue?vue&type=template&id=499b3412\"\nimport script from \"./Key.vue?vue&type=script&lang=js\"\nexport * from \"./Key.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 key-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\":\"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z\"}},[(_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!./Network.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Network.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon network-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"NetworkIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Network.vue?vue&type=template&id=7bf2ec80\"\nimport script from \"./Network.vue?vue&type=script&lang=js\"\nexport * from \"./Network.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 network-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,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tag.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tag.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon tag-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TagIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./Tag.vue?vue&type=template&id=356230e0\"\nimport script from \"./Tag.vue?vue&type=script&lang=js\"\nexport * from \"./Tag.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 tag-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\":\"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./PlayCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./PlayCircle.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon play-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10,16.5V7.5L16,12M12,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\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"PlayCircleIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./PlayCircle.vue?vue&type=template&id=3cc1493c\"\nimport script from \"./PlayCircle.vue?vue&type=script&lang=js\"\nexport * from \"./PlayCircle.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 play-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\":\"M10,16.5V7.5L16,12M12,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 }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollectivesIcon.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!./CollectivesIcon.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n -->\n<template>\n\t<span :aria-hidden=\"!title\"\n\t\t:aria-label=\"title\"\n\t\tclass=\"material-design-icon collectives-icon\"\n\t\trole=\"img\"\n\t\tv-bind=\"$attrs\"\n\t\t@click=\"$emit('click', $event)\">\n\t\t<svg :fill=\"fillColor\"\n\t\t\tclass=\"material-design-icon__svg\"\n\t\t\t:width=\"size\"\n\t\t\t:height=\"size\"\n\t\t\tviewBox=\"0 0 16 16\">\n\t\t\t<path d=\"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z\" />\n\t\t\t<path d=\"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z\" />\n\t\t\t<path d=\"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z\" />\n\t\t\t<path d=\"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z\" />\n\t\t\t<path d=\"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z\" />\n\t\t\t<path d=\"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z\" />\n\t\t</svg>\n\t</span>\n</template>\n\n<script>\nexport default {\n\tname: 'CollectivesIcon',\n\tprops: {\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tfillColor: {\n\t\t\ttype: String,\n\t\t\tdefault: 'currentColor',\n\t\t},\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 24,\n\t\t},\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./CollectivesIcon.vue?vue&type=template&id=43528c7c\"\nimport script from \"./CollectivesIcon.vue?vue&type=script&lang=js\"\nexport * from \"./CollectivesIcon.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('span',_vm._b({staticClass:\"material-design-icon collectives-icon\",attrs:{\"aria-hidden\":!_vm.title,\"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 16 16\"}},[_c('path',{attrs:{\"d\":\"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcIconSvgWrapper',{staticClass:\"favorite-marker-icon\",attrs:{\"name\":_vm.t('files', 'Favorite'),\"svg\":_vm.StarSvg}})\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/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=style&index=0&id=f2d0cf6e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=style&index=0&id=f2d0cf6e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FavoriteIcon.vue?vue&type=template&id=f2d0cf6e&scoped=true\"\nimport script from \"./FavoriteIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./FavoriteIcon.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FavoriteIcon.vue?vue&type=style&index=0&id=f2d0cf6e&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 \"f2d0cf6e\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Node, registerDavProperty } from '@nextcloud/files';\n/**\n *\n */\nexport function initLivePhotos() {\n registerDavProperty('nc:metadata-files-live-photo', { nc: 'http://nextcloud.org/ns' });\n}\n/**\n * @param {Node} node - The node\n */\nexport function isLivePhoto(node) {\n return node.attributes['metadata-files-live-photo'] !== undefined;\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryPreview.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryPreview.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileEntryPreview.vue?vue&type=template&id=d02c9e3e\"\nimport script from \"./FileEntryPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryPreview.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntry.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileEntry.vue?vue&type=template&id=d1d8c0dc\"\nimport script from \"./FileEntry.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntry.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryGrid.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryGrid.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"files-list__row\",class:{'files-list__row--active': _vm.isActive, 'files-list__row--dragover': _vm.dragover, 'files-list__row--loading': _vm.isLoading},attrs:{\"data-cy-files-list-row\":\"\",\"data-cy-files-list-row-fileid\":_vm.fileid,\"data-cy-files-list-row-name\":_vm.source.basename,\"draggable\":_vm.canDrag},on:{\"contextmenu\":_vm.onRightClick,\"dragover\":_vm.onDragOver,\"dragleave\":_vm.onDragLeave,\"dragstart\":_vm.onDragStart,\"dragend\":_vm.onDragEnd,\"drop\":_vm.onDrop}},[(_vm.isFailedSource)?_c('span',{staticClass:\"files-list__row--failed\"}):_vm._e(),_vm._v(\" \"),_c('FileEntryCheckbox',{attrs:{\"fileid\":_vm.fileid,\"is-loading\":_vm.isLoading,\"nodes\":_vm.nodes,\"source\":_vm.source}}),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\",attrs:{\"data-cy-files-list-row-name\":\"\"}},[_c('FileEntryPreview',{ref:\"preview\",attrs:{\"dragover\":_vm.dragover,\"grid-mode\":true,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}}),_vm._v(\" \"),_c('FileEntryName',{ref:\"name\",attrs:{\"basename\":_vm.basename,\"extension\":_vm.extension,\"grid-mode\":true,\"nodes\":_vm.nodes,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}})],1),_vm._v(\" \"),(!_vm.compact && _vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__row-mtime\",style:(_vm.mtimeOpacity),attrs:{\"data-cy-files-list-row-mtime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[(_vm.source.mtime)?_c('NcDateTime',{attrs:{\"timestamp\":_vm.source.mtime,\"ignore-seconds\":true}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('FileEntryActions',{ref:\"actions\",class:`files-list__row-actions-${_vm.uniqueId}`,attrs:{\"grid-mode\":true,\"opened\":_vm.openedMenu,\"source\":_vm.source},on:{\"update:opened\":function($event){_vm.openedMenu=$event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FileEntryGrid.vue?vue&type=template&id=32a9ff87\"\nimport script from \"./FileEntryGrid.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryGrid.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"file-list-filters\"},[_c('div',{staticClass:\"file-list-filters__filter\",attrs:{\"data-cy-files-filters\":\"\"}},_vm._l((_setup.visualFilters),function(filter){return _c('span',{key:filter.id,ref:\"filterElements\",refInFor:true})}),0),_vm._v(\" \"),(_setup.activeChips.length > 0)?_c('ul',{staticClass:\"file-list-filters__active\",attrs:{\"aria-label\":_setup.t('files', 'Active filters')}},_vm._l((_setup.activeChips),function(chip,index){return _c('li',{key:index},[_c(_setup.NcChip,{attrs:{\"aria-label-close\":_setup.t('files', 'Remove filter'),\"icon-svg\":chip.icon,\"text\":chip.text},on:{\"close\":chip.onclick},scopedSlots:_vm._u([(chip.user)?{key:\"icon\",fn:function(){return [_c(_setup.NcAvatar,{attrs:{\"disable-menu\":\"\",\"show-user-status\":false,\"size\":24,\"user\":chip.user}})]},proxy:true}:null],null,true)})],1)}),0):_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-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.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-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=style&index=0&id=bd0c8440&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=style&index=0&id=bd0c8440&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileListFilters.vue?vue&type=template&id=bd0c8440&scoped=true\"\nimport script from \"./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FileListFilters.vue?vue&type=style&index=0&id=bd0c8440&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 \"bd0c8440\",\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-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListHeader.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.enabled),expression:\"enabled\"}],class:`files-list__header-${_vm.header.id}`},[_c('span',{ref:\"mount\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FilesListHeader.vue?vue&type=template&id=33e2173e\"\nimport script from \"./FilesListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListHeader.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('th',{staticClass:\"files-list__row-checkbox\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('files', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\"},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.summary))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-size\"},[_c('span',[_vm._v(_vm._s(_vm.totalSize))])]):_vm._e(),_vm._v(\" \"),(_vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-mtime\"}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column)},[_c('span',[_vm._v(_vm._s(column.summary?.(_vm.nodes, _vm.currentView)))])])})],2)\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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=style&index=0&id=5103b354&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=style&index=0&id=5103b354&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableFooter.vue?vue&type=template&id=5103b354&scoped=true\"\nimport script from \"./FilesListTableFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableFooter.vue?vue&type=style&index=0&id=5103b354&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 \"5103b354\",\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('tr',{staticClass:\"files-list__row-head\"},[_c('th',{staticClass:\"files-list__column files-list__row-checkbox\",on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.resetSelection.apply(null, arguments)}}},[_c('NcCheckboxRadioSwitch',_vm._b({attrs:{\"data-cy-files-list-selection-checkbox\":\"\"},on:{\"update:checked\":_vm.onToggleAll}},'NcCheckboxRadioSwitch',_vm.selectAllBind,false))],1),_vm._v(\" \"),_c('th',{staticClass:\"files-list__column files-list__row-name files-list__column--sortable\",attrs:{\"aria-sort\":_vm.ariaSortForMode('basename')}},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Name'),\"mode\":\"basename\"}})],1),_vm._v(\" \"),_c('th',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-size\",class:{ 'files-list__column--sortable': _vm.isSizeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('size')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Size'),\"mode\":\"size\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.isMtimeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-mtime\",class:{ 'files-list__column--sortable': _vm.isMtimeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('mtime')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Modified'),\"mode\":\"mtime\"}})],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column),attrs:{\"aria-sort\":_vm.ariaSortForMode(column.id)}},[(!!column.sort)?_c('FilesListTableHeaderButton',{attrs:{\"name\":column.title,\"mode\":column.id}}):_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(column.title)+\"\\n\\t\\t\")])],1)})],2)\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 Vue from 'vue';\nimport { mapState } from 'pinia';\nimport { useViewConfigStore } from '../store/viewConfig';\nimport { useNavigation } from '../composables/useNavigation';\nexport default Vue.extend({\n setup() {\n const { currentView } = useNavigation();\n return {\n currentView,\n };\n },\n computed: {\n ...mapState(useViewConfigStore, ['getConfig', 'setSortingBy', 'toggleSortingDirection']),\n /**\n * Get the sorting mode for the current view\n */\n sortingMode() {\n return this.getConfig(this.currentView.id)?.sorting_mode\n || this.currentView?.defaultSortKey\n || 'basename';\n },\n /**\n * Get the sorting direction for the current view\n */\n isAscSorting() {\n const sortingDirection = this.getConfig(this.currentView.id)?.sorting_direction;\n return sortingDirection !== 'desc';\n },\n },\n methods: {\n toggleSortBy(key) {\n // If we're already sorting by this key, flip the direction\n if (this.sortingMode === key) {\n this.toggleSortingDirection(this.currentView.id);\n return;\n }\n // else sort ASC by this new key\n this.setSortingBy(key, this.currentView.id);\n },\n },\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcButton',{class:['files-list__column-sort-button', {\n\t\t'files-list__column-sort-button--active': _vm.sortingMode === _vm.mode,\n\t\t'files-list__column-sort-button--size': _vm.sortingMode === 'size',\n\t}],attrs:{\"alignment\":_vm.mode === 'size' ? 'end' : 'start-reverse',\"type\":\"tertiary\",\"title\":_vm.name},on:{\"click\":function($event){return _vm.toggleSortBy(_vm.mode)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.sortingMode !== _vm.mode || _vm.isAscSorting)?_c('MenuUp',{staticClass:\"files-list__column-sort-button-icon\"}):_c('MenuDown',{staticClass:\"files-list__column-sort-button-icon\"})]},proxy:true}])},[_vm._v(\" \"),_c('span',{staticClass:\"files-list__column-sort-button-text\"},[_vm._v(_vm._s(_vm.name))])])\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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=6d7680f0&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=6d7680f0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeaderButton.vue?vue&type=template&id=6d7680f0&scoped=true\"\nimport script from \"./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=6d7680f0&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 \"6d7680f0\",\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-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=style&index=0&id=2790ede2&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=style&index=0&id=2790ede2&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeader.vue?vue&type=template&id=2790ede2&scoped=true\"\nimport script from \"./FilesListTableHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeader.vue?vue&type=style&index=0&id=2790ede2&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 \"2790ede2\",\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:\"files-list__column files-list__row-actions-batch\",attrs:{\"data-cy-files-list-selection-actions\":\"\"}},[_c('NcActions',{ref:\"actionsMenu\",attrs:{\"container\":\"#app-content-vue\",\"disabled\":!!_vm.loading || _vm.areSomeNodesLoading,\"force-name\":true,\"inline\":_vm.enabledInlineActions.length,\"menu-name\":_vm.enabledInlineActions.length <= 1 ? _vm.t('files', 'Actions') : null,\"open\":_vm.openedMenu},on:{\"update:open\":function($event){_vm.openedMenu=$event},\"close\":function($event){_vm.openedSubmenu = null}}},[_vm._l((_vm.enabledMenuActions),function(action){return _c('NcActionButton',{key:action.id,ref:`action-batch-${action.id}`,refInFor:true,class:{\n\t\t\t\t[`files-list__row-actions-batch-${action.id}`]: true,\n\t\t\t\t[`files-list__row-actions-batch--menu`]: _vm.isValidMenu(action)\n\t\t\t},attrs:{\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-selection-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.displayName(_vm.nodes, _vm.currentView) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"title\":action.title?.(_vm.nodes, _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.nodes, _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(action.displayName(_vm.nodes, _vm.currentView))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-actions-batch-back\",attrs:{\"data-cy-files-list-selection-action\":\"menu-back\"},on:{\"click\":function($event){return _vm.onBackToMenuClick(_vm.openedSubmenu)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowLeftIcon')]},proxy:true}],null,false,3001860362)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Back'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.enabledSubmenuActions[_vm.openedSubmenu?.id]),function(action){return _c('NcActionButton',{key:action.id,staticClass:\"files-list__row-actions-batch--submenu\",class:`files-list__row-actions-batch-${action.id}`,attrs:{\"close-after-click\":\"\",\"data-cy-files-list-selection-action\":action.id,\"aria-label\":action.displayName(_vm.nodes, _vm.currentView) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"title\":action.title?.(_vm.nodes, _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.nodes, _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.displayName(_vm.nodes, _vm.currentView))+\"\\n\\t\\t\\t\")])})]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=22469fbb&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=22469fbb&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeaderActions.vue?vue&type=template&id=22469fbb&scoped=true\"\nimport script from \"./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=22469fbb&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 \"22469fbb\",\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:\"files-list\",class:{ 'files-list--grid': _vm.gridMode },attrs:{\"data-cy-files-list\":\"\"},on:{\"&scroll\":function($event){return _vm.onScroll.apply(null, arguments)}}},[_c('div',{ref:\"before\",staticClass:\"files-list__before\"},[_vm._t(\"before\")],2),_vm._v(\" \"),_c('div',{ref:\"filters\",staticClass:\"files-list__filters\"},[_vm._t(\"filters\")],2),_vm._v(\" \"),(!!_vm.$scopedSlots['header-overlay'])?_c('div',{staticClass:\"files-list__thead-overlay\"},[_vm._t(\"header-overlay\")],2):_vm._e(),_vm._v(\" \"),_c('table',{staticClass:\"files-list__table\",class:{ 'files-list__table--with-thead-overlay': !!_vm.$scopedSlots['header-overlay'] }},[(_vm.caption)?_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.caption)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"files-list__thead\",attrs:{\"data-cy-files-list-thead\":\"\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"files-list__tbody\",style:(_vm.tbodyStyle),attrs:{\"data-cy-files-list-tbody\":\"\"}},_vm._l((_vm.renderedItems),function({key, item},i){return _c(_vm.dataComponent,_vm._b({key:key,tag:\"component\",attrs:{\"source\":item,\"index\":i}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{ref:\"footer\",staticClass:\"files-list__tfoot\",attrs:{\"data-cy-files-list-tfoot\":\"\"}},[_vm._t(\"footer\")],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-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=fed5a918\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('VirtualList',{ref:\"table\",attrs:{\"data-component\":_vm.userConfig.grid_view ? _vm.FileEntryGrid : _vm.FileEntry,\"data-key\":'source',\"data-sources\":_vm.nodes,\"grid-mode\":_vm.userConfig.grid_view,\"extra-props\":{\n\t\tisMtimeAvailable: _vm.isMtimeAvailable,\n\t\tisSizeAvailable: _vm.isSizeAvailable,\n\t\tnodes: _vm.nodes,\n\t},\"scroll-to-index\":_vm.scrollToIndex,\"caption\":_vm.caption},scopedSlots:_vm._u([{key:\"filters\",fn:function(){return [_c('FileListFilters')]},proxy:true},(!_vm.isNoneSelected)?{key:\"header-overlay\",fn:function(){return [_c('span',{staticClass:\"files-list__selected\"},[_vm._v(_vm._s(_vm.t('files', '{count} selected', { count: _vm.selectedNodes.length })))]),_vm._v(\" \"),_c('FilesListTableHeaderActions',{attrs:{\"current-view\":_vm.currentView,\"selected-nodes\":_vm.selectedNodes}})]},proxy:true}:null,{key:\"before\",fn:function(){return _vm._l((_vm.sortedHeaders),function(header){return _c('FilesListHeader',{key:header.id,attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"header\":header}})})},proxy:true},{key:\"header\",fn:function(){return [_c('FilesListTableHeader',{ref:\"thead\",attrs:{\"files-list-width\":_vm.fileListWidth,\"is-mtime-available\":_vm.isMtimeAvailable,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('FilesListTableFooter',{attrs:{\"current-view\":_vm.currentView,\"files-list-width\":_vm.fileListWidth,\"is-mtime-available\":_vm.isMtimeAvailable,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes,\"summary\":_vm.summary}})]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=0&id=f2dba2ba&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=0&id=f2dba2ba&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=1&id=f2dba2ba&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=1&id=f2dba2ba&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListVirtual.vue?vue&type=template&id=f2dba2ba&scoped=true\"\nimport script from \"./FilesListVirtual.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListVirtual.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListVirtual.vue?vue&type=style&index=0&id=f2dba2ba&prod&scoped=true&lang=scss\"\nimport style1 from \"./FilesListVirtual.vue?vue&type=style&index=1&id=f2dba2ba&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 \"f2dba2ba\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowDown.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon tray-arrow-down-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TrayArrowDownIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./TrayArrowDown.vue?vue&type=template&id=5dbf2618\"\nimport script from \"./TrayArrowDown.vue?vue&type=script&lang=js\"\nexport * from \"./TrayArrowDown.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-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\":\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z\"}},[(_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-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dragover),expression:\"dragover\"}],staticClass:\"files-list__drag-drop-notice\",attrs:{\"data-cy-files-drag-drop-area\":\"\"},on:{\"drop\":_vm.onDrop}},[_c('div',{staticClass:\"files-list__drag-drop-notice-wrapper\"},[(_vm.canUpload && !_vm.isQuotaExceeded)?[_c('TrayArrowDownIcon',{attrs:{\"size\":48}}),_vm._v(\" \"),_c('h3',{staticClass:\"files-list-drag-drop-notice__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Drag and drop files here to upload'))+\"\\n\\t\\t\\t\")])]:[_c('h3',{staticClass:\"files-list-drag-drop-notice__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.cantUploadLabel)+\"\\n\\t\\t\\t\")])]],2)])\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/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=style&index=0&id=6efab70c&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=style&index=0&id=6efab70c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DragAndDropNotice.vue?vue&type=template&id=6efab70c&scoped=true\"\nimport script from \"./DragAndDropNotice.vue?vue&type=script&lang=ts\"\nexport * from \"./DragAndDropNotice.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DragAndDropNotice.vue?vue&type=style&index=0&id=6efab70c&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 \"6efab70c\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { t } from '@nextcloud/l10n';\n/**\n * Whether error is a WebDAVClientError\n * @param error - Any exception\n * @return {boolean} - Whether error is a WebDAVClientError\n */\nfunction isWebDAVClientError(error) {\n return error instanceof Error && 'status' in error && 'response' in error;\n}\n/**\n * Get a localized error message from webdav request\n * @param error - An exception from webdav request\n * @return {string} Localized error message for end user\n */\nexport function humanizeWebDAVError(error) {\n if (error instanceof Error) {\n if (isWebDAVClientError(error)) {\n const status = error.status || error.response?.status || 0;\n if ([400, 404, 405].includes(status)) {\n return t('files', 'Folder not found');\n }\n else if (status === 403) {\n return t('files', 'This operation is forbidden');\n }\n else if (status === 500) {\n return t('files', 'This directory is unavailable, please check the logs or contact the administrator');\n }\n else if (status === 503) {\n return t('files', 'Storage is temporarily not available');\n }\n }\n return t('files', 'Unexpected error: {error}', { error: error.message });\n }\n return t('files', 'Unknown error');\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=693703cc&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.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=693703cc&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesList.vue?vue&type=template&id=693703cc&scoped=true\"\nimport script from \"./FilesList.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesList.vue?vue&type=style&index=0&id=693703cc&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 \"693703cc\",\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-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesApp.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesApp.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FilesApp.vue?vue&type=template&id=43ffc6ca\"\nimport script from \"./FilesApp.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesApp.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { generateUrl } from '@nextcloud/router';\nimport queryString from 'query-string';\nimport Router, { isNavigationFailure, NavigationFailureType } from 'vue-router';\nimport Vue from 'vue';\nimport logger from '../logger';\nVue.use(Router);\n// Prevent router from throwing errors when we're already on the page we're trying to go to\nconst originalPush = Router.prototype.push;\nRouter.prototype.push = (function (...args) {\n if (args.length > 1) {\n return originalPush.call(this, ...args);\n }\n return originalPush.call(this, args[0]).catch(ignoreDuplicateNavigation);\n});\nconst originalReplace = Router.prototype.replace;\nRouter.prototype.replace = (function (...args) {\n if (args.length > 1) {\n return originalReplace.call(this, ...args);\n }\n return originalReplace.call(this, args[0]).catch(ignoreDuplicateNavigation);\n});\n/**\n * Ignore duplicated-navigation error but forward real exceptions\n * @param error The thrown error\n */\nfunction ignoreDuplicateNavigation(error) {\n if (isNavigationFailure(error, NavigationFailureType.duplicated)) {\n logger.debug('Ignoring duplicated navigation from vue-router', { error });\n }\n else {\n throw error;\n }\n}\nconst router = new Router({\n mode: 'history',\n // if index.php is in the url AND we got this far, then it's working:\n // let's keep using index.php in the url\n base: generateUrl('/apps/files'),\n linkActiveClass: 'active',\n routes: [\n {\n path: '/',\n // Pretending we're using the default view\n redirect: { name: 'filelist', params: { view: 'files' } },\n },\n {\n path: '/:view/:fileid(\\\\d+)?',\n name: 'filelist',\n props: true,\n },\n ],\n // Custom stringifyQuery to prevent encoding of slashes in the url\n stringifyQuery(query) {\n const result = queryString.stringify(query).replace(/%2F/gmi, '/');\n return result ? ('?' + result) : '';\n },\n});\nexport default router;\n","export default class RouterService {\n // typescript compiles this to `#router` to make it private even in JS,\n // but in TS it needs to be called without the visibility specifier\n router;\n constructor(router) {\n this.router = router;\n }\n get name() {\n return this.router.currentRoute.name;\n }\n get query() {\n return this.router.currentRoute.query || {};\n }\n get params() {\n return this.router.currentRoute.params || {};\n }\n /**\n * This is a protected getter only for internal use\n * @private\n */\n get _router() {\n return this.router;\n }\n /**\n * Trigger a route change on the files app\n *\n * @param path the url path, eg: '/trashbin?dir=/Deleted'\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goTo(path, replace = false) {\n return this.router.push({\n path,\n replace,\n });\n }\n /**\n * Trigger a route change on the files App\n *\n * @param name the route name\n * @param params the route parameters\n * @param query the url query parameters\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goToRoute(name, params, query, replace) {\n return this.router.push({\n name,\n query,\n params,\n replace,\n });\n }\n}\n","import { getCSPNonce } from '@nextcloud/auth';\nimport { PiniaVuePlugin } from 'pinia';\nimport Vue from 'vue';\nimport { getPinia } from './store/index.ts';\nimport { registerHotkeys } from './services/HotKeysService.ts';\nimport FilesApp from './FilesApp.vue';\nimport router from './router/router';\nimport RouterService from './services/RouterService';\nimport SettingsModel from './models/Setting.js';\nimport SettingsService from './services/Settings.js';\n__webpack_nonce__ = getCSPNonce();\n// Init private and public Files namespace\nwindow.OCA.Files = window.OCA.Files ?? {};\nwindow.OCP.Files = window.OCP.Files ?? {};\n// Expose router\nif (!window.OCP.Files.Router) {\n const Router = new RouterService(router);\n Object.assign(window.OCP.Files, { Router });\n}\n// Init Pinia store\nVue.use(PiniaVuePlugin);\n// Init HotKeys AFTER pinia is set up\nregisterHotkeys();\n// Init Files App Settings Service\nconst Settings = new SettingsService();\nObject.assign(window.OCA.Files, { Settings });\nObject.assign(window.OCA.Files.Settings, { Setting: SettingsModel });\nconst FilesAppVue = Vue.extend(FilesApp);\nnew FilesAppVue({\n router: window.OCP.Files.Router._router,\n pinia: getPinia(),\n}).$mount('#content');\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { dirname } from 'path';\nimport { useHotKey } from '@nextcloud/vue/dist/Composables/useHotKey.js';\nimport { action as deleteAction } from '../actions/deleteAction.ts';\nimport { action as favoriteAction } from '../actions/favoriteAction.ts';\nimport { action as renameAction } from '../actions/renameAction.ts';\nimport { action as sidebarAction } from '../actions/sidebarAction.ts';\nimport { executeAction } from '../utils/actionUtils.ts';\nimport { useUserConfigStore } from '../store/userconfig.ts';\nimport logger from '../logger.ts';\n/**\n * This register the hotkeys for the Files app.\n * As much as possible, we try to have all the hotkeys in one place.\n * Please make sure to add tests for the hotkeys after adding a new one.\n */\nexport const registerHotkeys = function () {\n // d opens the sidebar\n useHotKey('d', () => executeAction(sidebarAction), {\n stop: true,\n prevent: true,\n });\n // F2 renames the file\n useHotKey('F2', () => executeAction(renameAction), {\n stop: true,\n prevent: true,\n });\n // s toggle favorite\n useHotKey('s', () => executeAction(favoriteAction), {\n stop: true,\n prevent: true,\n });\n // Delete deletes the file\n useHotKey('Delete', () => executeAction(deleteAction), {\n stop: true,\n prevent: true,\n });\n // alt+up go to parent directory\n useHotKey('ArrowUp', goToParentDir, {\n stop: true,\n prevent: true,\n alt: true,\n });\n // v toggle grid view\n useHotKey('v', toggleGridView, {\n stop: true,\n prevent: true,\n });\n logger.debug('Hotkeys registered');\n};\nconst goToParentDir = function () {\n const params = window.OCP.Files.Router?.params || {};\n const query = window.OCP.Files.Router?.query || {};\n const currentDir = (query?.dir || '/');\n const parentDir = dirname(currentDir);\n logger.debug('Navigating to parent directory', { parentDir });\n window.OCP.Files.Router.goToRoute(null, { ...params }, { ...query, dir: parentDir });\n};\nconst toggleGridView = function () {\n const userConfigStore = useUserConfigStore();\n const value = userConfigStore?.userConfig?.grid_view;\n logger.debug('Toggling grid view', { old: value, new: !value });\n userConfigStore.update('grid_view', !value);\n};\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class Settings {\n\n\t_settings\n\n\tconstructor() {\n\t\tthis._settings = []\n\t\tconsole.debug('OCA.Files.Settings initialized')\n\t}\n\n\t/**\n\t * Register a new setting\n\t *\n\t * @since 19.0.0\n\t * @param {OCA.Files.Settings.Setting} view element to add to settings\n\t * @return {boolean} whether registering was successful\n\t */\n\tregister(view) {\n\t\tif (this._settings.filter(e => e.name === view.name).length > 0) {\n\t\t\tconsole.error('A setting with the same name is already registered')\n\t\t\treturn false\n\t\t}\n\t\tthis._settings.push(view)\n\t\treturn true\n\t}\n\n\t/**\n\t * All settings elements\n\t *\n\t * @return {OCA.Files.Settings.Setting[]} All currently registered settings\n\t */\n\tget settings() {\n\t\treturn this._settings\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class Setting {\n\n\t_close\n\t_el\n\t_name\n\t_open\n\n\t/**\n\t * Create a new files app setting\n\t *\n\t * @since 19.0.0\n\t * @param {string} name the name of this setting\n\t * @param {object} component the component\n\t * @param {Function} component.el function that returns an unmounted dom element to be added\n\t * @param {Function} [component.open] callback for when setting is added\n\t * @param {Function} [component.close] callback for when setting is closed\n\t */\n\tconstructor(name, { el, open, close }) {\n\t\tthis._name = name\n\t\tthis._el = el\n\t\tthis._open = open\n\t\tthis._close = close\n\n\t\tif (typeof this._open !== 'function') {\n\t\t\tthis._open = () => {}\n\t\t}\n\n\t\tif (typeof this._close !== 'function') {\n\t\t\tthis._close = () => {}\n\t\t}\n\t}\n\n\tget name() {\n\t\treturn this._name\n\t}\n\n\tget el() {\n\t\treturn this._el\n\t}\n\n\tget open() {\n\t\treturn this._open\n\t}\n\n\tget close() {\n\t\treturn this._close\n\t}\n\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__breadcrumbs[data-v-04abfffa]{flex:1 1 100% !important;width:100%;height:100%;margin-block:0;margin-inline:10px;min-width:0}.files-list__breadcrumbs[data-v-04abfffa] a{cursor:pointer !important}.files-list__breadcrumbs--with-progress[data-v-04abfffa]{flex-direction:column !important;align-items:flex-start !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/BreadCrumbs.vue\"],\"names\":[],\"mappings\":\"AACA,0CAEC,wBAAA,CACA,UAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,WAAA,CAGC,6CACC,yBAAA,CAIF,yDACC,gCAAA,CACA,iCAAA\",\"sourcesContent\":[\"\\n.files-list__breadcrumbs {\\n\\t// Take as much space as possible\\n\\tflex: 1 1 100% !important;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tmargin-block: 0;\\n\\tmargin-inline: 10px;\\n\\tmin-width: 0;\\n\\n\\t:deep() {\\n\\t\\ta {\\n\\t\\t\\tcursor: pointer !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&--with-progress {\\n\\t\\tflex-direction: column !important;\\n\\t\\talign-items: flex-start !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__drag-drop-notice[data-v-6efab70c]{display:flex;align-items:center;justify-content:center;width:100%;min-height:113px;margin:0;user-select:none;color:var(--color-text-maxcontrast);background-color:var(--color-main-background);border-color:#000}.files-list__drag-drop-notice h3[data-v-6efab70c]{margin-inline-start:16px;color:inherit}.files-list__drag-drop-notice-wrapper[data-v-6efab70c]{display:flex;align-items:center;justify-content:center;height:15vh;max-height:70%;padding:0 5vw;border:2px var(--color-border-dark) dashed;border-radius:var(--border-radius-large)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/DragAndDropNotice.vue\"],\"names\":[],\"mappings\":\"AACA,+CACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CAEA,gBAAA,CACA,QAAA,CACA,gBAAA,CACA,mCAAA,CACA,6CAAA,CACA,iBAAA,CAEA,kDACC,wBAAA,CACA,aAAA,CAGD,uDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,aAAA,CACA,0CAAA,CACA,wCAAA\",\"sourcesContent\":[\"\\n.files-list__drag-drop-notice {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\twidth: 100%;\\n\\t// Breadcrumbs height + row thead height\\n\\tmin-height: calc(58px + 55px);\\n\\tmargin: 0;\\n\\tuser-select: none;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tbackground-color: var(--color-main-background);\\n\\tborder-color: black;\\n\\n\\th3 {\\n\\t\\tmargin-inline-start: 16px;\\n\\t\\tcolor: inherit;\\n\\t}\\n\\n\\t&-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\theight: 15vh;\\n\\t\\tmax-height: 70%;\\n\\t\\tpadding: 0 5vw;\\n\\t\\tborder: 2px var(--color-border-dark) dashed;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list-drag-image{position:absolute;top:-9999px;inset-inline-start:-9999px;display:flex;overflow:hidden;align-items:center;height:44px;padding:6px 12px;background:var(--color-main-background)}.files-list-drag-image__icon,.files-list-drag-image .files-list__row-icon{display:flex;overflow:hidden;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--border-radius)}.files-list-drag-image__icon{overflow:visible;margin-inline-end:12px}.files-list-drag-image__icon img{max-width:100%;max-height:100%}.files-list-drag-image__icon .material-design-icon{color:var(--color-text-maxcontrast)}.files-list-drag-image__icon .material-design-icon.folder-icon{color:var(--color-primary-element)}.files-list-drag-image__icon>span{display:flex}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon{margin-top:6px;margin-inline-start:-26px}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon+.files-list__row-icon{margin-top:12px}.files-list-drag-image__icon>span:not(:empty)+*{display:none}.files-list-drag-image__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/DragAndDropPreview.vue\"],\"names\":[],\"mappings\":\"AAIA,uBACC,iBAAA,CACA,WAAA,CACA,0BAAA,CACA,YAAA,CACA,eAAA,CACA,kBAAA,CACA,WAAA,CACA,gBAAA,CACA,uCAAA,CAEA,0EAEC,YAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,kCAAA,CAGD,6BACC,gBAAA,CACA,sBAAA,CAEA,iCACC,cAAA,CACA,eAAA,CAGD,mDACC,mCAAA,CACA,+DACC,kCAAA,CAKF,kCACC,YAAA,CAGA,8EACC,cA9CU,CA+CV,yBAAA,CACA,oGACC,eAAA,CAKF,gDACC,YAAA,CAKH,6BACC,eAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n$size: 32px;\\n$stack-shift: 6px;\\n\\n.files-list-drag-image {\\n\\tposition: absolute;\\n\\ttop: -9999px;\\n\\tinset-inline-start: -9999px;\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\talign-items: center;\\n\\theight: 44px;\\n\\tpadding: 6px 12px;\\n\\tbackground: var(--color-main-background);\\n\\n\\t&__icon,\\n\\t.files-list__row-icon {\\n\\t\\tdisplay: flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 32px;\\n\\t\\theight: 32px;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\toverflow: visible;\\n\\t\\tmargin-inline-end: 12px;\\n\\n\\t\\timg {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tmax-height: 100%;\\n\\t\\t}\\n\\n\\t\\t.material-design-icon {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t&.folder-icon {\\n\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Previews container\\n\\t\\t> span {\\n\\t\\t\\tdisplay: flex;\\n\\n\\t\\t\\t// Stack effect if more than one element\\n\\t\\t\\t.files-list__row-icon + .files-list__row-icon {\\n\\t\\t\\t\\tmargin-top: $stack-shift;\\n\\t\\t\\t\\tmargin-inline-start: $stack-shift - $size;\\n\\t\\t\\t\\t& + .files-list__row-icon {\\n\\t\\t\\t\\t\\tmargin-top: $stack-shift * 2;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t// If we have manually clone the preview,\\n\\t\\t\\t// let's hide any fallback icons\\n\\t\\t\\t&:not(:empty) + * {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__name {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.favorite-marker-icon[data-v-f2d0cf6e]{color:var(--color-favorite);min-width:unset !important;min-height:unset !important}.favorite-marker-icon[data-v-f2d0cf6e] svg{width:26px !important;height:26px !important;max-width:unset !important;max-height:unset !important}.favorite-marker-icon[data-v-f2d0cf6e] svg path{stroke:var(--color-main-background);stroke-width:8px;stroke-linejoin:round;paint-order:stroke}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FavoriteIcon.vue\"],\"names\":[],\"mappings\":\"AACA,uCACC,2BAAA,CAEA,0BAAA,CACG,2BAAA,CAGF,4CAEC,qBAAA,CACA,sBAAA,CAGA,0BAAA,CACA,2BAAA,CAGA,iDACC,mCAAA,CACA,gBAAA,CACA,qBAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.favorite-marker-icon {\\n\\tcolor: var(--color-favorite);\\n\\t// Override NcIconSvgWrapper defaults (clickable area)\\n\\tmin-width: unset !important;\\n min-height: unset !important;\\n\\n\\t:deep() {\\n\\t\\tsvg {\\n\\t\\t\\t// We added a stroke for a11y so we must increase the size to include the stroke\\n\\t\\t\\twidth: 26px !important;\\n\\t\\t\\theight: 26px !important;\\n\\n\\t\\t\\t// Override NcIconSvgWrapper defaults of 20px\\n\\t\\t\\tmax-width: unset !important;\\n\\t\\t\\tmax-height: unset !important;\\n\\n\\t\\t\\t// Sow a border around the icon for better contrast\\n\\t\\t\\tpath {\\n\\t\\t\\t\\tstroke: var(--color-main-background);\\n\\t\\t\\t\\tstroke-width: 8px;\\n\\t\\t\\t\\tstroke-linejoin: round;\\n\\t\\t\\t\\tpaint-order: stroke;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `main.app-content[style*=mouse-pos-x] .v-popper__popper{transform:translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper[data-popper-placement=top]{transform:translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper .v-popper__arrow-container{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue\"],\"names\":[],\"mappings\":\"AAGA,uDACC,6EAAA,CAGA,kFAEC,iGAAA,CAGD,kFACC,YAAA\",\"sourcesContent\":[\"\\n// Allow right click to define the position of the menu\\n// only if defined\\nmain.app-content[style*=\\\"mouse-pos-x\\\"] .v-popper__popper {\\n\\ttransform: translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important;\\n\\n\\t// If the menu is too close to the bottom, we move it up\\n\\t&[data-popper-placement=\\\"top\\\"] {\\n\\t\\t// 34px added to align with the top of the cursor\\n\\t\\ttransform: translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important;\\n\\t}\\n\\t// Hide arrow if floating\\n\\t.v-popper__arrow-container {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `[data-v-5ba570cc] .button-vue--icon-and-text .button-vue__text{color:var(--color-primary-element)}[data-v-5ba570cc] .button-vue--icon-and-text .button-vue__icon{color:var(--color-primary-element)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue\"],\"names\":[],\"mappings\":\"AAEC,+DACC,kCAAA,CAED,+DACC,kCAAA\",\"sourcesContent\":[\"\\n:deep(.button-vue--icon-and-text, .files-list__row-action-sharing-status) {\\n\\t.button-vue__text {\\n\\t\\tcolor: var(--color-primary-element);\\n\\t}\\n\\t.button-vue__icon {\\n\\t\\tcolor: var(--color-primary-element);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `button.files-list__row-name-link[data-v-c8581214]{background-color:unset;border:none;font-weight:normal}button.files-list__row-name-link[data-v-c8581214]:active{background-color:unset !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryName.vue\"],\"names\":[],\"mappings\":\"AACA,kDACC,sBAAA,CACA,WAAA,CACA,kBAAA,CAEA,yDAEC,iCAAA\",\"sourcesContent\":[\"\\nbutton.files-list__row-name-link {\\n\\tbackground-color: unset;\\n\\tborder: none;\\n\\tfont-weight: normal;\\n\\n\\t&:active {\\n\\t\\t// No active styles - handled by the row entry\\n\\t\\tbackground-color: unset !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.file-list-filters[data-v-bd0c8440]{display:flex;flex-direction:column;gap:var(--default-grid-baseline);height:100%;width:100%}.file-list-filters__filter[data-v-bd0c8440]{display:flex;align-items:start;justify-content:start;gap:calc(var(--default-grid-baseline, 4px)*2)}.file-list-filters__filter>*[data-v-bd0c8440]{flex:0 1 fit-content}.file-list-filters__active[data-v-bd0c8440]{display:flex;flex-direction:row;gap:calc(var(--default-grid-baseline, 4px)*2)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileListFilters.vue\"],\"names\":[],\"mappings\":\"AACA,oCACC,YAAA,CACA,qBAAA,CACA,gCAAA,CACA,WAAA,CACA,UAAA,CAEA,4CACC,YAAA,CACA,iBAAA,CACA,qBAAA,CACA,6CAAA,CAEA,8CACC,oBAAA,CAIF,4CACC,YAAA,CACA,kBAAA,CACA,6CAAA\",\"sourcesContent\":[\"\\n.file-list-filters {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: var(--default-grid-baseline);\\n\\theight: 100%;\\n\\twidth: 100%;\\n\\n\\t&__filter {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: start;\\n\\t\\tjustify-content: start;\\n\\t\\tgap: calc(var(--default-grid-baseline, 4px) * 2);\\n\\n\\t\\t> * {\\n\\t\\t\\tflex: 0 1 fit-content;\\n\\t\\t}\\n\\t}\\n\\n\\t&__active {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t\\tgap: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `tr[data-v-5103b354]{margin-bottom:var(--body-container-margin);border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}tr td[data-v-5103b354]{user-select:none;color:var(--color-text-maxcontrast) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableFooter.vue\"],\"names\":[],\"mappings\":\"AAEA,oBACC,0CAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAEA,uBACC,gBAAA,CAEA,8CAAA\",\"sourcesContent\":[\"\\n// Scoped row\\ntr {\\n\\tmargin-bottom: var(--body-container-margin);\\n\\tborder-top: 1px solid var(--color-border);\\n\\t// Prevent hover effect on the whole row\\n\\tbackground-color: transparent !important;\\n\\tborder-bottom: none !important;\\n\\n\\ttd {\\n\\t\\tuser-select: none;\\n\\t\\t// Make sure the cell colors don't apply to column headers\\n\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__column[data-v-2790ede2]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-2790ede2]{cursor:pointer}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeader.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA\",\"sourcesContent\":[\"\\n.files-list__column {\\n\\tuser-select: none;\\n\\t// Make sure the cell colors don't apply to column headers\\n\\tcolor: var(--color-text-maxcontrast) !important;\\n\\n\\t&--sortable {\\n\\t\\tcursor: pointer;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__row-actions-batch[data-v-22469fbb]{flex:1 1 100% !important;max-width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeaderActions.vue\"],\"names\":[],\"mappings\":\"AACA,gDACC,wBAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n.files-list__row-actions-batch {\\n\\tflex: 1 1 100% !important;\\n\\tmax-width: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list__column-sort-button[data-v-6d7680f0]{margin:0 calc(var(--button-padding, var(--cell-margin))*-1);min-width:calc(100% - 3*var(--cell-margin)) !important}.files-list__column-sort-button-text[data-v-6d7680f0]{color:var(--color-text-maxcontrast);font-weight:normal}.files-list__column-sort-button-icon[data-v-6d7680f0]{color:var(--color-text-maxcontrast);opacity:0;transition:opacity var(--animation-quick);inset-inline-start:-10px}.files-list__column-sort-button--size .files-list__column-sort-button-icon[data-v-6d7680f0]{inset-inline-start:10px}.files-list__column-sort-button--active .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:hover .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:focus .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:active .files-list__column-sort-button-icon[data-v-6d7680f0]{opacity:1}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeaderButton.vue\"],\"names\":[],\"mappings\":\"AACA,iDAEC,2DAAA,CACA,sDAAA,CAEA,sDACC,mCAAA,CACA,kBAAA,CAGD,sDACC,mCAAA,CACA,SAAA,CACA,yCAAA,CACA,wBAAA,CAGD,4FACC,uBAAA,CAGD,mXAIC,SAAA\",\"sourcesContent\":[\"\\n.files-list__column-sort-button {\\n\\t// Compensate for cells margin\\n\\tmargin: 0 calc(var(--button-padding, var(--cell-margin)) * -1);\\n\\tmin-width: calc(100% - 3 * var(--cell-margin))!important;\\n\\n\\t&-text {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tfont-weight: normal;\\n\\t}\\n\\n\\t&-icon {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\topacity: 0;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\tinset-inline-start: -10px;\\n\\t}\\n\\n\\t&--size &-icon {\\n\\t\\tinset-inline-start: 10px;\\n\\t}\\n\\n\\t&--active &-icon,\\n\\t&:hover &-icon,\\n\\t&:focus &-icon,\\n\\t&:active &-icon {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list[data-v-f2dba2ba]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: var(--default-clickable-area);--icon-preview-size: 32px;--fixed-block-start-position: var(--default-clickable-area);overflow:auto;height:100%;will-change:scroll-position}.files-list[data-v-f2dba2ba]:has(.file-list-filters__active){--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small))}.files-list[data-v-f2dba2ba] tbody{will-change:padding;contain:layout paint style;display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-f2dba2ba] tbody tr{contain:strict}.files-list[data-v-f2dba2ba] tbody tr:hover,.files-list[data-v-f2dba2ba] tbody tr:focus{background-color:var(--color-background-dark)}.files-list[data-v-f2dba2ba] .files-list__before{display:flex;flex-direction:column}.files-list[data-v-f2dba2ba] .files-list__selected{padding-inline-end:12px;white-space:nowrap}.files-list[data-v-f2dba2ba] .files-list__table{display:block}.files-list[data-v-f2dba2ba] .files-list__table.files-list__table--with-thead-overlay{margin-block-start:calc(-1*var(--row-height))}.files-list[data-v-f2dba2ba] .files-list__filters{position:sticky;top:0;background-color:var(--color-main-background);z-index:10;padding-inline:var(--row-height) var(--default-grid-baseline, 4px);height:var(--fixed-block-start-position);width:100%}.files-list[data-v-f2dba2ba] .files-list__thead-overlay{position:sticky;top:var(--fixed-block-start-position);margin-inline-start:var(--row-height);z-index:20;display:flex;align-items:center;background-color:var(--color-main-background);border-block-end:1px solid var(--color-border);height:var(--row-height)}.files-list[data-v-f2dba2ba] .files-list__thead,.files-list[data-v-f2dba2ba] .files-list__tfoot{display:flex;flex-direction:column;width:100%;background-color:var(--color-main-background)}.files-list[data-v-f2dba2ba] .files-list__thead{position:sticky;z-index:10;top:var(--fixed-block-start-position)}.files-list[data-v-f2dba2ba] tr{position:relative;display:flex;align-items:center;width:100%;border-block-end:1px solid var(--color-border);box-sizing:border-box;user-select:none;height:var(--row-height)}.files-list[data-v-f2dba2ba] td,.files-list[data-v-f2dba2ba] th{display:flex;align-items:center;flex:0 0 auto;justify-content:start;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-f2dba2ba] td span,.files-list[data-v-f2dba2ba] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-f2dba2ba] .files-list__row--failed{position:absolute;display:block;top:0;inset-inline:0;bottom:0;opacity:.1;z-index:-1;background:var(--color-error)}.files-list[data-v-f2dba2ba] .files-list__row-checkbox{justify-content:center}.files-list[data-v-f2dba2ba] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-f2dba2ba] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-f2dba2ba] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-f2dba2ba] .files-list__row:hover,.files-list[data-v-f2dba2ba] .files-list__row:focus,.files-list[data-v-f2dba2ba] .files-list__row:active,.files-list[data-v-f2dba2ba] .files-list__row--active,.files-list[data-v-f2dba2ba] .files-list__row--dragover{background-color:var(--color-background-hover);--color-text-maxcontrast: var(--color-main-text)}.files-list[data-v-f2dba2ba] .files-list__row:hover>*,.files-list[data-v-f2dba2ba] .files-list__row:focus>*,.files-list[data-v-f2dba2ba] .files-list__row:active>*,.files-list[data-v-f2dba2ba] .files-list__row--active>*,.files-list[data-v-f2dba2ba] .files-list__row--dragover>*{--color-border: var(--color-border-dark)}.files-list[data-v-f2dba2ba] .files-list__row:hover .favorite-marker-icon svg path,.files-list[data-v-f2dba2ba] .files-list__row:focus .favorite-marker-icon svg path,.files-list[data-v-f2dba2ba] .files-list__row:active .favorite-marker-icon svg path,.files-list[data-v-f2dba2ba] .files-list__row--active .favorite-marker-icon svg path,.files-list[data-v-f2dba2ba] .files-list__row--dragover .favorite-marker-icon svg path{stroke:var(--color-background-hover)}.files-list[data-v-f2dba2ba] .files-list__row--dragover *{pointer-events:none}.files-list[data-v-f2dba2ba] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-inline-end:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-f2dba2ba] .files-list__row-icon *{cursor:pointer}.files-list[data-v-f2dba2ba] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-f2dba2ba] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-f2dba2ba] .files-list__row-icon>span.folder-icon,.files-list[data-v-f2dba2ba] .files-list__row-icon>span.folder-open-icon{margin:-3px}.files-list[data-v-f2dba2ba] .files-list__row-icon>span.folder-icon svg,.files-list[data-v-f2dba2ba] .files-list__row-icon>span.folder-open-icon svg{width:calc(var(--icon-preview-size) + 6px);height:calc(var(--icon-preview-size) + 6px)}.files-list[data-v-f2dba2ba] .files-list__row-icon-preview-container{position:relative;overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius)}.files-list[data-v-f2dba2ba] .files-list__row-icon-blurhash{position:absolute;inset-block-start:0;inset-inline-start:0;height:100%;width:100%;object-fit:cover}.files-list[data-v-f2dba2ba] .files-list__row-icon-preview{object-fit:contain;object-position:center;height:100%;width:100%}.files-list[data-v-f2dba2ba] .files-list__row-icon-preview:not(.files-list__row-icon-preview--loaded){background:var(--color-loading-dark)}.files-list[data-v-f2dba2ba] .files-list__row-icon-favorite{position:absolute;top:0px;inset-inline-end:-10px}.files-list[data-v-f2dba2ba] .files-list__row-icon-overlay{position:absolute;max-height:calc(var(--icon-preview-size)*.5);max-width:calc(var(--icon-preview-size)*.5);color:var(--color-primary-element-text);margin-block-start:2px}.files-list[data-v-f2dba2ba] .files-list__row-icon-overlay--file{color:var(--color-main-text);background:var(--color-main-background);border-radius:100%}.files-list[data-v-f2dba2ba] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-f2dba2ba] .files-list__row-name button.files-list__row-name-link{display:flex;align-items:center;text-align:start;width:100%;height:100%;min-width:0;margin:0;padding:0}.files-list[data-v-f2dba2ba] .files-list__row-name button.files-list__row-name-link:focus-visible{outline:none !important}.files-list[data-v-f2dba2ba] .files-list__row-name button.files-list__row-name-link:focus .files-list__row-name-text{outline:var(--border-width-input-focused) solid var(--color-main-text) !important;border-radius:var(--border-radius-element)}.files-list[data-v-f2dba2ba] .files-list__row-name button.files-list__row-name-link:focus:not(:focus-visible) .files-list__row-name-text{outline:none !important}.files-list[data-v-f2dba2ba] .files-list__row-name .files-list__row-name-text{color:var(--color-main-text);padding:var(--default-grid-baseline) calc(2*var(--default-grid-baseline));padding-inline-start:-10px;display:inline-flex}.files-list[data-v-f2dba2ba] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast);overflow:visible}.files-list[data-v-f2dba2ba] .files-list__row-rename{width:100%;max-width:600px}.files-list[data-v-f2dba2ba] .files-list__row-rename input{width:100%;margin-inline-start:-8px;padding:2px 6px;border-width:2px}.files-list[data-v-f2dba2ba] .files-list__row-rename input:invalid{border-color:var(--color-error);color:red}.files-list[data-v-f2dba2ba] .files-list__row-actions{width:auto}.files-list[data-v-f2dba2ba] .files-list__row-actions~td,.files-list[data-v-f2dba2ba] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-f2dba2ba] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-f2dba2ba] .files-list__row-action--inline{margin-inline-end:7px}.files-list[data-v-f2dba2ba] .files-list__row-mtime,.files-list[data-v-f2dba2ba] .files-list__row-size{color:var(--color-text-maxcontrast)}.files-list[data-v-f2dba2ba] .files-list__row-size{width:calc(var(--row-height)*1.5);justify-content:flex-end}.files-list[data-v-f2dba2ba] .files-list__row-mtime{width:calc(var(--row-height)*2)}.files-list[data-v-f2dba2ba] .files-list__row-column-custom{width:calc(var(--row-height)*2)}@media screen and (max-width: 512px){.files-list[data-v-f2dba2ba] .files-list__filters{padding-inline:var(--default-grid-baseline, 4px)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"\\n.files-list {\\n\\t--row-height: 55px;\\n\\t--cell-margin: 14px;\\n\\n\\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\\n\\t--checkbox-size: 24px;\\n\\t--clickable-area: var(--default-clickable-area);\\n\\t--icon-preview-size: 32px;\\n\\n\\t--fixed-block-start-position: var(--default-clickable-area);\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&:has(.file-list-filters__active) {\\n\\t\\t--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small));\\n\\t}\\n\\n\\t& :deep() {\\n\\t\\t// Table head, body and footer\\n\\t\\ttbody {\\n\\t\\t\\twill-change: padding;\\n\\t\\t\\tcontain: layout paint style;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\t// Necessary for virtual scrolling absolute\\n\\t\\t\\tposition: relative;\\n\\n\\t\\t\\t/* Hover effect on tbody lines only */\\n\\t\\t\\ttr {\\n\\t\\t\\t\\tcontain: strict;\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Before table and thead\\n\\t\\t.files-list__before {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t}\\n\\n\\t\\t.files-list__selected {\\n\\t\\t\\tpadding-inline-end: 12px;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t.files-list__table {\\n\\t\\t\\tdisplay: block;\\n\\n\\t\\t\\t&.files-list__table--with-thead-overlay {\\n\\t\\t\\t\\t// Hide the table header below the overlay\\n\\t\\t\\t\\tmargin-block-start: calc(-1 * var(--row-height));\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__filters {\\n\\t\\t\\t// Pinned on top when scrolling above table header\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\t// ensure there is a background to hide the file list on scroll\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\t// fixed the size\\n\\t\\t\\tpadding-inline: var(--row-height) var(--default-grid-baseline, 4px);\\n\\t\\t\\theight: var(--fixed-block-start-position);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t.files-list__thead-overlay {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: var(--fixed-block-start-position);\\n\\t\\t\\t// Save space for a row checkbox\\n\\t\\t\\tmargin-inline-start: var(--row-height);\\n\\t\\t\\t// More than .files-list__thead\\n\\t\\t\\tz-index: 20;\\n\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t// Reuse row styles\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t}\\n\\n\\t\\t.files-list__thead,\\n\\t\\t.files-list__tfoot {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// Table header\\n\\t\\t.files-list__thead {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\ttop: var(--fixed-block-start-position);\\n\\t\\t}\\n\\n\\t\\ttr {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\tuser-select: none;\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t}\\n\\n\\t\\ttd, th {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\tjustify-content: start;\\n\\t\\t\\twidth: var(--row-height);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tborder: none;\\n\\n\\t\\t\\t// Columns should try to add any text\\n\\t\\t\\t// node wrapped in a span. That should help\\n\\t\\t\\t// with the ellipsis on overflow.\\n\\t\\t\\tspan {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row--failed {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tinset-inline: 0;\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\topacity: .1;\\n\\t\\t\\tz-index: -1;\\n\\t\\t\\tbackground: var(--color-error);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-checkbox {\\n\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t.checkbox-radio-switch {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t\\t--icon-size: var(--checkbox-size);\\n\\n\\t\\t\\t\\tlabel.checkbox-radio-switch__label {\\n\\t\\t\\t\\t\\twidth: var(--clickable-area);\\n\\t\\t\\t\\t\\theight: var(--clickable-area);\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.checkbox-radio-switch__icon {\\n\\t\\t\\t\\t\\tmargin: 0 !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row {\\n\\t\\t\\t&:hover, &:focus, &:active, &--active, &--dragover {\\n\\t\\t\\t\\t// WCAG AA compliant\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\t// text-maxcontrast have been designed to pass WCAG AA over\\n\\t\\t\\t\\t// a white background, we need to adjust then.\\n\\t\\t\\t\\t--color-text-maxcontrast: var(--color-main-text);\\n\\t\\t\\t\\t> * {\\n\\t\\t\\t\\t\\t--color-border: var(--color-border-dark);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Hover state of the row should also change the favorite markers background\\n\\t\\t\\t\\t.favorite-marker-icon svg path {\\n\\t\\t\\t\\t\\tstroke: var(--color-background-hover);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--dragover * {\\n\\t\\t\\t\\t// Prevent dropping on row children\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Entry preview or mime icon\\n\\t\\t.files-list__row-icon {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\toverflow: visible;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\t// No shrinking or growing allowed\\n\\t\\t\\tflex: 0 0 var(--icon-preview-size);\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: 100%;\\n\\t\\t\\t// Show same padding as the checkbox right padding for visual balance\\n\\t\\t\\tmargin-inline-end: var(--checkbox-padding);\\n\\t\\t\\tcolor: var(--color-primary-element);\\n\\n\\t\\t\\t// Icon is also clickable\\n\\t\\t\\t* {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > span {\\n\\t\\t\\t\\tjustify-content: flex-start;\\n\\n\\t\\t\\t\\t&:not(.files-list__row-icon-favorite) svg {\\n\\t\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Slightly increase the size of the folder icon\\n\\t\\t\\t\\t&.folder-icon,\\n\\t\\t\\t\\t&.folder-open-icon {\\n\\t\\t\\t\\t\\tmargin: -3px;\\n\\t\\t\\t\\t\\tsvg {\\n\\t\\t\\t\\t\\t\\twidth: calc(var(--icon-preview-size) + 6px);\\n\\t\\t\\t\\t\\t\\theight: calc(var(--icon-preview-size) + 6px);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview-container {\\n\\t\\t\\t\\tposition: relative; // Needed for the blurshash to be positioned correctly\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-blurhash {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tinset-block-start: 0;\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\tobject-fit: cover;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview {\\n\\t\\t\\t\\t// Center and contain the preview\\n\\t\\t\\t\\tobject-fit: contain;\\n\\t\\t\\t\\tobject-position: center;\\n\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t/* Preview not loaded animation effect */\\n\\t\\t\\t\\t&:not(.files-list__row-icon-preview--loaded) {\\n\\t\\t\\t\\t\\tbackground: var(--color-loading-dark);\\n\\t\\t\\t\\t\\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-favorite {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: 0px;\\n\\t\\t\\t\\tinset-inline-end: -10px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// File and folder overlay\\n\\t\\t\\t&-overlay {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tmax-height: calc(var(--icon-preview-size) * 0.5);\\n\\t\\t\\t\\tmax-width: calc(var(--icon-preview-size) * 0.5);\\n\\t\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\t\\t// better alignment with the folder icon\\n\\t\\t\\t\\tmargin-block-start: 2px;\\n\\n\\t\\t\\t\\t// Improve icon contrast with a background for files\\n\\t\\t\\t\\t&--file {\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t\\t\\t\\tborder-radius: 100%;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Entry link\\n\\t\\t.files-list__row-name {\\n\\t\\t\\t// Prevent link from overflowing\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\t// Take as much space as possible\\n\\t\\t\\tflex: 1 1 auto;\\n\\n\\t\\t\\tbutton.files-list__row-name-link {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\ttext-align: start;\\n\\t\\t\\t\\t// Fill cell height and width\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\t// Necessary for flex grow to work\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t\\t// Already added to the inner text, see rule below\\n\\t\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Keyboard indicator a11y\\n\\t\\t\\t\\t&:focus .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: var(--border-width-input-focused) solid var(--color-main-text) !important;\\n\\t\\t\\t\\t\\tborder-radius: var(--border-radius-element);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&:focus:not(:focus-visible) .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-text {\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t// Make some space for the outline\\n\\t\\t\\t\\tpadding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline));\\n\\t\\t\\t\\tpadding-inline-start: -10px;\\n\\t\\t\\t\\t// Align two name and ext\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-ext {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t\\t// always show the extension\\n\\t\\t\\t\\toverflow: visible;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Rename form\\n\\t\\t.files-list__row-rename {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmax-width: 600px;\\n\\t\\t\\tinput {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t// Align with text, 0 - padding - border\\n\\t\\t\\t\\tmargin-inline-start: -8px;\\n\\t\\t\\t\\tpadding: 2px 6px;\\n\\t\\t\\t\\tborder-width: 2px;\\n\\n\\t\\t\\t\\t&:invalid {\\n\\t\\t\\t\\t\\t// Show red border on invalid input\\n\\t\\t\\t\\t\\tborder-color: var(--color-error);\\n\\t\\t\\t\\t\\tcolor: red;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-actions {\\n\\t\\t\\t// take as much space as necessary\\n\\t\\t\\twidth: auto;\\n\\n\\t\\t\\t// Add margin to all cells after the actions\\n\\t\\t\\t& ~ td,\\n\\t\\t\\t& ~ th {\\n\\t\\t\\t\\tmargin: 0 var(--cell-margin);\\n\\t\\t\\t}\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\t.button-vue__text {\\n\\t\\t\\t\\t\\t// Remove bold from default button styling\\n\\t\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-action--inline {\\n\\t\\t\\tmargin-inline-end: 7px;\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mtime,\\n\\t\\t.files-list__row-size {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\t\\t.files-list__row-size {\\n\\t\\t\\twidth: calc(var(--row-height) * 1.5);\\n\\t\\t\\t// Right align content/text\\n\\t\\t\\tjustify-content: flex-end;\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mtime {\\n\\t\\t\\twidth: calc(var(--row-height) * 2);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-column-custom {\\n\\t\\t\\twidth: calc(var(--row-height) * 2);\\n\\t\\t}\\n\\t}\\n}\\n\\n@media screen and (max-width: 512px) {\\n\\t.files-list :deep(.files-list__filters) {\\n\\t\\t// Reduce padding on mobile\\n\\t\\tpadding-inline: var(--default-grid-baseline, 4px);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.files-list--grid tbody.files-list__tbody{--item-padding: 16px;--icon-preview-size: 166px;--name-height: 32px;--mtime-height: 16px;--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);--checkbox-padding: 0px;display:grid;grid-template-columns:repeat(auto-fill, var(--row-width));align-content:center;align-items:center;justify-content:space-around;justify-items:center}.files-list--grid tbody.files-list__tbody tr{display:flex;flex-direction:column;width:var(--row-width);height:var(--row-height);border:none;border-radius:var(--border-radius-large);padding:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox{position:absolute;z-index:9;top:calc(var(--item-padding)/2);inset-inline-start:calc(var(--item-padding)/2);overflow:hidden;--checkbox-container-size: 44px;width:var(--checkbox-container-size);height:var(--checkbox-container-size)}.files-list--grid tbody.files-list__tbody .files-list__row-checkbox .checkbox-radio-switch__content::after{content:\"\";width:16px;height:16px;position:absolute;inset-inline-start:50%;margin-inline-start:-8px;z-index:-1;background:var(--color-main-background)}.files-list--grid tbody.files-list__tbody .files-list__row-icon-favorite{position:absolute;top:0;inset-inline-end:0;display:flex;align-items:center;justify-content:center;width:var(--clickable-area);height:var(--clickable-area)}.files-list--grid tbody.files-list__tbody .files-list__row-name{display:flex;flex-direction:column;width:var(--icon-preview-size);height:calc(var(--icon-preview-size) + var(--name-height));overflow:visible}.files-list--grid tbody.files-list__tbody .files-list__row-name span.files-list__row-icon{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list--grid tbody.files-list__tbody .files-list__row-name .files-list__row-name-text{margin:0;margin-inline-start:-4px;padding:0px 4px}.files-list--grid tbody.files-list__tbody .files-list__row-mtime{width:var(--icon-preview-size);height:var(--mtime-height);font-size:calc(var(--default-font-size) - 4px)}.files-list--grid tbody.files-list__tbody .files-list__row-actions{position:absolute;inset-inline-end:calc(var(--clickable-area)/4);inset-block-end:calc(var(--mtime-height)/2);width:var(--clickable-area);height:var(--clickable-area)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"AAEA,0CACC,oBAAA,CACA,0BAAA,CACA,mBAAA,CACA,oBAAA,CACA,qEAAA,CACA,iHAAA,CACA,uBAAA,CACA,YAAA,CACA,yDAAA,CAEA,oBAAA,CACA,kBAAA,CACA,4BAAA,CACA,oBAAA,CAEA,6CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,wBAAA,CACA,WAAA,CACA,wCAAA,CACA,2BAAA,CAID,oEACC,iBAAA,CACA,SAAA,CACA,+BAAA,CACA,8CAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,qCAAA,CAGA,2GACC,UAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,sBAAA,CACA,wBAAA,CACA,UAAA,CACA,uCAAA,CAKF,yEACC,iBAAA,CACA,KAAA,CACA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,2BAAA,CACA,4BAAA,CAGD,gEACC,YAAA,CACA,qBAAA,CACA,8BAAA,CACA,0DAAA,CAEA,gBAAA,CAEA,0FACC,8BAAA,CACA,+BAAA,CAGD,2FACC,QAAA,CAEA,wBAAA,CACA,eAAA,CAIF,iEACC,8BAAA,CACA,0BAAA,CACA,8CAAA,CAGD,mEACC,iBAAA,CACA,8CAAA,CACA,2CAAA,CACA,2BAAA,CACA,4BAAA\",\"sourcesContent\":[\"\\n// Grid mode\\n.files-list--grid tbody.files-list__tbody {\\n\\t--item-padding: 16px;\\n\\t--icon-preview-size: 166px;\\n\\t--name-height: 32px;\\n\\t--mtime-height: 16px;\\n\\t--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);\\n\\t--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);\\n\\t--checkbox-padding: 0px;\\n\\tdisplay: grid;\\n\\tgrid-template-columns: repeat(auto-fill, var(--row-width));\\n\\n\\talign-content: center;\\n\\talign-items: center;\\n\\tjustify-content: space-around;\\n\\tjustify-items: center;\\n\\n\\ttr {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: var(--row-width);\\n\\t\\theight: var(--row-height);\\n\\t\\tborder: none;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tpadding: var(--item-padding);\\n\\t}\\n\\n\\t// Checkbox in the top left\\n\\t.files-list__row-checkbox {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 9;\\n\\t\\ttop: calc(var(--item-padding) / 2);\\n\\t\\tinset-inline-start: calc(var(--item-padding) / 2);\\n\\t\\toverflow: hidden;\\n\\t\\t--checkbox-container-size: 44px;\\n\\t\\twidth: var(--checkbox-container-size);\\n\\t\\theight: var(--checkbox-container-size);\\n\\n\\t\\t// Add a background to the checkbox so we do not see the image through it.\\n\\t\\t.checkbox-radio-switch__content::after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\twidth: 16px;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tinset-inline-start: 50%;\\n\\t\\t\\tmargin-inline-start: -8px;\\n\\t\\t\\tz-index: -1;\\n\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t}\\n\\t}\\n\\n\\t// Star icon in the top right\\n\\t.files-list__row-icon-favorite {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tinset-inline-end: 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: var(--clickable-area);\\n\\t\\theight: var(--clickable-area);\\n\\t}\\n\\n\\t.files-list__row-name {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: var(--icon-preview-size);\\n\\t\\theight: calc(var(--icon-preview-size) + var(--name-height));\\n\\t\\t// Ensure that the name outline is visible.\\n\\t\\toverflow: visible;\\n\\n\\t\\tspan.files-list__row-icon {\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-name-text {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\t// Ensure that the outline is not too close to the text.\\n\\t\\t\\tmargin-inline-start: -4px;\\n\\t\\t\\tpadding: 0px 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t.files-list__row-mtime {\\n\\t\\twidth: var(--icon-preview-size);\\n\\t\\theight: var(--mtime-height);\\n\\t\\tfont-size: calc(var(--default-font-size) - 4px);\\n\\t}\\n\\n\\t.files-list__row-actions {\\n\\t\\tposition: absolute;\\n\\t\\tinset-inline-end: calc(var(--clickable-area) / 4);\\n\\t\\tinset-block-end: calc(var(--mtime-height) / 2);\\n\\t\\twidth: var(--clickable-area);\\n\\t\\theight: var(--clickable-area);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-navigation-entry__settings-quota[data-v-6ed9379e]{--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2)}.app-navigation-entry__settings-quota--not-unlimited[data-v-6ed9379e] .app-navigation-entry__name{line-height:1;margin-top:var(--app-navigation-quota-margin)}.app-navigation-entry__settings-quota progress[data-v-6ed9379e]{position:absolute;bottom:var(--app-navigation-quota-margin);margin-inline-start:var(--default-clickable-area);width:calc(100% - 1.5*var(--default-clickable-area))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/NavigationQuota.vue\"],\"names\":[],\"mappings\":\"AAEA,uDAEC,+EAAA,CAEA,kGACC,aAAA,CACA,6CAAA,CAGD,gEACC,iBAAA,CACA,yCAAA,CACA,iDAAA,CACA,oDAAA\",\"sourcesContent\":[\"\\n// User storage stats display\\n.app-navigation-entry__settings-quota {\\n\\t// Align title with progress and icon\\n\\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\\n\\n\\t&--not-unlimited :deep(.app-navigation-entry__name) {\\n\\t\\tline-height: 1;\\n\\t\\tmargin-top: var(--app-navigation-quota-margin);\\n\\t}\\n\\n\\tprogress {\\n\\t\\tposition: absolute;\\n\\t\\tbottom: var(--app-navigation-quota-margin);\\n\\t\\tmargin-inline-start: var(--default-clickable-area);\\n\\t\\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.toast-loading-icon{margin-inline-start:-4px;min-width:26px}.app-content[data-v-693703cc]{display:flex;overflow:hidden;flex-direction:column;max-height:100%;position:relative !important}.files-list__header[data-v-693703cc]{display:flex;align-items:center;flex:0 0;max-width:100%;margin-block:var(--app-navigation-padding, 4px);margin-inline:calc(var(--default-clickable-area, 44px) + 2*var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px)}.files-list__header--public[data-v-693703cc]{margin-inline:0 var(--app-navigation-padding, 4px)}.files-list__header>*[data-v-693703cc]{flex:0 0}.files-list__header-share-button[data-v-693703cc]{color:var(--color-text-maxcontrast) !important}.files-list__header-share-button--shared[data-v-693703cc]{color:var(--color-main-text) !important}.files-list__header-actions[data-v-693703cc]{min-width:fit-content !important;margin-inline:calc(var(--default-grid-baseline)*2)}.files-list__empty-view-wrapper[data-v-693703cc]{display:flex;height:100%}.files-list__refresh-icon[data-v-693703cc]{flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);height:var(--default-clickable-area)}.files-list__loading-icon[data-v-693703cc]{margin:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/FilesList.vue\"],\"names\":[],\"mappings\":\"AACA,oBAEC,wBAAA,CAEA,cAAA,CAGD,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CACA,4BAAA,CAIA,qCACC,YAAA,CACA,kBAAA,CAEA,QAAA,CACA,cAAA,CAEA,+CAAA,CACA,iIAAA,CAEA,6CAEC,kDAAA,CAGD,uCAGC,QAAA,CAGD,kDACC,8CAAA,CAEA,0DACC,uCAAA,CAIF,6CACC,gCAAA,CACA,kDAAA,CAIF,iDACC,YAAA,CACA,WAAA,CAGD,2CACC,sCAAA,CACA,mCAAA,CACA,oCAAA,CAGD,2CACC,WAAA\",\"sourcesContent\":[\"\\n:global(.toast-loading-icon) {\\n\\t// Reduce start margin (it was made for text but this is an icon)\\n\\tmargin-inline-start: -4px;\\n\\t// 16px icon + 5px on both sides\\n\\tmin-width: 26px;\\n}\\n\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n\\tposition: relative !important;\\n}\\n\\n.files-list {\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\t// Do not grow or shrink (vertically)\\n\\t\\tflex: 0 0;\\n\\t\\tmax-width: 100%;\\n\\t\\t// Align with the navigation toggle icon\\n\\t\\tmargin-block: var(--app-navigation-padding, 4px);\\n\\t\\tmargin-inline: calc(var(--default-clickable-area, 44px) + 2 * var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px);\\n\\n\\t\\t&--public {\\n\\t\\t\\t// There is no navigation toggle on public shares\\n\\t\\t\\tmargin-inline: 0 var(--app-navigation-padding, 4px);\\n\\t\\t}\\n\\n\\t\\t>* {\\n\\t\\t\\t// Do not grow or shrink (horizontally)\\n\\t\\t\\t// Only the breadcrumbs shrinks\\n\\t\\t\\tflex: 0 0;\\n\\t\\t}\\n\\n\\t\\t&-share-button {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\n\\t\\t\\t&--shared {\\n\\t\\t\\t\\tcolor: var(--color-main-text) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&-actions {\\n\\t\\t\\tmin-width: fit-content !important;\\n\\t\\t\\tmargin-inline: calc(var(--default-grid-baseline) * 2);\\n\\t\\t}\\n\\t}\\n\\n\\t&__empty-view-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\theight: 100%;\\n\\t}\\n\\n\\t&__refresh-icon {\\n\\t\\tflex: 0 0 var(--default-clickable-area);\\n\\t\\twidth: var(--default-clickable-area);\\n\\t\\theight: var(--default-clickable-area);\\n\\t}\\n\\n\\t&__loading-icon {\\n\\t\\tmargin: auto;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-navigation[data-v-c6191948] .app-navigation-entry.active .button-vue.icon-collapse:not(:hover){color:var(--color-primary-element-text)}.app-navigation>ul.app-navigation__list[data-v-c6191948]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-c6191948]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}.files-navigation__list[data-v-c6191948]{height:100%}.files-navigation[data-v-c6191948] .app-navigation__content > ul.app-navigation__list{will-change:scroll-position}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Navigation.vue\"],\"names\":[],\"mappings\":\"AAEC,oGACC,uCAAA,CAGD,yDAEC,gDAAA,CAIF,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA,CAIA,yCACC,WAAA,CAGD,sFACC,2BAAA\",\"sourcesContent\":[\"\\n.app-navigation {\\n\\t:deep(.app-navigation-entry.active .button-vue.icon-collapse:not(:hover)) {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t}\\n\\n\\t> ul.app-navigation__list {\\n\\t\\t// Use flex gap value for more elegant spacing\\n\\t\\tpadding-bottom: var(--default-grid-baseline, 4px);\\n\\t}\\n}\\n\\n.app-navigation-entry__settings {\\n\\theight: auto !important;\\n\\toverflow: hidden !important;\\n\\tpadding-top: 0 !important;\\n\\t// Prevent shrinking or growing\\n\\tflex: 0 0 auto;\\n}\\n\\n.files-navigation {\\n\\t&__list {\\n\\t\\theight: 100%; // Fill all available space for sticky views\\n\\t}\\n\\n\\t:deep(.app-navigation__content > ul.app-navigation__list) {\\n\\t\\twill-change: scroll-position;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.setting-link[data-v-6fc727d7]:hover{text-decoration:underline}.shortcut-key[data-v-6fc727d7]{width:160px;white-space:normal}.shortcut-key span[data-v-6fc727d7]{white-space:nowrap}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Settings.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,yBAAA,CAGD,+BACC,WAAA,CAEA,kBAAA,CACA,oCAEC,kBAAA\",\"sourcesContent\":[\"\\n.setting-link:hover {\\n\\ttext-decoration: underline;\\n}\\n\\n.shortcut-key {\\n\\twidth: 160px;\\n\\t// some shortcuts are too long to fit in one line\\n\\twhite-space: normal;\\n\\tspan {\\n\\t\\t// force portion of a shortcut on a new line for nicer display\\n\\t\\twhite-space: nowrap;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { o as logger } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { q, F, s, N, t, P, c, l, m, n, a, g, p, b, r, d, h, f, k, j, e, i } from \"./chunks/dav-Co9y-hkg.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"path\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewFileMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? 1;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {Folder} context the creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nconst getNewFileMenu = function() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewFileMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n};\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n DefaultType2[\"DEFAULT\"] = \"default\";\n DefaultType2[\"HIDDEN\"] = \"hidden\";\n return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n }\n}\nconst registerFileAction = function(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n};\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nconst registerFileListAction = (action) => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n};\nconst getFileListActions = () => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n};\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nconst registerFileListHeaders = function(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n};\nvar InvalidFilenameErrorReason = /* @__PURE__ */ ((InvalidFilenameErrorReason2) => {\n InvalidFilenameErrorReason2[\"ReservedName\"] = \"reserved name\";\n InvalidFilenameErrorReason2[\"Character\"] = \"character\";\n InvalidFilenameErrorReason2[\"Extension\"] = \"extension\";\n return InvalidFilenameErrorReason2;\n})(InvalidFilenameErrorReason || {});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: \"character\", filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({\n filename,\n segment: filename,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({\n filename,\n segment: basename2,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [\".part\", \".filepart\"];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: \"extension\", filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n2) => `(${n2})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i2 = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i2++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch (e2) {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers2.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n FilesSortingMode2[\"Name\"] = \"basename\";\n FilesSortingMode2[\"Modified\"] = \"mtime\";\n FilesSortingMode2[\"Size\"] = \"size\";\n return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: \"basename\",\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n const basename2 = (name) => name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n const identifiers2 = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v.displayname || v.attributes?.displayname || v.basename),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers2, orders);\n}\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n * @param view The view to register\n * @throws `Error` is thrown if a view with the same id is already registered\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`View id ${view.id} is already registered`);\n }\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n * @fires UpdateActiveViewEvent\n * @param view New active view\n */\n setActive(view) {\n this._currentView = view;\n const event = new CustomEvent(\"updateActive\", { detail: view });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nconst getNavigation = function() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n};\nclass Column {\n _column;\n constructor(column) {\n isValidColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst isValidColumn = function(column) {\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n if (column.sort && typeof column.sort !== \"function\") {\n throw new Error(\"Column sortFunction must be a function\");\n }\n if (column.summary && typeof column.summary !== \"function\") {\n throw new Error(\"Column summary must be a function\");\n }\n return true;\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar validator = {};\nvar util = {};\nvar hasRequiredUtil;\nfunction requireUtil() {\n if (hasRequiredUtil) return util;\n hasRequiredUtil = 1;\n (function(exports) {\n const nameStartChar = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n const nameChar = nameStartChar + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n const nameRegexp = \"[\" + nameStartChar + \"][\" + nameChar + \"]*\";\n const regexName = new RegExp(\"^\" + nameRegexp + \"$\");\n const getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n };\n const isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === \"undefined\");\n };\n exports.isExist = function(v) {\n return typeof v !== \"undefined\";\n };\n exports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n };\n exports.merge = function(target, a2, arrayMode) {\n if (a2) {\n const keys = Object.keys(a2);\n const len = keys.length;\n for (let i2 = 0; i2 < len; i2++) {\n if (arrayMode === \"strict\") {\n target[keys[i2]] = [a2[keys[i2]]];\n } else {\n target[keys[i2]] = a2[keys[i2]];\n }\n }\n }\n };\n exports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return \"\";\n }\n };\n exports.isName = isName;\n exports.getAllMatches = getAllMatches;\n exports.nameRegexp = nameRegexp;\n })(util);\n return util;\n}\nvar hasRequiredValidator;\nfunction requireValidator() {\n if (hasRequiredValidator) return validator;\n hasRequiredValidator = 1;\n const util2 = requireUtil();\n const defaultOptions = {\n allowBooleanAttributes: false,\n //A tag can have attributes without any value\n unpairedTags: []\n };\n validator.validate = function(xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n const tags = [];\n let tagFound = false;\n let reachedRoot = false;\n if (xmlData[0] === \"\\uFEFF\") {\n xmlData = xmlData.substr(1);\n }\n for (let i2 = 0; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\" && xmlData[i2 + 1] === \"?\") {\n i2 += 2;\n i2 = readPI(xmlData, i2);\n if (i2.err) return i2;\n } else if (xmlData[i2] === \"<\") {\n let tagStartPos = i2;\n i2++;\n if (xmlData[i2] === \"!\") {\n i2 = readCommentAndCDATA(xmlData, i2);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i2] === \"/\") {\n closingTag = true;\n i2++;\n }\n let tagName = \"\";\n for (; i2 < xmlData.length && xmlData[i2] !== \">\" && xmlData[i2] !== \" \" && xmlData[i2] !== \"\t\" && xmlData[i2] !== \"\\n\" && xmlData[i2] !== \"\\r\"; i2++) {\n tagName += xmlData[i2];\n }\n tagName = tagName.trim();\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substring(0, tagName.length - 1);\n i2--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\" + tagName + \"' is an invalid name.\";\n }\n return getErrorObject(\"InvalidTag\", msg, getLineNumberForPosition(xmlData, i2));\n }\n const result = readAttributeStr(xmlData, i2);\n if (result === false) {\n return getErrorObject(\"InvalidAttr\", \"Attributes for '\" + tagName + \"' have open quote.\", getLineNumberForPosition(xmlData, i2));\n }\n let attrStr = result.value;\n i2 = result.index;\n if (attrStr[attrStr.length - 1] === \"/\") {\n const attrStrStart = i2 - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n } else {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i2));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else if (tags.length === 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject(\n \"InvalidTag\",\n \"Expected closing tag '\" + otg.tagName + \"' (opened in line \" + openPos.line + \", col \" + openPos.col + \") instead of closing tag '\" + tagName + \"'.\",\n getLineNumberForPosition(xmlData, tagStartPos)\n );\n }\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i2 - attrStr.length + isValid.err.line));\n }\n if (reachedRoot === true) {\n return getErrorObject(\"InvalidXml\", \"Multiple possible root nodes found.\", getLineNumberForPosition(xmlData, i2));\n } else if (options.unpairedTags.indexOf(tagName) !== -1) ;\n else {\n tags.push({ tagName, tagStartPos });\n }\n tagFound = true;\n }\n for (i2++; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n if (xmlData[i2 + 1] === \"!\") {\n i2++;\n i2 = readCommentAndCDATA(xmlData, i2);\n continue;\n } else if (xmlData[i2 + 1] === \"?\") {\n i2 = readPI(xmlData, ++i2);\n if (i2.err) return i2;\n } else {\n break;\n }\n } else if (xmlData[i2] === \"&\") {\n const afterAmp = validateAmpersand(xmlData, i2);\n if (afterAmp == -1)\n return getErrorObject(\"InvalidChar\", \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i2));\n i2 = afterAmp;\n } else {\n if (reachedRoot === true && !isWhiteSpace(xmlData[i2])) {\n return getErrorObject(\"InvalidXml\", \"Extra text at the end\", getLineNumberForPosition(xmlData, i2));\n }\n }\n }\n if (xmlData[i2] === \"<\") {\n i2--;\n }\n }\n } else {\n if (isWhiteSpace(xmlData[i2])) {\n continue;\n }\n return getErrorObject(\"InvalidChar\", \"char '\" + xmlData[i2] + \"' is not expected.\", getLineNumberForPosition(xmlData, i2));\n }\n }\n if (!tagFound) {\n return getErrorObject(\"InvalidXml\", \"Start tag expected.\", 1);\n } else if (tags.length == 1) {\n return getErrorObject(\"InvalidTag\", \"Unclosed tag '\" + tags[0].tagName + \"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n } else if (tags.length > 0) {\n return getErrorObject(\"InvalidXml\", \"Invalid '\" + JSON.stringify(tags.map((t2) => t2.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n }\n return true;\n };\n function isWhiteSpace(char) {\n return char === \" \" || char === \"\t\" || char === \"\\n\" || char === \"\\r\";\n }\n function readPI(xmlData, i2) {\n const start = i2;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] == \"?\" || xmlData[i2] == \" \") {\n const tagname = xmlData.substr(start, i2 - start);\n if (i2 > 5 && tagname === \"xml\") {\n return getErrorObject(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", getLineNumberForPosition(xmlData, i2));\n } else if (xmlData[i2] == \"?\" && xmlData[i2 + 1] == \">\") {\n i2++;\n break;\n } else {\n continue;\n }\n }\n }\n return i2;\n }\n function readCommentAndCDATA(xmlData, i2) {\n if (xmlData.length > i2 + 5 && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \"-\") {\n for (i2 += 3; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"-\" && xmlData[i2 + 1] === \"-\" && xmlData[i2 + 2] === \">\") {\n i2 += 2;\n break;\n }\n }\n } else if (xmlData.length > i2 + 8 && xmlData[i2 + 1] === \"D\" && xmlData[i2 + 2] === \"O\" && xmlData[i2 + 3] === \"C\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"Y\" && xmlData[i2 + 6] === \"P\" && xmlData[i2 + 7] === \"E\") {\n let angleBracketsCount = 1;\n for (i2 += 8; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n angleBracketsCount++;\n } else if (xmlData[i2] === \">\") {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (xmlData.length > i2 + 9 && xmlData[i2 + 1] === \"[\" && xmlData[i2 + 2] === \"C\" && xmlData[i2 + 3] === \"D\" && xmlData[i2 + 4] === \"A\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"A\" && xmlData[i2 + 7] === \"[\") {\n for (i2 += 8; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"]\" && xmlData[i2 + 1] === \"]\" && xmlData[i2 + 2] === \">\") {\n i2 += 2;\n break;\n }\n }\n }\n return i2;\n }\n const doubleQuote = '\"';\n const singleQuote = \"'\";\n function readAttributeStr(xmlData, i2) {\n let attrStr = \"\";\n let startChar = \"\";\n let tagClosed = false;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === doubleQuote || xmlData[i2] === singleQuote) {\n if (startChar === \"\") {\n startChar = xmlData[i2];\n } else if (startChar !== xmlData[i2]) ;\n else {\n startChar = \"\";\n }\n } else if (xmlData[i2] === \">\") {\n if (startChar === \"\") {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i2];\n }\n if (startChar !== \"\") {\n return false;\n }\n return {\n value: attrStr,\n index: i2,\n tagClosed\n };\n }\n const validAttrStrRegxp = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\n function validateAttributeString(attrStr, options) {\n const matches = util2.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n for (let i2 = 0; i2 < matches.length; i2++) {\n if (matches[i2][1].length === 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' has no space in starting.\", getPositionFromMatch(matches[i2]));\n } else if (matches[i2][3] !== void 0 && matches[i2][4] === void 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i2][2] + \"' is without value.\", getPositionFromMatch(matches[i2]));\n } else if (matches[i2][3] === void 0 && !options.allowBooleanAttributes) {\n return getErrorObject(\"InvalidAttr\", \"boolean attribute '\" + matches[i2][2] + \"' is not allowed.\", getPositionFromMatch(matches[i2]));\n }\n const attrName = matches[i2][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is an invalid name.\", getPositionFromMatch(matches[i2]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n attrNames[attrName] = 1;\n } else {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is repeated.\", getPositionFromMatch(matches[i2]));\n }\n }\n return true;\n }\n function validateNumberAmpersand(xmlData, i2) {\n let re2 = /\\d/;\n if (xmlData[i2] === \"x\") {\n i2++;\n re2 = /[\\da-fA-F]/;\n }\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \";\")\n return i2;\n if (!xmlData[i2].match(re2))\n break;\n }\n return -1;\n }\n function validateAmpersand(xmlData, i2) {\n i2++;\n if (xmlData[i2] === \";\")\n return -1;\n if (xmlData[i2] === \"#\") {\n i2++;\n return validateNumberAmpersand(xmlData, i2);\n }\n let count = 0;\n for (; i2 < xmlData.length; i2++, count++) {\n if (xmlData[i2].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i2] === \";\")\n break;\n return -1;\n }\n return i2;\n }\n function getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col\n }\n };\n }\n function validateAttrName(attrName) {\n return util2.isName(attrName);\n }\n function validateTagName(tagname) {\n return util2.isName(tagname);\n }\n function getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n }\n function getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n }\n return validator;\n}\nvar OptionsBuilder = {};\nvar hasRequiredOptionsBuilder;\nfunction requireOptionsBuilder() {\n if (hasRequiredOptionsBuilder) return OptionsBuilder;\n hasRequiredOptionsBuilder = 1;\n const defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n removeNSPrefix: false,\n // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false,\n //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true,\n //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [],\n //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function(tagName, jPath, attrs) {\n return tagName;\n }\n // skipEmptyListItem: false\n };\n const buildOptions = function(options) {\n return Object.assign({}, defaultOptions, options);\n };\n OptionsBuilder.buildOptions = buildOptions;\n OptionsBuilder.defaultOptions = defaultOptions;\n return OptionsBuilder;\n}\nvar xmlNode;\nvar hasRequiredXmlNode;\nfunction requireXmlNode() {\n if (hasRequiredXmlNode) return xmlNode;\n hasRequiredXmlNode = 1;\n class XmlNode {\n constructor(tagname) {\n this.tagname = tagname;\n this.child = [];\n this[\":@\"] = {};\n }\n add(key, val) {\n if (key === \"__proto__\") key = \"#__proto__\";\n this.child.push({ [key]: val });\n }\n addChild(node) {\n if (node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if (node[\":@\"] && Object.keys(node[\":@\"]).length > 0) {\n this.child.push({ [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n } else {\n this.child.push({ [node.tagname]: node.child });\n }\n }\n }\n xmlNode = XmlNode;\n return xmlNode;\n}\nvar DocTypeReader;\nvar hasRequiredDocTypeReader;\nfunction requireDocTypeReader() {\n if (hasRequiredDocTypeReader) return DocTypeReader;\n hasRequiredDocTypeReader = 1;\n const util2 = requireUtil();\n function readDocType(xmlData, i2) {\n const entities = {};\n if (xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"C\" && xmlData[i2 + 5] === \"T\" && xmlData[i2 + 6] === \"Y\" && xmlData[i2 + 7] === \"P\" && xmlData[i2 + 8] === \"E\") {\n i2 = i2 + 9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\" && !comment) {\n if (hasBody && isEntity(xmlData, i2)) {\n i2 += 7;\n let entityName, val;\n [entityName, val, i2] = readEntityExp(xmlData, i2 + 1);\n if (val.indexOf(\"&\") === -1)\n entities[validateEntityName(entityName)] = {\n regx: RegExp(`&${entityName};`, \"g\"),\n val\n };\n } else if (hasBody && isElement(xmlData, i2)) i2 += 8;\n else if (hasBody && isAttlist(xmlData, i2)) i2 += 8;\n else if (hasBody && isNotation(xmlData, i2)) i2 += 9;\n else comment = true;\n angleBracketsCount++;\n exp = \"\";\n } else if (xmlData[i2] === \">\") {\n if (comment) {\n if (xmlData[i2 - 1] === \"-\" && xmlData[i2 - 2] === \"-\") {\n comment = false;\n angleBracketsCount--;\n }\n } else {\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n } else if (xmlData[i2] === \"[\") {\n hasBody = true;\n } else {\n exp += xmlData[i2];\n }\n }\n if (angleBracketsCount !== 0) {\n throw new Error(`Unclosed DOCTYPE`);\n }\n } else {\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return { entities, i: i2 };\n }\n function readEntityExp(xmlData, i2) {\n let entityName = \"\";\n for (; i2 < xmlData.length && (xmlData[i2] !== \"'\" && xmlData[i2] !== '\"'); i2++) {\n entityName += xmlData[i2];\n }\n entityName = entityName.trim();\n if (entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n const startChar = xmlData[i2++];\n let val = \"\";\n for (; i2 < xmlData.length && xmlData[i2] !== startChar; i2++) {\n val += xmlData[i2];\n }\n return [entityName, val, i2];\n }\n function isEntity(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"N\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"I\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"Y\") return true;\n return false;\n }\n function isElement(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"E\" && xmlData[i2 + 3] === \"L\" && xmlData[i2 + 4] === \"E\" && xmlData[i2 + 5] === \"M\" && xmlData[i2 + 6] === \"E\" && xmlData[i2 + 7] === \"N\" && xmlData[i2 + 8] === \"T\") return true;\n return false;\n }\n function isAttlist(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"A\" && xmlData[i2 + 3] === \"T\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"L\" && xmlData[i2 + 6] === \"I\" && xmlData[i2 + 7] === \"S\" && xmlData[i2 + 8] === \"T\") return true;\n return false;\n }\n function isNotation(xmlData, i2) {\n if (xmlData[i2 + 1] === \"!\" && xmlData[i2 + 2] === \"N\" && xmlData[i2 + 3] === \"O\" && xmlData[i2 + 4] === \"T\" && xmlData[i2 + 5] === \"A\" && xmlData[i2 + 6] === \"T\" && xmlData[i2 + 7] === \"I\" && xmlData[i2 + 8] === \"O\" && xmlData[i2 + 9] === \"N\") return true;\n return false;\n }\n function validateEntityName(name) {\n if (util2.isName(name))\n return name;\n else\n throw new Error(`Invalid entity name ${name}`);\n }\n DocTypeReader = readDocType;\n return DocTypeReader;\n}\nvar strnum;\nvar hasRequiredStrnum;\nfunction requireStrnum() {\n if (hasRequiredStrnum) return strnum;\n hasRequiredStrnum = 1;\n const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\n const numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n if (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n }\n if (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n }\n const consider = {\n hex: true,\n leadingZeros: true,\n decimalPoint: \".\",\n eNotation: true\n //skipLike: /regex/\n };\n function toNumber(str, options = {}) {\n options = Object.assign({}, consider, options);\n if (!str || typeof str !== \"string\") return str;\n let trimmedStr = str.trim();\n if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr)) return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n } else {\n const match = numRegex.exec(trimmedStr);\n if (match) {\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]);\n const eNotation = match[4] || match[6];\n if (!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\") return str;\n else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str;\n else {\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n if (numStr.search(/[eE]/) !== -1) {\n if (options.eNotation) return num;\n else return str;\n } else if (eNotation) {\n if (options.eNotation) return num;\n else return str;\n } else if (trimmedStr.indexOf(\".\") !== -1) {\n if (numStr === \"0\" && numTrimmedByZeros === \"\") return num;\n else if (numStr === numTrimmedByZeros) return num;\n else if (sign && numStr === \"-\" + numTrimmedByZeros) return num;\n else return str;\n }\n if (leadingZeros) {\n if (numTrimmedByZeros === numStr) return num;\n else if (sign + numTrimmedByZeros === numStr) return num;\n else return str;\n }\n if (trimmedStr === numStr) return num;\n else if (trimmedStr === sign + numStr) return num;\n return str;\n }\n } else {\n return str;\n }\n }\n }\n function trimZeros(numStr) {\n if (numStr && numStr.indexOf(\".\") !== -1) {\n numStr = numStr.replace(/0+$/, \"\");\n if (numStr === \".\") numStr = \"0\";\n else if (numStr[0] === \".\") numStr = \"0\" + numStr;\n else if (numStr[numStr.length - 1] === \".\") numStr = numStr.substr(0, numStr.length - 1);\n return numStr;\n }\n return numStr;\n }\n strnum = toNumber;\n return strnum;\n}\nvar ignoreAttributes;\nvar hasRequiredIgnoreAttributes;\nfunction requireIgnoreAttributes() {\n if (hasRequiredIgnoreAttributes) return ignoreAttributes;\n hasRequiredIgnoreAttributes = 1;\n function getIgnoreAttributesFn(ignoreAttributes2) {\n if (typeof ignoreAttributes2 === \"function\") {\n return ignoreAttributes2;\n }\n if (Array.isArray(ignoreAttributes2)) {\n return (attrName) => {\n for (const pattern of ignoreAttributes2) {\n if (typeof pattern === \"string\" && attrName === pattern) {\n return true;\n }\n if (pattern instanceof RegExp && pattern.test(attrName)) {\n return true;\n }\n }\n };\n }\n return () => false;\n }\n ignoreAttributes = getIgnoreAttributesFn;\n return ignoreAttributes;\n}\nvar OrderedObjParser_1;\nvar hasRequiredOrderedObjParser;\nfunction requireOrderedObjParser() {\n if (hasRequiredOrderedObjParser) return OrderedObjParser_1;\n hasRequiredOrderedObjParser = 1;\n const util2 = requireUtil();\n const xmlNode2 = requireXmlNode();\n const readDocType = requireDocTypeReader();\n const toNumber = requireStrnum();\n const getIgnoreAttributesFn = requireIgnoreAttributes();\n class OrderedObjParser {\n constructor(options) {\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n \"quot\": { regex: /&(quot|#34|#x22);/g, val: '\"' }\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\": { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 16)) }\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n }\n }\n function addExternalEntities(externalEntities) {\n const entKeys = Object.keys(externalEntities);\n for (let i2 = 0; i2 < entKeys.length; i2++) {\n const ent = entKeys[i2];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\" + ent + \";\", \"g\"),\n val: externalEntities[ent]\n };\n }\n }\n function parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== void 0) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if (val.length > 0) {\n if (!escapeEntities) val = this.replaceEntitiesValue(val);\n const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if (newval === null || newval === void 0) {\n return val;\n } else if (typeof newval !== typeof val || newval !== val) {\n return newval;\n } else if (this.options.trimValues) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n const trimmedVal = val.trim();\n if (trimmedVal === val) {\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n return val;\n }\n }\n }\n }\n }\n function resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(\":\");\n const prefix = tagname.charAt(0) === \"/\" ? \"/\" : \"\";\n if (tags[0] === \"xmlns\") {\n return \"\";\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n }\n const attrsRegx = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\n function buildAttributesMap(attrStr, jPath, tagName) {\n if (this.options.ignoreAttributes !== true && typeof attrStr === \"string\") {\n const matches = util2.getAllMatches(attrStr, attrsRegx);\n const len = matches.length;\n const attrs = {};\n for (let i2 = 0; i2 < len; i2++) {\n const attrName = this.resolveNameSpace(matches[i2][1]);\n if (this.ignoreAttributesFn(attrName, jPath)) {\n continue;\n }\n let oldVal = matches[i2][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if (aName === \"__proto__\") aName = \"#__proto__\";\n if (oldVal !== void 0) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if (newVal === null || newVal === void 0) {\n attrs[aName] = oldVal;\n } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n attrs[aName] = newVal;\n } else {\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n }\n const parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n const xmlObj = new xmlNode2(\"!xml\");\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for (let i2 = 0; i2 < xmlData.length; i2++) {\n const ch = xmlData[i2];\n if (ch === \"<\") {\n if (xmlData[i2 + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i2, \"Closing Tag is not closed.\");\n let tagName = xmlData.substring(i2 + 2, closeIndex).trim();\n if (this.options.removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n }\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode) {\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n const lastTagName = jPath.substring(jPath.lastIndexOf(\".\") + 1);\n if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n }\n let propIndex = 0;\n if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n propIndex = jPath.lastIndexOf(\".\", jPath.lastIndexOf(\".\") - 1);\n this.tagsNodeStack.pop();\n } else {\n propIndex = jPath.lastIndexOf(\".\");\n }\n jPath = jPath.substring(0, propIndex);\n currentNode = this.tagsNodeStack.pop();\n textData = \"\";\n i2 = closeIndex;\n } else if (xmlData[i2 + 1] === \"?\") {\n let tagData = readTagExp(xmlData, i2, false, \"?>\");\n if (!tagData) throw new Error(\"Pi Tag is not closed.\");\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if (this.options.ignoreDeclaration && tagData.tagName === \"?xml\" || this.options.ignorePiTags) ;\n else {\n const childNode = new xmlNode2(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n }\n i2 = tagData.closeIndex + 1;\n } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n const endIndex = findClosingIndex(xmlData, \"-->\", i2 + 4, \"Comment is not closed.\");\n if (this.options.commentPropName) {\n const comment = xmlData.substring(i2 + 4, endIndex - 2);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n }\n i2 = endIndex;\n } else if (xmlData.substr(i2 + 1, 2) === \"!D\") {\n const result = readDocType(xmlData, i2);\n this.docTypeEntities = result.entities;\n i2 = result.i;\n } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i2 + 9, closeIndex);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n if (val == void 0) val = \"\";\n if (this.options.cdataPropName) {\n currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n } else {\n currentNode.add(this.options.textNodeName, val);\n }\n i2 = closeIndex + 2;\n } else {\n let result = readTagExp(xmlData, i2, this.options.removeNSPrefix);\n let tagName = result.tagName;\n const rawTagName = result.rawTagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode && textData) {\n if (currentNode.tagname !== \"!xml\") {\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n const lastTag = currentNode;\n if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n currentNode = this.tagsNodeStack.pop();\n jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n }\n if (tagName !== xmlObj.tagname) {\n jPath += jPath ? \".\" + tagName : tagName;\n }\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n let tagContent = \"\";\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n i2 = result.closeIndex;\n } else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n i2 = result.closeIndex;\n } else {\n const result2 = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n if (!result2) throw new Error(`Unexpected end of ${rawTagName}`);\n i2 = result2.i;\n tagContent = result2.tagContent;\n }\n const childNode = new xmlNode2(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n if (tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n this.addChild(currentNode, childNode, jPath);\n } else {\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n const childNode = new xmlNode2(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n } else {\n const childNode = new xmlNode2(tagName);\n this.tagsNodeStack.push(currentNode);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n currentNode = childNode;\n }\n textData = \"\";\n i2 = closeIndex;\n }\n }\n } else {\n textData += xmlData[i2];\n }\n }\n return xmlObj.child;\n };\n function addChild(currentNode, childNode, jPath) {\n const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"]);\n if (result === false) ;\n else if (typeof result === \"string\") {\n childNode.tagname = result;\n currentNode.addChild(childNode);\n } else {\n currentNode.addChild(childNode);\n }\n }\n const replaceEntitiesValue = function(val) {\n if (this.options.processEntities) {\n for (let entityName in this.docTypeEntities) {\n const entity = this.docTypeEntities[entityName];\n val = val.replace(entity.regx, entity.val);\n }\n for (let entityName in this.lastEntities) {\n const entity = this.lastEntities[entityName];\n val = val.replace(entity.regex, entity.val);\n }\n if (this.options.htmlEntities) {\n for (let entityName in this.htmlEntities) {\n const entity = this.htmlEntities[entityName];\n val = val.replace(entity.regex, entity.val);\n }\n }\n val = val.replace(this.ampEntity.regex, this.ampEntity.val);\n }\n return val;\n };\n function saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) {\n if (isLeafNode === void 0) isLeafNode = Object.keys(currentNode.child).length === 0;\n textData = this.parseTextData(\n textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode\n );\n if (textData !== void 0 && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n }\n function isItStopNode(stopNodes, jPath, currentTagName) {\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if (allNodesExp === stopNodeExp || jPath === stopNodeExp) return true;\n }\n return false;\n }\n function tagExpWithClosingIndex(xmlData, i2, closingChar = \">\") {\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i2; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if (closingChar[1]) {\n if (xmlData[index + 1] === closingChar[1]) {\n return {\n data: tagExp,\n index\n };\n }\n } else {\n return {\n data: tagExp,\n index\n };\n }\n } else if (ch === \"\t\") {\n ch = \" \";\n }\n tagExp += ch;\n }\n }\n function findClosingIndex(xmlData, str, i2, errMsg) {\n const closingIndex = xmlData.indexOf(str, i2);\n if (closingIndex === -1) {\n throw new Error(errMsg);\n } else {\n return closingIndex + str.length - 1;\n }\n }\n function readTagExp(xmlData, i2, removeNSPrefix, closingChar = \">\") {\n const result = tagExpWithClosingIndex(xmlData, i2 + 1, closingChar);\n if (!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if (separatorIndex !== -1) {\n tagName = tagExp.substring(0, separatorIndex);\n tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n }\n const rawTagName = tagName;\n if (removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n return {\n tagName,\n tagExp,\n closeIndex,\n attrExpPresent,\n rawTagName\n };\n }\n function readStopNodeData(xmlData, tagName, i2) {\n const startIndex = i2;\n let openTagCount = 1;\n for (; i2 < xmlData.length; i2++) {\n if (xmlData[i2] === \"<\") {\n if (xmlData[i2 + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i2, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i2 + 2, closeIndex).trim();\n if (closeTagName === tagName) {\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i2),\n i: closeIndex\n };\n }\n }\n i2 = closeIndex;\n } else if (xmlData[i2 + 1] === \"?\") {\n const closeIndex = findClosingIndex(xmlData, \"?>\", i2 + 1, \"StopNode is not closed.\");\n i2 = closeIndex;\n } else if (xmlData.substr(i2 + 1, 3) === \"!--\") {\n const closeIndex = findClosingIndex(xmlData, \"-->\", i2 + 3, \"StopNode is not closed.\");\n i2 = closeIndex;\n } else if (xmlData.substr(i2 + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i2, \"StopNode is not closed.\") - 2;\n i2 = closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i2, \">\");\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n openTagCount++;\n }\n i2 = tagData.closeIndex;\n }\n }\n }\n }\n }\n function parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === \"string\") {\n const newval = val.trim();\n if (newval === \"true\") return true;\n else if (newval === \"false\") return false;\n else return toNumber(val, options);\n } else {\n if (util2.isExist(val)) {\n return val;\n } else {\n return \"\";\n }\n }\n }\n OrderedObjParser_1 = OrderedObjParser;\n return OrderedObjParser_1;\n}\nvar node2json = {};\nvar hasRequiredNode2json;\nfunction requireNode2json() {\n if (hasRequiredNode2json) return node2json;\n hasRequiredNode2json = 1;\n function prettify(node, options) {\n return compress(node, options);\n }\n function compress(arr, options, jPath) {\n let text;\n const compressedObj = {};\n for (let i2 = 0; i2 < arr.length; i2++) {\n const tagObj = arr[i2];\n const property = propName(tagObj);\n let newJpath = \"\";\n if (jPath === void 0) newJpath = property;\n else newJpath = jPath + \".\" + property;\n if (property === options.textNodeName) {\n if (text === void 0) text = tagObj[property];\n else text += \"\" + tagObj[property];\n } else if (property === void 0) {\n continue;\n } else if (tagObj[property]) {\n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n if (tagObj[\":@\"]) {\n assignAttributes(val, tagObj[\":@\"], newJpath, options);\n } else if (Object.keys(val).length === 1 && val[options.textNodeName] !== void 0 && !options.alwaysCreateTextNode) {\n val = val[options.textNodeName];\n } else if (Object.keys(val).length === 0) {\n if (options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n if (compressedObj[property] !== void 0 && compressedObj.hasOwnProperty(property)) {\n if (!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [compressedObj[property]];\n }\n compressedObj[property].push(val);\n } else {\n if (options.isArray(property, newJpath, isLeaf)) {\n compressedObj[property] = [val];\n } else {\n compressedObj[property] = val;\n }\n }\n }\n }\n if (typeof text === \"string\") {\n if (text.length > 0) compressedObj[options.textNodeName] = text;\n } else if (text !== void 0) compressedObj[options.textNodeName] = text;\n return compressedObj;\n }\n function propName(obj) {\n const keys = Object.keys(obj);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n if (key !== \":@\") return key;\n }\n }\n function assignAttributes(obj, attrMap, jpath, options) {\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length;\n for (let i2 = 0; i2 < len; i2++) {\n const atrrName = keys[i2];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [attrMap[atrrName]];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n }\n function isLeafTag(obj, options) {\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n if (propCount === 0) {\n return true;\n }\n if (propCount === 1 && (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)) {\n return true;\n }\n return false;\n }\n node2json.prettify = prettify;\n return node2json;\n}\nvar XMLParser_1;\nvar hasRequiredXMLParser;\nfunction requireXMLParser() {\n if (hasRequiredXMLParser) return XMLParser_1;\n hasRequiredXMLParser = 1;\n const { buildOptions } = requireOptionsBuilder();\n const OrderedObjParser = requireOrderedObjParser();\n const { prettify } = requireNode2json();\n const validator2 = requireValidator();\n class XMLParser {\n constructor(options) {\n this.externalEntities = {};\n this.options = buildOptions(options);\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData, validationOption) {\n if (typeof xmlData === \"string\") ;\n else if (xmlData.toString) {\n xmlData = xmlData.toString();\n } else {\n throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n }\n if (validationOption) {\n if (validationOption === true) validationOption = {};\n const result = validator2.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`);\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if (this.options.preserveOrder || orderedResult === void 0) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value) {\n if (value.indexOf(\"&\") !== -1) {\n throw new Error(\"Entity value can't have '&'\");\n } else if (key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1) {\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\");\n } else if (value === \"&\") {\n throw new Error(\"An entity with value '&' is not permitted\");\n } else {\n this.externalEntities[key] = value;\n }\n }\n }\n XMLParser_1 = XMLParser;\n return XMLParser_1;\n}\nvar orderedJs2Xml;\nvar hasRequiredOrderedJs2Xml;\nfunction requireOrderedJs2Xml() {\n if (hasRequiredOrderedJs2Xml) return orderedJs2Xml;\n hasRequiredOrderedJs2Xml = 1;\n const EOL = \"\\n\";\n function toXml(jArray, options) {\n let indentation = \"\";\n if (options.format && options.indentBy.length > 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n }\n function arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n for (let i2 = 0; i2 < arr.length; i2++) {\n const tagObj = arr[i2];\n const tagName = propName(tagObj);\n if (tagName === void 0) continue;\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName;\n else newJPath = `${jPath}.${tagName}`;\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr2 = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\";\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr2}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n xmlStr += indentation + options.indentBy + tagValue + indentation;\n } else {\n xmlStr += tagValue;\n }\n xmlStr += `</${tagName}>`;\n }\n isPreviousElementTag = true;\n }\n return xmlStr;\n }\n function propName(obj) {\n const keys = Object.keys(obj);\n for (let i2 = 0; i2 < keys.length; i2++) {\n const key = keys[i2];\n if (!obj.hasOwnProperty(key)) continue;\n if (key !== \":@\") return key;\n }\n }\n function attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n if (!attrMap.hasOwnProperty(attr)) continue;\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n }\n function isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n }\n function replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i2 = 0; i2 < options.entities.length; i2++) {\n const entity = options.entities[i2];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n }\n orderedJs2Xml = toXml;\n return orderedJs2Xml;\n}\nvar json2xml;\nvar hasRequiredJson2xml;\nfunction requireJson2xml() {\n if (hasRequiredJson2xml) return json2xml;\n hasRequiredJson2xml = 1;\n const buildFromOrderedJs = requireOrderedJs2Xml();\n const getIgnoreAttributesFn = requireIgnoreAttributes();\n const defaultOptions = {\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: \" \",\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a2) {\n return a2;\n },\n attributeValueProcessor: function(attrName, a2) {\n return a2;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },\n //it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n { regex: new RegExp(\"'\", \"g\"), val: \"&apos;\" },\n { regex: new RegExp('\"', \"g\"), val: \"&quot;\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n };\n function Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n this.isAttribute = function() {\n return false;\n };\n } else {\n this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n this.processTextOrObjNode = processTextOrObjNode;\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = \">\\n\";\n this.newLine = \"\\n\";\n } else {\n this.indentate = function() {\n return \"\";\n };\n this.tagEndChar = \">\";\n this.newLine = \"\";\n }\n }\n Builder.prototype.build = function(jObj) {\n if (this.options.preserveOrder) {\n return buildFromOrderedJs(jObj, this.options);\n } else {\n if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) {\n jObj = {\n [this.options.arrayNodeName]: jObj\n };\n }\n return this.j2x(jObj, 0, []).val;\n }\n };\n Builder.prototype.j2x = function(jObj, level, ajPath) {\n let attrStr = \"\";\n let val = \"\";\n const jPath = ajPath.join(\".\");\n for (let key in jObj) {\n if (!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n if (typeof jObj[key] === \"undefined\") {\n if (this.isAttribute(key)) {\n val += \"\";\n }\n } else if (jObj[key] === null) {\n if (this.isAttribute(key)) {\n val += \"\";\n } else if (key[0] === \"?\") {\n val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n } else {\n val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n }\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, \"\", level);\n } else if (typeof jObj[key] !== \"object\") {\n const attr = this.isAttribute(key);\n if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n attrStr += this.buildAttrPairStr(attr, \"\" + jObj[key]);\n } else if (!attr) {\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, \"\" + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, \"\", level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n let listTagAttr = \"\";\n for (let j2 = 0; j2 < arrLen; j2++) {\n const item = jObj[key][j2];\n if (typeof item === \"undefined\") ;\n else if (item === null) {\n if (key[0] === \"?\") val += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n else val += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n } else if (typeof item === \"object\") {\n if (this.options.oneListGroup) {\n const result = this.j2x(item, level + 1, ajPath.concat(key));\n listTagVal += result.val;\n if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n listTagAttr += result.attrStr;\n }\n } else {\n listTagVal += this.processTextOrObjNode(item, key, level, ajPath);\n }\n } else {\n if (this.options.oneListGroup) {\n let textValue = this.options.tagValueProcessor(key, item);\n textValue = this.replaceEntitiesValue(textValue);\n listTagVal += textValue;\n } else {\n listTagVal += this.buildTextValNode(item, key, \"\", level);\n }\n }\n }\n if (this.options.oneListGroup) {\n listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n }\n val += listTagVal;\n } else {\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j2 = 0; j2 < L; j2++) {\n attrStr += this.buildAttrPairStr(Ks[j2], \"\" + jObj[key][Ks[j2]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level, ajPath);\n }\n }\n }\n return { attrStr, val };\n };\n Builder.prototype.buildAttrPairStr = function(attrName, val) {\n val = this.options.attributeValueProcessor(attrName, \"\" + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return \" \" + attrName;\n } else return \" \" + attrName + '=\"' + val + '\"';\n };\n function processTextOrObjNode(object, key, level, ajPath) {\n const result = this.j2x(object, level + 1, ajPath.concat(key));\n if (object[this.options.textNodeName] !== void 0 && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n }\n Builder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if (val === \"\") {\n if (key[0] === \"?\") return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n else {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n } else {\n let tagEndExp = \"</\" + key + this.tagEndChar;\n let piClosingChar = \"\";\n if (key[0] === \"?\") {\n piClosingChar = \"?\";\n tagEndExp = \"\";\n }\n if ((attrStr || attrStr === \"\") && val.indexOf(\"<\") === -1) {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + \">\" + val + tagEndExp;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + this.tagEndChar + val + this.indentate(level) + tagEndExp;\n }\n }\n };\n Builder.prototype.closeTag = function(key) {\n let closeTag = \"\";\n if (this.options.unpairedTags.indexOf(key) !== -1) {\n if (!this.options.suppressUnpairedNode) closeTag = \"/\";\n } else if (this.options.suppressEmptyNode) {\n closeTag = \"/\";\n } else {\n closeTag = `></${key}`;\n }\n return closeTag;\n };\n Builder.prototype.buildTextValNode = function(val, key, attrStr, level) {\n if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n return this.indentate(level) + `<![CDATA[${val}]]>` + this.newLine;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `<!--${val}-->` + this.newLine;\n } else if (key[0] === \"?\") {\n return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n } else {\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n if (textValue === \"\") {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + \">\" + textValue + \"</\" + key + this.tagEndChar;\n }\n }\n };\n Builder.prototype.replaceEntitiesValue = function(textValue) {\n if (textValue && textValue.length > 0 && this.options.processEntities) {\n for (let i2 = 0; i2 < this.options.entities.length; i2++) {\n const entity = this.options.entities[i2];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n };\n function indentate(level) {\n return this.options.indentBy.repeat(level);\n }\n function isAttribute(name) {\n if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n return name.substr(this.attrPrefixLen);\n } else {\n return false;\n }\n }\n json2xml = Builder;\n return json2xml;\n}\nvar fxp;\nvar hasRequiredFxp;\nfunction requireFxp() {\n if (hasRequiredFxp) return fxp;\n hasRequiredFxp = 1;\n const validator2 = requireValidator();\n const XMLParser = requireXMLParser();\n const XMLBuilder = requireJson2xml();\n fxp = {\n XMLParser,\n XMLValidator: validator2,\n XMLBuilder\n };\n return fxp;\n}\nvar fxpExports = requireFxp();\nfunction isSvg(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n }\n string = string.trim();\n if (string.length === 0) {\n return false;\n }\n if (fxpExports.XMLValidator.validate(string) !== true) {\n return false;\n }\n let jsonObject;\n const parser = new fxpExports.XMLParser();\n try {\n jsonObject = parser.parse(string);\n } catch {\n return false;\n }\n if (!jsonObject) {\n return false;\n }\n if (!Object.keys(jsonObject).some((x) => x.toLowerCase() === \"svg\")) {\n return false;\n }\n return true;\n}\nclass View {\n _view;\n constructor(view) {\n isValidView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n get loadChildViews() {\n return this._view.loadChildViews;\n }\n}\nconst isValidView = function(view) {\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n if (\"caption\" in view && typeof view.caption !== \"string\") {\n throw new Error(\"View caption must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (\"order\" in view && typeof view.order !== \"number\") {\n throw new Error(\"View order must be a number\");\n }\n if (view.columns) {\n view.columns.forEach((column) => {\n if (!(column instanceof Column)) {\n throw new Error(\"View columns must be an array of Column. Invalid column found\");\n }\n });\n }\n if (view.emptyView && typeof view.emptyView !== \"function\") {\n throw new Error(\"View emptyView must be a function\");\n }\n if (view.parent && typeof view.parent !== \"string\") {\n throw new Error(\"View parent must be a string\");\n }\n if (\"sticky\" in view && typeof view.sticky !== \"boolean\") {\n throw new Error(\"View sticky must be a boolean\");\n }\n if (\"expanded\" in view && typeof view.expanded !== \"boolean\") {\n throw new Error(\"View expanded must be a boolean\");\n }\n if (view.defaultSortKey && typeof view.defaultSortKey !== \"string\") {\n throw new Error(\"View defaultSortKey must be a string\");\n }\n if (view.loadChildViews && typeof view.loadChildViews !== \"function\") {\n throw new Error(\"View loadChildViews must be a function\");\n }\n return true;\n};\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const t2 = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t2[name] = index;\n src[index] = value;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t2.NUMERICIDENTIFIER]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t2.NUMERICIDENTIFIERLOOSE]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t2.BUILDIDENTIFIER]}(?:\\\\.${src[t2.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`);\n createToken(\"FULL\", `^${src[t2.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t2.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t2.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t2.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t2.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t2.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t2.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t2.GTLT]}\\\\s*(${src[t2.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t2.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t2.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t: t2 } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m2 = version.trim().match(options.loose ? re2[t2.LOOSE] : re2[t2.FULL]);\n if (!m2) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m2[1];\n this.minor = +m2[2];\n this.patch = +m2[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m2[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m2[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m2[5] ? m2[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i2 = 0;\n do {\n const a2 = this.prerelease[i2];\n const b2 = other.prerelease[i2];\n debug(\"prerelease compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i2 = 0;\n do {\n const a2 = this.build[i2];\n const b2 = other.build[i2];\n debug(\"build compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i2 = this.prerelease.length;\n while (--i2 >= 0) {\n if (typeof this.prerelease[i2] === \"number\") {\n this.prerelease[i2]++;\n i2 = -2;\n }\n }\n if (i2 === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, event) {\n this.bus.emit(name, event);\n }\n}\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h2) => h2 !== handler)\n );\n }\n emit(name, event) {\n (this.handlers.get(name) || []).forEach((h2) => {\n try {\n h2(event);\n } catch (e2) {\n console.error(\"could not invoke event listener\", e2);\n }\n });\n }\n}\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, event) {\n getBus().emit(name, event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\n}\nconst addNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n};\nconst removeNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n};\nconst getNewFileMenuEntries = function(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a2, b2) => {\n if (a2.order !== void 0 && b2.order !== void 0 && a2.order !== b2.order) {\n return a2.order - b2.order;\n }\n return a2.displayName.localeCompare(b2.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n};\nexport {\n Column,\n DefaultType,\n q as File,\n FileAction,\n FileListAction,\n FileListFilter,\n F as FileType,\n FilesSortingMode,\n s as Folder,\n Header,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n N as Node,\n t as NodeStatus,\n P as Permission,\n View,\n addNewFileMenuEntry,\n c as davGetClient,\n l as davGetDefaultPropfind,\n m as davGetFavoritesReport,\n n as davGetRecentSearch,\n a as davGetRemoteURL,\n g as davGetRootPath,\n p as davParsePermissions,\n b as davRemoteURL,\n r as davResultToNode,\n d as davRootPath,\n h as defaultDavNamespaces,\n f as defaultDavProperties,\n formatFileSize,\n k as getDavNameSpaces,\n j as getDavProperties,\n e as getFavoriteNodes,\n getFileActions,\n getFileListActions,\n getFileListFilters,\n getFileListHeaders,\n getNavigation,\n getNewFileMenuEntries,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n i as registerDavProperty,\n registerFileAction,\n registerFileListAction,\n registerFileListFilter,\n registerFileListHeaders,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateFilename\n};\n","import '../assets/index-CdLjHZZ_.css';\nimport { isPublicShare } from \"@nextcloud/sharing/public\";\nimport Vue, { defineAsyncComponent, defineComponent } from \"vue\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport { Folder, Permission, davRootPath, FileType, davGetClient, davRemoteURL, validateFilename, InvalidFilenameError, getUniqueName, NewMenuEntryCategory, getNewFileMenuEntries } from \"@nextcloud/files\";\nimport { basename, encodePath } from \"@nextcloud/paths\";\nimport { normalize } from \"path\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport axios, { isCancel } from \"@nextcloud/axios\";\nimport PCancelable from \"p-cancelable\";\nimport PQueue from \"p-queue\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport axiosRetry, { exponentialDelay } from \"axios-retry\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { useHotKey } from \"@nextcloud/vue/dist/Composables/useHotKey.js\";\nimport makeEta from \"simple-eta\";\nimport NcActionButton from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport NcActionCaption from \"@nextcloud/vue/dist/Components/NcActionCaption.js\";\nimport NcActionSeparator from \"@nextcloud/vue/dist/Components/NcActionSeparator.js\";\nimport NcActions from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport NcButton from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport NcIconSvgWrapper from \"@nextcloud/vue/dist/Components/NcIconSvgWrapper.js\";\nimport NcProgressBar from \"@nextcloud/vue/dist/Components/NcProgressBar.js\";\nimport { spawnDialog, showInfo, showWarning } from \"@nextcloud/dialogs\";\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/upload\").detectUser().build();\naxiosRetry(axios, { retries: 0 });\nconst uploadData = async function(url, uploadData2, signal, onUploadProgress = () => {\n}, destinationFile = void 0, headers = {}, retries = 5) {\n let data;\n if (uploadData2 instanceof Blob) {\n data = uploadData2;\n } else {\n data = await uploadData2();\n }\n if (destinationFile) {\n headers.Destination = destinationFile;\n }\n if (!headers[\"Content-Type\"]) {\n headers[\"Content-Type\"] = \"application/octet-stream\";\n }\n return await axios.request({\n method: \"PUT\",\n url,\n data,\n signal,\n onUploadProgress,\n headers,\n \"axios-retry\": {\n retries,\n retryDelay: (retryCount, error) => exponentialDelay(retryCount, error, 1e3)\n }\n });\n};\nconst getChunk = function(file, start, length) {\n if (start === 0 && file.size <= length) {\n return Promise.resolve(new Blob([file], { type: file.type || \"application/octet-stream\" }));\n }\n return Promise.resolve(new Blob([file.slice(start, start + length)], { type: \"application/octet-stream\" }));\n};\nconst initChunkWorkspace = async function(destinationFile = void 0, retries = 5) {\n const chunksWorkspace = generateRemoteUrl(`dav/uploads/${getCurrentUser()?.uid}`);\n const hash = [...Array(16)].map(() => Math.floor(Math.random() * 16).toString(16)).join(\"\");\n const tempWorkspace = `web-file-upload-${hash}`;\n const url = `${chunksWorkspace}/${tempWorkspace}`;\n const headers = destinationFile ? { Destination: destinationFile } : void 0;\n await axios.request({\n method: \"MKCOL\",\n url,\n headers,\n \"axios-retry\": {\n retries,\n retryDelay: (retryCount, error) => exponentialDelay(retryCount, error, 1e3)\n }\n });\n logger.debug(\"Created temporary upload workspace\", { url });\n return url;\n};\nconst getMaxChunksSize = function(fileSize = void 0) {\n const maxChunkSize = window.OC?.appConfig?.files?.max_chunk_size;\n if (maxChunkSize <= 0) {\n return 0;\n }\n if (!Number(maxChunkSize)) {\n return 10 * 1024 * 1024;\n }\n const minimumChunkSize = Math.max(Number(maxChunkSize), 5 * 1024 * 1024);\n if (fileSize === void 0) {\n return minimumChunkSize;\n }\n return Math.max(minimumChunkSize, Math.ceil(fileSize / 1e4));\n};\nvar Status$1 = /* @__PURE__ */ ((Status2) => {\n Status2[Status2[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n Status2[Status2[\"UPLOADING\"] = 1] = \"UPLOADING\";\n Status2[Status2[\"ASSEMBLING\"] = 2] = \"ASSEMBLING\";\n Status2[Status2[\"FINISHED\"] = 3] = \"FINISHED\";\n Status2[Status2[\"CANCELLED\"] = 4] = \"CANCELLED\";\n Status2[Status2[\"FAILED\"] = 5] = \"FAILED\";\n return Status2;\n})(Status$1 || {});\nclass Upload {\n _source;\n _file;\n _isChunked;\n _chunks;\n _size;\n _uploaded = 0;\n _startTime = 0;\n _status = 0;\n _controller;\n _response = null;\n constructor(source, chunked = false, size, file) {\n const chunks = Math.min(getMaxChunksSize() > 0 ? Math.ceil(size / getMaxChunksSize()) : 1, 1e4);\n this._source = source;\n this._isChunked = chunked && getMaxChunksSize() > 0 && chunks > 1;\n this._chunks = this._isChunked ? chunks : 1;\n this._size = size;\n this._file = file;\n this._controller = new AbortController();\n }\n get source() {\n return this._source;\n }\n get file() {\n return this._file;\n }\n get isChunked() {\n return this._isChunked;\n }\n get chunks() {\n return this._chunks;\n }\n get size() {\n return this._size;\n }\n get startTime() {\n return this._startTime;\n }\n set response(response) {\n this._response = response;\n }\n get response() {\n return this._response;\n }\n get uploaded() {\n return this._uploaded;\n }\n /**\n * Update the uploaded bytes of this upload\n */\n set uploaded(length) {\n if (length >= this._size) {\n this._status = this._isChunked ? 2 : 3;\n this._uploaded = this._size;\n return;\n }\n this._status = 1;\n this._uploaded = length;\n if (this._startTime === 0) {\n this._startTime = (/* @__PURE__ */ new Date()).getTime();\n }\n }\n get status() {\n return this._status;\n }\n /**\n * Update this upload status\n */\n set status(status) {\n this._status = status;\n }\n /**\n * Returns the axios cancel token source\n */\n get signal() {\n return this._controller.signal;\n }\n /**\n * Cancel any ongoing requests linked to this upload\n */\n cancel() {\n this._controller.abort();\n this._status = 4;\n }\n}\nconst isFileSystemDirectoryEntry = (o) => \"FileSystemDirectoryEntry\" in window && o instanceof FileSystemDirectoryEntry;\nconst isFileSystemFileEntry = (o) => \"FileSystemFileEntry\" in window && o instanceof FileSystemFileEntry;\nconst isFileSystemEntry = (o) => \"FileSystemEntry\" in window && o instanceof FileSystemEntry;\nclass Directory extends File {\n _originalName;\n _path;\n _children;\n constructor(path) {\n super([], basename(path), { type: \"httpd/unix-directory\", lastModified: 0 });\n this._children = /* @__PURE__ */ new Map();\n this._originalName = basename(path);\n this._path = path;\n }\n get size() {\n return this.children.reduce((sum, file) => sum + file.size, 0);\n }\n get lastModified() {\n return this.children.reduce((latest, file) => Math.max(latest, file.lastModified), 0);\n }\n // We need this to keep track of renamed files\n get originalName() {\n return this._originalName;\n }\n get children() {\n return Array.from(this._children.values());\n }\n get webkitRelativePath() {\n return this._path;\n }\n getChild(name) {\n return this._children.get(name) ?? null;\n }\n /**\n * Add multiple children at once\n * @param files The files to add\n */\n async addChildren(files) {\n for (const file of files) {\n await this.addChild(file);\n }\n }\n /**\n * Add a child to the directory.\n * If it is a nested child the parents will be created if not already exist.\n * @param file The child to add\n */\n async addChild(file) {\n const rootPath = this._path && `${this._path}/`;\n if (isFileSystemFileEntry(file)) {\n file = await new Promise((resolve, reject) => file.file(resolve, reject));\n } else if (isFileSystemDirectoryEntry(file)) {\n const reader = file.createReader();\n const entries = await new Promise((resolve, reject) => reader.readEntries(resolve, reject));\n const child = new Directory(`${rootPath}${file.name}`);\n await child.addChildren(entries);\n this._children.set(file.name, child);\n return;\n }\n file = file;\n const filePath = file.webkitRelativePath ?? file.name;\n if (!filePath.includes(\"/\")) {\n this._children.set(file.name, file);\n } else {\n if (!filePath.startsWith(this._path)) {\n throw new Error(`File ${filePath} is not a child of ${this._path}`);\n }\n const relPath = filePath.slice(rootPath.length);\n const name = basename(relPath);\n if (name === relPath) {\n this._children.set(name, file);\n } else {\n const base = relPath.slice(0, relPath.indexOf(\"/\"));\n if (this._children.has(base)) {\n await this._children.get(base).addChild(file);\n } else {\n const child = new Directory(`${rootPath}${base}`);\n await child.addChild(file);\n this._children.set(base, child);\n }\n }\n }\n }\n}\nconst gtBuilder = getGettextBuilder().detectLocale();\n[{ \"locale\": \"af\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"af\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: af\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ar\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"abusaud, 2024\", \"Language-Team\": \"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ar\", \"Plural-Forms\": \"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nAli <alimahwer@yahoo.com>, 2024\\nabusaud, 2024\\n\" }, \"msgstr\": [\"Last-Translator: abusaud, 2024\\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ar\\nPlural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" هو اسم ممنوع لملف أو مجلد.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" هو نوع ممنوع أن يكون لملف.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" هو غير مسموح به في اسم ملف أو مجلد.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} ملف متعارض\", \"{count} ملف متعارض\", \"{count} ملفان متعارضان\", \"{count} ملف متعارض\", \"{count} ملفات متعارضة\", \"{count} ملفات متعارضة\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} ملف متعارض في {dirname}\", \"{count} ملف متعارض في {dirname}\", \"{count} ملفان متعارضان في {dirname}\", \"{count} ملف متعارض في {dirname}\", \"{count} ملفات متعارضة في {dirname}\", \"{count} ملفات متعارضة في {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} ثانية متبقية\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} متبقية\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"بضع ثوانٍ متبقية\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"إلغاء\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"إلغِ العملية بالكامل\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"إلغاء عمليات رفع الملفات\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"إستمر\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"إنشاء جديد\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"تقدير الوقت المتبقي\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"الإصدار الحالي\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['غير مسموح ان ينتهي اسم الملف بـ \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"إذا اخترت الاحتفاظ بالنسختين فسيتم إلحاق رقم عداد آخر اسم الملف الوارد.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"اسم ملف غير صحيح\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"تاريخ آخر تعديل غير معروف\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"جديد\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"اسم ملف جديد\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"نسخة جديدة\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"مُجمَّد\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"معاينة الصورة\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"تغيير التسمية\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"حدِّد كل صناديق الخيارات\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"حدِّد كل الملفات الموجودة\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"حدِّد كل الملفات الجديدة\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"تخطِّي\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"حجم غير معلوم\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"رفع الملفات\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"رفع ملفات\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"رفع مجلدات\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"الرفع من جهاز \"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"تمّ إلغاء عملية رفع الملفات\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"تمّ تجاوز الرفع\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['رفع \"{folder}\" تمّ تجاوزه'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"تقدُّم الرفع \"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"عند تحديد مجلد وارد، ستتم كتابة المحتوى في المجلد الموجود و سيتم تنفيذ حل التعارض بشكل تعاوُدي.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"أيُّ الملفات ترغب في الإبقاء عليها؟\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"يمكنك إمّا تغيير اسم الملف، أو تجاوزه، أو إلغاء العملية برُمَّتها.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار.\"] } } } } }, { \"locale\": \"ast\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"enolp <enolp@softastur.org>, 2023\", \"Language-Team\": \"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ast\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nenolp <enolp@softastur.org>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: enolp <enolp@softastur.org>, 2023\\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ast\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} ficheru en coflictu\", \"{count} ficheros en coflictu\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} ficheru en coflictu en {dirname}\", \"{count} ficheros en coflictu en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Queden {seconds} segundos\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Tiempu que queda: {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"queden unos segundos\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Encaboxar les xubes\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Siguir\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando'l tiempu que falta\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión esistente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"La data de la última modificación ye desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevu\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versión nueva\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en posa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar la imaxe\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Marcar toles caxelles\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleicionar tolos ficheros esistentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleicionar tolos ficheros nuevos\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Saltar esti ficheru\", \"Saltar {count} ficheros\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamañu desconocíu\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Encaboxóse la xuba\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Xubir ficheros\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Xuba en cursu\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué ficheros quies caltener?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Tienes de seleicionar polo menos una versión de cada ficheru pa siguir.\"] } } } } }, { \"locale\": \"az\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Rashad Aliyev <microphprashad@gmail.com>, 2023\", \"Language-Team\": \"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"az\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nRashad Aliyev <microphprashad@gmail.com>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: az\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saniyə qalıb\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} qalıb\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"bir neçə saniyə qalıb\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Əlavə et\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Yükləməni imtina et\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Təxmini qalan vaxt\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauzadadır\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Faylları yüklə\"] } } } } }, { \"locale\": \"be\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"be\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: be\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"bg\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"bg_BG\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bg_BG\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"bn_BD\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"bn_BD\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bn_BD\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"br\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"br\", \"Plural-Forms\": \"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: br\\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"bs\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"bs\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: bs\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ca\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\", \"Language-Team\": \"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ca\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nMarc Riera <marcriera@softcatala.org>, 2022\\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ca\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Queden {seconds} segons\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"Queden {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Queden uns segons\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Afegeix\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancel·la les pujades\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"S'està estimant el temps restant\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"En pausa\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Puja els fitxers\"] } } } } }, { \"locale\": \"cs\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Pavel Borecki <pavel.borecki@gmail.com>, 2024\", \"Language-Team\": \"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"cs_CZ\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\\nMartin Hankovec, 2024\\nAppukonrad <appukonrad@gmail.com>, 2024\\nPavel Borecki <pavel.borecki@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2024\\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cs_CZ\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ není povoleno použít jako název souboru či složky.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}“ není povoleného typu souboru.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}“ není povoleno použít v rámci názvu souboru či složky.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} kolize souborů\", \"{count} kolize souborů\", \"{count} kolizí souborů\", \"{count} kolize souborů\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} kolize souboru v {dirname}\", \"{count} kolize souboru v {dirname}\", \"{count} kolizí souborů v {dirname}\", \"{count} kolize souboru v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"zbývá {seconds}\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"zbývá {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"zbývá několik sekund\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Zrušit\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušit celou operaci\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Zrušit nahrávání\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovat\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Vytvořit nový\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"odhaduje se zbývající čas\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existující verze\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Názvy souborů nemohou končit na „{segment}“.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Pokud vyberete obě verze, příchozí soubor bude mít ke jménu přidánu číslici.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Neplatný název souboru\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Neznámé datum poslední úpravy\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nové\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nový název souboru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nová verze\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pozastaveno\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Náhled obrázku\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Přejmenovat\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Označit všechny zaškrtávací kolonky\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrat veškeré stávající soubory\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrat veškeré nové soubory\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Přeskočit\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Přeskočit tento soubor\", \"Přeskočit {count} soubory\", \"Přeskočit {count} souborů\", \"Přeskočit {count} soubory\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznámá velikost\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Nahrát\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Nahrát soubory\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Nahrát složky\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Nahrát ze zařízení\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nahrávání bylo zrušeno\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nahrání bylo přeskočeno\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Nahrání „{folder}“ bylo přeskočeno\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Postup v nahrávání\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Když je vybrána příchozí složka, obsah je zapsán do existující složky a je provedeno rekurzivní řešení kolizí.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Které soubory si přejete ponechat?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Soubor je možné buď přejmenovat, přeskočit nebo celou operaci zrušit.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru.\"] } } } } }, { \"locale\": \"cy_GB\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"cy_GB\", \"Plural-Forms\": \"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: cy_GB\\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"da\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Martin Bonde <Martin@maboni.dk>, 2024\", \"Language-Team\": \"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"da\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nRasmus Rosendahl-Kaa, 2024\\nMartin Bonde <Martin@maboni.dk>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Martin Bonde <Martin@maboni.dk>, 2024\\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: da\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er et forbudt fil- eller mappenavn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er en forbudt filtype.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ikke tilladt i et fil- eller mappenavn.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fil konflikt\", \"{count} filer i konflikt\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fil konflikt i {dirname}\", \"{count} filer i konflikt i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{sekunder} sekunder tilbage\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tilbage\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"et par sekunder tilbage\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuller\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annuller hele handlingen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annuller uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsæt\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Opret ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimering af resterende tid\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Eksisterende version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnavne må ikke slutte med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ugyldigt filnavn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Sidste modifikationsdato ukendt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nyt filnavn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauset\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forhåndsvisning af billede\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Omdøb\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vælg alle felter\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vælg alle eksisterende filer\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vælg alle nye filer\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Spring over\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Spring denne fil over\", \"Spring {count} filer over\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukendt størrelse\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Upload mapper\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Upload fra enhed\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Upload er blevet annulleret\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload er blevet sprunget over\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload af \"{folder}\" er blevet sprunget over'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Upload fremskridt\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Når en indkommende mappe er valgt, vil dens indhold blive skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvilke filer ønsker du at beholde?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan enten omdøbe filen, springe denne fil over eller annullere hele handlingen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du skal vælge mindst én version af hver fil for at fortsætte.\"] } } } } }, { \"locale\": \"de\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Andy Scherzinger <info@andy-scherzinger.de>, 2024\", \"Language-Team\": \"German (https://app.transifex.com/nextcloud/teams/64236/de/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"de\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMario Siegmann <mario_siegmann@web.de>, 2024\\nMartin Wilichowski, 2024\\nAndy Scherzinger <info@andy-scherzinger.de>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Andy Scherzinger <info@andy-scherzinger.de>, 2024\\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ist ein verbotener Datei- oder Ordnername.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ist ein verbotener Dateityp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ist in einem Datei- oder Ordnernamen nicht zulässig.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} Sekunden verbleiben\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} verbleibend\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"ein paar Sekunden verbleiben\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Abbrechen\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hochladen abbrechen\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsetzen\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Neu erstellen\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Geschätzte verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dateinamen dürfen nicht mit \"{segment}\" enden.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn du beide Versionen auswählst, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ungültiger Dateiname\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Neuer Dateiname\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Pausiert\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vorschaubild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Umbenennen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle neuen Dateien auswählen\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Überspringen\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Diese Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Unbekannte Größe\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Hochladen\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dateien hochladen\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ordner hochladen\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Vom Gerät hochladen\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Das Hochladen wurde abgebrochen\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Das Hochladen wurde übersprungen\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Das Hochladen von \"{folder}\" wurde übersprungen'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien möchtest du behalten?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kannst die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { \"locale\": \"de_DE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Mark Ziegler <mark.ziegler@rakekniven.de>, 2024\", \"Language-Team\": \"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"de_DE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMario Siegmann <mario_siegmann@web.de>, 2024\\nMark Ziegler <mark.ziegler@rakekniven.de>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Mark Ziegler <mark.ziegler@rakekniven.de>, 2024\\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: de_DE\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ist ein verbotener Datei- oder Ordnername.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ist ein verbotener Dateityp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ist in einem Datei- oder Ordnernamen nicht zulässig.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} Sekunden verbleiben\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} verbleibend\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"ein paar Sekunden verbleiben\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Abbrechen\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hochladen abbrechen\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsetzen\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Neu erstellen\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Berechne verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dateinamen dürfen nicht mit \"{segment}\" enden.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn Sie beide Versionen auswählen, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ungültiger Dateiname\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Neuer Dateiname\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Pausiert\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vorschaubild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Umbenennen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle neuen Dateien auswählen\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Überspringen\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Unbekannte Größe\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Hochladen\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dateien hochladen\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ordner hochladen\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Vom Gerät hochladen\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Das Hochladen wurde abgebrochen\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Das Hochladen wurde übersprungen\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Das Hochladen von \"{folder}\" wurde übersprungen'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien möchten Sie behalten?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Sie können die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { \"locale\": \"el\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Nik Pap, 2022\", \"Language-Team\": \"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"el\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nNik Pap, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Nik Pap, 2022\\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: el\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"απομένουν {seconds} δευτερόλεπτα\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"απομένουν {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"απομένουν λίγα δευτερόλεπτα\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Προσθήκη\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Ακύρωση μεταφορτώσεων\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"εκτίμηση του χρόνου που απομένει\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"σε παύση\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Μεταφόρτωση αρχείων\"] } } } } }, { \"locale\": \"en_GB\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Andi Chandler <andi@gowling.com>, 2024\", \"Language-Team\": \"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"en_GB\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nAndi Chandler <andi@gowling.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Andi Chandler <andi@gowling.com>, 2024\\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: en_GB\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" is a forbidden file or folder name.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" is a forbidden file type.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" is not allowed inside a file or folder name.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} file conflict\", \"{count} files conflict\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} file conflict in {dirname}\", \"{count} file conflicts in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} seconds left\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} left\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"a few seconds left\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancel\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancel the entire operation\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancel uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continue\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Create new\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimating time left\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existing version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filenames must not end with \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"If you select both versions, the incoming file will have a number added to its name.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Invalid filename\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Last modified date unknown\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"New\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"New filename\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"New version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"paused\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Preview image\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Rename\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Select all checkboxes\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Select all existing files\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Select all new files\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Skip\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Skip this file\", \"Skip {count} files\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Unknown size\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload files\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Upload folders\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Upload from device\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Upload has been cancelled\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload has been skipped\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload of \"{folder}\" has been skipped'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Upload progress\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"When an incoming folder is selected, any conflicting files within it will also be overwritten.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Which files do you want to keep?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"You can either rename the file, skip this file or cancel the whole operation.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"You need to select at least one version of each file to continue.\"] } } } } }, { \"locale\": \"eo\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"eo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eo\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Julio C. Ortega, 2024\", \"Language-Team\": \"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nFranciscoFJ <dev-ooo@satel-sa.com>, 2024\\nJulio C. Ortega, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Julio C. Ortega, 2024\\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} conflictos de archivo\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflicto de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan unos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, el archivo entrante le será agregado un número a su nombre.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Última fecha de modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos los archivos nuevos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Saltar\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Saltar este archivo\", \"Saltar {count} archivos\", \"Saltar {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Subir carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Subir desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"La subida ha sido cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la subida\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, cualquier de los archivos en conflictos también serán sobre-escritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido es escrito en la carpeta existente y se realizará una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { \"locale\": \"es_419\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"ALEJANDRO CASTRO, 2022\", \"Language-Team\": \"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_419\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nALEJANDRO CASTRO, 2022\\n\" }, \"msgstr\": [\"Last-Translator: ALEJANDRO CASTRO, 2022\\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_419\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{tiempo} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan pocos segundos\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"agregar\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] } } } } }, { \"locale\": \"es_AR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Matías Campo Hoet <matiascampo@gmail.com>, 2024\", \"Language-Team\": \"Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_AR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMatías Campo Hoet <matiascampo@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Matías Campo Hoet <matiascampo@gmail.com>, 2024\\nLanguage-Team: Spanish (Argentina) (https://app.transifex.com/nextcloud/teams/64236/es_AR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_AR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} conflictos de archivo\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflicto de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan unos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Fecha de última modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vista previa de imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos los archivos nuevos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir este archivo\", \"Omitir {count} archivos\", \"Omitir {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Cargar archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Cargar carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Cargar desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Carga cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la carga\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también serán sobreescritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Qué archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { \"locale\": \"es_CL\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_CL\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CL\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_CO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_CO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CO\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_CR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_CR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_CR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_DO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_DO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_DO\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_EC\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_EC\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_EC\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_GT\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_GT\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_GT\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_HN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_HN\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_HN\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_MX\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Jehu Marcos Herrera Puentes, 2024\", \"Language-Team\": \"Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_MX\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nJehu Marcos Herrera Puentes, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Jehu Marcos Herrera Puentes, 2024\\nLanguage-Team: Spanish (Mexico) (https://app.transifex.com/nextcloud/teams/64236/es_MX/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_MX\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿Cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} archivos en conflicto\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} archivo en conflicto en {dirname}\", \"{count} archivos en conflicto en {dirname}\", \"{count} archivo en conflicto en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{tiempo} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan pocos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tiempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Fecha de última modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos los archivos nuevos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir este archivo\", \"Omitir {count} archivos\", \"Omitir {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Subir carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Subir desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"La subida ha sido cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la subida\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también será sobrescrito.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Cuáles archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { \"locale\": \"es_NI\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_NI\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_NI\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PA\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PA\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PA\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PE\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PE\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PR\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_PY\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_PY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_PY\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_SV\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_SV\", \"Plural-Forms\": \"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_SV\\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"es_UY\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"es_UY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: es_UY\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"et_EE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Taavo Roos, 2023\", \"Language-Team\": \"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"et_EE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nMait R, 2022\\nTaavo Roos, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Taavo Roos, 2023\\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: et_EE\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} jäänud sekundid\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} aega jäänud\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"jäänud mõni sekund\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Lisa\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Tühista üleslaadimine\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"hinnanguline järelejäänud aeg\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausil\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Lae failid üles\"] } } } } }, { \"locale\": \"eu\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\", \"Language-Team\": \"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"eu\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: eu\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundo geratzen dira\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} geratzen da\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"segundo batzuk geratzen dira\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Gehitu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Ezeztatu igoerak\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"kalkulatutako geratzen den denbora\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"geldituta\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Igo fitxategiak\"] } } } } }, { \"locale\": \"fa\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Fatemeh Komeily, 2023\", \"Language-Team\": \"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fa\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nFatemeh Komeily, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Fatemeh Komeily, 2023\\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fa\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"ثانیه های باقی مانده\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"باقی مانده\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"چند ثانیه مانده\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"اضافه کردن\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"کنسل کردن فایل های اپلود شده\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"تخمین زمان باقی مانده\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"مکث کردن\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"بارگذاری فایل ها\"] } } } } }, { \"locale\": \"fi\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"teemue, 2024\", \"Language-Team\": \"Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fi_FI\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nJiri Grönroos <jiri.gronroos@iki.fi>, 2024\\nthingumy, 2024\\nteemue, 2024\\n\" }, \"msgstr\": [\"Last-Translator: teemue, 2024\\nLanguage-Team: Finnish (Finland) (https://app.transifex.com/nextcloud/teams/64236/fi_FI/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fi_FI\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" on kielletty tiedoston tai hakemiston nimi.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" on kielletty tiedostotyyppi.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ei ole sallittu tiedoston tai hakemiston nimessä.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} tiedoston ristiriita\", \"{count} tiedoston ristiriita\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} tiedoston ristiriita kansiossa {dirname}\", \"{count} tiedoston ristiriita kansiossa {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekuntia jäljellä\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} jäljellä\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"muutama sekunti jäljellä\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Peruuta\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Peruuta koko toimenpide\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Peruuta lähetykset\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Jatka\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Luo uusi\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"arvioidaan jäljellä olevaa aikaa\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Olemassa oleva versio\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Tiedoston nimi ei saa päättyä \"{segment}\"'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jos valitset molemmat versiot, saapuvan tiedoston nimeen lisätään numero.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Kielletty/väärä tiedoston nimi\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Viimeisin muokkauspäivä on tuntematon\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Uusi\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Uusi tiedostonimi\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Uusi versio\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"keskeytetty\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Esikatsele kuva\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Nimeä uudelleen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Valitse kaikki valintaruudut\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Valitse kaikki olemassa olevat tiedostot\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Valitse kaikki uudet tiedostot\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Ohita\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ohita tämä tiedosto\", \"Ohita {count} tiedostoa\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tuntematon koko\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Lähetä\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Lähetä tiedostoja\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Lähetä kansioita\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Lähetä laitteelta\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Lähetys on peruttu\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Lähetys on ohitettu\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Hakemiston \"{folder}\" lähetys on ohitettu'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Lähetyksen edistyminen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Valittuasi saapuvien kansion, kaikki ristiriitaiset tiedostot kansiossa ylikirjoitetaan.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Valittuasi saapuvien kansion, sisältö kirjoitetaan olemassaolevaan kansioon ja suoritetaan rekursiivinen ristiriitojen poisto.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Mitkä tiedostot haluat säilyttää?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Voit joko nimetä tiedoston uudelleen, ohittaa tämän tiedoston tai peruuttaa koko toiminnon.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Sinun täytyy valita vähintään yksi versio jokaisesta tiedostosta jatkaaksesi.\"] } } } } }, { \"locale\": \"fo\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fo\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"fr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Arnaud Cazenave, 2024\", \"Language-Team\": \"French (https://app.transifex.com/nextcloud/teams/64236/fr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"fr\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nBenoit Pruneau, 2024\\njed boulahya, 2024\\nJérôme HERBINET, 2024\\nArnaud Cazenave, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Arnaud Cazenave, 2024\\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: fr\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" est un nom de fichier ou de dossier interdit.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" est un type de fichier interdit.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`\"{segment}\" n'est pas autorisé dans le nom d'un fichier ou d'un dossier.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fichier en conflit\", \"{count} fichiers en conflit\", \"{count} fichiers en conflit\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fichier en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} secondes restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restant\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quelques secondes restantes\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuler\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annuler l'opération entière\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annuler les téléversements\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuer\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Créer un nouveau\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimation du temps restant\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Version existante\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Le nom des fichiers ne doit pas finir par \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si vous sélectionnez les deux versions, le nouveau fichier aura un nombre ajouté à son nom.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nom de fichier invalide\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Date de la dernière modification est inconnue\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nouveau\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nouveau nom de fichier\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nouvelle version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en pause\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Aperçu de l'image\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renommer\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Sélectionner toutes les cases à cocher\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Sélectionner tous les fichiers existants\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Sélectionner tous les nouveaux fichiers\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Ignorer\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ignorer ce fichier\", \"Ignorer {count} fichiers\", \"Ignorer {count} fichiers\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Taille inconnue\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Téléverser\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Téléverser des fichiers\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Téléverser des dossiers\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Téléverser depuis l'appareil\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Le téléversement a été annulé\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Le téléversement a été ignoré\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Le téléversement de \"{folder}\" a été ignoré'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progression du téléversement\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Lorsqu'un dossier entrant est sélectionné, le contenu est ajouté dans le dossier existant et une résolution récursive des conflits est effectuée.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quels fichiers souhaitez-vous conserver ?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Vous pouvez soit renommer le fichier, soit ignorer le fichier soit annuler toute l'opération.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Vous devez sélectionner au moins une version de chaque fichier pour continuer.\"] } } } } }, { \"locale\": \"ga\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Aindriú Mac Giolla Eoin, 2024\", \"Language-Team\": \"Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ga\", \"Plural-Forms\": \"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nAindriú Mac Giolla Eoin, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Aindriú Mac Giolla Eoin, 2024\\nLanguage-Team: Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ga\\nPlural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['Is ainm toirmiscthe comhaid nó fillteáin é \"{segment}\".'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['Is cineál comhaid toirmiscthe é \"{segment}\".'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`Ní cheadaítear \"{segment}\" taobh istigh d'ainm comhaid nó fillteáin.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} coimhlint comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} coimhlint comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} soicind fágtha\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} fágtha\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"cúpla soicind fágtha\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cealaigh\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cealaigh an oibríocht iomlán\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cealaigh uaslódálacha\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Leanúint ar aghaidh\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Cruthaigh nua\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"ag déanamh meastachán ar an am atá fágtha\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Leagan láithreach \"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Níor cheart go gcríochnaíonn comhaid chomhad le \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Má roghnaíonn tú an dá leagan, cuirfear uimhir leis an ainm a thagann isteach.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ainm comhaid neamhbhailí\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dáta modhnaithe is déanaí anaithnid\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nua\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Ainm comhaid nua\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Leagan nua\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"sos\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Íomhá réamhamharc\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Athainmnigh\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Roghnaigh gach ticbhosca\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Roghnaigh gach comhad atá ann cheana féin\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Roghnaigh gach comhad nua\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Scipeáil\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Léim an comhad seo\", \"Léim ar {count} comhad\", \"Léim ar {count} comhad\", \"Léim ar {count} comhad\", \"Léim ar {count} comhad\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Méid anaithnid\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Uaslódáil\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Uaslódáil comhaid\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Uaslódáil fillteáin\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Íosluchtaigh ó ghléas\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Cuireadh an t-uaslódáil ar ceal\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Léiríodh an uaslódáil\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Léiríodh an uaslódáil \"{folder}\".'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Uaslódáil dul chun cinn\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, déanfar aon chomhad contrártha laistigh de a fhorscríobh freisin.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach san fhillteán atá ann cheana agus déantar réiteach coinbhleachta athchúrsach.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Cé na comhaid ar mhaith leat a choinneáil?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Is féidir leat an comhad a athainmniú, scipeáil an comhad seo nó an oibríocht iomlán a chealú.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú chun leanúint ar aghaidh.\"] } } } } }, { \"locale\": \"gd\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"gd\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: gd\\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"gl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2024\", \"Language-Team\": \"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"gl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2024\\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: gl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"«{segment}» é un nome vedado para un ficheiro ou cartafol.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"«{segment}» é un tipo de ficheiro vedado.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"«{segment}» non está permitido dentro dun nome de ficheiro ou cartafol.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflito de ficheiros\", \"{count} conflitos de ficheiros\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflito de ficheiros en {dirname}\", \"{count} conflitos de ficheiros en {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"faltan {seconds} segundos\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"falta {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"faltan uns segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancela toda a operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar envíos\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear un novo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"calculando canto tempo falta\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Os nomes de ficheiros non deben rematar con «{segment}».\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"O nome de ficheiro non é válido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificación descoñecida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nova\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo nome de ficheiro\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"detido\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vista previa da imaxe\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renomear\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Marcar todas as caixas de selección\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccionar todos os ficheiros existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccionar todos os ficheiros novos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omita este ficheiro\", \"Omitir {count} ficheiros\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño descoñecido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Enviar\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar ficheiros\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Enviar cartafoles\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Enviar dende o dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"O envío foi cancelado\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"O envío foi omitido\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"O envío de «{folder}» foi omitido\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso do envío\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, tamén se sobrescribirán os ficheiros en conflito dentro del.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e lévase a cabo unha resolución recursiva de conflitos.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Que ficheiros quere conservar?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Pode cambiar o nome do ficheiro, omitir este ficheiro ou cancelar toda a operación.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Debe seleccionar polo menos unha versión de cada ficheiro para continuar.\"] } } } } }, { \"locale\": \"he\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"he\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: he\\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hi_IN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hi_IN\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hi_IN\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hr\", \"Plural-Forms\": \"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hr\\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hsb\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hsb\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hsb\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"hu\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\", \"Language-Team\": \"Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hu_HU\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nGyuris Gellért <jobel@ujevangelizacio.hu>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\\nLanguage-Team: Hungarian (Hungary) (https://app.transifex.com/nextcloud/teams/64236/hu_HU/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hu_HU\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['Tiltott fájl- vagy mappanév: „{segment}\".'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['Tiltott fájltípus: „{segment}\".'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Nem megengedett egy fájl- vagy mappanévben: „{segment}\".'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}fájlt érintő konfliktus\", \"{count} fájlt érintő konfliktus\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fájlt érintő konfliktus a mappában: {dirname}\", \"{count}fájlt érintő konfliktus a mappában: {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{} másodperc van hátra\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} van hátra\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"pár másodperc van hátra\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Mégse\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Teljes művelet megszakítása\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Feltöltések megszakítása\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Tovább\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Új létrehozása\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"hátralévő idő becslése\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Jelenlegi változat\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Fájlnevek nem végződhetnek erre: „{segment}”.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ha mindkét verziót kiválasztja, a bejövő fájl neve egy számmal egészül ki.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Érvénytelen fájlnév\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Utolsó módosítás dátuma ismeretlen\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Új\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Új fájlnév\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Új verzió\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"szüneteltetve\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Kép előnézete\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Átnevezés\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Minden jelölőnégyzet kijelölése\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Minden jelenlegi fájl kijelölése\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Minden új fájl kijelölése\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Kihagyás\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ezen fájl kihagyása\", \"{count}fájl kihagyása\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ismeretlen méret\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Feltöltés\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fájlok feltöltése\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Mappák feltöltése\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Feltöltés eszközről\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Feltöltés meg lett szakítva\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Feltöltés át lett ugorva\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"„{folder}” feltöltése át lett ugorva\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Feltöltési folyamat\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ha egy bejövő mappa van kiválasztva, a mappában lévő ütköző fájlok is felülírásra kerülnek.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Ha egy bejövő mappa van kiválasztva, a tartalom a meglévő mappába íródik és rekurzív konfliktusfeloldás történik.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Mely fájlokat kívánja megtartani?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Átnevezheti a fájlt, kihagyhatja ezt a fájlt, vagy törölheti az egész műveletet.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"A folytatáshoz minden fájlból legalább egy verziót ki kell választani.\"] } } } } }, { \"locale\": \"hy\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"hy\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: hy\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ia\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ia\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ia\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"id\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Linerly <linerly@proton.me>, 2023\", \"Language-Team\": \"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"id\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\\nEmpty Slot Filler, 2023\\nLinerly <linerly@proton.me>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Linerly <linerly@proton.me>, 2023\\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: id\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} berkas berkonflik\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} berkas berkonflik dalam {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} detik tersisa\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tersisa\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"tinggal sebentar lagi\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Batalkan unggahan\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Lanjutkan\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"memperkirakan waktu yang tersisa\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versi yang ada\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Tanggal perubahan terakhir tidak diketahui\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versi baru\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"dijeda\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Gambar pratinjau\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pilih semua kotak centang\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pilih semua berkas yang ada\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Pilih semua berkas baru\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Lewati {count} berkas\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukuran tidak diketahui\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Unggahan dibatalkan\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Unggah berkas\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Berkas mana yang Anda ingin tetap simpan?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan.\"] } } } } }, { \"locale\": \"ig\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ig\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ig\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"is\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Sveinn í Felli <sv1@fellsnet.is>, 2023\", \"Language-Team\": \"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"is\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nSveinn í Felli <sv1@fellsnet.is>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2023\\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: is\\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} árekstur skráa\", \"{count} árekstrar skráa\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} árekstur skráa í {dirname}\", \"{count} árekstrar skráa í {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekúndur eftir\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} eftir\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"nokkrar sekúndur eftir\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hætta við innsendingar\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Halda áfram\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"áætla tíma sem eftir er\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Fyrirliggjandi útgáfa\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti afrituðu skrárinnar.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Síðasta breytingadagsetning er óþekkt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nýtt\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ný útgáfa\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"í bið\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forskoðun myndar\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Velja gátreiti\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Velja allar fyrirliggjandi skrár\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Velja allar nýjar skrár\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Sleppa þessari skrá\", \"Sleppa {count} skrám\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Óþekkt stærð\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Hætt við innsendingu\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Senda inn skrár\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvaða skrám vilt þú vilt halda eftir?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram.\"] } } } } }, { \"locale\": \"it\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"albanobattistella <albanobattistella@gmail.com>, 2024\", \"Language-Team\": \"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"it\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nFrancesco Sercia, 2024\\nalbanobattistella <albanobattistella@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: albanobattistella <albanobattistella@gmail.com>, 2024\\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: it\\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" è un nome di file o cartella proibito.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\"è un tipo di file proibito.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`\"{segment}\" non è consentito all'interno di un nome di file o cartella.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} file in conflitto\", \"{count} file in conflitto\", \"{count} file in conflitto\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} secondi rimanenti \"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} rimanente\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"alcuni secondi rimanenti\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annulla\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annulla l'intera operazione\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annulla i caricamenti\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continua\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crea nuovo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"calcolo il tempo rimanente\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versione esistente\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['I nomi dei file non devono terminare con \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero \"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome file non valido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Ultima modifica sconosciuta\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuovo\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nuovo nome file\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nuova versione\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Anteprima immagine\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Rinomina\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleziona tutte le caselle\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleziona tutti i file esistenti\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleziona tutti i nuovi file\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Salta\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Salta questo file\", \"Salta {count} file\", \"Salta {count} file\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Dimensione sconosciuta\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Caricamento\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Carica i file\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Carica cartelle\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Carica dal dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Caricamento annullato\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Il caricamento è stato saltato\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Il caricamento di \"{folder}\" è stato saltato'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progresso del caricamento\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Quando si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno verranno sovrascritti.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quali file vuoi mantenere?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"È possibile rinominare il file, ignorarlo o annullare l'intera operazione.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Devi selezionare almeno una versione di ogni file per continuare\"] } } } } }, { \"locale\": \"ja\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"kshimohata, 2024\", \"Language-Team\": \"Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ja_JP\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nkojima.imamura, 2024\\nTakafumi AKAMATSU, 2024\\ndevi, 2024\\nkshimohata, 2024\\n\" }, \"msgstr\": [\"Last-Translator: kshimohata, 2024\\nLanguage-Team: Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ja_JP\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" は禁止されているファイルまたはフォルダ名です。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" は禁止されているファイルタイプです。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['ファイルまたはフォルダ名に \"{segment}\" を含めることはできません。'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} ファイル数の競合\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} で {count} 個のファイルが競合しています\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"残り {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"残り {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"残り数秒\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"キャンセル\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"すべての操作をキャンセルする\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"アップロードをキャンセル\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"続ける\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"新規作成\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"概算残り時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既存バージョン\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['ファイル名の末尾に \"{segment}\" を付けることはできません。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"両方のバージョンを選択した場合、受信ファイルの名前に数字が追加されます。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"無効なファイル名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最終更新日不明\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新規作成\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新しいファイル名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新しいバージョン\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"一時停止中\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"プレビュー画像\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"名前を変更\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"すべて選択\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"すべての既存ファイルを選択\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"すべての新規ファイルを選択\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"スキップ\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} 個のファイルをスキップする\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"サイズ不明\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"アップロード\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"ファイルをアップロード\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"フォルダのアップロード\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"デバイスからのアップロード\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"アップロードはキャンセルされました\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"アップロードがスキップされました\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" のアップロードがスキップされました'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"アップロード進行状況\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"受信フォルダが選択されると、その中の競合するファイルもすべて上書きされます。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"受信フォルダが選択されると、その内容は既存のフォルダに書き込まれ、再帰的な競合解決が行われます。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"どのファイルを保持しますか?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"ファイル名を変更するか、このファイルをスキップするか、操作全体をキャンセルすることができます。\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"続行するには、各ファイルの少なくとも1つのバージョンを選択する必要があります。\"] } } } } }, { \"locale\": \"ka\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ka\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ka\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ka_GE\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ka_GE\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ka_GE\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"kab\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"ZiriSut, 2023\", \"Language-Team\": \"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"kab\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nZiriSut, 2023\\n\" }, \"msgstr\": [\"Last-Translator: ZiriSut, 2023\\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kab\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} tesdatin i d-yeqqimen\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} i d-yeqqimen\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"qqiment-d kra n tesdatin kan\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Rnu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Sefsex asali\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"asizel n wakud i d-yeqqimen\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"yeḥbes\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Sali-d ifuyla\"] } } } } }, { \"locale\": \"kk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"kk\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kk\\nPlural-Forms: nplurals=2; plural=(n!=1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"km\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"km\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: km\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"kn\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"kn\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: kn\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ko\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"이상오, 2024\", \"Language-Team\": \"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ko\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\n이상오, 2024\\n\" }, \"msgstr\": [\"Last-Translator: 이상오, 2024\\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ko\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\"(은)는 금지된 파일 및 폴더 이름입니다.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\"(은)는 금지된 파일 형식입니다.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['파일이나 폴더 이름에 \"{segment}\"(을)를 사용할 수 없습니다.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}개의 파일이 충돌함\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname}에서 {count}개의 파일이 충돌함\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds}초 남음\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} 남음\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"곧 완료\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"취소\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"전체 작업을 취소\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"업로드 취소\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"확인\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"새로 만들기\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"남은 시간 계산\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"현재 버전\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['파일 이름은 \"{segment}\"(으)로 끝나야 합니다.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"두 파일을 모두 선택하면, 들어오는 파일의 이름에 번호가 추가됩니다.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"잘못된 파일 이름\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"최근 수정일 알 수 없음\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"새로 만들기\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"새 파일 이름\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"새 버전\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"일시정지됨\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"미리보기 이미지\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"이름 바꾸기\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"모든 체크박스 선택\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"기존 파일을 모두 선택\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"새로운 파일을 모두 선택\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"건너뛰기\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count}개의 파일 넘기기\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"크기를 알 수 없음\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"업로드\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"파일 업로드\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"폴더 업로드\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"장치에서 업로드\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"업로드가 취소되었습니다.\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"업로드를 건너뛰었습니다.\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" 업로드를 건너뛰었습니다.'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"업로드 진행도\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"들어오는 폴더를 선택했다면, 충돌하는 내부 파일들은 덮어쓰기 됩니다.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"들어오는 폴더를 선택했다면 내용물이 그 기존 폴더 안에 작성되고, 전체적으로 충돌 해결을 수행합니다.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"어떤 파일을 보존하시겠습니까?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"파일 이름을 바꾸거나, 이 파일을 건너뛰거나 모든 작업을 취소할 수 있습니다.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다.\"] } } } } }, { \"locale\": \"la\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"la\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: la\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lb\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lb\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lb\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lo\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lo\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lo\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lt_LT\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lt_LT\", \"Plural-Forms\": \"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lt_LT\\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"lv\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"lv\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lv\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"mk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Сашко Тодоров <sasetodorov@gmail.com>, 2022\", \"Language-Team\": \"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"mk\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nСашко Тодоров <sasetodorov@gmail.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mk\\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"преостануваат {seconds} секунди\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"преостанува {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"уште неколку секунди\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Додади\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Прекини прикачување\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"приближно преостанато време\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"паузирано\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Прикачување датотеки\"] } } } } }, { \"locale\": \"mn\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"BATKHUYAG Ganbold, 2023\", \"Language-Team\": \"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"mn\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nBATKHUYAG Ganbold, 2023\\n\" }, \"msgstr\": [\"Last-Translator: BATKHUYAG Ganbold, 2023\\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mn\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} секунд үлдсэн\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} үлдсэн\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"хэдхэн секунд үлдсэн\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Нэмэх\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Илгээлтийг цуцлах\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Үлдсэн хугацааг тооцоолж байна\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"түр зогсоосон\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Файл илгээх\"] } } } } }, { \"locale\": \"mr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"mr\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: mr\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ms_MY\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"DT Navy, 2024\", \"Language-Team\": \"Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ms_MY\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nDT Navy, 2024\\n\" }, \"msgstr\": [\"Last-Translator: DT Navy, 2024\\nLanguage-Team: Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ms_MY\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" adalah fail dan nama folder yang dilarang'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" adalah jenis fail yang dilarang'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" adalah tidak dibenarkan dalam nama fail atau folder'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} files bertindih\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fail bertindih dalam {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saat tinggal\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tinggal\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"beberapa saat lagi\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"batal\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Batal keseluruhan operasi\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"batal muat naik\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"teruskan\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Buat baharu\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"jangkaan masa tinggal\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"versi sedia ada\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Nama fail tidak boleh berakhir dengan \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jika dua versi dipilih, fail yang masuk akan ditambah bilangan pada namanya.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nama fail tidak sah\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Tarikh terakhir diubah suai tidak diketahui\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nama fail baharu\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versi baharu\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Jeda\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Pratonton gambar\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Menamakan semula\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pilih semua kotak pilihan\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pilih semua fail yang wujud\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"pilih semua fail baharu\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Langkau\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Langkau fail {count}\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Saiz tidak diketahui\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Muat naik\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Muat naik fail\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Muat naik folder\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Muat naik dari peranti\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Muat naik telah dibatalkan\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Muat naik telah dilangkau\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Muat naik \"{folder}\" telah dilangkau'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Kemajuan muat naik\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Apabila folder masuk dipilih, sebarang fail bertindih akan ditulis semula\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Apabila folder masuk dipilih, kandungan ditulis ke dalam folder sedia ada dan penyelesaian konflik rekursif dilakukan.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Fail yang mana ingin disimpan?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"And boleh menamakan semula fail, langkau fail tersebut atau membatalkan keseluruhan operasi\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Anda perlu memilih sekurangnya satu versi setiap fail untuk teruskan\"] } } } } }, { \"locale\": \"my\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"my\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: my\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"nb\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Roger Knutsen, 2024\", \"Language-Team\": \"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nb_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nRoger Knutsen, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Roger Knutsen, 2024\\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nb_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er et forbudt fil- eller mappenavn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er en forbudt filtype.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ikke tillatt i et fil- eller mappenavn.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} file conflict\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} file conflict in {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunder igjen\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} igjen\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"noen få sekunder igjen\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Avbryt hele operasjonen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Avbryt opplastninger\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsett\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Opprett ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Estimerer tid igjen\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Gjeldende versjon\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnavn må ikke slutte med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Hvis du velger begge versjonene, vil den innkommende filen ha et nummer lagt til navnet.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ugyldig filnavn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Siste gang redigert ukjent\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nytt filnavn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny versjon\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauset\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forhåndsvis bilde\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Omdøp\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Velg alle\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Velg alle eksisterende filer\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Velg alle nye filer\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Hopp over\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Skip this file\", \"Hopp over {count} filer\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukjent størrelse\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Last opp filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Last opp mapper\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Last opp fra enhet\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Opplastingen er kansellert\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Opplastingen er hoppet over\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Opplasting av \"{folder}\" er hoppet over'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fremdrift, opplasting\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Når en innkommende mappe velges, blir eventuelle motstridende filer i den også overskrevet.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Når en innkommende mappe velges, skrives innholdet inn i den eksisterende mappen, og en rekursiv konfliktløsning utføres.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvilke filer vil du beholde?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan enten gi nytt navn til filen, hoppe over denne filen eller avbryte hele operasjonen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du må velge minst en versjon av hver fil for å fortsette.\"] } } } } }, { \"locale\": \"ne\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ne\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ne\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"nl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Rico <rico-schwab@hotmail.com>, 2023\", \"Language-Team\": \"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nRico <rico-schwab@hotmail.com>, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nl\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Nog {seconds} seconden\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{seconds} over\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Nog een paar seconden\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Voeg toe\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Uploads annuleren\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Schatting van de resterende tijd\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Gepauzeerd\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload bestanden\"] } } } } }, { \"locale\": \"nn_NO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nn_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nn_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"oc\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"oc\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: oc\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"pl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Piotr Strębski <strebski@gmail.com>, 2024\", \"Language-Team\": \"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"pl\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nPiotr Strębski <strebski@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Piotr Strębski <strebski@gmail.com>, 2024\\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pl\\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}” to zabroniona nazwa pliku lub folderu.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}” jest zabronionym typem pliku.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"Znak „{segment}” nie jest dozwolony w nazwie pliku lub folderu.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"konflikt 1 pliku\", \"{count} konfliktów plików\", \"{count} konfliktów plików\", \"{count} konfliktów plików\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} konfliktowy plik w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Pozostało {seconds} sekund\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Pozostało {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Pozostało kilka sekund\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Anuluj\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Anuluj całą operację\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Anuluj wysyłanie\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Kontynuuj\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Utwórz nowe\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Szacowanie pozostałego czasu\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Istniejąca wersja\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Nazwy plików nie mogą kończyć się na „{segment}”.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jeśli wybierzesz obie wersje, do nazwy pliku przychodzącego zostanie dodany numer.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nieprawidłowa nazwa pliku\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Nieznana data ostatniej modyfikacji\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nowy\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nowa nazwa pliku\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nowa wersja\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Wstrzymane\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Podgląd obrazu\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Zmiana nazwy\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Zaznacz wszystkie pola wyboru\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Zaznacz wszystkie istniejące pliki\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Zaznacz wszystkie nowe pliki\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pomiń\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Pomiń 1 plik\", \"Pomiń {count} plików\", \"Pomiń {count} plików\", \"Pomiń {count} plików\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Nieznany rozmiar\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Prześlij\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Wyślij pliki\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Prześlij foldery\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Prześlij z urządzenia\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Przesyłanie zostało anulowane\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Przesyłanie zostało pominięte\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Przesyłanie „{folder}” zostało pominięte\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Postęp wysyłania\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Po wybraniu folderu przychodzącego wszelkie znajdujące się w nim pliki powodujące konflikt również zostaną nadpisane.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Po wybraniu folderu przychodzącego zawartość jest zapisywana w istniejącym folderze i przeprowadzane jest rekursywne rozwiązywanie konfliktów.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Które pliki chcesz zachować?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Możesz zmienić nazwę pliku, pominąć ten plik lub anulować całą operację.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku.\"] } } } } }, { \"locale\": \"ps\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ps\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ps\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"pt_BR\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Paulo Schopf, 2024\", \"Language-Team\": \"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"pt_BR\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\\nRodrigo Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 2024\\nPaulo Schopf, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Paulo Schopf, 2024\\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_BR\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" é um nome de arquivo ou pasta proibido.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" é um tipo de arquivo proibido.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" não é permitido dentro de um nome de arquivo ou pasta.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} arquivos em conflito\", \"{count} arquivos em conflito\", \"{count} arquivos em conflito\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundos restantes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"alguns segundos restantes\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar a operação inteira\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Criar novo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versão existente\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Os nomes dos arquivos não devem terminar com \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se você selecionar ambas as versões, o arquivo recebido terá um número adicionado ao seu nome.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome de arquivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificação desconhecida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo nome de arquivo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versão\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Visualizar imagem\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renomear\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Marque todas as caixas de seleção\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecione todos os arquivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecione todos os novos arquivos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pular\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ignorar {count} arquivos\", \"Ignorar {count} arquivos\", \"Ignorar {count} arquivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamanho desconhecido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Enviar\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar arquivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Enviar pastas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Carregar do dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"O upload foi cancelado\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"O upload foi pulado\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['O upload de \"{folder}\" foi ignorado'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Envio em progresso\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Quando uma pasta é selecionada, quaisquer arquivos dentro dela também serão sobrescritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e uma resolução de conflito recursiva é executada.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quais arquivos você deseja manter?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Você pode renomear o arquivo, pular este arquivo ou cancelar toda a operação.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Você precisa selecionar pelo menos uma versão de cada arquivo para continuar.\"] } } } } }, { \"locale\": \"pt_PT\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Manuela Silva <mmsrs@sky.com>, 2022\", \"Language-Team\": \"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"pt_PT\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nManuela Silva <mmsrs@sky.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: pt_PT\\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"faltam {seconds} segundo(s)\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"faltam {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"faltam uns segundos\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Adicionar\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar envios\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"tempo em falta estimado\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar ficheiros\"] } } } } }, { \"locale\": \"ro\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\", \"Language-Team\": \"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ro\", \"Plural-Forms\": \"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ro\\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} secunde rămase\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"{time} rămas\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"câteva secunde rămase\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"Adaugă\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Anulați încărcările\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimarea timpului rămas\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pus pe pauză\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Încarcă fișiere\"] } } } } }, { \"locale\": \"ru\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Александр, 2024\", \"Language-Team\": \"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ru\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nВлад, 2024\\nAlex <fedotov22091982@gmail.com>, 2024\\nRoman Stepanov, 2024\\nMaksim Sukharev, 2024\\nАлександр, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Александр, 2024\\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ru\\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"«{segment}» — это запрещенное имя файла или папки.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"«{segment}» — это запрещенный тип файла.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"«{segment}» не допускается в имени файла или папки.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"конфликт {count} файла\", \"конфликт {count} файлов\", \"конфликт {count} файлов\", \"конфликт {count} файлов\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"конфликт {count} файла в «{dirname}»\", \"конфликт {count} файлов в «{dirname}»\", \"конфликт {count} файлов в «{dirname}»\", \"конфликт {count} файлов в «{dirname}»\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"осталось {seconds} секунд\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"осталось {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"осталось несколько секунд\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Отменить\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Отменить операцию целиком\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Отменить загрузки\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Продолжить\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Создать новое\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"оценка оставшегося времени\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Текущая версия\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Имена файлов не должны заканчиваться на «{segment}»\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Если вы выберете обе версии, к имени входящего файла будет добавлен номер.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Неверное имя файла\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата последнего изменения неизвестна\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Новый\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Новое имя файла\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Новая версия\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"приостановлено\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Предварительный просмотр\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Переименовать\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Выбрать все\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Выбрать все существующие файлы\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Выбрать все новые файлы\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Пропустить\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустить файл\", \"Пропустить {count} файла\", \"Пропустить {count} файлов\", \"Пропустить {count} файлов\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Неизвестный размер\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Загрузить\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Загрузить файлы\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Загрузить папки\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Загрузить с устройства\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Загрузка была отменена\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Загрузка была пропущена\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Загрузка «{folder}» была пропущена\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Прогресс загрузки\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Какие файлы вы хотите сохранить?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Вы можете переименовать файл, пропустить этот файл или отменить всю операцию.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла.\"] } } } } }, { \"locale\": \"sc\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sc\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sc\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"si\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"si\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: si\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"sk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Tomas Rusnak <linkermail@gmail.com>, 2024\", \"Language-Team\": \"Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sk_SK\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJozef Gaal <preklady@mayday.sk>, 2024\\nTomas Rusnak <linkermail@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Tomas Rusnak <linkermail@gmail.com>, 2024\\nLanguage-Team: Slovak (Slovakia) (https://app.transifex.com/nextcloud/teams/64236/sk_SK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sk_SK\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ je zakázaný názov súboru alebo priečinka.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" je zákazaný typ súboru.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}“ je zakázané v názve súboru alebo adresára.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} súbor má konflikt\", \"{count} súbory majú konflikt\", \"{count} súborov má konflikt\", \"{count} súborov má konflikt\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} súborový konflikt v {dirname}\", \"{count} súborové konflikty v {dirname}\", \"{count} súborových konfliktov v {dirname}\", \"{count} súborových konfliktov v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekúnd zostáva\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} zostáva\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"zostáva niekoľko sekúnd\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Zrušiť\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušiť celú operáciu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Zrušiť nahrávanie\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovať\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Vytvoriť nové\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"odhadovanie zostávajúceho času\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existujúca verzia\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Názvy súborov nesmú končiť znakom \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ak vyberiete obe verzie, k názvu prichádzajúceho súboru sa pridá číslo.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Neplatný názov súboru\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dátum poslednej úpravy neznámy\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nový\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nový názov súboru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nová verzia\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pozastavené\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Náhľad obrázka\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Premenovať\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Označiť všetky výberové políčka\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrať všetky existujúce súbory\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrať všetky nové súbory\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Preskočiť\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Preskočiť tento súbor\", \"Preskočiť {count} súbory\", \"Preskočiť {count} súborov\", \"Preskočiť {count} súborov\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznáma veľkosť\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Nahrať\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Nahrať súbory\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Nahrať priečinky\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Nahrať zo zariadenia\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nahrávanie bolo zrušené\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nahrávanie bolo preskočené\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Nahrávanie \"{folder}\" bolo preskočené'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Priebeh nahrávania\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Keď je vybraný prichádzajúci priečinok, prepíšu sa aj všetky konfliktné súbory v ňom.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Po výbere prichádzajúceho priečinka sa obsah zapíše do existujúceho priečinka a vykoná sa rekurzívne riešenie konfliktov.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Ktoré súbory chcete ponechať?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Súbor môžete premenovať, preskočiť alebo zrušiť celú operáciu.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Ak chcete pokračovať, musíte vybrať aspoň jednu verziu každého súboru.\"] } } } } }, { \"locale\": \"sl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Simon Bogina, 2024\", \"Language-Team\": \"Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sl\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nJan Kraljič <jan.kraljic@patware.eu>, 2024\\nSimon Bogina, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Simon Bogina, 2024\\nLanguage-Team: Slovenian (https://app.transifex.com/nextcloud/teams/64236/sl/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sl\\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" je prepovedano ime datoteka ali mape.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" je prepovedan tip datoteke.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ni dovoljeno v imenu datoteke ali mape.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"1{count} datoteka je v konfliktu\", \"1{count} datoteki sta v konfiktu\", \"1{count} datotek je v konfliktu\", \"{count} datotek je v konfliktu\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} datoteka je v konfiktu v {dirname}\", \"{count} datoteki sta v konfiktu v {dirname}\", \"{count} datotek je v konfiktu v {dirname}\", \"{count} konfliktov datotek v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"še {seconds} sekund\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"še {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"še nekaj sekund\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Prekliči\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Prekliči celotni postopek\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Prekliči pošiljanje\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Nadaljuj\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Ustvari nov\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"ocenjujem čas do konca\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Obstoječa različica\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Imena datotek se ne smejo končati s \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Če izberete obe različici, bo imenu dohodne datoteke na koncu dodana številka.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nepravilno ime datoteke\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum zadnje spremembe neznan\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nov\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo ime datoteke\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova različica\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"v premoru\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Predogled slike\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Preimenuj\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Izberi vsa potrditvena polja\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Označi vse obstoječe datoteke\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Označi vse nove datoteke\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Preskoči\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Preskoči datoteko\", \"Preskoči {count} datoteki\", \"Preskoči {count} datotek\", \"Preskoči {count} datotek\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznana velikost\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Naloži\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Naloži datoteke\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Naloži mape\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Naloži iz naprave\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nalaganje je bilo preklicano\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nalaganje je bilo preskočeno\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Nalaganje \"{folder}\" je bilo preskočeno'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Napredek nalaganja\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Ko je izbrana dohodna mapa, bodo vse datototeke v konfliktu znotraj nje prepisane.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Ko je izbrana dohodna mapa, je vsebina vpisana v obstoječo mapo in je izvedeno rekurzivno reševanje konfliktov.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Katere datoteke želite obdržati?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Datoteko lahko preimenujete, preskočite ali prekličete celo operacijo.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Izbrati morate vsaj eno različico vsake datoteke da nadaljujete.\"] } } } } }, { \"locale\": \"sq\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sq\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sq\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"sr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Иван Пешић, 2024\", \"Language-Team\": \"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sr\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nИван Пешић, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Иван Пешић, 2024\\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sr\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}” је забрањено име фајла или фолдера.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}” је забрањен тип фајла.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}” није дозвољено унутар имена фајла или фолдера.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} фајл конфликт\", \"{count} фајл конфликта\", \"{count} фајл конфликта\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} фајл конфликт у {dirname}\", \"{count} фајл конфликта у {dirname}\", \"{count} фајл конфликта у {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"преостало је {seconds} секунди\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} преостало\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"преостало је неколико секунди\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Откажи\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Отказује комплетну операцију\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Обустави отпремања\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Настави\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Креирај ново\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"процена преосталог времена\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Постојећа верзија\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Имена фајлова не смеју да се завршавају на „{segment}”.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ако изаберете обе верзије, на име долазног фајла ће се додати број.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Неисправно име фајла\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Није познат датум последње измене\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ново\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Ново име фајла\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Нова верзија\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"паузирано\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Слика прегледа\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Промени име\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Штиклирај сва поља за штиклирање\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Изабери све постојеће фајлове\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Изабери све нове фајлове\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Прескочи\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Прескочи овај фајл\", \"Прескочи {count} фајла\", \"Прескочи {count} фајлова\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Непозната величина\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Отпреми\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Отпреми фајлове\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Отпреми фолдере\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Отпреми са уређаја\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Отпремање је отказано\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Отпремање је прескочено\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Отпремање „{folder}”је прескочено\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Напредак отпремања\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Када се изабере долазни фолдер, сва имена фајлова са конфликтом унутар њега ће се такође преписати.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Када се изабере долазни фолдер, садржај се уписује у постојећи фолдер и извршава се рекурзивно разрешавање конфликата.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Које фајлове желите да задржите?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Можете или да промените име фајлу, прескочите овај фајл или откажете комплетну операцију.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Морате да изаберете барем једну верзију сваког фајла да наставите.\"] } } } } }, { \"locale\": \"sr@latin\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sr@latin\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sr@latin\\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"sv\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Magnus Höglund, 2024\", \"Language-Team\": \"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sv\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nMagnus Höglund, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Magnus Höglund, 2024\\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sv\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" är ett förbjudet fil- eller mappnamn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" är en förbjuden filtyp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" är inte tillåtet i ett fil- eller mappnamn.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} filkonflikt\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} filkonflikt i {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunder kvarstår\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} kvarstår\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"några sekunder kvar\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Avbryt hela operationen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Avbryt uppladdningar\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsätt\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Skapa ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"uppskattar kvarstående tid\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Nuvarande version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnamn får inte sluta med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Om du väljer båda versionerna kommer den inkommande filen att läggas till ett nummer i namnet.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ogiltigt filnamn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Senaste ändringsdatum okänt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nytt filnamn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausad\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Förhandsgranska bild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Byt namn\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Markera alla kryssrutor\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Välj alla befintliga filer\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Välj alla nya filer\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Hoppa över\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Hoppa över denna fil\", \"Hoppa över {count} filer\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Okänd storlek\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Ladda upp\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Ladda upp filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ladda upp mappar\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Ladda upp från enhet\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Uppladdningen har avbrutits\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Uppladdningen har hoppats över\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Uppladdningen av \"{folder}\" har hoppats över'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Uppladdningsförlopp\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"När en inkommande mapp väljs skrivs även alla konfliktande filer i den över.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Vilka filer vill du behålla?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan antingen byta namn på filen, hoppa över den här filen eller avbryta hela operationen.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Du måste välja minst en version av varje fil för att fortsätta.\"] } } } } }, { \"locale\": \"sw\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"sw\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: sw\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"ta\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ta\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ta\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"th\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Phongpanot Phairat <ppnplus@protonmail.com>, 2022\", \"Language-Team\": \"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"th_TH\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: th_TH\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"เหลืออีก {seconds} วินาที\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"time has the format 00:00:00\" }, \"msgstr\": [\"เหลืออีก {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"เหลืออีกไม่กี่วินาที\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"เพิ่ม\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"ยกเลิกการอัปโหลด\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"กำลังคำนวณเวลาที่เหลือ\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"หยุดชั่วคราว\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"อัปโหลดไฟล์\"] } } } } }, { \"locale\": \"tk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"tk\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: tk\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"tr\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Kaya Zeren <kayazeren@gmail.com>, 2024\", \"Language-Team\": \"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"tr\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nKaya Zeren <kayazeren@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2024\\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: tr\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" dosya ya da klasör adına izin verilmiyor.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" dosya türüne izin verilmiyor.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Bir dosya ya da klasör adında \"{segment}\" ifadesine izin verilmiyor.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} dosya çakışması var\", \"{count} dosya çakışması var\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} klasöründe {count} dosya çakışması var\", \"{dirname} klasöründe {count} dosya çakışması var\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saniye kaldı\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} kaldı\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"bir kaç saniye kaldı\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"İptal\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Tüm işlemi iptal et\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Yüklemeleri iptal et\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"İlerle\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Yeni ekle\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"öngörülen kalan süre\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Var olan sürüm\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dosya adları \"{segment}\" ile bitmemeli.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Dosya adı geçersiz\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Son değiştirilme tarihi bilinmiyor\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Yeni\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Yeni dosya adı\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Yeni sürüm\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"duraklatıldı\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Görsel ön izlemesi\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Yeniden adlandır\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Tüm kutuları işaretle\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Tüm var olan dosyaları seç\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Tüm yeni dosyaları seç\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Atla\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Bu dosyayı atla\", \"{count} dosyayı atla\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Boyut bilinmiyor\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Yükle\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dosyaları yükle\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Klasörleri yükle\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Aygıttan yükle\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Yükleme iptal edildi\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Yükleme atlandı\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" klasörünün yüklenmesi atlandı'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Yükleme ilerlemesi\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bir gelen klasörü seçildiğinde içerik var olan klasöre yazılır ve yinelemeli bir çakışma çözümü uygulanır.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hangi dosyaları tutmak istiyorsunuz?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Dosya adını değiştirebilir, bu dosyayı atlayabilir ya da tüm işlemi iptal edebilirsiniz.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz.\"] } } } } }, { \"locale\": \"ug\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ug\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ug\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"uk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"O St <oleksiy.stasevych@gmail.com>, 2024\", \"Language-Team\": \"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"uk\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nO St <oleksiy.stasevych@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2024\\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uk\\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [`\"{segment}\" не є дозволеним ім'ям файлу або каталогу.`] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" не є дозволеним типом файлу.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" не дозволене сполучення символів в назві файлу або каталогу.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} конфліктний файл\", \"{count} конфліктних файли\", \"{count} конфліктних файлів\", \"{count} конфліктних файлів\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} конфліктний файл у каталозі {dirname}\", \"{count} конфліктних файли у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Залишилося {seconds} секунд\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Залишилося {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"залишилося кілька секунд\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Скасувати\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Скасувати операцію повністю\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Скасувати завантаження\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Продовжити\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Створити новий\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"оцінка часу, що залишився\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Присутня версія\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [`Ім'я файлів не можуть закінчуватися на \"{segment}\".`] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Якщо буде вибрано обидві версії, до імени вхідного файлу було додано цифру.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Недійсне ім'я файлу\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата останньої зміни невідома\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Нове\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Нове ім'я файлу\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Нова версія\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"призупинено\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Попередній перегляд\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Перейменувати\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Вибрати все\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Вибрати усі присутні файли\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Вибрати усі нові файли\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Пропустити\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустити файл\", \"Пропустити {count} файли\", \"Пропустити {count} файлів\", \"Пропустити {count} файлів\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Невідомий розмір\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Завантажити\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Завантажити файли\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Завантажити каталоги\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Завантажити з пристрою\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Завантаження скасовано\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Завантаження пропущено\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Завантаження \"{folder}\" пропущено'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Поступ завантаження\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Якщо буде вибрано вхідний каталог, вміст буде записано до наявного каталогу та вирішено конфлікти у відповідних файлах каталогу та підкаталогів.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Які файли залишити?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Ви можете або перейменувати цей файл, пропустити або скасувати дію з файлом.\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Для продовження потрібно вибрати принаймні одну версію для кожного файлу.\"] } } } } }, { \"locale\": \"ur_PK\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ur_PK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ur_PK\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"uz\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"uz\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uz\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"vi\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Tung DangQuang, 2023\", \"Language-Team\": \"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"vi\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\\nTung DangQuang, 2023\\n\" }, \"msgstr\": [\"Last-Translator: Tung DangQuang, 2023\\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: vi\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} Tập tin xung đột\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} tập tin lỗi trong {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"Còn {second} giây\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Còn lại {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Còn lại một vài giây\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Huỷ tải lên\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Tiếp Tục\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Thời gian còn lại dự kiến\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Phiên Bản Hiện Tại\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó.\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Ngày sửa dổi lần cuối không xác định\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Tạo Mới\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Phiên Bản Mới\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"đã tạm dừng\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Xem Trước Ảnh\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Chọn tất cả hộp checkbox\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Chọn tất cả các tập tin có sẵn\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Chọn tất cả các tập tin mới\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Bỏ Qua {count} tập tin\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Không rõ dung lượng\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"Dừng Tải Lên\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Tập tin tải lên\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Đang Tải Lên\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Bạn muốn giữ tập tin nào?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục\"] } } } } }, { \"locale\": \"zh_CN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Gloryandel, 2024\", \"Language-Team\": \"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"zh_CN\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nGloryandel, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Gloryandel, 2024\\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_CN\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" 是被禁止的文件名或文件夹名。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" 是被禁止的文件类型。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" 不允许包含在文件名或文件夹名中。'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}文件冲突\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"在{dirname}目录下有{count}个文件冲突\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"剩余 {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"剩余 {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"还剩几秒\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整个操作\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"取消上传\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"继续\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"新建\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估计剩余时间\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"服务端版本\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['文件名不得以 \"{segment}\" 结尾。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"如果同时选择两个版本,则上传文件的名称中将添加一个数字。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"无效文件名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"文件最后修改日期未知\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新建\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新文件名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"上传版本\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暂停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"图片预览\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"重命名\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"选择所有的选择框\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"保留所有服务端版本\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"保留所有上传版本\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"跳过\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"跳过{count}个文件\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"文件大小未知\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"上传\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上传文件\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"上传文件夹\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"从设备上传\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"上传已取消\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"上传已跳过\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['已跳过上传\"{folder}\"'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"上传进度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"当选择上传文件夹时,其中任何冲突的文件也都会被覆盖。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"选择上传文件夹后,内容将写入现有文件夹,并递归执行冲突解决。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"你要保留哪些文件?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"您可以重命名文件、跳过此文件或取消整个操作。\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"每个文件至少选择保留一个版本\"] } } } } }, { \"locale\": \"zh_HK\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Café Tango, 2024\", \"Language-Team\": \"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"zh_HK\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\nCafé Tango, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Café Tango, 2024\\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_HK\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" 是禁止使用的檔案或資料夾名稱。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" 是禁止使用的檔案類型。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" 不允許出現在檔案或資料夾名稱中。'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"剩餘 {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"還剩幾秒\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整個操作\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"取消上傳\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"繼續\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"創建新\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估計剩餘時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既有版本\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['檔案名不得以 \"{segment}\" 結尾。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"若您選取兩個版本,傳入檔案的名稱將會新增編號。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"無效的檔案名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最後修改日期不詳\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新增\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新檔案名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新版本 \"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暫停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"預覽圖片\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"重新命名\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"選取所有核取方塊\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"選取所有既有檔案\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"選取所有新檔案\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"跳過\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"略過 {count} 個檔案\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"大小不詳\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"上傳\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上傳檔案\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"上傳資料夾\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"從裝置上傳\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"上傳已被取消\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"上傳已被跳過\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" 的上傳已被跳過'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"上傳進度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"選擇傳入資料夾後,內容將寫入現有資料夾並執行遞歸衝突解決。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"您想保留哪些檔案?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"您可以選擇重新命名檔案、跳過此檔案或取消整個操作。\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }, { \"locale\": \"zh_TW\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"黃柏諺 <s8321414@gmail.com>, 2024\", \"Language-Team\": \"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"zh_TW\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nJoas Schilling, 2024\\n黃柏諺 <s8321414@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: zh_TW\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"剩餘 {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"還剩幾秒\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"取消\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"取消整個操作\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"取消上傳\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"繼續\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估計剩餘時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既有版本\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the copied file will have a number added to its name.\", \"msgstr\": [\"若您選取兩個版本,複製的檔案的名稱將會新增編號。\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最後修改日期未知\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新增\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新版本\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暫停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"預覽圖片\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"選取所有核取方塊\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"選取所有既有檔案\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"選取所有新檔案\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"略過 {count} 檔案\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"未知大小\"] }, \"Upload cancelled\": { \"msgid\": \"Upload cancelled\", \"msgstr\": [\"已取消上傳\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上傳檔案\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"上傳進度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { \"msgid\": \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", \"msgstr\": [\"選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"您想保留哪些檔案?\"] }, \"You need to select at least one version of each file to continue.\": { \"msgid\": \"You need to select at least one version of each file to continue.\", \"msgstr\": [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }].map((data) => gtBuilder.addTranslation(data.locale, data.json));\nconst gt = gtBuilder.build();\nconst n = gt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\nvar Status = /* @__PURE__ */ ((Status2) => {\n Status2[Status2[\"IDLE\"] = 0] = \"IDLE\";\n Status2[Status2[\"UPLOADING\"] = 1] = \"UPLOADING\";\n Status2[Status2[\"PAUSED\"] = 2] = \"PAUSED\";\n return Status2;\n})(Status || {});\nclass Uploader {\n // Initialized via setter in the constructor\n _destinationFolder;\n _isPublic;\n _customHeaders;\n // Global upload queue\n _uploadQueue = [];\n _jobQueue = new PQueue({\n // Maximum number of concurrent uploads\n // @ts-expect-error TS2339 Object has no defined properties\n concurrency: getCapabilities().files?.chunked_upload?.max_parallel_count ?? 5\n });\n _queueSize = 0;\n _queueProgress = 0;\n _queueStatus = 0;\n _notifiers = [];\n /**\n * Initialize uploader\n *\n * @param {boolean} isPublic are we in public mode ?\n * @param {Folder} destinationFolder the context folder to operate, relative to the root folder\n */\n constructor(isPublic = false, destinationFolder) {\n this._isPublic = isPublic;\n this._customHeaders = {};\n if (!destinationFolder) {\n const source = `${davRemoteURL}${davRootPath}`;\n let owner;\n if (isPublic) {\n owner = \"anonymous\";\n } else {\n const user = getCurrentUser()?.uid;\n if (!user) {\n throw new Error(\"User is not logged in\");\n }\n owner = user;\n }\n destinationFolder = new Folder({\n id: 0,\n owner,\n permissions: Permission.ALL,\n root: davRootPath,\n source\n });\n }\n this.destination = destinationFolder;\n logger.debug(\"Upload workspace initialized\", {\n destination: this.destination,\n root: this.root,\n isPublic,\n maxChunksSize: getMaxChunksSize()\n });\n }\n /**\n * Get the upload destination path relative to the root folder\n */\n get destination() {\n return this._destinationFolder;\n }\n /**\n * Set the upload destination path relative to the root folder\n */\n set destination(folder) {\n if (!folder || folder.type !== FileType.Folder || !folder.source) {\n throw new Error(\"Invalid destination folder\");\n }\n logger.debug(\"Destination set\", { folder });\n this._destinationFolder = folder;\n }\n /**\n * Get the root folder\n */\n get root() {\n return this._destinationFolder.source;\n }\n /**\n * Get registered custom headers for uploads\n */\n get customHeaders() {\n return structuredClone(this._customHeaders);\n }\n /**\n * Set a custom header\n * @param name The header to set\n * @param value The string value\n */\n setCustomHeader(name, value = \"\") {\n this._customHeaders[name] = value;\n }\n /**\n * Unset a custom header\n * @param name The header to unset\n */\n deleteCustomerHeader(name) {\n delete this._customHeaders[name];\n }\n /**\n * Get the upload queue\n */\n get queue() {\n return this._uploadQueue;\n }\n reset() {\n if (this._uploadQueue.length === 0 && this._jobQueue.size === 0) {\n return;\n }\n this._uploadQueue.splice(0, this._uploadQueue.length);\n this._jobQueue.clear();\n this._queueSize = 0;\n this._queueProgress = 0;\n this._queueStatus = 0;\n logger.debug(\"Uploader state reset\");\n }\n /**\n * Pause any ongoing upload(s)\n */\n pause() {\n this._jobQueue.pause();\n this._queueStatus = 2;\n }\n /**\n * Resume any pending upload(s)\n */\n start() {\n this._jobQueue.start();\n this._queueStatus = 1;\n this.updateStats();\n }\n /**\n * Get the upload queue stats\n */\n get info() {\n return {\n size: this._queueSize,\n progress: this._queueProgress,\n status: this._queueStatus\n };\n }\n updateStats() {\n const size = this._uploadQueue.map((upload2) => upload2.size).reduce((partialSum, a) => partialSum + a, 0);\n const uploaded = this._uploadQueue.map((upload2) => upload2.uploaded).reduce((partialSum, a) => partialSum + a, 0);\n this._queueSize = size;\n this._queueProgress = uploaded;\n if (this._queueStatus === 2) {\n return;\n }\n this._queueStatus = this._jobQueue.size > 0 ? 1 : 0;\n }\n addNotifier(notifier) {\n this._notifiers.push(notifier);\n }\n /**\n * Notify listeners of the upload completion\n * @param upload The upload that finished\n */\n _notifyAll(upload2) {\n for (const notifier of this._notifiers) {\n try {\n notifier(upload2);\n } catch (error) {\n logger.warn(\"Error in upload notifier\", { error, source: upload2.source });\n }\n }\n }\n /**\n * Uploads multiple files or folders while preserving the relative path (if available)\n * @param {string} destination The destination path relative to the root folder. e.g. /foo/bar (a file \"a.txt\" will be uploaded then to \"/foo/bar/a.txt\")\n * @param {Array<File|FileSystemEntry>} files The files and/or folders to upload\n * @param {Function} callback Callback that receives the nodes in the current folder and the current path to allow resolving conflicts, all nodes that are returned will be uploaded (if a folder does not exist it will be created)\n * @return Cancelable promise that resolves to an array of uploads\n *\n * @example\n * ```ts\n * // For example this is from handling the onchange event of an input[type=file]\n * async handleFiles(files: File[]) {\n * this.uploads = await this.uploader.batchUpload('uploads', files, this.handleConflicts)\n * }\n *\n * async handleConflicts(nodes: File[], currentPath: string) {\n * const conflicts = getConflicts(nodes, this.fetchContent(currentPath))\n * if (conflicts.length === 0) {\n * // No conflicts so upload all\n * return nodes\n * } else {\n * // Open the conflict picker to resolve conflicts\n * try {\n * const { selected, renamed } = await openConflictPicker(currentPath, conflicts, this.fetchContent(currentPath), { recursive: true })\n * return [...selected, ...renamed]\n * } catch (e) {\n * return false\n * }\n * }\n * }\n * ```\n */\n batchUpload(destination, files, callback) {\n if (!callback) {\n callback = async (files2) => files2;\n }\n return new PCancelable(async (resolve, reject, onCancel) => {\n const rootFolder = new Directory(\"\");\n await rootFolder.addChildren(files);\n const target = `${this.root.replace(/\\/$/, \"\")}/${destination.replace(/^\\//, \"\")}`;\n const upload2 = new Upload(target, false, 0, rootFolder);\n upload2.status = Status$1.UPLOADING;\n this._uploadQueue.push(upload2);\n logger.debug(\"Starting new batch upload\", { target });\n try {\n const client = davGetClient(this.root, this._customHeaders);\n const promise = this.uploadDirectory(destination, rootFolder, callback, client);\n onCancel(() => promise.cancel());\n const uploads = await promise;\n upload2.status = Status$1.FINISHED;\n resolve(uploads);\n } catch (error) {\n logger.error(\"Error in batch upload\", { error });\n upload2.status = Status$1.FAILED;\n reject(t(\"Upload has been cancelled\"));\n } finally {\n this._notifyAll(upload2);\n this.updateStats();\n }\n });\n }\n /**\n * Helper to create a directory wrapped inside an Upload class\n * @param destination Destination where to create the directory\n * @param directory The directory to create\n * @param client The cached WebDAV client\n */\n createDirectory(destination, directory, client) {\n const folderPath = normalize(`${destination}/${directory.name}`).replace(/\\/$/, \"\");\n const rootPath = `${this.root.replace(/\\/$/, \"\")}/${folderPath.replace(/^\\//, \"\")}`;\n if (!directory.name) {\n throw new Error(\"Can not create empty directory\");\n }\n const currentUpload = new Upload(rootPath, false, 0, directory);\n this._uploadQueue.push(currentUpload);\n return new PCancelable(async (resolve, reject, onCancel) => {\n const abort = new AbortController();\n onCancel(() => abort.abort());\n currentUpload.signal.addEventListener(\"abort\", () => reject(t(\"Upload has been cancelled\")));\n await this._jobQueue.add(async () => {\n currentUpload.status = Status$1.UPLOADING;\n try {\n await client.createDirectory(folderPath, { signal: abort.signal });\n resolve(currentUpload);\n } catch (error) {\n if (error && typeof error === \"object\" && \"status\" in error && error.status === 405) {\n currentUpload.status = Status$1.FINISHED;\n logger.debug(\"Directory already exists, writing into it\", { directory: directory.name });\n } else {\n currentUpload.status = Status$1.FAILED;\n reject(error);\n }\n } finally {\n this._notifyAll(currentUpload);\n this.updateStats();\n }\n });\n });\n }\n // Helper for uploading directories (recursively)\n uploadDirectory(destination, directory, callback, client) {\n const folderPath = normalize(`${destination}/${directory.name}`).replace(/\\/$/, \"\");\n return new PCancelable(async (resolve, reject, onCancel) => {\n const abort = new AbortController();\n onCancel(() => abort.abort());\n const selectedForUpload = await callback(directory.children, folderPath);\n if (selectedForUpload === false) {\n logger.debug(\"Upload canceled by user\", { directory });\n reject(t(\"Upload has been cancelled\"));\n return;\n } else if (selectedForUpload.length === 0 && directory.children.length > 0) {\n logger.debug(\"Skipping directory, as all files were skipped by user\", { directory });\n resolve([]);\n return;\n }\n const directories = [];\n const uploads = [];\n abort.signal.addEventListener(\"abort\", () => {\n directories.forEach((upload2) => upload2.cancel());\n uploads.forEach((upload2) => upload2.cancel());\n });\n logger.debug(\"Start directory upload\", { directory });\n try {\n if (directory.name) {\n uploads.push(this.createDirectory(destination, directory, client));\n await uploads.at(-1);\n }\n for (const node of selectedForUpload) {\n if (node instanceof Directory) {\n directories.push(this.uploadDirectory(folderPath, node, callback, client));\n } else {\n uploads.push(this.upload(`${folderPath}/${node.name}`, node));\n }\n }\n const resolvedUploads = await Promise.all(uploads);\n const resolvedDirectoryUploads = await Promise.all(directories);\n resolve([resolvedUploads, ...resolvedDirectoryUploads].flat());\n } catch (e) {\n abort.abort(e);\n reject(e);\n }\n });\n }\n /**\n * Upload a file to the given path\n * @param {string} destination the destination path relative to the root folder. e.g. /foo/bar.txt\n * @param {File|FileSystemFileEntry} fileHandle the file to upload\n * @param {string} root the root folder to upload to\n * @param retries number of retries\n */\n upload(destination, fileHandle, root, retries = 5) {\n root = root || this.root;\n const destinationPath = `${root.replace(/\\/$/, \"\")}/${destination.replace(/^\\//, \"\")}`;\n const { origin } = new URL(destinationPath);\n const encodedDestinationFile = origin + encodePath(destinationPath.slice(origin.length));\n logger.debug(`Uploading ${fileHandle.name} to ${encodedDestinationFile}`);\n const promise = new PCancelable(async (resolve, reject, onCancel) => {\n if (isFileSystemFileEntry(fileHandle)) {\n fileHandle = await new Promise((resolve2) => fileHandle.file(resolve2, reject));\n }\n const file = fileHandle;\n const maxChunkSize = getMaxChunksSize(\"size\" in file ? file.size : void 0);\n const disabledChunkUpload = this._isPublic || maxChunkSize === 0 || \"size\" in file && file.size < maxChunkSize;\n const upload2 = new Upload(destinationPath, !disabledChunkUpload, file.size, file);\n this._uploadQueue.push(upload2);\n this.updateStats();\n onCancel(upload2.cancel);\n if (!disabledChunkUpload) {\n logger.debug(\"Initializing chunked upload\", { file, upload: upload2 });\n const tempUrl = await initChunkWorkspace(encodedDestinationFile, retries);\n const chunksQueue = [];\n for (let chunk = 0; chunk < upload2.chunks; chunk++) {\n const bufferStart = chunk * maxChunkSize;\n const bufferEnd = Math.min(bufferStart + maxChunkSize, upload2.size);\n const blob = () => getChunk(file, bufferStart, maxChunkSize);\n const request = () => {\n return uploadData(\n `${tempUrl}/${chunk + 1}`,\n blob,\n upload2.signal,\n () => this.updateStats(),\n encodedDestinationFile,\n {\n ...this._customHeaders,\n \"X-OC-Mtime\": Math.floor(file.lastModified / 1e3),\n \"OC-Total-Length\": file.size,\n \"Content-Type\": \"application/octet-stream\"\n },\n retries\n ).then(() => {\n upload2.uploaded = upload2.uploaded + maxChunkSize;\n }).catch((error) => {\n if (error?.response?.status === 507) {\n logger.error(\"Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks\", { error, upload: upload2 });\n upload2.cancel();\n upload2.status = Status$1.FAILED;\n throw error;\n }\n if (!isCancel(error)) {\n logger.error(`Chunk ${chunk + 1} ${bufferStart} - ${bufferEnd} uploading failed`, { error, upload: upload2 });\n upload2.cancel();\n upload2.status = Status$1.FAILED;\n }\n throw error;\n });\n };\n chunksQueue.push(this._jobQueue.add(request));\n }\n try {\n await Promise.all(chunksQueue);\n this.updateStats();\n upload2.response = await axios.request({\n method: \"MOVE\",\n url: `${tempUrl}/.file`,\n headers: {\n ...this._customHeaders,\n \"X-OC-Mtime\": Math.floor(file.lastModified / 1e3),\n \"OC-Total-Length\": file.size,\n Destination: encodedDestinationFile\n }\n });\n this.updateStats();\n upload2.status = Status$1.FINISHED;\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload: upload2 });\n resolve(upload2);\n } catch (error) {\n if (!isCancel(error)) {\n upload2.status = Status$1.FAILED;\n reject(\"Failed assembling the chunks together\");\n } else {\n upload2.status = Status$1.FAILED;\n reject(t(\"Upload has been cancelled\"));\n }\n axios.request({\n method: \"DELETE\",\n url: `${tempUrl}`\n });\n }\n this._notifyAll(upload2);\n } else {\n logger.debug(\"Initializing regular upload\", { file, upload: upload2 });\n const blob = await getChunk(file, 0, upload2.size);\n const request = async () => {\n try {\n upload2.response = await uploadData(\n encodedDestinationFile,\n blob,\n upload2.signal,\n (event) => {\n upload2.uploaded = upload2.uploaded + event.bytes;\n this.updateStats();\n },\n void 0,\n {\n ...this._customHeaders,\n \"X-OC-Mtime\": Math.floor(file.lastModified / 1e3),\n \"Content-Type\": file.type\n }\n );\n upload2.uploaded = upload2.size;\n this.updateStats();\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload: upload2 });\n resolve(upload2);\n } catch (error) {\n if (isCancel(error)) {\n upload2.status = Status$1.FAILED;\n reject(t(\"Upload has been cancelled\"));\n return;\n }\n if (error?.response) {\n upload2.response = error.response;\n }\n upload2.status = Status$1.FAILED;\n logger.error(`Failed uploading ${file.name}`, { error, file, upload: upload2 });\n reject(\"Failed uploading the file\");\n }\n this._notifyAll(upload2);\n };\n this._jobQueue.add(request);\n this.updateStats();\n }\n this._jobQueue.onIdle().then(() => this.reset());\n return upload2;\n });\n return promise;\n }\n}\nfunction normalizeComponent(scriptExports, render6, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render6) {\n options.render = render6;\n options.staticRenderFns = staticRenderFns;\n options._compiled = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst _sfc_main$4 = {\n name: \"CancelIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$4 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon cancel-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n null\n);\nconst IconCancel = __component__$4.exports;\nconst _sfc_main$3 = {\n name: \"FolderUploadIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$3 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon folder-upload-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n null\n);\nconst IconFolderUpload = __component__$3.exports;\nconst _sfc_main$2 = {\n name: \"PlusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$2 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon plus-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n null\n);\nconst IconPlus = __component__$2.exports;\nconst _sfc_main$1 = {\n name: \"UploadIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$1 = function render4() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon upload-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst IconUpload = __component__$1.exports;\nfunction showInvalidFilenameDialog(error) {\n const InvalidFilenameDialog = defineAsyncComponent(() => import(\"./InvalidFilenameDialog-CQ6TfYs0.mjs\"));\n const { promise, reject, resolve } = Promise.withResolvers();\n spawnDialog(\n InvalidFilenameDialog,\n {\n error,\n validateFilename\n },\n (...rest) => {\n const [{ skip, rename }] = rest;\n if (skip) {\n resolve(false);\n } else if (rename) {\n resolve(rename);\n } else {\n reject();\n }\n }\n );\n return promise;\n}\nfunction hasConflict(files, content) {\n return getConflicts(files, content).length > 0;\n}\nfunction getConflicts(files, content) {\n const contentNames = content.map((node) => node.basename);\n const conflicts = files.filter((node) => {\n const name = \"basename\" in node ? node.basename : node.name;\n return contentNames.indexOf(name) !== -1;\n });\n return conflicts;\n}\nfunction uploadConflictHandler(contentsCallback) {\n return async (nodes, path) => {\n try {\n const content = await contentsCallback(path).catch(() => []);\n const conflicts = getConflicts(nodes, content);\n if (conflicts.length > 0) {\n const { selected, renamed } = await openConflictPicker(path, conflicts, content, { recursive: true });\n nodes = [...selected, ...renamed];\n }\n const filesToUpload = [];\n for (const file of nodes) {\n try {\n validateFilename(file.name);\n filesToUpload.push(file);\n } catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n logger.error(`Unexpected error while validating ${file.name}`, { error });\n throw error;\n }\n let newName = await showInvalidFilenameDialog(error);\n if (newName !== false) {\n newName = getUniqueName(newName, nodes.map((node) => node.name));\n Object.defineProperty(file, \"name\", { value: newName });\n filesToUpload.push(file);\n }\n }\n }\n if (filesToUpload.length === 0 && nodes.length > 0) {\n const folder = basename(path);\n showInfo(\n folder ? t('Upload of \"{folder}\" has been skipped', { folder }) : t(\"Upload has been skipped\")\n );\n }\n return filesToUpload;\n } catch (error) {\n logger.debug(\"Upload has been cancelled\", { error });\n showWarning(t(\"Upload has been cancelled\"));\n return false;\n }\n };\n}\nconst _sfc_main = defineComponent({\n name: \"UploadPicker\",\n components: {\n IconCancel,\n IconFolderUpload,\n IconPlus,\n IconUpload,\n NcActionButton,\n NcActionCaption,\n NcActionSeparator,\n NcActions,\n NcButton,\n NcIconSvgWrapper,\n NcProgressBar\n },\n props: {\n accept: {\n type: Array,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Allow to disable the \"new\"-menu for this UploadPicker instance\n */\n noMenu: {\n type: Boolean,\n default: false\n },\n destination: {\n type: Folder,\n default: void 0\n },\n allowFolders: {\n type: Boolean,\n default: false\n },\n /**\n * List of file present in the destination folder\n * It is also possible to provide a function that takes a relative path to the current directory and returns the content of it\n * Note: If a function is passed it should return the current base directory when no path or an empty is passed\n */\n content: {\n type: [Array, Function],\n default: () => []\n },\n /**\n * Overwrite forbidden characters (by default the capabilities of the server are used)\n * @deprecated Deprecated and will be removed in the next major version\n */\n forbiddenCharacters: {\n type: Array,\n default: () => []\n }\n },\n setup() {\n return {\n t,\n // non reactive data / properties\n progressTimeId: `nc-uploader-progress-${Math.random().toString(36).slice(7)}`\n };\n },\n data() {\n return {\n eta: null,\n openedMenu: false,\n timeLeft: \"\",\n newFileMenuEntries: [],\n uploadManager: getUploader()\n };\n },\n computed: {\n menuEntriesUpload() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.UploadFromDevice);\n },\n menuEntriesNew() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.CreateNew);\n },\n menuEntriesOther() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.Other);\n },\n /**\n * Check whether the current browser supports uploading directories\n * Hint: This does not check if the current connection supports this, as some browsers require a secure context!\n */\n canUploadFolders() {\n return this.allowFolders && \"webkitdirectory\" in document.createElement(\"input\");\n },\n totalQueueSize() {\n return this.uploadManager.info?.size || 0;\n },\n uploadedQueueSize() {\n return this.uploadManager.info?.progress || 0;\n },\n progress() {\n return Math.round(this.uploadedQueueSize / this.totalQueueSize * 100) || 0;\n },\n queue() {\n return this.uploadManager.queue;\n },\n hasFailure() {\n return this.queue?.filter((upload2) => upload2.status === Status$1.FAILED).length !== 0;\n },\n isUploading() {\n return this.queue?.length > 0;\n },\n isAssembling() {\n return this.queue?.filter((upload2) => upload2.status === Status$1.ASSEMBLING).length !== 0;\n },\n isPaused() {\n return this.uploadManager.info?.status === Status.PAUSED;\n },\n buttonLabel() {\n return this.noMenu ? t(\"Upload\") : t(\"New\");\n },\n // Hide the button text if we're uploading\n buttonName() {\n if (this.isUploading) {\n return void 0;\n }\n return this.buttonLabel;\n },\n haveMenu() {\n return !((this.noMenu || this.newFileMenuEntries.length === 0) && !this.canUploadFolders);\n }\n },\n watch: {\n allowFolders: {\n immediate: true,\n handler() {\n if (typeof this.content !== \"function\" && this.allowFolders) {\n logger.error(\"[UploadPicker] Setting `allowFolders` is only allowed if `content` is a function\");\n }\n }\n },\n destination(destination) {\n this.setDestination(destination);\n },\n totalQueueSize(size) {\n this.eta = makeEta({ min: 0, max: size });\n this.updateStatus();\n },\n uploadedQueueSize(size) {\n this.eta?.report?.(size);\n this.updateStatus();\n },\n isPaused(isPaused) {\n if (isPaused) {\n this.$emit(\"paused\", this.queue);\n } else {\n this.$emit(\"resumed\", this.queue);\n }\n }\n },\n beforeMount() {\n if (this.destination) {\n this.setDestination(this.destination);\n }\n this.uploadManager.addNotifier(this.onUploadCompletion);\n useHotKey(\"u\", this.onKeyDown, {\n stop: true,\n prevent: true,\n shift: true\n });\n useHotKey(\"Escape\", this.onKeyDown, {\n stop: true,\n prevent: true\n });\n logger.debug(\"UploadPicker initialised\");\n },\n methods: {\n /**\n * Handle clicking a new-menu entry\n * @param entry The entry that was clicked\n */\n async onClick(entry) {\n entry.handler(\n this.destination,\n await this.getContent().catch(() => [])\n );\n },\n /**\n * Trigger file picker\n * @param uploadFolders Upload folders\n */\n onTriggerPick(uploadFolders = false) {\n const input = this.$refs.input;\n if (this.canUploadFolders) {\n input.webkitdirectory = uploadFolders;\n }\n this.$nextTick(() => input.click());\n },\n /**\n * Helper for backwards compatibility that queries the content of the current directory\n * @param path The current path\n */\n async getContent(path) {\n return Array.isArray(this.content) ? this.content : await this.content(path);\n },\n /**\n * Start uploading\n */\n onPick() {\n const input = this.$refs.input;\n const files = input.files ? Array.from(input.files) : [];\n this.uploadManager.batchUpload(\"\", files, uploadConflictHandler(this.getContent)).catch((error) => logger.debug(\"Error while uploading\", { error })).finally(() => this.resetForm());\n },\n resetForm() {\n const form = this.$refs.form;\n form?.reset();\n },\n /**\n * Cancel ongoing queue\n */\n onCancel() {\n this.uploadManager.queue.forEach((upload2) => {\n upload2.cancel();\n });\n this.resetForm();\n },\n updateStatus() {\n if (this.isPaused) {\n this.timeLeft = t(\"paused\");\n return;\n }\n const estimate = Math.round(this.eta.estimate());\n if (estimate === Infinity) {\n this.timeLeft = t(\"estimating time left\");\n return;\n }\n if (estimate < 10) {\n this.timeLeft = t(\"a few seconds left\");\n return;\n }\n if (estimate > 60) {\n const date = /* @__PURE__ */ new Date(0);\n date.setSeconds(estimate);\n const time = date.toISOString().slice(11, 11 + 8);\n this.timeLeft = t(\"{time} left\", { time });\n return;\n }\n this.timeLeft = t(\"{seconds} seconds left\", { seconds: estimate });\n },\n setDestination(destination) {\n if (!this.destination) {\n logger.debug(\"Invalid destination\");\n return;\n }\n this.uploadManager.destination = destination;\n this.newFileMenuEntries = getNewFileMenuEntries(destination);\n },\n onUploadCompletion(upload2) {\n if (upload2.status === Status$1.FAILED) {\n this.$emit(\"failed\", upload2);\n } else {\n this.$emit(\"uploaded\", upload2);\n }\n },\n onKeyDown(event) {\n if (event.key === \"u\") {\n if (this.haveMenu) {\n this.openedMenu = true;\n return;\n }\n this.onTriggerPick();\n }\n if (event.key === \"Escape\" && this.openedMenu) {\n this.openedMenu = false;\n }\n }\n }\n});\nvar _sfc_render = function render5() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _vm.destination ? _c(\"form\", { ref: \"form\", staticClass: \"upload-picker\", class: { \"upload-picker--uploading\": _vm.isUploading, \"upload-picker--paused\": _vm.isPaused }, attrs: { \"data-cy-upload-picker\": \"\" } }, [!_vm.haveMenu ? _c(\"NcButton\", { attrs: { \"disabled\": _vm.disabled, \"data-cy-upload-picker-add\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-file\", \"type\": \"secondary\" }, on: { \"click\": function($event) {\n return _vm.onTriggerPick();\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconPlus\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1991456921) }, [_vm._v(\" \" + _vm._s(_vm.buttonName) + \" \")]) : _c(\"NcActions\", { attrs: { \"aria-label\": _vm.buttonLabel, \"menu-name\": _vm.buttonName, \"open\": _vm.openedMenu, \"type\": \"secondary\" }, on: { \"update:open\": function($event) {\n _vm.openedMenu = $event;\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconPlus\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1991456921) }, [_c(\"NcActionCaption\", { attrs: { \"name\": _vm.t(\"Upload from device\") } }), _c(\"NcActionButton\", { attrs: { \"data-cy-upload-picker-add\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-file\", \"close-after-click\": true }, on: { \"click\": function($event) {\n return _vm.onTriggerPick();\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconUpload\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 337456192) }, [_vm._v(\" \" + _vm._s(_vm.t(\"Upload files\")) + \" \")]), _vm.canUploadFolders ? _c(\"NcActionButton\", { attrs: { \"close-after-click\": \"\", \"data-cy-upload-picker-add-folders\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-folder\" }, on: { \"click\": function($event) {\n return _vm.onTriggerPick(true);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconFolderUpload\", { staticStyle: { \"color\": \"var(--color-primary-element)\" }, attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1037549157) }, [_vm._v(\" \" + _vm._s(_vm.t(\"Upload folders\")) + \" \")]) : _vm._e(), !_vm.noMenu ? _vm._l(_vm.menuEntriesUpload, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n }) : _vm._e(), !_vm.noMenu && _vm.menuEntriesNew.length > 0 ? [_c(\"NcActionSeparator\"), _c(\"NcActionCaption\", { attrs: { \"name\": _vm.t(\"Create new\") } }), _vm._l(_vm.menuEntriesNew, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n })] : _vm._e(), !_vm.noMenu && _vm.menuEntriesOther.length > 0 ? [_c(\"NcActionSeparator\"), _vm._l(_vm.menuEntriesOther, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n })] : _vm._e()], 2), _c(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: _vm.isUploading, expression: \"isUploading\" }], staticClass: \"upload-picker__progress\" }, [_c(\"NcProgressBar\", { attrs: { \"aria-label\": _vm.t(\"Upload progress\"), \"aria-describedby\": _vm.progressTimeId, \"error\": _vm.hasFailure, \"value\": _vm.progress, \"size\": \"medium\" } }), _c(\"p\", { attrs: { \"id\": _vm.progressTimeId } }, [_vm._v(\" \" + _vm._s(_vm.timeLeft) + \" \")])], 1), _vm.isUploading ? _c(\"NcButton\", { staticClass: \"upload-picker__cancel\", attrs: { \"type\": \"tertiary\", \"aria-label\": _vm.t(\"Cancel uploads\"), \"data-cy-upload-picker-cancel\": \"\" }, on: { \"click\": _vm.onCancel }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconCancel\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 3076329829) }) : _vm._e(), _c(\"input\", { ref: \"input\", staticClass: \"hidden-visually\", attrs: { \"accept\": _vm.accept?.join?.(\", \"), \"multiple\": _vm.multiple, \"data-cy-upload-picker-input\": \"\", \"type\": \"file\" }, on: { \"change\": _vm.onPick } })], 1) : _vm._e();\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"e69e222f\"\n);\nconst UploadPicker = __component__.exports;\nfunction getUploader(isPublic = isPublicShare(), forceRecreate = false) {\n if (forceRecreate || window._nc_uploader === void 0) {\n window._nc_uploader = new Uploader(isPublic);\n }\n return window._nc_uploader;\n}\nfunction upload(destinationPath, file) {\n const uploader = getUploader();\n uploader.upload(destinationPath, file);\n return uploader;\n}\nasync function openConflictPicker(dirname, conflicts, content, options) {\n const ConflictPicker = defineAsyncComponent(() => import(\"./ConflictPicker-NXkHfBMv.mjs\"));\n return new Promise((resolve, reject) => {\n const picker = new Vue({\n name: \"ConflictPickerRoot\",\n render: (h) => h(ConflictPicker, {\n props: {\n dirname,\n conflicts,\n content,\n recursiveUpload: options?.recursive === true\n },\n on: {\n submit(results) {\n resolve(results);\n picker.$destroy();\n picker.$el?.parentNode?.removeChild(picker.$el);\n },\n cancel(error) {\n reject(error ?? new Error(\"Canceled\"));\n picker.$destroy();\n picker.$el?.parentNode?.removeChild(picker.$el);\n }\n }\n })\n });\n picker.$mount();\n document.body.appendChild(picker.$el);\n });\n}\nexport {\n Status$1 as S,\n UploadPicker as U,\n isFileSystemEntry as a,\n n as b,\n getConflicts as c,\n uploadConflictHandler as d,\n Upload as e,\n Uploader as f,\n getUploader as g,\n hasConflict as h,\n isFileSystemFileEntry as i,\n Status as j,\n logger as l,\n normalizeComponent as n,\n openConflictPicker as o,\n t,\n upload as u\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"2441\":\"fc741cf57e9647f370a3\",\"5266\":\"92742106cfd0ab7e96b2\",\"5862\":\"7b9b02dc0a1b898066ef\",\"7874\":\"3ea1c62ce5f0e7d75e81\",\"8320\":\"87233c1e751a74de3fe2\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2882;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2882: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(28874)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","getPinia","window","_nc_files_pinia","createPinia","getLoggerBuilder","setApp","detectUser","build","isTrashbinEnabled","getCapabilities","files","undelete","canUnshareOnly","nodes","every","node","attributes","canDisconnectOnly","displayName","view","length","t","id","hasSharedItems","some","hasDeleteItems","isMixedUnshareAndDelete","type","FileType","File","isAllFiles","Folder","isAllFolders","askConfirmation","async","message","n","count","Promise","resolve","OC","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","cancel","decision","deleteNode","axios","delete","encodedSource","emit","queue","PQueue","concurrency","action","FileAction","iconSvgInline","CloseSvg","enabled","loadState","allow_delete","map","permissions","permission","Permission","DELETE","exec","isCalledFromEventListener","Error","stack","toLocaleLowerCase","includes","showInfo","error","logger","source","execBatch","all","promises","add","order","shouldFavorite","favorite","favoriteNode","willFavorite","url","generateUrl","encodePath","path","post","tags","TAG_FAVORITE","dirname","Vue","StarOutlineSvg","StarSvg","isPublicShare","root","startsWith","NONE","PencilSvg","Boolean","InformationSvg","OCA","Files","Sidebar","dir","file","debug","setActiveTab","open","OCP","Router","goToRoute","fileid","String","query","opendetails","useActiveStore","store","defineStore","state","_initialized","activeNode","activeView","activeAction","actions","setActiveNode","this","clearActiveNode","onDeletedNode","setActiveAction","clearActiveAction","onChangedView","arguments","undefined","activeStore","navigation","getNavigation","subscribe","active","addEventListener","event","detail","executeAction","currentDir","currentNode","currentView","status","NodeStatus","LOADING","success","showSuccess","showError","initialUserConfig","show_hidden","crop_image_previews","sort_favorites_first","sort_folders_first","grid_view","useUserConfigStore","userConfig","ref","_ref","key","value","set","onUpdate","update","getCurrentUser","put","name","emits","props","title","fillColor","default","size","Number","_vm","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","throttle","delay","callback","options","timeoutID","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","cancelled","lastExec","clearExistingTimeout","clearTimeout","wrapper","_len","arguments_","Array","_key","self","elapsed","Date","now","apply","clear","setTimeout","_ref2$upcomingOnly","upcomingOnly","components","ChartPie","NcAppNavigationItem","NcProgressBar","data","loadingStorageStats","storageStats","computed","storageStatsTitle","usedQuotaByte","formatFileSize","used","quotaByte","quota","storageStatsTooltip","relative","beforeMount","setInterval","throttleUpdateStorageStats","mounted","free","showStorageFullWarning","methods","debounceUpdateStorageStats","_ref$atBegin","atBegin","updateStorageStats","response","get","translate","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","class","stopPropagation","preventDefault","slot","Math","min","el","Function","required","$el","appendChild","Clipboard","NcAppSettingsDialog","NcAppSettingsSection","NcCheckboxRadioSwitch","NcInputField","Setting","setup","userConfigStore","isSystemtagsEnabled","systemtags","settings","Settings","webdavUrl","generateRemoteUrl","encodeURIComponent","uid","webdavDocs","appPasswordUrl","webdavUrlCopied","enableGridView","created","useHotKey","showKeyboardShortcuts","stop","prevent","forEach","setting","beforeDestroy","close","onClose","setConfig","copyCloudId","document","querySelector","select","navigator","clipboard","writeText","$nextTick","getElementById","scrollIntoView","behavior","inline","folder_tree","_l","target","scopedSlots","_u","fn","proxy","useNavigation","_loaded","views","shallowRef","onUpdateActive","onUpdateViews","triggerRef","onMounted","onUnmounted","removeEventListener","initialViewConfig","useViewConfigStore","viewConfigs","viewId","getConfig","viewid","setSortingBy","toggleSortingDirection","sorting_direction","defineComponent","Fragment","NcIconSvgWrapper","parent","Object","level","viewConfigStore","currentViews","values","reduce","acc","filter","params","style","hasChildViews","useExactRouteMatching","generateToNavigation","isExpanded","expanded","onOpen","loadChildViews","filterView","viewMap","fromEntries","entries","_views","_setupProxy","loading","iconClass","sticky","icon","loaded","staticStyle","FilenameFilter","FileListFilter","constructor","super","_defineProperty","queryParts","searchQuery","split","displayname","part","reset","updateQuery","trim","filterUpdated","chips","push","text","onclick","updateChips","dispatchTypedEvent","CustomEvent","isFileListFilterWithUi","useFiltersStore","filters","filtersChanged","activeChips","flat","sortedFilters","sort","a","b","filtersWithUI","addFilter","onFilterUpdateChips","onFilterUpdate","removeFilter","filterId","index","findIndex","splice","getFileListFilters","collator","Intl","Collator","getLanguage","getCanonicalLocale","numeric","usage","IconCog","FilesNavigationItem","NavigationQuota","NcAppNavigation","NcAppNavigationList","NcAppNavigationSearch","SettingsModal","filtersStore","filenameFilter","registerFileListFilter","unregisterFileListFilter","watchThrottled","useFilenameFilter","settingsOpened","currentViewId","$route","compare","watch","newView","oldView","find","showView","to","loadExpandedViews","_ref2","viewsToLoad","_ref3","config","_ref4","setActive","openSettings","onSettingsClose","model","$$v","expression","element","width","observer","ResizeObserver","elements","contentBoxSize","inlineSize","contentRect","updateObserver","body","unobserve","observe","useFileListWidth","readonly","useRouteParameters","route","$root","_$route","run","assign","$router","currentRoute","afterEach","useRoute","directory","replace","fileId","parseInt","isNaN","openFile","openfile","openDetails","client","getClient","fetchNode","propfindPayload","getDefaultPropfind","result","stat","getRootPath","details","resultToNode","usePathsStore","useFilesStore","pathsStore","paths","getters","getPath","service","addPath","payload","deletePath","onCreatedNode","addNodeToParentChildren","deleteNodeFromParentChildren","onMovedNode","oldSource","oldPath","oldNode","owner","mime","parentSource","folder","getRoot","getNode","children","Set","_children","fileStore","roots","getNodes","sources","getNodesById","getNodesByPath","updateNodes","deleteNodes","setRoot","onUpdatedNode","then","onAddFavorite","ourNode","onRemoveFavorite","useSelectionStore","selected","lastSelection","lastSelectedIndex","selection","setLastIndex","uploader","useUploaderStore","getUploader","Directory","contents","_contents","_computeDirectorySize","lastModified","_computeDirectoryMtime","entry","traverseTree","isFile","reject","readDirectory","dirReader","createReader","getEntries","readEntries","results","createDirectoryIfNotExists","davClient","davGetClient","exists","absolutePath","createDirectory","recursive","davGetDefaultPropfind","davResultToNode","resolveConflict","destination","conflicts","basename","uploads","renamed","openConflictPicker","info","console","sharePermissions","MoveCopyAction","canMove","minPermission","ALL","canCopy","JSON","parse","attribute","scope","canDownload","CREATE","getContents","join","davRootPath","controller","AbortController","CancelablePromise","onCancel","abort","contentsResponse","getDirectoryContents","includeSelf","signal","slice","filename","getActionForNodes","MOVE_OR_COPY","MOVE","COPY","handleCopyMoveNodeTo","method","overwrite","actionFinished","mode","toast","isHTML","timeout","TOAST_PERMANENT_TIMEOUT","onRemove","hideToast","createLoadingNotification","copySuffix","currentPath","destinationPath","otherNodes","getUniqueName","suffix","ignoreFileExtension","copyFile","hasConflict","moveFile","parser","DOMParser","parseFromString","textContent","isAxiosError","openFilePickerForAction","promise","withResolvers","fileIDs","getFilePickerBuilder","allowDirectories","setFilter","setMimeTypeFilter","setMultiSelect","startAt","setButtonFactory","buttons","dirnames","label","escape","sanitize","CopyIconSvg","disabled","FolderMoveSvg","pick","catch","FilePickerClosed","e","dataTransferToFileTree","items","item","kind","getAsEntry","webkitGetAsEntry","warned","fileTree","DataTransferItem","warn","getAsFile","showWarning","onDropExternalFiles","uploadDirectoryContents","relativePath","joinPaths","upload","pause","start","errors","allSettled","onDropInternalFiles","isCopy","useDragAndDropStore","dragging","NcBreadcrumbs","NcBreadcrumb","draggingStore","filesStore","selectionStore","uploaderStore","fileListWidth","dirs","sections","getFileSourceFromPath","getNodeFromSource","exact","getDirDisplayName","getTo","disableDrop","isUploadInProgress","wrapUploadProgressBar","viewIcon","selectedFiles","draggingFiles","onClick","onDragOver","dataTransfer","ctrlKey","dropEffect","onDrop","canDrop","button","titleForSection","section","ariaForSection","_t","nativeOn","getSummaryFor","fileCount","folderCount","useActionsMenuStore","opened","isDialogVisible","useRenamingStore","renamingStore","renamingNode","newName","rename","oldName","oldEncodedSource","oldExtension","extname","newExtension","proceed","showWarningDialog","new","old","dialog","DialogBuilder","setName","setText","setButtons","oldextension","newextension","IconCheck","show","hide","headers","Destination","Overwrite","$reset","render","updateRootElement","replaceChildren","openedSubmenu","enabledSubmenuActions","enabledFileActions","record","isValidMenu","onBackToMenuClick","menuAction","$refs","focus","ArrowLeftIcon","CustomElementRender","NcActionButton","NcActions","NcActionSeparator","NcLoadingIcon","mixins","actionsMixins","gridMode","filesListWidth","inject","isActive","isLoading","enabledInlineActions","enabledRenderActions","renderInline","enabledMenuActions","DefaultType","HIDDEN","topActionsIds","openedMenu","getBoundariesElement","mountType","onKeyDown","actionDisplayName","isLoadingAction","onActionClick","refInFor","keyboardStore","altKey","metaKey","shiftKey","onEvent","useKeyboardStore","isSelected","ariaLabel","loadingLabel","onToggleSelect","ctrl","shift","onSelectionChange","newSelectedIndex","isAlreadySelected","end","max","filesToSelect","resetSelection","indexOf","_k","keyCode","extend","FileMultipleIcon","FolderIcon","isSingleNode","isSingleFolder","summary","totalSize","total","previewImg","preview","parentNode","cloneNode","Preview","DragAndDropPreview","directive","vOnClickOutside","getFileActions","NcFile","Node","isMtimeAvailable","compact","provide","defaultFileAction","dragover","uniqueId","str","hash","i","charCodeAt","hashCode","extension","isRenaming","isRenamingSmallScreen","currentFileId","isFailedSource","FAILED","canDrag","UPDATE","actionsMenuStore","toString","mtimeOpacity","maxOpacityTime","mtime","getTime","ratio","round","color","newSource","resetState","removeProperty","onRightClick","closest","getBoundingClientRect","setProperty","clientX","left","clientY","top","isMoreThanOneSelected","execDefaultAction","metaKeyPressed","READ","downloadAttribute","isDownloadable","openDetailsIfAvailable","sidebarAction","onDragLeave","currentTarget","contains","relatedTarget","onDragStart","clearData","image","$mount","$on","$off","getDragAndDropPreview","setDragImage","onDragEnd","getFilenameValidity","validateFilename","InvalidFilenameError","reason","InvalidFilenameErrorReason","Character","char","segment","ReservedName","Extension","match","NcTextField","renameLabel","linkTo","is","tabindex","immediate","handler","renaming","startRenaming","input","renameInput","validity","checkIfNodeExists","setCustomValidity","reportValidity","setSelectionRange","dispatchEvent","Event","stopRenaming","onRename","renameForm","checkValidity","nameContainer","directives","rawName","tag","domProps","q","x","r","f","pow","h","trunc","M","F","abs","d","z","L","floor","l","j","C","m","u","o","substring","c","s","Uint8ClampedArray","y","B","R","w","P","G","cos","PI","T","V","I","E","setAttribute","AccountGroupIcon","AccountPlusIcon","CollectivesIcon","FavoriteIcon","FileIcon","FolderOpenIcon","KeyIcon","LinkIcon","NetworkIcon","TagIcon","isPublic","publicSharingToken","getSharingToken","backgroundFailed","backgroundLoaded","isFavorite","cropPreviews","previewUrl","token","URL","location","origin","searchParams","etag","href","fileOverlay","PlayCircleIcon","folderOverlay","shareTypes","ShareType","Link","Email","hasBlurhash","canvas","drawBlurhash","src","onBackgroundLoad","onBackgroundError","height","pixels","decode","ctx","getContext","imageData","createImageData","putImageData","_m","FileEntryActions","FileEntryCheckbox","FileEntryName","FileEntryPreview","NcDateTime","FileEntryMixin","isSizeAvailable","rowListeners","dragstart","contextmenu","dragleave","dragend","drop","columns","sizeOpacity","getDate","crtime","mtimeTitle","moment","format","triggerDefaultAction","_g","column","inheritAttrs","_defineComponent","__name","__props","filterStore","visualFilters","filterElements","watchEffect","mount","__sfc","NcAvatar","NcChip","_setup","chip","user","header","currentFolder","updated","View","classForColumn","mapState","sortingMode","sorting_mode","defaultSortKey","isAscSorting","sortingDirection","toggleSortBy","MenuDown","MenuUp","NcButton","filesSortingMixin","FilesListTableHeaderButton","selectAllBind","checked","isAllSelected","indeterminate","isSomeSelected","selectedNodes","isNoneSelected","onToggleAll","ariaSortForMode","inlineActions","childrenActionsIds","menuActions","areSomeNodesLoading","selectionSources","$set","failedSources","dataComponent","dataKey","dataSources","extraProps","scrollToIndex","caption","beforeHeight","footerHeight","headerHeight","tableHeight","resizeObserver","isReady","bufferItems","columnCount","itemHeight","itemWidth","visibleRows","rowCount","startIndex","firstColumnIndex","shownItems","renderedItems","oldItemsKeys","$_recycledPool","unusedKeys","keys","pop","random","substr","totalRowCount","ceil","tbodyStyle","rowsAbove","rowsBelow","paddingBlock","minHeight","scrollTo","oldColumnCount","debounce","updateHeightVariables","onScroll","before","footer","disconnect","totalRows","clampedIndex","scrollTop","indexToScrollPos","_onScrollHandle","requestAnimationFrame","scrollPosToIndex","scrollPos","topScroll","clientHeight","theadHeight","thead","filterHeight","$scopedSlots","FileListFilters","FilesListHeader","FilesListTableFooter","FilesListTableHeader","VirtualList","FilesListTableHeaderActions","FileEntry","FileEntryGrid","getFileListHeaders","openFileId","sortedHeaders","cantUpload","isQuotaExceeded","defaultCaption","scrollToFile","handleOpenFile","openSidebarForFile","unselectFile","onSidebarClosed","unsubscribe","defaultAction","at","isForeignFile","types","tableElement","table","tableTop","tableBottom","nextIndex","nextNode","TrayArrowDownIcon","canUpload","cantUploadLabel","resetDragOver","mainContent","onContentDrop","lastUpload","findLast","UploadStatus","webkitRelativePath","isSharingEnabled","files_sharing","BreadCrumbs","DragAndDropNotice","FilesListVirtual","ListViewIcon","NcAppContent","NcEmptyContent","UploadPicker","ViewGridIcon","IconAlertCircleOutline","IconReload","forbiddenCharacters","loadingAction","dirContentsFiltered","getContent","normalizedPath","normalize","pageHeading","dirContents","dirContentsSorted","customColumn","reverse","sortNodes","sortFavoritesFirst","sortFoldersFirst","sortingOrder","isEmptyDir","isRefreshing","toPreviousDir","shareTypesAttributes","shareButtonLabel","shareButtonType","User","gridViewButtonLabel","canShare","SHARE","showCustomEmptyView","emptyView","enabledFileListActions","enabledActions","getFileListActions","toSorted","theming","productName","customEmptyView","fetchContent","newDir","oldDir","filesListVirtual","filterDirContent","onNodeDeleted","unmounted","fatal","isWebDAVClientError","humanizeWebDAVError","onUpload","onUploadFail","CANCELLED","doc","getElementsByTagName","openSharingSidebar","toggleGridView","execFileListAction","emptyTitle","emptyCaption","NcContent","FilesList","Navigation","use","originalPush","prototype","args","call","ignoreDuplicateNavigation","originalReplace","isNavigationFailure","NavigationFailureType","duplicated","_len2","_key2","base","linkActiveClass","routes","redirect","stringifyQuery","queryString","stringify","RouterService","router","_router","goTo","__webpack_nonce__","getCSPNonce","PiniaVuePlugin","renameAction","favoriteAction","deleteAction","parentDir","alt","_settings","register","_name","_el","_open","_close","FilesApp","pinia","___CSS_LOADER_EXPORT___","module","NewMenuEntryCategory","NewMenuEntryCategory2","NewFileMenu","_entries","registerEntry","validateEntry","category","unregisterEntry","entryIndex","getEntryIndex","context","DefaultType2","_action","validateAction","destructive","_nc_fileactions","_nc_filelistactions","_nc_filelistheader","InvalidFilenameErrorReason2","cause","capabilities","forbidden_filename_characters","_oc_config","forbidden_filenames_characters","character","forbidden_filenames","endOfBasename","basename2","forbidden_filename_basenames","forbiddenFilenameExtensions","forbidden_filename_extensions","endsWith","otherNames","opts","n2","i2","ext","humanList","humanListBinary","skipSmallSizes","binaryPrefixes","base1000","log","readableFormat","relativeSize","toFixed","parseFloat","toLocaleString","toISOString","sortingOptions","collection","identifiers2","orders","sorting","_","a2","b2","identifier","orderBy","v","lastIndexOf","_currentView","search","remove","_nc_navigation","Column","_column","isValidColumn","getDefaultExportFromCjs","__esModule","hasOwnProperty","hasRequiredUtil","hasRequiredValidator","validator","util","requireUtil","exports","nameStartChar","nameRegexp","regexName","RegExp","isExist","isEmptyObject","obj","merge","arrayMode","len","getValue","isName","string","getAllMatches","regex","matches","allmatches","lastIndex","requireValidator","util2","defaultOptions","allowBooleanAttributes","unpairedTags","isWhiteSpace","readPI","xmlData","tagname","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","msg","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","openPos","col","afterAmp","validateAmpersand","t2","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re2","validateNumberAmpersand","lineNumber","lines","hasRequiredOptionsBuilder","xmlNode","hasRequiredXmlNode","DocTypeReader","hasRequiredDocTypeReader","strnum","hasRequiredStrnum","ignoreAttributes","hasRequiredIgnoreAttributes","OrderedObjParser_1","hasRequiredOrderedObjParser","OptionsBuilder","requireIgnoreAttributes","ignoreAttributes2","isArray","pattern","test","hasRequiredNode2json","XMLParser_1","hasRequiredXMLParser","orderedJs2Xml","hasRequiredOrderedJs2Xml","json2xml","hasRequiredJson2xml","fxp","hasRequiredFxp","node2json","requireNode2json","compress","arr","jPath","compressedObj","tagObj","property","propName","newJpath","textNodeName","val","isLeaf","isLeafTag","assignAttributes","alwaysCreateTextNode","attrMap","jpath","atrrName","propCount","prettify","requireXMLParser","buildOptions","preserveOrder","attributeNamePrefix","attributesGroupName","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","requireOptionsBuilder","OrderedObjParser","xmlNode2","child","addChild","readDocType","readEntityExp","entityName","isEntity","isElement","isAttlist","isNotation","validateEntityName","entities","hasBody","comment","exp","regx","requireDocTypeReader","toNumber","hexRegex","numRegex","consider","decimalPoint","trimmedStr","skipLike","sign","numTrimmedByZeros","numStr","num","requireStrnum","getIgnoreAttributesFn","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","replaceEntitiesValue","newval","parseValue","resolveNameSpace","prefix","charAt","attrsRegx","buildAttributesMap","ignoreAttributesFn","oldVal","aName","newVal","attrCollection","parseXml","xmlObj","textData","closeIndex","findClosingIndex","colonIndex","saveTextToParentTag","lastTagName","propIndex","tagsNodeStack","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","docTypeEntities","rawTagName","lastTag","isItStopNode","tagContent","result2","readStopNodeData","entity","ampEntity","currentTagName","allNodesExp","stopNodePath","stopNodeExp","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","fromCharCode","requireOrderedObjParser","validator2","validationOption","orderedObjParser","orderedResult","addEntity","requireOrderedJs2Xml","arrToStr","indentation","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","attr","attrVal","suppressBooleanAttributes","textValue","jArray","fxpExports","XMLParser","XMLBuilder","buildFromOrderedJs","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","ajPath","j2x","concat","buildTextValNode","buildObjectNode","repeat","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","listTagAttr","j2","Ks","closeTag","tagEndExp","piClosingChar","requireJson2xml","XMLValidator","requireFxp","_view","isValidView","TypeError","jsonObject","toLowerCase","isSvg","debug_1","hasRequiredDebug","constants","hasRequiredConstants","requireDebug","process","env","NODE_DEBUG","requireConstants","MAX_SAFE_INTEGER","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","hasRequiredRe","parseOptions_1","hasRequiredParseOptions","identifiers","hasRequiredIdentifiers","semver","hasRequiredSemver","parse_1","hasRequiredParse","valid_1","hasRequiredValid","re","requireSemver","safeRe","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","parseOptions","looseOption","freeze","loose","emptyOpts","requireParseOptions","compareIdentifiers","anum","bnum","rcompareIdentifiers","requireIdentifiers","SemVer","version","includePrerelease","m2","LOOSE","FULL","raw","major","minor","patch","prerelease","other","compareMain","comparePre","compareBuild","inc","release","identifierBase","valid","throwErrors","er","requireParse","requireValid","major_1","hasRequiredMajor","requireMajor","ProxyBus","bus","bus2","getVersion","SimpleBus","handlers","Map","h2","e2","Proxy","_eventBus","_nc_event_bus","_nc_filelist_filters","has","getNewFileMenuEntries","_nc_newfilemenu","localeCompare","sensitivity","retries","uploadData","uploadData2","onUploadProgress","destinationFile","Blob","request","retryDelay","retryCount","getChunk","getMaxChunksSize","fileSize","maxChunkSize","appConfig","max_chunk_size","minimumChunkSize","Status$1","Status2","Upload","_source","_file","_isChunked","_chunks","_size","_uploaded","_startTime","_status","_controller","_response","chunked","chunks","isChunked","startTime","uploaded","isFileSystemFileEntry","FileSystemFileEntry","isFileSystemEntry","FileSystemEntry","_originalName","_path","sum","latest","originalName","from","getChild","addChildren","rootPath","FileSystemDirectoryEntry","reader","filePath","relPath","gtBuilder","detectLocale","addTranslation","locale","json","gt","ngettext","bind","gettext","Status","Uploader","_destinationFolder","_isPublic","_customHeaders","_uploadQueue","_jobQueue","chunked_upload","max_parallel_count","_queueSize","_queueProgress","_queueStatus","_notifiers","destinationFolder","maxChunksSize","customHeaders","structuredClone","setCustomHeader","deleteCustomerHeader","updateStats","progress","upload2","partialSum","addNotifier","notifier","_notifyAll","batchUpload","files2","rootFolder","UPLOADING","uploadDirectory","FINISHED","folderPath","currentUpload","selectedForUpload","directories","fileHandle","encodedDestinationFile","resolve2","disabledChunkUpload","blob","bytes","tempUrl","initChunkWorkspace","chunksQueue","chunk","bufferStart","bufferEnd","onIdle","normalizeComponent","scriptExports","render6","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","_scopeId","IconCancel","IconFolderUpload","IconPlus","IconUpload","showInvalidFilenameDialog","InvalidFilenameDialog","rest","skip","content","getConflicts","contentNames","NcActionCaption","accept","multiple","noMenu","allowFolders","progressTimeId","eta","timeLeft","newFileMenuEntries","uploadManager","menuEntriesUpload","UploadFromDevice","menuEntriesNew","CreateNew","menuEntriesOther","Other","canUploadFolders","createElement","totalQueueSize","uploadedQueueSize","hasFailure","isUploading","isAssembling","ASSEMBLING","isPaused","PAUSED","buttonLabel","buttonName","haveMenu","setDestination","updateStatus","report","onUploadCompletion","onTriggerPick","uploadFolders","webkitdirectory","click","onPick","contentsCallback","filesToUpload","defineProperty","finally","resetForm","form","estimate","Infinity","date","setSeconds","time","seconds","forceRecreate","_nc_uploader","ConflictPicker","picker","recursiveUpload","submit","$destroy","removeChild","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","O","chunkIds","priority","notFulfilled","fulfilled","getter","definition","enumerable","chunkId","g","globalThis","prop","done","script","needAttach","scripts","getAttribute","charset","nc","onScriptComplete","prev","onerror","onload","doneFns","head","Symbol","toStringTag","nmd","scriptUrl","importScripts","currentScript","toUpperCase","p","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/dist/files_sharing-files_sharing_tab.js b/dist/files_sharing-files_sharing_tab.js
index 67dca754628..114240111ee 100644
--- a/dist/files_sharing-files_sharing_tab.js
+++ b/dist/files_sharing-files_sharing_tab.js
@@ -1,2 +1,2 @@
-(()=>{"use strict";var e,t,r,i={69196:(e,t,r)=>{var i=r(85471),n=r(21777),o=r(53334);r.nc=(0,n.aV)(),window.OCA.Sharing||(window.OCA.Sharing={}),Object.assign(window.OCA.Sharing,{ShareSearch:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.results=[],console.debug("OCA.Sharing.ShareSearch initialized")}get state(){return this._state}addNewResult(e){return""!==e.displayName.trim()&&"function"==typeof e.handler?(this._state.results.push(e),!0):(console.error("Invalid search result provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ExternalLinkActions:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.actions=[],console.debug("OCA.Sharing.ExternalLinkActions initialized")}get state(){return this._state}registerAction(e){return OC.debug&&console.warn("OCA.Sharing.ExternalLinkActions is deprecated, use OCA.Sharing.ExternalShareAction instead"),"object"==typeof e&&e.icon&&e.name&&e.url?(this._state.actions.push(e),!0):(console.error("Invalid action provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ExternalShareActions:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.actions=[],console.debug("OCA.Sharing.ExternalShareActions initialized")}get state(){return this._state}registerAction(e){return"object"==typeof e&&"string"==typeof e.id&&"function"==typeof e.data&&Array.isArray(e.shareType)&&"object"==typeof e.handlers&&Object.values(e.handlers).every((e=>"function"==typeof e))?this._state.actions.findIndex((t=>t.id===e.id))>-1?(console.error(`An action with the same id ${e.id} already exists`,e),!1):(this._state.actions.push(e),!0):(console.error("Invalid action provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ShareTabSections:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_sections"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._sections=[]}registerSection(e){this._sections.push(e)}getSections(){return this._sections}}}),i.Ay.prototype.t=o.t,i.Ay.prototype.n=o.n;let a=null;window.addEventListener("DOMContentLoaded",(function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({id:"sharing",name:(0,o.t)("files_sharing","Sharing"),iconSvg:'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-share-variant" viewBox="0 0 24 24"><path 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" /></svg>',async mount(e,t,n){const o=(await Promise.all([r.e(4208),r.e(9699)]).then(r.bind(r,42805))).default,s=i.Ay.extend(o);a&&a.$destroy(),a=new s({parent:n}),await a.update(t),a.$mount(e)},update(e){a.update(e)},destroy(){a&&(a.$destroy(),a=null)}}))}))}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var r=n[e]={id:e,loaded:!1,exports:{}};return i[e].call(r.exports,r,r.exports,o),r.loaded=!0,r.exports}o.m=i,e=[],o.O=(t,r,i,n)=>{if(!r){var a=1/0;for(u=0;u<e.length;u++){r=e[u][0],i=e[u][1],n=e[u][2];for(var s=!0,c=0;c<r.length;c++)(!1&n||a>=n)&&Object.keys(o.O).every((e=>o.O[e](r[c])))?r.splice(c--,1):(s=!1,n<a&&(a=n));if(s){e.splice(u--,1);var l=i();void 0!==l&&(t=l)}}return t}n=n||0;for(var u=e.length;u>0&&e[u-1][2]>n;u--)e[u]=e[u-1];e[u]=[r,i,n]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((t,r)=>(o.f[r](e,t),t)),[])),o.u=e=>e+"-"+e+".js?v="+{857:"89447025dfbc21bc3d51",2441:"fc741cf57e9647f370a3",5862:"7b9b02dc0a1b898066ef",7874:"3ea1c62ce5f0e7d75e81",9699:"ed4cbb01b839b4397369"}[e],o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},r="nextcloud:",o.l=(e,i,n,a)=>{if(t[e])t[e].push(i);else{var s,c;if(void 0!==n)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var d=l[u];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==r+n){s=d;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",r+n),s.src=e),t[e]=[i];var f=(r,i)=>{s.onerror=s.onload=null,clearTimeout(p);var n=t[e];if(delete t[e],s.parentNode&&s.parentNode.removeChild(s),n&&n.forEach((e=>e(i))),r)return r(i)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),c&&document.head.appendChild(s)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.j=4958,(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var i=r.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=r[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{o.b=document.baseURI||self.location.href;var e={4958:0};o.f.j=(t,r)=>{var i=o.o(e,t)?e[t]:void 0;if(0!==i)if(i)r.push(i[2]);else{var n=new Promise(((r,n)=>i=e[t]=[r,n]));r.push(i[2]=n);var a=o.p+o.u(t),s=new Error;o.l(a,(r=>{if(o.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+n+": "+a+")",s.name="ChunkLoadError",s.type=n,s.request=a,i[1](s)}}),"chunk-"+t,t)}},o.O.j=t=>0===e[t];var t=(t,r)=>{var i,n,a=r[0],s=r[1],c=r[2],l=0;if(a.some((t=>0!==e[t]))){for(i in s)o.o(s,i)&&(o.m[i]=s[i]);if(c)var u=c(o)}for(t&&t(r);l<a.length;l++)n=a[l],o.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return o.O(u)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),o.nc=void 0;var a=o.O(void 0,[4208],(()=>o(69196)));a=o.O(a)})();
-//# sourceMappingURL=files_sharing-files_sharing_tab.js.map?v=c3a42358513f3a5712e2 \ No newline at end of file
+(()=>{"use strict";var e,t,r,i={69196:(e,t,r)=>{var i=r(85471),n=r(21777),o=r(53334);r.nc=(0,n.aV)(),window.OCA.Sharing||(window.OCA.Sharing={}),Object.assign(window.OCA.Sharing,{ShareSearch:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.results=[],console.debug("OCA.Sharing.ShareSearch initialized")}get state(){return this._state}addNewResult(e){return""!==e.displayName.trim()&&"function"==typeof e.handler?(this._state.results.push(e),!0):(console.error("Invalid search result provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ExternalLinkActions:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.actions=[],console.debug("OCA.Sharing.ExternalLinkActions initialized")}get state(){return this._state}registerAction(e){return OC.debug&&console.warn("OCA.Sharing.ExternalLinkActions is deprecated, use OCA.Sharing.ExternalShareAction instead"),"object"==typeof e&&e.icon&&e.name&&e.url?(this._state.actions.push(e),!0):(console.error("Invalid action provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ExternalShareActions:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_state"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._state={},this._state.actions=[],console.debug("OCA.Sharing.ExternalShareActions initialized")}get state(){return this._state}registerAction(e){return"object"==typeof e&&"string"==typeof e.id&&"function"==typeof e.data&&Array.isArray(e.shareType)&&"object"==typeof e.handlers&&Object.values(e.handlers).every((e=>"function"==typeof e))?this._state.actions.findIndex((t=>t.id===e.id))>-1?(console.error(`An action with the same id ${e.id} already exists`,e),!1):(this._state.actions.push(e),!0):(console.error("Invalid action provided",e),!1)}}}),Object.assign(window.OCA.Sharing,{ShareTabSections:new class{constructor(){var e,t,r;e=this,r=void 0,(t=function(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}(t="_sections"))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,this._sections=[]}registerSection(e){this._sections.push(e)}getSections(){return this._sections}}}),i.Ay.prototype.t=o.t,i.Ay.prototype.n=o.n;let a=null;window.addEventListener("DOMContentLoaded",(function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({id:"sharing",name:(0,o.t)("files_sharing","Sharing"),iconSvg:'<svg xmlns="http://www.w3.org/2000/svg" id="mdi-share-variant" viewBox="0 0 24 24"><path 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" /></svg>',async mount(e,t,n){const o=(await Promise.all([r.e(4208),r.e(2693)]).then(r.bind(r,37371))).default,s=i.Ay.extend(o);a&&a.$destroy(),a=new s({parent:n}),await a.update(t),a.$mount(e)},update(e){a.update(e)},destroy(){a&&(a.$destroy(),a=null)}}))}))}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var r=n[e]={id:e,loaded:!1,exports:{}};return i[e].call(r.exports,r,r.exports,o),r.loaded=!0,r.exports}o.m=i,e=[],o.O=(t,r,i,n)=>{if(!r){var a=1/0;for(u=0;u<e.length;u++){r=e[u][0],i=e[u][1],n=e[u][2];for(var s=!0,c=0;c<r.length;c++)(!1&n||a>=n)&&Object.keys(o.O).every((e=>o.O[e](r[c])))?r.splice(c--,1):(s=!1,n<a&&(a=n));if(s){e.splice(u--,1);var l=i();void 0!==l&&(t=l)}}return t}n=n||0;for(var u=e.length;u>0&&e[u-1][2]>n;u--)e[u]=e[u-1];e[u]=[r,i,n]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((t,r)=>(o.f[r](e,t),t)),[])),o.u=e=>e+"-"+e+".js?v="+{857:"89447025dfbc21bc3d51",2441:"fc741cf57e9647f370a3",2693:"12ccbb04e5fddc7ebc06",5862:"7b9b02dc0a1b898066ef",7874:"3ea1c62ce5f0e7d75e81"}[e],o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t={},r="nextcloud:",o.l=(e,i,n,a)=>{if(t[e])t[e].push(i);else{var s,c;if(void 0!==n)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var d=l[u];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==r+n){s=d;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",r+n),s.src=e),t[e]=[i];var f=(r,i)=>{s.onerror=s.onload=null,clearTimeout(p);var n=t[e];if(delete t[e],s.parentNode&&s.parentNode.removeChild(s),n&&n.forEach((e=>e(i))),r)return r(i)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),c&&document.head.appendChild(s)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),o.j=4958,(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var t=o.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var i=r.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=r[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{o.b=document.baseURI||self.location.href;var e={4958:0};o.f.j=(t,r)=>{var i=o.o(e,t)?e[t]:void 0;if(0!==i)if(i)r.push(i[2]);else{var n=new Promise(((r,n)=>i=e[t]=[r,n]));r.push(i[2]=n);var a=o.p+o.u(t),s=new Error;o.l(a,(r=>{if(o.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+n+": "+a+")",s.name="ChunkLoadError",s.type=n,s.request=a,i[1](s)}}),"chunk-"+t,t)}},o.O.j=t=>0===e[t];var t=(t,r)=>{var i,n,a=r[0],s=r[1],c=r[2],l=0;if(a.some((t=>0!==e[t]))){for(i in s)o.o(s,i)&&(o.m[i]=s[i]);if(c)var u=c(o)}for(t&&t(r);l<a.length;l++)n=a[l],o.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return o.O(u)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),o.nc=void 0;var a=o.O(void 0,[4208],(()=>o(69196)));a=o.O(a)})();
+//# sourceMappingURL=files_sharing-files_sharing_tab.js.map?v=2e8b5e466d22f1487ae1 \ No newline at end of file
diff --git a/dist/files_sharing-files_sharing_tab.js.map b/dist/files_sharing-files_sharing_tab.js.map
index 19622f1c525..cdda6b2f2b8 100644
--- a/dist/files_sharing-files_sharing_tab.js.map
+++ b/dist/files_sharing-files_sharing_tab.js.map
@@ -1 +1 @@
-{"version":3,"file":"files_sharing-files_sharing_tab.js?v=c3a42358513f3a5712e2","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files_sharing/src/files_sharing_tab.js","webpack:///nextcloud/apps/files_sharing/src/services/ShareSearch.js","webpack:///nextcloud/apps/files_sharing/src/services/ExternalLinkActions.js","webpack:///nextcloud/apps/files_sharing/src/services/ExternalShareActions.js","webpack:///nextcloud/apps/files_sharing/src/services/TabSections.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { t, n } from '@nextcloud/l10n'\n\nimport ShareSearch from './services/ShareSearch.js'\nimport ExternalLinkActions from './services/ExternalLinkActions.js'\nimport ExternalShareActions from './services/ExternalShareActions.js'\nimport TabSections from './services/TabSections.js'\n\n// eslint-disable-next-line n/no-missing-import, import/no-unresolved\nimport ShareVariant from '@mdi/svg/svg/share-variant.svg?raw'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\n// Init Sharing Tab Service\nif (!window.OCA.Sharing) {\n\twindow.OCA.Sharing = {}\n}\nObject.assign(window.OCA.Sharing, { ShareSearch: new ShareSearch() })\nObject.assign(window.OCA.Sharing, { ExternalLinkActions: new ExternalLinkActions() })\nObject.assign(window.OCA.Sharing, { ExternalShareActions: new ExternalShareActions() })\nObject.assign(window.OCA.Sharing, { ShareTabSections: new TabSections() })\n\nVue.prototype.t = t\nVue.prototype.n = n\n\n// Init Sharing tab component\nlet TabInstance = null\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tif (OCA.Files && OCA.Files.Sidebar) {\n\t\tOCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({\n\t\t\tid: 'sharing',\n\t\t\tname: t('files_sharing', 'Sharing'),\n\t\t\ticonSvg: ShareVariant,\n\n\t\t\tasync mount(el, fileInfo, context) {\n\t\t\t\tconst SharingTab = (await import('./views/SharingTab.vue')).default\n\t\t\t\tconst View = Vue.extend(SharingTab)\n\n\t\t\t\tif (TabInstance) {\n\t\t\t\t\tTabInstance.$destroy()\n\t\t\t\t}\n\t\t\t\tTabInstance = new View({\n\t\t\t\t\t// Better integration with vue parent component\n\t\t\t\t\tparent: context,\n\t\t\t\t})\n\t\t\t\t// Only mount after we have all the info we need\n\t\t\t\tawait TabInstance.update(fileInfo)\n\t\t\t\tTabInstance.$mount(el)\n\t\t\t},\n\n\t\t\tupdate(fileInfo) {\n\t\t\t\tTabInstance.update(fileInfo)\n\t\t\t},\n\n\t\t\tdestroy() {\n\t\t\t\tif (TabInstance) {\n\t\t\t\t\tTabInstance.$destroy()\n\t\t\t\t\tTabInstance = null\n\t\t\t\t}\n\t\t\t},\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\nexport default class ShareSearch {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.results = []\n\t\tconsole.debug('OCA.Sharing.ShareSearch initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ShareSearch\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new result\n\t * Mostly used by the guests app.\n\t * We should consider deprecation and add results via php ?\n\t *\n\t * @param {object} result entry to append\n\t * @param {string} [result.user] entry user\n\t * @param {string} result.displayName entry first line\n\t * @param {string} [result.desc] entry second line\n\t * @param {string} [result.icon] entry icon\n\t * @param {Function} result.handler function to run on entry selection\n\t * @param {Function} [result.condition] condition to add entry or not\n\t * @return {boolean}\n\t */\n\taddNewResult(result) {\n\t\tif (result.displayName.trim() !== ''\n\t\t\t&& typeof result.handler === 'function') {\n\t\t\tthis._state.results.push(result)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error('Invalid search result provided', result)\n\t\treturn false\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class ExternalLinkActions {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.actions = []\n\t\tconsole.debug('OCA.Sharing.ExternalLinkActions initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ExternalLinkActions\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new action for the link share\n\t * Mostly used by the social sharing app.\n\t *\n\t * @param {object} action new action component to register\n\t * @return {boolean}\n\t */\n\tregisterAction(action) {\n\t\tOC.debug && console.warn('OCA.Sharing.ExternalLinkActions is deprecated, use OCA.Sharing.ExternalShareAction instead')\n\n\t\tif (typeof action === 'object' && action.icon && action.name && action.url) {\n\t\t\tthis._state.actions.push(action)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error('Invalid action provided', action)\n\t\treturn false\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class ExternalShareActions {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.actions = []\n\t\tconsole.debug('OCA.Sharing.ExternalShareActions initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ExternalLinkActions\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * @typedef ExternalShareActionData\n\t * @property {import('vue').Component} is Vue component to render, for advanced actions the `async onSave` method of the component will be called when saved\n\t */\n\n\t/**\n\t * Register a new option/entry for the a given share type\n\t *\n\t * @param {object} action new action component to register\n\t * @param {string} action.id unique action id\n\t * @param {(data: any) => ExternalShareActionData & Record<string, unknown>} action.data data to bind the component to\n\t * @param {Array} action.shareType list of \\@nextcloud/sharing.Types.SHARE_XXX to be mounted on\n\t * @param {boolean} action.advanced `true` if the action entry should be rendered within advanced settings\n\t * @param {object} action.handlers list of listeners\n\t * @return {boolean}\n\t */\n\tregisterAction(action) {\n\t\t// Validate action\n\t\tif (typeof action !== 'object'\n\t\t\t|| typeof action.id !== 'string'\n\t\t\t|| typeof action.data !== 'function' // () => {disabled: true}\n\t\t\t|| !Array.isArray(action.shareType) // [\\@nextcloud/sharing.Types.Link, ...]\n\t\t\t|| typeof action.handlers !== 'object' // {click: () => {}, ...}\n\t\t\t|| !Object.values(action.handlers).every(handler => typeof handler === 'function')) {\n\t\t\tconsole.error('Invalid action provided', action)\n\t\t\treturn false\n\t\t}\n\n\t\t// Check duplicates\n\t\tconst hasDuplicate = this._state.actions.findIndex(check => check.id === action.id) > -1\n\t\tif (hasDuplicate) {\n\t\t\tconsole.error(`An action with the same id ${action.id} already exists`, action)\n\t\t\treturn false\n\t\t}\n\n\t\tthis._state.actions.push(action)\n\t\treturn true\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class TabSections {\n\n\t_sections\n\n\tconstructor() {\n\t\tthis._sections = []\n\t}\n\n\t/**\n\t * @param {registerSectionCallback} section To be called to mount the section to the sharing sidebar\n\t */\n\tregisterSection(section) {\n\t\tthis._sections.push(section)\n\t}\n\n\tgetSections() {\n\t\treturn this._sections\n\t}\n\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"857\":\"89447025dfbc21bc3d51\",\"2441\":\"fc741cf57e9647f370a3\",\"5862\":\"7b9b02dc0a1b898066ef\",\"7874\":\"3ea1c62ce5f0e7d75e81\",\"9699\":\"ed4cbb01b839b4397369\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4958;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4958: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(69196)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","__webpack_nonce__","getCSPNonce","window","OCA","Sharing","Object","assign","ShareSearch","constructor","this","_state","results","console","debug","state","addNewResult","result","displayName","trim","handler","push","error","ExternalLinkActions","actions","registerAction","action","OC","warn","icon","name","url","ExternalShareActions","id","data","Array","isArray","shareType","handlers","values","every","findIndex","check","ShareTabSections","_sections","registerSection","section","getSections","Vue","prototype","t","n","TabInstance","addEventListener","Files","Sidebar","registerTab","Tab","iconSvg","mount","el","fileInfo","context","SharingTab","default","View","extend","$destroy","parent","update","$mount","destroy","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","keys","key","splice","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"files_sharing-files_sharing_tab.js?v=2e8b5e466d22f1487ae1","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files_sharing/src/files_sharing_tab.js","webpack:///nextcloud/apps/files_sharing/src/services/ShareSearch.js","webpack:///nextcloud/apps/files_sharing/src/services/ExternalLinkActions.js","webpack:///nextcloud/apps/files_sharing/src/services/ExternalShareActions.js","webpack:///nextcloud/apps/files_sharing/src/services/TabSections.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport Vue from 'vue'\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { t, n } from '@nextcloud/l10n'\n\nimport ShareSearch from './services/ShareSearch.js'\nimport ExternalLinkActions from './services/ExternalLinkActions.js'\nimport ExternalShareActions from './services/ExternalShareActions.js'\nimport TabSections from './services/TabSections.js'\n\n// eslint-disable-next-line n/no-missing-import, import/no-unresolved\nimport ShareVariant from '@mdi/svg/svg/share-variant.svg?raw'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\n// Init Sharing Tab Service\nif (!window.OCA.Sharing) {\n\twindow.OCA.Sharing = {}\n}\nObject.assign(window.OCA.Sharing, { ShareSearch: new ShareSearch() })\nObject.assign(window.OCA.Sharing, { ExternalLinkActions: new ExternalLinkActions() })\nObject.assign(window.OCA.Sharing, { ExternalShareActions: new ExternalShareActions() })\nObject.assign(window.OCA.Sharing, { ShareTabSections: new TabSections() })\n\nVue.prototype.t = t\nVue.prototype.n = n\n\n// Init Sharing tab component\nlet TabInstance = null\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tif (OCA.Files && OCA.Files.Sidebar) {\n\t\tOCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab({\n\t\t\tid: 'sharing',\n\t\t\tname: t('files_sharing', 'Sharing'),\n\t\t\ticonSvg: ShareVariant,\n\n\t\t\tasync mount(el, fileInfo, context) {\n\t\t\t\tconst SharingTab = (await import('./views/SharingTab.vue')).default\n\t\t\t\tconst View = Vue.extend(SharingTab)\n\n\t\t\t\tif (TabInstance) {\n\t\t\t\t\tTabInstance.$destroy()\n\t\t\t\t}\n\t\t\t\tTabInstance = new View({\n\t\t\t\t\t// Better integration with vue parent component\n\t\t\t\t\tparent: context,\n\t\t\t\t})\n\t\t\t\t// Only mount after we have all the info we need\n\t\t\t\tawait TabInstance.update(fileInfo)\n\t\t\t\tTabInstance.$mount(el)\n\t\t\t},\n\n\t\t\tupdate(fileInfo) {\n\t\t\t\tTabInstance.update(fileInfo)\n\t\t\t},\n\n\t\t\tdestroy() {\n\t\t\t\tif (TabInstance) {\n\t\t\t\t\tTabInstance.$destroy()\n\t\t\t\t\tTabInstance = null\n\t\t\t\t}\n\t\t\t},\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\nexport default class ShareSearch {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.results = []\n\t\tconsole.debug('OCA.Sharing.ShareSearch initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ShareSearch\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new result\n\t * Mostly used by the guests app.\n\t * We should consider deprecation and add results via php ?\n\t *\n\t * @param {object} result entry to append\n\t * @param {string} [result.user] entry user\n\t * @param {string} result.displayName entry first line\n\t * @param {string} [result.desc] entry second line\n\t * @param {string} [result.icon] entry icon\n\t * @param {Function} result.handler function to run on entry selection\n\t * @param {Function} [result.condition] condition to add entry or not\n\t * @return {boolean}\n\t */\n\taddNewResult(result) {\n\t\tif (result.displayName.trim() !== ''\n\t\t\t&& typeof result.handler === 'function') {\n\t\t\tthis._state.results.push(result)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error('Invalid search result provided', result)\n\t\treturn false\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class ExternalLinkActions {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.actions = []\n\t\tconsole.debug('OCA.Sharing.ExternalLinkActions initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ExternalLinkActions\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new action for the link share\n\t * Mostly used by the social sharing app.\n\t *\n\t * @param {object} action new action component to register\n\t * @return {boolean}\n\t */\n\tregisterAction(action) {\n\t\tOC.debug && console.warn('OCA.Sharing.ExternalLinkActions is deprecated, use OCA.Sharing.ExternalShareAction instead')\n\n\t\tif (typeof action === 'object' && action.icon && action.name && action.url) {\n\t\t\tthis._state.actions.push(action)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error('Invalid action provided', action)\n\t\treturn false\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class ExternalShareActions {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.actions = []\n\t\tconsole.debug('OCA.Sharing.ExternalShareActions initialized')\n\t}\n\n\t/**\n\t * Get the state\n\t *\n\t * @readonly\n\t * @memberof ExternalLinkActions\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * @typedef ExternalShareActionData\n\t * @property {import('vue').Component} is Vue component to render, for advanced actions the `async onSave` method of the component will be called when saved\n\t */\n\n\t/**\n\t * Register a new option/entry for the a given share type\n\t *\n\t * @param {object} action new action component to register\n\t * @param {string} action.id unique action id\n\t * @param {(data: any) => ExternalShareActionData & Record<string, unknown>} action.data data to bind the component to\n\t * @param {Array} action.shareType list of \\@nextcloud/sharing.Types.SHARE_XXX to be mounted on\n\t * @param {boolean} action.advanced `true` if the action entry should be rendered within advanced settings\n\t * @param {object} action.handlers list of listeners\n\t * @return {boolean}\n\t */\n\tregisterAction(action) {\n\t\t// Validate action\n\t\tif (typeof action !== 'object'\n\t\t\t|| typeof action.id !== 'string'\n\t\t\t|| typeof action.data !== 'function' // () => {disabled: true}\n\t\t\t|| !Array.isArray(action.shareType) // [\\@nextcloud/sharing.Types.Link, ...]\n\t\t\t|| typeof action.handlers !== 'object' // {click: () => {}, ...}\n\t\t\t|| !Object.values(action.handlers).every(handler => typeof handler === 'function')) {\n\t\t\tconsole.error('Invalid action provided', action)\n\t\t\treturn false\n\t\t}\n\n\t\t// Check duplicates\n\t\tconst hasDuplicate = this._state.actions.findIndex(check => check.id === action.id) > -1\n\t\tif (hasDuplicate) {\n\t\t\tconsole.error(`An action with the same id ${action.id} already exists`, action)\n\t\t\treturn false\n\t\t}\n\n\t\tthis._state.actions.push(action)\n\t\treturn true\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class TabSections {\n\n\t_sections\n\n\tconstructor() {\n\t\tthis._sections = []\n\t}\n\n\t/**\n\t * @param {registerSectionCallback} section To be called to mount the section to the sharing sidebar\n\t */\n\tregisterSection(section) {\n\t\tthis._sections.push(section)\n\t}\n\n\tgetSections() {\n\t\treturn this._sections\n\t}\n\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"857\":\"89447025dfbc21bc3d51\",\"2441\":\"fc741cf57e9647f370a3\",\"2693\":\"12ccbb04e5fddc7ebc06\",\"5862\":\"7b9b02dc0a1b898066ef\",\"7874\":\"3ea1c62ce5f0e7d75e81\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4958;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4958: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(69196)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","__webpack_nonce__","getCSPNonce","window","OCA","Sharing","Object","assign","ShareSearch","constructor","this","_state","results","console","debug","state","addNewResult","result","displayName","trim","handler","push","error","ExternalLinkActions","actions","registerAction","action","OC","warn","icon","name","url","ExternalShareActions","id","data","Array","isArray","shareType","handlers","values","every","findIndex","check","ShareTabSections","_sections","registerSection","section","getSections","Vue","prototype","t","n","TabInstance","addEventListener","Files","Sidebar","registerTab","Tab","iconSvg","mount","el","fileInfo","context","SharingTab","default","View","extend","$destroy","parent","update","$mount","destroy","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","keys","key","splice","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file