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/user-status-modal-5133.js.map

1 line
93 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"version":3,"file":"user-status-modal-5133.js?v=208628f902bfe9df7e3c","mappings":";0JAGIA,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,yNAA0N,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iEAAiE,MAAQ,GAAG,SAAW,mFAAmF,eAAiB,CAAC,6MAA6M,WAAa,MAEprB,8ECJIH,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,qKAAsK,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sEAAsE,MAAQ,GAAG,SAAW,kEAAkE,eAAiB,CAAC,uKAAuK,WAAa,MAE9kB,8ECJIH,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,y/BAA0/B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sEAAsE,MAAQ,GAAG,SAAW,oRAAoR,eAAiB,CAAC,wjCAAwjC,WAAa,MAErgF,+ECJIH,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,g8BAAi8B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mCAAmC,oEAAoE,MAAQ,GAAG,SAAW,4OAA4O,eAAiB,CAAC,wzBAA0zB,83BAA83B,WAAa,MAErkG,+ECJIH,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,oGAAqG,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,0EAA0E,MAAQ,GAAG,SAAW,wCAAwC,eAAiB,CAAC,2GAA2G,WAAa,MAE3b,+ECJIH,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,gyBAAiyB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iCAAiC,kEAAkE,MAAQ,GAAG,SAAW,gPAAgP,eAAiB,CAAC,uoBAAyoB,kuBAAkuB,WAAa,MAExlF,6ECJIH,QAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,+rBAAgsB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kEAAkE,MAAQ,GAAG,SAAW,mPAAmP,eAAiB,CAAC,2sBAA2sB,WAAa,MAEzzD,yDCPA,gFCgCA,MAAMC,EAAiBC,IACtB,GAAgB,OAAZA,EACH,OAAOC,EAAAA,EAAAA,IAAE,cAAe,eAGzB,GAAqB,WAAjBD,EAAQE,KACX,OAAQF,EAAQG,MAChB,IAAK,MACJ,OAAOF,EAAAA,EAAAA,IAAE,cAAe,SACzB,IAAK,OACJ,OAAOA,EAAAA,EAAAA,IAAE,cAAe,aAEzB,QACC,OAAO,KAIT,GAAqB,WAAjBD,EAAQE,KACX,OAAOE,EAAAA,EAAOC,SAAwB,IAAfL,EAAQG,MAAaG,WAM7C,GAAqB,UAAjBN,EAAQE,KAAkB,CAC7B,MAAMK,GAAYH,EAAAA,EAAAA,IAAOI,EAAAA,EAAAA,MACnBC,GAAgBL,EAAAA,EAAAA,GAAOJ,EAAQG,KAAM,KAE3C,OAAOC,EAAAA,EAAOC,SAASE,EAAUG,KAAKD,IAAgBH,UACvD,CAEA,OAAO,IAAI,EC/DgL,EC6C5L,CACAK,KAAA,mBACAC,QAAA,CACAb,cAAAA,GAEAc,MAAA,CACAC,UAAA,CACAZ,KAAAa,OACAC,UAAA,GAEAC,KAAA,CACAf,KAAAa,OACAC,UAAA,GAEAE,QAAA,CACAhB,KAAAa,OACAC,UAAA,GAEAhB,QAAA,CACAE,KAAAiB,OACAH,UAAA,EACAI,QAAA,MAEAC,SAAA,CACAnB,KAAAoB,QACAN,UAAA,EACAI,SAAA,IAGAG,SAAA,CACAzB,EAAAA,GACA,uCAAA0B,OAAA,KAAAV,UACA,GAEAW,QAAA,CAIAC,MAAAA,GACA,KAAAC,MAAA,SACA,2IC1EIC,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,sBCP1D,SAXgB,OACd,GCTW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,KAAK,CAACE,YAAY,qBAAqB,CAACF,EAAG,QAAQ,CAACE,YAAY,2CAA2CC,MAAM,CAAC,GAAKL,EAAIrC,GAAG,KAAO,QAAQ,KAAO,qBAAqB2C,SAAS,CAAC,QAAUN,EAAId,UAAUqB,GAAG,CAAC,OAASP,EAAIT,UAAUS,EAAIQ,GAAG,KAAKN,EAAG,QAAQ,CAACE,YAAY,2BAA2BC,MAAM,CAAC,IAAML,EAAIrC,KAAK,CAACuC,EAAG,OAAO,CAACE,YAAY,iCAAiCC,MAAM,CAAC,cAAc,SAAS,CAACL,EAAIQ,GAAG,WAAWR,EAAIS,GAAGT,EAAIlB,MAAM,YAAYkB,EAAIQ,GAAG,KAAKN,EAAG,OAAO,CAACE,YAAY,qCAAqC,CAACJ,EAAIQ,GAAG,WAAWR,EAAIS,GAAGT,EAAIjB,SAAS,YAAYiB,EAAIQ,GAAG,KAAKN,EAAG,OAAO,CAACE,YAAY,sCAAsC,CAACJ,EAAIQ,GAAG,WAAWR,EAAIS,GAAGT,EAAIU,GAAG,gBAAPV,CAAwBA,EAAInC,UAAU,eAC5wB,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,uBEyBhC,MC5CkM,ED4ClM,CACAW,KAAA,yBACAmC,WAAA,CACAC,iBAAAA,GAEAC,KAAAA,KACA,CACAC,aAAA,OAGA1B,SAAA,KACA2B,EAAAA,EAAAA,IAAA,CACAC,mBAAAC,GAAAA,EAAAD,mBAAAA,mBACArC,UAAAsC,GAAAA,EAAAC,WAAAvC,gBAEAwC,EAAAA,EAAAA,IAAA,yBAGAC,MAAA,CACAzC,UAAA,CACA0C,WAAA,EACAC,OAAAA,GACA,KAAAR,aAAA,KAAAnC,SACA,IAQA4C,OAAAA,GACA,KAAAC,OAAAC,SAAA,4BACA,EACAnC,QAAA,CAMAoC,YAAAA,CAAAC,GACA,KAAAb,aAAAa,EAAAhE,GACA,KAAA6B,MAAA,gBAAAmC,EACA,mBE5EI,EAAU,CAAC,EAEf,EAAQjC,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,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAQF,EAAI4B,mBAAoB1B,EAAG,KAAK,CAACE,YAAY,2BAA2BC,MAAM,CAAC,aAAaL,EAAIlC,EAAE,cAAe,yBAAyBkC,EAAI6B,GAAI7B,EAAIgB,oBAAoB,SAASW,GAAQ,OAAOzB,EAAG,mBAAmB,CAAC4B,IAAIH,EAAOhE,GAAG0C,MAAM,CAAC,aAAasB,EAAOhE,GAAG,KAAOgE,EAAO7C,KAAK,QAAU6C,EAAO5C,QAAQ,WAAW4C,EAAO9D,QAAQ,SAAWmC,EAAIc,eAAiBa,EAAOhE,IAAI4C,GAAG,CAAC,OAAS,SAASwB,GAAQ,OAAO/B,EAAI0B,aAAaC,EAAO,IAAI,IAAG,GAAGzB,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACF,EAAG,MAAM,CAACE,YAAY,6BAC1kB,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEnB0J,EC+C1L,CACA5B,KAAA,iBAEAmC,WAAA,CACAqB,SAAAA,EAAAA,GAGAtD,MAAA,CACAI,KAAA,CACAf,KAAA,CAAAa,OAAA,MACAC,UAAA,GAEAE,QAAA,CACAhB,KAAAa,OACAC,UAAA,IAGAS,QAAA,CAIAC,MAAAA,GACA,KAAAC,MAAA,SACA,mBC3DI,EAAU,CAAC,EAEf,EAAQE,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,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,kCAAkCC,MAAM,CAAC,SAAW,KAAKE,GAAG,CAAC,MAAQ,CAAC,SAASwB,GAAQ,OAAIA,EAAOhE,KAAKkE,QAAQ,QAAQjC,EAAIkC,GAAGH,EAAOI,QAAQ,QAAQ,GAAGJ,EAAOD,IAAI,SAAgB,KAAY9B,EAAIT,OAAO6C,MAAM,KAAMC,UAAU,EAAE,SAASN,GAAQ,OAAIA,EAAOhE,KAAKkE,QAAQ,QAAQjC,EAAIkC,GAAGH,EAAOI,QAAQ,QAAQ,GAAGJ,EAAOD,IAAI,CAAC,IAAI,aAAoB,KAAY9B,EAAIT,OAAO6C,MAAM,KAAMC,UAAU,GAAG,MAAQrC,EAAIT,SAAS,CAACW,EAAG,OAAO,CAACE,YAAY,2BAA2B,CAACJ,EAAIQ,GAAG,SAASR,EAAIS,GAAGT,EAAIlB,MAAM,UAAUkB,EAAIQ,GAAG,KAAKN,EAAG,OAAO,CAACE,YAAY,8BAA8B,CAACJ,EAAIQ,GAAG,SAASR,EAAIS,GAAGT,EAAIjB,SAAS,UAAUiB,EAAIQ,GAAG,KAAKN,EAAG,OAAO,CAACE,YAAY,+BAA+B,CAACJ,EAAIQ,GAAG,SAASR,EAAIS,GAAGT,EAAIsC,GAAG,cAAe,mBAAmB,UAAUtC,EAAIQ,GAAG,KAAKN,EAAG,MAAM,CAACE,YAAY,+BAA+B,CAACF,EAAG,WAAW,CAACK,GAAG,CAAC,MAAQP,EAAIT,SAAS,CAACS,EAAIQ,GAAG,WAAWR,EAAIS,GAAGT,EAAIsC,GAAG,cAAe,iBAAiB,aAAa,IAC1gC,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEnBhC,aCgDA,MChD8L,EDgD9L,CACA9D,KAAA,qBAEAmC,WAAA,CACA4B,qBAAA,EACAP,SAAA,IACAQ,cAAAA,EAAAA,GAGA9D,MAAA,CACAI,KAAA,CACAf,KAAAa,OACAK,QAAA,MAEAF,QAAA,CACAhB,KAAAa,OACAC,UAAA,EACAI,QAAAA,IAAA,IAEAwD,SAAA,CACA1E,KAAAoB,QACAF,SAAA,IAIAyD,MAAA,CACA,SACA,eAGAtD,SAAA,CAMAuD,WAAAA,GACA,YAAA7D,MAAA,IACA,GAGAQ,QAAA,CACAsD,KAAAA,GACA,KAAAC,MAAAC,MAAAF,OACA,EAOAG,QAAAA,CAAAC,GACA,KAAAxD,MAAA,SAAAwD,EAAAC,OAAAC,MACA,EAEAC,OAAAA,CAAArE,GACA,KAAAU,MAAA,cAAAV,EACA,kBE9FI,EAAU,CAAC,EAEf,EAAQY,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,GJTW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,eAAeC,MAAM,CAAC,KAAO,UAAU,CAACH,EAAG,gBAAgB,CAACG,MAAM,CAAC,UAAY,iBAAiBE,GAAG,CAAC,OAASP,EAAImD,UAAU,CAACjD,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,WAAW,aAAaL,EAAIlC,EAAE,cAAe,kCAAkCsF,YAAYpD,EAAIqD,GAAG,CAAC,CAACvB,IAAI,OAAOwB,GAAG,WAAW,MAAO,CAACtD,EAAIQ,GAAG,aAAaR,EAAIS,GAAGT,EAAI2C,aAAa,YAAY,EAAEY,OAAM,QAAW,GAAGvD,EAAIQ,GAAG,KAAKN,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,cAAc,CAACsD,IAAI,QAAQnD,MAAM,CAAC,UAAY,KAAK,SAAWL,EAAIyC,SAAS,YAAczC,EAAIlC,EAAE,cAAe,wBAAwB,MAAQkC,EAAIjB,QAAQ,KAAO,OAAO,MAAQiB,EAAIlC,EAAE,cAAe,yBAAyByC,GAAG,CAAC,MAAQP,EAAI+C,aAAa,IAAI,EACrwB,GACsB,IIUpB,EACA,KACA,WACA,MAI8B,QCUhC,MC7ByL,ECyCzL,CACAvE,KAAA,gBACAmC,WAAA,CACA8C,kBAAAA,GAEA/E,MAAA,CACAb,QAAA,CACAE,KAAAiB,OACAC,QAAA,OAGA4B,KAAAA,KACA,CACApB,QFxBQ,CAAC,CACPiE,OAAO5F,EAAAA,EAAAA,IAAE,cAAe,eACxBD,QAAS,MACP,CACF6F,OAAO5F,EAAAA,EAAAA,IAAE,cAAe,cACxBD,QAAS,CACRE,KAAM,SACNC,KAAM,OAEL,CACF0F,OAAO5F,EAAAA,EAAAA,IAAE,cAAe,UACxBD,QAAS,CACRE,KAAM,SACNC,KAAM,OAEL,CACF0F,OAAO5F,EAAAA,EAAAA,IAAE,cAAe,WACxBD,QAAS,CACRE,KAAM,SACNC,KAAM,QAEL,CACF0F,OAAO5F,EAAAA,EAAAA,IAAE,cAAe,SACxBD,QAAS,CACRE,KAAM,SACNC,KAAM,QAEL,CACF0F,OAAO5F,EAAAA,EAAAA,IAAE,cAAe,aACxBD,QAAS,CACRE,KAAM,SACNC,KAAM,YEJToB,SAAA,CAMAuE,MAAAA,GACA,OACA9F,QAAA,KAAAA,QACA6F,MAAA9F,EAAA,KAAAC,SAEA,GAEAyB,QAAA,CAMAC,MAAAA,CAAAoE,GACAA,GAIA,KAAAnE,MAAA,kBAAAmE,EAAA9F,QACA,kBCvEI,EAAU,CAAC,EAEf,EAAQ6B,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,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,QAAQ,CAACE,YAAY,yBAAyBC,MAAM,CAAC,IAAM,gBAAgB,CAACL,EAAIQ,GAAG,SAASR,EAAIS,GAAGT,EAAIsC,GAAG,cAAe,uBAAuB,UAAUtC,EAAIQ,GAAG,KAAKN,EAAG,WAAW,CAACE,YAAY,0BAA0BC,MAAM,CAAC,WAAW,cAAc,QAAUL,EAAIP,QAAQ,MAAQO,EAAI2D,OAAO,WAAY,EAAM,UAAY,OAAOpD,GAAG,CAAC,kBAAkBP,EAAIT,WAAW,EAC9d,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEnB8J,ECyC9L,CACAf,KAAA,qBAEAmC,WAAA,CACAiD,0BAAAA,GAGAlF,MAAA,CACAmF,QAAA,CACA9F,KAAAoB,QACAF,SAAA,GAEAlB,KAAA,CACAA,KAAAa,OACAC,UAAA,GAEA6E,MAAA,CACA3F,KAAAa,OACAC,UAAA,GAEAiF,QAAA,CACA/F,KAAAa,OACAK,QAAA,OAIAG,SAAA,CACAzB,EAAAA,GACA,mCAAA0B,OAAA,KAAAtB,KACA,GAGAuB,QAAA,CACAyD,QAAAA,GACA,KAAAvD,MAAA,cAAAzB,KACA,kBCjEI,EAAU,CAAC,EAEf,EAAQ2B,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,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,6BAA6B,CAACF,EAAG,QAAQ,CAACE,YAAY,mDAAmDC,MAAM,CAAC,GAAKL,EAAIrC,GAAG,KAAO,QAAQ,KAAO,sBAAsB2C,SAAS,CAAC,QAAUN,EAAI6D,SAAStD,GAAG,CAAC,OAASP,EAAI+C,YAAY/C,EAAIQ,GAAG,KAAKN,EAAG,QAAQ,CAACE,YAAY,mCAAmCC,MAAM,CAAC,IAAML,EAAIrC,KAAK,CAACqC,EAAIQ,GAAG,SAASR,EAAIS,GAAGT,EAAI0D,OAAO,UAAUxD,EAAG,mBAAmB,CAACG,MAAM,CAAC,OAASL,EAAIjC,KAAK,cAAc,UAAUiC,EAAIQ,GAAG,KAAKN,EAAG,KAAK,CAACE,YAAY,sCAAsC,CAACJ,EAAIQ,GAAGR,EAAIS,GAAGT,EAAI8D,aAAa,IACxnB,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,uBE8EhC,MCjG0L,EDiG1L,CACAtF,KAAA,iBAEAmC,WAAA,CACAoD,cAAA,EACAC,mBAAA,EACAC,QAAA,IACAC,mBAAA,EACAC,uBAAA,EACAC,eAAA,EACApC,SAAAA,EAAAA,GAEAqC,OAAA,CAAAC,EAAAA,GAEA5F,MAAA,CAMA6F,OAAA,CACAxG,KAAAoB,QACAF,SAAA,IAIA4B,KAAAA,KACA,CACAhD,QAAA,KACA2G,cAAA,GACAC,gBAAA,EACAC,SEjGQ,CAAC,CACP3G,KAAM,SACN2F,OAAO5F,EAAAA,EAAAA,IAAE,cAAe,WACtB,CACFC,KAAM,OACN2F,OAAO5F,EAAAA,EAAAA,IAAE,cAAe,SACtB,CACFC,KAAM,MACN2F,OAAO5F,EAAAA,EAAAA,IAAE,cAAe,kBACxBgG,SAAShG,EAAAA,EAAAA,IAAE,cAAe,2BACxB,CACFC,KAAM,YACN2F,OAAO5F,EAAAA,EAAAA,IAAE,cAAe,aACxBgG,SAAShG,EAAAA,EAAAA,IAAE,cAAe,sBFwF5BsB,SAAA,CACAT,SAAAA,GACA,YAAA6C,OAAAP,MAAAC,WAAAvC,SACA,EACAG,IAAAA,GACA,YAAA0C,OAAAP,MAAAC,WAAApC,IACA,EACAC,OAAAA,GACA,YAAAyC,OAAAP,MAAAC,WAAAnC,SAAA,EACA,EACA4F,eAAAA,GACA,YAAAhG,YAAA,KAAAiG,YAAA,KAAAC,cACA,EACAD,UAAAA,GACA,YAAApD,OAAAP,MAAA6D,iBAAAhG,MAAA,EACA,EACA+F,aAAAA,GACA,YAAArD,OAAAP,MAAA6D,iBAAA/F,SAAA,EACA,EAEAgG,eAAAA,GACA,YAAAH,YAAA,KAAAC,cACA,KAAAvC,GAAA,oDACAxD,KAAA,KAAA8F,WACA7F,QAAA,KAAA8F,gBAEA,KAAAA,cACA,KAAAvC,GAAA,6CACAvD,QAAA,KAAA8F,gBAEA,KAAAD,WACA,KAAAtC,GAAA,0CACAxD,KAAA,KAAA8F,aAIA,KAAAtC,GAAA,6BACA,EAEA0C,cAAAA,GAAA,IAAAC,EACA,SAAAV,OAGA,eAAAU,EAAAC,SAAAC,cAAA,sDAAAF,EAAAA,OAAAG,CACA,GAGAhE,MAAA,CACArC,QAAA,CACAsC,WAAA,EACAC,OAAAA,CAAA+D,GACA,KAAAb,cAAAa,CACA,IAOAC,OAAAA,GACA,KAAA9D,OAAAC,SAAA,yBAEA,YAAAD,OAAAP,MAAAC,WAAArD,UACA,KAAAA,QAAA,CACAE,KAAA,QACAC,KAAA,KAAAwD,OAAAP,MAAAC,WAAArD,SAGA,EACAyB,QAAA,CAIAiG,UAAAA,GACA,KAAA/F,MAAA,QACA,EAMA2D,OAAAA,CAAArE,GACA,KAAA0C,OAAAC,SAAA,oBACA1C,QAAA,KAAAA,QACAD,OACAjB,QAAA,KAAAA,UAEA,KAAA2H,WAAA,KACA,KAAA3C,MAAA4C,mBAAA7C,OAAA,GAEA,EAMA8C,UAAAA,CAAA3G,GACA,KAAAyF,cAAAzF,CACA,EAMA4G,UAAAA,CAAA9H,GACA,KAAAA,QAAAA,CACA,EAMA+H,uBAAAA,CAAAjE,GACA,KAAA9D,QAAA8D,EAAA9D,QACA,KAAA2D,OAAAC,SAAA,wBACA9C,UAAAgD,EAAAhE,GACAE,QAAA8D,EAAA9D,SAEA,EAMA,gBAAAgI,GACA,SAAApB,eAAA,CAIA,IACA,KAAAA,gBAAA,QAEA,KAAAjD,OAAAC,SAAA,oBACA1C,QAAA,KAAAyF,cACA1F,KAAA,KAAAA,KACAjB,QAAA,KAAAA,SAEA,OAAAiI,GAIA,OAHAC,EAAAA,EAAAA,IAAA,KAAAzD,GAAA,uDACA0D,EAAAC,MAAAH,QACA,KAAArB,gBAAA,EAEA,CAEA,KAAAA,gBAAA,EACA,KAAAc,YAlBA,CAmBA,EAKA,iBAAAW,GACA,IACA,KAAAzB,gBAAA,QAEA,KAAAjD,OAAAC,SAAA,eACA,OAAAqE,GAIA,OAHAC,EAAAA,EAAAA,IAAA,KAAAzD,GAAA,yDACA0D,EAAAC,MAAAH,QACA,KAAArB,gBAAA,EAEA,CAEA,KAAAA,gBAAA,EACA,KAAAc,YACA,EAKA,4BAAAY,GACA,IACA,KAAA1B,gBAAA,QAEA,KAAAjD,OAAAC,SAAA,0BACA9C,UAAA,KAAAA,WAEA,OAAAmH,GAIA,OAHAC,EAAAA,EAAAA,IAAA,KAAAzD,GAAA,0DACA0D,EAAAC,MAAAH,QACA,KAAArB,gBAAA,EAEA,CAEA,KAAAA,gBAAA,CACA,iBGlTI,EAAU,CAAC,EAEf,EAAQ/E,kBAAoB,IAC5B,EAAQC,cAAgB,IAElB,EAAQC,OAAS,SAAc,KAAM,QAE3C,EAAQC,OAAS,IACjB,EAAQC,mBAAqB,IAEhB,IAAI,IAAS,GAKJ,KAAW,IAAQC,QAAS,IAAQA,OCP1D,UAXgB,OACd,GrCTW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACG,MAAM,CAAC,KAAO,SAAS,KAAOL,EAAIsC,GAAG,cAAe,cAAc,mBAAmBtC,EAAIgF,gBAAgBzE,GAAG,CAAC,MAAQP,EAAIuF,aAAa,CAACrF,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACF,EAAG,KAAK,CAACF,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIsC,GAAG,cAAe,uBAAuBtC,EAAIQ,GAAG,KAAKN,EAAG,MAAM,CAACE,YAAY,kCAAkCC,MAAM,CAAC,KAAO,aAAa,aAAaL,EAAIsC,GAAG,cAAe,mBAAmBtC,EAAI6B,GAAI7B,EAAI0E,UAAU,SAAS/C,GAAQ,OAAOzB,EAAG,qBAAqBF,EAAIoG,GAAG,CAACtE,IAAIH,EAAO5D,KAAKsC,MAAM,CAAC,QAAUsB,EAAO5D,OAASiC,EAAIqG,YAAY9F,GAAG,CAAC,OAASP,EAAIsG,eAAe,qBAAqB3E,GAAO,GAAO,IAAG,GAAG3B,EAAIQ,GAAG,KAAKN,EAAG,OAAO,CAACK,GAAG,CAAC,OAAS,SAASwB,GAAgC,OAAxBA,EAAOwE,iBAAwBvG,EAAI6F,WAAWzD,MAAM,KAAMC,UAAU,EAAE,MAAQrC,EAAIkG,cAAc,CAAChG,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACF,EAAG,KAAK,CAACF,EAAIQ,GAAGR,EAAIS,GAAGT,EAAIsC,GAAG,cAAe,wBAAwBtC,EAAIQ,GAAG,KAAKN,EAAG,MAAM,CAACE,YAAY,kCAAkC,CAACF,EAAG,qBAAqB,CAACsD,IAAI,qBAAqBnD,MAAM,CAAC,KAAOL,EAAIlB,KAAK,QAAUkB,EAAIwE,eAAejE,GAAG,CAAC,OAASP,EAAI0F,WAAW,cAAc1F,EAAImD,YAAY,GAAGnD,EAAIQ,GAAG,KAAMR,EAAI2E,gBAAiBzE,EAAG,MAAM,CAACE,YAAY,qCAAqC,CAACJ,EAAIQ,GAAG,aAAaR,EAAIS,GAAGT,EAAIsC,GAAG,cAAe,sCAAsC,cAActC,EAAIwG,KAAKxG,EAAIQ,GAAG,KAAMR,EAAI2E,gBAAiBzE,EAAG,iBAAiB,CAACG,MAAM,CAAC,KAAOL,EAAI4E,WAAW,QAAU5E,EAAI6E,eAAetE,GAAG,CAAC,OAASP,EAAImG,0BAA0BnG,EAAIwG,KAAKxG,EAAIQ,GAAG,KAAKN,EAAG,yBAAyB,CAACK,GAAG,CAAC,gBAAgBP,EAAI4F,2BAA2B5F,EAAIQ,GAAG,KAAKN,EAAG,gBAAgB,CAACG,MAAM,CAAC,WAAWL,EAAInC,SAAS0C,GAAG,CAAC,kBAAkBP,EAAI2F,cAAc3F,EAAIQ,GAAG,KAAKN,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,WAAW,CAACG,MAAM,CAAC,MAAO,EAAK,KAAO,WAAW,cAAc,QAAQ,aAAaL,EAAIsC,GAAG,cAAe,wBAAwB,SAAWtC,EAAIyE,iBAAiB,CAACzE,EAAIQ,GAAG,eAAeR,EAAIS,GAAGT,EAAIsC,GAAG,cAAe,yBAAyB,gBAAgBtC,EAAIQ,GAAG,KAAKN,EAAG,WAAW,CAACG,MAAM,CAAC,MAAO,EAAK,KAAO,UAAU,cAAc,SAAS,aAAaL,EAAIsC,GAAG,cAAe,sBAAsB,SAAWtC,EAAIyE,iBAAiB,CAACzE,EAAIQ,GAAG,eAAeR,EAAIS,GAAGT,EAAIsC,GAAG,cAAe,uBAAuB,iBAAiB,IAAI,MACv1E,GACsB,IqCUpB,EACA,KACA,WACA,MAI8B","sources":["webpack:///nextcloud/apps/user_status/src/components/ClearAtSelect.vue?vue&type=style&index=0&id=23ffd377&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/CustomMessageInput.vue?vue&type=style&index=0&id=a6e177f6&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/OnlineStatusSelect.vue?vue&type=style&index=0&id=3f6d7058&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatus.vue?vue&type=style&index=0&id=7b8161e9&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatusesList.vue?vue&type=style&index=0&id=362acd76&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/PreviousStatus.vue?vue&type=style&index=0&id=ba802d4c&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/user_status/src/components/SetStatusModal.vue?vue&type=style&index=0&id=61d76afa&prod&lang=scss&scoped=true","webpack://nextcloud/./apps/user_status/src/components/SetStatusModal.vue?dc19","webpack:///nextcloud/apps/user_status/src/filters/clearAtFilter.js","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatus.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatus.vue","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatus.vue?af2e","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatus.vue?159c","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatus.vue?74a5","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatusesList.vue","webpack:///nextcloud/apps/user_status/src/components/PredefinedStatusesList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatusesList.vue?b213","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatusesList.vue?944d","webpack://nextcloud/./apps/user_status/src/components/PredefinedStatusesList.vue?26ad","webpack:///nextcloud/apps/user_status/src/components/PreviousStatus.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/components/PreviousStatus.vue","webpack://nextcloud/./apps/user_status/src/components/PreviousStatus.vue?bdc9","webpack://nextcloud/./apps/user_status/src/components/PreviousStatus.vue?e294","webpack://nextcloud/./apps/user_status/src/components/PreviousStatus.vue?a03f","webpack://nextcloud/./apps/user_status/src/components/CustomMessageInput.vue?d5a9","webpack:///nextcloud/apps/user_status/src/components/CustomMessageInput.vue","webpack:///nextcloud/apps/user_status/src/components/CustomMessageInput.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/user_status/src/components/CustomMessageInput.vue?5013","webpack://nextcloud/./apps/user_status/src/components/CustomMessageInput.vue?87a5","webpack:///nextcloud/apps/user_status/src/services/clearAtOptionsService.js","webpack:///nextcloud/apps/user_status/src/components/ClearAtSelect.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/components/ClearAtSelect.vue","webpack://nextcloud/./apps/user_status/src/components/ClearAtSelect.vue?4e06","webpack://nextcloud/./apps/user_status/src/components/ClearAtSelect.vue?b1cd","webpack://nextcloud/./apps/user_status/src/components/ClearAtSelect.vue?2c76","webpack:///nextcloud/apps/user_status/src/components/OnlineStatusSelect.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/components/OnlineStatusSelect.vue","webpack://nextcloud/./apps/user_status/src/components/OnlineStatusSelect.vue?26b0","webpack://nextcloud/./apps/user_status/src/components/OnlineStatusSelect.vue?1ac6","webpack://nextcloud/./apps/user_status/src/components/OnlineStatusSelect.vue?12b9","webpack:///nextcloud/apps/user_status/src/components/SetStatusModal.vue","webpack:///nextcloud/apps/user_status/src/components/SetStatusModal.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/user_status/src/services/statusOptionsService.js","webpack://nextcloud/./apps/user_status/src/components/SetStatusModal.vue?65d4","webpack://nextcloud/./apps/user_status/src/components/SetStatusModal.vue?4fb2"],"sourcesContent":["// 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, `.clear-at-select[data-v-23ffd377]{display:flex;margin-bottom:10px;align-items:center}.clear-at-select__label[data-v-23ffd377]{margin-right:12px}.clear-at-select__select[data-v-23ffd377]{flex-grow:1;min-width:215px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/ClearAtSelect.vue\"],\"names\":[],\"mappings\":\"AACA,kCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CAEA,yCACC,iBAAA,CAGD,0CACC,WAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.clear-at-select {\\n\\tdisplay: flex;\\n\\tmargin-bottom: 10px;\\n\\talign-items: center;\\n\\n\\t&__label {\\n\\t\\tmargin-right: 12px;\\n\\t}\\n\\n\\t&__select {\\n\\t\\tflex-grow: 1;\\n\\t\\tmin-width: 215px;\\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, `.custom-input[data-v-a6e177f6]{display:flex;align-items:flex-end;gap:var(--default-grid-baseline);width:100%}.custom-input__container[data-v-a6e177f6]{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/CustomMessageInput.vue\"],\"names\":[],\"mappings\":\"AACA,+BACC,YAAA,CACA,oBAAA,CACA,gCAAA,CACA,UAAA,CAEA,0CACC,UAAA\",\"sourcesContent\":[\"\\n.custom-input {\\n\\tdisplay: flex;\\n\\talign-items: flex-end;\\n\\tgap: var(--default-grid-baseline);\\n\\twidth: 100%;\\n\\n\\t&__container {\\n\\t\\twidth: 100%;\\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, `.user-status-online-select__label[data-v-3f6d7058]{position:relative;display:block;margin:8px;padding:8px;padding-left:40px;border:2px solid var(--color-main-background);border-radius:var(--border-radius-large);background-color:var(--color-background-hover);background-position:8px center;background-size:24px}.user-status-online-select__label span[data-v-3f6d7058],.user-status-online-select__label[data-v-3f6d7058]{cursor:pointer}.user-status-online-select__label span[data-v-3f6d7058]{position:absolute;top:calc(50% - 10px);left:10px;display:block;width:24px;height:24px}.user-status-online-select__input:checked+.user-status-online-select__label[data-v-3f6d7058]{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}.user-status-online-select__input:focus-visible+.user-status-online-select__label[data-v-3f6d7058]{outline:2px solid var(--color-primary-element) !important}.user-status-online-select__subline[data-v-3f6d7058]{display:block;color:var(--color-text-lighter)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/OnlineStatusSelect.vue\"],\"names\":[],\"mappings\":\"AAMC,mDACC,iBAAA,CACA,aAAA,CACA,UANc,CAOd,WAPc,CAQd,iBAAA,CACA,6CAAA,CACA,wCAAA,CACA,8CAAA,CACA,8BAAA,CACA,oBAdU,CAgBV,2GAEC,cAAA,CAGD,wDACC,iBAAA,CACA,oBAAA,CACA,SAAA,CACA,aAAA,CACA,UA1BS,CA2BT,WA3BS,CA+BX,6FACC,wCAAA,CACA,iDAAA,CAGD,mGACC,yDAAA,CAGD,qDACC,aAAA,CACA,+BAAA\",\"sourcesContent\":[\"\\n@use 'sass:math';\\n$icon-size: 24px;\\n$label-padding: 8px;\\n\\n.user-status-online-select {\\n\\t&__label {\\n\\t\\tposition: relative;\\n\\t\\tdisplay: block;\\n\\t\\tmargin: $label-padding;\\n\\t\\tpadding: $label-padding;\\n\\t\\tpadding-left: $icon-size + $label-padding * 2;\\n\\t\\tborder: 2px solid var(--color-main-background);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\tbackground-position: $label-padding center;\\n\\t\\tbackground-size: $icon-size;\\n\\n\\t\\tspan,\\n\\t\\t& {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\n\\t\\tspan {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: calc(50% - 10px);\\n\\t\\t\\tleft: 10px;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\twidth: $icon-size;\\n\\t\\t\\theight: $icon-size;\\n\\t\\t}\\n\\t}\\n\\n\\t&__input:checked + &__label {\\n\\t\\toutline: 2px solid var(--color-main-text);\\n\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background);\\n\\t}\\n\\n\\t&__input:focus-visible + &__label {\\n\\t\\toutline: 2px solid var(--color-primary-element) !important;\\n\\t}\\n\\n\\t&__subline {\\n\\t\\tdisplay: block;\\n\\t\\tcolor: var(--color-text-lighter);\\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, `.predefined-status__label[data-v-7b8161e9]{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status__label--icon[data-v-7b8161e9]{flex-basis:40px;text-align:center}.predefined-status__label--message[data-v-7b8161e9]{font-weight:bold;padding:0 6px}.predefined-status__label--clear-at[data-v-7b8161e9]{color:var(--color-text-maxcontrast)}.predefined-status__label--clear-at[data-v-7b8161e9]::before{content:\" \"}.predefined-status__input:checked+.predefined-status__label[data-v-7b8161e9],.predefined-status__label[data-v-7b8161e9]:active{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background);border-radius:var(--border-radius-large)}.predefined-status__input:focus-visible+.predefined-status__label[data-v-7b8161e9]{outline:2px solid var(--color-primary-element) !important;border-radius:var(--border-radius-large)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./PredefinedStatus.vue\",\"webpack://./apps/user_status/src/components/PredefinedStatus.vue\"],\"names\":[],\"mappings\":\"AAAA,2CCEC,YACC,CAAA,gBACA,CAAA,0BACA,CAAA,eACA,CAAA,kCACA,CAAA,kBACA,CAAA,eACA,CAAA,iDAEA,eACC,CAAA,iBACA,CAAA,oDAGD,gBACC,CAAA,aACA,CAAA,qDAGD,mCACC,CAAA,6DAEA,aACC,CAAA,+HAKH,wCAEC,CAAA,iDACA,CAAA,wCACA,CAAA,mFAGD,yDACC,CAAA,wCACA\",\"sourcesContent\":[\".predefined-status__label{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status__label--icon{flex-basis:40px;text-align:center}.predefined-status__label--message{font-weight:bold;padding:0 6px}.predefined-status__label--clear-at{color:var(--color-text-maxcontrast)}.predefined-status__label--clear-at::before{content:\\\" \\\"}.predefined-status__input:checked+.predefined-status__label,.predefined-status__label:active{outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background);border-radius:var(--border-radius-large)}.predefined-status__input:focus-visible+.predefined-status__label{outline:2px solid var(--color-primary-element) !important;border-radius:var(--border-radius-large)}\",\"\\n.predefined-status {\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: nowrap;\\n\\t\\tjustify-content: flex-start;\\n\\t\\tflex-basis: 100%;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\talign-items: center;\\n\\t\\tmin-height: 44px;\\n\\n\\t\\t&--icon {\\n\\t\\t\\tflex-basis: 40px;\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\n\\t\\t&--message {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tpadding: 0 6px;\\n\\t\\t}\\n\\n\\t\\t&--clear-at {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t\\t&::before {\\n\\t\\t\\t\\tcontent: ' ';\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__input:checked + &__label,\\n\\t&__label:active {\\n\\t\\toutline: 2px solid var(--color-main-text);\\n\\t\\tbox-shadow: 0 0 0 4px var(--color-main-background);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n\\n\\t&__input:focus-visible + &__label {\\n\\t\\toutline: 2px solid var(--color-primary-element) !important;\\n\\t\\tborder-radius: var(--border-radius-large);\\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, `.predefined-statuses-list[data-v-362acd76]{display:flex;flex-direction:column;margin-bottom:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/PredefinedStatusesList.vue\"],\"names\":[],\"mappings\":\"AACA,2CACC,YAAA,CACA,qBAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.predefined-statuses-list {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tmargin-bottom: 10px;\\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, `.predefined-status[data-v-ba802d4c]{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status[data-v-ba802d4c]:hover,.predefined-status[data-v-ba802d4c]:focus{background-color:var(--color-background-hover)}.predefined-status[data-v-ba802d4c]:active{background-color:var(--color-background-dark)}.predefined-status__icon[data-v-ba802d4c]{flex-basis:40px;text-align:center}.predefined-status__message[data-v-ba802d4c]{font-weight:bold;padding:0 6px}.predefined-status__clear-at[data-v-ba802d4c]{color:var(--color-text-maxcontrast)}.predefined-status__clear-at[data-v-ba802d4c]::before{content:\" \"}.backup-status__reset-button[data-v-ba802d4c]{justify-content:flex-end;display:flex;flex-grow:1}`, \"\",{\"version\":3,\"sources\":[\"webpack://./PreviousStatus.vue\",\"webpack://./apps/user_status/src/components/PreviousStatus.vue\"],\"names\":[],\"mappings\":\"AAAA,oCCCA,YACC,CAAA,gBACA,CAAA,0BACA,CAAA,eACA,CAAA,kCACA,CAAA,kBACA,CAAA,eACA,CAAA,oFAEA,8CAEC,CAAA,2CAGD,6CACC,CAAA,0CAGD,eACC,CAAA,iBACA,CAAA,6CAGD,gBACC,CAAA,aACA,CAAA,8CAGD,mCACC,CAAA,sDAEA,aACC,CAAA,8CAKF,wBACC,CAAA,YACA,CAAA,WACA\",\"sourcesContent\":[\".predefined-status{display:flex;flex-wrap:nowrap;justify-content:flex-start;flex-basis:100%;border-radius:var(--border-radius);align-items:center;min-height:44px}.predefined-status:hover,.predefined-status:focus{background-color:var(--color-background-hover)}.predefined-status:active{background-color:var(--color-background-dark)}.predefined-status__icon{flex-basis:40px;text-align:center}.predefined-status__message{font-weight:bold;padding:0 6px}.predefined-status__clear-at{color:var(--color-text-maxcontrast)}.predefined-status__clear-at::before{content:\\\" \\\"}.backup-status__reset-button{justify-content:flex-end;display:flex;flex-grow:1}\",\"\\n.predefined-status {\\n\\tdisplay: flex;\\n\\tflex-wrap: nowrap;\\n\\tjustify-content: flex-start;\\n\\tflex-basis: 100%;\\n\\tborder-radius: var(--border-radius);\\n\\talign-items: center;\\n\\tmin-height: 44px;\\n\\n\\t&:hover,\\n\\t&:focus {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\t}\\n\\n\\t&:active{\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\tflex-basis: 40px;\\n\\t\\ttext-align: center;\\n\\t}\\n\\n\\t&__message {\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: 0 6px;\\n\\t}\\n\\n\\t&__clear-at {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t&::before {\\n\\t\\t\\tcontent: ' ';\\n\\t\\t}\\n\\t}\\n}\\n.backup-status {\\n\\t&__reset-button {\\n\\t\\tjustify-content: flex-end;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-grow: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.set-status-modal[data-v-61d76afa]{padding:8px 20px 20px 20px}.set-status-modal__header[data-v-61d76afa]{text-align:center;font-weight:bold;margin:15px 0}.set-status-modal__online-status[data-v-61d76afa]{display:grid;grid-template-columns:1fr 1fr}.set-status-modal__custom-input[data-v-61d76afa]{display:flex;width:100%;margin-bottom:10px}.set-status-modal__automation-hint[data-v-61d76afa]{display:flex;width:100%;margin-bottom:10px;color:var(--color-text-maxcontrast)}.set-status-modal .status-buttons[data-v-61d76afa]{display:flex;padding:3px;padding-left:0;gap:3px}@media only screen and (max-width: 500px){.set-status-modal__online-status[data-v-61d76afa]{grid-template-columns:none !important}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/user_status/src/components/SetStatusModal.vue\"],\"names\":[],\"mappings\":\"AAEA,mCACC,0BAAA,CAEA,2CACC,iBAAA,CACA,gBAAA,CACA,aAAA,CAGD,kDACC,YAAA,CACA,6BAAA,CAGD,iDACC,YAAA,CACA,UAAA,CACA,kBAAA,CAGD,oDACC,YAAA,CACA,UAAA,CACA,kBAAA,CACA,mCAAA,CAGD,mDACC,YAAA,CACA,WAAA,CACA,cAAA,CACA,OAAA,CAIF,0CACC,kDACC,qCAAA,CAAA\",\"sourcesContent\":[\"\\n\\n.set-status-modal {\\n\\tpadding: 8px 20px 20px 20px;\\n\\n\\t&__header {\\n\\t\\ttext-align: center;\\n\\t\\tfont-weight: bold;\\n\\t\\tmargin: 15px 0;\\n\\t}\\n\\n\\t&__online-status {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: 1fr 1fr;\\n\\t}\\n\\n\\t&__custom-input {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 10px;\\n\\t}\\n\\n\\t&__automation-hint {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tmargin-bottom: 10px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t.status-buttons {\\n\\t\\tdisplay: flex;\\n\\t\\tpadding: 3px;\\n\\t\\tpadding-left:0;\\n\\t\\tgap: 3px;\\n\\t}\\n}\\n\\n@media only screen and (max-width: 500px) {\\n\\t.set-status-modal__online-status {\\n\\t\\tgrid-template-columns: none !important;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcModal',{attrs:{\"size\":\"normal\",\"name\":_vm.$t('user_status', 'Set status'),\"set-return-focus\":_vm.setReturnFocus},on:{\"close\":_vm.closeModal}},[_c('div',{staticClass:\"set-status-modal\"},[_c('div',{staticClass:\"set-status-modal__header\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('user_status', 'Online status')))])]),_vm._v(\" \"),_c('div',{staticClass:\"set-status-modal__online-status\",attrs:{\"role\":\"radiogroup\",\"aria-label\":_vm.$t('user_status', 'Online status')}},_vm._l((_vm.statuses),function(status){return _c('OnlineStatusSelect',_vm._b({key:status.type,attrs:{\"checked\":status.type === _vm.statusType},on:{\"select\":_vm.changeStatus}},'OnlineStatusSelect',status,false))}),1),_vm._v(\" \"),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.saveStatus.apply(null, arguments)},\"reset\":_vm.clearStatus}},[_c('div',{staticClass:\"set-status-modal__header\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('user_status', 'Status message')))])]),_vm._v(\" \"),_c('div',{staticClass:\"set-status-modal__custom-input\"},[_c('CustomMessageInput',{ref:\"customMessageInput\",attrs:{\"icon\":_vm.icon,\"message\":_vm.editedMessage},on:{\"change\":_vm.setMessage,\"select-icon\":_vm.setIcon}})],1),_vm._v(\" \"),(_vm.hasBackupStatus)?_c('div',{staticClass:\"set-status-modal__automation-hint\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.$t('user_status', 'Your status was set automatically'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.hasBackupStatus)?_c('PreviousStatus',{attrs:{\"icon\":_vm.backupIcon,\"message\":_vm.backupMessage},on:{\"select\":_vm.revertBackupFromServer}}):_vm._e(),_vm._v(\" \"),_c('PredefinedStatusesList',{on:{\"select-status\":_vm.selectPredefinedMessage}}),_vm._v(\" \"),_c('ClearAtSelect',{attrs:{\"clear-at\":_vm.clearAt},on:{\"select-clear-at\":_vm.setClearAt}}),_vm._v(\" \"),_c('div',{staticClass:\"status-buttons\"},[_c('NcButton',{attrs:{\"wide\":true,\"type\":\"tertiary\",\"native-type\":\"reset\",\"aria-label\":_vm.$t('user_status', 'Clear status message'),\"disabled\":_vm.isSavingStatus}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t('user_status', 'Clear status message'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"wide\":true,\"type\":\"primary\",\"native-type\":\"submit\",\"aria-label\":_vm.$t('user_status', 'Set status message'),\"disabled\":_vm.isSavingStatus}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t('user_status', 'Set status message'))+\"\\n\\t\\t\\t\\t\")])],1)],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.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 { translate as t } from '@nextcloud/l10n'\nimport moment from '@nextcloud/moment'\nimport { dateFactory } from '../services/dateService.js'\n\n/**\n * Formats a clearAt object to be human readable\n *\n * @param {object} clearAt The clearAt object\n * @return {string|null}\n */\nconst clearAtFilter = (clearAt) => {\n\tif (clearAt === null) {\n\t\treturn t('user_status', 'Don\\'t clear')\n\t}\n\n\tif (clearAt.type === 'end-of') {\n\t\tswitch (clearAt.time) {\n\t\tcase 'day':\n\t\t\treturn t('user_status', 'Today')\n\t\tcase 'week':\n\t\t\treturn t('user_status', 'This week')\n\n\t\tdefault:\n\t\t\treturn null\n\t\t}\n\t}\n\n\tif (clearAt.type === 'period') {\n\t\treturn moment.duration(clearAt.time * 1000).humanize()\n\t}\n\n\t// This is not an officially supported type\n\t// but only used internally to show the remaining time\n\t// in the Set Status Modal\n\tif (clearAt.type === '_time') {\n\t\tconst momentNow = moment(dateFactory())\n\t\tconst momentClearAt = moment(clearAt.time, 'X')\n\n\t\treturn moment.duration(momentNow.diff(momentClearAt)).humanize()\n\t}\n\n\treturn null\n}\n\nexport {\n\tclearAtFilter,\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredefinedStatus.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!./PredefinedStatus.vue?vue&type=script&lang=js\"","<!--\n - @copyright Copyright (c) 2020 Georg Ehrke <oc.list@georgehrke.com>\n - @author Georg Ehrke <oc.list@georgehrke.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<li class=\"predefined-status\">\n\t\t<input :id=\"id\"\n\t\t\tclass=\"hidden-visually predefined-status__input\"\n\t\t\ttype=\"radio\"\n\t\t\tname=\"predefined-status\"\n\t\t\t:checked=\"selected\"\n\t\t\t@change=\"select\">\n\t\t<label class=\"predefined-status__label\" :for=\"id\">\n\t\t\t<span aria-hidden=\"true\" class=\"predefined-status__label--icon\">\n\t\t\t\t{{ icon }}\n\t\t\t</span>\n\t\t\t<span class=\"predefined-status__label--message\">\n\t\t\t\t{{ message }}\n\t\t\t</span>\n\t\t\t<span class=\"predefined-status__label--clear-at\">\n\t\t\t\t{{ clearAt | clearAtFilter }}\n\t\t\t</span>\n\t\t</label>\n\t</li>\n</template>\n\n<script>\nimport { clearAtFilter } from '../filters/clearAtFilter.js'\n\nexport default {\n\tname: 'PredefinedStatus',\n\tfilters: {\n\t\tclearAtFilter,\n\t},\n\tprops: {\n\t\tmessageId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tclearAt: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tselected: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tid() {\n\t\t\treturn `user-status-predefined-status-${this.messageId}`\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Emits an event when the user clicks the row\n\t\t */\n\t\tselect() {\n\t\t\tthis.$emit('select')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.predefined-status {\n\t&__label {\n\t\tdisplay: flex;\n\t\tflex-wrap: nowrap;\n\t\tjustify-content: flex-start;\n\t\tflex-basis: 100%;\n\t\tborder-radius: var(--border-radius);\n\t\talign-items: center;\n\t\tmin-height: 44px;\n\n\t\t&--icon {\n\t\t\tflex-basis: 40px;\n\t\t\ttext-align: center;\n\t\t}\n\n\t\t&--message {\n\t\t\tfont-weight: bold;\n\t\t\tpadding: 0 6px;\n\t\t}\n\n\t\t&--clear-at {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t\t&::before {\n\t\t\t\tcontent: ' ';\n\t\t\t}\n\t\t}\n\t}\n\n\t&__input:checked + &__label,\n\t&__label:active {\n\t\toutline: 2px solid var(--color-main-text);\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background);\n\t\tborder-radius: var(--border-radius-large);\n\t}\n\n\t&__input:focus-visible + &__label {\n\t\toutline: 2px solid var(--color-primary-element) !important;\n\t\tborder-radius: var(--border-radius-large);\n\t}\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredefinedStatus.vue?vue&type=style&index=0&id=7b8161e9&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!./PredefinedStatus.vue?vue&type=style&index=0&id=7b8161e9&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PredefinedStatus.vue?vue&type=template&id=7b8161e9&scoped=true\"\nimport script from \"./PredefinedStatus.vue?vue&type=script&lang=js\"\nexport * from \"./PredefinedStatus.vue?vue&type=script&lang=js\"\nimport style0 from \"./PredefinedStatus.vue?vue&type=style&index=0&id=7b8161e9&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 \"7b8161e9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"predefined-status\"},[_c('input',{staticClass:\"hidden-visually predefined-status__input\",attrs:{\"id\":_vm.id,\"type\":\"radio\",\"name\":\"predefined-status\"},domProps:{\"checked\":_vm.selected},on:{\"change\":_vm.select}}),_vm._v(\" \"),_c('label',{staticClass:\"predefined-status__label\",attrs:{\"for\":_vm.id}},[_c('span',{staticClass:\"predefined-status__label--icon\",attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.icon)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"predefined-status__label--message\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.message)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"predefined-status__label--clear-at\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm._f(\"clearAtFilter\")(_vm.clearAt))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2020 Georg Ehrke <oc.list@georgehrke.com>\n - @author Georg Ehrke <oc.list@georgehrke.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\n<template>\n\t<ul v-if=\"statusesHaveLoaded\"\n\t\tclass=\"predefined-statuses-list\"\n\t\t:aria-label=\"t('user_status', 'Predefined statuses')\">\n\t\t<PredefinedStatus v-for=\"status in predefinedStatuses\"\n\t\t\t:key=\"status.id\"\n\t\t\t:message-id=\"status.id\"\n\t\t\t:icon=\"status.icon\"\n\t\t\t:message=\"status.message\"\n\t\t\t:clear-at=\"status.clearAt\"\n\t\t\t:selected=\"lastSelected === status.id\"\n\t\t\t@select=\"selectStatus(status)\" />\n\t</ul>\n\t<div v-else\n\t\tclass=\"predefined-statuses-list\">\n\t\t<div class=\"icon icon-loading-small\" />\n\t</div>\n</template>\n\n<script>\nimport PredefinedStatus from './PredefinedStatus.vue'\nimport { mapGetters, mapState } from 'vuex'\n\nexport default {\n\tname: 'PredefinedStatusesList',\n\tcomponents: {\n\t\tPredefinedStatus,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tlastSelected: null,\n\t\t}\n\t},\n\tcomputed: {\n\t\t...mapState({\n\t\t\tpredefinedStatuses: state => state.predefinedStatuses.predefinedStatuses,\n\t\t\tmessageId: state => state.userStatus.messageId,\n\t\t}),\n\t\t...mapGetters(['statusesHaveLoaded']),\n\t},\n\n\twatch: {\n\t\tmessageId: {\n\t\t immediate: true,\n\t\t handler() {\n\t\t\t this.lastSelected = this.messageId\n\t\t },\n\t },\n\t},\n\n\t/**\n\t * Loads all predefined statuses from the server\n\t * when this component is mounted\n\t */\n\tcreated() {\n\t\tthis.$store.dispatch('loadAllPredefinedStatuses')\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Emits an event when the user selects a status\n\t\t *\n\t\t * @param {object} status The selected status\n\t\t */\n\t\tselectStatus(status) {\n\t\t\tthis.lastSelected = status.id\n\t\t\tthis.$emit('select-status', status)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.predefined-statuses-list {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: 10px;\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PredefinedStatusesList.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!./PredefinedStatusesList.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!./PredefinedStatusesList.vue?vue&type=style&index=0&id=362acd76&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!./PredefinedStatusesList.vue?vue&type=style&index=0&id=362acd76&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PredefinedStatusesList.vue?vue&type=template&id=362acd76&scoped=true\"\nimport script from \"./PredefinedStatusesList.vue?vue&type=script&lang=js\"\nexport * from \"./PredefinedStatusesList.vue?vue&type=script&lang=js\"\nimport style0 from \"./PredefinedStatusesList.vue?vue&type=style&index=0&id=362acd76&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 \"362acd76\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.statusesHaveLoaded)?_c('ul',{staticClass:\"predefined-statuses-list\",attrs:{\"aria-label\":_vm.t('user_status', 'Predefined statuses')}},_vm._l((_vm.predefinedStatuses),function(status){return _c('PredefinedStatus',{key:status.id,attrs:{\"message-id\":status.id,\"icon\":status.icon,\"message\":status.message,\"clear-at\":status.clearAt,\"selected\":_vm.lastSelected === status.id},on:{\"select\":function($event){return _vm.selectStatus(status)}}})}),1):_c('div',{staticClass:\"predefined-statuses-list\"},[_c('div',{staticClass:\"icon icon-loading-small\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviousStatus.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!./PreviousStatus.vue?vue&type=script&lang=js\"","<!--\n - @copyright Copyright (c) 2020 Georg Ehrke <oc.list@georgehrke.com>\n - @author Georg Ehrke <oc.list@georgehrke.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=\"predefined-status backup-status\"\n\t\ttabindex=\"0\"\n\t\t@keyup.enter=\"select\"\n\t\t@keyup.space=\"select\"\n\t\t@click=\"select\">\n\t\t<span class=\"predefined-status__icon\">\n\t\t\t{{ icon }}\n\t\t</span>\n\t\t<span class=\"predefined-status__message\">\n\t\t\t{{ message }}\n\t\t</span>\n\t\t<span class=\"predefined-status__clear-at\">\n\t\t\t{{ $t('user_status', 'Previously set') }}\n\t\t</span>\n\n\t\t<div class=\"backup-status__reset-button\">\n\t\t\t<NcButton @click=\"select\">\n\t\t\t\t{{ $t('user_status', 'Reset status') }}\n\t\t\t</NcButton>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\n\nexport default {\n\tname: 'PreviousStatus',\n\n\tcomponents: {\n\t\tNcButton,\n\t},\n\n\tprops: {\n\t\ticon: {\n\t\t\ttype: [String, null],\n\t\t\trequired: true,\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Emits an event when the user clicks the row\n\t\t */\n\t\tselect() {\n\t\t\tthis.$emit('select')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.predefined-status {\n\tdisplay: flex;\n\tflex-wrap: nowrap;\n\tjustify-content: flex-start;\n\tflex-basis: 100%;\n\tborder-radius: var(--border-radius);\n\talign-items: center;\n\tmin-height: 44px;\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t}\n\n\t&:active{\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tflex-basis: 40px;\n\t\ttext-align: center;\n\t}\n\n\t&__message {\n\t\tfont-weight: bold;\n\t\tpadding: 0 6px;\n\t}\n\n\t&__clear-at {\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t&::before {\n\t\t\tcontent: ' ';\n\t\t}\n\t}\n}\n.backup-status {\n\t&__reset-button {\n\t\tjustify-content: flex-end;\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t}\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviousStatus.vue?vue&type=style&index=0&id=ba802d4c&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!./PreviousStatus.vue?vue&type=style&index=0&id=ba802d4c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./PreviousStatus.vue?vue&type=template&id=ba802d4c&scoped=true\"\nimport script from \"./PreviousStatus.vue?vue&type=script&lang=js\"\nexport * from \"./PreviousStatus.vue?vue&type=script&lang=js\"\nimport style0 from \"./PreviousStatus.vue?vue&type=style&index=0&id=ba802d4c&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 \"ba802d4c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"predefined-status backup-status\",attrs:{\"tabindex\":\"0\"},on:{\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.select.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _vm.select.apply(null, arguments)}],\"click\":_vm.select}},[_c('span',{staticClass:\"predefined-status__icon\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.icon)+\"\\n\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"predefined-status__message\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.message)+\"\\n\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"predefined-status__clear-at\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.$t('user_status', 'Previously set'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"backup-status__reset-button\"},[_c('NcButton',{on:{\"click\":_vm.select}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('user_status', 'Reset status'))+\"\\n\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"custom-input\",attrs:{\"role\":\"group\"}},[_c('NcEmojiPicker',{attrs:{\"container\":\".custom-input\"},on:{\"select\":_vm.setIcon}},[_c('NcButton',{attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('user_status', 'Emoji for your status message')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.visibleIcon)+\"\\n\\t\\t\\t\")]},proxy:true}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"custom-input__container\"},[_c('NcTextField',{ref:\"input\",attrs:{\"maxlength\":\"80\",\"disabled\":_vm.disabled,\"placeholder\":_vm.t('user_status', 'What is your status?'),\"value\":_vm.message,\"type\":\"text\",\"label\":_vm.t('user_status', 'What is your status?')},on:{\"input\":_vm.onChange}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2020 Georg Ehrke <oc.list@georgehrke.com>\n - @author Georg Ehrke <oc.list@georgehrke.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=\"custom-input\" role=\"group\">\n\t\t<NcEmojiPicker container=\".custom-input\" @select=\"setIcon\">\n\t\t\t<NcButton type=\"tertiary\"\n\t\t\t\t:aria-label=\"t('user_status', 'Emoji for your status message')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t{{ visibleIcon }}\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t</NcEmojiPicker>\n\t\t<div class=\"custom-input__container\">\n\t\t\t<NcTextField ref=\"input\"\n\t\t\t\tmaxlength=\"80\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:placeholder=\"t('user_status', 'What is your status?')\"\n\t\t\t\t:value=\"message\"\n\t\t\t\ttype=\"text\"\n\t\t\t\t:label=\"t('user_status', 'What is your status?')\"\n\t\t\t\t@input=\"onChange\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport NcEmojiPicker from '@nextcloud/vue/dist/Components/NcEmojiPicker.js'\nimport NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js'\n\nexport default {\n\tname: 'CustomMessageInput',\n\n\tcomponents: {\n\t\tNcTextField,\n\t\tNcButton,\n\t\tNcEmojiPicker,\n\t},\n\n\tprops: {\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '😀',\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t\tdefault: () => '',\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: [\n\t\t'change',\n\t\t'select-icon',\n\t],\n\n\tcomputed: {\n\t\t/**\n\t\t * Returns the user-set icon or a smiley in case no icon is set\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tvisibleIcon() {\n\t\t\treturn this.icon || '😀'\n\t\t},\n\t},\n\n\tmethods: {\n\t\tfocus() {\n\t\t\tthis.$refs.input.focus()\n\t\t},\n\n\t\t/**\n\t\t * Notifies the parent component about a changed input\n\t\t *\n\t\t * @param {Event} event The Change Event\n\t\t */\n\t\tonChange(event) {\n\t\t\tthis.$emit('change', event.target.value)\n\t\t},\n\n\t\tsetIcon(icon) {\n\t\t\tthis.$emit('select-icon', icon)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.custom-input {\n\tdisplay: flex;\n\talign-items: flex-end;\n\tgap: var(--default-grid-baseline);\n\twidth: 100%;\n\n\t&__container {\n\t\twidth: 100%;\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!./CustomMessageInput.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!./CustomMessageInput.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!./CustomMessageInput.vue?vue&type=style&index=0&id=a6e177f6&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!./CustomMessageInput.vue?vue&type=style&index=0&id=a6e177f6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CustomMessageInput.vue?vue&type=template&id=a6e177f6&scoped=true\"\nimport script from \"./CustomMessageInput.vue?vue&type=script&lang=js\"\nexport * from \"./CustomMessageInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./CustomMessageInput.vue?vue&type=style&index=0&id=a6e177f6&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 \"a6e177f6\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.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 { translate as t } from '@nextcloud/l10n'\n\n/**\n * Returns an array\n *\n * @return {object[]}\n */\nconst getAllClearAtOptions = () => {\n\treturn [{\n\t\tlabel: t('user_status', 'Don\\'t clear'),\n\t\tclearAt: null,\n\t}, {\n\t\tlabel: t('user_status', '30 minutes'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 1800,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '1 hour'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 3600,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', '4 hours'),\n\t\tclearAt: {\n\t\t\ttype: 'period',\n\t\t\ttime: 14400,\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'Today'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'day',\n\t\t},\n\t}, {\n\t\tlabel: t('user_status', 'This week'),\n\t\tclearAt: {\n\t\t\ttype: 'end-of',\n\t\t\ttime: 'week',\n\t\t},\n\t}]\n}\n\nexport {\n\tgetAllClearAtOptions,\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClearAtSelect.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!./ClearAtSelect.vue?vue&type=script&lang=js\"","<!--\n - @copyright Copyright (c) 2020 Georg Ehrke <oc.list@georgehrke.com>\n - @author Georg Ehrke <oc.list@georgehrke.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\n<template>\n\t<div class=\"clear-at-select\">\n\t\t<label class=\"clear-at-select__label\" for=\"clearStatus\">\n\t\t\t{{ $t('user_status', 'Clear status after') }}\n\t\t</label>\n\t\t<NcSelect input-id=\"clearStatus\"\n\t\t\tclass=\"clear-at-select__select\"\n\t\t\t:options=\"options\"\n\t\t\t:value=\"option\"\n\t\t\t:clearable=\"false\"\n\t\t\tplacement=\"top\"\n\t\t\t@option:selected=\"select\" />\n\t</div>\n</template>\n\n<script>\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'\nimport { getAllClearAtOptions } from '../services/clearAtOptionsService.js'\nimport { clearAtFilter } from '../filters/clearAtFilter.js'\n\nexport default {\n\tname: 'ClearAtSelect',\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\tprops: {\n\t\tclearAt: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\toptions: getAllClearAtOptions(),\n\t\t}\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * Returns an object of the currently selected option\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\toption() {\n\t\t\treturn {\n\t\t\t\tclearAt: this.clearAt,\n\t\t\t\tlabel: clearAtFilter(this.clearAt),\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Triggered when the user selects a new option.\n\t\t *\n\t\t * @param {object=} option The new selected option\n\t\t */\n\t\tselect(option) {\n\t\t\tif (!option) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.$emit('select-clear-at', option.clearAt)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.clear-at-select {\n\tdisplay: flex;\n\tmargin-bottom: 10px;\n\talign-items: center;\n\n\t&__label {\n\t\tmargin-right: 12px;\n\t}\n\n\t&__select {\n\t\tflex-grow: 1;\n\t\tmin-width: 215px;\n\t}\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClearAtSelect.vue?vue&type=style&index=0&id=23ffd377&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!./ClearAtSelect.vue?vue&type=style&index=0&id=23ffd377&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ClearAtSelect.vue?vue&type=template&id=23ffd377&scoped=true\"\nimport script from \"./ClearAtSelect.vue?vue&type=script&lang=js\"\nexport * from \"./ClearAtSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./ClearAtSelect.vue?vue&type=style&index=0&id=23ffd377&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 \"23ffd377\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"clear-at-select\"},[_c('label',{staticClass:\"clear-at-select__label\",attrs:{\"for\":\"clearStatus\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.$t('user_status', 'Clear status after'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcSelect',{staticClass:\"clear-at-select__select\",attrs:{\"input-id\":\"clearStatus\",\"options\":_vm.options,\"value\":_vm.option,\"clearable\":false,\"placement\":\"top\"},on:{\"option:selected\":_vm.select}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnlineStatusSelect.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!./OnlineStatusSelect.vue?vue&type=script&lang=js\"","<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.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=\"user-status-online-select\">\n\t\t<input :id=\"id\"\n\t\t\t:checked=\"checked\"\n\t\t\tclass=\"hidden-visually user-status-online-select__input\"\n\t\t\ttype=\"radio\"\n\t\t\tname=\"user-status-online\"\n\t\t\t@change=\"onChange\">\n\t\t<label :for=\"id\" class=\"user-status-online-select__label\">\n\t\t\t{{ label }}\n\t\t\t<NcUserStatusIcon :status=\"type\"\n\t\t\t\taria-hidden=\"true\" />\n\t\t\t<em class=\"user-status-online-select__subline\">{{ subline }}</em>\n\t\t</label>\n\t</div>\n</template>\n\n<script>\nimport NcUserStatusIcon from '@nextcloud/vue/dist/Components/NcUserStatusIcon.js'\n\nexport default {\n\tname: 'OnlineStatusSelect',\n\n\tcomponents: {\n\t\tNcUserStatusIcon,\n\t},\n\n\tprops: {\n\t\tchecked: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tsubline: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tid() {\n\t\t\treturn `user-status-online-status-${this.type}`\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonChange() {\n\t\t\tthis.$emit('select', this.type)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use 'sass:math';\n$icon-size: 24px;\n$label-padding: 8px;\n\n.user-status-online-select {\n\t&__label {\n\t\tposition: relative;\n\t\tdisplay: block;\n\t\tmargin: $label-padding;\n\t\tpadding: $label-padding;\n\t\tpadding-left: $icon-size + $label-padding * 2;\n\t\tborder: 2px solid var(--color-main-background);\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-background-hover);\n\t\tbackground-position: $label-padding center;\n\t\tbackground-size: $icon-size;\n\n\t\tspan,\n\t\t& {\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\tspan {\n\t\t\tposition: absolute;\n\t\t\ttop: calc(50% - 10px);\n\t\t\tleft: 10px;\n\t\t\tdisplay: block;\n\t\t\twidth: $icon-size;\n\t\t\theight: $icon-size;\n\t\t}\n\t}\n\n\t&__input:checked + &__label {\n\t\toutline: 2px solid var(--color-main-text);\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background);\n\t}\n\n\t&__input:focus-visible + &__label {\n\t\toutline: 2px solid var(--color-primary-element) !important;\n\t}\n\n\t&__subline {\n\t\tdisplay: block;\n\t\tcolor: var(--color-text-lighter);\n\t}\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnlineStatusSelect.vue?vue&type=style&index=0&id=3f6d7058&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!./OnlineStatusSelect.vue?vue&type=style&index=0&id=3f6d7058&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./OnlineStatusSelect.vue?vue&type=template&id=3f6d7058&scoped=true\"\nimport script from \"./OnlineStatusSelect.vue?vue&type=script&lang=js\"\nexport * from \"./OnlineStatusSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./OnlineStatusSelect.vue?vue&type=style&index=0&id=3f6d7058&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 \"3f6d7058\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-status-online-select\"},[_c('input',{staticClass:\"hidden-visually user-status-online-select__input\",attrs:{\"id\":_vm.id,\"type\":\"radio\",\"name\":\"user-status-online\"},domProps:{\"checked\":_vm.checked},on:{\"change\":_vm.onChange}}),_vm._v(\" \"),_c('label',{staticClass:\"user-status-online-select__label\",attrs:{\"for\":_vm.id}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.label)+\"\\n\\t\\t\"),_c('NcUserStatusIcon',{attrs:{\"status\":_vm.type,\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('em',{staticClass:\"user-status-online-select__subline\"},[_vm._v(_vm._s(_vm.subline))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2020 Georg Ehrke <oc.list@georgehrke.com>\n - @author Georg Ehrke <oc.list@georgehrke.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\n<template>\n\t<NcModal size=\"normal\"\n\t\t:name=\"$t('user_status', 'Set status')\"\n\t\t:set-return-focus=\"setReturnFocus\"\n\t\t@close=\"closeModal\">\n\t\t<div class=\"set-status-modal\">\n\t\t\t<!-- Status selector -->\n\t\t\t<div class=\"set-status-modal__header\">\n\t\t\t\t<h2>{{ $t('user_status', 'Online status') }}</h2>\n\t\t\t</div>\n\t\t\t<div class=\"set-status-modal__online-status\"\n\t\t\t\trole=\"radiogroup\"\n\t\t\t\t:aria-label=\"$t('user_status', 'Online status')\">\n\t\t\t\t<OnlineStatusSelect v-for=\"status in statuses\"\n\t\t\t\t\t:key=\"status.type\"\n\t\t\t\t\tv-bind=\"status\"\n\t\t\t\t\t:checked=\"status.type === statusType\"\n\t\t\t\t\t@select=\"changeStatus\" />\n\t\t\t</div>\n\n\t\t\t<!-- Status message form -->\n\t\t\t<form @submit.prevent=\"saveStatus\" @reset=\"clearStatus\">\n\t\t\t\t<div class=\"set-status-modal__header\">\n\t\t\t\t\t<h2>{{ $t('user_status', 'Status message') }}</h2>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"set-status-modal__custom-input\">\n\t\t\t\t\t<CustomMessageInput ref=\"customMessageInput\"\n\t\t\t\t\t\t:icon=\"icon\"\n\t\t\t\t\t\t:message=\"editedMessage\"\n\t\t\t\t\t\t@change=\"setMessage\"\n\t\t\t\t\t\t@select-icon=\"setIcon\" />\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"hasBackupStatus\"\n\t\t\t\t\tclass=\"set-status-modal__automation-hint\">\n\t\t\t\t\t{{ $t('user_status', 'Your status was set automatically') }}\n\t\t\t\t</div>\n\t\t\t\t<PreviousStatus v-if=\"hasBackupStatus\"\n\t\t\t\t\t:icon=\"backupIcon\"\n\t\t\t\t\t:message=\"backupMessage\"\n\t\t\t\t\t@select=\"revertBackupFromServer\" />\n\t\t\t\t<PredefinedStatusesList @select-status=\"selectPredefinedMessage\" />\n\t\t\t\t<ClearAtSelect :clear-at=\"clearAt\"\n\t\t\t\t\t@select-clear-at=\"setClearAt\" />\n\t\t\t\t<div class=\"status-buttons\">\n\t\t\t\t\t<NcButton :wide=\"true\"\n\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\tnative-type=\"reset\"\n\t\t\t\t\t\t:aria-label=\"$t('user_status', 'Clear status message')\"\n\t\t\t\t\t\t:disabled=\"isSavingStatus\">\n\t\t\t\t\t\t{{ $t('user_status', 'Clear status message') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton :wide=\"true\"\n\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\tnative-type=\"submit\"\n\t\t\t\t\t\t:aria-label=\"$t('user_status', 'Set status message')\"\n\t\t\t\t\t\t:disabled=\"isSavingStatus\">\n\t\t\t\t\t\t{{ $t('user_status', 'Set status message') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</div>\n\t</NcModal>\n</template>\n\n<script>\nimport { showError } from '@nextcloud/dialogs'\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport { getAllStatusOptions } from '../services/statusOptionsService.js'\nimport OnlineStatusMixin from '../mixins/OnlineStatusMixin.js'\nimport PredefinedStatusesList from './PredefinedStatusesList.vue'\nimport PreviousStatus from './PreviousStatus.vue'\nimport CustomMessageInput from './CustomMessageInput.vue'\nimport ClearAtSelect from './ClearAtSelect.vue'\nimport OnlineStatusSelect from './OnlineStatusSelect.vue'\n\nexport default {\n\tname: 'SetStatusModal',\n\n\tcomponents: {\n\t\tClearAtSelect,\n\t\tCustomMessageInput,\n\t\tNcModal,\n\t\tOnlineStatusSelect,\n\t\tPredefinedStatusesList,\n\t\tPreviousStatus,\n\t\tNcButton,\n\t},\n\tmixins: [OnlineStatusMixin],\n\n\tprops: {\n\t\t/**\n\t\t * Whether the component should be rendered as a Dashboard Status or a User Menu Entries\n\t\t * true = Dashboard Status\n\t\t * false = User Menu Entries\n\t\t */\n\t\tinline: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tclearAt: null,\n\t\t\teditedMessage: '',\n\t\t\tisSavingStatus: false,\n\t\t\tstatuses: getAllStatusOptions(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tmessageId() {\n\t\t\treturn this.$store.state.userStatus.messageId\n\t\t},\n\t\ticon() {\n\t\t\treturn this.$store.state.userStatus.icon\n\t\t},\n\t\tmessage() {\n\t\t\treturn this.$store.state.userStatus.message || ''\n\t\t},\n\t\thasBackupStatus() {\n\t\t\treturn this.messageId && (this.backupIcon || this.backupMessage)\n\t\t},\n\t\tbackupIcon() {\n\t\t\treturn this.$store.state.userBackupStatus.icon || ''\n\t\t},\n\t\tbackupMessage() {\n\t\t\treturn this.$store.state.userBackupStatus.message || ''\n\t\t},\n\n\t\tresetButtonText() {\n\t\t\tif (this.backupIcon && this.backupMessage) {\n\t\t\t\treturn this.$t('user_status', 'Reset status to \"{icon} {message}\"', {\n\t\t\t\t\ticon: this.backupIcon,\n\t\t\t\t\tmessage: this.backupMessage,\n\t\t\t\t})\n\t\t\t} else if (this.backupMessage) {\n\t\t\t\treturn this.$t('user_status', 'Reset status to \"{message}\"', {\n\t\t\t\t\tmessage: this.backupMessage,\n\t\t\t\t})\n\t\t\t} else if (this.backupIcon) {\n\t\t\t\treturn this.$t('user_status', 'Reset status to \"{icon}\"', {\n\t\t\t\t\ticon: this.backupIcon,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\treturn this.$t('user_status', 'Reset status')\n\t\t},\n\n\t\tsetReturnFocus() {\n\t\t\tif (this.inline) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn document.querySelector('[aria-controls=\"header-menu-user-menu\"]') ?? undefined\n\t\t},\n\t},\n\n\twatch: {\n\t\tmessage: {\n\t\t\timmediate: true,\n\t\t\thandler(newValue) {\n\t\t\t\tthis.editedMessage = newValue\n\t\t\t},\n\t\t},\n\t},\n\n\t/**\n\t * Loads the current status when a user opens dialog\n\t */\n\tmounted() {\n\t\tthis.$store.dispatch('fetchBackupFromServer')\n\n\t\tif (this.$store.state.userStatus.clearAt !== null) {\n\t\t\tthis.clearAt = {\n\t\t\t\ttype: '_time',\n\t\t\t\ttime: this.$store.state.userStatus.clearAt,\n\t\t\t}\n\t\t}\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Closes the Set Status modal\n\t\t */\n\t\tcloseModal() {\n\t\t\tthis.$emit('close')\n\t\t},\n\t\t/**\n\t\t * Sets a new icon\n\t\t *\n\t\t * @param {string} icon The new icon\n\t\t */\n\t\tsetIcon(icon) {\n\t\t\tthis.$store.dispatch('setCustomMessage', {\n\t\t\t\tmessage: this.message,\n\t\t\t\ticon,\n\t\t\t\tclearAt: this.clearAt,\n\t\t\t})\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs.customMessageInput.focus()\n\t\t\t})\n\t\t},\n\t\t/**\n\t\t * Sets a new message\n\t\t *\n\t\t * @param {string} message The new message\n\t\t */\n\t\tsetMessage(message) {\n\t\t\tthis.editedMessage = message\n\t\t},\n\t\t/**\n\t\t * Sets a new clearAt value\n\t\t *\n\t\t * @param {object} clearAt The new clearAt object\n\t\t */\n\t\tsetClearAt(clearAt) {\n\t\t\tthis.clearAt = clearAt\n\t\t},\n\t\t/**\n\t\t * Sets new icon/message/clearAt based on a predefined message\n\t\t *\n\t\t * @param {object} status The predefined status object\n\t\t */\n\t\tselectPredefinedMessage(status) {\n\t\t\tthis.clearAt = status.clearAt\n\t\t\tthis.$store.dispatch('setPredefinedMessage', {\n\t\t\t\tmessageId: status.id,\n\t\t\t\tclearAt: status.clearAt,\n\t\t\t})\n\t\t},\n\t\t/**\n\t\t * Saves the status and closes the\n\t\t *\n\t\t * @return {Promise<void>}\n\t\t */\n\t\tasync saveStatus() {\n\t\t\tif (this.isSavingStatus) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tthis.isSavingStatus = true\n\n\t\t\t\tawait this.$store.dispatch('setCustomMessage', {\n\t\t\t\t\tmessage: this.editedMessage,\n\t\t\t\t\ticon: this.icon,\n\t\t\t\t\tclearAt: this.clearAt,\n\t\t\t\t})\n\t\t\t} catch (err) {\n\t\t\t\tshowError(this.$t('user_status', 'There was an error saving the status'))\n\t\t\t\tconsole.debug(err)\n\t\t\t\tthis.isSavingStatus = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.isSavingStatus = false\n\t\t\tthis.closeModal()\n\t\t},\n\t\t/**\n\t\t *\n\t\t * @return {Promise<void>}\n\t\t */\n\t\tasync clearStatus() {\n\t\t\ttry {\n\t\t\t\tthis.isSavingStatus = true\n\n\t\t\t\tawait this.$store.dispatch('clearMessage')\n\t\t\t} catch (err) {\n\t\t\t\tshowError(this.$t('user_status', 'There was an error clearing the status'))\n\t\t\t\tconsole.debug(err)\n\t\t\t\tthis.isSavingStatus = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.isSavingStatus = false\n\t\t\tthis.closeModal()\n\t\t},\n\t\t/**\n\t\t *\n\t\t * @return {Promise<void>}\n\t\t */\n\t\tasync revertBackupFromServer() {\n\t\t\ttry {\n\t\t\t\tthis.isSavingStatus = true\n\n\t\t\t\tawait this.$store.dispatch('revertBackupFromServer', {\n\t\t\t\t\tmessageId: this.messageId,\n\t\t\t\t})\n\t\t\t} catch (err) {\n\t\t\t\tshowError(this.$t('user_status', 'There was an error reverting the status'))\n\t\t\t\tconsole.debug(err)\n\t\t\t\tthis.isSavingStatus = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.isSavingStatus = false\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.set-status-modal {\n\tpadding: 8px 20px 20px 20px;\n\n\t&__header {\n\t\ttext-align: center;\n\t\tfont-weight: bold;\n\t\tmargin: 15px 0;\n\t}\n\n\t&__online-status {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: 1fr 1fr;\n\t}\n\n\t&__custom-input {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tmargin-bottom: 10px;\n\t}\n\n\t&__automation-hint {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tmargin-bottom: 10px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t.status-buttons {\n\t\tdisplay: flex;\n\t\tpadding: 3px;\n\t\tpadding-left:0;\n\t\tgap: 3px;\n\t}\n}\n\n@media only screen and (max-width: 500px) {\n\t.set-status-modal__online-status {\n\t\tgrid-template-columns: none !important;\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!./SetStatusModal.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!./SetStatusModal.vue?vue&type=script&lang=js\"","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n * @author Jan C. Borchardt <hey@jancborchardt.net>\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 { translate as t } from '@nextcloud/l10n'\n\n/**\n * Returns a list of all user-definable statuses\n *\n * @return {object[]}\n */\nconst getAllStatusOptions = () => {\n\treturn [{\n\t\ttype: 'online',\n\t\tlabel: t('user_status', 'Online'),\n\t}, {\n\t\ttype: 'away',\n\t\tlabel: t('user_status', 'Away'),\n\t}, {\n\t\ttype: 'dnd',\n\t\tlabel: t('user_status', 'Do not disturb'),\n\t\tsubline: t('user_status', 'Mute all notifications'),\n\t}, {\n\t\ttype: 'invisible',\n\t\tlabel: t('user_status', 'Invisible'),\n\t\tsubline: t('user_status', 'Appear offline'),\n\t}]\n}\n\nexport {\n\tgetAllStatusOptions,\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetStatusModal.vue?vue&type=style&index=0&id=61d76afa&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!./SetStatusModal.vue?vue&type=style&index=0&id=61d76afa&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SetStatusModal.vue?vue&type=template&id=61d76afa&scoped=true\"\nimport script from \"./SetStatusModal.vue?vue&type=script&lang=js\"\nexport * from \"./SetStatusModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./SetStatusModal.vue?vue&type=style&index=0&id=61d76afa&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 \"61d76afa\",\n null\n \n)\n\nexport default component.exports"],"names":["___CSS_LOADER_EXPORT___","push","module","id","clearAtFilter","clearAt","t","type","time","moment","duration","humanize","momentNow","dateFactory","momentClearAt","diff","name","filters","props","messageId","String","required","icon","message","Object","default","selected","Boolean","computed","concat","methods","select","$emit","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","attrs","domProps","on","_v","_s","_f","components","PredefinedStatus","data","lastSelected","mapState","predefinedStatuses","state","userStatus","mapGetters","watch","immediate","handler","created","$store","dispatch","selectStatus","status","statusesHaveLoaded","_l","key","$event","NcButton","indexOf","_k","keyCode","apply","arguments","$t","NcTextField","NcEmojiPicker","disabled","emits","visibleIcon","focus","$refs","input","onChange","event","target","value","setIcon","scopedSlots","_u","fn","proxy","ref","NcSelect","label","option","NcUserStatusIcon","checked","subline","ClearAtSelect","CustomMessageInput","NcModal","OnlineStatusSelect","PredefinedStatusesList","PreviousStatus","mixins","OnlineStatusMixin","inline","editedMessage","isSavingStatus","statuses","hasBackupStatus","backupIcon","backupMessage","userBackupStatus","resetButtonText","setReturnFocus","_document$querySelect","document","querySelector","undefined","newValue","mounted","closeModal","$nextTick","customMessageInput","setMessage","setClearAt","selectPredefinedMessage","saveStatus","err","showError","console","debug","clearStatus","revertBackupFromServer","_b","statusType","changeStatus","preventDefault","_e"],"sourceRoot":""}