server/dist/core-legacy-unified-search....

1 строка
92 KiB
Plaintext

{"version":3,"file":"core-legacy-unified-search.js?v=e1eacd9a51caa323c086","mappings":"uBAAIA,ECAAC,EACAC,E,8KC6CJ,MC9C8L,ED8C9L,CACAC,KAAA,qBAEAC,WAAA,CACAC,Y,SAAAA,GAGAC,MAAA,CACAC,aAAA,CACAC,KAAAC,OACAC,QAAA,MAEAC,MAAA,CACAH,KAAAC,OACAG,UAAA,GAEAC,QAAA,CACAL,KAAAC,OACAC,QAAA,MAEAI,YAAA,CACAN,KAAAC,OACAC,QAAA,MAEAK,KAAA,CACAP,KAAAC,OACAC,QAAA,IAEAM,QAAA,CACAR,KAAAS,QACAP,SAAA,GAEAQ,MAAA,CACAV,KAAAC,OACAC,QAAA,IAQAS,QAAA,CACAX,KAAAS,QACAP,SAAA,IAIAU,IAAAA,GACA,OACAC,kBAAA,KAAAd,cAAA,UAAAA,aAAAe,OACAC,QAAA,EAEA,EAEAC,SAAA,CACAC,SAAAA,GAEA,QAAAV,KAAAW,WAAA,KACA,SAIA,IAEA,IAAAC,IAAA,KAAAZ,KACA,OACA,QACA,CACA,QACA,GAGAa,MAAA,CAEArB,YAAAA,GACA,KAAAc,kBAAA,KAAAd,cAAA,UAAAA,aAAAe,OACA,KAAAC,QAAA,CACA,GAGAM,QAAA,CACAC,WAAAA,CAAAC,GACA,KAAAC,MAAAD,EAAAvB,KAAAuB,EACA,EAKAE,OAAAA,GACA,KAAAZ,mBAAA,CACA,EAEAa,MAAAA,GACA,KAAAX,QAAA,CACA,I,uIElIIY,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IACxBF,EAAQG,OAAS,SAAc,KAAM,QACrCH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,IAAQM,QAAS,IAAQA,O,eCL1D,SAXgB,OACd,GCTW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,IAAI,CAACE,YAAY,yBAAyBC,MAAM,CACpH,kCAAmCL,EAAIvB,SACtC6B,MAAM,CAAC,KAAON,EAAI5B,aAAe,KAAKmC,GAAG,CAAC,MAAQP,EAAIZ,YAAY,MAAQY,EAAIZ,cAAc,CAACc,EAAG,MAAM,CAACE,YAAY,8BAA8BC,MAAM,CACvJ,uCAAwCL,EAAI1B,QAC5C,2CAA4C0B,EAAIrB,oBAAsBqB,EAAInB,OAC1E,8CAA+CmB,EAAIrB,mBAAqBqB,EAAInB,OAC5E,CAACmB,EAAI3B,OAAQ2B,EAAInB,SAAWmB,EAAIjB,WAC/ByB,MAAO,CACRC,gBAAiBT,EAAIjB,UAAY,OAAOiB,EAAI3B,QAAU,KACnD,CAAE2B,EAAIrB,kBAAmBuB,EAAG,MAAM,CAACQ,WAAW,CAAC,CAACjD,KAAK,OAAOkD,QAAQ,SAASC,MAAOZ,EAAInB,OAAQgC,WAAW,WAAWP,MAAM,CAAC,IAAMN,EAAInC,aAAa,IAAM,IAAI0C,GAAG,CAAC,MAAQP,EAAIT,QAAQ,KAAOS,EAAIR,UAAUQ,EAAIc,OAAOd,EAAIe,GAAG,KAAKb,EAAG,OAAO,CAACE,YAAY,kCAAkC,CAACF,EAAG,OAAO,CAACE,YAAY,kCAAkCE,MAAM,CAAC,MAAQN,EAAI/B,QAAQ,CAACiC,EAAG,cAAc,CAACI,MAAM,CAAC,KAAON,EAAI/B,MAAM,OAAS+B,EAAIxB,UAAU,GAAGwB,EAAIe,GAAG,KAAMf,EAAI7B,QAAS+B,EAAG,OAAO,CAACE,YAAY,kCAAkCE,MAAM,CAAC,MAAQN,EAAI7B,UAAU,CAAC6B,EAAIe,GAAGf,EAAIgB,GAAGhB,EAAI7B,YAAY6B,EAAIc,QAC9kB,GACsB,IDCpB,EACA,KACA,WACA,MAI8B,QEnBoK,ECwCpM,CACArD,KAAA,2BAEAiB,KAAAA,KACA,CACAuC,MAAA,KACAC,KAAA,OAGAC,OAAAA,GACA,MAAAC,EAAAC,iBAAAC,SAAAC,iBACA,KAAAL,KAAAE,EAAAI,iBAAA,4BACA,KAAAP,MAAAG,EAAAI,iBAAA,4BACA,EAEArC,QAAA,CACAsC,UAAAA,IACAC,KAAAC,MAAA,GAAAD,KAAAE,UAAA,K,eC9CI,EAAU,CAAC,EAEf,EAAQlC,kBAAoB,IAC5B,EAAQC,cAAgB,IACxB,EAAQC,OAAS,SAAc,KAAM,QACrC,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCL1D,SAXgB,OACd,GCTW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,KAAK,CAACA,EAAG,MAAM,CAACE,YAAY,+CAA+C,CAACF,EAAG,OAAO,CAACA,EAAG,iBAAiB,CAACI,MAAM,CAAC,GAAK,gDAAgD,CAACJ,EAAG,OAAO,CAACI,MAAM,CAAC,OAAS,KAAK,aAAaN,EAAIiB,QAAQ,CAACf,EAAG,UAAU,CAACI,MAAM,CAAC,cAAgB,aAAa,OAAS,GAAGN,EAAIiB,UAAUjB,EAAIiB,UAAUjB,EAAIkB,SAASlB,EAAIkB,SAASlB,EAAIiB,QAAQ,IAAM,KAAK,YAAc,kBAAkBjB,EAAIe,GAAG,KAAKb,EAAG,OAAO,CAACI,MAAM,CAAC,OAAS,OAAO,aAAaN,EAAIkB,OAAO,CAAChB,EAAG,UAAU,CAACI,MAAM,CAAC,cAAgB,aAAa,OAAS,GAAGN,EAAIkB,SAASlB,EAAIiB,UAAUjB,EAAIiB,UAAUjB,EAAIkB,SAASlB,EAAIkB,OAAO,IAAM,KAAK,YAAc,mBAAmB,IAAI,KAAKlB,EAAIe,GAAG,KAAKf,EAAI6B,GAAI,CAAC,EAAG,EAAG,IAAI,SAASC,GAAa,OAAO5B,EAAG,KAAK,CAAC6B,IAAID,GAAa,CAAC5B,EAAG,MAAM,CAACE,YAAY,qCAAqCE,MAAM,CAAC,MAAQ,6BAA6B,KAAO,sDAAsD,CAACJ,EAAG,OAAO,CAACE,YAAY,4CAA4CJ,EAAIe,GAAG,KAAKb,EAAG,OAAO,CAACE,YAAY,gDAAgDJ,EAAIe,GAAG,KAAKb,EAAG,OAAO,CAACE,YAAY,8CAA8CI,MAAO,CAACwB,MAAO,QAAQhC,EAAIyB,sBAAuB,KAAI,EACxuC,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,Q,qCEVzB,MAAMQ,GAAeC,EAAAA,EAAAA,GAAU,iBAAkB,iBAC3CC,GAAkBD,EAAAA,EAAAA,GAAU,iBAAkB,oBAAqB,GACnEE,GAAmBF,EAAAA,EAAAA,GAAU,iBAAkB,eAAe,GAE9DG,EAAgB,wBAChBC,EAAiB,yBAcvBC,eAAeC,IACrB,IACC,MAAM,KAAE9D,SAAe+D,EAAAA,GAAMC,KAAIC,EAAAA,EAAAA,IAAe,oBAAqB,CACpEC,OAAQ,CAEPC,KAAMC,OAAOC,SAASC,SAASC,QAAQ,aAAc,IAAMH,OAAOC,SAASG,UAG7E,GAAI,QAASxE,GAAQ,SAAUA,EAAKyE,KAAOC,MAAMC,QAAQ3E,EAAKyE,IAAIzE,OAASA,EAAKyE,IAAIzE,KAAK4E,OAAS,EAEjG,OAAO5E,EAAKyE,IAAIzE,IAElB,CAAE,MAAO6E,GACRC,QAAQD,MAAMA,EACf,CACA,MAAO,EACR,CAWO,SAASL,EAAMO,GAA0B,IAAzB,KAAE3F,EAAI,MAAEU,EAAK,OAAEkF,GAAQD,EAI7C,MAAME,EAtCyBlB,EAAAA,GAAMmB,YAAYC,SAkDjD,MAAO,CACNC,QAXevB,SAAYE,EAAAA,GAAMC,KAAIC,EAAAA,EAAAA,IAAe,iCAAkC,CAAE7E,SAAS,CACjG6F,YAAaA,EAAYI,MACzBnB,OAAQ,CACPoB,KAAMxF,EACNkF,SAEAb,KAAMC,OAAOC,SAASC,SAASC,QAAQ,aAAc,IAAMH,OAAOC,SAASG,UAM5Ee,OAAQN,EAAYM,OAEtB,CCgDA,MC3HyL,ED+HzL,CACAxG,KAAA,sBAEAC,WAAA,CACAwG,QAAA,IACAC,eAAA,IACAC,UAAA,IACAC,eAAA,IACAC,aAAA,IACAC,aAAA,EACAC,yBAAA,EACAC,YAAAA,EAAAA,GAGA/F,KAAAA,KACA,CACAgG,MAAA,GAGAC,QAAA,GAEAC,OAAA,GAEAC,QAAA,GAEAC,QAAA,GAEAC,SAAA,GAEAC,QAAA,GAEAxG,MAAA,GACAC,QAAA,KACAwG,WAAA,EAEAhD,aAAA,EACAE,gBAAA,EACAC,iBAAA,EAEA8C,MAAA,IAIApG,SAAA,CACAqG,QAAAA,GACA,YAAAT,MAAAU,KAAAtH,GAAAA,EAAAuH,IACA,EACAC,UAAAA,GACA,YAAAZ,MAAAU,KAAAtH,GAAAA,EAAAL,MACA,EACA8H,QAAAA,GACA,YAAAb,MAAAc,QAAA,CAAAC,EAAAC,KACAD,EAAAC,EAAAL,IAAAK,EAAAjI,KACAgI,IACA,GACA,EAEAE,UAAAA,IACAC,EAAA,iBAQAC,UAAAA,GACA,WAAAC,OAAAC,KAAA,KAAAf,SAAA1B,MACA,EAOA0C,cAAAA,GACA,YAAAb,SACAc,QAAAnI,GAAAA,KAAA,KAAAkH,UACAI,KAAAtH,IAAA,CACAA,OACAoI,KAAA,KAAAlB,QAAAlH,MAEA,EAQAqI,gBAAAA,GACA,OAAAL,OAAAC,KAAA,KAAAf,QACA,EAOAoB,aAAAA,GACA,IAAAC,EACA,MAAAC,EAAA,GACA,aAAAD,EAAAhE,EAAAkE,KAAA,KAAA/H,SACA8H,EAAAE,KAAAH,EAAA,IAEA,OAAAC,CACA,EAOAG,cAAAA,GACA,IAAAJ,EACA,MAAAC,EAAA,GACA,aAAAD,EAAA/D,EAAAiE,KAAA,KAAA/H,SACA8H,EAAAE,KAAAH,EAAA,IAEA,OAAAC,CACA,EAOAI,eAAAA,GACA,YAAAzB,UACAW,EAAA,iCAAApH,MAAA,KAAAA,QACAoH,EAAA,wCACA,EAOAe,qBAAAA,GACA,YAAAC,aAIAC,EAAA,OACA,6DACA,+DACA,KAAA1E,gBACA,CAAAA,gBAAA,KAAAA,kBAPA,EAQA,EAOAyE,YAAAA,GACA,YAAApI,OAAA,KAAAA,MAAAI,OAAA0E,OAAAnB,CACA,EAOA2E,YAAAA,GACA,YAAAtI,OAAA,UAAAA,MAAAI,SAAA,KAAAgI,YACA,EAOAG,eAAAA,GACA,OAAAjB,OAAAkB,OAAA,KAAAlC,SAAAmC,OAAAC,IAAA,IAAAA,GACA,EAOAC,SAAAA,GACA,OAAArB,OAAAkB,OAAA,KAAAnC,SAAAuC,MAAAF,IAAA,IAAAA,GACA,GAGA,aAAAG,GACA,KAAA3C,YAAAlC,IACA,KAAA8E,OAAAC,MAAA,+DAAA7C,MACA,EAEA8C,aAAAA,IACAC,EAAAA,EAAAA,IAAA,gCAAAC,mBACA,EAEAvG,OAAAA,IAEAwG,EAAAA,EAAAA,IAAA,gCAAAD,oBAEAE,IAAAC,cAAAC,4BAIAxG,SAAAyG,iBAAA,WAAAC,IAEAA,EAAAC,SAAA,SAAAD,EAAAE,OAAA,KAAAhD,MACA8C,EAAAG,iBACA,KAAAjD,MAAA,GACA8C,EAAAC,SAAA,MAAAD,EAAAjG,KAAA,KAAAmD,OAEA,KAAAA,MAAA,GAIA,KAAAA,OAEA,cAAA8C,EAAAjG,KACA,KAAAqG,UAAAJ,GAIA,YAAAA,EAAAjG,KACA,KAAAsG,UAAAL,GAEA,GAEA,EAEA7I,QAAA,CACA,YAAAmJ,GAEA,KAAA5D,YAAAlC,GACA,EACA+F,OAAAA,IACAC,EAAAA,EAAAA,IAAA,iCACA,EAEAd,kBAAAA,GACA,KAAAe,KAAAC,gBAAA,wBAAAC,SACA,EAKAC,OAAAA,IACAJ,EAAAA,EAAAA,IAAA,kCACA,KAAAlB,OAAAC,MAAA,gBACA,KAAA/I,MAAA,GACA,KAAAqK,aACA,KAAAC,YACA,EACA,gBAAAD,GACA,KAAAlE,QAAA,GACA,KAAAC,OAAA,GACA,KAAAE,QAAA,GACA,KAAAE,QAAA,GACA,KAAAvG,QAAA,KACA,KAAAwG,WAAA,QACA,KAAA8D,uBACA,EAKA,2BAAAA,GAEA,MAAAhE,EAAA,KAAAA,SAAAiE,MAAA,GACA,KAAAjE,SAAA,SAGAkE,QAAAC,IAAAnE,EAAAK,KAAAnB,GAAAA,MACA,EAKA6E,UAAAA,GACA,KAAAK,WAAA,KACA,KAAAC,MAAAC,MAAAC,QACA,KAAAF,MAAAC,MAAAE,QAAA,GAEA,EAMAC,YAAAA,GACA,KAAA3D,WACA,KAAA4D,iBACA,GAAAC,QAGA,KAAAC,SACA,EAKA,aAAAA,GAKA,IAHAnB,EAAAA,EAAAA,IAAA,mCAAAhK,MAAA,KAAAA,QAGA,UAAAA,MAAAI,QAAA,KAAAgI,aAAA,CACA,UAAA9I,KAAA,KAAAqH,SACA,KAAAyE,QAAA,KAAA5E,QAAAlH,GAEA,MACA,CAEA,IAAA4G,EAAA,KAAAS,SACA3G,EAAA,KAAAA,MAGA,KAAAiI,eAAAnD,OAAA,IACAoB,EAAA,KAAAS,SAAAc,QAAAnI,IAAA,SAAA2I,eAAAoD,QAAA/L,MAIA,KAAAsI,cAAA9C,OAAA,IACAoB,EAAA,KAAAS,SAAAc,QAAAnI,GAAA,KAAAsI,cAAAyD,QAAA/L,IAAA,KAIAU,EAAAA,EAAAyE,QAAAZ,EAAA,IAAAY,QAAAX,EAAA,UAGA,KAAAuG,aACA,KAAA5D,WAAA,EAEAP,EAAApB,QAMA,KAAAwG,KAAA,KAAAjF,QAAA,UACA,KAAAyC,OAAAC,MAAA,aAAA/I,OAAAkG,GAEAuE,QAAAC,IAAAxE,EAAAU,KAAA,UACA,IAEA,cAAAtB,EAAA,OAAAG,GAAAf,EAAA,CAAApF,OAAAU,UACA,KAAAuG,SAAAyB,KAAAvC,GAGA,WAAAvF,SAAAoF,IA2BA,OAxBApF,EAAAyE,IAAAzE,KAAAqL,QAAAzG,OAAA,EACA,KAAAwG,KAAA,KAAA9E,QAAAlH,EAAAY,EAAAyE,IAAAzE,KAAAqL,SAEA,KAAAH,QAAA,KAAA5E,QAAAlH,GAIAY,EAAAyE,IAAAzE,KAAAgF,OACA,KAAAoG,KAAA,KAAAnF,QAAA7G,EAAAY,EAAAyE,IAAAzE,KAAAgF,QACAhF,EAAAyE,IAAAzE,KAAAsL,aAGA,KAAAF,KAAA,KAAAlF,OAAA9G,EAAA,KAAAmE,cAIAvD,EAAAyE,IAAAzE,KAAAqL,QAAAzG,OAAA,KAAArB,cACA,KAAA6H,KAAA,KAAAhF,QAAAhH,GAAA,GAIA,YAAAW,UACA,KAAAA,QAAA,GAxXA,CA2XA,OAAA8E,GAIA,OAHA,KAAAqG,QAAA,KAAA5E,QAAAlH,GAGAyF,EAAA0G,UAAA1G,EAAA0G,SAAAC,QACA,KAAA5C,OAAA/D,MAAA,4BAAAgC,SAAAzH,KAAAyF,IACA4G,EAAAA,EAAAA,IAAA,KAAAvE,EAAA,uDAAA9H,KAAA,KAAAyH,SAAAzH,MAlYA,GAEA,CAoYA,MACAsM,MAAApF,IAGAA,EAAAoC,MAAAiD,GAxYA,IAwYAA,MAIA,KAAAxF,QAAA,QA5DA,KAAAyC,OAAA/D,MAAA,wBA8DA,EACA+G,iBAAAlI,EACAmI,KAAA,SAAAlL,GACA,KAAAsK,QAAAtK,EACA,QACA,WACA,KAAA4F,WAAA,CACA,EAOA,cAAAuF,CAAA1M,GAEA,SAAA+G,QAAA/G,GAAA,CAIA,QAAA6G,QAAA7G,GAAA,CAEA,cAAAgG,EAAA,OAAAG,GAAAf,EAAA,CAAApF,OAAAU,MAAA,KAAAA,MAAAkF,OAAA,KAAAiB,QAAA7G,KACA,KAAAiH,SAAAyB,KAAAvC,GAGA,WAAAvF,SAAAoF,IAGApF,EAAAyE,IAAAzE,KAAAgF,QACA,KAAAoG,KAAA,KAAAnF,QAAA7G,EAAAY,EAAAyE,IAAAzE,KAAAgF,QAIAhF,EAAAyE,IAAAzE,KAAAqL,QAAAzG,OAAA,GACA,KAAA0B,QAAAlH,GAAA0I,QAAA9H,EAAAyE,IAAAzE,KAAAqL,SAIArL,EAAAyE,IAAAzE,KAAAqL,QAAAzG,OAAA,KAAArB,cACA,KAAA6H,KAAA,KAAAhF,QAAAhH,GAAA,EAEA,MAGA,KAAA8G,OAAA9G,IAAA,KAAA8G,OAAA9G,IAAA,IACA,KAAA8G,OAAA9G,IAAA,KAAAmE,aAGA,KAAA2C,OAAA9G,IAAA,KAAAkH,QAAAlH,GAAAwF,QACA,KAAAwG,KAAA,KAAAhF,QAAAhH,GAAA,IAMA,YAAAW,SACA,KAAA0K,WAAA,KACA,KAAAsB,WAAA,KAAAhM,QAAA,GAxCA,CA2CA,EAUAiM,UAAAA,CAAAxE,EAAApI,GACA,OAAAA,KAAA,KAAA8G,OACAsB,EAAA8C,MAAA,OAAApE,OAAA9G,IAEAoI,CACA,EAEAuD,cAAAA,GACA,YAAAhB,IAAAkC,iBAAA,mDACA,EAOAC,UAAAA,CAAA5C,GACA,MAAAhD,EAAA,KAAAyE,iBACAzE,GAAAA,EAAA1B,OAAA,IACA0E,GACAA,EAAAG,iBAEA,KAAA1J,QAAA,EACA,KAAAgM,WAAA,KAAAhM,SAEA,EAOA2J,SAAAA,CAAAJ,GACA,eAAAvJ,QAEA,YADA,KAAAmM,WAAA5C,GAIA,MAAAhD,EAAA,KAAAyE,iBAEAzE,GAAAA,EAAA1B,OAAA,QAAA7E,QAAA,EAAAuG,EAAA1B,SACA0E,EAAAG,iBACA,KAAA1J,UACA,KAAAgM,WAAA,KAAAhM,SAEA,EAOA4J,SAAAA,CAAAL,GACA,eAAAvJ,QAEA,YADA,KAAAmM,WAAA5C,GAIA,MAAAhD,EAAA,KAAAyE,iBAEAzE,GAAAA,EAAA1B,OAAA,QAAA7E,QAAA,IACAuJ,EAAAG,iBACA,KAAA1J,UACA,KAAAgM,WAAA,KAAAhM,SAGA,EAOAgM,UAAAA,CAAAI,GACA,MAAA7F,EAAA,KAAAyE,iBACAzE,GAAAA,EAAA6F,IACA7F,EAAA6F,GAAAvB,OAEA,EAOAwB,eAAAA,CAAA9C,GACA,MAAA+C,EAAA/C,EAAAgD,OAEAH,EAAA,IADA,KAAApB,kBACAwB,WAAA/H,GAAAA,IAAA6H,IACAF,GAAA,IAEA,KAAApM,QAAAoM,EAEA,EAEAK,aAAAA,CAAAjF,GACA,KAAAzH,MAAA,QAAAA,SAAAyH,IACAhD,QAAA,aACArE,OACA,KAAA+K,SACA,I,eE3qBI,EAAU,CAAC,EAEf,EAAQjK,kBAAoB,IAC5B,EAAQC,cAAgB,IACxB,EAAQC,OAAS,SAAc,KAAM,QACrC,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCL1D,SAXgB,OACd,GCTW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,eAAe,CAACE,YAAY,iBAAiBE,MAAM,CAAC,GAAK,iBAAiB,kCAAkC,CAAC,YAAY,KAAON,EAAIkF,KAAK,aAAalF,EAAI2F,WAAWpF,GAAG,CAAC,cAAc,SAAS4K,GAAQnL,EAAIkF,KAAKiG,CAAM,EAAE,KAAOnL,EAAIsI,OAAO,MAAQtI,EAAIuI,SAAS6C,YAAYpL,EAAIqL,GAAG,CAAC,CAACtJ,IAAI,UAAUuJ,GAAG,WAAW,MAAO,CAACpL,EAAG,UAAU,CAACE,YAAY,+BAA+BE,MAAM,CAAC,KAAO,MAAM,EAAEiL,OAAM,MAAS,CAACvL,EAAIe,GAAG,KAAKb,EAAG,MAAM,CAACE,YAAY,iCAAiC,CAACF,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,cAAc,CAACsL,IAAI,QAAQpL,YAAY,6BAA6BC,MAAM,CAAC,2CAA4CL,EAAIxB,OAAO8B,MAAM,CAAC,MAAQN,EAAIxB,MAAM,uBAAuB,QAAQ,MAAQwB,EAAI2F,UAAU,wBAAwB3F,EAAI4F,EAAE,OAAO,gBAAgB,uBAAqC,KAAd5F,EAAIxB,MAAa,mBAAmB,sBAAsB,YAAcwB,EAAI4F,EAAE,OAAQ,mBAAoB,CAAElB,MAAO1E,EAAIsF,WAAWmG,KAAK,SAAUlL,GAAG,CAAC,eAAe,SAAS4K,GAAQnL,EAAIxB,MAAM2M,CAAM,EAAE,wBAAwBnL,EAAI4I,QAAQ,MAAQ5I,EAAIsK,oBAAoBtK,EAAIe,GAAG,KAAKb,EAAG,IAAI,CAACE,YAAY,kBAAkBE,MAAM,CAAC,GAAK,wBAAwB,CAACN,EAAIe,GAAG,aAAaf,EAAIgB,GAAGhB,EAAI4F,EAAE,OAAQ,uFAAuF,cAAc5F,EAAIe,GAAG,KAAMf,EAAImG,iBAAiB7C,OAAS,EAAGpD,EAAG,YAAY,CAACE,YAAY,0BAA0BE,MAAM,CAAC,UAAY,aAAa,UAAY,mCAAmCN,EAAI6B,GAAI7B,EAAImG,kBAAkB,SAASF,GAAQ,OAAO/F,EAAG,iBAAiB,CAAC6B,IAAIkE,EAAO3F,MAAM,CAAC,KAAO,eAAeC,GAAG,CAAC,MAAQ,SAAS4K,GAAiC,OAAzBA,EAAOO,kBAAyB1L,EAAIkL,cAAc,MAAMjF,IAAS,IAAI,CAACjG,EAAIe,GAAG,eAAef,EAAIgB,GAAGhB,EAAI4F,EAAE,OAAQ,yBAA0B,CAAEnI,KAAMuC,EAAIuF,SAASU,MAAY,eAAe,IAAG,GAAGjG,EAAIc,MAAM,KAAKd,EAAIe,GAAG,KAAOf,EAAI6F,WAAkgB7F,EAAI6B,GAAI7B,EAAIgG,gBAAgB,SAAAvC,EAAsBkI,GAAW,IAAxB,KAACzF,EAAI,KAAEpI,GAAK2F,EAAa,MAAO,CAACvD,EAAG,KAAK,CAAC6B,IAAIjE,EAAKsC,YAAY,kCAAkC,CAACJ,EAAIe,GAAG,WAAWf,EAAIgB,GAAGhB,EAAIuF,SAASzH,IAAO,YAAYkC,EAAIe,GAAG,KAAKb,EAAG,KAAK,CAAC6B,IAAIjE,EAAKsC,YAAY,0BAA0BC,MAAM,2BAA2BvC,IAAOwC,MAAM,CAAC,aAAaN,EAAIuF,SAASzH,KAAQ,CAACkC,EAAI6B,GAAI7B,EAAI0K,WAAWxE,EAAMpI,IAAO,SAASuM,EAAOQ,GAAO,OAAO3K,EAAG,KAAK,CAAC6B,IAAIsI,EAAOjM,aAAa,CAAC8B,EAAG,eAAeF,EAAI4L,GAAG,CAACtL,MAAM,CAAC,MAAQN,EAAIxB,MAAM,QAA0B,IAAhBwB,EAAIvB,SAAgC,IAAfkN,GAA8B,IAAVd,GAAatK,GAAG,CAAC,MAAQP,EAAI8K,kBAAkB,eAAeT,GAAO,KAAS,EAAE,IAAGrK,EAAIe,GAAG,KAAKb,EAAG,KAAK,CAAGF,EAAI8E,QAAQhH,GAEnzFkC,EAAIc,KAFszFZ,EAAG,eAAe,CAACE,YAAY,8BAA8BE,MAAM,CAAC,MAAQN,EAAI6E,QAAQ/G,GACznGkC,EAAI4F,EAAE,OAAQ,0BACd5F,EAAI4F,EAAE,OAAQ,qBAAqB,aAAa5F,EAAI6E,QAAQ/G,GAAQ,qBAAuB,IAAIyC,GAAG,CAAC,MAAQ,SAAS4K,GAAyD,OAAjDA,EAAOhD,iBAAiBgD,EAAOO,kBAAyB1L,EAAIwK,SAAS1M,EAAK,EAAE,MAAQkC,EAAI8K,oBAA6B,IAAI,GAAG,IAFspD,CAAE9K,EAAImH,UAAWjH,EAAG,4BAA6BF,EAAI8G,aAAc5G,EAAG,iBAAiB,CAACI,MAAM,CAAC,MAAQN,EAAI0G,iBAAiB0E,YAAYpL,EAAIqL,GAAG,CAAC,CAACtJ,IAAI,OAAOuJ,GAAG,WAAW,MAAO,CAACpL,EAAG,WAAW,EAAEqL,OAAM,IAAO,MAAK,EAAM,cAAevL,EAAImH,WAAanH,EAAI4G,aAAc1G,EAAG,iBAAiB,CAACI,MAAM,CAAC,MAAQN,EAAI4F,EAAE,OAAQ,0BAA0B,YAAc5F,EAAI2G,uBAAuByE,YAAYpL,EAAIqL,GAAG,CAAC,CAACtJ,IAAI,OAAOuJ,GAAG,WAAW,MAAO,CAACpL,EAAG,WAAW,EAAEqL,OAAM,IAAO,MAAK,EAAM,aAAavL,EAAIc,OAEloE,EACpQ,GACsB,IDQpB,EACA,KACA,WACA,MAI8B,QENhC+K,EAAAA,IAAoBC,EAAAA,EAAAA,MAEpB,MAAMxE,IAASyE,EAAAA,EAAAA,MACbC,OAAO,kBACPC,aACAC,QAEFC,EAAAA,GAAIC,MAAM,CACT1N,KAAIA,KACI,CACN4I,YAGFnI,QAAS,CACRyG,EAAC,KACDiB,EAACA,EAAAA,MAIH,IAAmBsF,EAAAA,GAAI,CACtBE,GAAI,kBAEJ5O,KAAM,oBACN6O,OAAQC,GAAKA,EAAEC,I,sECjCZC,E,MAA0B,GAA4B,KAE1DA,EAAwBjG,KAAK,CAACkG,EAAOrH,GAAI,i1DAAk1D,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wEAAwE,MAAQ,GAAG,SAAW,kiBAAkiB,WAAa,MAEniF,S,sECJIoH,E,MAA0B,GAA4B,KAE1DA,EAAwBjG,KAAK,CAACkG,EAAOrH,GAAI,moBAAooB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,8EAA8E,MAAQ,GAAG,SAAW,gNAAgN,WAAa,MAEzgC,S,sECJIoH,E,MAA0B,GAA4B,KAE1DA,EAAwBjG,KAAK,CAACkG,EAAOrH,GAAI,onGAAqnG,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sDAAsD,MAAQ,GAAG,SAAW,izBAAizB,WAAa,MAEnkI,S,GCNIsH,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIN,EAASC,EAAyBE,GAAY,CACjDxH,GAAIwH,EACJhO,QAAQ,EACRmO,QAAS,CAAC,GAUX,OANAC,EAAoBJ,GAAUK,KAAKR,EAAOM,QAASN,EAAQA,EAAOM,QAASJ,GAG3EF,EAAO7N,QAAS,EAGT6N,EAAOM,OACf,CAGAJ,EAAoBO,EAAIF,EtB5BpB3P,EAAW,GACfsP,EAAoBQ,EAAI,CAAC/C,EAAQgD,EAAU/B,EAAIgC,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAInQ,EAASgG,OAAQmK,IAAK,CACrCJ,EAAW/P,EAASmQ,GAAG,GACvBnC,EAAKhO,EAASmQ,GAAG,GACjBH,EAAWhQ,EAASmQ,GAAG,GAE3B,IAJA,IAGIC,GAAY,EACPC,EAAI,EAAGA,EAAIN,EAAS/J,OAAQqK,MACpB,EAAXL,GAAsBC,GAAgBD,IAAaxH,OAAOC,KAAK6G,EAAoBQ,GAAGnG,OAAOlF,GAAS6K,EAAoBQ,EAAErL,GAAKsL,EAASM,MAC9IN,EAASO,OAAOD,IAAK,IAErBD,GAAY,EACTJ,EAAWC,IAAcA,EAAeD,IAG7C,GAAGI,EAAW,CACbpQ,EAASsQ,OAAOH,IAAK,GACrB,IAAII,EAAIvC,SACEyB,IAANc,IAAiBxD,EAASwD,EAC/B,CACD,CACA,OAAOxD,CArBP,CAJCiD,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAInQ,EAASgG,OAAQmK,EAAI,GAAKnQ,EAASmQ,EAAI,GAAG,GAAKH,EAAUG,IAAKnQ,EAASmQ,GAAKnQ,EAASmQ,EAAI,GACrGnQ,EAASmQ,GAAK,CAACJ,EAAU/B,EAAIgC,EAuBjB,EuB3BdV,EAAoB/F,EAAK6F,IACxB,IAAIoB,EAASpB,GAAUA,EAAOqB,WAC7B,IAAOrB,EAAiB,QACxB,IAAM,EAEP,OADAE,EAAoBoB,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdlB,EAAoBoB,EAAI,CAAChB,EAASkB,KACjC,IAAI,IAAInM,KAAOmM,EACXtB,EAAoBuB,EAAED,EAAYnM,KAAS6K,EAAoBuB,EAAEnB,EAASjL,IAC5E+D,OAAOsI,eAAepB,EAASjL,EAAK,CAAEsM,YAAY,EAAM3L,IAAKwL,EAAWnM,IAE1E,ECND6K,EAAoB0B,EAAI,CAAC,EAGzB1B,EAAoBvN,EAAKkP,GACjBtF,QAAQC,IAAIpD,OAAOC,KAAK6G,EAAoB0B,GAAG9I,QAAO,CAACgJ,EAAUzM,KACvE6K,EAAoB0B,EAAEvM,GAAKwM,EAASC,GAC7BA,IACL,KCNJ5B,EAAoB6B,EAAKF,GAEZA,EAAU,IAAMA,EAAU,SAAW,CAAC,KAAO,uBAAuB,KAAO,wBAAwBA,GCHhH3B,EAAoB8B,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAO1O,MAAQ,IAAI2O,SAAS,cAAb,EAChB,CAAE,MAAOvP,GACR,GAAsB,iBAAXyD,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxB8J,EAAoBuB,EAAI,CAACU,EAAKC,IAAUhJ,OAAOiJ,UAAUC,eAAe9B,KAAK2B,EAAKC,G3BA9EvR,EAAa,CAAC,EACdC,EAAoB,aAExBoP,EAAoBqC,EAAI,CAACC,EAAKC,EAAMpN,EAAKwM,KACxC,GAAGhR,EAAW2R,GAAQ3R,EAAW2R,GAAK1I,KAAK2I,OAA3C,CACA,IAAIC,EAAQC,EACZ,QAAWtC,IAARhL,EAEF,IADA,IAAIuN,EAAUhO,SAASiO,qBAAqB,UACpC9B,EAAI,EAAGA,EAAI6B,EAAQhM,OAAQmK,IAAK,CACvC,IAAI+B,EAAIF,EAAQ7B,GAChB,GAAG+B,EAAEC,aAAa,QAAUP,GAAOM,EAAEC,aAAa,iBAAmBjS,EAAoBuE,EAAK,CAAEqN,EAASI,EAAG,KAAO,CACpH,CAEGJ,IACHC,GAAa,GACbD,EAAS9N,SAASoO,cAAc,WAEzBC,QAAU,QACjBP,EAAOQ,QAAU,IACbhD,EAAoBiD,IACvBT,EAAOU,aAAa,QAASlD,EAAoBiD,IAElDT,EAAOU,aAAa,eAAgBtS,EAAoBuE,GAExDqN,EAAOW,IAAMb,GAEd3R,EAAW2R,GAAO,CAACC,GACnB,IAAIa,EAAmB,CAACvK,EAAMuC,KAE7BoH,EAAOa,QAAUb,EAAOc,OAAS,KACjCC,aAAaP,GACb,IAAIQ,EAAU7S,EAAW2R,GAIzB,UAHO3R,EAAW2R,GAClBE,EAAOiB,YAAcjB,EAAOiB,WAAWC,YAAYlB,GACnDgB,GAAWA,EAAQG,SAASjF,GAAQA,EAAGtD,KACpCvC,EAAM,OAAOA,EAAKuC,EAAM,EAExB4H,EAAUY,WAAWR,EAAiBS,KAAK,UAAM1D,EAAW,CAAEjP,KAAM,UAAWkN,OAAQoE,IAAW,MACtGA,EAAOa,QAAUD,EAAiBS,KAAK,KAAMrB,EAAOa,SACpDb,EAAOc,OAASF,EAAiBS,KAAK,KAAMrB,EAAOc,QACnDb,GAAc/N,SAASoP,KAAKC,YAAYvB,EApCkB,CAoCX,E4BvChDxC,EAAoBiB,EAAKb,IACH,oBAAX4D,QAA0BA,OAAOC,aAC1C/K,OAAOsI,eAAepB,EAAS4D,OAAOC,YAAa,CAAEjQ,MAAO,WAE7DkF,OAAOsI,eAAepB,EAAS,aAAc,CAAEpM,OAAO,GAAO,ECL9DgM,EAAoBkE,IAAOpE,IAC1BA,EAAOqE,MAAQ,GACVrE,EAAOsE,WAAUtE,EAAOsE,SAAW,IACjCtE,GCHRE,EAAoBe,EAAI,K,MCAxB,IAAIsD,EACArE,EAAoB8B,EAAEwC,gBAAeD,EAAYrE,EAAoB8B,EAAE3L,SAAW,IACtF,IAAIzB,EAAWsL,EAAoB8B,EAAEpN,SACrC,IAAK2P,GAAa3P,IACbA,EAAS6P,eAAkE,WAAjD7P,EAAS6P,cAAcC,QAAQC,gBAC5DJ,EAAY3P,EAAS6P,cAAcpB,MAC/BkB,GAAW,CACf,IAAI3B,EAAUhO,EAASiO,qBAAqB,UAC5C,GAAGD,EAAQhM,OAEV,IADA,IAAImK,EAAI6B,EAAQhM,OAAS,EAClBmK,GAAK,KAAOwD,IAAc,aAAaK,KAAKL,KAAaA,EAAY3B,EAAQ7B,KAAKsC,GAE3F,CAID,IAAKkB,EAAW,MAAM,IAAIM,MAAM,yDAChCN,EAAYA,EAAUhO,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KACpF2J,EAAoB4E,EAAIP,C,WClBxBrE,EAAoB6E,EAAInQ,SAASoQ,SAAWC,KAAK5O,SAAS6O,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAGPjF,EAAoB0B,EAAEX,EAAI,CAACY,EAASC,KAElC,IAAIsD,EAAqBlF,EAAoBuB,EAAE0D,EAAiBtD,GAAWsD,EAAgBtD,QAAWxB,EACtG,GAA0B,IAAvB+E,EAGF,GAAGA,EACFtD,EAAShI,KAAKsL,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAI9I,SAAQ,CAAC+I,EAASC,IAAYH,EAAqBD,EAAgBtD,GAAW,CAACyD,EAASC,KAC1GzD,EAAShI,KAAKsL,EAAmB,GAAKC,GAGtC,IAAI7C,EAAMtC,EAAoB4E,EAAI5E,EAAoB6B,EAAEF,GAEpDhL,EAAQ,IAAIgO,MAgBhB3E,EAAoBqC,EAAEC,GAfFlH,IACnB,GAAG4E,EAAoBuB,EAAE0D,EAAiBtD,KAEf,KAD1BuD,EAAqBD,EAAgBtD,MACRsD,EAAgBtD,QAAWxB,GACrD+E,GAAoB,CACtB,IAAII,EAAYlK,IAAyB,SAAfA,EAAMlK,KAAkB,UAAYkK,EAAMlK,MAChEqU,EAAUnK,GAASA,EAAMgD,QAAUhD,EAAMgD,OAAO+E,IACpDxM,EAAM6O,QAAU,iBAAmB7D,EAAU,cAAgB2D,EAAY,KAAOC,EAAU,IAC1F5O,EAAM9F,KAAO,iBACb8F,EAAMzF,KAAOoU,EACb3O,EAAMO,QAAUqO,EAChBL,EAAmB,GAAGvO,EACvB,CACD,GAEwC,SAAWgL,EAASA,EAE/D,CACD,EAWF3B,EAAoBQ,EAAEO,EAAKY,GAA0C,IAA7BsD,EAAgBtD,GAGxD,IAAI8D,EAAuB,CAACC,EAA4B5T,KACvD,IAKImO,EAAU0B,EALVlB,EAAW3O,EAAK,GAChB6T,EAAc7T,EAAK,GACnB8T,EAAU9T,EAAK,GAGI+O,EAAI,EAC3B,GAAGJ,EAASjG,MAAM/B,GAAgC,IAAxBwM,EAAgBxM,KAAa,CACtD,IAAIwH,KAAY0F,EACZ3F,EAAoBuB,EAAEoE,EAAa1F,KACrCD,EAAoBO,EAAEN,GAAY0F,EAAY1F,IAGhD,GAAG2F,EAAS,IAAInI,EAASmI,EAAQ5F,EAClC,CAEA,IADG0F,GAA4BA,EAA2B5T,GACrD+O,EAAIJ,EAAS/J,OAAQmK,IACzBc,EAAUlB,EAASI,GAChBb,EAAoBuB,EAAE0D,EAAiBtD,IAAYsD,EAAgBtD,IACrEsD,EAAgBtD,GAAS,KAE1BsD,EAAgBtD,GAAW,EAE5B,OAAO3B,EAAoBQ,EAAE/C,EAAO,EAGjCoI,EAAqBd,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1Fc,EAAmBlC,QAAQ8B,EAAqB5B,KAAK,KAAM,IAC3DgC,EAAmBjM,KAAO6L,EAAqB5B,KAAK,KAAMgC,EAAmBjM,KAAKiK,KAAKgC,G,KCvFvF7F,EAAoBiD,QAAK9C,ECGzB,IAAI2F,EAAsB9F,EAAoBQ,OAAEL,EAAW,CAAC,OAAO,IAAOH,EAAoB,SAC9F8F,EAAsB9F,EAAoBQ,EAAEsF,E","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?efd4","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=24dedcdd&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&__form-input {\n\t\tmargin: 0 !important;\n\t\t&:focus,\n\t\t&:focus-visible,\n\t\t&:active {\n\t\t\tborder-color: 2px solid var(--color-main-text) !important;\n\t\t\tbox-shadow: 0 0 0 2px var(--color-main-background) !important;\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&,\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, &-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.unified-search__result-more::v-deep {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t.empty-content {\n\t\tmargin: 10vh 0;\n\n\t\t::v-deep .empty-content__title {\n\t\t\tfont-weight: normal;\n font-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=24dedcdd&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=24dedcdd&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=24dedcdd&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=24dedcdd&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 \"24dedcdd\",\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\",\"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\",\"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-24dedcdd]{color:var(--color-background-plain-text) !important}.unified-search__input-wrapper[data-v-24dedcdd]{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-24dedcdd]{align-self:flex-start;font-weight:bold;font-size:19px;margin-inline-start:13px}.unified-search__form-input[data-v-24dedcdd]{margin:0 !important}.unified-search__form-input[data-v-24dedcdd]:focus,.unified-search__form-input[data-v-24dedcdd]:focus-visible,.unified-search__form-input[data-v-24dedcdd]:active{border-color:2px solid var(--color-main-text) !important;box-shadow:0 0 0 2px var(--color-main-background) !important}.unified-search__input-row[data-v-24dedcdd]{display:flex;width:100%;align-items:center}.unified-search__filters[data-v-24dedcdd]{margin-block:10px;margin-inline:5px 0;padding-top:5px}.unified-search__filters ul[data-v-24dedcdd]{display:inline-flex;justify-content:space-between}.unified-search__form[data-v-24dedcdd]{position:relative;width:100%;margin:10px 0}.unified-search__form[data-v-24dedcdd]::after{inset-inline-start:auto 10px}.unified-search__form-input[data-v-24dedcdd],.unified-search__form-reset[data-v-24dedcdd]{margin:5px}.unified-search__form-input[data-v-24dedcdd]{width:100%;height:34px;padding:10px}.unified-search__form-input[data-v-24dedcdd],.unified-search__form-input[placeholder][data-v-24dedcdd],.unified-search__form-input[data-v-24dedcdd]::placeholder{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.unified-search__form-input[data-v-24dedcdd]::-webkit-search-decoration,.unified-search__form-input[data-v-24dedcdd]::-webkit-search-cancel-button,.unified-search__form-input[data-v-24dedcdd]::-webkit-search-results-button,.unified-search__form-input[data-v-24dedcdd]::-webkit-search-results-decoration{-webkit-appearance:none}.unified-search__form-reset[data-v-24dedcdd],.unified-search__form-submit[data-v-24dedcdd]{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-24dedcdd]:hover,.unified-search__form-reset[data-v-24dedcdd]:focus,.unified-search__form-reset[data-v-24dedcdd]:active,.unified-search__form-submit[data-v-24dedcdd]:hover,.unified-search__form-submit[data-v-24dedcdd]:focus,.unified-search__form-submit[data-v-24dedcdd]:active{opacity:1}.unified-search__form-submit[data-v-24dedcdd]{inset-inline-end:28px}.unified-search__results[data-v-24dedcdd]{display:flex;flex-direction:column;gap:4px}.unified-search__results-header[data-v-24dedcdd]{display:block;margin:10px;margin-bottom:6px;margin-inline-start:13px;color:var(--color-primary-element);font-size:19px;font-weight:bold}.unified-search .unified-search__result-more[data-v-24dedcdd]{color:var(--color-text-maxcontrast)}.unified-search .empty-content[data-v-24dedcdd]{margin:10vh 0}.unified-search .empty-content[data-v-24dedcdd] .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,6CACC,mBAAA,CACA,kKAGC,wDAAA,CACA,4DAAA,CAIF,4CACC,YAAA,CACA,UAAA,CACA,kBAAA,CAGD,0CACC,iBA7CO,CA8CP,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,WAtEY,CAuEZ,YAtEa,CAwEb,iKAGC,eAAA,CACA,kBAAA,CACA,sBAAA,CAID,+SAIC,uBAAA,CAIF,2FACC,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,WA3HM,CA4HN,iBAAA,CACA,wBAAA,CACA,kCAAA,CACA,cAAA,CACA,gBAAA,CAIF,8DACC,mCAAA,CAGD,gDACC,aAAA,CAEA,sEACC,kBAAA,CACS,kCAAA,CACT,iBAAA\",\"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=\" + {\"5706\":\"3153330af47fc26a725a\",\"6127\":\"94ece8c4b3588e75f3c1\"}[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__(37426)))\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":""}