1 |
- {"version":3,"file":"files_trashbin-init.js?v=abb09db530175d5e2e80","mappings":"UAAIA,E,uKCWAC,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,IAAQM,QAAS,IAAQA,O,6DClBnD,MAAMC,EAAW,aAAHC,OAAgC,QAAhCC,GAAgBC,EAAAA,EAAAA,aAAgB,IAAAD,OAAA,EAAhBA,EAAkBE,IAAG,UAC7CC,GAAUC,EAAAA,EAAAA,IAAkB,MAAQN,GAC3CO,GAASC,EAAAA,EAAAA,IAAaH,GAEtBI,EAAcC,IAChBH,EAAOE,WAAW,CAEd,mBAAoB,iBAEpBE,aAAcD,QAAAA,EAAS,IACzB,GAGNE,EAAAA,EAAAA,IAAqBH,GACrBA,GAAWI,EAAAA,EAAAA,OACX,UCnBMC,EAAO,sCAAHb,QACIc,EAAAA,EAAAA,MAAkB,0OAAAd,QAQ5Be,EAAAA,EAAAA,MAAkB,gCAGhBC,EAAe,SAAUC,GAAM,IAAAC,EAAAjB,EAAAkB,EAAAC,EAAAC,EACjC,MAAMC,GAAcC,EAAAA,EAAAA,IAA8B,QAAXL,EAACD,EAAKO,aAAK,IAAAN,OAAA,EAAVA,EAAYI,aAC9CG,EAAwB,QAAnBxB,GAAGC,EAAAA,EAAAA,aAAgB,IAAAD,OAAA,EAAhBA,EAAkBE,IAC1BuB,GAAaC,EAAAA,EAAAA,IAAY,yDAA0DV,EAAKO,OACxFI,EAAW,CACbC,IAAc,QAAVV,EAAAF,EAAKO,aAAK,IAAAL,OAAA,EAAVA,EAAYW,SAAU,EAC1BC,QAAQ1B,EAAAA,EAAAA,IAAkB,MAAQN,EAAWkB,EAAKe,UAGlDC,KAAMhB,EAAKgB,KACXC,MAAgB,QAAVd,EAAAH,EAAKO,aAAK,IAAAJ,OAAA,EAAVA,EAAYc,OAAQ,EAC1BZ,cACAG,QACAU,KAAMpC,EACNqC,WAAY,IACLnB,KACAA,EAAKO,MAERa,YAAuB,QAAZhB,EAAEJ,EAAKO,aAAK,IAAAH,OAAA,EAAVA,EAAa,qBAC1BK,eAIR,cADOE,EAASQ,WAAWZ,MACN,SAAdP,EAAKqB,KACN,IAAIC,EAAAA,GAAKX,GACT,IAAIY,EAAAA,GAAOZ,EACrB,E,gDC/BA,MAAMa,EAAyBxB,IAAS,IAAAyB,EAAAC,EACpC,MAAMC,OAA2DC,KAArC,QAAfH,EAAAzB,EAAKmB,kBAAU,IAAAM,OAAA,EAAfA,EAAkB,+BAA8CI,OAAsB,QAAhBH,EAAC1B,EAAKmB,kBAAU,IAAAO,OAAA,EAAfA,EAAkB,+BAAiC,KACvI,IAAKC,EACD,OAAOG,EAAAA,EAAAA,IAAE,iBAAkB,WAE/B,MAAMC,GAAMC,EAAAA,EAAAA,IAAQL,GACpB,OAAII,IAAQJ,GACDG,EAAAA,EAAAA,IAAE,iBAAkB,aAExBC,EAAIE,QAAQ,MAAO,GAAG,EAY3BC,EAAkBlC,IAAS,IAAAmC,EAAAC,EAAAC,EAAAC,EAC7B,MAAMC,OAAyDX,KAAjC,QAAfO,EAAAnC,EAAKmB,kBAAU,IAAAgB,OAAA,EAAfA,EAAkB,2BAA0CN,OAAsB,QAAhBO,EAACpC,EAAKmB,kBAAU,IAAAiB,OAAA,EAAfA,EAAkB,2BAA6B,KAC3HhB,OAAwEQ,KAA3C,QAAfS,EAAArC,EAAKmB,kBAAU,IAAAkB,OAAA,EAAfA,EAAkB,qCAAoDR,OAAsB,QAAhBS,EAACtC,EAAKmB,kBAAU,IAAAmB,OAAA,EAAfA,EAAkB,qCAAuC,KACpJE,EAbYC,EAACF,EAAQnB,KAAgB,IAAApC,EAE3C,OAAIuD,KADkC,QAAnBvD,GAAGC,EAAAA,EAAAA,aAAgB,IAAAD,OAAA,EAAhBA,EAAkBE,MAE7B4C,EAAAA,EAAAA,IAAE,iBAAkB,OAE1BS,GAAWnB,EAGT,MAFIU,EAAAA,EAAAA,IAAE,iBAAkB,UAEpB,EAKGW,CAAcF,EAAQnB,GACpC,MAAO,CACHmB,SACAnB,cACAoB,QACH,EAECE,EAAmB,IAAIC,EAAAA,GAAO,CAChC/B,GAAI,oBACJgC,OAAOd,EAAAA,EAAAA,IAAE,iBAAkB,qBAC3Be,MAAAA,CAAO7C,GACH,MAAM0C,EAAmBlB,EAAsBxB,GACzC8C,EAAOC,SAASC,cAAc,QAGpC,OAFAF,EAAKF,MAAQF,EACbI,EAAKG,YAAcP,EACZI,CACX,EACAI,IAAAA,CAAKC,EAAOC,GACR,MAAMC,EAAY7B,EAAsB2B,GAClCG,EAAY9B,EAAsB4B,GACxC,OAAOC,EAAUE,cAAcD,EACnC,IAEEE,EAAY,IAAIb,EAAAA,GAAO,CACzB/B,GAAI,aACJgC,OAAOd,EAAAA,EAAAA,IAAE,iBAAkB,cAC3Be,MAAAA,CAAO7C,GACH,MAAM,OAAEuC,EAAM,YAAEnB,EAAW,MAAEoB,GAAUN,EAAelC,GACtD,GAAIwC,EAAO,CACP,MAAMM,EAAOC,SAASC,cAAc,QAEpC,OADAF,EAAKG,YAAcT,EACZM,CACX,CAQA,OADmB,IANAW,EAAAA,GAAIC,OAAOC,EAAAA,GAMX,CAAe,CAAEC,UALlB,CACd3C,KAAM,GACN4C,KAAMtB,QAAAA,OAAUX,EAChBR,YAAaA,QAAAA,GAAeU,EAAAA,EAAAA,IAAE,iBAAkB,cAEHgC,SAASC,GAE9D,EACAb,IAAAA,CAAKC,EAAOC,GAAO,IAAAY,EAAAC,EAAAC,EAAAC,EACf,MAAMC,EAA6E,QAAnEJ,EAA8B,QAA9BC,EAAG/B,EAAeiB,GAAOX,aAAK,IAAAyB,EAAAA,EAAI/B,EAAeiB,GAAO/B,mBAAW,IAAA4C,EAAAA,GAAIlC,EAAAA,EAAAA,IAAE,iBAAkB,WACrGuC,EAA6E,QAAnEH,EAA8B,QAA9BC,EAAGjC,EAAekB,GAAOZ,aAAK,IAAA2B,EAAAA,EAAIjC,EAAekB,GAAOhC,mBAAW,IAAA8C,EAAAA,GAAIpC,EAAAA,EAAAA,IAAE,iBAAkB,WAC3G,OAAOsC,EAAWb,cAAcc,EACpC,IAEEC,EAAU,IAAI3B,EAAAA,GAAO,CACvB/B,GAAI,UACJgC,OAAOd,EAAAA,EAAAA,IAAE,iBAAkB,WAC3Be,MAAAA,CAAO7C,GAAM,IAAAuE,EACT,MAAMC,EAA8B,QAAlBD,EAAGvE,EAAKmB,kBAAU,IAAAoD,OAAA,EAAfA,EAAkB,0BACjCzB,EAAOC,SAASC,cAAc,QACpC,OAAIwB,GACA1B,EAAKF,MAAQ6B,EAAAA,EAAOC,KAAKF,GAAcG,OAAO,OAC9C7B,EAAKG,YAAcwB,EAAAA,EAAOC,KAAKF,GAAcI,UACtC9B,IAGXA,EAAKG,aAAcnB,EAAAA,EAAAA,IAAE,iBAAkB,mBAChCgB,EACX,EACAI,IAAAA,CAAKC,EAAOC,GAAO,IAAAyB,EAAAC,EACf,MAAMC,GAAgC,QAAhBF,EAAA1B,EAAMhC,kBAAU,IAAA0D,OAAA,EAAhBA,EAAmB,6BAA6B1B,aAAK,EAALA,EAAO6B,QAAS,EAEtF,QADsC,QAAhBF,EAAA1B,EAAMjC,kBAAU,IAAA2D,OAAA,EAAhBA,EAAmB,6BAA6B1B,aAAK,EAALA,EAAO4B,QAAS,GAC/DD,CAC3B,IAESE,EAAU,CACnBvC,EACAc,EACAc,G,0BCrGJ,SAAeY,E,SAAAA,MACbC,OAAO,SACPC,aACAC,SCIFC,EAAAA,EAAAA,IAAmB,IAAIC,EAAAA,GAAW,CAC9B3E,GAAI,UACJQ,YAAWA,KACAU,EAAAA,EAAAA,IAAE,iBAAkB,WAE/B0D,cAAeA,I,wUACfC,QAAOA,CAACC,EAAOC,IAEK,aAAZA,EAAK/E,IAIF8E,EAAME,OAAS,GAAKF,EACtBG,KAAI7F,GAAQA,EAAKK,cACjByF,OAAMC,GAAiD,IAAlCA,EAAaC,EAAAA,GAAWC,QAEtD,UAAMC,CAAKlG,GACP,IAAI,IAAAhB,EACA,MAAMmH,GAAc/G,EAAAA,EAAAA,KAAkBgH,EAAAA,EAAAA,IAAW,gBAADrH,OAAiC,QAAjCC,GAAiBC,EAAAA,EAAAA,aAAgB,IAAAD,OAAA,EAAhBA,EAAkBE,IAAG,aAAAH,OAAYiB,EAAKqG,YAWvG,aAVMC,EAAAA,EAAAA,IAAM,CACRC,OAAQ,OACRC,IAAKxG,EAAKyG,cACVC,QAAS,CACLP,kBAKRQ,EAAAA,EAAAA,IAAK,qBAAsB3G,IACpB,CACX,CACA,MAAO4G,GAEH,OADAC,EAAOD,MAAMA,IACN,CACX,CACJ,EACA,eAAME,CAAUpB,EAAOC,EAAM5D,GACzB,OAAOgF,QAAQC,IAAItB,EAAMG,KAAI7F,GAAQiH,KAAKf,KAAKlG,EAAM2F,EAAM5D,KAC/D,EACAmF,MAAO,EACPC,OAAQA,KAAM,MCzCCC,EAAAA,EAAAA,MACRC,SAAS,IAAIC,EAAAA,GAAK,CACzB1G,GAAI,WACJ2G,MAAMzF,EAAAA,EAAAA,IAAE,iBAAkB,iBAC1B0F,SAAS1F,EAAAA,EAAAA,IAAE,iBAAkB,yCAC7B2F,YAAY3F,EAAAA,EAAAA,IAAE,iBAAkB,oBAChC4F,cAAc5F,EAAAA,EAAAA,IAAE,iBAAkB,wDAClC6F,K,mLACAT,MAAO,GACPU,QAAQ,EACRC,eAAgB,UAChB5C,QAAO,EACP6C,YJmBuBC,iBAAsB,IAAfpG,EAAIqG,UAAApC,OAAA,QAAAhE,IAAAoG,UAAA,GAAAA,UAAA,GAAG,IAGrC,MAAMC,QAAqB5I,EAAO6I,KAAKvG,EAAM,CACzCwG,SAAS,EACTvI,SAEEwI,QAAyB/I,EAAOgJ,qBAAqB1G,EAAM,CAC7DwG,SAAS,EACTvI,SAEJ,MAAO,CACH0I,OAAQvI,EAAakI,EAAarI,MAClC2I,SAAUH,EAAiBxI,KAAKiG,IAAI9F,GAE5C,I,mFKvDIyI,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAO9H,GAAI,wMAGgC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qDAAqD,MAAQ,GAAG,SAAW,+BAA+B,eAAiB,CAAC,sNAAsN,WAAa,MAEnc,S,0CCTI+H,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBjH,IAAjBkH,EACH,OAAOA,EAAaC,QAGrB,IAAIL,EAASC,EAAyBE,GAAY,CACjDjI,GAAIiI,EACJG,QAAQ,EACRD,QAAS,CAAC,GAUX,OANAE,EAAoBJ,GAAUK,KAAKR,EAAOK,QAASL,EAAQA,EAAOK,QAASH,GAG3EF,EAAOM,QAAS,EAGTN,EAAOK,OACf,CAGAH,EAAoBO,EAAIF,ET5BpB3K,EAAW,GACfsK,EAAoBQ,EAAI,CAACC,EAAQC,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAIrL,EAASsH,OAAQ+D,IAAK,CACrCL,EAAWhL,EAASqL,GAAG,GACvBJ,EAAKjL,EAASqL,GAAG,GACjBH,EAAWlL,EAASqL,GAAG,GAE3B,IAJA,IAGIC,GAAY,EACPC,EAAI,EAAGA,EAAIP,EAAS1D,OAAQiE,MACpB,EAAXL,GAAsBC,GAAgBD,IAAaM,OAAOC,KAAKnB,EAAoBQ,GAAGtD,OAAOkE,GAASpB,EAAoBQ,EAAEY,GAAKV,EAASO,MAC9IP,EAASW,OAAOJ,IAAK,IAErBD,GAAY,EACTJ,EAAWC,IAAcA,EAAeD,IAG7C,GAAGI,EAAW,CACbtL,EAAS2L,OAAON,IAAK,GACrB,IAAIO,EAAIX,SACE3H,IAANsI,IAAiBb,EAASa,EAC/B,CACD,CACA,OAAOb,CArBP,CAJCG,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAIrL,EAASsH,OAAQ+D,EAAI,GAAKrL,EAASqL,EAAI,GAAG,GAAKH,EAAUG,IAAKrL,EAASqL,GAAKrL,EAASqL,EAAI,GACrGrL,EAASqL,GAAK,CAACL,EAAUC,EAAIC,EAuBjB,EU3BdZ,EAAoBuB,EAAKzB,IACxB,IAAI0B,EAAS1B,GAAUA,EAAO2B,WAC7B,IAAO3B,EAAiB,QACxB,IAAM,EAEP,OADAE,EAAoB0B,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdxB,EAAoB0B,EAAI,CAACvB,EAASyB,KACjC,IAAI,IAAIR,KAAOQ,EACX5B,EAAoB6B,EAAED,EAAYR,KAASpB,EAAoB6B,EAAE1B,EAASiB,IAC5EF,OAAOY,eAAe3B,EAASiB,EAAK,CAAEW,YAAY,EAAMC,IAAKJ,EAAWR,IAE1E,ECHDpB,EAAoBiC,EAAI,IAAO9D,QAAQ+D,UCHvClC,EAAoBmC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAO/D,MAAQ,IAAIgE,SAAS,cAAb,EAChB,CAAE,MAAOJ,GACR,GAAsB,iBAAXK,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBtC,EAAoB6B,EAAI,CAACU,EAAKC,IAAUtB,OAAOuB,UAAUC,eAAepC,KAAKiC,EAAKC,GCClFxC,EAAoBsB,EAAKnB,IACH,oBAAXwC,QAA0BA,OAAOC,aAC1C1B,OAAOY,eAAe3B,EAASwC,OAAOC,YAAa,CAAEC,MAAO,WAE7D3B,OAAOY,eAAe3B,EAAS,aAAc,CAAE0C,OAAO,GAAO,ECL9D7C,EAAoB8C,IAAOhD,IAC1BA,EAAOiD,MAAQ,GACVjD,EAAOkD,WAAUlD,EAAOkD,SAAW,IACjClD,GCHRE,EAAoBiB,EAAI,K,MCAxBjB,EAAoBiD,EAAI9I,SAAS+I,SAAWC,KAAKC,SAASC,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAaPtD,EAAoBQ,EAAES,EAAKsC,GAA0C,IAA7BD,EAAgBC,GAGxD,IAAIC,EAAuB,CAACC,EAA4BzM,KACvD,IAKIiJ,EAAUsD,EALV7C,EAAW1J,EAAK,GAChB0M,EAAc1M,EAAK,GACnB2M,EAAU3M,EAAK,GAGI+J,EAAI,EAC3B,GAAGL,EAASkD,MAAM5L,GAAgC,IAAxBsL,EAAgBtL,KAAa,CACtD,IAAIiI,KAAYyD,EACZ1D,EAAoB6B,EAAE6B,EAAazD,KACrCD,EAAoBO,EAAEN,GAAYyD,EAAYzD,IAGhD,GAAG0D,EAAS,IAAIlD,EAASkD,EAAQ3D,EAClC,CAEA,IADGyD,GAA4BA,EAA2BzM,GACrD+J,EAAIL,EAAS1D,OAAQ+D,IACzBwC,EAAU7C,EAASK,GAChBf,EAAoB6B,EAAEyB,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAOvD,EAAoBQ,EAAEC,EAAO,EAGjCoD,EAAqBV,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1FU,EAAmBC,QAAQN,EAAqBO,KAAK,KAAM,IAC3DF,EAAmBhE,KAAO2D,EAAqBO,KAAK,KAAMF,EAAmBhE,KAAKkE,KAAKF,G,KClDvF7D,EAAoBgE,QAAKhL,ECGzB,IAAIiL,EAAsBjE,EAAoBQ,OAAExH,EAAW,CAAC,OAAO,IAAOgH,EAAoB,SAC9FiE,EAAsBjE,EAAoBQ,EAAEyD,E","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack://nextcloud/./apps/files_trashbin/src/trashbin.scss?8b2e","webpack:///nextcloud/apps/files_trashbin/src/services/client.ts","webpack:///nextcloud/apps/files_trashbin/src/services/trashbin.ts","webpack:///nextcloud/apps/files_trashbin/src/columns.ts","webpack:///nextcloud/apps/files/src/logger.js","webpack:///nextcloud/apps/files_trashbin/src/actions/restoreAction.ts","webpack:///nextcloud/apps/files_trashbin/src/files-init.ts","webpack:///nextcloud/apps/files_trashbin/src/trashbin.scss","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./trashbin.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./trashbin.scss\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createClient } from 'webdav';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser, getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth';\n// init webdav client\nexport const rootPath = `/trashbin/${getCurrentUser()?.uid}/trash`;\nexport const rootUrl = generateRemoteUrl('dav' + rootPath);\nconst client = createClient(rootUrl);\n// set CSRF token header\nconst setHeaders = (token) => {\n client.setHeaders({\n // Add this so the server knows it is an request from the browser\n 'X-Requested-With': 'XMLHttpRequest',\n // Inject user auth\n requesttoken: token ?? '',\n });\n};\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders);\nsetHeaders(getRequestToken());\nexport default client;\n","import { File, Folder, davParsePermissions, getDavNameSpaces, getDavProperties } from '@nextcloud/files';\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport client, { rootPath } from './client';\nconst data = `<?xml version=\"1.0\"?>\n<d:propfind ${getDavNameSpaces()}>\n\t<d:prop>\n\t\t<nc:trashbin-filename />\n\t\t<nc:trashbin-deletion-time />\n\t\t<nc:trashbin-original-location />\n\t\t<nc:trashbin-title />\n\t\t<nc:trashbin-deleted-by-id />\n\t\t<nc:trashbin-deleted-by-display-name />\n\t\t${getDavProperties()}\n\t</d:prop>\n</d:propfind>`;\nconst resultToNode = function (node) {\n const permissions = davParsePermissions(node.props?.permissions);\n const owner = getCurrentUser()?.uid;\n const previewUrl = generateUrl('/apps/files_trashbin/preview?fileId={fileid}&x=32&y=32', node.props);\n const nodeData = {\n id: node.props?.fileid || 0,\n source: generateRemoteUrl('dav' + rootPath + node.filename),\n // do not show the mtime column\n // mtime: new Date(node.lastmod),\n mime: node.mime,\n size: node.props?.size || 0,\n permissions,\n owner,\n root: rootPath,\n attributes: {\n ...node,\n ...node.props,\n // Override displayed name on the list\n displayName: node.props?.['trashbin-filename'],\n previewUrl,\n },\n };\n delete nodeData.attributes.props;\n return node.type === 'file'\n ? new File(nodeData)\n : new Folder(nodeData);\n};\nexport const getContents = async (path = '/') => {\n // TODO: use only one request when webdav-client supports it\n // @see https://github.com/perry-mitchell/webdav-client/pull/334\n const rootResponse = await client.stat(path, {\n details: true,\n data,\n });\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data,\n });\n return {\n folder: resultToNode(rootResponse.data),\n contents: contentsResponse.data.map(resultToNode),\n };\n};\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport moment from '@nextcloud/moment';\nimport { Column, Node } from '@nextcloud/files';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { dirname } from '@nextcloud/paths';\nimport { translate as t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport NcUserBubble from '@nextcloud/vue/dist/Components/NcUserBubble.js';\nconst parseOriginalLocation = (node) => {\n const path = node.attributes?.['trashbin-original-location'] !== undefined ? String(node.attributes?.['trashbin-original-location']) : null;\n if (!path) {\n return t('files_trashbin', 'Unknown');\n }\n const dir = dirname(path);\n if (dir === path) { // Node is in root folder\n return t('files_trashbin', 'All files');\n }\n return dir.replace(/^\\//, '');\n};\nconst generateLabel = (userId, displayName) => {\n const currentUserId = getCurrentUser()?.uid;\n if (userId === currentUserId) {\n return t('files_trashbin', 'You');\n }\n if (!userId && !displayName) {\n return t('files_trashbin', 'Unknown');\n }\n return null;\n};\nconst parseDeletedBy = (node) => {\n const userId = node.attributes?.['trashbin-deleted-by-id'] !== undefined ? String(node.attributes?.['trashbin-deleted-by-id']) : null;\n const displayName = node.attributes?.['trashbin-deleted-by-display-name'] !== undefined ? String(node.attributes?.['trashbin-deleted-by-display-name']) : null;\n const label = generateLabel(userId, displayName);\n return {\n userId,\n displayName,\n label,\n };\n};\nconst originalLocation = new Column({\n id: 'original-location',\n title: t('files_trashbin', 'Original location'),\n render(node) {\n const originalLocation = parseOriginalLocation(node);\n const span = document.createElement('span');\n span.title = originalLocation;\n span.textContent = originalLocation;\n return span;\n },\n sort(nodeA, nodeB) {\n const locationA = parseOriginalLocation(nodeA);\n const locationB = parseOriginalLocation(nodeB);\n return locationA.localeCompare(locationB);\n },\n});\nconst deletedBy = new Column({\n id: 'deleted-by',\n title: t('files_trashbin', 'Deleted by'),\n render(node) {\n const { userId, displayName, label } = parseDeletedBy(node);\n if (label) {\n const span = document.createElement('span');\n span.textContent = label;\n return span;\n }\n const UserBubble = Vue.extend(NcUserBubble);\n const propsData = {\n size: 32,\n user: userId ?? undefined,\n displayName: displayName ?? t('files_trashbin', 'Unknown'),\n };\n const userBubble = new UserBubble({ propsData }).$mount().$el;\n return userBubble;\n },\n sort(nodeA, nodeB) {\n const deletedByA = parseDeletedBy(nodeA).label ?? parseDeletedBy(nodeA).displayName ?? t('files_trashbin', 'Unknown');\n const deletedByB = parseDeletedBy(nodeB).label ?? parseDeletedBy(nodeB).displayName ?? t('files_trashbin', 'Unknown');\n return deletedByA.localeCompare(deletedByB);\n },\n});\nconst deleted = new Column({\n id: 'deleted',\n title: t('files_trashbin', 'Deleted'),\n render(node) {\n const deletionTime = node.attributes?.['trashbin-deletion-time'];\n const span = document.createElement('span');\n if (deletionTime) {\n span.title = moment.unix(deletionTime).format('LLL');\n span.textContent = moment.unix(deletionTime).fromNow();\n return span;\n }\n // Unknown deletion time\n span.textContent = t('files_trashbin', 'A long time ago');\n return span;\n },\n sort(nodeA, nodeB) {\n const deletionTimeA = nodeA.attributes?.['trashbin-deletion-time'] || nodeA?.mtime || 0;\n const deletionTimeB = nodeB.attributes?.['trashbin-deletion-time'] || nodeB?.mtime || 0;\n return deletionTimeB - deletionTimeA;\n },\n});\nexport const columns = [\n originalLocation,\n deletedBy,\n deleted,\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'\n\nexport default getLoggerBuilder()\n\t.setApp('files')\n\t.detectUser()\n\t.build()\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 { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { Permission, Node, View, registerFileAction, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport History from '@mdi/svg/svg/history.svg?raw';\nimport logger from '../../../files/src/logger.js';\nimport { encodePath } from '@nextcloud/paths';\nregisterFileAction(new FileAction({\n id: 'restore',\n displayName() {\n return t('files_trashbin', 'Restore');\n },\n iconSvgInline: () => History,\n enabled(nodes, view) {\n // Only available in the trashbin view\n if (view.id !== 'trashbin') {\n return false;\n }\n // Only available if all nodes have read permission\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.READ) !== 0);\n },\n async exec(node) {\n try {\n const destination = generateRemoteUrl(encodePath(`dav/trashbin/${getCurrentUser()?.uid}/restore/${node.basename}`));\n await axios({\n method: 'MOVE',\n url: node.encodedSource,\n headers: {\n destination,\n },\n });\n // Let's pretend the file is deleted since\n // we don't know the restored location\n emit('files:node:deleted', node);\n return true;\n }\n catch (error) {\n logger.error(error);\n return false;\n }\n },\n async execBatch(nodes, view, dir) {\n return Promise.all(nodes.map(node => this.exec(node, view, dir)));\n },\n order: 1,\n inline: () => true,\n}));\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport './trashbin.scss';\nimport { translate as t } from '@nextcloud/l10n';\nimport DeleteSvg from '@mdi/svg/svg/delete.svg?raw';\nimport { getContents } from './services/trashbin';\nimport { columns } from './columns.ts';\n// Register restore action\nimport './actions/restoreAction';\nimport { View, getNavigation } from '@nextcloud/files';\nconst Navigation = getNavigation();\nNavigation.register(new View({\n id: 'trashbin',\n name: t('files_trashbin', 'Deleted files'),\n caption: t('files_trashbin', 'List of files that have been deleted.'),\n emptyTitle: t('files_trashbin', 'No deleted files'),\n emptyCaption: t('files_trashbin', 'Files and folders you have deleted will show up here'),\n icon: DeleteSvg,\n order: 50,\n sticky: true,\n defaultSortKey: 'deleted',\n columns,\n getContents,\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, `/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */.files-list__row-trashbin-original-location{width:150px !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_trashbin/src/trashbin.scss\"],\"names\":[],\"mappings\":\"AAAA;;;EAAA,CAIA,4CACE,sBAAA\",\"sourcesContent\":[\"/*!\\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n.files-list__row-trashbin-original-location {\\n width: 150px !important;\\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};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2573;","__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\t2573: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(79462)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","rootPath","concat","_getCurrentUser","getCurrentUser","uid","rootUrl","generateRemoteUrl","client","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","data","getDavNameSpaces","getDavProperties","resultToNode","node","_node$props","_node$props2","_node$props3","_node$props4","permissions","davParsePermissions","props","owner","previewUrl","generateUrl","nodeData","id","fileid","source","filename","mime","size","root","attributes","displayName","type","File","Folder","parseOriginalLocation","_node$attributes","_node$attributes2","path","undefined","String","t","dir","dirname","replace","parseDeletedBy","_node$attributes3","_node$attributes4","_node$attributes5","_node$attributes6","userId","label","generateLabel","originalLocation","Column","title","render","span","document","createElement","textContent","sort","nodeA","nodeB","locationA","locationB","localeCompare","deletedBy","Vue","extend","NcUserBubble","propsData","user","$mount","$el","_ref","_parseDeletedBy$label","_ref2","_parseDeletedBy$label2","deletedByA","deletedByB","deleted","_node$attributes7","deletionTime","moment","unix","format","fromNow","_nodeA$attributes","_nodeB$attributes","deletionTimeA","mtime","columns","getLoggerBuilder","setApp","detectUser","build","registerFileAction","FileAction","iconSvgInline","enabled","nodes","view","length","map","every","permission","Permission","READ","exec","destination","encodePath","basename","axios","method","url","encodedSource","headers","emit","error","logger","execBatch","Promise","all","this","order","inline","getNavigation","register","View","name","caption","emptyTitle","emptyCaption","icon","sticky","defaultSortKey","getContents","async","arguments","rootResponse","stat","details","contentsResponse","getDirectoryContents","folder","contents","___CSS_LOADER_EXPORT___","push","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","e","resolve","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","nc","__webpack_exports__"],"sourceRoot":""}
|