1 |
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/files_trashbin/src/files_trashbin.js","webpack:///./apps/files_trashbin/src/app.js","webpack:///./apps/files_trashbin/src/filelist.js","webpack:///./apps/files_trashbin/src/trash.scss?7371","webpack:///./apps/files_trashbin/src/trash.scss","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","window","OCA","Trashbin","App","_initialized","client","initialize","$el","this","OC","Files","Client","host","getHost","port","getPort","root","linkToRemoteBase","getCurrentUser","uid","useHTTPS","getProtocol","urlParams","Util","History","parseUrlQuery","fileList","FileList","$","fileActions","_createFileActions","detailsViewEnabled","scrollTo","scrollto","config","getFilesConfig","multiSelectMenu","displayName","iconClass","shown","FileActions","register","PERMISSION_READ","filename","context","dir","getCurrentDirectory","changeDirectory","joinPaths","setDefault","registerAction","type","TYPE_INLINE","mime","permissions","actionHandler","tr","findFileEl","showFileBusyState","move","then","_removeCallback","Notification","show","render","actionSpec","isDefault","$actionLink","_makeActionLink","attr","children","$file","find","append","remove","document","ready","one","DELETED_REGEXP","RegExp","FILENAME_PROP","DELETION_TIME_PROP","TRASHBIN_ORIGINAL_LOCATION","TRASHBIN_TITLE","getDeletedFileName","basename","match","exec","length","options","_","extend","id","appName","addFileInfoParser","response","data","props","propStat","properties","path","title","mtime","parseInt","hasPreview","extraData","result","apply","arguments","click","_onClickRestoreSelected","setSort","breadcrumb","_makeCrumbs","parts","BreadCrumb","Plugins","attach","getDirectoryPermissions","PERMISSION_DELETE","_setCurrentDir","targetDir","baseDir","setPageTitle","_createRow","getAjaxUrl","action","params","q","buildQueryString","filePath","setupUploadEvents","linkTo","encodeURIComponent","replace","elementToFile","fileInfo","size","updateEmptyContent","exists","$fileList","toggleClass","files","updateSummary","fileSummary","update","event","preventDefault","self","pluck","getSelectedFiles","fileMultiSelectMenu","toggleLoading","restorePromises","map","file","Promise","all","_onClickDeleteSelected","allFiles","is","hideMask","setFiles","deletePromises","_onClickFile","parent","generatePreviewUrl","urlSpec","generateUrl","param","getDownloadUrl","updateStorageStatistics","isSelectedDeletable","_getWebdavProperties","concat","filesClient","getPropfindProperties","reload","_selectedFiles","_selectionSummary","clear","prop","showMask","_reloadCall","abort","getFolderContents","includeParent","callBack","reloadCallback","status","content","locals","add","default","___CSS_LOADER_API_IMPORT___","push","useSourceMap","list","toString","item","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","JSON","stringify","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","listToStyles","parentId","styles","newStyles","part","css","media","hasDocument","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","createElement","appendChild","obj","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,OAIjBlC,EAAoBA,EAAoBmC,EAAI,G,+BClFrD,sBAIAC,OAAOC,IAAIC,SAAWD,IAAIC,U,cCS1BD,IAAIC,SAAW,GAIfD,IAAIC,SAASC,IAAM,CAClBC,cAAc,EAEdC,OAAQ,KAERC,WAAY,SAASC,GACpB,IAAIC,KAAKJ,aAAT,CAGAI,KAAKJ,cAAe,EAEpBI,KAAKH,OAAS,IAAII,GAAGC,MAAMC,OAAO,CACjCC,KAAMH,GAAGI,UACTC,KAAML,GAAGM,UACTC,KAAMP,GAAGQ,iBAAiB,OAAS,aAAeR,GAAGS,iBAAiBC,IACtEC,SAA+B,UAArBX,GAAGY,gBAEd,IAAMC,EAAYb,GAAGc,KAAKC,QAAQC,gBAClCjB,KAAKkB,SAAW,IAAIzB,IAAIC,SAASyB,SAChCC,EAAE,yBAA0B,CAC3BC,YAAarB,KAAKsB,qBAClBC,oBAAoB,EACpBC,SAAUV,EAAUW,SACpBC,OAAQjC,IAAIS,MAAMP,IAAIgC,iBACtBC,gBAAiB,CAChB,CACC7D,KAAM,UACN8D,YAAanD,EAAE,iBAAkB,WACjCoD,UAAW,gBAEZ,CACC/D,KAAM,SACN8D,YAAanD,EAAE,iBAAkB,sBACjCoD,UAAW,gBAGbjC,OAAQG,KAAKH,OAIbkC,OAAO,MAKVT,mBAAoB,WACnB,IAAMzB,EAASG,KAAKH,OACdwB,EAAc,IAAI5B,IAAIS,MAAM8B,YA4DlC,OA3DAX,EAAYY,SAAS,MAAO,OAAQhC,GAAGiC,gBAAiB,IAAI,SAASC,EAAUC,GAC9E,IAAMC,EAAMD,EAAQlB,SAASoB,sBAC7BF,EAAQlB,SAASqB,gBAAgBtC,GAAGuC,UAAUH,EAAKF,OAGpDd,EAAYoB,WAAW,MAAO,QAE9BpB,EAAYqB,eAAe,CAC1B3E,KAAM,UACN8D,YAAanD,EAAE,iBAAkB,WACjCiE,KAAMlD,IAAIS,MAAM8B,YAAYY,YAC5BC,KAAM,MACNC,YAAa7C,GAAGiC,gBAChBJ,UAAW,eACXiB,cAAe,SAASZ,EAAUC,GACjC,IAAMlB,EAAWkB,EAAQlB,SACnB8B,EAAK9B,EAAS+B,WAAWd,GAC/BjB,EAASgC,kBAAkBF,GAAI,GAC/B,IAAMX,EAAMD,EAAQlB,SAASoB,sBAC7BzC,EAAOsD,KAAKlD,GAAGuC,UAAU,QAASH,EAAKF,GAAWlC,GAAGuC,UAAU,UAAWL,IAAW,GACnFiB,KACAlC,EAASmC,gBAAgBrE,KAAKkC,EAAU,CAACiB,KACzC,WACCjB,EAASgC,kBAAkBF,GAAI,GAC/B/C,GAAGqD,aAAaC,KAAK7E,EAAE,iBAAkB,mDAM9C2C,EAAYqB,eAAe,CAC1B3E,KAAM,SACN8D,YAAanD,EAAE,iBAAkB,sBACjCmE,KAAM,MACNC,YAAa7C,GAAGiC,gBAChBJ,UAAW,cACX0B,OAAQ,SAASC,EAAYC,EAAWtB,GACvC,IAAMuB,EAActC,EAAYuC,gBAAgBH,EAAYrB,GAI5D,OAHAuB,EAAYE,KAAK,iBAAkBnF,EAAE,iBAAkB,uBACvDiF,EAAYG,SAAS,OAAOD,KAAK,MAAOnF,EAAE,iBAAkB,uBAC5D0D,EAAQ2B,MAAMC,KAAK,WAAWC,OAAON,GAC9BA,GAERZ,cAAe,SAASZ,EAAUC,GACjC,IAAMlB,EAAWkB,EAAQlB,SACzBE,EAAE,UAAU8C,SACZ,IAAMlB,EAAK9B,EAAS+B,WAAWd,GAC/BjB,EAASgC,kBAAkBF,GAAI,GAC/B,IAAMX,EAAMD,EAAQlB,SAASoB,sBAC7BzC,EAAOqE,OAAOjE,GAAGuC,UAAU,QAASH,EAAKF,IACvCiB,KACAlC,EAASmC,gBAAgBrE,KAAKkC,EAAU,CAACiB,KACzC,WACCjB,EAASgC,kBAAkBF,GAAI,GAC/B/C,GAAGqD,aAAaC,KAAK7E,EAAE,iBAAkB,kDAKvC2C,IAITD,EAAE+C,UAAUC,OAAM,WACjBhD,EAAE,yBAAyBiD,IAAI,QAAQ,WAC1B5E,IAAIC,SAASC,IACrBG,WAAWsB,EAAE,iC,eCzHnB,WACC,IAAIkD,EAAiB,IAAIC,OAAO,mBAC5BC,EAAgB,6CAChBC,EAAqB,kDACrBC,EAA6B,sDAC7BC,EAAiB,0CASrB,SAASC,EAAmB7G,GAC3BA,EAAOkC,GAAG4E,SAAS9G,GACnB,IAAI+G,EAAQR,EAAeS,KAAKhH,GAIhC,OAHI+G,GAASA,EAAME,OAAS,IAC3BjH,EAAO+G,EAAM,IAEP/G,EAYR,IAAIoD,EAAW,SAASpB,EAAKkF,GAC5BjF,KAAKH,OAASoF,EAAQpF,OACtBG,KAAKF,WAAWC,EAAKkF,IAEtB9D,EAAS/B,UAAY8F,EAAEC,OAAO,GAAI1F,IAAIS,MAAMiB,SAAS/B,UACN,CAC9CgG,GAAI,WACJC,QAAS3G,EAAE,iBAAkB,iBAE7BmB,OAAQ,KAKRC,WAAY,WACXE,KAAKH,OAAOyF,mBAAkB,SAASC,EAAUC,GAChD,IAAIC,EAAQF,EAASG,SAAS,GAAGC,WAC7BC,EAAOH,EAAMf,GACbmB,EAAQJ,EAAMd,GAClB,MAAO,CACN9C,YAAa4D,EAAMjB,GACnBsB,MAAiD,IAA1CC,SAASN,EAAMhB,GAAqB,IAC3CuB,YAAY,EACZJ,KAAMA,EACNK,UAAWJ,MAIb,IAAIK,EAASzG,IAAIS,MAAMiB,SAAS/B,UAAUU,WAAWqG,MAAMnG,KAAMoG,WAkBhE,OAjBDpG,KAAKD,IAAIiE,KAAK,aAAaqC,MAAM,QAASnB,EAAElG,KAAKgB,KAAKsG,wBAAyBtG,OAE/EA,KAAKuG,QAAQ,QAAS,QAMrBvG,KAAKwG,WAAWC,YAAc,WAE7B,IADA,IAAIC,EAAQjH,IAAIS,MAAMyG,WAAWvH,UAAUqH,YAAYN,MAAMnG,KAAjD,qCAA2DoG,WAA3D,CAAsE,0BACzE5I,EAAI,EAAGA,EAAIkJ,EAAM1B,OAAQxH,IACjCkJ,EAAMlJ,GAAGO,KAAO6G,EAAmB8B,EAAMlJ,GAAGO,MAE7C,OAAO2I,GAGRzG,GAAG2G,QAAQC,OAAO,wBAAyB7G,MACpCkG,GAMRY,wBAAyB,WACxB,OAAO7G,GAAGiC,gBAAkBjC,GAAG8G,mBAGhCC,eAAgB,SAASC,GACxBxH,IAAIS,MAAMiB,SAAS/B,UAAU4H,eAAeb,MAAMnG,KAAMoG,WAExD,IAAIc,EAAUjH,GAAG4E,SAASoC,GACV,KAAZC,GACHlH,KAAKmH,aAAavC,EAAmBsC,KAIvCE,WAAY,WAEX,IAAIpE,EAAKvD,IAAIS,MAAMiB,SAAS/B,UAAUgI,WAAWjB,MAAMnG,KAAMoG,WAE7D,OADApD,EAAGgB,KAAK,eAAeE,SAChBlB,GAGRqE,WAAY,SAASC,EAAQC,GAC5B,IAAIC,EAAI,GAIR,OAHID,IACHC,EAAI,IAAMvH,GAAGwH,iBAAiBF,IAExBtH,GAAGyH,SAAS,iBAAkB,OAAQJ,EAAS,QAAUE,GAGjEG,kBAAmB,aAInBC,OAAQ,SAASvF,GAChB,OAAOpC,GAAG2H,OAAO,QAAS,aAAe,sBAAwBC,mBAAmBxF,GAAKyF,QAAQ,OAAQ,MAG1GC,cAAe,SAAShI,GACvB,IAAIiI,EAAWvI,IAAIS,MAAMiB,SAAS/B,UAAU2I,cAAchI,GAM1D,MALmC,MAA/BC,KAAKsC,wBACR0F,EAASnG,YAAc+C,EAAmBoD,EAASjK,cAG7CiK,EAASC,KACTD,GAGRE,mBAAoB,WACnB,IAAIC,EAASnI,KAAKoI,UAAUpE,KAAK,YAAYmE,SAC7CnI,KAAKD,IAAIiE,KAAK,iBAAiBqE,YAAY,SAAUF,GACrDnI,KAAKD,IAAIiE,KAAK,kBAAkBqE,YAAY,UAAWF,IAGxD9E,gBAAiB,SAASiF,GAEzB,IADA,IAAIvI,EACKvC,EAAI,EAAGA,EAAI8K,EAAMtD,OAAQxH,IACjCuC,EAAMC,KAAKkE,OAAOjE,GAAG4E,SAASyD,EAAM9K,IAAK,CAAE+K,eAAe,IAC1DvI,KAAKwI,YAAYtE,OAAO,CAAEvB,KAAM5C,EAAI8D,KAAK,aAAcoE,KAAMlI,EAAI8D,KAAK,eAEvE7D,KAAKwI,YAAYC,SACjBzI,KAAKkI,sBAGN5B,wBAAyB,SAASoC,GACjCA,EAAMC,iBAGN,IAFA,IAAIC,EAAO5I,KACPsI,EAAQpD,EAAE2D,MAAM7I,KAAK8I,mBAAoB,QACpCtL,EAAI,EAAGA,EAAI8K,EAAMtD,OAAQxH,IAAK,CACtC,IAAIwF,EAAKhD,KAAKiD,WAAWqF,EAAM9K,IAC/BwC,KAAKkD,kBAAkBF,GAAI,GAG5BhD,KAAK+I,oBAAoBC,cAAc,WAAW,GAClD,IAAIC,EAAkBX,EAAMY,KAAI,SAASC,GACxC,OAAOP,EAAK/I,OAAOsD,KAAKlD,GAAGuC,UAAU,QAASoG,EAAKtG,sBAAuB6G,GAAOlJ,GAAGuC,UAAU,UAAW2G,IAAO,GAC9G/F,MACA,WACCwF,EAAKvF,gBAAgB,CAAC8F,UAI1B,OAAOC,QAAQC,IAAIJ,GAAiB7F,MACnC,WACCwF,EAAKG,oBAAoBC,cAAc,WAAW,MAEnD,WACC/I,GAAGqD,aAAaC,KAAK7E,EAAE,iBAAkB,kDAK5C4K,uBAAwB,SAASZ,GAChCA,EAAMC,iBAIN,IAHA,IAAIC,EAAO5I,KACPuJ,EAAWvJ,KAAKD,IAAIiE,KAAK,eAAewF,GAAG,YAC3ClB,EAAQpD,EAAE2D,MAAM7I,KAAK8I,mBAAoB,QACpCtL,EAAI,EAAGA,EAAI8K,EAAMtD,OAAQxH,IAAK,CACtC,IAAIwF,EAAKhD,KAAKiD,WAAWqF,EAAM9K,IAC/BwC,KAAKkD,kBAAkBF,GAAI,GAG5B,GAAIuG,EACH,OAAOvJ,KAAKH,OAAOqE,OAAOjE,GAAGuC,UAAU,QAASxC,KAAKsC,wBACnDc,MACA,WACCwF,EAAKa,WACLb,EAAKc,SAAS,OAEf,WACCzJ,GAAGqD,aAAaC,KAAK7E,EAAE,iBAAkB,qCAI5CsB,KAAK+I,oBAAoBC,cAAc,UAAU,GACjD,IAAIW,EAAiBrB,EAAMY,KAAI,SAASC,GACvC,OAAOP,EAAK/I,OAAOqE,OAAOjE,GAAGuC,UAAU,QAASoG,EAAKtG,sBAAuB6G,IAC1E/F,MACA,WACCwF,EAAKvF,gBAAgB,CAAC8F,UAI1B,OAAOC,QAAQC,IAAIM,GAAgBvG,MAClC,WACCwF,EAAKG,oBAAoBC,cAAc,UAAU,MAElD,WACC/I,GAAGqD,aAAaC,KAAK7E,EAAE,iBAAkB,iDAM7CkL,aAAc,SAASlB,GACtB,IAAI7F,EAAOzB,EAAEpB,MAAM6J,SAASA,SAASrE,KAAK,QAI1C,MAHa,yBAAT3C,GACH6F,EAAMC,iBAEAlJ,IAAIS,MAAMiB,SAAS/B,UAAUwK,aAAazD,MAAMnG,KAAMoG,YAG9D0D,mBAAoB,SAASC,GAC5B,OAAO9J,GAAG+J,YAAY,iCAAmC5I,EAAE6I,MAAMF,IAGlEG,eAAgB,WAEf,MAAO,KAGRC,wBAAyB,aAKzBC,oBAAqB,WACpB,OAAO,GAMRC,qBAAsB,WACrB,MAAO,CAAC7F,EAAeC,EAAoBC,EAA4BC,GAAgB2F,OAAOtK,KAAKuK,YAAYC,0BAQhHC,OAAQ,WACPzK,KAAK0K,eAAiB,GACtB1K,KAAK2K,kBAAkBC,QACvB5K,KAAKD,IAAIiE,KAAK,eAAe6G,KAAK,WAAW,GAC7C7K,KAAK8K,WACD9K,KAAK+K,aACR/K,KAAK+K,YAAYC,QAElBhL,KAAK+K,YAAc/K,KAAKH,OAAOoL,kBAC9B,SAAWjL,KAAKsC,sBAAuB,CACtC4I,eAAe,EACfvF,WAAY3F,KAAKqK,yBAGnB,IAAIc,EAAWnL,KAAKoL,eAAepM,KAAKgB,MACxC,OAAOA,KAAK+K,YAAY3H,KAAK+H,EAAUA,IAExCC,eAAgB,SAASC,EAAQnF,GAIhC,cAHOlG,KAAK+K,YACZ/K,KAAKyJ,WAEU,MAAX4B,IAKW,MAAXA,GAEHrL,KAAKuC,gBAAgB,KACrBtC,GAAGqD,aAAaC,KAAK7E,EAAE,QAAS,iCACzB,GAIO,MAAX2M,GAEHrL,KAAKuC,gBAAgB,KACrBtC,GAAGqD,aAAaC,KAAK7E,EAAE,QAAS,uFACzB,GAGO,MAAX2M,GAEHrL,KAAKuC,gBAAgB,MACd,IAGO,IAAX8I,GAIJrL,KAAK0J,SAASxD,IAHN,OASXzG,IAAIC,SAASyB,SAAWA,EAvTzB,I,gBCPA,IAAImK,EAAU,EAAQ,GACA,iBAAZA,IAAsBA,EAAU,CAAC,CAAC/N,EAAOC,EAAI8N,EAAS,MAC7DA,EAAQC,SAAQhO,EAAOD,QAAUgO,EAAQC,SAG/BC,EADH,EAAQ,GAAkEC,SACnE,WAAYH,GAAS,EAAM,K,iBCN5ChO,EADkC,EAAQ,EAChCoO,EAA4B,IAE9BC,KAAK,CAACpO,EAAOC,EAAI,6VAAoW,KAE7XD,EAAOD,QAAUA,G,6BCEjBC,EAAOD,QAAU,SAAUsO,GACzB,IAAIC,EAAO,GAqCX,OAnCAA,EAAKC,SAAW,WACd,OAAO9L,KAAKkJ,KAAI,SAAU6C,GACxB,IAAIT,EAoCV,SAAgCS,EAAMH,GACpC,IAAIN,EAAUS,EAAK,IAAM,GAErBC,EAAaD,EAAK,GAEtB,IAAKC,EACH,OAAOV,EAGT,GAAIM,GAAgC,mBAATK,KAAqB,CAC9C,IAAIC,GAWWC,EAXeH,EAa5BI,EAASH,KAAKI,SAASxE,mBAAmByE,KAAKC,UAAUJ,MACzD3G,EAAO,+DAA+D8E,OAAO8B,GAC1E,OAAO9B,OAAO9E,EAAM,QAdrBgH,EAAaR,EAAWS,QAAQvD,KAAI,SAAUwD,GAChD,MAAO,iBAAiBpC,OAAO0B,EAAWW,YAAc,IAAIrC,OAAOoC,EAAQ,UAE7E,MAAO,CAACpB,GAAShB,OAAOkC,GAAYlC,OAAO,CAAC4B,IAAgBU,KAAK,MAOrE,IAAmBT,EAEbC,EACA5G,EAPJ,MAAO,CAAC8F,GAASsB,KAAK,MArDJC,CAAuBd,EAAMH,GAE3C,OAAIG,EAAK,GACA,UAAUzB,OAAOyB,EAAK,GAAI,MAAMzB,OAAOgB,EAAS,KAGlDA,KACNsB,KAAK,KAKVf,EAAKrO,EAAI,SAAUE,EAASoP,GACH,iBAAZpP,IAETA,EAAU,CAAC,CAAC,KAAMA,EAAS,MAG7B,IAAK,IAAIF,EAAI,EAAGA,EAAIE,EAAQsH,OAAQxH,IAAK,CACvC,IAAIuO,EAAO,GAAGzB,OAAO5M,EAAQF,IAEzBsP,IACGf,EAAK,GAGRA,EAAK,GAAK,GAAGzB,OAAOwC,EAAY,SAASxC,OAAOyB,EAAK,IAFrDA,EAAK,GAAKe,GAMdjB,EAAKF,KAAKI,KAIPF,I,6BC1CM,SAASkB,EAAcC,EAAUnB,GAG9C,IAFA,IAAIoB,EAAS,GACTC,EAAY,GACP1P,EAAI,EAAGA,EAAIqO,EAAK7G,OAAQxH,IAAK,CACpC,IAAIuO,EAAOF,EAAKrO,GACZ4H,EAAK2G,EAAK,GAIVoB,EAAO,CACT/H,GAAI4H,EAAW,IAAMxP,EACrB4P,IALQrB,EAAK,GAMbsB,MALUtB,EAAK,GAMfI,UALcJ,EAAK,IAOhBmB,EAAU9H,GAGb8H,EAAU9H,GAAIsB,MAAMiF,KAAKwB,GAFzBF,EAAOtB,KAAKuB,EAAU9H,GAAM,CAAEA,GAAIA,EAAIsB,MAAO,CAACyG,KAKlD,OAAOF,E,+CCjBT,IAAIK,EAAkC,oBAAbnJ,SAEzB,GAAqB,oBAAVoJ,OAAyBA,QAC7BD,EACH,MAAM,IAAIE,MACV,2JAkBJ,IAAIC,EAAc,GAQdC,EAAOJ,IAAgBnJ,SAASuJ,MAAQvJ,SAASwJ,qBAAqB,QAAQ,IAC9EC,EAAmB,KACnBC,EAAmB,EACnBC,GAAe,EACfC,EAAO,aACP9I,EAAU,KAKV+I,EAA+B,oBAAdC,WAA6B,eAAeC,KAAKD,UAAUE,UAAUC,eAE3E,SAASC,EAAiBrB,EAAUnB,EAAMyC,EAAeC,GACtET,EAAeQ,EAEfrJ,EAAUsJ,GAAY,GAEtB,IAAItB,EAASF,EAAaC,EAAUnB,GAGpC,OAFA2C,EAAevB,GAER,SAAiBwB,GAEtB,IADA,IAAIC,EAAY,GACPlR,EAAI,EAAGA,EAAIyP,EAAOjI,OAAQxH,IAAK,CACtC,IAAIuO,EAAOkB,EAAOzP,IACdmR,EAAWlB,EAAY1B,EAAK3G,KACvBwJ,OACTF,EAAU/C,KAAKgD,GAEbF,EAEFD,EADAvB,EAASF,EAAaC,EAAUyB,IAGhCxB,EAAS,GAEX,IAASzP,EAAI,EAAGA,EAAIkR,EAAU1J,OAAQxH,IAAK,CACzC,IAAImR,EACJ,GAAsB,KADlBA,EAAWD,EAAUlR,IACZoR,KAAY,CACvB,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAASjI,MAAM1B,OAAQ6J,IACzCF,EAASjI,MAAMmI,YAEVpB,EAAYkB,EAASvJ,OAMpC,SAASoJ,EAAgBvB,GACvB,IAAK,IAAIzP,EAAI,EAAGA,EAAIyP,EAAOjI,OAAQxH,IAAK,CACtC,IAAIuO,EAAOkB,EAAOzP,GACdmR,EAAWlB,EAAY1B,EAAK3G,IAChC,GAAIuJ,EAAU,CACZA,EAASC,OACT,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAASjI,MAAM1B,OAAQ6J,IACzCF,EAASjI,MAAMmI,GAAG9C,EAAKrF,MAAMmI,IAE/B,KAAOA,EAAI9C,EAAKrF,MAAM1B,OAAQ6J,IAC5BF,EAASjI,MAAMiF,KAAKmD,EAAS/C,EAAKrF,MAAMmI,KAEtCF,EAASjI,MAAM1B,OAAS+G,EAAKrF,MAAM1B,SACrC2J,EAASjI,MAAM1B,OAAS+G,EAAKrF,MAAM1B,YAEhC,CACL,IAAI0B,EAAQ,GACZ,IAASmI,EAAI,EAAGA,EAAI9C,EAAKrF,MAAM1B,OAAQ6J,IACrCnI,EAAMiF,KAAKmD,EAAS/C,EAAKrF,MAAMmI,KAEjCpB,EAAY1B,EAAK3G,IAAM,CAAEA,GAAI2G,EAAK3G,GAAIwJ,KAAM,EAAGlI,MAAOA,KAK5D,SAASqI,IACP,IAAIC,EAAe7K,SAAS8K,cAAc,SAG1C,OAFAD,EAAarM,KAAO,WACpB+K,EAAKwB,YAAYF,GACVA,EAGT,SAASF,EAAUK,GACjB,IAAI1G,EAAQvE,EACR8K,EAAe7K,SAASiL,cAAc,2BAA8BD,EAAI/J,GAAK,MAEjF,GAAI4J,EAAc,CAChB,GAAIlB,EAGF,OAAOC,EAOPiB,EAAaK,WAAWC,YAAYN,GAIxC,GAAIhB,EAAS,CAEX,IAAIuB,EAAa1B,IACjBmB,EAAepB,IAAqBA,EAAmBmB,KACvDtG,EAAS+G,EAAoBxQ,KAAK,KAAMgQ,EAAcO,GAAY,GAClErL,EAASsL,EAAoBxQ,KAAK,KAAMgQ,EAAcO,GAAY,QAGlEP,EAAeD,IACftG,EAASgH,EAAWzQ,KAAK,KAAMgQ,GAC/B9K,EAAS,WACP8K,EAAaK,WAAWC,YAAYN,IAMxC,OAFAvG,EAAO0G,GAEA,SAAsBO,GAC3B,GAAIA,EAAQ,CACV,GAAIA,EAAOtC,MAAQ+B,EAAI/B,KACnBsC,EAAOrC,QAAU8B,EAAI9B,OACrBqC,EAAOvD,YAAcgD,EAAIhD,UAC3B,OAEF1D,EAAO0G,EAAMO,QAEbxL,KAKN,IACMyL,EADFC,GACED,EAAY,GAET,SAAUE,EAAOC,GAEtB,OADAH,EAAUE,GAASC,EACZH,EAAUI,OAAOC,SAASpD,KAAK,QAI1C,SAAS4C,EAAqBR,EAAca,EAAO3L,EAAQiL,GACzD,IAAI/B,EAAMlJ,EAAS,GAAKiL,EAAI/B,IAE5B,GAAI4B,EAAaiB,WACfjB,EAAaiB,WAAWC,QAAUN,EAAYC,EAAOzC,OAChD,CACL,IAAI+C,EAAUhM,SAASiM,eAAehD,GAClCiD,EAAarB,EAAaqB,WAC1BA,EAAWR,IAAQb,EAAaM,YAAYe,EAAWR,IACvDQ,EAAWrL,OACbgK,EAAasB,aAAaH,EAASE,EAAWR,IAE9Cb,EAAaE,YAAYiB,IAK/B,SAASV,EAAYT,EAAcG,GACjC,IAAI/B,EAAM+B,EAAI/B,IACVC,EAAQ8B,EAAI9B,MACZlB,EAAYgD,EAAIhD,UAiBpB,GAfIkB,GACF2B,EAAauB,aAAa,QAASlD,GAEjCpI,EAAQuL,OACVxB,EAAauB,aA7JF,kBA6JyBpB,EAAI/J,IAGtC+G,IAGFiB,GAAO,mBAAqBjB,EAAUM,QAAQ,GAAK,MAEnDW,GAAO,uDAAyDnB,KAAKI,SAASxE,mBAAmByE,KAAKC,UAAUJ,MAAgB,OAG9H6C,EAAaiB,WACfjB,EAAaiB,WAAWC,QAAU9C,MAC7B,CACL,KAAO4B,EAAayB,YAClBzB,EAAaM,YAAYN,EAAayB,YAExCzB,EAAaE,YAAY/K,SAASiM,eAAehD","file":"files_trashbin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import './app'\nimport './filelist'\nimport './trash.scss'\n\nwindow.OCA.Trashbin = OCA.Trashbin\n","/**\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/**\n * @namespace OCA.Trashbin\n */\nOCA.Trashbin = {}\n/**\n * @namespace OCA.Trashbin.App\n */\nOCA.Trashbin.App = {\n\t_initialized: false,\n\t/** @type {OC.Files.Client} */\n\tclient: null,\n\n\tinitialize: function($el) {\n\t\tif (this._initialized) {\n\t\t\treturn\n\t\t}\n\t\tthis._initialized = true\n\n\t\tthis.client = new OC.Files.Client({\n\t\t\thost: OC.getHost(),\n\t\t\tport: OC.getPort(),\n\t\t\troot: OC.linkToRemoteBase('dav') + '/trashbin/' + OC.getCurrentUser().uid,\n\t\t\tuseHTTPS: OC.getProtocol() === 'https',\n\t\t})\n\t\tconst urlParams = OC.Util.History.parseUrlQuery()\n\t\tthis.fileList = new OCA.Trashbin.FileList(\n\t\t\t$('#app-content-trashbin'), {\n\t\t\t\tfileActions: this._createFileActions(),\n\t\t\t\tdetailsViewEnabled: false,\n\t\t\t\tscrollTo: urlParams.scrollto,\n\t\t\t\tconfig: OCA.Files.App.getFilesConfig(),\n\t\t\t\tmultiSelectMenu: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'restore',\n\t\t\t\t\t\tdisplayName: t('files_trashbin', 'Restore'),\n\t\t\t\t\t\ticonClass: 'icon-history',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'delete',\n\t\t\t\t\t\tdisplayName: t('files_trashbin', 'Delete permanently'),\n\t\t\t\t\t\ticonClass: 'icon-delete',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tclient: this.client,\n\t\t\t\t// The file list is created when a \"show\" event is handled, so\n\t\t\t\t// it should be marked as \"shown\" like it would have been done\n\t\t\t\t// if handling the event with the file list already created.\n\t\t\t\tshown: true,\n\t\t\t}\n\t\t)\n\t},\n\n\t_createFileActions: function() {\n\t\tconst client = this.client\n\t\tconst fileActions = new OCA.Files.FileActions()\n\t\tfileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function(filename, context) {\n\t\t\tconst dir = context.fileList.getCurrentDirectory()\n\t\t\tcontext.fileList.changeDirectory(OC.joinPaths(dir, filename))\n\t\t})\n\n\t\tfileActions.setDefault('dir', 'Open')\n\n\t\tfileActions.registerAction({\n\t\t\tname: 'Restore',\n\t\t\tdisplayName: t('files_trashbin', 'Restore'),\n\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\tmime: 'all',\n\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\ticonClass: 'icon-history',\n\t\t\tactionHandler: function(filename, context) {\n\t\t\t\tconst fileList = context.fileList\n\t\t\t\tconst tr = fileList.findFileEl(filename)\n\t\t\t\tfileList.showFileBusyState(tr, true)\n\t\t\t\tconst dir = context.fileList.getCurrentDirectory()\n\t\t\t\tclient.move(OC.joinPaths('trash', dir, filename), OC.joinPaths('restore', filename), true)\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfileList._removeCallback.bind(fileList, [filename]),\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tfileList.showFileBusyState(tr, false)\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while restoring file from trashbin'))\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t},\n\t\t})\n\n\t\tfileActions.registerAction({\n\t\t\tname: 'Delete',\n\t\t\tdisplayName: t('files_trashbin', 'Delete permanently'),\n\t\t\tmime: 'all',\n\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\ticonClass: 'icon-delete',\n\t\t\trender: function(actionSpec, isDefault, context) {\n\t\t\t\tconst $actionLink = fileActions._makeActionLink(actionSpec, context)\n\t\t\t\t$actionLink.attr('original-title', t('files_trashbin', 'Delete permanently'))\n\t\t\t\t$actionLink.children('img').attr('alt', t('files_trashbin', 'Delete permanently'))\n\t\t\t\tcontext.$file.find('td:last').append($actionLink)\n\t\t\t\treturn $actionLink\n\t\t\t},\n\t\t\tactionHandler: function(filename, context) {\n\t\t\t\tconst fileList = context.fileList\n\t\t\t\t$('.tipsy').remove()\n\t\t\t\tconst tr = fileList.findFileEl(filename)\n\t\t\t\tfileList.showFileBusyState(tr, true)\n\t\t\t\tconst dir = context.fileList.getCurrentDirectory()\n\t\t\t\tclient.remove(OC.joinPaths('trash', dir, filename))\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfileList._removeCallback.bind(fileList, [filename]),\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tfileList.showFileBusyState(tr, false)\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while removing file from trashbin'))\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t},\n\t\t})\n\t\treturn fileActions\n\t},\n}\n\n$(document).ready(function() {\n\t$('#app-content-trashbin').one('show', function() {\n\t\tconst App = OCA.Trashbin.App\n\t\tApp.initialize($('#app-content-trashbin'))\n\t\t// force breadcrumb init\n\t\t// App.fileList.changeDirectory(App.fileList.getCurrentDirectory(), false, true);\n\t})\n})\n","/* eslint-disable */\n/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n(function() {\n\tvar DELETED_REGEXP = new RegExp(/^(.+)\\.d[0-9]+$/)\n\tvar FILENAME_PROP = '{http://nextcloud.org/ns}trashbin-filename'\n\tvar DELETION_TIME_PROP = '{http://nextcloud.org/ns}trashbin-deletion-time'\n\tvar TRASHBIN_ORIGINAL_LOCATION = '{http://nextcloud.org/ns}trashbin-original-location'\n\tvar TRASHBIN_TITLE = '{http://nextcloud.org/ns}trashbin-title'\n\n\t/**\n\t * Convert a file name in the format filename.d12345 to the real file name.\n\t * This will use basename.\n\t * The name will not be changed if it has no \".d12345\" suffix.\n\t * @param {String} name file name\n\t * @returns {String} converted file name\n\t */\n\tfunction getDeletedFileName(name) {\n\t\tname = OC.basename(name)\n\t\tvar match = DELETED_REGEXP.exec(name)\n\t\tif (match && match.length > 1) {\n\t\t\tname = match[1]\n\t\t}\n\t\treturn name\n\t}\n\n\t/**\n\t * @class OCA.Trashbin.FileList\n\t * @augments OCA.Files.FileList\n\t * @classdesc List of deleted files\n\t *\n\t * @param $el container element with existing markup for the #controls\n\t * and a table\n\t * @param [options] map of options\n\t */\n\tvar FileList = function($el, options) {\n\t\tthis.client = options.client\n\t\tthis.initialize($el, options)\n\t}\n\tFileList.prototype = _.extend({}, OCA.Files.FileList.prototype,\n\t\t/** @lends OCA.Trashbin.FileList.prototype */ {\n\t\tid: 'trashbin',\n\t\tappName: t('files_trashbin', 'Deleted files'),\n\t\t/** @type {OC.Files.Client} */\n\t\tclient: null,\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinitialize: function() {\n\t\t\tthis.client.addFileInfoParser(function(response, data) {\n\t\t\t\tvar props = response.propStat[0].properties\n\t\t\t\tvar path = props[TRASHBIN_ORIGINAL_LOCATION]\n\t\t\t\tvar title = props[TRASHBIN_TITLE]\n\t\t\t\treturn {\n\t\t\t\t\tdisplayName: props[FILENAME_PROP],\n\t\t\t\t\tmtime: parseInt(props[DELETION_TIME_PROP], 10) * 1000,\n\t\t\t\t\thasPreview: true,\n\t\t\t\t\tpath: path,\n\t\t\t\t\textraData: title\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tvar result = OCA.Files.FileList.prototype.initialize.apply(this, arguments)\n\t\t\tthis.$el.find('.undelete').click('click', _.bind(this._onClickRestoreSelected, this))\n\n\t\t\tthis.setSort('mtime', 'desc')\n\t\t\t/**\n\t\t\t * Override crumb making to add \"Deleted Files\" entry\n\t\t\t * and convert files with \".d\" extensions to a more\n\t\t\t * user friendly name.\n\t\t\t */\n\t\t\t\tthis.breadcrumb._makeCrumbs = function() {\n\t\t\t\t\tvar parts = OCA.Files.BreadCrumb.prototype._makeCrumbs.apply(this, [...arguments, 'icon-delete no-hover'])\n\t\t\t\t\tfor (var i = 1; i < parts.length; i++) {\n\t\t\t\t\t\tparts[i].name = getDeletedFileName(parts[i].name)\n\t\t\t\t\t}\n\t\t\t\t\treturn parts\n\t\t\t\t}\n\n\t\t\t\tOC.Plugins.attach('OCA.Trashbin.FileList', this)\n\t\t\t\treturn result\n\t\t\t},\n\n\t\t\t/**\n\t\t * Override to only return read permissions\n\t\t */\n\t\t\tgetDirectoryPermissions: function() {\n\t\t\t\treturn OC.PERMISSION_READ | OC.PERMISSION_DELETE\n\t\t\t},\n\n\t\t\t_setCurrentDir: function(targetDir) {\n\t\t\t\tOCA.Files.FileList.prototype._setCurrentDir.apply(this, arguments)\n\n\t\t\t\tvar baseDir = OC.basename(targetDir)\n\t\t\t\tif (baseDir !== '') {\n\t\t\t\t\tthis.setPageTitle(getDeletedFileName(baseDir))\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t_createRow: function() {\n\t\t\t// FIXME: MEGAHACK until we find a better solution\n\t\t\t\tvar tr = OCA.Files.FileList.prototype._createRow.apply(this, arguments)\n\t\t\t\ttr.find('td.filesize').remove()\n\t\t\t\treturn tr\n\t\t\t},\n\n\t\t\tgetAjaxUrl: function(action, params) {\n\t\t\t\tvar q = ''\n\t\t\t\tif (params) {\n\t\t\t\t\tq = '?' + OC.buildQueryString(params)\n\t\t\t\t}\n\t\t\t\treturn OC.filePath('files_trashbin', 'ajax', action + '.php') + q\n\t\t\t},\n\n\t\t\tsetupUploadEvents: function() {\n\t\t\t// override and do nothing\n\t\t\t},\n\n\t\t\tlinkTo: function(dir) {\n\t\t\t\treturn OC.linkTo('files', 'index.php') + '?view=trashbin&dir=' + encodeURIComponent(dir).replace(/%2F/g, '/')\n\t\t\t},\n\n\t\t\telementToFile: function($el) {\n\t\t\t\tvar fileInfo = OCA.Files.FileList.prototype.elementToFile($el)\n\t\t\t\tif (this.getCurrentDirectory() === '/') {\n\t\t\t\t\tfileInfo.displayName = getDeletedFileName(fileInfo.name)\n\t\t\t\t}\n\t\t\t\t// no size available\n\t\t\t\tdelete fileInfo.size\n\t\t\t\treturn fileInfo\n\t\t\t},\n\n\t\t\tupdateEmptyContent: function() {\n\t\t\t\tvar exists = this.$fileList.find('tr:first').exists()\n\t\t\t\tthis.$el.find('#emptycontent').toggleClass('hidden', exists)\n\t\t\t\tthis.$el.find('#filestable th').toggleClass('hidden', !exists)\n\t\t\t},\n\n\t\t\t_removeCallback: function(files) {\n\t\t\t\tvar $el\n\t\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\t\t$el = this.remove(OC.basename(files[i]), { updateSummary: false })\n\t\t\t\t\tthis.fileSummary.remove({ type: $el.attr('data-type'), size: $el.attr('data-size') })\n\t\t\t\t}\n\t\t\t\tthis.fileSummary.update()\n\t\t\t\tthis.updateEmptyContent()\n\t\t\t},\n\n\t\t\t_onClickRestoreSelected: function(event) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tvar self = this\n\t\t\t\tvar files = _.pluck(this.getSelectedFiles(), 'name')\n\t\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\t\tvar tr = this.findFileEl(files[i])\n\t\t\t\t\tthis.showFileBusyState(tr, true)\n\t\t\t\t}\n\n\t\t\t\tthis.fileMultiSelectMenu.toggleLoading('restore', true)\n\t\t\t\tvar restorePromises = files.map(function(file) {\n\t\t\t\t\treturn self.client.move(OC.joinPaths('trash', self.getCurrentDirectory(), file), OC.joinPaths('restore', file), true)\n\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tself._removeCallback([file])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t})\n\t\t\t\treturn Promise.all(restorePromises).then(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tself.fileMultiSelectMenu.toggleLoading('restore', false)\n\t\t\t\t\t},\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while restoring files from trashbin'))\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t},\n\n\t\t\t_onClickDeleteSelected: function(event) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tvar self = this\n\t\t\t\tvar allFiles = this.$el.find('.select-all').is(':checked')\n\t\t\t\tvar files = _.pluck(this.getSelectedFiles(), 'name')\n\t\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\t\tvar tr = this.findFileEl(files[i])\n\t\t\t\t\tthis.showFileBusyState(tr, true)\n\t\t\t\t}\n\n\t\t\t\tif (allFiles) {\n\t\t\t\t\treturn this.client.remove(OC.joinPaths('trash', this.getCurrentDirectory()))\n\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tself.hideMask()\n\t\t\t\t\t\t\t\tself.setFiles([])\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while emptying trashbin'))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tthis.fileMultiSelectMenu.toggleLoading('delete', true)\n\t\t\t\t\tvar deletePromises = files.map(function(file) {\n\t\t\t\t\t\treturn self.client.remove(OC.joinPaths('trash', self.getCurrentDirectory(), file))\n\t\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\tself._removeCallback([file])\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t})\n\t\t\t\t\treturn Promise.all(deletePromises).then(\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tself.fileMultiSelectMenu.toggleLoading('delete', false)\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while removing files from trashbin'))\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t_onClickFile: function(event) {\n\t\t\t\tvar mime = $(this).parent().parent().data('mime')\n\t\t\t\tif (mime !== 'httpd/unix-directory') {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t}\n\t\t\t\treturn OCA.Files.FileList.prototype._onClickFile.apply(this, arguments)\n\t\t\t},\n\n\t\t\tgeneratePreviewUrl: function(urlSpec) {\n\t\t\t\treturn OC.generateUrl('/apps/files_trashbin/preview?') + $.param(urlSpec)\n\t\t\t},\n\n\t\t\tgetDownloadUrl: function() {\n\t\t\t// no downloads\n\t\t\t\treturn '#'\n\t\t\t},\n\n\t\t\tupdateStorageStatistics: function() {\n\t\t\t// no op because the trashbin doesn't have\n\t\t\t// storage info like free space / used space\n\t\t\t},\n\n\t\t\tisSelectedDeletable: function() {\n\t\t\t\treturn true\n\t\t\t},\n\n\t\t\t/**\n\t\t * Returns list of webdav properties to request\n\t\t */\n\t\t\t_getWebdavProperties: function() {\n\t\t\t\treturn [FILENAME_PROP, DELETION_TIME_PROP, TRASHBIN_ORIGINAL_LOCATION, TRASHBIN_TITLE].concat(this.filesClient.getPropfindProperties())\n\t\t\t},\n\n\t\t\t/**\n\t\t * Reloads the file list using ajax call\n\t\t *\n\t\t * @returns ajax call object\n\t\t */\n\t\t\treload: function() {\n\t\t\t\tthis._selectedFiles = {}\n\t\t\t\tthis._selectionSummary.clear()\n\t\t\t\tthis.$el.find('.select-all').prop('checked', false)\n\t\t\t\tthis.showMask()\n\t\t\t\tif (this._reloadCall) {\n\t\t\t\t\tthis._reloadCall.abort()\n\t\t\t\t}\n\t\t\t\tthis._reloadCall = this.client.getFolderContents(\n\t\t\t\t\t'trash/' + this.getCurrentDirectory(), {\n\t\t\t\t\t\tincludeParent: false,\n\t\t\t\t\t\tproperties: this._getWebdavProperties()\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\tvar callBack = this.reloadCallback.bind(this)\n\t\t\t\treturn this._reloadCall.then(callBack, callBack)\n\t\t\t},\n\t\t\treloadCallback: function(status, result) {\n\t\t\t\tdelete this._reloadCall\n\t\t\t\tthis.hideMask()\n\n\t\t\t\tif (status === 401) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Firewall Blocked request?\n\t\t\t\tif (status === 403) {\n\t\t\t\t// Go home\n\t\t\t\t\tthis.changeDirectory('/')\n\t\t\t\t\tOC.Notification.show(t('files', 'This operation is forbidden'))\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Did share service die or something else fail?\n\t\t\t\tif (status === 500) {\n\t\t\t\t// Go home\n\t\t\t\t\tthis.changeDirectory('/')\n\t\t\t\t\tOC.Notification.show(t('files', 'This directory is unavailable, please check the logs or contact the administrator'))\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tif (status === 404) {\n\t\t\t\t// go back home\n\t\t\t\t\tthis.changeDirectory('/')\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\t// aborted ?\n\t\t\t\tif (status === 0) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tthis.setFiles(result)\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t})\n\n\tOCA.Trashbin.FileList = FileList\n})()\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./trash.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"e1044e6c\", content, true, {});","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name,#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name span.nametext,#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name span.nametext span{cursor:default}#app-content-trashbin .summary :last-child{padding:0}#app-content-trashbin #filestable .summary .filesize{display:none}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n for (var i = 0; i < modules.length; i++) {\n var item = [].concat(modules[i]);\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n"],"sourceRoot":""}
|