You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nextcloud/dist/core-global-search.js.map

1 line
141 KiB
Plaintext

{"version":3,"file":"core-global-search.js?v=402ebc713388dd110675","mappings":";uBAAIA,iHCoBJ,MCpBgH,EDoBhH,CACEC,KAAM,oBACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,qBEff,SAXgB,OACd,GCRW,WAAkB,IAAIG,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,2CAA2CC,MAAM,CAAC,eAAeN,EAAIP,MAAM,aAAaO,EAAIP,MAAM,KAAO,OAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIJ,UAAU,MAAQI,EAAIF,KAAK,OAASE,EAAIF,KAAK,QAAU,cAAc,CAACI,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,yKAAyK,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIP,UAAUO,EAAIa,UAC/qB,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,QElBhC,0BCwCA,MCxCgM,EDwChM,CACAvB,KAAA,uBACAwB,WAAA,CACAC,SAAA,IACAC,QAAA,IACAC,kBAAA,EACAC,iBAAAA,EAAAA,GAEA1B,MAAA,CACA2B,OAAA,CACAzB,KAAA0B,QACAC,UAAA,IAGAC,KAAAA,KACA,CACAC,WAAA,CAAAC,UAAA,KAAAC,MAAA,QAGAC,SAAA,CACAC,YAAA,CACAC,GAAAA,GACA,YAAAT,MACA,EACAU,GAAAA,CAAAC,GACA,KAAArB,MAAA,iBAAAqB,EACA,IAGAC,QAAA,CACAC,UAAAA,GACA,KAAAL,aAAA,CACA,EACAM,gBAAAA,GACA,KAAAxB,MAAA,6BAAAc,YACA,KAAAS,YACA,wIEjEIE,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,IAAQM,QAAS,IAAQA,OCP1D,SAXgB,OACd,GJTW,WAAkB,IAAIxC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAQF,EAAI2B,YAAazB,EAAG,UAAU,CAACI,MAAM,CAAC,GAAK,gBAAgB,KAAON,EAAIyC,EAAE,OAAQ,qBAAqB,KAAOzC,EAAI2B,YAAY,KAAO,QAAQ,mBAAmB,EAAE,MAAQ3B,EAAIyC,EAAE,sBAAsBlC,GAAG,CAAC,cAAc,SAASC,GAAQR,EAAI2B,YAAYnB,CAAM,EAAE,MAAQR,EAAIgC,aAAa,CAAC9B,EAAG,MAAM,CAACG,YAAY,mCAAmC,CAACH,EAAG,KAAK,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ,yBAAyBzC,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,4CAA4C,CAACH,EAAG,mBAAmB,CAACI,MAAM,CAAC,GAAK,uCAAuC,IAAM,IAAIoC,KAAO,MAAQ1C,EAAIyC,EAAE,OAAQ,qBAAqB,KAAO,QAAQE,MAAM,CAACb,MAAO9B,EAAIuB,WAAWC,UAAWoB,SAAS,SAAUC,GAAM7C,EAAI8C,KAAK9C,EAAIuB,WAAY,YAAasB,EAAI,EAAEE,WAAW,0BAA0B/C,EAAIW,GAAG,KAAKT,EAAG,mBAAmB,CAACI,MAAM,CAAC,GAAK,qCAAqC,IAAM,IAAIoC,KAAO,MAAQ1C,EAAIyC,EAAE,OAAQ,oBAAoB,KAAO,QAAQE,MAAM,CAACb,MAAO9B,EAAIuB,WAAWE,MAAOmB,SAAS,SAAUC,GAAM7C,EAAI8C,KAAK9C,EAAIuB,WAAY,QAASsB,EAAI,EAAEE,WAAW,uBAAuB,GAAG/C,EAAIW,GAAG,KAAKT,EAAG,WAAW,CAACK,GAAG,CAAC,MAAQP,EAAIiC,kBAAkBe,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACjD,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE8C,OAAM,IAAO,MAAK,EAAM,aAAa,CAACpD,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ,gBAAgB,eAAe,KAAKzC,EAAIa,IACz4C,GACsB,IIUpB,EACA,KACA,WACA,MAI8B,QCnBiF,ECoBjH,CACEvB,KAAM,qBACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,MCff,GAXgB,OACd,GCRW,WAAkB,IAAIG,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,4CAA4CC,MAAM,CAAC,eAAeN,EAAIP,MAAM,aAAaO,EAAIP,MAAM,KAAO,OAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIJ,UAAU,MAAQI,EAAIF,KAAK,OAASE,EAAIF,KAAK,QAAU,cAAc,CAACI,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,mNAAmN,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIP,UAAUO,EAAIa,UAC1tB,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,QElB6E,ECoB7G,CACEvB,KAAM,iBACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,MCjC6K,ECgB5L,CACAP,KAAA,mBACAwB,WAAA,CACAuC,WCZgB,OACd,GCRW,WAAkB,IAAIrD,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,wCAAwCC,MAAM,CAAC,eAAeN,EAAIP,MAAM,aAAaO,EAAIP,MAAM,KAAO,OAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIJ,UAAU,MAAQI,EAAIF,KAAK,OAASE,EAAIF,KAAK,QAAU,cAAc,CAACI,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,gHAAgH,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIP,UAAUO,EAAIa,UACnnB,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,SDGhCrB,MAAA,CACA8D,KAAA3D,OACA4D,QAAA5D,QAEAoC,QAAA,CACAyB,UAAAA,GACA,KAAA/C,MAAA,cAAAgD,OACA,mBGjBI,EAAU,CAAC,EAEf,EAAQtB,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCP1D,SAXgB,OACd,GCTW,WAAkB,IAAIxC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,YAAY,QAAQ,CAACH,EAAG,OAAO,CAACG,YAAY,QAAQ,CAACL,EAAI0D,GAAG,QAAQ1D,EAAIW,GAAG,KAAMX,EAAIuD,QAAQI,OAAQzD,EAAG,OAAO,CAACF,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAIuD,SAAS,SAASvD,EAAIa,MAAM,GAAGb,EAAIW,GAAG,KAAKT,EAAG,OAAO,CAACG,YAAY,QAAQ,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIsD,SAAStD,EAAIW,GAAG,KAAKT,EAAG,OAAO,CAACG,YAAY,aAAaE,GAAG,CAAC,MAAQP,EAAIwD,aAAa,CAACtD,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,OAAO,IAC5a,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEnB6E,ECoB7G,CACEhB,KAAM,iBACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,MCff,GAXgB,OACd,GCRW,WAAkB,IAAIG,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,wCAAwCC,MAAM,CAAC,eAAeN,EAAIP,MAAM,aAAaO,EAAIP,MAAM,KAAO,OAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIJ,UAAU,MAAQI,EAAIF,KAAK,OAASE,EAAIF,KAAK,QAAU,cAAc,CAACI,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,6LAA6L,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIP,UAAUO,EAAIa,UAChsB,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,QElB0E,ECoB1G,CACEvB,KAAM,cACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,MCff,GAXgB,OACd,GCRW,WAAkB,IAAIG,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,qCAAqCC,MAAM,CAAC,eAAeN,EAAIP,MAAM,aAAaO,EAAIP,MAAM,KAAO,OAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIJ,UAAU,MAAQI,EAAIF,KAAK,OAASE,EAAIF,KAAK,QAAU,cAAc,CAACI,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,8LAA8L,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIP,UAAUO,EAAIa,UAC9rB,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,k+BE+Fd,IACK,IACJ,IACC,IACH,IACD,KACC,KACC,KACG,KACL,KACQ,KACX,IACG,KACO,KACH,KACD,KACO,KACG,KACN,KACD,KACI,KACC,KACF,KACF,KACC,KACR,KACG,KACK,wBACZ,KACI,KACC,KACL,IACa,KACR,KACJ,KACM,KACE,KACI,KACX,KACM,KACM,IACd,KACM,KACD,KACC,IACA,KACF,KACD,KACK,KACN,IACI,KACD,GAAA+C,EACE,KACR,IACG,KACK,KACN,KACI,KACU,KACF,WACX,KACW,KACb,KACI,KACO,KACF,KACI,KACX,KACC,KACK,KACJ,KACbC,OAAOC,YA8CD,KACE,KACA,YACRD,OAAOC,4BCnKV,MCtE0L,GDsE1L,CACAxE,KAAA,iBAEAwB,WAAA,CACAiD,UAAA,KACAC,YAAA,KACAC,QAAA,UACAC,mBAAA,WACAC,SAAA,KACAC,eAAA,IACArD,SAAAA,EAAAA,GAGAvB,MAAA,CACA6E,UAAA,CACA3E,KAAAC,OACAE,QAAA,mBAGAyE,WAAA,CACA5E,KAAA6E,MACAlD,UAAA,GAGAmD,iBAAA,CACA9E,KAAAC,OACA0B,UAAA,IAIAC,KAAAA,KACA,CACAmD,QAAA,EACAC,OAAA,EACAC,WAAA,KAIAjD,SAAA,CACAkD,YAAAA,GACA,YAAAN,WAAAb,QAAAoB,IACA,KAAAF,WAAAG,cAAAnB,QAGA,gBAAAoB,MAAAC,GAAAH,EAAAG,GAAAF,cAAAG,SAAA,KAAAN,WAAAG,kBAEA,GAGA/C,QAAA,CACAmD,WAAAA,GACA,KAAAP,WAAA,EACA,EACAQ,YAAAA,CAAAN,GACA,KAAApE,MAAA,gBAAAoE,GACA,KAAAK,cACA,KAAAT,QAAA,CACA,oBEpHI,GAAU,CAAC,EAEf,GAAQtC,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,ICTW,WAAkB,IAAIxC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,YAAY,CAACI,MAAM,CAAC,MAAQN,EAAIyE,QAAQlE,GAAG,CAAC,KAAO,SAASC,GAAQR,EAAIyE,QAAS,CAAI,EAAE,KAAO,SAASjE,GAAQR,EAAIyE,QAAS,CAAK,GAAGzB,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,WAAW,MAAO,CAACnD,EAAI0D,GAAG,WAAW,EAAEN,OAAM,IAAO,MAAK,IAAO,CAACpD,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,4BAA4B,CAACH,EAAG,cAAc,CAACI,MAAM,CAAC,MAAQN,EAAI2E,WAAW,MAAQ3E,EAAIqE,UAAU,uBAAuB,QAAQ,uBAA0C,KAAnBrE,EAAI2E,YAAmBpE,GAAG,CAAC,eAAe,SAASC,GAAQR,EAAI2E,WAAWnE,CAAM,EAAE,wBAAwBR,EAAIkF,cAAc,CAAChF,EAAG,UAAU,CAACI,MAAM,CAAC,KAAO,OAAO,GAAGN,EAAIW,GAAG,KAAMX,EAAI4E,aAAajB,OAAS,EAAGzD,EAAG,KAAK,CAACG,YAAY,yBAAyBL,EAAIoF,GAAIpF,EAAI4E,cAAc,SAASC,GAAS,OAAO3E,EAAG,KAAK,CAACgD,IAAI2B,EAAQQ,GAAG/E,MAAM,CAAC,MAAQuE,EAAQS,YAAY,KAAO,WAAW,CAACpF,EAAG,WAAW,CAACI,MAAM,CAAC,UAAY,QAAQ,KAAO,WAAW,MAAO,GAAMC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAImF,aAAaN,EAAQ,GAAG7B,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACjD,EAAG,WAAW,CAACI,MAAM,CAAC,KAAOuE,EAAQU,KAAK,oBAAmB,EAAM,iBAAgB,KAAS,EAAEnC,OAAM,IAAO,MAAK,IAAO,CAACpD,EAAIW,GAAG,eAAeX,EAAIY,GAAGiE,EAAQS,aAAa,iBAAiB,EAAE,IAAG,GAAGpF,EAAG,MAAM,CAACG,YAAY,kCAAkC,CAACH,EAAG,iBAAiB,CAACI,MAAM,CAAC,KAAON,EAAIwE,kBAAkBxB,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACjD,EAAG,sBAAsB,EAAEkD,OAAM,QAAW,IAAI,IACl8C,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,+CEkFzBoC,eAAeC,GAAWC,GAAiB,IAAhB,WAAEf,GAAYe,EAC/C,MAAQpE,MAAM,SAAEqE,UAAqBC,GAAAA,EAAMC,MAAKC,EAAAA,GAAAA,aAAY,0BAA2B,CACtFrC,OAAQkB,IAET,OAAOgB,CACR,iBC6DA,MCvKuL,GDuKvL,CACArG,KAAA,oBACAwB,WAAA,CACAiF,WAAA,UACAC,aAAA,IACA/E,kBAAA,EACAgF,qBAAA,EACAC,mBAAA,EACAC,WAAA,EACAC,WAAA,EACAC,QAAA,EACAC,UAAA,IACAC,eAAA,IACApC,SAAA,IACApD,SAAA,IACAqD,eAAA,IACApD,QAAA,IACAwF,WAAA,IACAC,aAAA,IACAC,YAAA,UACAC,eAAAA,IAEAnH,MAAA,CACAoH,UAAA,CACAlH,KAAA0B,QACAC,UAAA,IAGAC,IAAAA,GACA,OACAuF,UAAA,GACAC,0BAAA,EACAC,sBAAA,EACAC,oBAAA,EACAzF,WAAA,CAAA8D,GAAA,OAAA3F,KAAA,OAAA4D,KAAA,GAAA9B,UAAA,KAAAC,MAAA,MACAwF,aAAA,CAAA5B,GAAA,SAAA3F,KAAA,SAAAJ,KAAA,IACA4H,qBAAA,EACAC,uBAAA,EACAC,kBAAA,GACAC,YAAA,GACAC,aAAA,GACAC,eAAA,KACAC,QAAA,GACAC,QAAA,GACA9B,SAAA,GACA+B,cAAAC,KAAA,KAAAC,KAAA,KACAC,oBAAA,EAEA,EAEAnG,SAAA,CACAoG,aAAA,CACAlG,GAAAA,GACA,YAAA+D,QACA,GAEAoC,cAAA,CACAnG,GAAAA,GACA,MAAAoG,EAAA,SAAAX,YAAA1D,OACAsE,EAAA,KAAAZ,YAAA1D,OAAA,YAAA8D,QAAA9D,OAEA,OACAuE,KAAAF,GAAAC,EACA3E,KAAA0E,EAAAvF,EAAA,iCAAAA,EAAA,8BACA0F,KAAAH,EAAAtB,EAAAA,QAAAN,EAEA,IAGAgC,OAAAA,IDvMO5C,iBACN,IACC,MAAM,KAAElE,SAAesE,GAAAA,EAAMhE,KAAIyG,EAAAA,GAAAA,gBAAe,oBAAqB,CACpEC,OAAQ,CAEPC,KAAMC,OAAOC,SAASC,SAASC,QAAQ,aAAc,IAAMH,OAAOC,SAASG,UAG7E,GAAI,QAAStH,GAAQ,SAAUA,EAAKuH,KAAOtE,MAAMuE,QAAQxH,EAAKuH,IAAIvH,OAASA,EAAKuH,IAAIvH,KAAKqC,OAAS,EAEjG,OAAOrC,EAAKuH,IAAIvH,IAElB,CAAE,MAAOoD,GACRqE,GAAQrE,MAAMA,EACf,CACA,MAAO,EACR,ECwLAsE,GAAAC,MAAApC,IACA,KAAAA,UAAAA,EACAkC,GAAAG,MAAA,wBAAArC,UAAA,IAEApB,GAAA,CAAAhC,OAAA,KAAAwF,MAAAtD,IACA,KAAAA,SAAA,KAAAwD,YAAAxD,GACAoD,GAAAG,MAAA,gBAAAvD,SAAA,GAEA,EACA5D,QAAA,CACA6F,IAAAA,CAAAwB,GACA,OAAAA,EAAAzF,OAEA,YADA,KAAA8D,QAAA,IAGA,MAAA4B,EAAA,GACAC,EAAA,KAAAlC,kBAAAzD,OAAA,OAAAyD,kBAAA,KAAAP,UACA0C,EAAAA,CAAAC,EAAAhC,KACA,MAAAc,EAAA,CACA5I,KAAA8J,EAAAnE,GACA+D,QACAK,OAAA,MAGA,GAAAjC,EAAAN,oBAAA,CACA,IAAAsC,EAAAhC,QAAAkC,QAAAF,EAAAhC,QAAAmC,MAKA,OAJArB,EAAAoB,MAAA,KAAAnI,WAAAC,UACA8G,EAAAqB,MAAA,KAAApI,WAAAE,KAKA,CAEA,GAAA+F,EAAAL,sBAAA,CACA,IAAAqC,EAAAhC,QAAAoC,OAIA,OAHAtB,EAAAsB,OAAA,KAAA3C,aAAA1B,IAKA,CAEA,KAAAyB,oBAAA,IACAsB,EAAAuB,MAAA,KAAA7C,sBAKA8C,ED1NO,SAAeC,GAAuD,IAAtD,KAAErK,EAAI,MAAE0J,EAAK,OAAEK,EAAM,MAAEC,EAAK,MAAEC,EAAK,MAAEE,EAAK,OAAED,GAAQG,EAI1E,MAAMC,EA1CyBpE,GAAAA,EAAMqE,YAAYC,SA0DjD,MAAO,CACNJ,QAfetE,SAAYI,GAAAA,EAAMhE,KAAIyG,EAAAA,GAAAA,gBAAe,iCAAkC,CAAE3I,SAAS,CACjGsK,YAAaA,EAAYG,MACzB7B,OAAQ,CACP8B,KAAMhB,EACNK,SACAC,QACAC,QACAE,QACAD,SAEArB,KAAMC,OAAOC,SAASC,SAASC,QAAQ,aAAc,IAAMH,OAAOC,SAASG,UAM5EyB,OAAQL,EAAYK,OAEtB,CCgMAC,CAAAhC,GAAAwB,WAEAb,MAAAsB,IACAlB,EAAAmB,KAAA,CACAnF,GAAAmE,EAAAnE,GACAmE,SAAAA,EAAAlK,KACAmL,YAAAjB,EAAAiB,YACAhD,QAAA8C,EAAAjJ,KAAAuH,IAAAvH,KAAAoJ,UAGA3B,GAAAG,MAAA,cAAAG,GACAN,GAAAG,MAAA,8BAAAzB,SAEA,KAAAkD,cAAAtB,EAAA,GACA,EAEAC,EAAAsB,SAAApB,IACA,MAAAtC,EAAA,KAAAA,oBACAC,EAAA,KAAAA,sBACAoC,EAAAC,EAAA,CAAAtC,sBAAAC,yBAAA,GAGA,EACAwD,aAAAA,CAAAtB,GACA,IAAAwB,EAAA,SAAApD,SAEA,KAAAD,QAAA7D,OAAA,IACAkH,EAAAA,EAAApH,QAAAqH,GACA,KAAAtD,QAAAzC,MAAAtB,GAAAA,EAAA4B,KAAAyF,EAAAzF,QAIAgE,EAAAuB,SAAAG,IACA,MAAAC,EAAAH,EAAAI,WAAAH,GAAAA,EAAAzF,KAAA0F,EAAA1F,MACA,IAAA2F,EACA,IAAAD,EAAAtD,QAAA9D,OAEAkH,EAAAK,OAAAF,EAAA,GAGAH,EAAAK,OAAAF,EAAA,EAAAD,GAEAA,EAAAtD,QAAA9D,OAAA,GAEAkH,EAAAL,KAAAO,EACA,IAEA,MAAAI,EAAAN,EAAAO,MAAA,GAEAD,EAAAE,MAAA,CAAAC,EAAAC,KACA,MAAAC,EAAA,KAAA3E,UAAAe,MAAA4B,GAAAA,EAAAnE,KAAAiG,EAAAjG,KACAoG,EAAA,KAAA5E,UAAAe,MAAA4B,GAAAA,EAAAnE,KAAAkG,EAAAlG,KAGA,OAFAmG,EAAAA,EAAAE,MAAA,IACAD,EAAAA,EAAAC,MAAA,EACA,IAEA,KAAAjE,QAAA0D,CACA,EACAQ,UAAAA,CAAAb,GACAA,EAAAc,cACApD,OAAAC,SAAAqC,EAAAc,YAEA,EACAzC,YAAAxD,GACAA,EAAAkG,KAAAC,IACA,CAGAxG,YAAAwG,EAAAC,SACAC,UAAA,EACAC,QAAAH,EAAAI,eAAA,GAAAJ,EAAAI,eAAA,MACA/D,KAAA,GACA5C,KAAAuG,EAAAzG,OAIA8G,cAAAA,CAAA/C,GACA3D,GAAA,CAAAhC,OAAA2F,IAAAH,MAAAtD,IACA,KAAAA,SAAA,KAAAwD,YAAAxD,GACAoD,GAAAG,MAAA,wBAAAE,IAAA,KAAAzD,SAAA,GAEA,EACAyG,iBAAAA,CAAAxC,GACA,KAAAzC,uBAAA,EACA,MAAAkF,EAAA,KAAA7E,QAAAyD,WAAAxH,GAAAA,EAAA4B,KAAAuE,EAAAvE,MACA,IAAAgH,GACA,KAAApF,aAAA5B,GAAAuE,EAAAvE,GACA,KAAA4B,aAAA1B,KAAAqE,EAAArE,KACA,KAAA0B,aAAA3H,KAAAsK,EAAAtE,YACA,KAAAkC,QAAAgD,KAAA,KAAAvD,gBAEA,KAAAO,QAAA6E,GAAAhH,GAAAuE,EAAAvE,GACA,KAAAmC,QAAA6E,GAAA9G,KAAAqE,EAAArE,KACA,KAAAiC,QAAA6E,GAAA/M,KAAAsK,EAAAtE,aAGA,KAAAoC,cAAA,KAAAL,aACA0B,GAAAG,MAAA,wBAAAU,EACA,EACA0C,0BAAAA,CAAAC,GACA,KAAAvF,qBAAA,EACA,KAAAQ,QAAA,KAAAA,QAAA/D,QAAAA,GAAA,aAAAA,EAAA/D,OACA,MAAA8J,EAAA,KAAA3C,UAAAe,MAAA4B,GAAAA,EAAAnE,KAAAkH,IACA,KAAAC,kBAAAhD,GAAA,EACA,EACAgD,iBAAAA,CAAAC,GAAA,IAAAH,EAAAI,UAAA/I,OAAA,QAAAgJ,IAAAD,UAAA,IAAAA,UAAA,GACAD,EAAApH,KACA,KAAA2B,oBAAAsF,EAAA,KAAAtF,oBAAA,EACA,KAAAF,0BAAA,EACA,KAAAM,kBAAAQ,MAAAgF,GAAAA,EAAAvH,KAAAoH,EAAApH,MAEA,KAAA+B,kBAAAoD,KAAA,CAAAnF,GAAAoH,EAAApH,GAAA/F,KAAAmN,EAAAnN,KAAA6I,KAAAsE,EAAAtE,KAAAzI,KAAA,WAAA8H,QAAAiF,EAAAjF,UAEA,KAAAA,QAAA,KAAAqF,oBAAA,KAAArF,QAAA,KAAAJ,mBACA2B,GAAAG,MAAA,oCAAA1B,SACA,KAAAE,cAAA,KAAAL,aACA,EACAyF,YAAAA,CAAArJ,GACA,gBAAAA,EAAA/D,KAAA,CACA,QAAAqN,EAAA,EAAAA,EAAA,KAAA3F,kBAAAzD,OAAAoJ,IACA,QAAA3F,kBAAA2F,GAAA1H,KAAA5B,EAAA4B,GAAA,CACA,KAAA+B,kBAAA8D,OAAA6B,EAAA,GACA,KACA,CAEA,KAAAvF,QAAA,KAAAqF,oBAAA,KAAArF,QAAA,KAAAJ,mBACA2B,GAAAG,MAAA,yCAAA1B,QAEA,MACA,QAAAuF,EAAA,EAAAA,EAAA,KAAAvF,QAAA7D,OAAAoJ,IAEA,iBAAAvF,QAAAuF,GAAA1H,IAAA,KAAAmC,QAAAuF,GAAA1H,KAAA5B,EAAA4B,GAAA,CACA,KAAA6B,qBAAA,EACA,KAAAM,QAAA0D,OAAA6B,EAAA,GACA,WAAAtJ,EAAA/D,OACA,KAAAyH,uBAAA,GAEA,KACA,CAGA,KAAAO,cAAA,KAAAL,YACA,EACAwF,mBAAAA,CAAAG,EAAAC,GAEA,MAAAC,EAAAF,EAAA5B,QAoBA,OAlBA8B,EAAAtC,SAAA,CAAAuC,EAAAC,KACA,MAAAC,EAAAF,EAAA9H,GACA,aAAA8H,EAAAzN,OACAuN,EAAAlI,MAAAuI,GAAAA,EAAAjI,KAAAgI,KACAH,EAAAhC,OAAAkC,EAAA,GAEA,IAGAH,EAAArC,SAAA0C,IACA,MAAAD,EAAAC,EAAAjI,GACA,aAAAiI,EAAA5N,OACAwN,EAAAnI,MAAAoI,GAAAA,EAAA9H,KAAAgI,KACAH,EAAA1C,KAAA8C,GAEA,IAGAJ,CACA,EACAK,gBAAAA,GACA,MAAAC,EAAA,KAAAhG,QAAAyD,WAAAxH,GAAA,SAAAA,EAAA4B,MACA,IAAAmI,EACA,KAAAhG,QAAAgG,GAAA,KAAAjM,WAEA,KAAAiG,QAAAgD,KAAA,KAAAjJ,YAEA,KAAA2F,qBAAA,EACA,KAAAQ,cAAA,KAAAL,YACA,EACAoG,mBAAAA,CAAAC,GACA,KAAA3G,sBAAA,EACA,MAAA4G,EAAA,IAAAjL,KACA,IACAkL,EADAC,EAAAF,EAEA,OAAAD,GACA,YAEAE,EAAAD,EACA,KAAApM,WAAA+B,KAAAb,EAAA,gBACA,MACA,YAEAmL,EAAA,IAAAlL,KAAAiL,GACAC,EAAAE,QAAAH,EAAAI,UAAA,GACA,KAAAxM,WAAA+B,KAAAb,EAAA,sBACA,MACA,aAEAmL,EAAA,IAAAlL,KAAAiL,GACAC,EAAAE,QAAAH,EAAAI,UAAA,IACA,KAAAxM,WAAA+B,KAAAb,EAAA,uBACA,MACA,eAEAmL,EAAA,IAAAlL,KAAAiL,EAAAK,cAAA,KACA,KAAAzM,WAAA+B,KAAAb,EAAA,oBACA,MACA,eAEAmL,EAAA,IAAAlL,KAAAiL,EAAAK,cAAA,OACAH,EAAA,IAAAnL,KAAAiL,EAAAK,cAAA,SACA,KAAAzM,WAAA+B,KAAAb,EAAA,oBACA,MACA,aAEA,YADA,KAAAoF,oBAAA,GAEA,QACA,OAGA,KAAAtG,WAAAC,UAAAoM,EACA,KAAArM,WAAAE,MAAAoM,EACA,KAAAN,kBAEA,EACAU,kBAAAA,CAAAC,GACAnF,GAAAG,MAAA,oBAAAgF,GACA,KAAA3M,WAAAC,UAAA0M,EAAA1M,UACA,KAAAD,WAAAE,MAAAyM,EAAAzM,MACA,KAAAF,WAAA+B,KAAAb,EAAA,uBAAAlB,WAAAC,UAAA2M,4BAAA,KAAA5M,WAAAE,MAAA0M,wBACA,KAAAZ,kBACA,EACAa,WAAAjG,GACA,eAAAkG,KAAAlG,IAAAA,EAAAmG,WAAA,MAEAtM,UAAAA,GACA,KAAAqF,YAAA,EACA,oBE5fI,GAAU,CAAC,EAEf,GAAQlF,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,ICTW,WAAkB,IAAIxC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAQF,EAAI4G,UAAW1G,EAAG,UAAU,CAACI,MAAM,CAAC,GAAK,gBAAgB,KAAON,EAAIyC,EAAE,OAAQ,iBAAiB,KAAOzC,EAAI4G,UAAU,mBAAmB,EAAE,MAAQ5G,EAAIyC,EAAE,kBAAkBlC,GAAG,CAAC,cAAc,SAASC,GAAQR,EAAI4G,UAAUpG,CAAM,EAAE,MAAQR,EAAIgC,aAAa,CAAC9B,EAAG,uBAAuB,CAACqO,MAAM,4BAA4BjO,MAAM,CAAC,UAAUN,EAAI6H,oBAAoBtH,GAAG,CAAC,wBAAwBP,EAAIiO,mBAAmB,iBAAiB,SAASzN,GAAQR,EAAI6H,mBAAqBrH,CAAM,KAAKR,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACsO,IAAI,eAAenO,YAAY,uBAAuB,CAACH,EAAG,KAAK,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ,qBAAqBzC,EAAIW,GAAG,KAAKT,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQN,EAAIqH,YAAY,KAAO,OAAO,MAAQrH,EAAIyC,EAAE,OAAQ,sCAAwC,OAAOlC,GAAG,CAAC,eAAe,CAAC,SAASC,GAAQR,EAAIqH,YAAY7G,CAAM,EAAER,EAAI0H,kBAAkB1H,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,gCAAgC,CAACH,EAAG,YAAY,CAACI,MAAM,CAAC,YAAYN,EAAIyC,EAAE,OAAQ,qBAAqB,KAAOzC,EAAI8G,0BAA0BvG,GAAG,CAAC,cAAc,SAASC,GAAQR,EAAI8G,yBAAyBtG,CAAM,GAAGwC,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACjD,EAAG,UAAU,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE8C,OAAM,IAAO,MAAK,EAAM,YAAY,CAACpD,EAAIW,GAAG,KAAKX,EAAIoF,GAAIpF,EAAI6G,WAAW,SAAS2C,GAAU,OAAOtJ,EAAG,iBAAiB,CAACgD,IAAIsG,EAASnE,GAAG9E,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIwM,kBAAkBhD,EAAS,GAAGxG,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACjD,EAAG,MAAM,CAACI,MAAM,CAAC,IAAMkJ,EAASrB,QAAQ,EAAE/E,OAAM,IAAO,MAAK,IAAO,CAACpD,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ+G,EAASlK,OAAO,eAAe,KAAI,GAAGU,EAAIW,GAAG,KAAKT,EAAG,YAAY,CAACI,MAAM,CAAC,YAAYN,EAAIyC,EAAE,OAAQ,YAAY,KAAOzC,EAAI+G,sBAAsBxG,GAAG,CAAC,cAAc,SAASC,GAAQR,EAAI+G,qBAAqBvG,CAAM,GAAGwC,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACjD,EAAG,oBAAoB,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE8C,OAAM,IAAO,MAAK,EAAM,aAAa,CAACpD,EAAIW,GAAG,KAAKT,EAAG,iBAAiB,CAACK,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIyN,oBAAoB,QAAQ,IAAI,CAACzN,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ,UAAU,gBAAgBzC,EAAIW,GAAG,KAAKT,EAAG,iBAAiB,CAACK,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIyN,oBAAoB,QAAQ,IAAI,CAACzN,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ,gBAAgB,gBAAgBzC,EAAIW,GAAG,KAAKT,EAAG,iBAAiB,CAACK,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIyN,oBAAoB,SAAS,IAAI,CAACzN,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ,iBAAiB,gBAAgBzC,EAAIW,GAAG,KAAKT,EAAG,iBAAiB,CAACK,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIyN,oBAAoB,WAAW,IAAI,CAACzN,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ,cAAc,gBAAgBzC,EAAIW,GAAG,KAAKT,EAAG,iBAAiB,CAACK,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIyN,oBAAoB,WAAW,IAAI,CAACzN,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ,cAAc,gBAAgBzC,EAAIW,GAAG,KAAKT,EAAG,iBAAiB,CAACK,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIyN,oBAAoB,SAAS,IAAI,CAACzN,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ,sBAAsB,iBAAiB,GAAGzC,EAAIW,GAAG,KAAKT,EAAG,iBAAiB,CAACI,MAAM,CAAC,aAAaN,EAAIyC,EAAE,OAAQ,iBAAiB,cAAczC,EAAI8H,aAAa,qBAAqB9H,EAAIyC,EAAE,OAAQ,cAAclC,GAAG,CAAC,gBAAgBP,EAAIoM,mBAAmBpJ,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,WAAW,MAAO,CAACjD,EAAG,WAAW,CAAC8C,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACjD,EAAG,eAAe,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE8C,OAAM,IAAO,MAAK,EAAM,aAAa,CAACpD,EAAIW,GAAG,iBAAiBX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ,WAAW,kBAAkB,EAAEW,OAAM,IAAO,MAAK,EAAM,eAAe,GAAGpD,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,wCAAwCL,EAAIoF,GAAIpF,EAAIwH,SAAS,SAAS/D,GAAQ,OAAOvD,EAAG,aAAa,CAACgD,IAAIO,EAAO4B,GAAG/E,MAAM,CAAC,KAAOmD,EAAOnE,MAAQmE,EAAOH,KAAK,QAAU,IAAI/C,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOR,EAAI8M,aAAarJ,EAAO,GAAGT,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAkB,WAAhBM,EAAO/D,KAAmBQ,EAAG,WAAW,CAACI,MAAM,CAAC,KAAOmD,EAAO8B,KAAK,KAAO,GAAG,gBAAe,EAAK,oBAAmB,EAAM,iBAAgB,KAA0B,SAAhB9B,EAAO/D,KAAiBQ,EAAG,qBAAqBA,EAAG,MAAM,CAACI,MAAM,CAAC,IAAMmD,EAAO0E,KAAK,IAAM,MAAM,EAAE/E,OAAM,IAAO,MAAK,IAAO,IAAG,GAAGpD,EAAIW,GAAG,KAAMX,EAAI+H,cAAcG,KAAMhI,EAAG,MAAM,CAACG,YAAY,mCAAmC,CAACH,EAAG,iBAAiB,CAACI,MAAM,CAAC,KAAON,EAAI+H,cAAczE,MAAMN,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACjD,EAAGF,EAAI+H,cAAcI,KAAK,CAACsG,IAAI,cAAc,EAAErL,OAAM,IAAO,MAAK,EAAM,cAAc,GAAGpD,EAAIa,KAAKb,EAAIW,GAAG,KAAKX,EAAIoF,GAAIpF,EAAIyH,SAAS,SAASiH,GAAgB,OAAOxO,EAAG,MAAM,CAACgD,IAAIwL,EAAerJ,GAAGhF,YAAY,gCAAgC,CAACH,EAAG,MAAM,CAACG,YAAY,WAAW,CAACH,EAAG,MAAM,CAACG,YAAY,gBAAgB,CAACH,EAAG,OAAO,CAACF,EAAIW,GAAGX,EAAIY,GAAG8N,EAAelF,eAAexJ,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,gBAAgBL,EAAIoF,GAAIsJ,EAAejH,SAAS,SAASqD,EAAOsC,GAAO,OAAOlN,EAAG,aAAa,CAACgD,IAAIkK,EAAM/M,YAAY,qBAAqBC,MAAM,CAAC,KAAOwK,EAAOrL,OAAS,GAAG,MAAO,GAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAI2L,WAAWb,EAAO,GAAG9H,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAE2H,EAAO3C,KAAMjI,EAAG,MAAM,CAACG,YAAY,0BAA0BkO,MAAM,CACpiK,uCAAwCvO,EAAIoO,WAAWtD,EAAO6D,cAC9D,0CAA2C3O,EAAIoO,WAAWtD,EAAO6D,cACjE,CAAC7D,EAAO3C,OAAQnI,EAAIoO,WAAWtD,EAAO3C,OACrCyG,MAAO,CACRC,gBAAiB7O,EAAIoO,WAAWtD,EAAO3C,MAAS,OAAM2C,EAAO3C,QAAU,KACpE,CAAE2C,EAAO6D,aAAczO,EAAG,MAAM,CAACI,MAAM,CAAC,IAAMwK,EAAO6D,gBAAgB3O,EAAIa,OAAOb,EAAIa,KAAK,EAAEuC,OAAM,GAAM,CAACF,IAAI,UAAUC,GAAG,WAAW,MAAO,CAACnD,EAAIW,GAAG,mBAAmBX,EAAIY,GAAGkK,EAAOgE,SAAS,kBAAkB,EAAE1L,OAAM,IAAO,MAAK,IAAO,IAAG,GAAGpD,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,0BAA0BC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIsM,2BAA2BoC,EAAerJ,GAAG,GAAGrC,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACjD,EAAG,qBAAqB,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE8C,OAAM,IAAO,MAAK,IAAO,CAACpD,EAAIW,GAAG,iBAAiBX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ,sBAAsB,oBAAoBzC,EAAIW,GAAG,KAAM+N,EAAejE,YAAavK,EAAG,WAAW,CAACI,MAAM,CAAC,UAAY,cAAc,KAAO,0BAA0B0C,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACjD,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE8C,OAAM,IAAO,MAAK,IAAO,CAACpD,EAAIW,GAAG,iBAAiBX,EAAIY,GAAGZ,EAAIyC,EAAE,OAAQ,cAAc,IAAIzC,EAAIY,GAAG8N,EAAelF,UAAU,oBAAoBxJ,EAAIa,MAAM,MAAM,KAAI,IAAI,GAAGb,EAAIa,IACxhC,GACsB,IDIpB,EACA,KACA,WACA,MAI8B,wBEkBhC,MCrCkL,GDqClL,CACAvB,KAAA,eACAwB,WAAA,CACAC,SAAA,IACAkD,QAAA,UACA8K,kBAAAA,IAEAzN,KAAAA,KACA,CACA0N,kBAAA,IAGA5G,OAAAA,GACAW,GAAAG,MAAA,6BACA,EACAnH,QAAA,CACAkN,kBAAAA,GACA,KAAAD,kBAAA,KAAAA,gBACA,oBE5CI,GAAU,CAAC,EAEf,GAAQ7M,kBAAoB,IAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,ICTW,WAAkB,IAAIxC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,YAAY,eAAe,CAACH,EAAG,WAAW,CAACG,YAAY,wBAAwBC,MAAM,CAAC,aAAaN,EAAIyC,EAAE,OAAQ,kBAAkBlC,GAAG,CAAC,MAAQP,EAAIiP,oBAAoBjM,YAAYhD,EAAIiD,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAACjD,EAAG,UAAU,CAACG,YAAY,yBAAyBC,MAAM,CAAC,KAAO,MAAM,EAAE8C,OAAM,OAAUpD,EAAIW,GAAG,KAAKT,EAAG,oBAAoB,CAACqO,MAAM,sBAAsBjO,MAAM,CAAC,aAAaN,EAAIgP,qBAAqB,EAChf,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEWhCE,EAAAA,GAAoBC,MAAKC,EAAAA,EAAAA,OAEzB,MAAMC,IAASC,EAAAA,EAAAA,MACbC,OAAO,iBACPC,aACAC,QAEFC,EAAAA,QAAIC,MAAM,CACTrO,KAAIA,KACI,CACN+N,YAGFtN,QAAS,CACRU,EAAC,KACDmN,EAACA,EAAAA,MAIH,IAAmBF,EAAAA,QAAI,CACtBG,GAAI,iBAEJvQ,KAAM,mBACNwQ,OAAQC,GAAKA,EAAEC,0EClDZC,QAA0B,GAA4B,KAE1DA,EAAwBzF,KAAK,CAAC0F,EAAO7K,GAAI,sRAAuR,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,yEAAyE,MAAQ,GAAG,SAAW,mFAAmF,eAAiB,CAAC,8OAA8O,WAAa,MAE1xB,+ECJI4K,QAA0B,GAA4B,KAE1DA,EAAwBzF,KAAK,CAAC0F,EAAO7K,GAAI,+kBAAglB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qEAAqE,MAAQ,GAAG,SAAW,8OAA8O,eAAiB,CAAC,muBAAmuB,WAAa,MAE/tD,+ECJI4K,QAA0B,GAA4B,KAE1DA,EAAwBzF,KAAK,CAAC0F,EAAO7K,GAAI,ugBAAwgB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mEAAmE,MAAQ,GAAG,SAAW,0JAA0J,eAAiB,CAAC,4iBAA4iB,WAAa,MAE14C,+ECJI4K,QAA0B,GAA4B,KAE1DA,EAAwBzF,KAAK,CAAC0F,EAAO7K,GAAI,iiBAAkiB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+CAA+C,MAAQ,GAAG,SAAW,6MAA6M,eAAiB,CAAC,moBAAmoB,WAAa,MAE1hD,+ECJI4K,QAA0B,GAA4B,KAE1DA,EAAwBzF,KAAK,CAAC0F,EAAO7K,GAAI,8xFAA+xF,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oDAAoD,MAAQ,GAAG,SAAW,mpBAAmpB,eAAiB,CAAC,m2FAAq2F,WAAa,MAEp8M,8gFCNI8K,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB1D,IAAjB2D,EACH,OAAOA,EAAaC,QAGrB,IAAIL,EAASC,EAAyBE,GAAY,CACjDhL,GAAIgL,EACJG,QAAQ,EACRD,QAAS,CAAC,GAUX,OANAE,EAAoBJ,GAAUK,KAAKR,EAAOK,QAASL,EAAQA,EAAOK,QAASH,GAG3EF,EAAOM,QAAS,EAGTN,EAAOK,OACf,CAGAH,EAAoBO,EAAIF,EtD5BpBpR,EAAW,GACf+Q,EAAoBQ,EAAI,CAAC9F,EAAQ+F,EAAU1N,EAAI2N,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAASjE,EAAI,EAAGA,EAAI1N,EAASsE,OAAQoJ,IAAK,CACrC8D,EAAWxR,EAAS0N,GAAG,GACvB5J,EAAK9D,EAAS0N,GAAG,GACjB+D,EAAWzR,EAAS0N,GAAG,GAE3B,IAJA,IAGIkE,GAAY,EACPC,EAAI,EAAGA,EAAIL,EAASlN,OAAQuN,MACpB,EAAXJ,GAAsBC,GAAgBD,IAAaK,OAAOC,KAAKhB,EAAoBQ,GAAGS,OAAOnO,GAASkN,EAAoBQ,EAAE1N,GAAK2N,EAASK,MAC9IL,EAAS3F,OAAOgG,IAAK,IAErBD,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACb5R,EAAS6L,OAAO6B,IAAK,GACrB,IAAIuE,EAAInO,SACEwJ,IAAN2E,IAAiBxG,EAASwG,EAC/B,CACD,CACA,OAAOxG,CArBP,CAJCgG,EAAWA,GAAY,EACvB,IAAI,IAAI/D,EAAI1N,EAASsE,OAAQoJ,EAAI,GAAK1N,EAAS0N,EAAI,GAAG,GAAK+D,EAAU/D,IAAK1N,EAAS0N,GAAK1N,EAAS0N,EAAI,GACrG1N,EAAS0N,GAAK,CAAC8D,EAAU1N,EAAI2N,EAuBjB,EuD3BdV,EAAoBR,EAAKM,IACxB,IAAIqB,EAASrB,GAAUA,EAAOsB,WAC7B,IAAOtB,EAAiB,QACxB,IAAM,EAEP,OADAE,EAAoBqB,EAAEF,EAAQ,CAAEjG,EAAGiG,IAC5BA,CAAM,ECLdnB,EAAoBqB,EAAI,CAAClB,EAASmB,KACjC,IAAI,IAAIxO,KAAOwO,EACXtB,EAAoBuB,EAAED,EAAYxO,KAASkN,EAAoBuB,EAAEpB,EAASrN,IAC5EiO,OAAOS,eAAerB,EAASrN,EAAK,CAAE2O,YAAY,EAAMjQ,IAAK8P,EAAWxO,IAE1E,ECHDkN,EAAoB0B,EAAI,IAAOC,QAAQC,UCHvC5B,EAAoB6B,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOjS,MAAQ,IAAIkS,SAAS,cAAb,EAChB,CAAE,MAAOL,GACR,GAAsB,iBAAXtJ,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxB4H,EAAoBuB,EAAI,CAACS,EAAKpN,IAAUmM,OAAOkB,UAAUC,eAAe5B,KAAK0B,EAAKpN,GCClFoL,EAAoBkB,EAAKf,IACH,oBAAX1M,QAA0BA,OAAOC,aAC1CqN,OAAOS,eAAerB,EAAS1M,OAAOC,YAAa,CAAEhC,MAAO,WAE7DqP,OAAOS,eAAerB,EAAS,aAAc,CAAEzO,OAAO,GAAO,ECL9DsO,EAAoBmC,IAAOrC,IAC1BA,EAAOsC,MAAQ,GACVtC,EAAOuC,WAAUvC,EAAOuC,SAAW,IACjCvC,GCHRE,EAAoBc,EAAI,WCAxBd,EAAoB7E,EAAImH,SAASC,SAAWC,KAAKnK,SAASoK,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAaP1C,EAAoBQ,EAAEM,EAAK6B,GAA0C,IAA7BD,EAAgBC,GAGxD,IAAIC,EAAuB,CAACC,EAA4B3R,KACvD,IAKI+O,EAAU0C,EALVlC,EAAWvP,EAAK,GAChB4R,EAAc5R,EAAK,GACnB6R,EAAU7R,EAAK,GAGIyL,EAAI,EAC3B,GAAG8D,EAAS9L,MAAMM,GAAgC,IAAxByN,EAAgBzN,KAAa,CACtD,IAAIgL,KAAY6C,EACZ9C,EAAoBuB,EAAEuB,EAAa7C,KACrCD,EAAoBO,EAAEN,GAAY6C,EAAY7C,IAGhD,GAAG8C,EAAS,IAAIrI,EAASqI,EAAQ/C,EAClC,CAEA,IADG6C,GAA4BA,EAA2B3R,GACrDyL,EAAI8D,EAASlN,OAAQoJ,IACzBgG,EAAUlC,EAAS9D,GAChBqD,EAAoBuB,EAAEmB,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAO3C,EAAoBQ,EAAE9F,EAAO,EAGjCsI,EAAqBR,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1FQ,EAAmBxI,QAAQoI,EAAqBK,KAAK,KAAM,IAC3DD,EAAmB5I,KAAOwI,EAAqBK,KAAK,KAAMD,EAAmB5I,KAAK6I,KAAKD,QClDvFhD,EAAoBkD,QAAK3G,ECGzB,IAAI4G,EAAsBnD,EAAoBQ,OAAEjE,EAAW,CAAC,OAAO,IAAOyD,EAAoB,SAC9FmD,EAAsBnD,EAAoBQ,EAAE2C","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarRange.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarRange.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CalendarRange.vue?f09e","webpack:///nextcloud/node_modules/vue-material-design-icons/CalendarRange.vue?vue&type=template&id=eff4db96","webpack://nextcloud/./core/src/components/GlobalSearch/CustomDateRangeModal.vue?e750","webpack:///nextcloud/core/src/components/GlobalSearch/CustomDateRangeModal.vue","webpack:///nextcloud/core/src/components/GlobalSearch/CustomDateRangeModal.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/components/GlobalSearch/CustomDateRangeModal.vue?0312","webpack://nextcloud/./core/src/components/GlobalSearch/CustomDateRangeModal.vue?20cd","webpack:///nextcloud/node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/DotsHorizontal.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/DotsHorizontal.vue?c5a1","webpack:///nextcloud/node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=6950b9a6","webpack:///nextcloud/node_modules/vue-material-design-icons/CloseThick.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/CloseThick.vue","webpack:///nextcloud/core/src/components/GlobalSearch/SearchFilterChip.vue?vue&type=script&lang=js","webpack:///nextcloud/core/src/components/GlobalSearch/SearchFilterChip.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/CloseThick.vue?95d0","webpack:///nextcloud/node_modules/vue-material-design-icons/CloseThick.vue?vue&type=template&id=2f18e50e","webpack://nextcloud/./core/src/components/GlobalSearch/SearchFilterChip.vue?dbfc","webpack://nextcloud/./core/src/components/GlobalSearch/SearchFilterChip.vue?2413","webpack://nextcloud/./core/src/components/GlobalSearch/SearchFilterChip.vue?6dd3","webpack:///nextcloud/node_modules/vue-material-design-icons/FlaskEmpty.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/FlaskEmpty.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/FlaskEmpty.vue?6430","webpack:///nextcloud/node_modules/vue-material-design-icons/FlaskEmpty.vue?vue&type=template&id=751a42a0","webpack:///nextcloud/node_modules/vue-material-design-icons/ListBox.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ListBox.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ListBox.vue?d9c9","webpack:///nextcloud/node_modules/vue-material-design-icons/ListBox.vue?vue&type=template&id=01774f2d","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/index.mjs","webpack:///nextcloud/core/src/components/GlobalSearch/SearchableList.vue","webpack:///nextcloud/core/src/components/GlobalSearch/SearchableList.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/components/GlobalSearch/SearchableList.vue?b677","webpack://nextcloud/./core/src/components/GlobalSearch/SearchableList.vue?b291","webpack://nextcloud/./core/src/components/GlobalSearch/SearchableList.vue?6aff","webpack:///nextcloud/core/src/services/GlobalSearchService.js","webpack:///nextcloud/core/src/views/GlobalSearchModal.vue","webpack:///nextcloud/core/src/views/GlobalSearchModal.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/GlobalSearchModal.vue?f10b","webpack://nextcloud/./core/src/views/GlobalSearchModal.vue?fb7b","webpack://nextcloud/./core/src/views/GlobalSearchModal.vue?2add","webpack:///nextcloud/core/src/views/GlobalSearch.vue","webpack:///nextcloud/core/src/views/GlobalSearch.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/GlobalSearch.vue?70e3","webpack://nextcloud/./core/src/views/GlobalSearch.vue?a29e","webpack://nextcloud/./core/src/views/GlobalSearch.vue?0806","webpack:///nextcloud/core/src/global-search.js","webpack:///nextcloud/core/src/components/GlobalSearch/CustomDateRangeModal.vue?vue&type=style&index=0&id=320724b4&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/GlobalSearch/SearchFilterChip.vue?vue&type=style&index=0&id=390019c6&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/components/GlobalSearch/SearchableList.vue?vue&type=style&index=0&id=2015df7e&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/views/GlobalSearch.vue?vue&type=style&index=0&id=a0c987cc&prod&lang=scss&scoped=true","webpack:///nextcloud/core/src/views/GlobalSearchModal.vue?vue&type=style&index=0&id=54d1e356&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/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon calendar-range-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M9,10H7V12H9V10M13,10H11V12H13V10M17,10H15V12H17V10M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V8H19V19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CalendarRangeIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarRange.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CalendarRange.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CalendarRange.vue?vue&type=template&id=eff4db96\"\nimport script from \"./CalendarRange.vue?vue&type=script&lang=js\"\nexport * from \"./CalendarRange.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon calendar-range-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,10H7V12H9V10M13,10H11V12H13V10M17,10H15V12H17V10M19,3H18V1H16V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V8H19V19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isModalOpen)?_c('NcModal',{attrs:{\"id\":\"global-search\",\"name\":_vm.t('core', 'Date range filter'),\"show\":_vm.isModalOpen,\"size\":'small',\"clear-view-delay\":0,\"title\":_vm.t('Date range filter')},on:{\"update:show\":function($event){_vm.isModalOpen=$event},\"close\":_vm.closeModal}},[_c('div',{staticClass:\"global-search-custom-date-modal\"},[_c('h1',[_vm._v(_vm._s(_vm.t('core', 'Date range filter')))]),_vm._v(\" \"),_c('div',{staticClass:\"global-search-custom-date-modal__pickers\"},[_c('NcDateTimePicker',{attrs:{\"id\":'globalsearch-custom-date-range-start',\"max\":new Date(),\"label\":_vm.t('core', 'Pick a start date'),\"type\":\"date\"},model:{value:(_vm.dateFilter.startFrom),callback:function ($$v) {_vm.$set(_vm.dateFilter, \"startFrom\", $$v)},expression:\"dateFilter.startFrom\"}}),_vm._v(\" \"),_c('NcDateTimePicker',{attrs:{\"id\":'globalsearch-custom-date-range-end',\"max\":new Date(),\"label\":_vm.t('core', 'Pick an end date'),\"type\":\"date\"},model:{value:(_vm.dateFilter.endAt),callback:function ($$v) {_vm.$set(_vm.dateFilter, \"endAt\", $$v)},expression:\"dateFilter.endAt\"}})],1),_vm._v(\" \"),_c('NcButton',{on:{\"click\":_vm.applyCustomRange},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CalendarRangeIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3084610734)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('core', 'Apply range'))+\"\\n\\t\\t\\t\")])],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<NcModal v-if=\"isModalOpen\"\n\t\tid=\"global-search\"\n\t\t:name=\"t('core', 'Date range filter')\"\n\t\t:show.sync=\"isModalOpen\"\n\t\t:size=\"'small'\"\n\t\t:clear-view-delay=\"0\"\n\t\t:title=\"t('Date range filter')\"\n\t\t@close=\"closeModal\">\n\t\t<!-- Custom date range -->\n\t\t<div class=\"global-search-custom-date-modal\">\n\t\t\t<h1>{{ t('core', 'Date range filter') }}</h1>\n\t\t\t<div class=\"global-search-custom-date-modal__pickers\">\n\t\t\t\t<NcDateTimePicker :id=\"'globalsearch-custom-date-range-start'\"\n\t\t\t\t\tv-model=\"dateFilter.startFrom\"\n\t\t\t\t\t:max=\"new Date()\"\n\t\t\t\t\t:label=\"t('core', 'Pick a start date')\"\n\t\t\t\t\ttype=\"date\" />\n\t\t\t\t<NcDateTimePicker :id=\"'globalsearch-custom-date-range-end'\"\n\t\t\t\t\tv-model=\"dateFilter.endAt\"\n\t\t\t\t\t:max=\"new Date()\"\n\t\t\t\t\t:label=\"t('core', 'Pick an end date')\"\n\t\t\t\t\ttype=\"date\" />\n\t\t\t</div>\n\t\t\t<NcButton @click=\"applyCustomRange\">\n\t\t\t\t{{ t('core', 'Apply range') }}\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CalendarRangeIcon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t</div>\n\t</NcModal>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcDateTimePicker from '@nextcloud/vue/dist/Components/NcDateTimePickerNative.js'\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\nimport CalendarRangeIcon from 'vue-material-design-icons/CalendarRange.vue'\n\nexport default {\n\tname: 'CustomDateRangeModal',\n\tcomponents: {\n\t\tNcButton,\n\t\tNcModal,\n\t\tCalendarRangeIcon,\n\t\tNcDateTimePicker,\n\t},\n\tprops: {\n\t\tisOpen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tdateFilter: { startFrom: null, endAt: null },\n\t\t}\n\t},\n\tcomputed: {\n\t\tisModalOpen: {\n\t\t\tget() {\n\t\t\t\treturn this.isOpen\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\tthis.$emit('update:is-open', value)\n\t\t\t},\n\t\t},\n\t},\n\tmethods: {\n\t\tcloseModal() {\n\t\t\tthis.isModalOpen = false\n\t\t},\n\t\tapplyCustomRange() {\n\t\t\tthis.$emit('set:custom-date-range', this.dateFilter)\n\t\t\tthis.closeModal()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.global-search-custom-date-modal {\n\tpadding: 10px 20px 10px 20px;\n\n\th1 {\n\t\tfont-size: 16px;\n\t\tfont-weight: bolder;\n\t\tline-height: 2em;\n\t}\n\n\t&__pickers {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\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!./CustomDateRangeModal.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!./CustomDateRangeModal.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!./CustomDateRangeModal.vue?vue&type=style&index=0&id=320724b4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CustomDateRangeModal.vue?vue&type=style&index=0&id=320724b4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CustomDateRangeModal.vue?vue&type=template&id=320724b4&scoped=true\"\nimport script from \"./CustomDateRangeModal.vue?vue&type=script&lang=js\"\nexport * from \"./CustomDateRangeModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./CustomDateRangeModal.vue?vue&type=style&index=0&id=320724b4&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 \"320724b4\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon dots-horizontal-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"DotsHorizontalIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./DotsHorizontal.vue?vue&type=template&id=6950b9a6\"\nimport script from \"./DotsHorizontal.vue?vue&type=script&lang=js\"\nexport * from \"./DotsHorizontal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon dots-horizontal-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CloseThick.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CloseThick.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon close-thick-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M20 6.91L17.09 4L12 9.09L6.91 4L4 6.91L9.09 12L4 17.09L6.91 20L12 14.91L17.09 20L20 17.09L14.91 12L20 6.91Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CloseThickIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.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!./SearchFilterChip.vue?vue&type=script&lang=js\"","<template>\n\t<div class=\"chip\">\n\t\t<span class=\"icon\">\n\t\t\t<slot name=\"icon\" />\n\t\t\t<span v-if=\"pretext.length\"> {{ pretext }} : </span>\n\t\t</span>\n\t\t<span class=\"text\">{{ text }}</span>\n\t\t<span class=\"close-icon\" @click=\"deleteChip\">\n\t\t\t<CloseIcon :size=\"16\" />\n\t\t</span>\n\t</div>\n</template>\n\n<script>\nimport CloseIcon from 'vue-material-design-icons/CloseThick.vue'\n\nexport default {\n\tname: 'SearchFilterChip',\n\tcomponents: {\n\t\tCloseIcon,\n\t},\n\tprops: {\n\t\ttext: String,\n\t\tpretext: String,\n\t},\n\tmethods: {\n\t\tdeleteChip() {\n\t\t\tthis.$emit('delete', this.filter)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.chip {\n display: flex;\n align-items: center;\n padding: 2px 4px;\n border: 1px solid var(--color-primary-element-light);\n border-radius: 20px;\n background-color: var(--color-primary-element-light);\n margin: 2px;\n font-size: 10px;\n font-weight: bolder;\n\n .icon {\n display: flex;\n align-items: center;\n padding-right: 5px;\n\n img {\n width: 20px;\n padding: 2px;\n border-radius: 20px;\n filter: var(--background-invert-if-bright);\n }\n }\n\n .text {\n margin: 0 2px;\n }\n\n .close-icon {\n cursor: pointer;\n\n :hover {\n filter: invert(20%);\n }\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./CloseThick.vue?vue&type=template&id=2f18e50e\"\nimport script from \"./CloseThick.vue?vue&type=script&lang=js\"\nexport * from \"./CloseThick.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon close-thick-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20 6.91L17.09 4L12 9.09L6.91 4L4 6.91L9.09 12L4 17.09L6.91 20L12 14.91L17.09 20L20 17.09L14.91 12L20 6.91Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.vue?vue&type=style&index=0&id=390019c6&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilterChip.vue?vue&type=style&index=0&id=390019c6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchFilterChip.vue?vue&type=template&id=390019c6&scoped=true\"\nimport script from \"./SearchFilterChip.vue?vue&type=script&lang=js\"\nexport * from \"./SearchFilterChip.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchFilterChip.vue?vue&type=style&index=0&id=390019c6&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 \"390019c6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"chip\"},[_c('span',{staticClass:\"icon\"},[_vm._t(\"icon\"),_vm._v(\" \"),(_vm.pretext.length)?_c('span',[_vm._v(\" \"+_vm._s(_vm.pretext)+\" : \")]):_vm._e()],2),_vm._v(\" \"),_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.text))]),_vm._v(\" \"),_c('span',{staticClass:\"close-icon\",on:{\"click\":_vm.deleteChip}},[_c('CloseIcon',{attrs:{\"size\":16}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FlaskEmpty.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FlaskEmpty.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon flask-empty-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M6,22A3,3 0 0,1 3,19C3,18.4 3.18,17.84 3.5,17.37L9,7.81V6A1,1 0 0,1 8,5V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V5A1,1 0 0,1 15,6V7.81L20.5,17.37C20.82,17.84 21,18.4 21,19A3,3 0 0,1 18,22H6Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FlaskEmptyIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./FlaskEmpty.vue?vue&type=template&id=751a42a0\"\nimport script from \"./FlaskEmpty.vue?vue&type=script&lang=js\"\nexport * from \"./FlaskEmpty.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon flask-empty-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M6,22A3,3 0 0,1 3,19C3,18.4 3.18,17.84 3.5,17.37L9,7.81V6A1,1 0 0,1 8,5V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V5A1,1 0 0,1 15,6V7.81L20.5,17.37C20.82,17.84 21,18.4 21,19A3,3 0 0,1 18,22H6Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ListBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ListBox.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon list-box-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M7 7H9V9H7V7M7 11H9V13H7V11M7 15H9V17H7V15M17 17H11V15H17V17M17 13H11V11H17V13M17 9H11V7H17V9Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ListBoxIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import { render, staticRenderFns } from \"./ListBox.vue?vue&type=template&id=01774f2d\"\nimport script from \"./ListBox.vue?vue&type=script&lang=js\"\nexport * from \"./ListBox.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon list-box-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M7 7H9V9H7V7M7 11H9V13H7V11M7 15H9V17H7V15M17 17H11V15H17V17M17 13H11V11H17V13M17 9H11V7H17V9Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import i from \"./Components/NcActionButton.mjs\";\nimport m from \"./Components/NcActionButtonGroup.mjs\";\nimport e from \"./Components/NcActionCaption.mjs\";\nimport p from \"./Components/NcActionCheckbox.mjs\";\nimport c from \"./Components/NcActionInput.mjs\";\nimport f from \"./Components/NcActionLink.mjs\";\nimport n from \"./Components/NcActionRadio.mjs\";\nimport N from \"./Components/NcActionRouter.mjs\";\nimport a from \"./Components/NcActions.mjs\";\nimport s from \"./Components/NcActionSeparator.mjs\";\nimport l from \"./Components/NcActionText.mjs\";\nimport u from \"./Components/NcActionTextEditable.mjs\";\nimport d from \"./Components/NcAppContent.mjs\";\nimport A from \"./Components/NcAppContentDetails.mjs\";\nimport g from \"./Components/NcAppContentList.mjs\";\nimport b from \"./Components/NcAppNavigation.mjs\";\nimport S from \"./Components/NcAppNavigationCaption.mjs\";\nimport x from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport T from \"./Components/NcAppNavigationItem.mjs\";\nimport v from \"./Components/NcAppNavigationNew.mjs\";\nimport C from \"./Components/NcAppNavigationNewItem.mjs\";\nimport I from \"./Components/NcAppNavigationSettings.mjs\";\nimport k from \"./Components/NcAppNavigationSpacer.mjs\";\nimport h from \"./Components/NcAppSettingsDialog.mjs\";\nimport B from \"./Components/NcAppSettingsSection.mjs\";\nimport P from \"./Components/NcAppSidebar.mjs\";\nimport y from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as D } from \"./chunks/index-cea13a24.mjs\";\nimport { u as tt } from \"./chunks/index-cea13a24.mjs\";\nimport O from \"./Components/NcBreadcrumb.mjs\";\nimport R from \"./Components/NcBreadcrumbs.mjs\";\nimport j from \"./Components/NcButton.mjs\";\nimport E from \"./Components/NcCheckboxRadioSwitch.mjs\";\nimport M from \"./Components/NcColorPicker.mjs\";\nimport _ from \"./Components/NcContent.mjs\";\nimport L from \"./Components/NcCounterBubble.mjs\";\nimport F from \"./Components/NcDashboardWidget.mjs\";\nimport w from \"./Components/NcDashboardWidgetItem.mjs\";\nimport z from \"./Components/NcDateTime.mjs\";\nimport G from \"./Components/NcDateTimePicker.mjs\";\nimport W from \"./Components/NcDateTimePickerNative.mjs\";\nimport H from \"./Components/NcDialog.mjs\";\nimport V from \"./Components/NcDialogButton.mjs\";\nimport K from \"./Components/NcEmojiPicker.mjs\";\nimport U from \"./Components/NcEmptyContent.mjs\";\nimport $ from \"./Components/NcGuestContent.mjs\";\nimport q from \"./Components/NcHeaderMenu.mjs\";\nimport { N as J } from \"./chunks/index-20a9ace9.mjs\";\nimport Q from \"./Components/NcIconSvgWrapper.mjs\";\nimport X from \"./Components/NcListItem.mjs\";\nimport Y from \"./Components/NcListItemIcon.mjs\";\nimport Z from \"./Components/NcLoadingIcon.mjs\";\nimport oo from \"./Components/NcModal.mjs\";\nimport ro from \"./Components/NcNoteCard.mjs\";\nimport to from \"./Components/NcPasswordField.mjs\";\nimport io from \"./Components/NcPopover.mjs\";\nimport mo from \"./Components/NcProgressBar.mjs\";\nimport eo from \"./Components/NcRelatedResourcesPanel.mjs\";\nimport { N as po } from \"./chunks/index-5f2a5f57.mjs\";\nimport { r as mt } from \"./chunks/index-5f2a5f57.mjs\";\nimport co, { NcAutoCompleteResult as fo } from \"./Components/NcRichContenteditable.mjs\";\nimport { N as no } from \"./chunks/NcRichText-f5cfcd57.mjs\";\nimport \"./chunks/referencePickerModal-c2f33569.mjs\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport No from \"./Components/NcSelect.mjs\";\nimport \"./chunks/l10n-ef44019c.mjs\";\nimport ao from \"./Components/NcTextField.mjs\";\nimport \"@nextcloud/event-bus\";\nimport \"vue\";\nimport so from \"./Components/NcSavingIndicatorIcon.mjs\";\nimport lo from \"./Components/NcSelectTags.mjs\";\nimport uo from \"./Components/NcSettingsInputText.mjs\";\nimport Ao from \"./Components/NcSettingsSection.mjs\";\nimport { N as go } from \"./chunks/NcSettingsSelectGroup-091c0306.mjs\";\nimport bo from \"./Components/NcTimezonePicker.mjs\";\nimport So from \"./Components/NcUserBubble.mjs\";\nimport xo from \"./Components/NcTextArea.mjs\";\nimport { isFullscreenState as pt, useIsFullscreen as ct } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT as nt, isMobileState as Nt, useIsMobile as at } from \"./Composables/useIsMobile.mjs\";\nimport { emojiAddRecent as lt, emojiSearch as ut } from \"./Functions/emoji.mjs\";\nimport { default as At } from \"./Functions/usernameToColor.mjs\";\nimport { directive as To } from \"./Directives/Focus.mjs\";\nimport { directive as vo } from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as bt } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as xt } from \"./Mixins/isFullscreen.mjs\";\nimport { default as vt } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip as Co } from \"floating-vue\";\nimport { VTooltip as It } from \"floating-vue\";\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst Io = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton: i,\n NcActionButtonGroup: m,\n NcActionCaption: e,\n NcActionCheckbox: p,\n NcActionInput: c,\n NcActionLink: f,\n NcActionRadio: n,\n NcActionRouter: N,\n NcActionSeparator: s,\n NcActionText: l,\n NcActionTextEditable: u,\n NcActions: a,\n NcAppContent: d,\n NcAppContentDetails: A,\n NcAppContentList: g,\n NcAppNavigation: b,\n NcAppNavigationCaption: S,\n NcAppNavigationIconBullet: x,\n NcAppNavigationItem: T,\n NcAppNavigationNew: v,\n NcAppNavigationNewItem: C,\n NcAppNavigationSettings: I,\n NcAppNavigationSpacer: k,\n NcAppSettingsDialog: h,\n NcAppSettingsSection: B,\n NcAppSidebar: P,\n NcAppSidebarTab: y,\n NcAutoCompleteResult: fo,\n NcAvatar: D,\n NcBreadcrumb: O,\n NcBreadcrumbs: R,\n NcButton: j,\n NcCheckboxRadioSwitch: E,\n NcColorPicker: M,\n NcContent: _,\n NcCounterBubble: L,\n NcDashboardWidget: F,\n NcDashboardWidgetItem: w,\n NcDateTime: z,\n NcDateTimePicker: G,\n NcDateTimePickerNative: W,\n NcDialog: H,\n NcDialogButton: V,\n NcEmojiPicker: K,\n NcEmptyContent: U,\n NcGuestContent: $,\n NcHeaderMenu: q,\n NcHighlight: J,\n NcIconSvgWrapper: Q,\n NcListItem: X,\n NcListItemIcon: Y,\n NcLoadingIcon: Z,\n NcMentionBubble: po,\n NcModal: oo,\n NcNoteCard: ro,\n NcPasswordField: to,\n NcPopover: io,\n NcProgressBar: mo,\n NcRelatedResourcesPanel: eo,\n NcRichContenteditable: co,\n NcRichText: no,\n NcSavingIndicatorIcon: so,\n NcSelect: No,\n NcSelectTags: lo,\n NcSettingsInputText: uo,\n NcSettingsSection: Ao,\n NcSettingsSelectGroup: go,\n NcTextArea: xo,\n NcTextField: ao,\n NcTimezonePicker: bo,\n NcUserBubble: So\n}, Symbol.toStringTag, { value: \"Module\" }));\n/**\n * @copyright 2022 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst Yr = (o) => o.type === \"click\" || o.type === \"keydown\" && o.key === \"Enter\";\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst ko = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: To,\n Linkify: vo,\n Tooltip: Co\n}, Symbol.toStringTag, { value: \"Module\" })), Zr = {\n install(o) {\n Object.entries(Io).forEach(([t, r]) => {\n o.component(r.name || t, r);\n }), Object.entries(ko).forEach(([t, r]) => {\n o.directive(t, r);\n });\n }\n};\nexport {\n To as Focus,\n vo as Linkify,\n nt as MOBILE_BREAKPOINT,\n i as NcActionButton,\n m as NcActionButtonGroup,\n e as NcActionCaption,\n p as NcActionCheckbox,\n c as NcActionInput,\n f as NcActionLink,\n n as NcActionRadio,\n N as NcActionRouter,\n s as NcActionSeparator,\n l as NcActionText,\n u as NcActionTextEditable,\n a as NcActions,\n d as NcAppContent,\n A as NcAppContentDetails,\n g as NcAppContentList,\n b as NcAppNavigation,\n S as NcAppNavigationCaption,\n x as NcAppNavigationIconBullet,\n T as NcAppNavigationItem,\n v as NcAppNavigationNew,\n C as NcAppNavigationNewItem,\n I as NcAppNavigationSettings,\n k as NcAppNavigationSpacer,\n h as NcAppSettingsDialog,\n B as NcAppSettingsSection,\n P as NcAppSidebar,\n y as NcAppSidebarTab,\n fo as NcAutoCompleteResult,\n D as NcAvatar,\n O as NcBreadcrumb,\n R as NcBreadcrumbs,\n j as NcButton,\n E as NcCheckboxRadioSwitch,\n M as NcColorPicker,\n _ as NcContent,\n L as NcCounterBubble,\n F as NcDashboardWidget,\n w as NcDashboardWidgetItem,\n z as NcDateTime,\n G as NcDateTimePicker,\n W as NcDateTimePickerNative,\n H as NcDialog,\n V as NcDialogButton,\n K as NcEmojiPicker,\n U as NcEmptyContent,\n $ as NcGuestContent,\n q as NcHeaderMenu,\n J as NcHighlight,\n Q as NcIconSvgWrapper,\n X as NcListItem,\n Y as NcListItemIcon,\n Z as NcLoadingIcon,\n po as NcMentionBubble,\n oo as NcModal,\n ro as NcNoteCard,\n to as NcPasswordField,\n io as NcPopover,\n mo as NcProgressBar,\n eo as NcRelatedResourcesPanel,\n co as NcRichContenteditable,\n no as NcRichText,\n so as NcSavingIndicatorIcon,\n No as NcSelect,\n lo as NcSelectTags,\n uo as NcSettingsInputText,\n Ao as NcSettingsSection,\n go as NcSettingsSelectGroup,\n xo as NcTextArea,\n ao as NcTextField,\n bo as NcTimezonePicker,\n So as NcUserBubble,\n Zr as NextcloudVuePlugin,\n It as Tooltip,\n bt as clickOutsideOptions,\n lt as emojiAddRecent,\n ut as emojiSearch,\n Yr as isA11yActivation,\n xt as isFullscreen,\n pt as isFullscreenState,\n vt as isMobile,\n Nt as isMobileState,\n mt as richEditor,\n ct as useIsFullscreen,\n at as useIsMobile,\n tt as userStatus,\n At as usernameToColor\n};\n","<!--\n - @copyright 2023 Marco Ambrosini <marcoambrosini@proton.me>\n -\n - @author Marco Ambrosini <marcoambrosini@proton.me>\n -\n - @license AGPL-3.0-or-later\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n-->\n\n<template>\n\t<NcPopover :shown=\"opened\"\n\t\t@show=\"opened = true\"\n\t\t@hide=\"opened = false\">\n\t\t<template #trigger>\n\t\t\t<slot ref=\"popoverTrigger\" name=\"trigger\" />\n\t\t</template>\n\t\t<div class=\"searchable-list__wrapper\">\n\t\t\t<NcTextField :value.sync=\"searchTerm\"\n\t\t\t\t:label=\"labelText\"\n\t\t\t\ttrailing-button-icon=\"close\"\n\t\t\t\t:show-trailing-button=\"searchTerm !== ''\"\n\t\t\t\t@trailing-button-click=\"clearSearch\">\n\t\t\t\t<Magnify :size=\"20\" />\n\t\t\t</NcTextField>\n\t\t\t<ul v-if=\"filteredList.length > 0\" class=\"searchable-list__list\">\n\t\t\t\t<li v-for=\"element in filteredList\"\n\t\t\t\t\t:key=\"element.id\"\n\t\t\t\t\t:title=\"element.displayName\"\n\t\t\t\t\trole=\"button\">\n\t\t\t\t\t<NcButton alignment=\"start\"\n\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t:wide=\"true\"\n\t\t\t\t\t\t@click=\"itemSelected(element)\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcAvatar :user=\"element.user\" :show-user-status=\"false\" :hide-favorite=\"false\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ element.displayName }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t\t<div v-else class=\"searchable-list__empty-content\">\n\t\t\t\t<NcEmptyContent :name=\"emptyContentText\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<AlertCircleOutline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\t\t</div>\n\t</NcPopover>\n</template>\n\n<script>\nimport { NcPopover, NcTextField, NcAvatar, NcEmptyContent, NcButton } from '@nextcloud/vue'\n\nimport AlertCircleOutline from 'vue-material-design-icons/AlertCircleOutline.vue'\nimport Magnify from 'vue-material-design-icons/Magnify.vue'\n\nexport default {\n\tname: 'SearchableList',\n\n\tcomponents: {\n\t\tNcPopover,\n\t\tNcTextField,\n\t\tMagnify,\n\t\tAlertCircleOutline,\n\t\tNcAvatar,\n\t\tNcEmptyContent,\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\tlabelText: {\n\t\t\ttype: String,\n\t\t\tdefault: 'this is a label',\n\t\t},\n\n\t\tsearchList: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\n\t\temptyContentText: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\topened: false,\n\t\t\terror: false,\n\t\t\tsearchTerm: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tfilteredList() {\n\t\t\treturn this.searchList.filter((element) => {\n\t\t\t\tif (!this.searchTerm.toLowerCase().length) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn ['displayName'].some(prop => element[prop].toLowerCase().includes(this.searchTerm.toLowerCase()))\n\t\t\t})\n\t\t},\n\t},\n\n\tmethods: {\n\t\tclearSearch() {\n\t\t\tthis.searchTerm = ''\n\t\t},\n\t\titemSelected(element) {\n\t\t\tthis.$emit('item-selected', element)\n\t\t\tthis.clearSearch()\n\t\t\tthis.opened = false\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.searchable-list {\n\t&__wrapper {\n\t\tpadding: calc(var(--default-grid-baseline) * 3);\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\twidth: 250px;\n\t}\n\n\t&__list {\n\t\twidth: 100%;\n\t\tmax-height: 284px;\n\t\toverflow-y: auto;\n\t\tmargin-top: var(--default-grid-baseline);\n\t\tpadding: var(--default-grid-baseline);\n\n\t\t:deep(.button-vue) {\n\t\t\tborder-radius: var(--border-radius-large) !important;\n\t\t}\n\t}\n\n\t&__empty-content {\n\t\tmargin-top: calc(var(--default-grid-baseline) * 3);\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.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!./SearchableList.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!./SearchableList.vue?vue&type=style&index=0&id=2015df7e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchableList.vue?vue&type=style&index=0&id=2015df7e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SearchableList.vue?vue&type=template&id=2015df7e&scoped=true\"\nimport script from \"./SearchableList.vue?vue&type=script&lang=js\"\nexport * from \"./SearchableList.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchableList.vue?vue&type=style&index=0&id=2015df7e&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 \"2015df7e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcPopover',{attrs:{\"shown\":_vm.opened},on:{\"show\":function($event){_vm.opened = true},\"hide\":function($event){_vm.opened = false}},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_vm._t(\"trigger\")]},proxy:true}],null,true)},[_vm._v(\" \"),_c('div',{staticClass:\"searchable-list__wrapper\"},[_c('NcTextField',{attrs:{\"value\":_vm.searchTerm,\"label\":_vm.labelText,\"trailing-button-icon\":\"close\",\"show-trailing-button\":_vm.searchTerm !== ''},on:{\"update:value\":function($event){_vm.searchTerm=$event},\"trailing-button-click\":_vm.clearSearch}},[_c('Magnify',{attrs:{\"size\":20}})],1),_vm._v(\" \"),(_vm.filteredList.length > 0)?_c('ul',{staticClass:\"searchable-list__list\"},_vm._l((_vm.filteredList),function(element){return _c('li',{key:element.id,attrs:{\"title\":element.displayName,\"role\":\"button\"}},[_c('NcButton',{attrs:{\"alignment\":\"start\",\"type\":\"tertiary\",\"wide\":true},on:{\"click\":function($event){return _vm.itemSelected(element)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcAvatar',{attrs:{\"user\":element.user,\"show-user-status\":false,\"hide-favorite\":false}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(element.displayName)+\"\\n\\t\\t\\t\\t\")])],1)}),0):_c('div',{staticClass:\"searchable-list__empty-content\"},[_c('NcEmptyContent',{attrs:{\"name\":_vm.emptyContentText},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AlertCircleOutline')]},proxy:true}])})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2023, Fon E. Noel NFEBE <fenn25.fn@gmail.com>\n *\n * @author Fon E. Noel NFEBE <fenn25.fn@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\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 getProviders() {\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 * @param {string} options.since the search\n * @param {string} options.until the search\n * @param {string} options.limit the search\n * @param {string} options.person the search\n * @return {object} {request: Promise, cancel: Promise}\n */\nexport function search({ type, query, cursor, since, until, limit, person }) {\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\tsince,\n\t\t\tuntil,\n\t\t\tlimit,\n\t\t\tperson,\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/**\n * Get the list of active contacts\n *\n * @param {object} filter filter contacts by string\n * @param filter.searchTerm\n * @return {object} {request: Promise}\n */\nexport async function getContacts({ searchTerm }) {\n\tconst { data: { contacts } } = await axios.post(generateUrl('/contactsmenu/contacts'), {\n\t\tfilter: searchTerm,\n\t})\n\treturn contacts\n}\n","<template>\n\t<NcModal v-if=\"isVisible\"\n\t\tid=\"global-search\"\n\t\t:name=\"t('core', 'Global search')\"\n\t\t:show.sync=\"isVisible\"\n\t\t:clear-view-delay=\"0\"\n\t\t:title=\"t('Global search')\"\n\t\t@close=\"closeModal\">\n\t\t<CustomDateRangeModal :is-open=\"showDateRangeModal\"\n\t\t\t:class=\"'global-search__date-range'\"\n\t\t\t@set:custom-date-range=\"setCustomDateRange\"\n\t\t\t@update:is-open=\"showDateRangeModal = $event\" />\n\t\t<!-- Global search form -->\n\t\t<div ref=\"globalSearch\" class=\"global-search-modal\">\n\t\t\t<h1>{{ t('core', 'Global search') }}</h1>\n\t\t\t<NcInputField :value.sync=\"searchQuery\"\n\t\t\t\ttype=\"text\"\n\t\t\t\t:label=\"t('core', 'Search apps, files, tags, messages') + '...'\"\n\t\t\t\t@update:value=\"debouncedFind\" />\n\t\t\t<div class=\"global-search-modal__filters\">\n\t\t\t\t<NcActions :menu-name=\"t('core', 'Apps and Settings')\" :open.sync=\"providerActionMenuIsOpen\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<ListBox :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcActionButton v-for=\"provider in providers\" :key=\"provider.id\" @click=\"addProviderFilter(provider)\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<img :src=\"provider.icon\">\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ t('core', provider.name) }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcActions>\n\t\t\t\t<NcActions :menu-name=\"t('core', 'Modified')\" :open.sync=\"dateActionMenuIsOpen\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<CalendarRangeIcon :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcActionButton @click=\"applyQuickDateRange('today')\">\n\t\t\t\t\t\t{{ t('core', 'Today') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton @click=\"applyQuickDateRange('7days')\">\n\t\t\t\t\t\t{{ t('core', 'Last 7 days') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton @click=\"applyQuickDateRange('30days')\">\n\t\t\t\t\t\t{{ t('core', 'Last 30 days') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton @click=\"applyQuickDateRange('thisyear')\">\n\t\t\t\t\t\t{{ t('core', 'This year') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton @click=\"applyQuickDateRange('lastyear')\">\n\t\t\t\t\t\t{{ t('core', 'Last year') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton @click=\"applyQuickDateRange('custom')\">\n\t\t\t\t\t\t{{ t('core', 'Custom date range') }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcActions>\n\t\t\t\t<SearchableList :label-text=\"t('core', 'Search people')\"\n\t\t\t\t\t:search-list=\"userContacts\"\n\t\t\t\t\t:empty-content-text=\"t('core', 'Not found')\"\n\t\t\t\t\t@item-selected=\"applyPersonFilter\">\n\t\t\t\t\t<template #trigger>\n\t\t\t\t\t\t<NcButton>\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<AccountGroup :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t{{ t('core', 'People') }}\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</template>\n\t\t\t\t</SearchableList>\n\t\t\t</div>\n\t\t\t<div class=\"global-search-modal__filters-applied\">\n\t\t\t\t<FilterChip v-for=\"filter in filters\"\n\t\t\t\t\t:key=\"filter.id\"\n\t\t\t\t\t:text=\"filter.name ?? filter.text\"\n\t\t\t\t\t:pretext=\"''\"\n\t\t\t\t\t@delete=\"removeFilter(filter)\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcAvatar v-if=\"filter.type === 'person'\"\n\t\t\t\t\t\t\t:user=\"filter.user\"\n\t\t\t\t\t\t\t:size=\"24\"\n\t\t\t\t\t\t\t:disable-menu=\"true\"\n\t\t\t\t\t\t\t:show-user-status=\"false\"\n\t\t\t\t\t\t\t:hide-favorite=\"false\" />\n\t\t\t\t\t\t<CalendarRangeIcon v-else-if=\"filter.type === 'date'\" />\n\t\t\t\t\t\t<img v-else :src=\"filter.icon\" alt=\"\">\n\t\t\t\t\t</template>\n\t\t\t\t</FilterChip>\n\t\t\t</div>\n\t\t\t<div v-if=\"noContentInfo.show\" class=\"global-search-modal__no-content\">\n\t\t\t\t<NcEmptyContent :name=\"noContentInfo.text\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<component :is=\"noContentInfo.icon\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\t\t\t<div v-for=\"providerResult in results\" :key=\"providerResult.id\" class=\"global-search-modal__results\">\n\t\t\t\t<div class=\"results\">\n\t\t\t\t\t<div class=\"result-title\">\n\t\t\t\t\t\t<span>{{ providerResult.provider }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<ul class=\"result-items\">\n\t\t\t\t\t\t<NcListItem v-for=\"(result, index) in providerResult.results\"\n\t\t\t\t\t\t\t:key=\"index\"\n\t\t\t\t\t\t\tclass=\"result-items__item\"\n\t\t\t\t\t\t\t:name=\"result.title ?? ''\"\n\t\t\t\t\t\t\t:bold=\"false\"\n\t\t\t\t\t\t\t@click=\"openResult(result)\">\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<div v-if=\"result.icon\"\n\t\t\t\t\t\t\t\t\tclass=\"result-items__item-icon\"\n\t\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t\t'result-items__item-icon--no-preview': !isValidUrl(result.thumbnailUrl),\n\t\t\t\t\t\t\t\t\t\t'result-items__item-icon--with-thumbnail': isValidUrl(result.thumbnailUrl),\n\t\t\t\t\t\t\t\t\t\t[result.icon]: !isValidUrl(result.icon),\n\t\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t\t:style=\"{\n\t\t\t\t\t\t\t\t\t\tbackgroundImage: isValidUrl(result.icon) ? `url(${result.icon})` : '',\n\t\t\t\t\t\t\t\t\t}\">\n\t\t\t\t\t\t\t\t\t<img v-if=\"result.thumbnailUrl\" :src=\"result.thumbnailUrl\" class=\"\">\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template #subname>\n\t\t\t\t\t\t\t\t{{ result.subline }}\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcListItem>\n\t\t\t\t\t</ul>\n\t\t\t\t\t<div class=\"result-footer\">\n\t\t\t\t\t\t<NcButton type=\"tertiary-no-background\" @click=\"loadMoreResultsForProvider(providerResult.id)\">\n\t\t\t\t\t\t\t{{ t('core', 'Load more results') }}\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<DotsHorizontalIcon :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t<NcButton v-if=\"providerResult.inAppSearch\" alignment=\"end-reverse\" type=\"tertiary-no-background\">\n\t\t\t\t\t\t\t{{ t('core', 'Search in') }} {{ providerResult.provider }}\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<ArrowRight :size=\"20\" />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</NcModal>\n</template>\n\n<script>\nimport ArrowRight from 'vue-material-design-icons/ArrowRight.vue'\nimport AccountGroup from 'vue-material-design-icons/AccountGroup.vue'\nimport CalendarRangeIcon from 'vue-material-design-icons/CalendarRange.vue'\nimport CustomDateRangeModal from '../components/GlobalSearch/CustomDateRangeModal.vue'\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue'\nimport FilterChip from '../components/GlobalSearch/SearchFilterChip.vue'\nimport FlaskEmpty from 'vue-material-design-icons/FlaskEmpty.vue'\nimport ListBox from 'vue-material-design-icons/ListBox.vue'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\nimport NcListItem from '@nextcloud/vue/dist/Components/NcListItem.js'\nimport MagnifyIcon from 'vue-material-design-icons/Magnify.vue'\nimport SearchableList from '../components/GlobalSearch/SearchableList.vue'\n\nimport debounce from 'debounce'\nimport { getProviders, search as globalSearch, getContacts } from '../services/GlobalSearchService.js'\n\nexport default {\n\tname: 'GlobalSearchModal',\n\tcomponents: {\n\t\tArrowRight,\n\t\tAccountGroup,\n\t\tCalendarRangeIcon,\n\t\tCustomDateRangeModal,\n\t\tDotsHorizontalIcon,\n\t\tFilterChip,\n\t\tFlaskEmpty,\n\t\tListBox,\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcAvatar,\n\t\tNcButton,\n\t\tNcEmptyContent,\n\t\tNcModal,\n\t\tNcListItem,\n\t\tNcInputField,\n\t\tMagnifyIcon,\n\t\tSearchableList,\n\t},\n\tprops: {\n\t\tisVisible: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tproviders: [],\n\t\t\tproviderActionMenuIsOpen: false,\n\t\t\tdateActionMenuIsOpen: false,\n\t\t\tproviderResultLimit: 5,\n\t\t\tdateFilter: { id: 'date', type: 'date', text: '', startFrom: null, endAt: null },\n\t\t\tpersonFilter: { id: 'person', type: 'person', name: '' },\n\t\t\tdateFilterIsApplied: false,\n\t\t\tpersonFilterIsApplied: false,\n\t\t\tfilteredProviders: [],\n\t\t\tsearchQuery: '',\n\t\t\tplacesFilter: '',\n\t\t\tdateTimeFilter: null,\n\t\t\tfilters: [],\n\t\t\tresults: [],\n\t\t\tcontacts: [],\n\t\t\tdebouncedFind: debounce(this.find, 300),\n\t\t\tshowDateRangeModal: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tuserContacts: {\n\t\t\tget() {\n\t\t\t\treturn this.contacts\n\t\t\t},\n\t\t},\n\t\tnoContentInfo: {\n\t\t\tget() {\n\t\t\t\tconst isEmptySearch = this.searchQuery.length === 0\n\t\t\t\tconst hasNoResults = this.searchQuery.length > 0 && this.results.length === 0\n\n\t\t\t\treturn {\n\t\t\t\t\tshow: isEmptySearch || hasNoResults,\n\t\t\t\t\ttext: isEmptySearch ? t('core', 'Start typing in search') : t('core', 'No matching results'),\n\t\t\t\t\ticon: isEmptySearch ? MagnifyIcon : FlaskEmpty,\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\tmounted() {\n\t\tgetProviders().then((providers) => {\n\t\t\tthis.providers = providers\n\t\t\tconsole.debug('Search providers', this.providers)\n\t\t})\n\t\tgetContacts({ filter: '' }).then((contacts) => {\n\t\t\tthis.contacts = this.mapContacts(contacts)\n\t\t\tconsole.debug('Contacts', this.contacts)\n\t\t})\n\t},\n\tmethods: {\n\t\tfind(query) {\n\t\t\tif (query.length === 0) {\n\t\t\t\tthis.results = []\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst newResults = []\n\t\t\tconst providersToSearch = this.filteredProviders.length > 0 ? this.filteredProviders : this.providers\n\t\t\tconst searchProvider = (provider, filters) => {\n\t\t\t\tconst params = {\n\t\t\t\t\ttype: provider.id,\n\t\t\t\t\tquery,\n\t\t\t\t\tcursor: null,\n\t\t\t\t}\n\n\t\t\t\tif (filters.dateFilterIsApplied) {\n\t\t\t\t\tif (provider.filters.since && provider.filters.until) {\n\t\t\t\t\t\tparams.since = this.dateFilter.startFrom\n\t\t\t\t\t\tparams.until = this.dateFilter.endAt\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Date filter is applied but provider does not support it, no need to search provider\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (filters.personFilterIsApplied) {\n\t\t\t\t\tif (provider.filters.person) {\n\t\t\t\t\t\tparams.person = this.personFilter.user\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Person filter is applied but provider does not support it, no need to search provider\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.providerResultLimit > 5) {\n\t\t\t\t\tparams.limit = this.providerResultLimit\n\t\t\t\t}\n\n\t\t\t\tconst request = globalSearch(params).request\n\n\t\t\t\trequest().then((response) => {\n\t\t\t\t\tnewResults.push({\n\t\t\t\t\t\tid: provider.id,\n\t\t\t\t\t\tprovider: provider.name,\n\t\t\t\t\t\tinAppSearch: provider.inAppSearch,\n\t\t\t\t\t\tresults: response.data.ocs.data.entries,\n\t\t\t\t\t})\n\n\t\t\t\t\tconsole.debug('New results', newResults)\n\t\t\t\t\tconsole.debug('Global search results:', this.results)\n\n\t\t\t\t\tthis.updateResults(newResults)\n\t\t\t\t})\n\t\t\t}\n\t\t\tprovidersToSearch.forEach(provider => {\n\t\t\t\tconst dateFilterIsApplied = this.dateFilterIsApplied\n\t\t\t\tconst personFilterIsApplied = this.personFilterIsApplied\n\t\t\t\tsearchProvider(provider, { dateFilterIsApplied, personFilterIsApplied })\n\t\t\t})\n\n\t\t},\n\t\tupdateResults(newResults) {\n\t\t\tlet updatedResults = [...this.results]\n\t\t\t// If filters are applied, remove any previous results for providers that are not in current filters\n\t\t\tif (this.filters.length > 0) {\n\t\t\t\tupdatedResults = updatedResults.filter(result => {\n\t\t\t\t\treturn this.filters.some(filter => filter.id === result.id)\n\t\t\t\t})\n\t\t\t}\n\t\t\t// Process the new results\n\t\t\tnewResults.forEach(newResult => {\n\t\t\t\tconst existingResultIndex = updatedResults.findIndex(result => result.id === newResult.id)\n\t\t\t\tif (existingResultIndex !== -1) {\n\t\t\t\t\tif (newResult.results.length === 0) {\n\t\t\t\t\t\t// If the new results data has no matches for and existing result, remove the existing result\n\t\t\t\t\t\tupdatedResults.splice(existingResultIndex, 1)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If input triggered a change in existing results, update existing result\n\t\t\t\t\t\tupdatedResults.splice(existingResultIndex, 1, newResult)\n\t\t\t\t\t}\n\t\t\t\t} else if (newResult.results.length > 0) {\n\t\t\t\t\t// Push the new result to the array only if its results array is not empty\n\t\t\t\t\tupdatedResults.push(newResult)\n\t\t\t\t}\n\t\t\t})\n\t\t\tconst sortedResults = updatedResults.slice(0)\n\t\t\t// Order results according to provider preference\n\t\t\tsortedResults.sort((a, b) => {\n\t\t\t\tconst aProvider = this.providers.find(provider => provider.id === a.id)\n\t\t\t\tconst bProvider = this.providers.find(provider => provider.id === b.id)\n\t\t\t\tconst aOrder = aProvider ? aProvider.order : 0\n\t\t\t\tconst bOrder = bProvider ? bProvider.order : 0\n\t\t\t\treturn aOrder - bOrder\n\t\t\t})\n\t\t\tthis.results = sortedResults\n\t\t},\n\t\topenResult(result) {\n\t\t\tif (result.resourceUrl) {\n\t\t\t\twindow.location = result.resourceUrl\n\t\t\t}\n\t\t},\n\t\tmapContacts(contacts) {\n\t\t\treturn contacts.map(contact => {\n\t\t\t\treturn {\n\t\t\t\t\t// id: contact.id,\n\t\t\t\t\t// name: '',\n\t\t\t\t\tdisplayName: contact.fullName,\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: contact.emailAddresses[0] ? contact.emailAddresses[0] : '',\n\t\t\t\t\ticon: '',\n\t\t\t\t\tuser: contact.id,\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t\tfilterContacts(query) {\n\t\t\tgetContacts({ filter: query }).then((contacts) => {\n\t\t\t\tthis.contacts = this.mapContacts(contacts)\n\t\t\t\tconsole.debug(`Contacts filtered by ${query}`, this.contacts)\n\t\t\t})\n\t\t},\n\t\tapplyPersonFilter(person) {\n\t\t\tthis.personFilterIsApplied = true\n\t\t\tconst existingPersonFilter = this.filters.findIndex(filter => filter.id === person.id)\n\t\t\tif (existingPersonFilter === -1) {\n\t\t\t\tthis.personFilter.id = person.id\n\t\t\t\tthis.personFilter.user = person.user\n\t\t\t\tthis.personFilter.name = person.displayName\n\t\t\t\tthis.filters.push(this.personFilter)\n\t\t\t} else {\n\t\t\t\tthis.filters[existingPersonFilter].id = person.id\n\t\t\t\tthis.filters[existingPersonFilter].user = person.user\n\t\t\t\tthis.filters[existingPersonFilter].name = person.displayName\n\t\t\t}\n\n\t\t\tthis.debouncedFind(this.searchQuery)\n\t\t\tconsole.debug('Person filter applied', person)\n\t\t},\n\t\tloadMoreResultsForProvider(providerId) {\n\t\t\tthis.providerResultLimit += 5\n\t\t\tthis.filters = this.filters.filter(filter => filter.type !== 'provider')\n\t\t\tconst provider = this.providers.find(provider => provider.id === providerId)\n\t\t\tthis.addProviderFilter(provider, true)\n\t\t},\n\t\taddProviderFilter(providerFilter, loadMoreResultsForProvider = false) {\n\t\t\tif (!providerFilter.id) return\n\t\t\tthis.providerResultLimit = loadMoreResultsForProvider ? this.providerResultLimit : 5\n\t\t\tthis.providerActionMenuIsOpen = false\n\t\t\tconst existingFilter = this.filteredProviders.find(existing => existing.id === providerFilter.id)\n\t\t\tif (!existingFilter) {\n\t\t\t\tthis.filteredProviders.push({ id: providerFilter.id, name: providerFilter.name, icon: providerFilter.icon, type: 'provider', filters: providerFilter.filters })\n\t\t\t}\n\t\t\tthis.filters = this.syncProviderFilters(this.filters, this.filteredProviders)\n\t\t\tconsole.debug('Search filters (newly added)', this.filters)\n\t\t\tthis.debouncedFind(this.searchQuery)\n\t\t},\n\t\tremoveFilter(filter) {\n\t\t\tif (filter.type === 'provider') {\n\t\t\t\tfor (let i = 0; i < this.filteredProviders.length; i++) {\n\t\t\t\t\tif (this.filteredProviders[i].id === filter.id) {\n\t\t\t\t\t\tthis.filteredProviders.splice(i, 1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.filters = this.syncProviderFilters(this.filters, this.filteredProviders)\n\t\t\t\tconsole.debug('Search filters (recently removed)', this.filters)\n\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < this.filters.length; i++) {\n\t\t\t\t\t// Remove date and person filter\n\t\t\t\t\tif (this.filters[i].id === 'date' || this.filters[i].id === filter.id) {\n\t\t\t\t\t\tthis.dateFilterIsApplied = false\n\t\t\t\t\t\tthis.filters.splice(i, 1)\n\t\t\t\t\t\tif (filter.type === 'person') {\n\t\t\t\t\t\t\tthis.personFilterIsApplied = false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.debouncedFind(this.searchQuery)\n\t\t},\n\t\tsyncProviderFilters(firstArray, secondArray) {\n\t\t\t// Create a copy of the first array to avoid modifying it directly.\n\t\t\tconst synchronizedArray = firstArray.slice()\n\t\t\t// Remove items from the synchronizedArray that are not in the secondArray.\n\t\t\tsynchronizedArray.forEach((item, index) => {\n\t\t\t\tconst itemId = item.id\n\t\t\t\tif (item.type === 'provider') {\n\t\t\t\t\tif (!secondArray.some(secondItem => secondItem.id === itemId)) {\n\t\t\t\t\t\tsynchronizedArray.splice(index, 1)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Add items to the synchronizedArray that are in the secondArray but not in the firstArray.\n\t\t\tsecondArray.forEach(secondItem => {\n\t\t\t\tconst itemId = secondItem.id\n\t\t\t\tif (secondItem.type === 'provider') {\n\t\t\t\t\tif (!synchronizedArray.some(item => item.id === itemId)) {\n\t\t\t\t\t\tsynchronizedArray.push(secondItem)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn synchronizedArray\n\t\t},\n\t\tupdateDateFilter() {\n\t\t\tconst currFilterIndex = this.filters.findIndex(filter => filter.id === 'date')\n\t\t\tif (currFilterIndex !== -1) {\n\t\t\t\tthis.filters[currFilterIndex] = this.dateFilter\n\t\t\t} else {\n\t\t\t\tthis.filters.push(this.dateFilter)\n\t\t\t}\n\t\t\tthis.dateFilterIsApplied = true\n\t\t\tthis.debouncedFind(this.searchQuery)\n\t\t},\n\t\tapplyQuickDateRange(range) {\n\t\t\tthis.dateActionMenuIsOpen = false\n\t\t\tconst today = new Date()\n\t\t\tlet endDate = today\n\t\t\tlet startDate\n\t\t\tswitch (range) {\n\t\t\tcase 'today':\n\t\t\t\t// For 'Today', both start and end are set to today\n\t\t\t\tstartDate = today\n\t\t\t\tthis.dateFilter.text = t('core', 'Today')\n\t\t\t\tbreak\n\t\t\tcase '7days':\n\t\t\t\t// For 'Last 7 days', start date is 7 days ago, end is today\n\t\t\t\tstartDate = new Date(today)\n\t\t\t\tstartDate.setDate(today.getDate() - 7)\n\t\t\t\tthis.dateFilter.text = t('core', 'Last 7 days')\n\t\t\t\tbreak\n\t\t\tcase '30days':\n\t\t\t\t// For 'Last 30 days', start date is 30 days ago, end is today\n\t\t\t\tstartDate = new Date(today)\n\t\t\t\tstartDate.setDate(today.getDate() - 30)\n\t\t\t\tthis.dateFilter.text = t('core', 'Last 30 days')\n\t\t\t\tbreak\n\t\t\tcase 'thisyear':\n\t\t\t\t// For 'This year', start date is the first day of the year, end is today\n\t\t\t\tstartDate = new Date(today.getFullYear(), 0, 1)\n\t\t\t\tthis.dateFilter.text = t('core', 'This year')\n\t\t\t\tbreak\n\t\t\tcase 'lastyear':\n\t\t\t\t// For 'Last year', start date is the first day of the previous year, end is the last day of the previous year\n\t\t\t\tstartDate = new Date(today.getFullYear() - 1, 0, 1)\n\t\t\t\tendDate = new Date(today.getFullYear() - 1, 11, 31)\n\t\t\t\tthis.dateFilter.text = t('core', 'Last year')\n\t\t\t\tbreak\n\t\t\tcase 'custom':\n\t\t\t\tthis.showDateRangeModal = true\n\t\t\t\treturn\n\t\t\tdefault:\n\t\t\t\treturn\n\n\t\t\t}\n\t\t\tthis.dateFilter.startFrom = startDate\n\t\t\tthis.dateFilter.endAt = endDate\n\t\t\tthis.updateDateFilter()\n\n\t\t},\n\t\tsetCustomDateRange(event) {\n\t\t\tconsole.debug('Custom date range', event)\n\t\t\tthis.dateFilter.startFrom = event.startFrom\n\t\t\tthis.dateFilter.endAt = event.endAt\n\t\t\tthis.dateFilter.text = t('core', `Between ${this.dateFilter.startFrom.toLocaleDateString()} and ${this.dateFilter.endAt.toLocaleDateString()}`)\n\t\t\tthis.updateDateFilter()\n\t\t},\n\t\tisValidUrl(icon) {\n\t\t\treturn /^https?:\\/\\//.test(icon) || icon.startsWith('//')\n\t\t},\n\t\tcloseModal() {\n\t\t\tthis.searchQuery = ''\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use \"sass:math\";\n$clickable-area: 44px;\n$margin: 10px;\n\n.global-search-modal {\n\tpadding: 10px 20px 10px 20px;\n\theight: 60%;\n\n\th1 {\n\t\tfont-size: 16px;\n\t\tfont-weight: bolder;\n\t\tline-height: 2em;\n\t}\n\n\t&__filters {\n\t\tdisplay: flex;\n\t\tpadding-top: 4px;\n\t\tjustify-content: left;\n\n\t\t>* {\n\t\t\tmargin-right: 4px;\n\n\t\t}\n\n\t}\n\n\t&__filters-applied {\n\t\tpadding-top: 4px;\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\t&__no-content {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\theight: 100%;\n\t}\n\n\t&__results {\n\t\tpadding: 10px;\n\n\t\t.results {\n\n\t\t\t.result-title {\n\t\t\t\tspan {\n\t\t\t\t\tcolor: var(--color-primary-element);\n\t\t\t\t\tfont-weight: bolder;\n\t\t\t\t\tfont-size: 16px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.result-items {\n\t\t\t\t::v-deep &__item {\n\t\t\t\t\ta {\n\t\t\t\t\t\tborder-radius: 12px;\n\t\t\t\t\t\tborder: 2px solid transparent;\n\t\t\t\t\t\tborder-radius: var(--border-radius-large) !important;\n\n\t\t\t\t\t\t&--focused {\n\t\t\t\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&:active,\n\t\t\t\t\t\t&:hover,\n\t\t\t\t\t\t&:focus {\n\t\t\t\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t\t\t\t\tborder: 2px solid var(--color-border-maxcontrast);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t* {\n\t\t\t\t\t\t\tcursor: pointer;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t&-icon {\n\t\t\t\t\t\toverflow: hidden;\n\t\t\t\t\t\twidth: $clickable-area;\n\t\t\t\t\t\theight: $clickable-area;\n\t\t\t\t\t\tborder-radius: var(--border-radius);\n\t\t\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t\t\t\tbackground-position: center center;\n\t\t\t\t\t\tbackground-size: 32px;\n\n\t\t\t\t\t\t&--rounded {\n\t\t\t\t\t\t\tborder-radius: math.div($clickable-area, 2);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&--no-preview {\n\t\t\t\t\t\t\tbackground-size: 32px;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&--with-thumbnail {\n\t\t\t\t\t\t\tbackground-size: cover;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&--with-thumbnail:not(&--rounded) {\n\t\t\t\t\t\t\t// compensate for border\n\t\t\t\t\t\t\tmax-width: $clickable-area - 2px;\n\t\t\t\t\t\t\tmax-height: $clickable-area - 2px;\n\t\t\t\t\t\t\tborder: 1px solid var(--color-border);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\timg {\n\t\t\t\t\t\t\t// Make sure to keep ratio\n\t\t\t\t\t\t\twidth: 100%;\n\t\t\t\t\t\t\theight: 100%;\n\n\t\t\t\t\t\t\tobject-fit: cover;\n\t\t\t\t\t\t\tobject-position: center;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.result-footer {\n\t\t\t\tjustify-content: space-between;\n\t\t\t\talign-items: center;\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\t\t}\n\n\t}\n}\n\ndiv.v-popper__wrapper {\n\tul {\n\t\tli {\n\t\t\t::v-deep button.action-button {\n\t\t\t\talign-items: center !important;\n\n\t\t\t\timg {\n\t\t\t\t\twidth: 24px;\n\t\t\t\t\tmargin: 0 4px;\n\t\t\t\t\tfilter: var(--background-invert-if-bright);\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GlobalSearchModal.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!./GlobalSearchModal.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!./GlobalSearchModal.vue?vue&type=style&index=0&id=54d1e356&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GlobalSearchModal.vue?vue&type=style&index=0&id=54d1e356&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./GlobalSearchModal.vue?vue&type=template&id=54d1e356&scoped=true\"\nimport script from \"./GlobalSearchModal.vue?vue&type=script&lang=js\"\nexport * from \"./GlobalSearchModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./GlobalSearchModal.vue?vue&type=style&index=0&id=54d1e356&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 \"54d1e356\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isVisible)?_c('NcModal',{attrs:{\"id\":\"global-search\",\"name\":_vm.t('core', 'Global search'),\"show\":_vm.isVisible,\"clear-view-delay\":0,\"title\":_vm.t('Global search')},on:{\"update:show\":function($event){_vm.isVisible=$event},\"close\":_vm.closeModal}},[_c('CustomDateRangeModal',{class:'global-search__date-range',attrs:{\"is-open\":_vm.showDateRangeModal},on:{\"set:custom-date-range\":_vm.setCustomDateRange,\"update:is-open\":function($event){_vm.showDateRangeModal = $event}}}),_vm._v(\" \"),_c('div',{ref:\"globalSearch\",staticClass:\"global-search-modal\"},[_c('h1',[_vm._v(_vm._s(_vm.t('core', 'Global search')))]),_vm._v(\" \"),_c('NcInputField',{attrs:{\"value\":_vm.searchQuery,\"type\":\"text\",\"label\":_vm.t('core', 'Search apps, files, tags, messages') + '...'},on:{\"update:value\":[function($event){_vm.searchQuery=$event},_vm.debouncedFind]}}),_vm._v(\" \"),_c('div',{staticClass:\"global-search-modal__filters\"},[_c('NcActions',{attrs:{\"menu-name\":_vm.t('core', 'Apps and Settings'),\"open\":_vm.providerActionMenuIsOpen},on:{\"update:open\":function($event){_vm.providerActionMenuIsOpen=$event}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ListBox',{attrs:{\"size\":20}})]},proxy:true}],null,false,708608415)},[_vm._v(\" \"),_vm._l((_vm.providers),function(provider){return _c('NcActionButton',{key:provider.id,on:{\"click\":function($event){return _vm.addProviderFilter(provider)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('img',{attrs:{\"src\":provider.icon}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', provider.name))+\"\\n\\t\\t\\t\\t\")])})],2),_vm._v(\" \"),_c('NcActions',{attrs:{\"menu-name\":_vm.t('core', 'Modified'),\"open\":_vm.dateActionMenuIsOpen},on:{\"update:open\":function($event){_vm.dateActionMenuIsOpen=$event}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('CalendarRangeIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,3084610734)},[_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){return _vm.applyQuickDateRange('today')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Today'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){return _vm.applyQuickDateRange('7days')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Last 7 days'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){return _vm.applyQuickDateRange('30days')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Last 30 days'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){return _vm.applyQuickDateRange('thisyear')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'This year'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){return _vm.applyQuickDateRange('lastyear')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Last year'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{on:{\"click\":function($event){return _vm.applyQuickDateRange('custom')}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Custom date range'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('SearchableList',{attrs:{\"label-text\":_vm.t('core', 'Search people'),\"search-list\":_vm.userContacts,\"empty-content-text\":_vm.t('core', 'Not found')},on:{\"item-selected\":_vm.applyPersonFilter},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('NcButton',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountGroup',{attrs:{\"size\":20}})]},proxy:true}],null,false,4176711638)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'People'))+\"\\n\\t\\t\\t\\t\\t\")])]},proxy:true}],null,false,2895708030)})],1),_vm._v(\" \"),_c('div',{staticClass:\"global-search-modal__filters-applied\"},_vm._l((_vm.filters),function(filter){return _c('FilterChip',{key:filter.id,attrs:{\"text\":filter.name ?? filter.text,\"pretext\":''},on:{\"delete\":function($event){return _vm.removeFilter(filter)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(filter.type === 'person')?_c('NcAvatar',{attrs:{\"user\":filter.user,\"size\":24,\"disable-menu\":true,\"show-user-status\":false,\"hide-favorite\":false}}):(filter.type === 'date')?_c('CalendarRangeIcon'):_c('img',{attrs:{\"src\":filter.icon,\"alt\":\"\"}})]},proxy:true}],null,true)})}),1),_vm._v(\" \"),(_vm.noContentInfo.show)?_c('div',{staticClass:\"global-search-modal__no-content\"},[_c('NcEmptyContent',{attrs:{\"name\":_vm.noContentInfo.text},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_vm.noContentInfo.icon,{tag:\"component\"})]},proxy:true}],null,false,604901229)})],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.results),function(providerResult){return _c('div',{key:providerResult.id,staticClass:\"global-search-modal__results\"},[_c('div',{staticClass:\"results\"},[_c('div',{staticClass:\"result-title\"},[_c('span',[_vm._v(_vm._s(providerResult.provider))])]),_vm._v(\" \"),_c('ul',{staticClass:\"result-items\"},_vm._l((providerResult.results),function(result,index){return _c('NcListItem',{key:index,staticClass:\"result-items__item\",attrs:{\"name\":result.title ?? '',\"bold\":false},on:{\"click\":function($event){return _vm.openResult(result)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(result.icon)?_c('div',{staticClass:\"result-items__item-icon\",class:{\n\t\t\t\t\t\t\t\t\t'result-items__item-icon--no-preview': !_vm.isValidUrl(result.thumbnailUrl),\n\t\t\t\t\t\t\t\t\t'result-items__item-icon--with-thumbnail': _vm.isValidUrl(result.thumbnailUrl),\n\t\t\t\t\t\t\t\t\t[result.icon]: !_vm.isValidUrl(result.icon),\n\t\t\t\t\t\t\t\t},style:({\n\t\t\t\t\t\t\t\t\tbackgroundImage: _vm.isValidUrl(result.icon) ? `url(${result.icon})` : '',\n\t\t\t\t\t\t\t\t})},[(result.thumbnailUrl)?_c('img',{attrs:{\"src\":result.thumbnailUrl}}):_vm._e()]):_vm._e()]},proxy:true},{key:\"subname\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(result.subline)+\"\\n\\t\\t\\t\\t\\t\\t\")]},proxy:true}],null,true)})}),1),_vm._v(\" \"),_c('div',{staticClass:\"result-footer\"},[_c('NcButton',{attrs:{\"type\":\"tertiary-no-background\"},on:{\"click\":function($event){return _vm.loadMoreResultsForProvider(providerResult.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('DotsHorizontalIcon',{attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Load more results'))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(providerResult.inAppSearch)?_c('NcButton',{attrs:{\"alignment\":\"end-reverse\",\"type\":\"tertiary-no-background\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowRight',{attrs:{\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Search in'))+\" \"+_vm._s(providerResult.provider)+\"\\n\\t\\t\\t\\t\\t\\t\")]):_vm._e()],1)])])})],2)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"," <!--\n - @copyright Copyright (c) 2020 Fon E. Noel NFEBE <fenn25.fn@gmail.com>\n -\n - @author Fon E. Noel NFEBE <fenn25.fn@gmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<div class=\"header-menu\">\n\t\t<NcButton class=\"global-search__button\" :aria-label=\"t('core', 'Global search')\" @click=\"toggleGlobalSearch\">\n\t\t\t<template #icon>\n\t\t\t\t<Magnify class=\"global-search__trigger\" :size=\"22\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<GlobalSearchModal :is-visible=\"showGlobalSearch\" :class=\"'global-search-modal'\" />\n\t</div>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport Magnify from 'vue-material-design-icons/Magnify.vue'\nimport GlobalSearchModal from './GlobalSearchModal.vue'\n\nexport default {\n\tname: 'GlobalSearch',\n\tcomponents: {\n\t\tNcButton,\n\t\tMagnify,\n\t\tGlobalSearchModal,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tshowGlobalSearch: false,\n\t\t}\n\t},\n\tmounted() {\n\t\tconsole.debug('Global search initialized!')\n\t},\n\tmethods: {\n\t\ttoggleGlobalSearch() {\n\t\t\tthis.showGlobalSearch = !this.showGlobalSearch\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.header-menu {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t.global-search__button {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--header-height);\n\t\t// height: var(--header-height);\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tcursor: pointer;\n\t\topacity: .85;\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tfilter: none !important;\n\t\tcolor: var(--color-primary-text) !important;\n\n\t\t&:hover {\n\t\t\tbackground-color: transparent !important;\n\t\t}\n\t}\n}\n\n.global-search-modal {\n\t::v-deep .modal-container {\n\t\theight: 80%;\n\t}\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GlobalSearch.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!./GlobalSearch.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!./GlobalSearch.vue?vue&type=style&index=0&id=a0c987cc&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GlobalSearch.vue?vue&type=style&index=0&id=a0c987cc&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./GlobalSearch.vue?vue&type=template&id=a0c987cc&scoped=true\"\nimport script from \"./GlobalSearch.vue?vue&type=script&lang=js\"\nexport * from \"./GlobalSearch.vue?vue&type=script&lang=js\"\nimport style0 from \"./GlobalSearch.vue?vue&type=style&index=0&id=a0c987cc&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 \"a0c987cc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"header-menu\"},[_c('NcButton',{staticClass:\"global-search__button\",attrs:{\"aria-label\":_vm.t('core', 'Global search')},on:{\"click\":_vm.toggleGlobalSearch},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Magnify',{staticClass:\"global-search__trigger\",attrs:{\"size\":22}})]},proxy:true}])}),_vm._v(\" \"),_c('GlobalSearchModal',{class:'global-search-modal',attrs:{\"is-visible\":_vm.showGlobalSearch}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2020 Fon E. Noel NFEBE <fenn25.fn@gmail.com>\n *\n * @author Fon E. Noel NFEBE <fenn25.fn@gmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\nimport { getRequestToken } from '@nextcloud/auth'\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n'\nimport Vue from 'vue'\n\nimport GlobalSearch from './views/GlobalSearch.vue'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\nconst logger = getLoggerBuilder()\n\t.setApp('global-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: '#global-search',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'GlobalSearchRoot',\n\trender: h => h(GlobalSearch),\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, `.global-search-custom-date-modal[data-v-320724b4]{padding:10px 20px 10px 20px}.global-search-custom-date-modal h1[data-v-320724b4]{font-size:16px;font-weight:bolder;line-height:2em}.global-search-custom-date-modal__pickers[data-v-320724b4]{display:flex;flex-direction:column}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/GlobalSearch/CustomDateRangeModal.vue\"],\"names\":[],\"mappings\":\"AACA,kDACC,2BAAA,CAEA,qDACC,cAAA,CACA,kBAAA,CACA,eAAA,CAGD,2DACC,YAAA,CACA,qBAAA\",\"sourcesContent\":[\"\\n.global-search-custom-date-modal {\\n\\tpadding: 10px 20px 10px 20px;\\n\\n\\th1 {\\n\\t\\tfont-size: 16px;\\n\\t\\tfont-weight: bolder;\\n\\t\\tline-height: 2em;\\n\\t}\\n\\n\\t&__pickers {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chip[data-v-390019c6]{display:flex;align-items:center;padding:2px 4px;border:1px solid var(--color-primary-element-light);border-radius:20px;background-color:var(--color-primary-element-light);margin:2px;font-size:10px;font-weight:bolder}.chip .icon[data-v-390019c6]{display:flex;align-items:center;padding-right:5px}.chip .icon img[data-v-390019c6]{width:20px;padding:2px;border-radius:20px;filter:var(--background-invert-if-bright)}.chip .text[data-v-390019c6]{margin:0 2px}.chip .close-icon[data-v-390019c6]{cursor:pointer}.chip .close-icon[data-v-390019c6] :hover{filter:invert(20%)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/GlobalSearch/SearchFilterChip.vue\"],\"names\":[],\"mappings\":\"AACA,uBACI,YAAA,CACA,kBAAA,CACA,eAAA,CACA,mDAAA,CACA,kBAAA,CACA,mDAAA,CACA,UAAA,CACA,cAAA,CACA,kBAAA,CAEA,6BACI,YAAA,CACA,kBAAA,CACA,iBAAA,CAEA,iCACI,UAAA,CACA,WAAA,CACA,kBAAA,CACA,yCAAA,CAIR,6BACI,YAAA,CAGJ,mCACI,cAAA,CAEA,0CACI,kBAAA\",\"sourcesContent\":[\"\\n.chip {\\n display: flex;\\n align-items: center;\\n padding: 2px 4px;\\n border: 1px solid var(--color-primary-element-light);\\n border-radius: 20px;\\n background-color: var(--color-primary-element-light);\\n margin: 2px;\\n font-size: 10px;\\n font-weight: bolder;\\n\\n .icon {\\n display: flex;\\n align-items: center;\\n padding-right: 5px;\\n\\n img {\\n width: 20px;\\n padding: 2px;\\n border-radius: 20px;\\n filter: var(--background-invert-if-bright);\\n }\\n }\\n\\n .text {\\n margin: 0 2px;\\n }\\n\\n .close-icon {\\n cursor: pointer;\\n\\n :hover {\\n filter: invert(20%);\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.searchable-list__wrapper[data-v-2015df7e]{padding:calc(var(--default-grid-baseline)*3);display:flex;flex-direction:column;align-items:center;width:250px}.searchable-list__list[data-v-2015df7e]{width:100%;max-height:284px;overflow-y:auto;margin-top:var(--default-grid-baseline);padding:var(--default-grid-baseline)}.searchable-list__list[data-v-2015df7e] .button-vue{border-radius:var(--border-radius-large) !important}.searchable-list__empty-content[data-v-2015df7e]{margin-top:calc(var(--default-grid-baseline)*3)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/components/GlobalSearch/SearchableList.vue\"],\"names\":[],\"mappings\":\"AAEC,2CACC,4CAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,WAAA,CAGD,wCACC,UAAA,CACA,gBAAA,CACA,eAAA,CACA,uCAAA,CACA,oCAAA,CAEA,oDACC,mDAAA,CAIF,iDACC,+CAAA\",\"sourcesContent\":[\"\\n.searchable-list {\\n\\t&__wrapper {\\n\\t\\tpadding: calc(var(--default-grid-baseline) * 3);\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\twidth: 250px;\\n\\t}\\n\\n\\t&__list {\\n\\t\\twidth: 100%;\\n\\t\\tmax-height: 284px;\\n\\t\\toverflow-y: auto;\\n\\t\\tmargin-top: var(--default-grid-baseline);\\n\\t\\tpadding: var(--default-grid-baseline);\\n\\n\\t\\t:deep(.button-vue) {\\n\\t\\t\\tborder-radius: var(--border-radius-large) !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__empty-content {\\n\\t\\tmargin-top: calc(var(--default-grid-baseline) * 3);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.header-menu[data-v-a0c987cc]{display:flex;align-items:center;justify-content:center}.header-menu .global-search__button[data-v-a0c987cc]{display:flex;align-items:center;justify-content:center;width:var(--header-height);margin:0;padding:0;cursor:pointer;opacity:.85;background-color:rgba(0,0,0,0);border:none;filter:none !important;color:var(--color-primary-text) !important}.header-menu .global-search__button[data-v-a0c987cc]:hover{background-color:rgba(0,0,0,0) !important}.global-search-modal[data-v-a0c987cc] .modal-container{height:80%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/GlobalSearch.vue\"],\"names\":[],\"mappings\":\"AACA,8BACC,YAAA,CACA,kBAAA,CACA,sBAAA,CAEA,qDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,0BAAA,CAEA,QAAA,CACA,SAAA,CACA,cAAA,CACA,WAAA,CACA,8BAAA,CACA,WAAA,CACA,sBAAA,CACA,0CAAA,CAEA,2DACC,yCAAA,CAMF,uDACC,UAAA\",\"sourcesContent\":[\"\\n.header-menu {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\n\\t.global-search__button {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: var(--header-height);\\n\\t\\t// height: var(--header-height);\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tcursor: pointer;\\n\\t\\topacity: .85;\\n\\t\\tbackground-color: transparent;\\n\\t\\tborder: none;\\n\\t\\tfilter: none !important;\\n\\t\\tcolor: var(--color-primary-text) !important;\\n\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: transparent !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n.global-search-modal {\\n\\t::v-deep .modal-container {\\n\\t\\theight: 80%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.global-search-modal[data-v-54d1e356]{padding:10px 20px 10px 20px;height:60%}.global-search-modal h1[data-v-54d1e356]{font-size:16px;font-weight:bolder;line-height:2em}.global-search-modal__filters[data-v-54d1e356]{display:flex;padding-top:4px;justify-content:left}.global-search-modal__filters>*[data-v-54d1e356]{margin-right:4px}.global-search-modal__filters-applied[data-v-54d1e356]{padding-top:4px;display:flex;flex-wrap:wrap}.global-search-modal__no-content[data-v-54d1e356]{display:flex;align-items:center;height:100%}.global-search-modal__results[data-v-54d1e356]{padding:10px}.global-search-modal__results .results .result-title span[data-v-54d1e356]{color:var(--color-primary-element);font-weight:bolder;font-size:16px}[data-v-54d1e356] .global-search-modal__results .results .result-items__item a{border-radius:12px;border:2px solid rgba(0,0,0,0);border-radius:var(--border-radius-large) !important}[data-v-54d1e356] .global-search-modal__results .results .result-items__item a--focused{background-color:var(--color-background-hover)}[data-v-54d1e356] .global-search-modal__results .results .result-items__item a:active,[data-v-54d1e356] .global-search-modal__results .results .result-items__item a:hover,[data-v-54d1e356] .global-search-modal__results .results .result-items__item a:focus{background-color:var(--color-background-hover);border:2px solid var(--color-border-maxcontrast)}[data-v-54d1e356] .global-search-modal__results .results .result-items__item a *{cursor:pointer}[data-v-54d1e356] .global-search-modal__results .results .result-items__item-icon{overflow:hidden;width:44px;height:44px;border-radius:var(--border-radius);background-repeat:no-repeat;background-position:center center;background-size:32px}[data-v-54d1e356] .global-search-modal__results .results .result-items__item-icon--rounded{border-radius:22px}[data-v-54d1e356] .global-search-modal__results .results .result-items__item-icon--no-preview{background-size:32px}[data-v-54d1e356] .global-search-modal__results .results .result-items__item-icon--with-thumbnail{background-size:cover}[data-v-54d1e356] .global-search-modal__results .results .result-items__item-icon--with-thumbnail:not(::v-deep .global-search-modal__results .results .result-items__item-icon--rounded){max-width:42px;max-height:42px;border:1px solid var(--color-border)}[data-v-54d1e356] .global-search-modal__results .results .result-items__item-icon img{width:100%;height:100%;object-fit:cover;object-position:center}.global-search-modal__results .results .result-footer[data-v-54d1e356]{justify-content:space-between;align-items:center;display:flex}div.v-popper__wrapper ul li[data-v-54d1e356] button.action-button{align-items:center !important}div.v-popper__wrapper ul li[data-v-54d1e356] button.action-button img{width:24px;margin:0 4px;filter:var(--background-invert-if-bright)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/GlobalSearchModal.vue\"],\"names\":[],\"mappings\":\"AAKA,sCACC,2BAAA,CACA,UAAA,CAEA,yCACC,cAAA,CACA,kBAAA,CACA,eAAA,CAGD,+CACC,YAAA,CACA,eAAA,CACA,oBAAA,CAEA,iDACC,gBAAA,CAMF,uDACC,eAAA,CACA,YAAA,CACA,cAAA,CAGD,kDACC,YAAA,CACA,kBAAA,CACA,WAAA,CAGD,+CACC,YAAA,CAKE,2EACC,kCAAA,CACA,kBAAA,CACA,cAAA,CAMA,+EACC,kBAAA,CACA,8BAAA,CACA,mDAAA,CAEA,wFACC,8CAAA,CAGD,gQAGC,8CAAA,CACA,gDAAA,CAGD,iFACC,cAAA,CAKF,kFACC,eAAA,CACA,UA5EW,CA6EX,WA7EW,CA8EX,kCAAA,CACA,2BAAA,CACA,iCAAA,CACA,oBAAA,CAEA,2FACC,kBAAA,CAGD,8FACC,oBAAA,CAGD,kGACC,qBAAA,CAGD,yLAEC,cAAA,CACA,eAAA,CACA,oCAAA,CAGD,sFAEC,UAAA,CACA,WAAA,CAEA,gBAAA,CACA,sBAAA,CAOJ,uEACC,6BAAA,CACA,kBAAA,CACA,YAAA,CAUD,kEACC,6BAAA,CAEA,sEACC,UAAA,CACA,YAAA,CACA,yCAAA\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n$clickable-area: 44px;\\n$margin: 10px;\\n\\n.global-search-modal {\\n\\tpadding: 10px 20px 10px 20px;\\n\\theight: 60%;\\n\\n\\th1 {\\n\\t\\tfont-size: 16px;\\n\\t\\tfont-weight: bolder;\\n\\t\\tline-height: 2em;\\n\\t}\\n\\n\\t&__filters {\\n\\t\\tdisplay: flex;\\n\\t\\tpadding-top: 4px;\\n\\t\\tjustify-content: left;\\n\\n\\t\\t>* {\\n\\t\\t\\tmargin-right: 4px;\\n\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&__filters-applied {\\n\\t\\tpadding-top: 4px;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t}\\n\\n\\t&__no-content {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\theight: 100%;\\n\\t}\\n\\n\\t&__results {\\n\\t\\tpadding: 10px;\\n\\n\\t\\t.results {\\n\\n\\t\\t\\t.result-title {\\n\\t\\t\\t\\tspan {\\n\\t\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t\\t\\tfont-weight: bolder;\\n\\t\\t\\t\\t\\tfont-size: 16px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t.result-items {\\n\\t\\t\\t\\t::v-deep &__item {\\n\\t\\t\\t\\t\\ta {\\n\\t\\t\\t\\t\\t\\tborder-radius: 12px;\\n\\t\\t\\t\\t\\t\\tborder: 2px solid transparent;\\n\\t\\t\\t\\t\\t\\tborder-radius: var(--border-radius-large) !important;\\n\\n\\t\\t\\t\\t\\t\\t&--focused {\\n\\t\\t\\t\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t\\t&:active,\\n\\t\\t\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\t\\t\\t\\tborder: 2px solid var(--color-border-maxcontrast);\\n\\t\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t\\t* {\\n\\t\\t\\t\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t&-icon {\\n\\t\\t\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\t\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t\\t\\t\\t\\tbackground-position: center center;\\n\\t\\t\\t\\t\\t\\tbackground-size: 32px;\\n\\n\\t\\t\\t\\t\\t\\t&--rounded {\\n\\t\\t\\t\\t\\t\\t\\tborder-radius: math.div($clickable-area, 2);\\n\\t\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t\\t&--no-preview {\\n\\t\\t\\t\\t\\t\\t\\tbackground-size: 32px;\\n\\t\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t\\t&--with-thumbnail {\\n\\t\\t\\t\\t\\t\\t\\tbackground-size: cover;\\n\\t\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t\\t&--with-thumbnail:not(&--rounded) {\\n\\t\\t\\t\\t\\t\\t\\t// compensate for border\\n\\t\\t\\t\\t\\t\\t\\tmax-width: $clickable-area - 2px;\\n\\t\\t\\t\\t\\t\\t\\tmax-height: $clickable-area - 2px;\\n\\t\\t\\t\\t\\t\\t\\tborder: 1px solid var(--color-border);\\n\\t\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t\\timg {\\n\\t\\t\\t\\t\\t\\t\\t// Make sure to keep ratio\\n\\t\\t\\t\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t\\t\\t\\theight: 100%;\\n\\n\\t\\t\\t\\t\\t\\t\\tobject-fit: cover;\\n\\t\\t\\t\\t\\t\\t\\tobject-position: center;\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t.result-footer {\\n\\t\\t\\t\\tjustify-content: space-between;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t}\\n}\\n\\ndiv.v-popper__wrapper {\\n\\tul {\\n\\t\\tli {\\n\\t\\t\\t::v-deep button.action-button {\\n\\t\\t\\t\\talign-items: center !important;\\n\\n\\t\\t\\t\\timg {\\n\\t\\t\\t\\t\\twidth: 24px;\\n\\t\\t\\t\\t\\tmargin: 0 4px;\\n\\t\\t\\t\\t\\tfilter: var(--background-invert-if-bright);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 6828;","__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\t6828: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], () => (__webpack_require__(98584)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","components","NcButton","NcModal","CalendarRangeIcon","NcDateTimePicker","isOpen","Boolean","required","data","dateFilter","startFrom","endAt","computed","isModalOpen","get","set","value","methods","closeModal","applyCustomRange","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","t","Date","model","callback","$$v","$set","expression","scopedSlots","_u","key","fn","proxy","CloseIcon","text","pretext","deleteChip","filter","_t","length","Z","Symbol","toStringTag","NcPopover","NcTextField","Magnify","AlertCircleOutline","NcAvatar","NcEmptyContent","labelText","searchList","Array","emptyContentText","opened","error","searchTerm","filteredList","element","toLowerCase","some","prop","includes","clearSearch","itemSelected","_l","id","displayName","user","async","getContacts","_ref2","contacts","axios","post","generateUrl","ArrowRight","AccountGroup","CustomDateRangeModal","DotsHorizontalIcon","FilterChip","FlaskEmpty","ListBox","NcActions","NcActionButton","NcListItem","NcInputField","MagnifyIcon","SearchableList","isVisible","providers","providerActionMenuIsOpen","dateActionMenuIsOpen","providerResultLimit","personFilter","dateFilterIsApplied","personFilterIsApplied","filteredProviders","searchQuery","placesFilter","dateTimeFilter","filters","results","debouncedFind","debounce","find","showDateRangeModal","userContacts","noContentInfo","isEmptySearch","hasNoResults","show","icon","mounted","generateOcsUrl","params","from","window","location","pathname","replace","search","ocs","isArray","console","getProviders","then","debug","mapContacts","query","newResults","providersToSearch","searchProvider","provider","cursor","since","until","person","limit","request","_ref","cancelToken","CancelToken","source","token","term","cancel","globalSearch","response","push","inAppSearch","entries","updateResults","forEach","updatedResults","result","newResult","existingResultIndex","findIndex","splice","sortedResults","slice","sort","a","b","aProvider","bProvider","order","openResult","resourceUrl","map","contact","fullName","isNoUser","subname","emailAddresses","filterContacts","applyPersonFilter","existingPersonFilter","loadMoreResultsForProvider","providerId","addProviderFilter","providerFilter","arguments","undefined","existing","syncProviderFilters","removeFilter","i","firstArray","secondArray","synchronizedArray","item","index","itemId","secondItem","updateDateFilter","currFilterIndex","applyQuickDateRange","range","today","startDate","endDate","setDate","getDate","getFullYear","setCustomDateRange","event","toLocaleDateString","isValidUrl","test","startsWith","class","ref","tag","providerResult","thumbnailUrl","style","backgroundImage","subline","GlobalSearchModal","showGlobalSearch","toggleGlobalSearch","__webpack_nonce__","btoa","getRequestToken","logger","getLoggerBuilder","setApp","detectUser","build","Vue","mixin","n","el","render","h","GlobalSearch","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","r","getter","__esModule","d","definition","o","defineProperty","enumerable","e","Promise","resolve","g","globalThis","Function","obj","prototype","hasOwnProperty","nmd","paths","children","document","baseURI","self","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","bind","nc","__webpack_exports__"],"sourceRoot":""}