user-status-modal-5133.js.map 94 KB

1
  1. {"version":3,"file":"user-status-modal-5133.js?v=2e357b2c0b69528a4d6d","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,+ECJIH,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,0DCPA,iFCgCA,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,eCgDA,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,oBAAA,KACAC,gBAAA,EACAC,SElGQ,CAAC,CACP5G,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,sBFyF5BsB,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,EACA6F,eAAAA,GACA,YAAAjG,YAAA,KAAAkG,YAAA,KAAAC,cACA,EACAD,UAAAA,GACA,YAAArD,OAAAP,MAAA8D,iBAAAjG,MAAA,EACA,EACAgG,aAAAA,GACA,YAAAtD,OAAAP,MAAA8D,iBAAAhG,SAAA,EACA,EAEAiG,eAAAA,GACA,YAAAH,YAAA,KAAAC,cACA,KAAAxC,GAAA,oDACAxD,KAAA,KAAA+F,WACA9F,QAAA,KAAA+F,gBAEA,KAAAA,cACA,KAAAxC,GAAA,6CACAvD,QAAA,KAAA+F,gBAEA,KAAAD,WACA,KAAAvC,GAAA,0CACAxD,KAAA,KAAA+F,aAIA,KAAAvC,GAAA,6BACA,EAEA2C,cAAAA,GAAA,IAAAC,EACA,SAAAX,OAGA,eAAAW,EAAAC,SAAAC,cAAA,sDAAAF,EAAAA,OAAAG,CACA,GAGAjE,MAAA,CACArC,QAAA,CACAsC,WAAA,EACAC,OAAAA,CAAAgE,GACA,KAAAd,cAAAc,CACA,IAOAC,OAAAA,GACA,KAAA/D,OAAAC,SAAA,yBAEA,KAAAgD,oBAAA,KAAAjD,OAAAP,MAAAC,WAAAvC,UACA,YAAA6C,OAAAP,MAAAC,WAAArD,UACA,KAAAA,QAAA,CACAE,KAAA,QACAC,KAAA,KAAAwD,OAAAP,MAAAC,WAAArD,SAGA,EACAyB,QAAA,CAIAkG,UAAAA,GACA,KAAAhG,MAAA,QACA,EAMA2D,OAAAA,CAAArE,GACA,KAAA2F,oBAAA,KACA,KAAAjD,OAAAC,SAAA,oBACA1C,QAAA,KAAAA,QACAD,OACAjB,QAAA,KAAAA,UAEA,KAAA4H,WAAA,KACA,KAAA5C,MAAA6C,mBAAA9C,OAAA,GAEA,EAMA+C,UAAAA,CAAA5G,GACA,KAAA0F,oBAAA,KACA,KAAAD,cAAAzF,CACA,EAMA6G,UAAAA,CAAA/H,GACA,KAAAA,QAAAA,CACA,EAMAgI,uBAAAA,CAAAlE,GACA,KAAA8C,oBAAA9C,EAAAhE,GACA,KAAAE,QAAA8D,EAAA9D,QACA,KAAA2D,OAAAC,SAAA,wBACA9C,UAAAgD,EAAAhE,GACAE,QAAA8D,EAAA9D,SAEA,EAMA,gBAAAiI,GACA,SAAApB,eAAA,CAIA,IACA,KAAAA,gBAAA,EAEA,YAAAD,0BACA,KAAAjD,OAAAC,SAAA,oBACA1C,QAAA,KAAAyF,cACA1F,KAAA,KAAAA,KACAjB,QAAA,KAAAA,UAGA,KAAA2D,OAAAC,SAAA,wBACA9C,UAAA,KAAA8F,oBACA5G,QAAA,KAAAA,SAGA,OAAAkI,GAIA,OAHAC,EAAAA,EAAAA,IAAA,KAAA1D,GAAA,uDACA2D,EAAAC,MAAAH,QACA,KAAArB,gBAAA,EAEA,CAEA,KAAAA,gBAAA,EACA,KAAAc,YAzBA,CA0BA,EAKA,iBAAAW,GACA,IACA,KAAAzB,gBAAA,QAEA,KAAAlD,OAAAC,SAAA,eACA,OAAAsE,GAIA,OAHAC,EAAAA,EAAAA,IAAA,KAAA1D,GAAA,yDACA2D,EAAAC,MAAAH,QACA,KAAArB,gBAAA,EAEA,CAEA,KAAAA,gBAAA,EACA,KAAAD,oBAAA,KACA,KAAAe,YACA,EAKA,4BAAAY,GAAA,IAAAC,EACA,IACA,KAAA3B,gBAAA,QAEA,KAAAlD,OAAAC,SAAA,0BACA9C,UAAA,KAAAA,WAEA,OAAAoH,GAIA,OAHAC,EAAAA,EAAAA,IAAA,KAAA1D,GAAA,0DACA2D,EAAAC,MAAAH,QACA,KAAArB,gBAAA,EAEA,CAEA,KAAAA,gBAAA,EACA,KAAAD,oBAAA,QAAA4B,EAAA,KAAA7E,OAAAP,MAAAC,kBAAA,IAAAmF,OAAA,EAAAA,EAAA1H,SACA,mBGhUI,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,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,EAAIiF,gBAAgB1E,GAAG,CAAC,MAAQP,EAAIwF,aAAa,CAACtF,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,EAAI2E,UAAU,SAAShD,GAAQ,OAAOzB,EAAG,qBAAqBF,EAAIsG,GAAG,CAACxE,IAAIH,EAAO5D,KAAKsC,MAAM,CAAC,QAAUsB,EAAO5D,OAASiC,EAAIuG,YAAYhG,GAAG,CAAC,OAASP,EAAIwG,eAAe,qBAAqB7E,GAAO,GAAO,IAAG,GAAG3B,EAAIQ,GAAG,KAAKN,EAAG,OAAO,CAACK,GAAG,CAAC,OAAS,SAASwB,GAAgC,OAAxBA,EAAO0E,iBAAwBzG,EAAI8F,WAAW1D,MAAM,KAAMC,UAAU,EAAE,MAAQrC,EAAImG,cAAc,CAACjG,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,EAAI2F,WAAW,cAAc3F,EAAImD,YAAY,GAAGnD,EAAIQ,GAAG,KAAMR,EAAI4E,gBAAiB1E,EAAG,MAAM,CAACE,YAAY,qCAAqC,CAACJ,EAAIQ,GAAG,aAAaR,EAAIS,GAAGT,EAAIsC,GAAG,cAAe,sCAAsC,cAActC,EAAI0G,KAAK1G,EAAIQ,GAAG,KAAMR,EAAI4E,gBAAiB1E,EAAG,iBAAiB,CAACG,MAAM,CAAC,KAAOL,EAAI6E,WAAW,QAAU7E,EAAI8E,eAAevE,GAAG,CAAC,OAASP,EAAIoG,0BAA0BpG,EAAI0G,KAAK1G,EAAIQ,GAAG,KAAKN,EAAG,yBAAyB,CAACK,GAAG,CAAC,gBAAgBP,EAAI6F,2BAA2B7F,EAAIQ,GAAG,KAAKN,EAAG,gBAAgB,CAACG,MAAM,CAAC,WAAWL,EAAInC,SAAS0C,GAAG,CAAC,kBAAkBP,EAAI4F,cAAc5F,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,EAAI0E,iBAAiB,CAAC1E,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,EAAI0E,iBAAiB,CAAC1E,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=653c7093&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?0d49","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-653c7093]{padding:8px 20px 20px 20px}.set-status-modal__header[data-v-653c7093]{text-align:center;font-weight:bold;margin:15px 0}.set-status-modal__online-status[data-v-653c7093]{display:grid;grid-template-columns:1fr 1fr}.set-status-modal__custom-input[data-v-653c7093]{display:flex;width:100%;margin-bottom:10px}.set-status-modal__automation-hint[data-v-653c7093]{display:flex;width:100%;margin-bottom:10px;color:var(--color-text-maxcontrast)}.set-status-modal .status-buttons[data-v-653c7093]{display:flex;padding:3px;padding-left:0;gap:3px}@media only screen and (max-width: 500px){.set-status-modal__online-status[data-v-653c7093]{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\tpredefinedMessageId: null,\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\tthis.predefinedMessageId = this.$store.state.userStatus.messageId\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.predefinedMessageId = null\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.predefinedMessageId = null\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.predefinedMessageId = status.id\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\tif (this.predefinedMessageId === null) {\n\t\t\t\t\tawait this.$store.dispatch('setCustomMessage', {\n\t\t\t\t\t\tmessage: this.editedMessage,\n\t\t\t\t\t\ticon: this.icon,\n\t\t\t\t\t\tclearAt: this.clearAt,\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tthis.$store.dispatch('setPredefinedMessage', {\n\t\t\t\t\t\tmessageId: this.predefinedMessageId,\n\t\t\t\t\t\tclearAt: this.clearAt,\n\t\t\t\t\t})\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.predefinedMessageId = null\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\tthis.predefinedMessageId = this.$store.state.userStatus?.messageId\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=653c7093&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=653c7093&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=653c7093&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=653c7093&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 \"653c7093\",\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","predefinedMessageId","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","_this$$store$state$us","_b","statusType","changeStatus","preventDefault","_e"],"sourceRoot":""}