diff --git a/dist/4743-4743.js b/dist/4743-4743.js index 4198dafd062..641f670844a 100644 --- a/dist/4743-4743.js +++ b/dist/4743-4743.js @@ -1,2 +1,2 @@ -(globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[]).push([[4743],{10396:(e,n,i)=>{"use strict";i.d(n,{A:()=>l});var o=i(85168),s=i(10810),a=i(96689),r=i(80486),c=i(10767),m=i(70395),d=i(36564);const l={props:{id:{type:Number,default:null},message:{type:String,default:""},resourceId:{type:[String,Number],required:!0},resourceType:{type:String,default:"files"}},data:()=>({deleted:!1,editing:!1,loading:!1}),computed:{...(0,s.n2)(d.h)},methods:{onEdit(){this.editing=!0},onEditCancel(){this.editing=!1,this.updateLocalMessage(this.message)},async onEditComment(e){this.loading=!0;try{await(0,c.A)(this.resourceType,this.resourceId,this.id,e),a.A.debug("Comment edited",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id,message:e}),this.$emit("update:message",e),this.editing=!1}catch(e){(0,o.Qg)(t("comments","An error occurred while trying to edit the comment")),a.A.error("An error occurred while trying to edit the comment",{error:e})}finally{this.loading=!1}},onDeleteWithUndo(){this.$emit("delete"),this.deleted=!0,this.deletedCommentLimboStore.addId(this.id);const e=setTimeout(this.onDelete,o.Br);(0,o._h)(t("comments","Comment deleted"),()=>{clearTimeout(e),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)})},async onDelete(){try{await(0,r.A)(this.resourceType,this.resourceId,this.id),a.A.debug("Comment deleted",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id}),this.$emit("delete",this.id)}catch(e){(0,o.Qg)(t("comments","An error occurred while trying to delete the comment")),a.A.error("An error occurred while trying to delete the comment",{error:e}),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)}},async onNewComment(e){this.loading=!0;try{const t=await(0,m.A)(this.resourceType,this.resourceId,e);a.A.debug("New comment posted",{resourceType:this.resourceType,resourceId:this.resourceId,newComment:t}),this.$emit("new",t),this.$emit("update:message",""),this.localMessage=""}catch(e){(0,o.Qg)(t("comments","An error occurred while trying to create the comment")),a.A.error("An error occurred while trying to create the comment",{error:e})}finally{this.loading=!1}}}}},10767:(t,e,n)=>{"use strict";n.d(e,{A:()=>o});var i=n(35550);async function o(t,e,n,o){const s=["",t,e,n].join("/");return await i.A.customRequest(s,{method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${o}\n\t\t\t\t\n\t\t\t\n\t\t\t`})}},15340:()=>{},25547:(t,e,n)=>{"use strict";n.d(e,{X:()=>i,Y:()=>o});var i=function(){var t=this,e=t._self._c;return e(t.tag,{directives:[{name:"show",rawName:"v-show",value:!t.deleted&&!t.isLimbo,expression:"!deleted && !isLimbo"}],tag:"component",staticClass:"comment",class:{"comment--loading":t.loading}},[e("div",{staticClass:"comment__side"},[e("NcAvatar",{staticClass:"comment__avatar",attrs:{"display-name":t.actorDisplayName,user:t.actorId,size:32}})],1),t._v(" "),e("div",{staticClass:"comment__body"},[e("div",{staticClass:"comment__header"},[e("span",{staticClass:"comment__author"},[t._v(t._s(t.actorDisplayName))]),t._v(" "),t.isOwnComment&&t.id&&!t.loading?e("NcActions",{staticClass:"comment__actions"},[t.editing?e("NcActionButton",{on:{click:t.onEditCancel},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconClose",{attrs:{size:20}})]},proxy:!0}],null,!1,2888946197)},[t._v("\n\t\t\t\t\t"+t._s(t.t("comments","Cancel edit"))+"\n\t\t\t\t")]):[e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onEdit},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconPencilOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,3345211262)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Edit comment"))+"\n\t\t\t\t\t")]),t._v(" "),e("NcActionSeparator"),t._v(" "),e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onDeleteWithUndo},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconTrashCanOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,1034796883)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Delete comment"))+"\n\t\t\t\t\t")])]],2):t._e(),t._v(" "),t.id&&t.loading?e("div",{staticClass:"comment_loading icon-loading-small"}):t.creationDateTime?e("NcDateTime",{staticClass:"comment__timestamp",attrs:{timestamp:t.timestamp,"ignore-seconds":!0}}):t._e()],1),t._v(" "),t.editor||t.editing?e("form",{staticClass:"comment__editor",on:{submit:function(t){t.preventDefault()}}},[e("div",{staticClass:"comment__editor-group"},[e("NcRichContenteditable",{ref:"editor",attrs:{"auto-complete":t.autoComplete,contenteditable:!t.loading,label:t.editor?t.t("comments","New comment"):t.t("comments","Edit comment"),placeholder:t.t("comments","Write a comment …"),"model-value":t.localMessage,"user-data":t.userData,"aria-describedby":"tab-comments__editor-description"},on:{"update:value":t.updateLocalMessage,submit:t.onSubmit}}),t._v(" "),e("div",{staticClass:"comment__submit"},[e("NcButton",{attrs:{variant:"tertiary-no-background",type:"submit","aria-label":t.t("comments","Post comment"),disabled:t.isEmptyMessage},on:{click:t.onSubmit},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon"):e("IconArrowRight",{attrs:{size:20}})]},proxy:!0}],null,!1,758946661)})],1)],1),t._v(" "),e("div",{staticClass:"comment__editor-description",attrs:{id:"tab-comments__editor-description"}},[t._v("\n\t\t\t\t"+t._s(t.t("comments","@ for mentions, : for emoji, / for smart picker"))+"\n\t\t\t")])]):e("NcRichText",{staticClass:"comment__message",class:{"comment__message--expanded":t.expanded},attrs:{text:t.richContent.message,arguments:t.richContent.mentions},nativeOn:{click:function(e){return t.onExpand.apply(null,arguments)}}})],1)])},o=[]},29369:(t,e,n)=>{"use strict";n.d(e,{A:()=>y});var i=n(21777),o=n(53334),s=n(10810),a=n(57505),r=n(24764),c=n(15502),m=n(41944),d=n(74095),l=n(4604),A=n(88289),p=n(77764),u=n(33691),h=n(66001),C=n(16502),g=n(37793),_=n(10396),b=n(36564);const y={name:"Comment",components:{IconArrowRight:u.A,IconClose:h.A,IconTrashCanOutline:g.A,IconPencilOutline:C.A,NcActionButton:a.A,NcActions:r.A,NcActionSeparator:c.A,NcAvatar:m.A,NcButton:d.A,NcDateTime:l.A,NcLoadingIcon:A.A,NcRichContenteditable:()=>Promise.all([n.e(4208),n.e(6768),n.e(8154),n.e(5258)]).then(n.bind(n,95528)),NcRichText:()=>Promise.all([n.e(4208),n.e(6768),n.e(4508)]).then(n.bind(n,64508))},mixins:[_.A],inheritAttrs:!1,props:{actorDisplayName:{type:String,required:!0},actorId:{type:String,required:!0},creationDateTime:{type:String,default:null},editor:{type:Boolean,default:!1},autoComplete:{type:Function,required:!0},userData:{type:Object,default:()=>({})},tag:{type:String,default:"div"}},data:()=>({expanded:!1,localMessage:"",submitted:!1}),computed:{...(0,s.n2)(b.h),isOwnComment(){return(0,i.HW)().uid===this.actorId},richContent(){const t={};let e=this.localMessage;return Object.keys(this.userData).forEach((n,i)=>{const o=`mention-${i}`,s=new RegExp(`@${n}|@"${n}"`,"g");e=e.replace(s,`{${o}}`),t[o]={component:p.A,props:{user:n,displayName:this.userData[n].label,primary:this.userData[n].primary}}}),{mentions:t,message:e}},isEmptyMessage(){return!this.localMessage||""===this.localMessage.trim()},timestamp(){return Date.parse(this.creationDateTime)},isLimbo(){return this.deletedCommentLimboStore.checkForId(this.id)}},watch:{message(t){this.updateLocalMessage(t)}},beforeMount(){this.updateLocalMessage(this.message)},methods:{t:o.Tl,updateLocalMessage(t){this.localMessage=t.toString(),this.submitted=!1},onSubmit(){if(""!==this.localMessage.trim())return this.editor?(this.onNewComment(this.localMessage.trim()),void this.$nextTick(()=>{this.$refs.editor.$el.focus()})):void this.onEditComment(this.localMessage.trim())},onExpand(){this.expanded=!0}}}},34579:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(71354),o=n.n(i),s=n(76314),a=n.n(s)()(o());a.push([t.id,".comment[data-v-6be9790b]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-6be9790b]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-6be9790b]{display:flex;flex-grow:1;flex-direction:column;container-type:inline-size}.comment__header[data-v-6be9790b]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-6be9790b]{margin-inline-start:10px !important}.comment__author[data-v-6be9790b]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-6be9790b],.comment__timestamp[data-v-6be9790b]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-6be9790b]{position:relative}.comment__editor-description[data-v-6be9790b]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-6be9790b]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-6be9790b]{white-space:pre-wrap;word-break:normal;max-height:70px;overflow:hidden;margin-top:-6px}.comment__message--expanded[data-v-6be9790b]{max-height:none;overflow:visible}.rich-contenteditable__input[data-v-6be9790b]{min-height:44px;margin:0;padding:10px}","",{version:3,sources:["webpack://./apps/comments/src/components/Comment.vue"],names:[],mappings:"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CACA,0BAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,iBAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YA5EiB",sourcesContent:['\n@use "sass:math";\n\n$comment-padding: 10px;\n\n.comment {\n\tdisplay: flex;\n\tgap: 8px;\n\tpadding: 5px $comment-padding;\n\n\t&__side {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\tpadding-top: 6px;\n\t}\n\n\t&__body {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\tflex-direction: column;\n\t\tcontainer-type: inline-size;\n\t}\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tmin-height: 44px;\n\t}\n\n\t&__actions {\n\t\tmargin-inline-start: $comment-padding !important;\n\t}\n\n\t&__author {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&_loading,\n\t&__timestamp {\n\t\tmargin-inline-start: auto;\n\t\ttext-align: end;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__editor-group {\n\t\tposition: relative;\n\t}\n\n\t&__editor-description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tpadding-block: var(--default-grid-baseline);\n\t}\n\n\t&__submit {\n\t\tposition: absolute !important;\n\t\tbottom: 5px;\n\t\tinset-inline-end: 0;\n\t}\n\n\t&__message {\n\t\twhite-space: pre-wrap;\n\t\tword-break: normal;\n\t\tmax-height: 70px;\n\t\toverflow: hidden;\n\t\tmargin-top: -6px;\n\t\t&--expanded {\n\t\t\tmax-height: none;\n\t\t\toverflow: visible;\n\t\t}\n\t}\n}\n\n.rich-contenteditable__input {\n\tmin-height: 44px;\n\tmargin: 0;\n\tpadding: $comment-padding;\n}\n\n'],sourceRoot:""}]);const r=a},36564:(t,e,n)=>{"use strict";n.d(e,{h:()=>i});const i=(0,n(10810).nY)("deletedCommentLimbo",{state:()=>({idsInLimbo:[]}),actions:{addId(t){this.idsInLimbo.push(t)},removeId(t){const e=this.idsInLimbo.indexOf(t);e>-1&&this.idsInLimbo.splice(e,1)},checkForId(t){return this.idsInLimbo.includes(t)}}})},47790:()=>{},51069:()=>{},51195:(t,e,n)=>{"use strict";function i(t,e=1){const n=new DOMParser;let i=t;for(let t=0;ti})},54416:(t,e,n)=>{"use strict";n.d(e,{A:()=>i});const i=n(29369).A},64688:()=>{},65463:(t,e,n)=>{"use strict";n.d(e,{A:()=>s});var i=n(25547),o=n(54416);n(91217);const s=(0,n(14486).A)(o.A,i.X,i.Y,!1,null,"6be9790b",null).exports},66089:()=>{},70395:(t,e,n)=>{"use strict";n.d(e,{A:()=>c});var i=n(21777),o=n(19051),s=n(17003),a=n(51195),r=n(35550);async function c(t,e,n){const c=["",t,e].join("/"),m=await o.Ay.post((0,s.e)()+c,{actorDisplayName:(0,i.HW)().displayName,actorId:(0,i.HW)().uid,actorType:"users",creationDateTime:(new Date).toUTCString(),message:n,objectType:t,verb:"comment"}),d=c+"/"+parseInt(m.headers["content-location"].split("/").pop()),l=await r.A.stat(d,{details:!0}),A=l.data.props;return A.actorDisplayName=(0,a.j)(A.actorDisplayName,2),A.message=(0,a.j)(A.message,2),l.data}},70452:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(21777),o=n(19051),s=n(81222),a=n(63814);const r=(0,n(85471).pM)({props:{resourceId:{type:Number,required:!0},resourceType:{type:String,default:"files"}},data(){return{editorData:{actorDisplayName:(0,i.HW)().displayName,actorId:(0,i.HW)().uid,key:"editor"},userData:{},currentResourceId:this.resourceId}},methods:{async autoComplete(t,e){const{data:n}=await o.Ay.get((0,a.KT)("core/autocomplete/get"),{params:{search:t,itemType:this.resourceType,itemId:this.currentResourceId,sorter:"commenters|share-recipients",limit:(0,s.C)("comments","maxAutoCompleteResults")}});return n.ocs.data.forEach(t=>{this.userData[t.id]=t}),e(Object.values(this.userData))},genMentionsData(t){return Object.values(t).flat().forEach(t=>{this.userData[t.mentionId]={icon:"icon-user",id:t.mentionId,label:t.mentionDisplayName,source:"users",primary:(0,i.HW)()?.uid===t.mentionId}}),this.userData}}})},73776:()=>{},77965:()=>{},78982:()=>{},79368:()=>{},79838:()=>{},80486:(t,e,n)=>{"use strict";n.d(e,{A:()=>o});var i=n(35550);async function o(t,e,n){const o=["",t,e,n].join("/");await i.A.deleteFile(o)}},90264:(t,e,n)=>{"use strict";var i=n(85072),o=n.n(i),s=n(97825),a=n.n(s),r=n(77659),c=n.n(r),m=n(55056),d=n.n(m),l=n(10540),A=n.n(l),p=n(41113),u=n.n(p),h=n(34579),C={};C.styleTagTransform=u(),C.setAttributes=d(),C.insert=c().bind(null,"head"),C.domAPI=a(),C.insertStyleElement=A(),o()(h.A,C),h.A&&h.A.locals&&h.A.locals},91217:(t,e,n)=>{"use strict";n(90264)}}]); -//# sourceMappingURL=4743-4743.js.map?v=9a8d995c9f74941ba261 \ No newline at end of file +(globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[]).push([[4743],{10396:(e,n,i)=>{"use strict";i.d(n,{A:()=>l});var o=i(85168),s=i(10810),a=i(96689),r=i(80486),c=i(10767),m=i(70395),d=i(36564);const l={props:{id:{type:Number,default:null},message:{type:String,default:""},resourceId:{type:[String,Number],required:!0},resourceType:{type:String,default:"files"}},data:()=>({deleted:!1,editing:!1,loading:!1}),computed:{...(0,s.n2)(d.h)},methods:{onEdit(){this.editing=!0},onEditCancel(){this.editing=!1,this.updateLocalMessage(this.message)},async onEditComment(e){this.loading=!0;try{await(0,c.A)(this.resourceType,this.resourceId,this.id,e),a.A.debug("Comment edited",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id,message:e}),this.$emit("update:message",e),this.editing=!1}catch(e){(0,o.Qg)(t("comments","An error occurred while trying to edit the comment")),a.A.error("An error occurred while trying to edit the comment",{error:e})}finally{this.loading=!1}},onDeleteWithUndo(){this.$emit("delete"),this.deleted=!0,this.deletedCommentLimboStore.addId(this.id);const e=setTimeout(this.onDelete,o.Br);(0,o._h)(t("comments","Comment deleted"),()=>{clearTimeout(e),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)})},async onDelete(){try{await(0,r.A)(this.resourceType,this.resourceId,this.id),a.A.debug("Comment deleted",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id}),this.$emit("delete",this.id)}catch(e){(0,o.Qg)(t("comments","An error occurred while trying to delete the comment")),a.A.error("An error occurred while trying to delete the comment",{error:e}),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)}},async onNewComment(e){this.loading=!0;try{const t=await(0,m.A)(this.resourceType,this.resourceId,e);a.A.debug("New comment posted",{resourceType:this.resourceType,resourceId:this.resourceId,newComment:t}),this.$emit("new",t),this.$emit("update:message",""),this.localMessage=""}catch(e){(0,o.Qg)(t("comments","An error occurred while trying to create the comment")),a.A.error("An error occurred while trying to create the comment",{error:e})}finally{this.loading=!1}}}}},10767:(t,e,n)=>{"use strict";n.d(e,{A:()=>o});var i=n(35550);async function o(t,e,n,o){const s=["",t,e,n].join("/");return await i.A.customRequest(s,{method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${o}\n\t\t\t\t\n\t\t\t\n\t\t\t`})}},15340:()=>{},22408:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(71354),o=n.n(i),s=n(76314),a=n.n(s)()(o());a.push([t.id,".comment[data-v-70317f94]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-70317f94]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-70317f94]{display:flex;flex-grow:1;flex-direction:column;container-type:inline-size}.comment__header[data-v-70317f94]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-70317f94]{margin-inline-start:10px !important}.comment__author[data-v-70317f94]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-70317f94],.comment__timestamp[data-v-70317f94]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-70317f94]{position:relative}.comment__editor-description[data-v-70317f94]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-70317f94]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-70317f94]{white-space:pre-wrap;word-break:normal;max-height:200px;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;margin-top:-6px}.comment__message--expanded[data-v-70317f94]{max-height:none;overflow:visible}.comment__message[data-v-70317f94] img{max-width:100%;height:auto}.rich-contenteditable__input[data-v-70317f94]{min-height:44px;margin:0;padding:10px}","",{version:3,sources:["webpack://./apps/comments/src/components/Comment.vue"],names:[],mappings:"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CACA,0BAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,iBAAA,CACA,gBAAA,CACA,aAAA,CACA,uBAAA,CACA,oBAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAED,uCACC,cAAA,CACA,WAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YAlFiB",sourcesContent:['\n@use "sass:math";\n\n$comment-padding: 10px;\n\n.comment {\n\tdisplay: flex;\n\tgap: 8px;\n\tpadding: 5px $comment-padding;\n\n\t&__side {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\tpadding-top: 6px;\n\t}\n\n\t&__body {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\tflex-direction: column;\n\t\tcontainer-type: inline-size;\n\t}\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tmin-height: 44px;\n\t}\n\n\t&__actions {\n\t\tmargin-inline-start: $comment-padding !important;\n\t}\n\n\t&__author {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&_loading,\n\t&__timestamp {\n\t\tmargin-inline-start: auto;\n\t\ttext-align: end;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__editor-group {\n\t\tposition: relative;\n\t}\n\n\t&__editor-description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tpadding-block: var(--default-grid-baseline);\n\t}\n\n\t&__submit {\n\t\tposition: absolute !important;\n\t\tbottom: 5px;\n\t\tinset-inline-end: 0;\n\t}\n\n\t&__message {\n\t\twhite-space: pre-wrap;\n\t\tword-break: normal;\n\t\tmax-height: 200px;\n\t\toverflow: auto;\n\t\tscrollbar-gutter: stable;\n\t\tscrollbar-width: thin;\n\t\tmargin-top: -6px;\n\t\t&--expanded {\n\t\t\tmax-height: none;\n\t\t\toverflow: visible;\n\t\t}\n\t\t:deep(img) {\n\t\t\tmax-width: 100%;\n\t\t\theight: auto;\n\t\t}\n\t}\n}\n\n.rich-contenteditable__input {\n\tmin-height: 44px;\n\tmargin: 0;\n\tpadding: $comment-padding;\n}\n\n'],sourceRoot:""}]);const r=a},29369:(t,e,n)=>{"use strict";n.d(e,{A:()=>v});var i=n(21777),o=n(53334),s=n(10810),a=n(57505),r=n(24764),c=n(15502),m=n(41944),d=n(74095),l=n(4604),A=n(88289),u=n(77764),p=n(33691),h=n(66001),C=n(16502),g=n(37793),_=n(10396),y=n(36564);const v={name:"Comment",components:{IconArrowRight:p.A,IconClose:h.A,IconTrashCanOutline:g.A,IconPencilOutline:C.A,NcActionButton:a.A,NcActions:r.A,NcActionSeparator:c.A,NcAvatar:m.A,NcButton:d.A,NcDateTime:l.A,NcLoadingIcon:A.A,NcRichContenteditable:()=>Promise.all([n.e(4208),n.e(6768),n.e(8154),n.e(5258)]).then(n.bind(n,95528)),NcRichText:()=>Promise.all([n.e(4208),n.e(6768),n.e(4508)]).then(n.bind(n,64508))},mixins:[_.A],inheritAttrs:!1,props:{actorDisplayName:{type:String,required:!0},actorId:{type:String,required:!0},creationDateTime:{type:String,default:null},editor:{type:Boolean,default:!1},autoComplete:{type:Function,required:!0},userData:{type:Object,default:()=>({})},tag:{type:String,default:"div"}},data:()=>({expanded:!1,localMessage:"",submitted:!1}),computed:{...(0,s.n2)(y.h),isOwnComment(){return(0,i.HW)().uid===this.actorId},richContent(){const t={};let e=this.localMessage;return Object.keys(this.userData).forEach((n,i)=>{const o=`mention-${i}`,s=new RegExp(`@${n}|@"${n}"`,"g");e=e.replace(s,`{${o}}`),t[o]={component:u.A,props:{user:n,displayName:this.userData[n].label,primary:this.userData[n].primary}}}),{mentions:t,message:e}},isEmptyMessage(){return!this.localMessage||""===this.localMessage.trim()},timestamp(){return Date.parse(this.creationDateTime)},isLimbo(){return this.deletedCommentLimboStore.checkForId(this.id)}},watch:{message(t){this.updateLocalMessage(t)}},beforeMount(){this.updateLocalMessage(this.message)},methods:{t:o.Tl,updateLocalMessage(t){this.localMessage=t.toString(),this.submitted=!1},onSubmit(){if(""!==this.localMessage.trim())return this.editor?(this.onNewComment(this.localMessage.trim()),void this.$nextTick(()=>{this.$refs.editor.$el.focus()})):void this.onEditComment(this.localMessage.trim())},onExpand(){this.expanded=!0}}}},36564:(t,e,n)=>{"use strict";n.d(e,{h:()=>i});const i=(0,n(10810).nY)("deletedCommentLimbo",{state:()=>({idsInLimbo:[]}),actions:{addId(t){this.idsInLimbo.push(t)},removeId(t){const e=this.idsInLimbo.indexOf(t);e>-1&&this.idsInLimbo.splice(e,1)},checkForId(t){return this.idsInLimbo.includes(t)}}})},46270:(t,e,n)=>{"use strict";n(70247)},47790:()=>{},51069:()=>{},51195:(t,e,n)=>{"use strict";function i(t,e=1){const n=new DOMParser;let i=t;for(let t=0;ti})},54416:(t,e,n)=>{"use strict";n.d(e,{A:()=>i});const i=n(29369).A},64688:()=>{},65463:(t,e,n)=>{"use strict";n.d(e,{A:()=>s});var i=n(70058),o=n(54416);n(46270);const s=(0,n(14486).A)(o.A,i.X,i.Y,!1,null,"70317f94",null).exports},66089:()=>{},70058:(t,e,n)=>{"use strict";n.d(e,{X:()=>i,Y:()=>o});var i=function(){var t=this,e=t._self._c;return e(t.tag,{directives:[{name:"show",rawName:"v-show",value:!t.deleted&&!t.isLimbo,expression:"!deleted && !isLimbo"}],tag:"component",staticClass:"comment",class:{"comment--loading":t.loading}},[e("div",{staticClass:"comment__side"},[e("NcAvatar",{staticClass:"comment__avatar",attrs:{"display-name":t.actorDisplayName,user:t.actorId,size:32}})],1),t._v(" "),e("div",{staticClass:"comment__body"},[e("div",{staticClass:"comment__header"},[e("span",{staticClass:"comment__author"},[t._v(t._s(t.actorDisplayName))]),t._v(" "),t.isOwnComment&&t.id&&!t.loading?e("NcActions",{staticClass:"comment__actions"},[t.editing?e("NcActionButton",{on:{click:t.onEditCancel},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconClose",{attrs:{size:20}})]},proxy:!0}],null,!1,2888946197)},[t._v("\n\t\t\t\t\t"+t._s(t.t("comments","Cancel edit"))+"\n\t\t\t\t")]):[e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onEdit},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconPencilOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,3345211262)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Edit comment"))+"\n\t\t\t\t\t")]),t._v(" "),e("NcActionSeparator"),t._v(" "),e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onDeleteWithUndo},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconTrashCanOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,1034796883)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Delete comment"))+"\n\t\t\t\t\t")])]],2):t._e(),t._v(" "),t.id&&t.loading?e("div",{staticClass:"comment_loading icon-loading-small"}):t.creationDateTime?e("NcDateTime",{staticClass:"comment__timestamp",attrs:{timestamp:t.timestamp,"ignore-seconds":!0}}):t._e()],1),t._v(" "),t.editor||t.editing?e("form",{staticClass:"comment__editor",on:{submit:function(t){t.preventDefault()}}},[e("div",{staticClass:"comment__editor-group"},[e("NcRichContenteditable",{ref:"editor",attrs:{"auto-complete":t.autoComplete,contenteditable:!t.loading,label:t.editor?t.t("comments","New comment"):t.t("comments","Edit comment"),placeholder:t.t("comments","Write a comment …"),"model-value":t.localMessage,"user-data":t.userData,"aria-describedby":"tab-comments__editor-description"},on:{"update:value":t.updateLocalMessage,submit:t.onSubmit}}),t._v(" "),e("div",{staticClass:"comment__submit"},[e("NcButton",{attrs:{variant:"tertiary-no-background",type:"submit","aria-label":t.t("comments","Post comment"),disabled:t.isEmptyMessage},on:{click:t.onSubmit},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon"):e("IconArrowRight",{attrs:{size:20}})]},proxy:!0}],null,!1,758946661)})],1)],1),t._v(" "),e("div",{staticClass:"comment__editor-description",attrs:{id:"tab-comments__editor-description"}},[t._v("\n\t\t\t\t"+t._s(t.t("comments","@ for mentions, : for emoji, / for smart picker"))+"\n\t\t\t")])]):e("NcRichText",{staticClass:"comment__message",class:{"comment__message--expanded":t.expanded},attrs:{text:t.richContent.message,arguments:t.richContent.mentions,"use-markdown":""},nativeOn:{click:function(e){return t.onExpand.apply(null,arguments)}}})],1)])},o=[]},70247:(t,e,n)=>{"use strict";var i=n(85072),o=n.n(i),s=n(97825),a=n.n(s),r=n(77659),c=n.n(r),m=n(55056),d=n.n(m),l=n(10540),A=n.n(l),u=n(41113),p=n.n(u),h=n(22408),C={};C.styleTagTransform=p(),C.setAttributes=d(),C.insert=c().bind(null,"head"),C.domAPI=a(),C.insertStyleElement=A(),o()(h.A,C),h.A&&h.A.locals&&h.A.locals},70395:(t,e,n)=>{"use strict";n.d(e,{A:()=>c});var i=n(21777),o=n(19051),s=n(17003),a=n(51195),r=n(35550);async function c(t,e,n){const c=["",t,e].join("/"),m=await o.Ay.post((0,s.e)()+c,{actorDisplayName:(0,i.HW)().displayName,actorId:(0,i.HW)().uid,actorType:"users",creationDateTime:(new Date).toUTCString(),message:n,objectType:t,verb:"comment"}),d=c+"/"+parseInt(m.headers["content-location"].split("/").pop()),l=await r.A.stat(d,{details:!0}),A=l.data.props;return A.actorDisplayName=(0,a.j)(A.actorDisplayName,2),A.message=(0,a.j)(A.message,2),l.data}},70452:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(21777),o=n(19051),s=n(81222),a=n(63814);const r=(0,n(85471).pM)({props:{resourceId:{type:Number,required:!0},resourceType:{type:String,default:"files"}},data(){return{editorData:{actorDisplayName:(0,i.HW)().displayName,actorId:(0,i.HW)().uid,key:"editor"},userData:{},currentResourceId:this.resourceId}},methods:{async autoComplete(t,e){const{data:n}=await o.Ay.get((0,a.KT)("core/autocomplete/get"),{params:{search:t,itemType:this.resourceType,itemId:this.currentResourceId,sorter:"commenters|share-recipients",limit:(0,s.C)("comments","maxAutoCompleteResults")}});return n.ocs.data.forEach(t=>{this.userData[t.id]=t}),e(Object.values(this.userData))},genMentionsData(t){return Object.values(t).flat().forEach(t=>{this.userData[t.mentionId]={icon:"icon-user",id:t.mentionId,label:t.mentionDisplayName,source:"users",primary:(0,i.HW)()?.uid===t.mentionId}}),this.userData}}})},73776:()=>{},77965:()=>{},78982:()=>{},79368:()=>{},79838:()=>{},80486:(t,e,n)=>{"use strict";n.d(e,{A:()=>o});var i=n(35550);async function o(t,e,n){const o=["",t,e,n].join("/");await i.A.deleteFile(o)}}}]); +//# sourceMappingURL=4743-4743.js.map?v=49947d0e7d5380717427 \ No newline at end of file diff --git a/dist/4743-4743.js.map b/dist/4743-4743.js.map index 8f3591d7d35..71e77dc9bf7 100644 --- a/dist/4743-4743.js.map +++ b/dist/4743-4743.js.map @@ -1 +1 @@ -{"version":3,"file":"4743-4743.js?v=9a8d995c9f74941ba261","mappings":"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","sources":["webpack:///nextcloud/apps/comments/src/mixins/CommentMixin.js","webpack:///nextcloud/apps/comments/src/services/EditComment.js","webpack://nextcloud/./apps/comments/src/components/Comment.vue?d1f7","webpack:///nextcloud/apps/comments/src/components/Comment.vue","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=6be9790b&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/comments/src/store/deletedCommentLimbo.js","webpack:///nextcloud/apps/comments/src/utils/decodeHtmlEntities.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/comments/src/components/Comment.vue?7f26","webpack:///nextcloud/apps/comments/src/services/NewComment.js","webpack:///nextcloud/apps/comments/src/mixins/CommentView.ts","webpack:///nextcloud/apps/comments/src/services/DeleteComment.js","webpack://nextcloud/./apps/comments/src/components/Comment.vue?81ec"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError, showUndo, TOAST_UNDO_TIMEOUT } from '@nextcloud/dialogs'\nimport { mapStores } from 'pinia'\nimport logger from '../logger.js'\nimport DeleteComment from '../services/DeleteComment.js'\nimport EditComment from '../services/EditComment.js'\nimport NewComment from '../services/NewComment.js'\nimport { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.js'\n\nexport default {\n\tprops: {\n\t\tid: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tresourceId: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'files',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdeleted: false,\n\t\t\tediting: false,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t...mapStores(useDeletedCommentLimbo),\n\t},\n\n\tmethods: {\n\t\t// EDITION\n\t\tonEdit() {\n\t\t\tthis.editing = true\n\t\t},\n\t\tonEditCancel() {\n\t\t\tthis.editing = false\n\t\t\t// Restore original value\n\t\t\tthis.updateLocalMessage(this.message)\n\t\t},\n\t\tasync onEditComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait EditComment(this.resourceType, this.resourceId, this.id, message)\n\t\t\t\tlogger.debug('Comment edited', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id, message })\n\t\t\t\tthis.$emit('update:message', message)\n\t\t\t\tthis.editing = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to edit the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to edit the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t// DELETION\n\t\tonDeleteWithUndo() {\n\t\t\tthis.$emit('delete')\n\t\t\tthis.deleted = true\n\t\t\tthis.deletedCommentLimboStore.addId(this.id)\n\t\t\tconst timeOutDelete = setTimeout(this.onDelete, TOAST_UNDO_TIMEOUT)\n\t\t\tshowUndo(t('comments', 'Comment deleted'), () => {\n\t\t\t\tclearTimeout(timeOutDelete)\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t})\n\t\t},\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tawait DeleteComment(this.resourceType, this.resourceId, this.id)\n\t\t\t\tlogger.debug('Comment deleted', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id })\n\t\t\t\tthis.$emit('delete', this.id)\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to delete the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to delete the comment', { error })\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t}\n\t\t},\n\n\t\t// CREATION\n\t\tasync onNewComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst newComment = await NewComment(this.resourceType, this.resourceId, message)\n\t\t\t\tlogger.debug('New comment posted', { resourceType: this.resourceType, resourceId: this.resourceId, newComment })\n\t\t\t\tthis.$emit('new', newComment)\n\n\t\t\t\t// Clear old content\n\t\t\t\tthis.$emit('update:message', '')\n\t\t\t\tthis.localMessage = ''\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to create the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to create the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Edit an existing comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n * @param {string} message the message content\n */\nexport default async function(resourceType, resourceId, commentId, message) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\treturn await client.customRequest(commentPath, {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${message}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n\t})\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.tag,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.deleted && !_vm.isLimbo),expression:\"!deleted && !isLimbo\"}],tag:\"component\",staticClass:\"comment\",class:{ 'comment--loading': _vm.loading }},[_c('div',{staticClass:\"comment__side\"},[_c('NcAvatar',{staticClass:\"comment__avatar\",attrs:{\"display-name\":_vm.actorDisplayName,\"user\":_vm.actorId,\"size\":32}})],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__body\"},[_c('div',{staticClass:\"comment__header\"},[_c('span',{staticClass:\"comment__author\"},[_vm._v(_vm._s(_vm.actorDisplayName))]),_vm._v(\" \"),(_vm.isOwnComment && _vm.id && !_vm.loading)?_c('NcActions',{staticClass:\"comment__actions\"},[(!_vm.editing)?[_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onEdit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconPencilOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,3345211262)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Edit comment'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onDeleteWithUndo},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconTrashCanOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,1034796883)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Delete comment'))+\"\\n\\t\\t\\t\\t\\t\")])]:_c('NcActionButton',{on:{\"click\":_vm.onEditCancel},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconClose',{attrs:{\"size\":20}})]},proxy:true}],null,false,2888946197)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Cancel edit'))+\"\\n\\t\\t\\t\\t\")])],2):_vm._e(),_vm._v(\" \"),(_vm.id && _vm.loading)?_c('div',{staticClass:\"comment_loading icon-loading-small\"}):(_vm.creationDateTime)?_c('NcDateTime',{staticClass:\"comment__timestamp\",attrs:{\"timestamp\":_vm.timestamp,\"ignore-seconds\":true}}):_vm._e()],1),_vm._v(\" \"),(_vm.editor || _vm.editing)?_c('form',{staticClass:\"comment__editor\",on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{staticClass:\"comment__editor-group\"},[_c('NcRichContenteditable',{ref:\"editor\",attrs:{\"auto-complete\":_vm.autoComplete,\"contenteditable\":!_vm.loading,\"label\":_vm.editor ? _vm.t('comments', 'New comment') : _vm.t('comments', 'Edit comment'),\"placeholder\":_vm.t('comments', 'Write a comment …'),\"model-value\":_vm.localMessage,\"user-data\":_vm.userData,\"aria-describedby\":\"tab-comments__editor-description\"},on:{\"update:value\":_vm.updateLocalMessage,\"submit\":_vm.onSubmit}}),_vm._v(\" \"),_c('div',{staticClass:\"comment__submit\"},[_c('NcButton',{attrs:{\"variant\":\"tertiary-no-background\",\"type\":\"submit\",\"aria-label\":_vm.t('comments', 'Post comment'),\"disabled\":_vm.isEmptyMessage},on:{\"click\":_vm.onSubmit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('IconArrowRight',{attrs:{\"size\":20}})]},proxy:true}],null,false,758946661)})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__editor-description\",attrs:{\"id\":\"tab-comments__editor-description\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', '@ for mentions, : for emoji, / for smart picker'))+\"\\n\\t\\t\\t\")])]):_c('NcRichText',{staticClass:\"comment__message\",class:{ 'comment__message--expanded': _vm.expanded },attrs:{\"text\":_vm.richContent.message,\"arguments\":_vm.richContent.mentions},nativeOn:{\"click\":function($event){return _vm.onExpand.apply(null, arguments)}}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.comment[data-v-6be9790b]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-6be9790b]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-6be9790b]{display:flex;flex-grow:1;flex-direction:column;container-type:inline-size}.comment__header[data-v-6be9790b]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-6be9790b]{margin-inline-start:10px !important}.comment__author[data-v-6be9790b]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-6be9790b],.comment__timestamp[data-v-6be9790b]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-6be9790b]{position:relative}.comment__editor-description[data-v-6be9790b]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-6be9790b]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-6be9790b]{white-space:pre-wrap;word-break:normal;max-height:70px;overflow:hidden;margin-top:-6px}.comment__message--expanded[data-v-6be9790b]{max-height:none;overflow:visible}.rich-contenteditable__input[data-v-6be9790b]{min-height:44px;margin:0;padding:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/components/Comment.vue\"],\"names\":[],\"mappings\":\"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CACA,0BAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,iBAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YA5EiB\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n\\n$comment-padding: 10px;\\n\\n.comment {\\n\\tdisplay: flex;\\n\\tgap: 8px;\\n\\tpadding: 5px $comment-padding;\\n\\n\\t&__side {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\tpadding-top: 6px;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-grow: 1;\\n\\t\\tflex-direction: column;\\n\\t\\tcontainer-type: inline-size;\\n\\t}\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tmin-height: 44px;\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tmargin-inline-start: $comment-padding !important;\\n\\t}\\n\\n\\t&__author {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&_loading,\\n\\t&__timestamp {\\n\\t\\tmargin-inline-start: auto;\\n\\t\\ttext-align: end;\\n\\t\\twhite-space: nowrap;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__editor-group {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__editor-description {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding-block: var(--default-grid-baseline);\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tposition: absolute !important;\\n\\t\\tbottom: 5px;\\n\\t\\tinset-inline-end: 0;\\n\\t}\\n\\n\\t&__message {\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tword-break: normal;\\n\\t\\tmax-height: 70px;\\n\\t\\toverflow: hidden;\\n\\t\\tmargin-top: -6px;\\n\\t\\t&--expanded {\\n\\t\\t\\tmax-height: none;\\n\\t\\t\\toverflow: visible;\\n\\t\\t}\\n\\t}\\n}\\n\\n.rich-contenteditable__input {\\n\\tmin-height: 44px;\\n\\tmargin: 0;\\n\\tpadding: $comment-padding;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineStore } from 'pinia'\n\nexport const useDeletedCommentLimbo = defineStore('deletedCommentLimbo', {\n\tstate: () => ({\n\t\tidsInLimbo: [],\n\t}),\n\tactions: {\n\t\taddId(id) {\n\t\t\tthis.idsInLimbo.push(id)\n\t\t},\n\n\t\tremoveId(id) {\n\t\t\tconst index = this.idsInLimbo.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.idsInLimbo.splice(index, 1)\n\t\t\t}\n\t\t},\n\n\t\tcheckForId(id) {\n\t\t\treturn this.idsInLimbo.includes(id)\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @param {any} value -\n * @param {any} passes -\n */\nexport function decodeHtmlEntities(value, passes = 1) {\n\tconst parser = new DOMParser()\n\tlet decoded = value\n\tfor (let i = 0; i < passes; i++) {\n\t\tdecoded = parser.parseFromString(decoded, 'text/html').documentElement.textContent\n\t}\n\treturn decoded\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.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!./Comment.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Comment.vue?vue&type=template&id=6be9790b&scoped=true\"\nimport script from \"./Comment.vue?vue&type=script&lang=js\"\nexport * from \"./Comment.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comment.vue?vue&type=style&index=0&id=6be9790b&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 \"6be9790b\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getRootPath } from '../utils/davUtils.js'\nimport { decodeHtmlEntities } from '../utils/decodeHtmlEntities.js'\nimport client from './DavClient.js'\n\n/**\n * Retrieve the comments list\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {string} message the message\n * @return {object} the new comment\n */\nexport default async function(resourceType, resourceId, message) {\n\tconst resourcePath = ['', resourceType, resourceId].join('/')\n\n\tconst response = await axios.post(getRootPath() + resourcePath, {\n\t\tactorDisplayName: getCurrentUser().displayName,\n\t\tactorId: getCurrentUser().uid,\n\t\tactorType: 'users',\n\t\tcreationDateTime: (new Date()).toUTCString(),\n\t\tmessage,\n\t\tobjectType: resourceType,\n\t\tverb: 'comment',\n\t})\n\n\t// Retrieve comment id from resource location\n\tconst commentId = parseInt(response.headers['content-location'].split('/').pop())\n\tconst commentPath = resourcePath + '/' + commentId\n\n\t// Fetch newly created comment data\n\tconst comment = await client.stat(commentPath, {\n\t\tdetails: true,\n\t})\n\n\tconst props = comment.data.props\n\t// Decode twice to handle potentially double-encoded entities\n\t// FIXME Remove this once https://github.com/nextcloud/server/issues/29306\n\t// is resolved\n\tprops.actorDisplayName = decodeHtmlEntities(props.actorDisplayName, 2)\n\tprops.message = decodeHtmlEntities(props.message, 2)\n\n\treturn comment.data\n}\n","import { getCurrentUser } from '@nextcloud/auth';\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n props: {\n resourceId: {\n type: Number,\n required: true,\n },\n resourceType: {\n type: String,\n default: 'files',\n },\n },\n data() {\n return {\n editorData: {\n actorDisplayName: getCurrentUser().displayName,\n actorId: getCurrentUser().uid,\n key: 'editor',\n },\n userData: {},\n currentResourceId: this.resourceId,\n };\n },\n methods: {\n /**\n * Autocomplete @mentions\n *\n * @param search the query\n * @param callback the callback to process the results with\n */\n async autoComplete(search, callback) {\n const { data } = await axios.get(generateOcsUrl('core/autocomplete/get'), {\n params: {\n search,\n itemType: this.resourceType,\n itemId: this.currentResourceId,\n sorter: 'commenters|share-recipients',\n limit: loadState('comments', 'maxAutoCompleteResults'),\n },\n });\n // Save user data so it can be used by the editor to replace mentions\n data.ocs.data.forEach((user) => {\n this.userData[user.id] = user;\n });\n return callback(Object.values(this.userData));\n },\n /**\n * Make sure we have all mentions as Array of objects\n *\n * @param mentions the mentions list\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n genMentionsData(mentions) {\n Object.values(mentions)\n .flat()\n .forEach((mention) => {\n this.userData[mention.mentionId] = {\n // TODO: support groups\n icon: 'icon-user',\n id: mention.mentionId,\n label: mention.mentionDisplayName,\n source: 'users',\n primary: getCurrentUser()?.uid === mention.mentionId,\n };\n });\n return this.userData;\n },\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Delete a comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n */\nexport default async function(resourceType, resourceId, commentId) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\t// Fetch newly created comment data\n\tawait client.deleteFile(commentPath)\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!./Comment.vue?vue&type=style&index=0&id=6be9790b&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=6be9790b&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["props","id","type","Number","default","message","String","resourceId","required","resourceType","data","deleted","editing","loading","computed","mapStores","useDeletedCommentLimbo","methods","onEdit","this","onEditCancel","updateLocalMessage","onEditComment","EditComment","logger","debug","$emit","error","showError","t","onDeleteWithUndo","deletedCommentLimboStore","addId","timeOutDelete","setTimeout","onDelete","TOAST_UNDO_TIMEOUT","showUndo","clearTimeout","removeId","DeleteComment","onNewComment","newComment","NewComment","localMessage","async","commentId","commentPath","join","client","customRequest","method","render","_vm","_c","_self","tag","directives","name","rawName","value","isLimbo","expression","staticClass","class","attrs","actorDisplayName","actorId","_v","_s","isOwnComment","on","scopedSlots","_u","key","fn","proxy","_e","creationDateTime","timestamp","editor","$event","preventDefault","ref","autoComplete","userData","onSubmit","isEmptyMessage","expanded","richContent","mentions","nativeOn","onExpand","apply","arguments","staticRenderFns","components","IconArrowRight","IconClose","IconTrashCanOutline","IconPencilOutline","NcActionButton","NcActions","NcActionSeparator","NcAvatar","NcButton","NcDateTime","NcLoadingIcon","NcRichContenteditable","NcRichText","mixins","CommentMixin","inheritAttrs","Boolean","Function","Object","submitted","getCurrentUser","uid","keys","forEach","user","index","regex","RegExp","replace","component","NcUserBubble","displayName","label","primary","trim","Date","parse","checkForId","watch","beforeMount","toString","$nextTick","$refs","$el","focus","___CSS_LOADER_EXPORT___","push","module","defineStore","state","idsInLimbo","actions","indexOf","splice","includes","decodeHtmlEntities","passes","parser","DOMParser","decoded","i","parseFromString","documentElement","textContent","resourcePath","response","axios","post","getRootPath","actorType","toUTCString","objectType","verb","parseInt","headers","split","pop","comment","stat","details","defineComponent","editorData","currentResourceId","search","callback","get","generateOcsUrl","params","itemType","itemId","sorter","limit","loadState","ocs","values","genMentionsData","flat","mention","mentionId","icon","mentionDisplayName","source","deleteFile","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"4743-4743.js?v=49947d0e7d5380717427","mappings":"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","sources":["webpack:///nextcloud/apps/comments/src/mixins/CommentMixin.js","webpack:///nextcloud/apps/comments/src/services/EditComment.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/comments/src/components/Comment.vue","webpack:///nextcloud/apps/comments/src/store/deletedCommentLimbo.js","webpack:///nextcloud/apps/comments/src/utils/decodeHtmlEntities.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/comments/src/components/Comment.vue?7f26","webpack://nextcloud/./apps/comments/src/components/Comment.vue?d1f7","webpack://nextcloud/./apps/comments/src/components/Comment.vue?7275","webpack:///nextcloud/apps/comments/src/services/NewComment.js","webpack:///nextcloud/apps/comments/src/mixins/CommentView.ts","webpack:///nextcloud/apps/comments/src/services/DeleteComment.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError, showUndo, TOAST_UNDO_TIMEOUT } from '@nextcloud/dialogs'\nimport { mapStores } from 'pinia'\nimport logger from '../logger.js'\nimport DeleteComment from '../services/DeleteComment.js'\nimport EditComment from '../services/EditComment.js'\nimport NewComment from '../services/NewComment.js'\nimport { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.js'\n\nexport default {\n\tprops: {\n\t\tid: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tresourceId: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'files',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdeleted: false,\n\t\t\tediting: false,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t...mapStores(useDeletedCommentLimbo),\n\t},\n\n\tmethods: {\n\t\t// EDITION\n\t\tonEdit() {\n\t\t\tthis.editing = true\n\t\t},\n\t\tonEditCancel() {\n\t\t\tthis.editing = false\n\t\t\t// Restore original value\n\t\t\tthis.updateLocalMessage(this.message)\n\t\t},\n\t\tasync onEditComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait EditComment(this.resourceType, this.resourceId, this.id, message)\n\t\t\t\tlogger.debug('Comment edited', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id, message })\n\t\t\t\tthis.$emit('update:message', message)\n\t\t\t\tthis.editing = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to edit the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to edit the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t// DELETION\n\t\tonDeleteWithUndo() {\n\t\t\tthis.$emit('delete')\n\t\t\tthis.deleted = true\n\t\t\tthis.deletedCommentLimboStore.addId(this.id)\n\t\t\tconst timeOutDelete = setTimeout(this.onDelete, TOAST_UNDO_TIMEOUT)\n\t\t\tshowUndo(t('comments', 'Comment deleted'), () => {\n\t\t\t\tclearTimeout(timeOutDelete)\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t})\n\t\t},\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tawait DeleteComment(this.resourceType, this.resourceId, this.id)\n\t\t\t\tlogger.debug('Comment deleted', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id })\n\t\t\t\tthis.$emit('delete', this.id)\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to delete the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to delete the comment', { error })\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t}\n\t\t},\n\n\t\t// CREATION\n\t\tasync onNewComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst newComment = await NewComment(this.resourceType, this.resourceId, message)\n\t\t\t\tlogger.debug('New comment posted', { resourceType: this.resourceType, resourceId: this.resourceId, newComment })\n\t\t\t\tthis.$emit('new', newComment)\n\n\t\t\t\t// Clear old content\n\t\t\t\tthis.$emit('update:message', '')\n\t\t\t\tthis.localMessage = ''\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to create the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to create the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Edit an existing comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n * @param {string} message the message content\n */\nexport default async function(resourceType, resourceId, commentId, message) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\treturn await client.customRequest(commentPath, {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${message}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n\t})\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.comment[data-v-70317f94]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-70317f94]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-70317f94]{display:flex;flex-grow:1;flex-direction:column;container-type:inline-size}.comment__header[data-v-70317f94]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-70317f94]{margin-inline-start:10px !important}.comment__author[data-v-70317f94]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-70317f94],.comment__timestamp[data-v-70317f94]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-70317f94]{position:relative}.comment__editor-description[data-v-70317f94]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-70317f94]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-70317f94]{white-space:pre-wrap;word-break:normal;max-height:200px;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;margin-top:-6px}.comment__message--expanded[data-v-70317f94]{max-height:none;overflow:visible}.comment__message[data-v-70317f94] img{max-width:100%;height:auto}.rich-contenteditable__input[data-v-70317f94]{min-height:44px;margin:0;padding:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/components/Comment.vue\"],\"names\":[],\"mappings\":\"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CACA,0BAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,iBAAA,CACA,gBAAA,CACA,aAAA,CACA,uBAAA,CACA,oBAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAED,uCACC,cAAA,CACA,WAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YAlFiB\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n\\n$comment-padding: 10px;\\n\\n.comment {\\n\\tdisplay: flex;\\n\\tgap: 8px;\\n\\tpadding: 5px $comment-padding;\\n\\n\\t&__side {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\tpadding-top: 6px;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-grow: 1;\\n\\t\\tflex-direction: column;\\n\\t\\tcontainer-type: inline-size;\\n\\t}\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tmin-height: 44px;\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tmargin-inline-start: $comment-padding !important;\\n\\t}\\n\\n\\t&__author {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&_loading,\\n\\t&__timestamp {\\n\\t\\tmargin-inline-start: auto;\\n\\t\\ttext-align: end;\\n\\t\\twhite-space: nowrap;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__editor-group {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__editor-description {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding-block: var(--default-grid-baseline);\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tposition: absolute !important;\\n\\t\\tbottom: 5px;\\n\\t\\tinset-inline-end: 0;\\n\\t}\\n\\n\\t&__message {\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tword-break: normal;\\n\\t\\tmax-height: 200px;\\n\\t\\toverflow: auto;\\n\\t\\tscrollbar-gutter: stable;\\n\\t\\tscrollbar-width: thin;\\n\\t\\tmargin-top: -6px;\\n\\t\\t&--expanded {\\n\\t\\t\\tmax-height: none;\\n\\t\\t\\toverflow: visible;\\n\\t\\t}\\n\\t\\t:deep(img) {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\theight: auto;\\n\\t\\t}\\n\\t}\\n}\\n\\n.rich-contenteditable__input {\\n\\tmin-height: 44px;\\n\\tmargin: 0;\\n\\tpadding: $comment-padding;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineStore } from 'pinia'\n\nexport const useDeletedCommentLimbo = defineStore('deletedCommentLimbo', {\n\tstate: () => ({\n\t\tidsInLimbo: [],\n\t}),\n\tactions: {\n\t\taddId(id) {\n\t\t\tthis.idsInLimbo.push(id)\n\t\t},\n\n\t\tremoveId(id) {\n\t\t\tconst index = this.idsInLimbo.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.idsInLimbo.splice(index, 1)\n\t\t\t}\n\t\t},\n\n\t\tcheckForId(id) {\n\t\t\treturn this.idsInLimbo.includes(id)\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @param {any} value -\n * @param {any} passes -\n */\nexport function decodeHtmlEntities(value, passes = 1) {\n\tconst parser = new DOMParser()\n\tlet decoded = value\n\tfor (let i = 0; i < passes; i++) {\n\t\tdecoded = parser.parseFromString(decoded, 'text/html').documentElement.textContent\n\t}\n\treturn decoded\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.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!./Comment.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Comment.vue?vue&type=template&id=70317f94&scoped=true\"\nimport script from \"./Comment.vue?vue&type=script&lang=js\"\nexport * from \"./Comment.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comment.vue?vue&type=style&index=0&id=70317f94&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 \"70317f94\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.tag,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.deleted && !_vm.isLimbo),expression:\"!deleted && !isLimbo\"}],tag:\"component\",staticClass:\"comment\",class:{ 'comment--loading': _vm.loading }},[_c('div',{staticClass:\"comment__side\"},[_c('NcAvatar',{staticClass:\"comment__avatar\",attrs:{\"display-name\":_vm.actorDisplayName,\"user\":_vm.actorId,\"size\":32}})],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__body\"},[_c('div',{staticClass:\"comment__header\"},[_c('span',{staticClass:\"comment__author\"},[_vm._v(_vm._s(_vm.actorDisplayName))]),_vm._v(\" \"),(_vm.isOwnComment && _vm.id && !_vm.loading)?_c('NcActions',{staticClass:\"comment__actions\"},[(!_vm.editing)?[_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onEdit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconPencilOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,3345211262)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Edit comment'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onDeleteWithUndo},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconTrashCanOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,1034796883)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Delete comment'))+\"\\n\\t\\t\\t\\t\\t\")])]:_c('NcActionButton',{on:{\"click\":_vm.onEditCancel},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconClose',{attrs:{\"size\":20}})]},proxy:true}],null,false,2888946197)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Cancel edit'))+\"\\n\\t\\t\\t\\t\")])],2):_vm._e(),_vm._v(\" \"),(_vm.id && _vm.loading)?_c('div',{staticClass:\"comment_loading icon-loading-small\"}):(_vm.creationDateTime)?_c('NcDateTime',{staticClass:\"comment__timestamp\",attrs:{\"timestamp\":_vm.timestamp,\"ignore-seconds\":true}}):_vm._e()],1),_vm._v(\" \"),(_vm.editor || _vm.editing)?_c('form',{staticClass:\"comment__editor\",on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{staticClass:\"comment__editor-group\"},[_c('NcRichContenteditable',{ref:\"editor\",attrs:{\"auto-complete\":_vm.autoComplete,\"contenteditable\":!_vm.loading,\"label\":_vm.editor ? _vm.t('comments', 'New comment') : _vm.t('comments', 'Edit comment'),\"placeholder\":_vm.t('comments', 'Write a comment …'),\"model-value\":_vm.localMessage,\"user-data\":_vm.userData,\"aria-describedby\":\"tab-comments__editor-description\"},on:{\"update:value\":_vm.updateLocalMessage,\"submit\":_vm.onSubmit}}),_vm._v(\" \"),_c('div',{staticClass:\"comment__submit\"},[_c('NcButton',{attrs:{\"variant\":\"tertiary-no-background\",\"type\":\"submit\",\"aria-label\":_vm.t('comments', 'Post comment'),\"disabled\":_vm.isEmptyMessage},on:{\"click\":_vm.onSubmit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('IconArrowRight',{attrs:{\"size\":20}})]},proxy:true}],null,false,758946661)})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__editor-description\",attrs:{\"id\":\"tab-comments__editor-description\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', '@ for mentions, : for emoji, / for smart picker'))+\"\\n\\t\\t\\t\")])]):_c('NcRichText',{staticClass:\"comment__message\",class:{ 'comment__message--expanded': _vm.expanded },attrs:{\"text\":_vm.richContent.message,\"arguments\":_vm.richContent.mentions,\"use-markdown\":\"\"},nativeOn:{\"click\":function($event){return _vm.onExpand.apply(null, arguments)}}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getRootPath } from '../utils/davUtils.js'\nimport { decodeHtmlEntities } from '../utils/decodeHtmlEntities.js'\nimport client from './DavClient.js'\n\n/**\n * Retrieve the comments list\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {string} message the message\n * @return {object} the new comment\n */\nexport default async function(resourceType, resourceId, message) {\n\tconst resourcePath = ['', resourceType, resourceId].join('/')\n\n\tconst response = await axios.post(getRootPath() + resourcePath, {\n\t\tactorDisplayName: getCurrentUser().displayName,\n\t\tactorId: getCurrentUser().uid,\n\t\tactorType: 'users',\n\t\tcreationDateTime: (new Date()).toUTCString(),\n\t\tmessage,\n\t\tobjectType: resourceType,\n\t\tverb: 'comment',\n\t})\n\n\t// Retrieve comment id from resource location\n\tconst commentId = parseInt(response.headers['content-location'].split('/').pop())\n\tconst commentPath = resourcePath + '/' + commentId\n\n\t// Fetch newly created comment data\n\tconst comment = await client.stat(commentPath, {\n\t\tdetails: true,\n\t})\n\n\tconst props = comment.data.props\n\t// Decode twice to handle potentially double-encoded entities\n\t// FIXME Remove this once https://github.com/nextcloud/server/issues/29306\n\t// is resolved\n\tprops.actorDisplayName = decodeHtmlEntities(props.actorDisplayName, 2)\n\tprops.message = decodeHtmlEntities(props.message, 2)\n\n\treturn comment.data\n}\n","import { getCurrentUser } from '@nextcloud/auth';\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n props: {\n resourceId: {\n type: Number,\n required: true,\n },\n resourceType: {\n type: String,\n default: 'files',\n },\n },\n data() {\n return {\n editorData: {\n actorDisplayName: getCurrentUser().displayName,\n actorId: getCurrentUser().uid,\n key: 'editor',\n },\n userData: {},\n currentResourceId: this.resourceId,\n };\n },\n methods: {\n /**\n * Autocomplete @mentions\n *\n * @param search the query\n * @param callback the callback to process the results with\n */\n async autoComplete(search, callback) {\n const { data } = await axios.get(generateOcsUrl('core/autocomplete/get'), {\n params: {\n search,\n itemType: this.resourceType,\n itemId: this.currentResourceId,\n sorter: 'commenters|share-recipients',\n limit: loadState('comments', 'maxAutoCompleteResults'),\n },\n });\n // Save user data so it can be used by the editor to replace mentions\n data.ocs.data.forEach((user) => {\n this.userData[user.id] = user;\n });\n return callback(Object.values(this.userData));\n },\n /**\n * Make sure we have all mentions as Array of objects\n *\n * @param mentions the mentions list\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n genMentionsData(mentions) {\n Object.values(mentions)\n .flat()\n .forEach((mention) => {\n this.userData[mention.mentionId] = {\n // TODO: support groups\n icon: 'icon-user',\n id: mention.mentionId,\n label: mention.mentionDisplayName,\n source: 'users',\n primary: getCurrentUser()?.uid === mention.mentionId,\n };\n });\n return this.userData;\n },\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Delete a comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n */\nexport default async function(resourceType, resourceId, commentId) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\t// Fetch newly created comment data\n\tawait client.deleteFile(commentPath)\n}\n"],"names":["props","id","type","Number","default","message","String","resourceId","required","resourceType","data","deleted","editing","loading","computed","mapStores","useDeletedCommentLimbo","methods","onEdit","this","onEditCancel","updateLocalMessage","onEditComment","EditComment","logger","debug","$emit","error","showError","t","onDeleteWithUndo","deletedCommentLimboStore","addId","timeOutDelete","setTimeout","onDelete","TOAST_UNDO_TIMEOUT","showUndo","clearTimeout","removeId","DeleteComment","onNewComment","newComment","NewComment","localMessage","async","commentId","commentPath","join","client","customRequest","method","___CSS_LOADER_EXPORT___","push","module","name","components","IconArrowRight","IconClose","IconTrashCanOutline","IconPencilOutline","NcActionButton","NcActions","NcActionSeparator","NcAvatar","NcButton","NcDateTime","NcLoadingIcon","NcRichContenteditable","NcRichText","mixins","CommentMixin","inheritAttrs","actorDisplayName","actorId","creationDateTime","editor","Boolean","autoComplete","Function","userData","Object","tag","expanded","submitted","isOwnComment","getCurrentUser","uid","richContent","mentions","keys","forEach","user","index","key","regex","RegExp","replace","component","NcUserBubble","displayName","label","primary","isEmptyMessage","trim","timestamp","Date","parse","isLimbo","checkForId","watch","beforeMount","toString","onSubmit","$nextTick","$refs","$el","focus","onExpand","defineStore","state","idsInLimbo","actions","indexOf","splice","includes","decodeHtmlEntities","value","passes","parser","DOMParser","decoded","i","parseFromString","documentElement","textContent","render","_vm","_c","_self","directives","rawName","expression","staticClass","class","attrs","_v","_s","on","scopedSlots","_u","fn","proxy","_e","$event","preventDefault","ref","nativeOn","apply","arguments","staticRenderFns","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","resourcePath","response","axios","post","getRootPath","actorType","toUTCString","objectType","verb","parseInt","headers","split","pop","comment","stat","details","defineComponent","editorData","currentResourceId","search","callback","get","generateOcsUrl","params","itemType","itemId","sorter","limit","loadState","ocs","values","genMentionsData","flat","mention","mentionId","icon","mentionDisplayName","source","deleteFile"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/comments-comments-app.js b/dist/comments-comments-app.js index 3b3652e4279..880358128e9 100644 --- a/dist/comments-comments-app.js +++ b/dist/comments-comments-app.js @@ -1,2 +1,2 @@ -(()=>{var e,n,o,s={9064:(e,n,o)=>{"use strict";const s=(0,o(35947).YK)().setApp("comments").detectUser().build();var i=o(21777),r=o(53334),a=o(10810),c=o(85471),l=o(85168),m=o(57579),d=o(74095),u=o(42507),p=o(57578);const A={name:"MessageReplyTextOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var h=o(14486);const g=(0,h.A)(A,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon message-reply-text-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9 11H18V13H9V11M18 7H6V9H18V7M22 4V22L18 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.89 22 4M20 4H4V16H18.83L20 17.17V4Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,C={name:"RefreshIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},f=(0,h.A)(C,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon refresh-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports;var y=o(57505),_=o(24764),b=o(15502),v=o(41944),x=o(4604),w=o(88289),I=o(77764),T=o(33691),k=o(66001),D=o(16502),N=o(37793),S=o(60669),O=o(63814);function E(){return(0,O.dC)("dav/comments")}const R=(0,S.UU)(E());function B(t){R.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:t??""})}(0,i.zo)(B),B((0,i.do)());const M=R;var L=o(19051);function $(t,e=1){const n=new DOMParser;let o=t;for(let t=0;t({idsInLimbo:[]}),actions:{addId(t){this.idsInLimbo.push(t)},removeId(t){const e=this.idsInLimbo.indexOf(t);e>-1&&this.idsInLimbo.splice(e,1)},checkForId(t){return this.idsInLimbo.includes(t)}}}),j={props:{id:{type:Number,default:null},message:{type:String,default:""},resourceId:{type:[String,Number],required:!0},resourceType:{type:String,default:"files"}},data:()=>({deleted:!1,editing:!1,loading:!1}),computed:{...(0,a.n2)(P)},methods:{onEdit(){this.editing=!0},onEditCancel(){this.editing=!1,this.updateLocalMessage(this.message)},async onEditComment(e){this.loading=!0;try{await async function(t,e,n,o){const s=["",t,e,n].join("/");return await M.customRequest(s,{method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${o}\n\t\t\t\t\n\t\t\t\n\t\t\t`})}(this.resourceType,this.resourceId,this.id,e),s.debug("Comment edited",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id,message:e}),this.$emit("update:message",e),this.editing=!1}catch(e){(0,l.Qg)(t("comments","An error occurred while trying to edit the comment")),s.error("An error occurred while trying to edit the comment",{error:e})}finally{this.loading=!1}},onDeleteWithUndo(){this.$emit("delete"),this.deleted=!0,this.deletedCommentLimboStore.addId(this.id);const e=setTimeout(this.onDelete,l.Br);(0,l._h)(t("comments","Comment deleted"),()=>{clearTimeout(e),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)})},async onDelete(){try{await async function(t,e,n){const o=["",t,e,n].join("/");await M.deleteFile(o)}(this.resourceType,this.resourceId,this.id),s.debug("Comment deleted",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id}),this.$emit("delete",this.id)}catch(e){(0,l.Qg)(t("comments","An error occurred while trying to delete the comment")),s.error("An error occurred while trying to delete the comment",{error:e}),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)}},async onNewComment(e){this.loading=!0;try{const t=await async function(t,e,n){const o=["",t,e].join("/"),s=await L.Ay.post(E()+o,{actorDisplayName:(0,i.HW)().displayName,actorId:(0,i.HW)().uid,actorType:"users",creationDateTime:(new Date).toUTCString(),message:n,objectType:t,verb:"comment"}),r=o+"/"+parseInt(s.headers["content-location"].split("/").pop()),a=await M.stat(r,{details:!0}),c=a.data.props;return c.actorDisplayName=$(c.actorDisplayName,2),c.message=$(c.message,2),a.data}(this.resourceType,this.resourceId,e);s.debug("New comment posted",{resourceType:this.resourceType,resourceId:this.resourceId,newComment:t}),this.$emit("new",t),this.$emit("update:message",""),this.localMessage=""}catch(e){(0,l.Qg)(t("comments","An error occurred while trying to create the comment")),s.error("An error occurred while trying to create the comment",{error:e})}finally{this.loading=!1}}}},H={name:"Comment",components:{IconArrowRight:T.A,IconClose:k.A,IconTrashCanOutline:N.A,IconPencilOutline:D.A,NcActionButton:y.A,NcActions:_.A,NcActionSeparator:b.A,NcAvatar:v.A,NcButton:d.A,NcDateTime:x.A,NcLoadingIcon:w.A,NcRichContenteditable:()=>Promise.all([o.e(4208),o.e(6768),o.e(8154),o.e(5258)]).then(o.bind(o,95528)),NcRichText:()=>Promise.all([o.e(4208),o.e(6768),o.e(4508)]).then(o.bind(o,64508))},mixins:[j],inheritAttrs:!1,props:{actorDisplayName:{type:String,required:!0},actorId:{type:String,required:!0},creationDateTime:{type:String,default:null},editor:{type:Boolean,default:!1},autoComplete:{type:Function,required:!0},userData:{type:Object,default:()=>({})},tag:{type:String,default:"div"}},data:()=>({expanded:!1,localMessage:"",submitted:!1}),computed:{...(0,a.n2)(P),isOwnComment(){return(0,i.HW)().uid===this.actorId},richContent(){const t={};let e=this.localMessage;return Object.keys(this.userData).forEach((n,o)=>{const s=`mention-${o}`,i=new RegExp(`@${n}|@"${n}"`,"g");e=e.replace(i,`{${s}}`),t[s]={component:I.A,props:{user:n,displayName:this.userData[n].label,primary:this.userData[n].primary}}}),{mentions:t,message:e}},isEmptyMessage(){return!this.localMessage||""===this.localMessage.trim()},timestamp(){return Date.parse(this.creationDateTime)},isLimbo(){return this.deletedCommentLimboStore.checkForId(this.id)}},watch:{message(t){this.updateLocalMessage(t)}},beforeMount(){this.updateLocalMessage(this.message)},methods:{t:r.Tl,updateLocalMessage(t){this.localMessage=t.toString(),this.submitted=!1},onSubmit(){if(""!==this.localMessage.trim())return this.editor?(this.onNewComment(this.localMessage.trim()),void this.$nextTick(()=>{this.$refs.editor.$el.focus()})):void this.onEditComment(this.localMessage.trim())},onExpand(){this.expanded=!0}}};var q=o(85072),V=o.n(q),z=o(97825),W=o.n(z),G=o(77659),F=o.n(G),U=o(55056),Y=o.n(U),Q=o(10540),K=o.n(Q),Z=o(41113),X=o.n(Z),J=o(34579),tt={};tt.styleTagTransform=X(),tt.setAttributes=Y(),tt.insert=F().bind(null,"head"),tt.domAPI=W(),tt.insertStyleElement=K(),V()(J.A,tt),J.A&&J.A.locals&&J.A.locals;const et=(0,h.A)(H,function(){var t=this,e=t._self._c;return e(t.tag,{directives:[{name:"show",rawName:"v-show",value:!t.deleted&&!t.isLimbo,expression:"!deleted && !isLimbo"}],tag:"component",staticClass:"comment",class:{"comment--loading":t.loading}},[e("div",{staticClass:"comment__side"},[e("NcAvatar",{staticClass:"comment__avatar",attrs:{"display-name":t.actorDisplayName,user:t.actorId,size:32}})],1),t._v(" "),e("div",{staticClass:"comment__body"},[e("div",{staticClass:"comment__header"},[e("span",{staticClass:"comment__author"},[t._v(t._s(t.actorDisplayName))]),t._v(" "),t.isOwnComment&&t.id&&!t.loading?e("NcActions",{staticClass:"comment__actions"},[t.editing?e("NcActionButton",{on:{click:t.onEditCancel},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconClose",{attrs:{size:20}})]},proxy:!0}],null,!1,2888946197)},[t._v("\n\t\t\t\t\t"+t._s(t.t("comments","Cancel edit"))+"\n\t\t\t\t")]):[e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onEdit},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconPencilOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,3345211262)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Edit comment"))+"\n\t\t\t\t\t")]),t._v(" "),e("NcActionSeparator"),t._v(" "),e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onDeleteWithUndo},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconTrashCanOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,1034796883)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Delete comment"))+"\n\t\t\t\t\t")])]],2):t._e(),t._v(" "),t.id&&t.loading?e("div",{staticClass:"comment_loading icon-loading-small"}):t.creationDateTime?e("NcDateTime",{staticClass:"comment__timestamp",attrs:{timestamp:t.timestamp,"ignore-seconds":!0}}):t._e()],1),t._v(" "),t.editor||t.editing?e("form",{staticClass:"comment__editor",on:{submit:function(t){t.preventDefault()}}},[e("div",{staticClass:"comment__editor-group"},[e("NcRichContenteditable",{ref:"editor",attrs:{"auto-complete":t.autoComplete,contenteditable:!t.loading,label:t.editor?t.t("comments","New comment"):t.t("comments","Edit comment"),placeholder:t.t("comments","Write a comment …"),"model-value":t.localMessage,"user-data":t.userData,"aria-describedby":"tab-comments__editor-description"},on:{"update:value":t.updateLocalMessage,submit:t.onSubmit}}),t._v(" "),e("div",{staticClass:"comment__submit"},[e("NcButton",{attrs:{variant:"tertiary-no-background",type:"submit","aria-label":t.t("comments","Post comment"),disabled:t.isEmptyMessage},on:{click:t.onSubmit},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon"):e("IconArrowRight",{attrs:{size:20}})]},proxy:!0}],null,!1,758946661)})],1)],1),t._v(" "),e("div",{staticClass:"comment__editor-description",attrs:{id:"tab-comments__editor-description"}},[t._v("\n\t\t\t\t"+t._s(t.t("comments","@ for mentions, : for emoji, / for smart picker"))+"\n\t\t\t")])]):e("NcRichText",{staticClass:"comment__message",class:{"comment__message--expanded":t.expanded},attrs:{text:t.richContent.message,arguments:t.richContent.mentions},nativeOn:{click:function(e){return t.onExpand.apply(null,arguments)}}})],1)])},[],!1,null,"6be9790b",null).exports;var nt=o(81222);const ot=(0,c.pM)({props:{resourceId:{type:Number,required:!0},resourceType:{type:String,default:"files"}},data(){return{editorData:{actorDisplayName:(0,i.HW)().displayName,actorId:(0,i.HW)().uid,key:"editor"},userData:{},currentResourceId:this.resourceId}},methods:{async autoComplete(t,e){const{data:n}=await L.Ay.get((0,O.KT)("core/autocomplete/get"),{params:{search:t,itemType:this.resourceType,itemId:this.currentResourceId,sorter:"commenters|share-recipients",limit:(0,nt.C)("comments","maxAutoCompleteResults")}});return n.ocs.data.forEach(t=>{this.userData[t.id]=t}),e(Object.values(this.userData))},genMentionsData(t){return Object.values(t).flat().forEach(t=>{this.userData[t.mentionId]={icon:"icon-user",id:t.mentionId,label:t.mentionDisplayName,source:"users",primary:(0,i.HW)()?.uid===t.mentionId}}),this.userData}}});var st=o(29999),it=o(90176);async function rt({resourceType:t,resourceId:e},n){const o=["",t,e].join("/"),s=n.datetime?`${n.datetime.toISOString()}`:"",i=await M.customRequest(o,{method:"REPORT",data:`\n\t\t\t\n\t\t\t\t${n.limit??20}\n\t\t\t\t${n.offset||0}\n\t\t\t\t${s}\n\t\t\t`,...n}),r=await i.text(),a=function(t,e=!1){const{multistatus:{response:n}}=t;return n.map(t=>{const n=t.propstat.prop;return(0,it.ch)(n,n.id.toString(),e)})}(await(0,S.h4)(r),!0);return(0,st.hq)(i,a,!0)}const at={name:"Comments",components:{Comment:et,NcEmptyContent:u.A,NcButton:d.A,IconRefresh:f,IconMessageReplyTextOutline:g,IconAlertCircleOutline:p.A},directives:{elementVisibility:m.Zx},mixins:[ot],data:()=>({error:"",loading:!1,done:!1,offset:0,comments:[],cancelRequest:()=>{},Comment:et,userData:{}}),computed:{hasComments(){return this.comments.length>0},isFirstLoading(){return this.loading&&0===this.offset}},watch:{resourceId(){this.currentResourceId=this.resourceId}},methods:{t:r.Tl,async onVisibilityChange(t){if(t)try{await function(t,e,n){const o=["",t,e].join("/"),s=n.toUTCString();return M.customRequest(o,{method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${s}\n\t\t\t\t\n\t\t\t\n\t\t\t`})}(this.resourceType,this.currentResourceId,new Date)}catch(t){(0,l.Qg)(t.message||(0,r.Tl)("comments","Failed to mark comments as read"))}},async update(t){this.currentResourceId=t,this.resetState(),await this.getComments()},onScrollBottomReached(){this.error||this.done||this.loading||this.getComments()},async getComments(){this.cancelRequest("cancel");try{this.loading=!0,this.error="";const{request:t,abort:e}=function(t){const e=new AbortController,n=e.signal;return{request:async function(e,o){return await t(e,{signal:n,...o})},abort:()=>e.abort()}}(rt);this.cancelRequest=e;const{data:n}=await t({resourceType:this.resourceType,resourceId:this.currentResourceId},{offset:this.offset})||{data:[]};this.logger.debug(`Processed ${n.length} comments`,{comments:n}),n.length<20&&(this.done=!0);for(const t of n)t.props.actorId=t.props.actorId.toString();this.comments=[...this.comments,...n],this.offset+=20}catch(t){if("cancel"===t.message)return;this.error=(0,r.Tl)("comments","Unable to load the comments list"),s.error("Error loading the comments list",{error:t})}finally{this.loading=!1}},onNewComment(t){this.comments.unshift(t)},onDelete(t){const e=this.comments.findIndex(e=>e.props.id===t);e>-1?this.comments.splice(e,1):s.error("Could not find the deleted comment in the list",{id:t})},resetState(){this.error="",this.loading=!1,this.done=!1,this.offset=0,this.comments=[]}}};var ct=o(94262),lt={};lt.styleTagTransform=X(),lt.setAttributes=Y(),lt.insert=F().bind(null,"head"),lt.domAPI=W(),lt.insertStyleElement=K(),V()(ct.A,lt),ct.A&&ct.A.locals&&ct.A.locals;const mt=(0,h.A)(at,function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"element-visibility",rawName:"v-element-visibility",value:t.onVisibilityChange,expression:"onVisibilityChange"}],staticClass:"comments",class:{"icon-loading":t.isFirstLoading}},[e("Comment",t._b({staticClass:"comments__writer",attrs:{"auto-complete":t.autoComplete,"resource-type":t.resourceType,editor:!0,"user-data":t.userData,"resource-id":t.currentResourceId},on:{new:t.onNewComment}},"Comment",t.editorData,!1)),t._v(" "),t.isFirstLoading?t._e():[!t.hasComments&&t.done?e("NcEmptyContent",{staticClass:"comments__empty",attrs:{name:t.t("comments","No comments yet, start the conversation!")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconMessageReplyTextOutline")]},proxy:!0}],null,!1,326612300)}):e("ul",t._l(t.comments,function(n){return e("Comment",t._b({key:n.props.id,staticClass:"comments__list",attrs:{tag:"li","auto-complete":t.autoComplete,"resource-type":t.resourceType,message:n.props.message,"resource-id":t.currentResourceId,"user-data":t.genMentionsData(n.props.mentions)},on:{"update:message":function(e){return t.$set(n.props,"message",e)},delete:t.onDelete}},"Comment",n.props,!1))}),1),t._v(" "),t.loading&&!t.isFirstLoading?e("div",{staticClass:"comments__info icon-loading"}):t.hasComments&&t.done?e("div",{staticClass:"comments__info"},[t._v("\n\t\t\t"+t._s(t.t("comments","No more messages"))+"\n\t\t")]):t.error?[e("NcEmptyContent",{staticClass:"comments__error",attrs:{name:t.error},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconAlertCircleOutline")]},proxy:!0}],null,!1,3663249556)}),t._v(" "),e("NcButton",{staticClass:"comments__retry",on:{click:t.getComments},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconRefresh")]},proxy:!0}],null,!1,2997625269)},[t._v("\n\t\t\t\t"+t._s(t.t("comments","Retry"))+"\n\t\t\t")])]:t._e()]],2)},[],!1,null,"6c8c157a",null).exports;c.Ay.use(a.R2),o.nc=(0,i.aV)(),c.Ay.mixin({data:()=>({logger:s}),methods:{t:r.t,n:r.n}}),window.OCA&&!window.OCA.Comments&&Object.assign(window.OCA,{Comments:{}}),Object.assign(window.OCA.Comments,{View:class{constructor(t="files",e={}){const n=(0,a.Ey)();return e={...e,propsData:{...e.propsData??{},resourceType:t},pinia:n},new(c.Ay.extend(mt))(e)}}}),s.debug("OCA.Comments.View initialized")},15340:()=>{},34579:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(71354),s=n.n(o),i=n(76314),r=n.n(i)()(s());r.push([t.id,".comment[data-v-6be9790b]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-6be9790b]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-6be9790b]{display:flex;flex-grow:1;flex-direction:column;container-type:inline-size}.comment__header[data-v-6be9790b]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-6be9790b]{margin-inline-start:10px !important}.comment__author[data-v-6be9790b]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-6be9790b],.comment__timestamp[data-v-6be9790b]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-6be9790b]{position:relative}.comment__editor-description[data-v-6be9790b]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-6be9790b]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-6be9790b]{white-space:pre-wrap;word-break:normal;max-height:70px;overflow:hidden;margin-top:-6px}.comment__message--expanded[data-v-6be9790b]{max-height:none;overflow:visible}.rich-contenteditable__input[data-v-6be9790b]{min-height:44px;margin:0;padding:10px}","",{version:3,sources:["webpack://./apps/comments/src/components/Comment.vue"],names:[],mappings:"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CACA,0BAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,iBAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YA5EiB",sourcesContent:['\n@use "sass:math";\n\n$comment-padding: 10px;\n\n.comment {\n\tdisplay: flex;\n\tgap: 8px;\n\tpadding: 5px $comment-padding;\n\n\t&__side {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\tpadding-top: 6px;\n\t}\n\n\t&__body {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\tflex-direction: column;\n\t\tcontainer-type: inline-size;\n\t}\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tmin-height: 44px;\n\t}\n\n\t&__actions {\n\t\tmargin-inline-start: $comment-padding !important;\n\t}\n\n\t&__author {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&_loading,\n\t&__timestamp {\n\t\tmargin-inline-start: auto;\n\t\ttext-align: end;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__editor-group {\n\t\tposition: relative;\n\t}\n\n\t&__editor-description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tpadding-block: var(--default-grid-baseline);\n\t}\n\n\t&__submit {\n\t\tposition: absolute !important;\n\t\tbottom: 5px;\n\t\tinset-inline-end: 0;\n\t}\n\n\t&__message {\n\t\twhite-space: pre-wrap;\n\t\tword-break: normal;\n\t\tmax-height: 70px;\n\t\toverflow: hidden;\n\t\tmargin-top: -6px;\n\t\t&--expanded {\n\t\t\tmax-height: none;\n\t\t\toverflow: visible;\n\t\t}\n\t}\n}\n\n.rich-contenteditable__input {\n\tmin-height: 44px;\n\tmargin: 0;\n\tpadding: $comment-padding;\n}\n\n'],sourceRoot:""}]);const a=r},42634:()=>{},47790:()=>{},51069:()=>{},59169:()=>{},63779:()=>{},64688:()=>{},66089:()=>{},73776:()=>{},77199:()=>{},77965:()=>{},78982:()=>{},79368:()=>{},79838:()=>{},86833:()=>{},94262:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(71354),s=n.n(o),i=n(76314),r=n.n(i)()(s());r.push([t.id,".comments[data-v-6c8c157a]{min-height:100%;display:flex;flex-direction:column}.comments__empty[data-v-6c8c157a],.comments__error[data-v-6c8c157a]{flex:1 0}.comments__retry[data-v-6c8c157a]{margin:0 auto}.comments__info[data-v-6c8c157a]{height:60px;color:var(--color-text-maxcontrast);text-align:center;line-height:60px}","",{version:3,sources:["webpack://./apps/comments/src/views/Comments.vue"],names:[],mappings:"AACA,2BACC,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,oEAEC,QAAA,CAGD,kCACC,aAAA,CAGD,iCACC,WAAA,CACA,mCAAA,CACA,iBAAA,CACA,gBAAA",sourcesContent:["\n.comments {\n\tmin-height: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t&__empty,\n\t&__error {\n\t\tflex: 1 0;\n\t}\n\n\t&__retry {\n\t\tmargin: 0 auto;\n\t}\n\n\t&__info {\n\t\theight: 60px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\ttext-align: center;\n\t\tline-height: 60px;\n\t}\n}\n"],sourceRoot:""}]);const a=r}},i={};function r(t){var e=i[t];if(void 0!==e)return e.exports;var n=i[t]={id:t,loaded:!1,exports:{}};return s[t].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=s,e=[],r.O=(t,n,o,s)=>{if(!n){var i=1/0;for(m=0;m=s)&&Object.keys(r.O).every(t=>r.O[t](n[c]))?n.splice(c--,1):(a=!1,s0&&e[m-1][2]>s;m--)e[m]=e[m-1];e[m]=[n,o,s]},r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.f={},r.e=t=>Promise.all(Object.keys(r.f).reduce((e,n)=>(r.f[n](t,e),e),[])),r.u=t=>t+"-"+t+".js?v="+{594:"2c86902dfae9a5006399",620:"8f7783b39d802f10e22b",2391:"908fc68e4bc9b878c937",2880:"fdf99dc4a6f328ebe498",4325:"67df7ab13a8e8d214551",4508:"61802d3dfc5cc8f443ef",5258:"0f6571662152e8883015",5862:"d020c05f13d21afee82a",6768:"c1c515178e2c30a27e58",7145:"7889fe0b0ebc57e3d5f1",8154:"4eb4313dee22e0ddb7de",8339:"6cdca71a6b3b2d7bef33"}[t],r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n={},o="nextcloud-ui-legacy:",r.l=(t,e,s,i)=>{if(n[t])n[t].push(e);else{var a,c;if(void 0!==s)for(var l=document.getElementsByTagName("script"),m=0;m{a.onerror=a.onload=null,clearTimeout(p);var s=n[t];if(delete n[t],a.parentNode&&a.parentNode.removeChild(a),s&&s.forEach(t=>t(o)),e)return e(o)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),c&&document.head.appendChild(a)}},r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),r.j=7062,(()=>{var t;globalThis.importScripts&&(t=globalThis.location+"");var e=globalThis.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");if(n.length)for(var o=n.length-1;o>-1&&(!t||!/^http(s?):/.test(t));)t=n[o--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t})(),(()=>{var t={7062:0};r.f.j=(e,n)=>{var o=r.o(t,e)?t[e]:void 0;if(0!==o)if(o)n.push(o[2]);else{var s=new Promise((n,s)=>o=t[e]=[n,s]);n.push(o[2]=s);var i=r.p+r.u(e),a=new Error;r.l(i,n=>{if(r.o(t,e)&&(0!==(o=t[e])&&(t[e]=void 0),o)){var s=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;a.message="Loading chunk "+e+" failed.\n("+s+": "+i+")",a.name="ChunkLoadError",a.type=s,a.request=i,o[1](a)}},"chunk-"+e,e)}},r.O.j=e=>0===t[e];var e=(e,n)=>{var o,s,[i,a,c]=n,l=0;if(i.some(e=>0!==t[e])){for(o in a)r.o(a,o)&&(r.m[o]=a[o]);if(c)var m=c(r)}for(e&&e(n);lr(9064));a=r.O(a)})(); -//# sourceMappingURL=comments-comments-app.js.map?v=8fa05ea78d72cf2c028f \ No newline at end of file +(()=>{var e,n,o,s={11541:(e,n,o)=>{"use strict";const s=(0,o(35947).YK)().setApp("comments").detectUser().build();var i=o(21777),r=o(53334),a=o(10810),c=o(85471),l=o(85168),m=o(57579),d=o(74095),u=o(42507),p=o(57578);const A={name:"MessageReplyTextOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var h=o(14486);const g=(0,h.A)(A,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon message-reply-text-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9 11H18V13H9V11M18 7H6V9H18V7M22 4V22L18 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.89 22 4M20 4H4V16H18.83L20 17.17V4Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,C={name:"RefreshIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},f=(0,h.A)(C,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon refresh-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports;var _=o(57505),y=o(24764),v=o(15502),b=o(41944),x=o(4604),w=o(88289),I=o(77764),T=o(33691),k=o(66001),D=o(16502),N=o(37793),S=o(60669),O=o(63814);function E(){return(0,O.dC)("dav/comments")}const R=(0,S.UU)(E());function B(t){R.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:t??""})}(0,i.zo)(B),B((0,i.do)());const M=R;var L=o(19051);function $(t,e=1){const n=new DOMParser;let o=t;for(let t=0;t({idsInLimbo:[]}),actions:{addId(t){this.idsInLimbo.push(t)},removeId(t){const e=this.idsInLimbo.indexOf(t);e>-1&&this.idsInLimbo.splice(e,1)},checkForId(t){return this.idsInLimbo.includes(t)}}}),j={props:{id:{type:Number,default:null},message:{type:String,default:""},resourceId:{type:[String,Number],required:!0},resourceType:{type:String,default:"files"}},data:()=>({deleted:!1,editing:!1,loading:!1}),computed:{...(0,a.n2)(P)},methods:{onEdit(){this.editing=!0},onEditCancel(){this.editing=!1,this.updateLocalMessage(this.message)},async onEditComment(e){this.loading=!0;try{await async function(t,e,n,o){const s=["",t,e,n].join("/");return await M.customRequest(s,{method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${o}\n\t\t\t\t\n\t\t\t\n\t\t\t`})}(this.resourceType,this.resourceId,this.id,e),s.debug("Comment edited",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id,message:e}),this.$emit("update:message",e),this.editing=!1}catch(e){(0,l.Qg)(t("comments","An error occurred while trying to edit the comment")),s.error("An error occurred while trying to edit the comment",{error:e})}finally{this.loading=!1}},onDeleteWithUndo(){this.$emit("delete"),this.deleted=!0,this.deletedCommentLimboStore.addId(this.id);const e=setTimeout(this.onDelete,l.Br);(0,l._h)(t("comments","Comment deleted"),()=>{clearTimeout(e),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)})},async onDelete(){try{await async function(t,e,n){const o=["",t,e,n].join("/");await M.deleteFile(o)}(this.resourceType,this.resourceId,this.id),s.debug("Comment deleted",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id}),this.$emit("delete",this.id)}catch(e){(0,l.Qg)(t("comments","An error occurred while trying to delete the comment")),s.error("An error occurred while trying to delete the comment",{error:e}),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)}},async onNewComment(e){this.loading=!0;try{const t=await async function(t,e,n){const o=["",t,e].join("/"),s=await L.Ay.post(E()+o,{actorDisplayName:(0,i.HW)().displayName,actorId:(0,i.HW)().uid,actorType:"users",creationDateTime:(new Date).toUTCString(),message:n,objectType:t,verb:"comment"}),r=o+"/"+parseInt(s.headers["content-location"].split("/").pop()),a=await M.stat(r,{details:!0}),c=a.data.props;return c.actorDisplayName=$(c.actorDisplayName,2),c.message=$(c.message,2),a.data}(this.resourceType,this.resourceId,e);s.debug("New comment posted",{resourceType:this.resourceType,resourceId:this.resourceId,newComment:t}),this.$emit("new",t),this.$emit("update:message",""),this.localMessage=""}catch(e){(0,l.Qg)(t("comments","An error occurred while trying to create the comment")),s.error("An error occurred while trying to create the comment",{error:e})}finally{this.loading=!1}}}},H={name:"Comment",components:{IconArrowRight:T.A,IconClose:k.A,IconTrashCanOutline:N.A,IconPencilOutline:D.A,NcActionButton:_.A,NcActions:y.A,NcActionSeparator:v.A,NcAvatar:b.A,NcButton:d.A,NcDateTime:x.A,NcLoadingIcon:w.A,NcRichContenteditable:()=>Promise.all([o.e(4208),o.e(6768),o.e(8154),o.e(5258)]).then(o.bind(o,95528)),NcRichText:()=>Promise.all([o.e(4208),o.e(6768),o.e(4508)]).then(o.bind(o,64508))},mixins:[j],inheritAttrs:!1,props:{actorDisplayName:{type:String,required:!0},actorId:{type:String,required:!0},creationDateTime:{type:String,default:null},editor:{type:Boolean,default:!1},autoComplete:{type:Function,required:!0},userData:{type:Object,default:()=>({})},tag:{type:String,default:"div"}},data:()=>({expanded:!1,localMessage:"",submitted:!1}),computed:{...(0,a.n2)(P),isOwnComment(){return(0,i.HW)().uid===this.actorId},richContent(){const t={};let e=this.localMessage;return Object.keys(this.userData).forEach((n,o)=>{const s=`mention-${o}`,i=new RegExp(`@${n}|@"${n}"`,"g");e=e.replace(i,`{${s}}`),t[s]={component:I.A,props:{user:n,displayName:this.userData[n].label,primary:this.userData[n].primary}}}),{mentions:t,message:e}},isEmptyMessage(){return!this.localMessage||""===this.localMessage.trim()},timestamp(){return Date.parse(this.creationDateTime)},isLimbo(){return this.deletedCommentLimboStore.checkForId(this.id)}},watch:{message(t){this.updateLocalMessage(t)}},beforeMount(){this.updateLocalMessage(this.message)},methods:{t:r.Tl,updateLocalMessage(t){this.localMessage=t.toString(),this.submitted=!1},onSubmit(){if(""!==this.localMessage.trim())return this.editor?(this.onNewComment(this.localMessage.trim()),void this.$nextTick(()=>{this.$refs.editor.$el.focus()})):void this.onEditComment(this.localMessage.trim())},onExpand(){this.expanded=!0}}};var q=o(85072),V=o.n(q),z=o(97825),W=o.n(z),F=o(77659),G=o.n(F),U=o(55056),Y=o.n(U),Q=o(10540),K=o.n(Q),Z=o(41113),X=o.n(Z),J=o(22408),tt={};tt.styleTagTransform=X(),tt.setAttributes=Y(),tt.insert=G().bind(null,"head"),tt.domAPI=W(),tt.insertStyleElement=K(),V()(J.A,tt),J.A&&J.A.locals&&J.A.locals;const et=(0,h.A)(H,function(){var t=this,e=t._self._c;return e(t.tag,{directives:[{name:"show",rawName:"v-show",value:!t.deleted&&!t.isLimbo,expression:"!deleted && !isLimbo"}],tag:"component",staticClass:"comment",class:{"comment--loading":t.loading}},[e("div",{staticClass:"comment__side"},[e("NcAvatar",{staticClass:"comment__avatar",attrs:{"display-name":t.actorDisplayName,user:t.actorId,size:32}})],1),t._v(" "),e("div",{staticClass:"comment__body"},[e("div",{staticClass:"comment__header"},[e("span",{staticClass:"comment__author"},[t._v(t._s(t.actorDisplayName))]),t._v(" "),t.isOwnComment&&t.id&&!t.loading?e("NcActions",{staticClass:"comment__actions"},[t.editing?e("NcActionButton",{on:{click:t.onEditCancel},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconClose",{attrs:{size:20}})]},proxy:!0}],null,!1,2888946197)},[t._v("\n\t\t\t\t\t"+t._s(t.t("comments","Cancel edit"))+"\n\t\t\t\t")]):[e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onEdit},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconPencilOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,3345211262)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Edit comment"))+"\n\t\t\t\t\t")]),t._v(" "),e("NcActionSeparator"),t._v(" "),e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onDeleteWithUndo},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconTrashCanOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,1034796883)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Delete comment"))+"\n\t\t\t\t\t")])]],2):t._e(),t._v(" "),t.id&&t.loading?e("div",{staticClass:"comment_loading icon-loading-small"}):t.creationDateTime?e("NcDateTime",{staticClass:"comment__timestamp",attrs:{timestamp:t.timestamp,"ignore-seconds":!0}}):t._e()],1),t._v(" "),t.editor||t.editing?e("form",{staticClass:"comment__editor",on:{submit:function(t){t.preventDefault()}}},[e("div",{staticClass:"comment__editor-group"},[e("NcRichContenteditable",{ref:"editor",attrs:{"auto-complete":t.autoComplete,contenteditable:!t.loading,label:t.editor?t.t("comments","New comment"):t.t("comments","Edit comment"),placeholder:t.t("comments","Write a comment …"),"model-value":t.localMessage,"user-data":t.userData,"aria-describedby":"tab-comments__editor-description"},on:{"update:value":t.updateLocalMessage,submit:t.onSubmit}}),t._v(" "),e("div",{staticClass:"comment__submit"},[e("NcButton",{attrs:{variant:"tertiary-no-background",type:"submit","aria-label":t.t("comments","Post comment"),disabled:t.isEmptyMessage},on:{click:t.onSubmit},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon"):e("IconArrowRight",{attrs:{size:20}})]},proxy:!0}],null,!1,758946661)})],1)],1),t._v(" "),e("div",{staticClass:"comment__editor-description",attrs:{id:"tab-comments__editor-description"}},[t._v("\n\t\t\t\t"+t._s(t.t("comments","@ for mentions, : for emoji, / for smart picker"))+"\n\t\t\t")])]):e("NcRichText",{staticClass:"comment__message",class:{"comment__message--expanded":t.expanded},attrs:{text:t.richContent.message,arguments:t.richContent.mentions,"use-markdown":""},nativeOn:{click:function(e){return t.onExpand.apply(null,arguments)}}})],1)])},[],!1,null,"70317f94",null).exports;var nt=o(81222);const ot=(0,c.pM)({props:{resourceId:{type:Number,required:!0},resourceType:{type:String,default:"files"}},data(){return{editorData:{actorDisplayName:(0,i.HW)().displayName,actorId:(0,i.HW)().uid,key:"editor"},userData:{},currentResourceId:this.resourceId}},methods:{async autoComplete(t,e){const{data:n}=await L.Ay.get((0,O.KT)("core/autocomplete/get"),{params:{search:t,itemType:this.resourceType,itemId:this.currentResourceId,sorter:"commenters|share-recipients",limit:(0,nt.C)("comments","maxAutoCompleteResults")}});return n.ocs.data.forEach(t=>{this.userData[t.id]=t}),e(Object.values(this.userData))},genMentionsData(t){return Object.values(t).flat().forEach(t=>{this.userData[t.mentionId]={icon:"icon-user",id:t.mentionId,label:t.mentionDisplayName,source:"users",primary:(0,i.HW)()?.uid===t.mentionId}}),this.userData}}});var st=o(29999),it=o(90176);async function rt({resourceType:t,resourceId:e},n){const o=["",t,e].join("/"),s=n.datetime?`${n.datetime.toISOString()}`:"",i=await M.customRequest(o,{method:"REPORT",data:`\n\t\t\t\n\t\t\t\t${n.limit??20}\n\t\t\t\t${n.offset||0}\n\t\t\t\t${s}\n\t\t\t`,...n}),r=await i.text(),a=function(t,e=!1){const{multistatus:{response:n}}=t;return n.map(t=>{const n=t.propstat.prop;return(0,it.ch)(n,n.id.toString(),e)})}(await(0,S.h4)(r),!0);return(0,st.hq)(i,a,!0)}const at={name:"Comments",components:{Comment:et,NcEmptyContent:u.A,NcButton:d.A,IconRefresh:f,IconMessageReplyTextOutline:g,IconAlertCircleOutline:p.A},directives:{elementVisibility:m.Zx},mixins:[ot],data:()=>({error:"",loading:!1,done:!1,offset:0,comments:[],cancelRequest:()=>{},Comment:et,userData:{}}),computed:{hasComments(){return this.comments.length>0},isFirstLoading(){return this.loading&&0===this.offset}},watch:{resourceId(){this.currentResourceId=this.resourceId}},methods:{t:r.Tl,async onVisibilityChange(t){if(t)try{await function(t,e,n){const o=["",t,e].join("/"),s=n.toUTCString();return M.customRequest(o,{method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${s}\n\t\t\t\t\n\t\t\t\n\t\t\t`})}(this.resourceType,this.currentResourceId,new Date)}catch(t){(0,l.Qg)(t.message||(0,r.Tl)("comments","Failed to mark comments as read"))}},async update(t){this.currentResourceId=t,this.resetState(),await this.getComments()},onScrollBottomReached(){this.error||this.done||this.loading||this.getComments()},async getComments(){this.cancelRequest("cancel");try{this.loading=!0,this.error="";const{request:t,abort:e}=function(t){const e=new AbortController,n=e.signal;return{request:async function(e,o){return await t(e,{signal:n,...o})},abort:()=>e.abort()}}(rt);this.cancelRequest=e;const{data:n}=await t({resourceType:this.resourceType,resourceId:this.currentResourceId},{offset:this.offset})||{data:[]};this.logger.debug(`Processed ${n.length} comments`,{comments:n}),n.length<20&&(this.done=!0);for(const t of n)t.props.actorId=t.props.actorId.toString();this.comments=[...this.comments,...n],this.offset+=20}catch(t){if("cancel"===t.message)return;this.error=(0,r.Tl)("comments","Unable to load the comments list"),s.error("Error loading the comments list",{error:t})}finally{this.loading=!1}},onNewComment(t){this.comments.unshift(t)},onDelete(t){const e=this.comments.findIndex(e=>e.props.id===t);e>-1?this.comments.splice(e,1):s.error("Could not find the deleted comment in the list",{id:t})},resetState(){this.error="",this.loading=!1,this.done=!1,this.offset=0,this.comments=[]}}};var ct=o(94262),lt={};lt.styleTagTransform=X(),lt.setAttributes=Y(),lt.insert=G().bind(null,"head"),lt.domAPI=W(),lt.insertStyleElement=K(),V()(ct.A,lt),ct.A&&ct.A.locals&&ct.A.locals;const mt=(0,h.A)(at,function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"element-visibility",rawName:"v-element-visibility",value:t.onVisibilityChange,expression:"onVisibilityChange"}],staticClass:"comments",class:{"icon-loading":t.isFirstLoading}},[e("Comment",t._b({staticClass:"comments__writer",attrs:{"auto-complete":t.autoComplete,"resource-type":t.resourceType,editor:!0,"user-data":t.userData,"resource-id":t.currentResourceId},on:{new:t.onNewComment}},"Comment",t.editorData,!1)),t._v(" "),t.isFirstLoading?t._e():[!t.hasComments&&t.done?e("NcEmptyContent",{staticClass:"comments__empty",attrs:{name:t.t("comments","No comments yet, start the conversation!")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconMessageReplyTextOutline")]},proxy:!0}],null,!1,326612300)}):e("ul",t._l(t.comments,function(n){return e("Comment",t._b({key:n.props.id,staticClass:"comments__list",attrs:{tag:"li","auto-complete":t.autoComplete,"resource-type":t.resourceType,message:n.props.message,"resource-id":t.currentResourceId,"user-data":t.genMentionsData(n.props.mentions)},on:{"update:message":function(e){return t.$set(n.props,"message",e)},delete:t.onDelete}},"Comment",n.props,!1))}),1),t._v(" "),t.loading&&!t.isFirstLoading?e("div",{staticClass:"comments__info icon-loading"}):t.hasComments&&t.done?e("div",{staticClass:"comments__info"},[t._v("\n\t\t\t"+t._s(t.t("comments","No more messages"))+"\n\t\t")]):t.error?[e("NcEmptyContent",{staticClass:"comments__error",attrs:{name:t.error},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconAlertCircleOutline")]},proxy:!0}],null,!1,3663249556)}),t._v(" "),e("NcButton",{staticClass:"comments__retry",on:{click:t.getComments},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconRefresh")]},proxy:!0}],null,!1,2997625269)},[t._v("\n\t\t\t\t"+t._s(t.t("comments","Retry"))+"\n\t\t\t")])]:t._e()]],2)},[],!1,null,"6c8c157a",null).exports;c.Ay.use(a.R2),o.nc=(0,i.aV)(),c.Ay.mixin({data:()=>({logger:s}),methods:{t:r.t,n:r.n}}),window.OCA&&!window.OCA.Comments&&Object.assign(window.OCA,{Comments:{}}),Object.assign(window.OCA.Comments,{View:class{constructor(t="files",e={}){const n=(0,a.Ey)();return e={...e,propsData:{...e.propsData??{},resourceType:t},pinia:n},new(c.Ay.extend(mt))(e)}}}),s.debug("OCA.Comments.View initialized")},15340:()=>{},22408:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(71354),s=n.n(o),i=n(76314),r=n.n(i)()(s());r.push([t.id,".comment[data-v-70317f94]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-70317f94]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-70317f94]{display:flex;flex-grow:1;flex-direction:column;container-type:inline-size}.comment__header[data-v-70317f94]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-70317f94]{margin-inline-start:10px !important}.comment__author[data-v-70317f94]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-70317f94],.comment__timestamp[data-v-70317f94]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-70317f94]{position:relative}.comment__editor-description[data-v-70317f94]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-70317f94]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-70317f94]{white-space:pre-wrap;word-break:normal;max-height:200px;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;margin-top:-6px}.comment__message--expanded[data-v-70317f94]{max-height:none;overflow:visible}.comment__message[data-v-70317f94] img{max-width:100%;height:auto}.rich-contenteditable__input[data-v-70317f94]{min-height:44px;margin:0;padding:10px}","",{version:3,sources:["webpack://./apps/comments/src/components/Comment.vue"],names:[],mappings:"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CACA,0BAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,iBAAA,CACA,gBAAA,CACA,aAAA,CACA,uBAAA,CACA,oBAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAED,uCACC,cAAA,CACA,WAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YAlFiB",sourcesContent:['\n@use "sass:math";\n\n$comment-padding: 10px;\n\n.comment {\n\tdisplay: flex;\n\tgap: 8px;\n\tpadding: 5px $comment-padding;\n\n\t&__side {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\tpadding-top: 6px;\n\t}\n\n\t&__body {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\tflex-direction: column;\n\t\tcontainer-type: inline-size;\n\t}\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tmin-height: 44px;\n\t}\n\n\t&__actions {\n\t\tmargin-inline-start: $comment-padding !important;\n\t}\n\n\t&__author {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&_loading,\n\t&__timestamp {\n\t\tmargin-inline-start: auto;\n\t\ttext-align: end;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__editor-group {\n\t\tposition: relative;\n\t}\n\n\t&__editor-description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tpadding-block: var(--default-grid-baseline);\n\t}\n\n\t&__submit {\n\t\tposition: absolute !important;\n\t\tbottom: 5px;\n\t\tinset-inline-end: 0;\n\t}\n\n\t&__message {\n\t\twhite-space: pre-wrap;\n\t\tword-break: normal;\n\t\tmax-height: 200px;\n\t\toverflow: auto;\n\t\tscrollbar-gutter: stable;\n\t\tscrollbar-width: thin;\n\t\tmargin-top: -6px;\n\t\t&--expanded {\n\t\t\tmax-height: none;\n\t\t\toverflow: visible;\n\t\t}\n\t\t:deep(img) {\n\t\t\tmax-width: 100%;\n\t\t\theight: auto;\n\t\t}\n\t}\n}\n\n.rich-contenteditable__input {\n\tmin-height: 44px;\n\tmargin: 0;\n\tpadding: $comment-padding;\n}\n\n'],sourceRoot:""}]);const a=r},42634:()=>{},47790:()=>{},51069:()=>{},59169:()=>{},63779:()=>{},64688:()=>{},66089:()=>{},73776:()=>{},77199:()=>{},77965:()=>{},78982:()=>{},79368:()=>{},79838:()=>{},86833:()=>{},94262:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(71354),s=n.n(o),i=n(76314),r=n.n(i)()(s());r.push([t.id,".comments[data-v-6c8c157a]{min-height:100%;display:flex;flex-direction:column}.comments__empty[data-v-6c8c157a],.comments__error[data-v-6c8c157a]{flex:1 0}.comments__retry[data-v-6c8c157a]{margin:0 auto}.comments__info[data-v-6c8c157a]{height:60px;color:var(--color-text-maxcontrast);text-align:center;line-height:60px}","",{version:3,sources:["webpack://./apps/comments/src/views/Comments.vue"],names:[],mappings:"AACA,2BACC,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,oEAEC,QAAA,CAGD,kCACC,aAAA,CAGD,iCACC,WAAA,CACA,mCAAA,CACA,iBAAA,CACA,gBAAA",sourcesContent:["\n.comments {\n\tmin-height: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t&__empty,\n\t&__error {\n\t\tflex: 1 0;\n\t}\n\n\t&__retry {\n\t\tmargin: 0 auto;\n\t}\n\n\t&__info {\n\t\theight: 60px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\ttext-align: center;\n\t\tline-height: 60px;\n\t}\n}\n"],sourceRoot:""}]);const a=r}},i={};function r(t){var e=i[t];if(void 0!==e)return e.exports;var n=i[t]={id:t,loaded:!1,exports:{}};return s[t].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=s,e=[],r.O=(t,n,o,s)=>{if(!n){var i=1/0;for(m=0;m=s)&&Object.keys(r.O).every(t=>r.O[t](n[c]))?n.splice(c--,1):(a=!1,s0&&e[m-1][2]>s;m--)e[m]=e[m-1];e[m]=[n,o,s]},r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.f={},r.e=t=>Promise.all(Object.keys(r.f).reduce((e,n)=>(r.f[n](t,e),e),[])),r.u=t=>t+"-"+t+".js?v="+{594:"2c86902dfae9a5006399",620:"8f7783b39d802f10e22b",2391:"908fc68e4bc9b878c937",2880:"fdf99dc4a6f328ebe498",4325:"67df7ab13a8e8d214551",4508:"61802d3dfc5cc8f443ef",5258:"0f6571662152e8883015",5862:"d020c05f13d21afee82a",6768:"c1c515178e2c30a27e58",7145:"7889fe0b0ebc57e3d5f1",8154:"4eb4313dee22e0ddb7de",8339:"6cdca71a6b3b2d7bef33"}[t],r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n={},o="nextcloud-ui-legacy:",r.l=(t,e,s,i)=>{if(n[t])n[t].push(e);else{var a,c;if(void 0!==s)for(var l=document.getElementsByTagName("script"),m=0;m{a.onerror=a.onload=null,clearTimeout(p);var s=n[t];if(delete n[t],a.parentNode&&a.parentNode.removeChild(a),s&&s.forEach(t=>t(o)),e)return e(o)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),c&&document.head.appendChild(a)}},r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),r.j=7062,(()=>{var t;globalThis.importScripts&&(t=globalThis.location+"");var e=globalThis.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");if(n.length)for(var o=n.length-1;o>-1&&(!t||!/^http(s?):/.test(t));)t=n[o--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t})(),(()=>{var t={7062:0};r.f.j=(e,n)=>{var o=r.o(t,e)?t[e]:void 0;if(0!==o)if(o)n.push(o[2]);else{var s=new Promise((n,s)=>o=t[e]=[n,s]);n.push(o[2]=s);var i=r.p+r.u(e),a=new Error;r.l(i,n=>{if(r.o(t,e)&&(0!==(o=t[e])&&(t[e]=void 0),o)){var s=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;a.message="Loading chunk "+e+" failed.\n("+s+": "+i+")",a.name="ChunkLoadError",a.type=s,a.request=i,o[1](a)}},"chunk-"+e,e)}},r.O.j=e=>0===t[e];var e=(e,n)=>{var o,s,[i,a,c]=n,l=0;if(i.some(e=>0!==t[e])){for(o in a)r.o(a,o)&&(r.m[o]=a[o]);if(c)var m=c(r)}for(e&&e(n);lr(11541));a=r.O(a)})(); +//# sourceMappingURL=comments-comments-app.js.map?v=040061f0f87503f2024a \ No newline at end of file diff --git a/dist/comments-comments-app.js.map b/dist/comments-comments-app.js.map index d0e8d93febf..b697f2a39bb 100644 --- a/dist/comments-comments-app.js.map +++ b/dist/comments-comments-app.js.map @@ -1 +1 @@ -{"version":3,"file":"comments-comments-app.js?v=8fa05ea78d72cf2c028f","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/comments/src/logger.js","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyTextOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyTextOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/MessageReplyTextOutline.vue?87e1","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyTextOutline.vue?vue&type=template&id=5d6c4e92","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Refresh.vue?0940","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue?vue&type=template&id=2864f909","webpack://nextcloud/./apps/comments/src/components/Comment.vue?d1f7","webpack:///nextcloud/apps/comments/src/utils/davUtils.js","webpack:///nextcloud/apps/comments/src/services/DavClient.js","webpack:///nextcloud/apps/comments/src/utils/decodeHtmlEntities.js","webpack:///nextcloud/apps/comments/src/store/deletedCommentLimbo.js","webpack:///nextcloud/apps/comments/src/mixins/CommentMixin.js","webpack:///nextcloud/apps/comments/src/services/EditComment.js","webpack:///nextcloud/apps/comments/src/services/DeleteComment.js","webpack:///nextcloud/apps/comments/src/services/NewComment.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/comments/src/components/Comment.vue","webpack://nextcloud/./apps/comments/src/components/Comment.vue?81ec","webpack://nextcloud/./apps/comments/src/components/Comment.vue?7f26","webpack:///nextcloud/apps/comments/src/mixins/CommentView.ts","webpack:///nextcloud/apps/comments/src/services/GetComments.ts","webpack:///nextcloud/apps/comments/src/utils/cancelableRequest.js","webpack:///nextcloud/apps/comments/src/views/Comments.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/comments/src/views/Comments.vue","webpack:///nextcloud/apps/comments/src/services/ReadComments.ts","webpack://nextcloud/./apps/comments/src/views/Comments.vue?4d55","webpack://nextcloud/./apps/comments/src/views/Comments.vue?f45b","webpack://nextcloud/./apps/comments/src/views/Comments.vue?0e41","webpack:///nextcloud/apps/comments/src/services/CommentsInstance.js","webpack:///nextcloud/apps/comments/src/comments-app.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=6be9790b&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/comments/src/views/Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('comments')\n\t.detectUser()\n\t.build()\n","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./MessageReplyTextOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./MessageReplyTextOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MessageReplyTextOutline.vue?vue&type=template&id=5d6c4e92\"\nimport script from \"./MessageReplyTextOutline.vue?vue&type=script&lang=js\"\nexport * from \"./MessageReplyTextOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon message-reply-text-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9 11H18V13H9V11M18 7H6V9H18V7M22 4V22L18 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.89 22 4M20 4H4V16H18.83L20 17.17V4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Refresh.vue?vue&type=template&id=2864f909\"\nimport script from \"./Refresh.vue?vue&type=script&lang=js\"\nexport * from \"./Refresh.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon refresh-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.tag,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.deleted && !_vm.isLimbo),expression:\"!deleted && !isLimbo\"}],tag:\"component\",staticClass:\"comment\",class:{ 'comment--loading': _vm.loading }},[_c('div',{staticClass:\"comment__side\"},[_c('NcAvatar',{staticClass:\"comment__avatar\",attrs:{\"display-name\":_vm.actorDisplayName,\"user\":_vm.actorId,\"size\":32}})],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__body\"},[_c('div',{staticClass:\"comment__header\"},[_c('span',{staticClass:\"comment__author\"},[_vm._v(_vm._s(_vm.actorDisplayName))]),_vm._v(\" \"),(_vm.isOwnComment && _vm.id && !_vm.loading)?_c('NcActions',{staticClass:\"comment__actions\"},[(!_vm.editing)?[_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onEdit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconPencilOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,3345211262)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Edit comment'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onDeleteWithUndo},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconTrashCanOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,1034796883)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Delete comment'))+\"\\n\\t\\t\\t\\t\\t\")])]:_c('NcActionButton',{on:{\"click\":_vm.onEditCancel},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconClose',{attrs:{\"size\":20}})]},proxy:true}],null,false,2888946197)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Cancel edit'))+\"\\n\\t\\t\\t\\t\")])],2):_vm._e(),_vm._v(\" \"),(_vm.id && _vm.loading)?_c('div',{staticClass:\"comment_loading icon-loading-small\"}):(_vm.creationDateTime)?_c('NcDateTime',{staticClass:\"comment__timestamp\",attrs:{\"timestamp\":_vm.timestamp,\"ignore-seconds\":true}}):_vm._e()],1),_vm._v(\" \"),(_vm.editor || _vm.editing)?_c('form',{staticClass:\"comment__editor\",on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{staticClass:\"comment__editor-group\"},[_c('NcRichContenteditable',{ref:\"editor\",attrs:{\"auto-complete\":_vm.autoComplete,\"contenteditable\":!_vm.loading,\"label\":_vm.editor ? _vm.t('comments', 'New comment') : _vm.t('comments', 'Edit comment'),\"placeholder\":_vm.t('comments', 'Write a comment …'),\"model-value\":_vm.localMessage,\"user-data\":_vm.userData,\"aria-describedby\":\"tab-comments__editor-description\"},on:{\"update:value\":_vm.updateLocalMessage,\"submit\":_vm.onSubmit}}),_vm._v(\" \"),_c('div',{staticClass:\"comment__submit\"},[_c('NcButton',{attrs:{\"variant\":\"tertiary-no-background\",\"type\":\"submit\",\"aria-label\":_vm.t('comments', 'Post comment'),\"disabled\":_vm.isEmptyMessage},on:{\"click\":_vm.onSubmit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('IconArrowRight',{attrs:{\"size\":20}})]},proxy:true}],null,false,758946661)})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__editor-description\",attrs:{\"id\":\"tab-comments__editor-description\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', '@ for mentions, : for emoji, / for smart picker'))+\"\\n\\t\\t\\t\")])]):_c('NcRichText',{staticClass:\"comment__message\",class:{ 'comment__message--expanded': _vm.expanded },attrs:{\"text\":_vm.richContent.message,\"arguments\":_vm.richContent.mentions},nativeOn:{\"click\":function($event){return _vm.onExpand.apply(null, arguments)}}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router'\n\n/**\n *\n */\nfunction getRootPath() {\n\treturn generateRemoteUrl('dav/comments')\n}\n\nexport { getRootPath }\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\nimport { createClient } from 'webdav'\nimport { getRootPath } from '../utils/davUtils.js'\n\n// init webdav client\nconst client = createClient(getRootPath())\n\n// set CSRF token header\n/**\n * @param token\n */\nfunction setHeaders(token) {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @param {any} value -\n * @param {any} passes -\n */\nexport function decodeHtmlEntities(value, passes = 1) {\n\tconst parser = new DOMParser()\n\tlet decoded = value\n\tfor (let i = 0; i < passes; i++) {\n\t\tdecoded = parser.parseFromString(decoded, 'text/html').documentElement.textContent\n\t}\n\treturn decoded\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineStore } from 'pinia'\n\nexport const useDeletedCommentLimbo = defineStore('deletedCommentLimbo', {\n\tstate: () => ({\n\t\tidsInLimbo: [],\n\t}),\n\tactions: {\n\t\taddId(id) {\n\t\t\tthis.idsInLimbo.push(id)\n\t\t},\n\n\t\tremoveId(id) {\n\t\t\tconst index = this.idsInLimbo.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.idsInLimbo.splice(index, 1)\n\t\t\t}\n\t\t},\n\n\t\tcheckForId(id) {\n\t\t\treturn this.idsInLimbo.includes(id)\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError, showUndo, TOAST_UNDO_TIMEOUT } from '@nextcloud/dialogs'\nimport { mapStores } from 'pinia'\nimport logger from '../logger.js'\nimport DeleteComment from '../services/DeleteComment.js'\nimport EditComment from '../services/EditComment.js'\nimport NewComment from '../services/NewComment.js'\nimport { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.js'\n\nexport default {\n\tprops: {\n\t\tid: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tresourceId: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'files',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdeleted: false,\n\t\t\tediting: false,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t...mapStores(useDeletedCommentLimbo),\n\t},\n\n\tmethods: {\n\t\t// EDITION\n\t\tonEdit() {\n\t\t\tthis.editing = true\n\t\t},\n\t\tonEditCancel() {\n\t\t\tthis.editing = false\n\t\t\t// Restore original value\n\t\t\tthis.updateLocalMessage(this.message)\n\t\t},\n\t\tasync onEditComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait EditComment(this.resourceType, this.resourceId, this.id, message)\n\t\t\t\tlogger.debug('Comment edited', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id, message })\n\t\t\t\tthis.$emit('update:message', message)\n\t\t\t\tthis.editing = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to edit the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to edit the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t// DELETION\n\t\tonDeleteWithUndo() {\n\t\t\tthis.$emit('delete')\n\t\t\tthis.deleted = true\n\t\t\tthis.deletedCommentLimboStore.addId(this.id)\n\t\t\tconst timeOutDelete = setTimeout(this.onDelete, TOAST_UNDO_TIMEOUT)\n\t\t\tshowUndo(t('comments', 'Comment deleted'), () => {\n\t\t\t\tclearTimeout(timeOutDelete)\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t})\n\t\t},\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tawait DeleteComment(this.resourceType, this.resourceId, this.id)\n\t\t\t\tlogger.debug('Comment deleted', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id })\n\t\t\t\tthis.$emit('delete', this.id)\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to delete the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to delete the comment', { error })\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t}\n\t\t},\n\n\t\t// CREATION\n\t\tasync onNewComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst newComment = await NewComment(this.resourceType, this.resourceId, message)\n\t\t\t\tlogger.debug('New comment posted', { resourceType: this.resourceType, resourceId: this.resourceId, newComment })\n\t\t\t\tthis.$emit('new', newComment)\n\n\t\t\t\t// Clear old content\n\t\t\t\tthis.$emit('update:message', '')\n\t\t\t\tthis.localMessage = ''\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to create the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to create the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Edit an existing comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n * @param {string} message the message content\n */\nexport default async function(resourceType, resourceId, commentId, message) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\treturn await client.customRequest(commentPath, {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${message}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Delete a comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n */\nexport default async function(resourceType, resourceId, commentId) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\t// Fetch newly created comment data\n\tawait client.deleteFile(commentPath)\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getRootPath } from '../utils/davUtils.js'\nimport { decodeHtmlEntities } from '../utils/decodeHtmlEntities.js'\nimport client from './DavClient.js'\n\n/**\n * Retrieve the comments list\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {string} message the message\n * @return {object} the new comment\n */\nexport default async function(resourceType, resourceId, message) {\n\tconst resourcePath = ['', resourceType, resourceId].join('/')\n\n\tconst response = await axios.post(getRootPath() + resourcePath, {\n\t\tactorDisplayName: getCurrentUser().displayName,\n\t\tactorId: getCurrentUser().uid,\n\t\tactorType: 'users',\n\t\tcreationDateTime: (new Date()).toUTCString(),\n\t\tmessage,\n\t\tobjectType: resourceType,\n\t\tverb: 'comment',\n\t})\n\n\t// Retrieve comment id from resource location\n\tconst commentId = parseInt(response.headers['content-location'].split('/').pop())\n\tconst commentPath = resourcePath + '/' + commentId\n\n\t// Fetch newly created comment data\n\tconst comment = await client.stat(commentPath, {\n\t\tdetails: true,\n\t})\n\n\tconst props = comment.data.props\n\t// Decode twice to handle potentially double-encoded entities\n\t// FIXME Remove this once https://github.com/nextcloud/server/issues/29306\n\t// is resolved\n\tprops.actorDisplayName = decodeHtmlEntities(props.actorDisplayName, 2)\n\tprops.message = decodeHtmlEntities(props.message, 2)\n\n\treturn comment.data\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.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!./Comment.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./Comment.vue?vue&type=style&index=0&id=6be9790b&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=6be9790b&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comment.vue?vue&type=template&id=6be9790b&scoped=true\"\nimport script from \"./Comment.vue?vue&type=script&lang=js\"\nexport * from \"./Comment.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comment.vue?vue&type=style&index=0&id=6be9790b&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 \"6be9790b\",\n null\n \n)\n\nexport default component.exports","import { getCurrentUser } from '@nextcloud/auth';\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n props: {\n resourceId: {\n type: Number,\n required: true,\n },\n resourceType: {\n type: String,\n default: 'files',\n },\n },\n data() {\n return {\n editorData: {\n actorDisplayName: getCurrentUser().displayName,\n actorId: getCurrentUser().uid,\n key: 'editor',\n },\n userData: {},\n currentResourceId: this.resourceId,\n };\n },\n methods: {\n /**\n * Autocomplete @mentions\n *\n * @param search the query\n * @param callback the callback to process the results with\n */\n async autoComplete(search, callback) {\n const { data } = await axios.get(generateOcsUrl('core/autocomplete/get'), {\n params: {\n search,\n itemType: this.resourceType,\n itemId: this.currentResourceId,\n sorter: 'commenters|share-recipients',\n limit: loadState('comments', 'maxAutoCompleteResults'),\n },\n });\n // Save user data so it can be used by the editor to replace mentions\n data.ocs.data.forEach((user) => {\n this.userData[user.id] = user;\n });\n return callback(Object.values(this.userData));\n },\n /**\n * Make sure we have all mentions as Array of objects\n *\n * @param mentions the mentions list\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n genMentionsData(mentions) {\n Object.values(mentions)\n .flat()\n .forEach((mention) => {\n this.userData[mention.mentionId] = {\n // TODO: support groups\n icon: 'icon-user',\n id: mention.mentionId,\n label: mention.mentionDisplayName,\n source: 'users',\n primary: getCurrentUser()?.uid === mention.mentionId,\n };\n });\n return this.userData;\n },\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { parseXML } from 'webdav';\nimport { processResponsePayload } from 'webdav/dist/node/response.js';\nimport { prepareFileFromProps } from 'webdav/dist/node/tools/dav.js';\nimport client from './DavClient.js';\nexport const DEFAULT_LIMIT = 20;\n/**\n * Retrieve the comments list\n *\n * @param data destructuring object\n * @param data.resourceType the resource type\n * @param data.resourceId the resource ID\n * @param [options] optional options for axios\n * @param [options.offset] the pagination offset\n * @param [options.limit] the pagination limit, defaults to 20\n * @param [options.datetime] optional date to query\n * @return the comments list\n */\nexport async function getComments({ resourceType, resourceId }, options) {\n const resourcePath = ['', resourceType, resourceId].join('/');\n const datetime = options.datetime ? `${options.datetime.toISOString()}` : '';\n const response = await client.customRequest(resourcePath, {\n method: 'REPORT',\n data: `\n\t\t\t\n\t\t\t\t${options.limit ?? DEFAULT_LIMIT}\n\t\t\t\t${options.offset || 0}\n\t\t\t\t${datetime}\n\t\t\t`,\n ...options,\n });\n const responseData = await response.text();\n const result = await parseXML(responseData);\n const stat = getDirectoryFiles(result, true);\n // https://github.com/perry-mitchell/webdav-client/issues/339\n return processResponsePayload(response, stat, true);\n}\n/**\n * https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/operations/directoryContents.ts\n *\n * @param result\n * @param isDetailed\n */\nfunction getDirectoryFiles(result, isDetailed = false) {\n // Extract the response items (directory contents)\n const { multistatus: { response: responseItems }, } = result;\n // Map all items to a consistent output structure (results)\n return responseItems.map((item) => {\n // Each item should contain a stat object\n const props = item.propstat.prop;\n return prepareFileFromProps(props, props.id.toString(), isDetailed);\n });\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Creates a cancelable axios 'request object'.\n *\n * @param {Function} request the axios promise request\n * @return {object}\n */\nfunction cancelableRequest(request) {\n\tconst controller = new AbortController()\n\tconst signal = controller.signal\n\n\t/**\n\t * Execute the request\n\t *\n\t * @param {string} url the url to send the request to\n\t * @param {object} [options] optional config for the request\n\t */\n\tconst fetch = async function(url, options) {\n\t\tconst response = await request(\n\t\t\turl,\n\t\t\t{ signal, ...options },\n\t\t)\n\t\treturn response\n\t}\n\n\treturn {\n\t\trequest: fetch,\n\t\tabort: () => controller.abort(),\n\t}\n}\n\nexport default cancelableRequest\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.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!./Comments.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport client from './DavClient.js';\n/**\n * Mark comments older than the date timestamp as read\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param date the date object\n */\nexport function markCommentsAsRead(resourceType, resourceId, date) {\n const resourcePath = ['', resourceType, resourceId].join('/');\n const readMarker = date.toUTCString();\n return client.customRequest(resourcePath, {\n method: 'PROPPATCH',\n data: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${readMarker}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n });\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!./Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comments.vue?vue&type=template&id=6c8c157a&scoped=true\"\nimport script from \"./Comments.vue?vue&type=script&lang=js\"\nexport * from \"./Comments.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comments.vue?vue&type=style&index=0&id=6c8c157a&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 \"6c8c157a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.onVisibilityChange),expression:\"onVisibilityChange\"}],staticClass:\"comments\",class:{ 'icon-loading': _vm.isFirstLoading }},[_c('Comment',_vm._b({staticClass:\"comments__writer\",attrs:{\"auto-complete\":_vm.autoComplete,\"resource-type\":_vm.resourceType,\"editor\":true,\"user-data\":_vm.userData,\"resource-id\":_vm.currentResourceId},on:{\"new\":_vm.onNewComment}},'Comment',_vm.editorData,false)),_vm._v(\" \"),(!_vm.isFirstLoading)?[(!_vm.hasComments && _vm.done)?_c('NcEmptyContent',{staticClass:\"comments__empty\",attrs:{\"name\":_vm.t('comments', 'No comments yet, start the conversation!')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconMessageReplyTextOutline')]},proxy:true}],null,false,326612300)}):_c('ul',_vm._l((_vm.comments),function(comment){return _c('Comment',_vm._b({key:comment.props.id,staticClass:\"comments__list\",attrs:{\"tag\":\"li\",\"auto-complete\":_vm.autoComplete,\"resource-type\":_vm.resourceType,\"message\":comment.props.message,\"resource-id\":_vm.currentResourceId,\"user-data\":_vm.genMentionsData(comment.props.mentions)},on:{\"update:message\":function($event){return _vm.$set(comment.props, \"message\", $event)},\"delete\":_vm.onDelete}},'Comment',comment.props,false))}),1),_vm._v(\" \"),(_vm.loading && !_vm.isFirstLoading)?_c('div',{staticClass:\"comments__info icon-loading\"}):(_vm.hasComments && _vm.done)?_c('div',{staticClass:\"comments__info\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('comments', 'No more messages'))+\"\\n\\t\\t\")]):(_vm.error)?[_c('NcEmptyContent',{staticClass:\"comments__error\",attrs:{\"name\":_vm.error},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}],null,false,3663249556)}),_vm._v(\" \"),_c('NcButton',{staticClass:\"comments__retry\",on:{\"click\":_vm.getComments},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconRefresh')]},proxy:true}],null,false,2997625269)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Retry'))+\"\\n\\t\\t\\t\")])]:_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { n, t } from '@nextcloud/l10n'\nimport { createPinia, PiniaVuePlugin } from 'pinia'\nimport Vue from 'vue'\nimport CommentsApp from '../views/Comments.vue'\nimport logger from '../logger.js'\n\nVue.use(PiniaVuePlugin)\n\n__webpack_nonce__ = getCSPNonce()\n\n// Add translates functions\nVue.mixin({\n\tdata() {\n\t\treturn {\n\t\t\tlogger,\n\t\t}\n\t},\n\tmethods: {\n\t\tt,\n\t\tn,\n\t},\n})\n\nexport default class CommentInstance {\n\t/**\n\t * Initialize a new Comments instance for the desired type\n\t *\n\t * @param {string} resourceType the comments endpoint type\n\t * @param {object} options the vue options (propsData, parent, el...)\n\t */\n\tconstructor(resourceType = 'files', options = {}) {\n\t\tconst pinia = createPinia()\n\n\t\t// Merge options and set `resourceType` property\n\t\toptions = {\n\t\t\t...options,\n\t\t\tpropsData: {\n\t\t\t\t...(options.propsData ?? {}),\n\t\t\t\tresourceType,\n\t\t\t},\n\t\t\tpinia,\n\t\t}\n\t\t// Init Comments component\n\t\tconst View = Vue.extend(CommentsApp)\n\t\treturn new View(options)\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport logger from './logger.js'\nimport CommentsInstance from './services/CommentsInstance.js'\n\n// Init Comments\nif (window.OCA && !window.OCA.Comments) {\n\tObject.assign(window.OCA, { Comments: {} })\n}\n\n// Init Comments App view\nObject.assign(window.OCA.Comments, { View: CommentsInstance })\nlogger.debug('OCA.Comments.View initialized')\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, `.comment[data-v-6be9790b]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-6be9790b]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-6be9790b]{display:flex;flex-grow:1;flex-direction:column;container-type:inline-size}.comment__header[data-v-6be9790b]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-6be9790b]{margin-inline-start:10px !important}.comment__author[data-v-6be9790b]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-6be9790b],.comment__timestamp[data-v-6be9790b]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-6be9790b]{position:relative}.comment__editor-description[data-v-6be9790b]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-6be9790b]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-6be9790b]{white-space:pre-wrap;word-break:normal;max-height:70px;overflow:hidden;margin-top:-6px}.comment__message--expanded[data-v-6be9790b]{max-height:none;overflow:visible}.rich-contenteditable__input[data-v-6be9790b]{min-height:44px;margin:0;padding:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/components/Comment.vue\"],\"names\":[],\"mappings\":\"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CACA,0BAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,iBAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YA5EiB\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n\\n$comment-padding: 10px;\\n\\n.comment {\\n\\tdisplay: flex;\\n\\tgap: 8px;\\n\\tpadding: 5px $comment-padding;\\n\\n\\t&__side {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\tpadding-top: 6px;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-grow: 1;\\n\\t\\tflex-direction: column;\\n\\t\\tcontainer-type: inline-size;\\n\\t}\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tmin-height: 44px;\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tmargin-inline-start: $comment-padding !important;\\n\\t}\\n\\n\\t&__author {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&_loading,\\n\\t&__timestamp {\\n\\t\\tmargin-inline-start: auto;\\n\\t\\ttext-align: end;\\n\\t\\twhite-space: nowrap;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__editor-group {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__editor-description {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding-block: var(--default-grid-baseline);\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tposition: absolute !important;\\n\\t\\tbottom: 5px;\\n\\t\\tinset-inline-end: 0;\\n\\t}\\n\\n\\t&__message {\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tword-break: normal;\\n\\t\\tmax-height: 70px;\\n\\t\\toverflow: hidden;\\n\\t\\tmargin-top: -6px;\\n\\t\\t&--expanded {\\n\\t\\t\\tmax-height: none;\\n\\t\\t\\toverflow: visible;\\n\\t\\t}\\n\\t}\\n}\\n\\n.rich-contenteditable__input {\\n\\tmin-height: 44px;\\n\\tmargin: 0;\\n\\tpadding: $comment-padding;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.comments[data-v-6c8c157a]{min-height:100%;display:flex;flex-direction:column}.comments__empty[data-v-6c8c157a],.comments__error[data-v-6c8c157a]{flex:1 0}.comments__retry[data-v-6c8c157a]{margin:0 auto}.comments__info[data-v-6c8c157a]{height:60px;color:var(--color-text-maxcontrast);text-align:center;line-height:60px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/views/Comments.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,oEAEC,QAAA,CAGD,kCACC,aAAA,CAGD,iCACC,WAAA,CACA,mCAAA,CACA,iBAAA,CACA,gBAAA\",\"sourcesContent\":[\"\\n.comments {\\n\\tmin-height: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t&__empty,\\n\\t&__error {\\n\\t\\tflex: 1 0;\\n\\t}\\n\\n\\t&__retry {\\n\\t\\tmargin: 0 auto;\\n\\t}\\n\\n\\t&__info {\\n\\t\\theight: 60px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\ttext-align: center;\\n\\t\\tline-height: 60px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"594\":\"2c86902dfae9a5006399\",\"620\":\"8f7783b39d802f10e22b\",\"2391\":\"908fc68e4bc9b878c937\",\"2880\":\"fdf99dc4a6f328ebe498\",\"4325\":\"67df7ab13a8e8d214551\",\"4508\":\"61802d3dfc5cc8f443ef\",\"5258\":\"0f6571662152e8883015\",\"5862\":\"d020c05f13d21afee82a\",\"6768\":\"c1c515178e2c30a27e58\",\"7145\":\"7889fe0b0ebc57e3d5f1\",\"8154\":\"4eb4313dee22e0ddb7de\",\"8339\":\"6cdca71a6b3b2d7bef33\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7062;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7062: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(9064)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","getLoggerBuilder","setApp","detectUser","build","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","getRootPath","generateRemoteUrl","client","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","decodeHtmlEntities","value","passes","parser","DOMParser","decoded","i","parseFromString","documentElement","textContent","useDeletedCommentLimbo","defineStore","state","idsInLimbo","actions","addId","id","push","removeId","index","indexOf","splice","checkForId","includes","message","resourceId","required","resourceType","data","deleted","editing","loading","computed","mapStores","methods","onEdit","onEditCancel","updateLocalMessage","onEditComment","async","commentId","commentPath","join","customRequest","method","EditComment","logger","debug","error","showError","t","onDeleteWithUndo","deletedCommentLimboStore","timeOutDelete","setTimeout","onDelete","TOAST_UNDO_TIMEOUT","showUndo","clearTimeout","deleteFile","DeleteComment","onNewComment","newComment","resourcePath","response","axios","post","actorDisplayName","getCurrentUser","displayName","actorId","uid","actorType","creationDateTime","Date","toUTCString","objectType","verb","parseInt","headers","split","pop","comment","stat","details","NewComment","localMessage","components","IconArrowRight","IconClose","IconTrashCanOutline","IconPencilOutline","NcActionButton","NcActions","NcActionSeparator","NcAvatar","NcButton","NcDateTime","NcLoadingIcon","NcRichContenteditable","NcRichText","mixins","CommentMixin","inheritAttrs","editor","Boolean","autoComplete","Function","userData","Object","tag","expanded","submitted","isOwnComment","richContent","mentions","keys","forEach","user","key","regex","RegExp","replace","component","NcUserBubble","label","primary","isEmptyMessage","trim","timestamp","parse","isLimbo","watch","beforeMount","toString","onSubmit","$nextTick","$refs","$el","focus","onExpand","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","directives","rawName","expression","class","scopedSlots","_u","fn","proxy","preventDefault","ref","nativeOn","apply","arguments","defineComponent","editorData","currentResourceId","search","callback","get","generateOcsUrl","params","itemType","itemId","sorter","limit","loadState","ocs","values","genMentionsData","flat","mention","mentionId","icon","mentionDisplayName","source","getComments","datetime","toISOString","offset","responseData","text","result","isDetailed","multistatus","responseItems","map","item","propstat","prop","prepareFileFromProps","getDirectoryFiles","parseXML","processResponsePayload","Comment","NcEmptyContent","IconRefresh","IconMessageReplyTextOutline","IconAlertCircleOutline","elementVisibility","CommentView","done","comments","cancelRequest","hasComments","length","isFirstLoading","onVisibilityChange","isVisible","date","readMarker","markCommentsAsRead","e","update","resetState","onScrollBottomReached","request","abort","controller","AbortController","signal","url","cancelableRequest","unshift","findIndex","_l","$set","Vue","use","PiniaVuePlugin","__webpack_nonce__","getCSPNonce","mixin","n","window","OCA","Comments","assign","View","constructor","pinia","createPinia","propsData","extend","CommentsApp","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","chunkId","Promise","all","reduce","promises","u","obj","prototype","hasOwnProperty","l","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","timeout","doneFns","parentNode","removeChild","bind","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","globalThis","importScripts","location","currentScript","tagName","toUpperCase","test","Error","p","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"comments-comments-app.js?v=040061f0f87503f2024a","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/comments/src/logger.js","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyTextOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyTextOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/MessageReplyTextOutline.vue?87e1","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyTextOutline.vue?vue&type=template&id=5d6c4e92","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Refresh.vue?0940","webpack:///nextcloud/node_modules/vue-material-design-icons/Refresh.vue?vue&type=template&id=2864f909","webpack://nextcloud/./apps/comments/src/components/Comment.vue?d1f7","webpack:///nextcloud/apps/comments/src/utils/davUtils.js","webpack:///nextcloud/apps/comments/src/services/DavClient.js","webpack:///nextcloud/apps/comments/src/utils/decodeHtmlEntities.js","webpack:///nextcloud/apps/comments/src/store/deletedCommentLimbo.js","webpack:///nextcloud/apps/comments/src/mixins/CommentMixin.js","webpack:///nextcloud/apps/comments/src/services/EditComment.js","webpack:///nextcloud/apps/comments/src/services/DeleteComment.js","webpack:///nextcloud/apps/comments/src/services/NewComment.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/comments/src/components/Comment.vue","webpack://nextcloud/./apps/comments/src/components/Comment.vue?7275","webpack://nextcloud/./apps/comments/src/components/Comment.vue?7f26","webpack:///nextcloud/apps/comments/src/mixins/CommentView.ts","webpack:///nextcloud/apps/comments/src/services/GetComments.ts","webpack:///nextcloud/apps/comments/src/utils/cancelableRequest.js","webpack:///nextcloud/apps/comments/src/views/Comments.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/comments/src/views/Comments.vue","webpack:///nextcloud/apps/comments/src/services/ReadComments.ts","webpack://nextcloud/./apps/comments/src/views/Comments.vue?4d55","webpack://nextcloud/./apps/comments/src/views/Comments.vue?f45b","webpack://nextcloud/./apps/comments/src/views/Comments.vue?0e41","webpack:///nextcloud/apps/comments/src/services/CommentsInstance.js","webpack:///nextcloud/apps/comments/src/comments-app.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/comments/src/views/Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('comments')\n\t.detectUser()\n\t.build()\n","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./MessageReplyTextOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./MessageReplyTextOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MessageReplyTextOutline.vue?vue&type=template&id=5d6c4e92\"\nimport script from \"./MessageReplyTextOutline.vue?vue&type=script&lang=js\"\nexport * from \"./MessageReplyTextOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon message-reply-text-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9 11H18V13H9V11M18 7H6V9H18V7M22 4V22L18 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.89 22 4M20 4H4V16H18.83L20 17.17V4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./Refresh.vue?vue&type=template&id=2864f909\"\nimport script from \"./Refresh.vue?vue&type=script&lang=js\"\nexport * from \"./Refresh.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon refresh-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.tag,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.deleted && !_vm.isLimbo),expression:\"!deleted && !isLimbo\"}],tag:\"component\",staticClass:\"comment\",class:{ 'comment--loading': _vm.loading }},[_c('div',{staticClass:\"comment__side\"},[_c('NcAvatar',{staticClass:\"comment__avatar\",attrs:{\"display-name\":_vm.actorDisplayName,\"user\":_vm.actorId,\"size\":32}})],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__body\"},[_c('div',{staticClass:\"comment__header\"},[_c('span',{staticClass:\"comment__author\"},[_vm._v(_vm._s(_vm.actorDisplayName))]),_vm._v(\" \"),(_vm.isOwnComment && _vm.id && !_vm.loading)?_c('NcActions',{staticClass:\"comment__actions\"},[(!_vm.editing)?[_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onEdit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconPencilOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,3345211262)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Edit comment'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onDeleteWithUndo},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconTrashCanOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,1034796883)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Delete comment'))+\"\\n\\t\\t\\t\\t\\t\")])]:_c('NcActionButton',{on:{\"click\":_vm.onEditCancel},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconClose',{attrs:{\"size\":20}})]},proxy:true}],null,false,2888946197)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Cancel edit'))+\"\\n\\t\\t\\t\\t\")])],2):_vm._e(),_vm._v(\" \"),(_vm.id && _vm.loading)?_c('div',{staticClass:\"comment_loading icon-loading-small\"}):(_vm.creationDateTime)?_c('NcDateTime',{staticClass:\"comment__timestamp\",attrs:{\"timestamp\":_vm.timestamp,\"ignore-seconds\":true}}):_vm._e()],1),_vm._v(\" \"),(_vm.editor || _vm.editing)?_c('form',{staticClass:\"comment__editor\",on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{staticClass:\"comment__editor-group\"},[_c('NcRichContenteditable',{ref:\"editor\",attrs:{\"auto-complete\":_vm.autoComplete,\"contenteditable\":!_vm.loading,\"label\":_vm.editor ? _vm.t('comments', 'New comment') : _vm.t('comments', 'Edit comment'),\"placeholder\":_vm.t('comments', 'Write a comment …'),\"model-value\":_vm.localMessage,\"user-data\":_vm.userData,\"aria-describedby\":\"tab-comments__editor-description\"},on:{\"update:value\":_vm.updateLocalMessage,\"submit\":_vm.onSubmit}}),_vm._v(\" \"),_c('div',{staticClass:\"comment__submit\"},[_c('NcButton',{attrs:{\"variant\":\"tertiary-no-background\",\"type\":\"submit\",\"aria-label\":_vm.t('comments', 'Post comment'),\"disabled\":_vm.isEmptyMessage},on:{\"click\":_vm.onSubmit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('IconArrowRight',{attrs:{\"size\":20}})]},proxy:true}],null,false,758946661)})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__editor-description\",attrs:{\"id\":\"tab-comments__editor-description\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', '@ for mentions, : for emoji, / for smart picker'))+\"\\n\\t\\t\\t\")])]):_c('NcRichText',{staticClass:\"comment__message\",class:{ 'comment__message--expanded': _vm.expanded },attrs:{\"text\":_vm.richContent.message,\"arguments\":_vm.richContent.mentions,\"use-markdown\":\"\"},nativeOn:{\"click\":function($event){return _vm.onExpand.apply(null, arguments)}}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router'\n\n/**\n *\n */\nfunction getRootPath() {\n\treturn generateRemoteUrl('dav/comments')\n}\n\nexport { getRootPath }\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\nimport { createClient } from 'webdav'\nimport { getRootPath } from '../utils/davUtils.js'\n\n// init webdav client\nconst client = createClient(getRootPath())\n\n// set CSRF token header\n/**\n * @param token\n */\nfunction setHeaders(token) {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @param {any} value -\n * @param {any} passes -\n */\nexport function decodeHtmlEntities(value, passes = 1) {\n\tconst parser = new DOMParser()\n\tlet decoded = value\n\tfor (let i = 0; i < passes; i++) {\n\t\tdecoded = parser.parseFromString(decoded, 'text/html').documentElement.textContent\n\t}\n\treturn decoded\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineStore } from 'pinia'\n\nexport const useDeletedCommentLimbo = defineStore('deletedCommentLimbo', {\n\tstate: () => ({\n\t\tidsInLimbo: [],\n\t}),\n\tactions: {\n\t\taddId(id) {\n\t\t\tthis.idsInLimbo.push(id)\n\t\t},\n\n\t\tremoveId(id) {\n\t\t\tconst index = this.idsInLimbo.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.idsInLimbo.splice(index, 1)\n\t\t\t}\n\t\t},\n\n\t\tcheckForId(id) {\n\t\t\treturn this.idsInLimbo.includes(id)\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError, showUndo, TOAST_UNDO_TIMEOUT } from '@nextcloud/dialogs'\nimport { mapStores } from 'pinia'\nimport logger from '../logger.js'\nimport DeleteComment from '../services/DeleteComment.js'\nimport EditComment from '../services/EditComment.js'\nimport NewComment from '../services/NewComment.js'\nimport { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.js'\n\nexport default {\n\tprops: {\n\t\tid: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tresourceId: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'files',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdeleted: false,\n\t\t\tediting: false,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t...mapStores(useDeletedCommentLimbo),\n\t},\n\n\tmethods: {\n\t\t// EDITION\n\t\tonEdit() {\n\t\t\tthis.editing = true\n\t\t},\n\t\tonEditCancel() {\n\t\t\tthis.editing = false\n\t\t\t// Restore original value\n\t\t\tthis.updateLocalMessage(this.message)\n\t\t},\n\t\tasync onEditComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait EditComment(this.resourceType, this.resourceId, this.id, message)\n\t\t\t\tlogger.debug('Comment edited', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id, message })\n\t\t\t\tthis.$emit('update:message', message)\n\t\t\t\tthis.editing = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to edit the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to edit the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t// DELETION\n\t\tonDeleteWithUndo() {\n\t\t\tthis.$emit('delete')\n\t\t\tthis.deleted = true\n\t\t\tthis.deletedCommentLimboStore.addId(this.id)\n\t\t\tconst timeOutDelete = setTimeout(this.onDelete, TOAST_UNDO_TIMEOUT)\n\t\t\tshowUndo(t('comments', 'Comment deleted'), () => {\n\t\t\t\tclearTimeout(timeOutDelete)\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t})\n\t\t},\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tawait DeleteComment(this.resourceType, this.resourceId, this.id)\n\t\t\t\tlogger.debug('Comment deleted', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id })\n\t\t\t\tthis.$emit('delete', this.id)\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to delete the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to delete the comment', { error })\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t}\n\t\t},\n\n\t\t// CREATION\n\t\tasync onNewComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst newComment = await NewComment(this.resourceType, this.resourceId, message)\n\t\t\t\tlogger.debug('New comment posted', { resourceType: this.resourceType, resourceId: this.resourceId, newComment })\n\t\t\t\tthis.$emit('new', newComment)\n\n\t\t\t\t// Clear old content\n\t\t\t\tthis.$emit('update:message', '')\n\t\t\t\tthis.localMessage = ''\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to create the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to create the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Edit an existing comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n * @param {string} message the message content\n */\nexport default async function(resourceType, resourceId, commentId, message) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\treturn await client.customRequest(commentPath, {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${message}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Delete a comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n */\nexport default async function(resourceType, resourceId, commentId) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\t// Fetch newly created comment data\n\tawait client.deleteFile(commentPath)\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getRootPath } from '../utils/davUtils.js'\nimport { decodeHtmlEntities } from '../utils/decodeHtmlEntities.js'\nimport client from './DavClient.js'\n\n/**\n * Retrieve the comments list\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {string} message the message\n * @return {object} the new comment\n */\nexport default async function(resourceType, resourceId, message) {\n\tconst resourcePath = ['', resourceType, resourceId].join('/')\n\n\tconst response = await axios.post(getRootPath() + resourcePath, {\n\t\tactorDisplayName: getCurrentUser().displayName,\n\t\tactorId: getCurrentUser().uid,\n\t\tactorType: 'users',\n\t\tcreationDateTime: (new Date()).toUTCString(),\n\t\tmessage,\n\t\tobjectType: resourceType,\n\t\tverb: 'comment',\n\t})\n\n\t// Retrieve comment id from resource location\n\tconst commentId = parseInt(response.headers['content-location'].split('/').pop())\n\tconst commentPath = resourcePath + '/' + commentId\n\n\t// Fetch newly created comment data\n\tconst comment = await client.stat(commentPath, {\n\t\tdetails: true,\n\t})\n\n\tconst props = comment.data.props\n\t// Decode twice to handle potentially double-encoded entities\n\t// FIXME Remove this once https://github.com/nextcloud/server/issues/29306\n\t// is resolved\n\tprops.actorDisplayName = decodeHtmlEntities(props.actorDisplayName, 2)\n\tprops.message = decodeHtmlEntities(props.message, 2)\n\n\treturn comment.data\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.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!./Comment.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comment.vue?vue&type=template&id=70317f94&scoped=true\"\nimport script from \"./Comment.vue?vue&type=script&lang=js\"\nexport * from \"./Comment.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comment.vue?vue&type=style&index=0&id=70317f94&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 \"70317f94\",\n null\n \n)\n\nexport default component.exports","import { getCurrentUser } from '@nextcloud/auth';\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n props: {\n resourceId: {\n type: Number,\n required: true,\n },\n resourceType: {\n type: String,\n default: 'files',\n },\n },\n data() {\n return {\n editorData: {\n actorDisplayName: getCurrentUser().displayName,\n actorId: getCurrentUser().uid,\n key: 'editor',\n },\n userData: {},\n currentResourceId: this.resourceId,\n };\n },\n methods: {\n /**\n * Autocomplete @mentions\n *\n * @param search the query\n * @param callback the callback to process the results with\n */\n async autoComplete(search, callback) {\n const { data } = await axios.get(generateOcsUrl('core/autocomplete/get'), {\n params: {\n search,\n itemType: this.resourceType,\n itemId: this.currentResourceId,\n sorter: 'commenters|share-recipients',\n limit: loadState('comments', 'maxAutoCompleteResults'),\n },\n });\n // Save user data so it can be used by the editor to replace mentions\n data.ocs.data.forEach((user) => {\n this.userData[user.id] = user;\n });\n return callback(Object.values(this.userData));\n },\n /**\n * Make sure we have all mentions as Array of objects\n *\n * @param mentions the mentions list\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n genMentionsData(mentions) {\n Object.values(mentions)\n .flat()\n .forEach((mention) => {\n this.userData[mention.mentionId] = {\n // TODO: support groups\n icon: 'icon-user',\n id: mention.mentionId,\n label: mention.mentionDisplayName,\n source: 'users',\n primary: getCurrentUser()?.uid === mention.mentionId,\n };\n });\n return this.userData;\n },\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { parseXML } from 'webdav';\nimport { processResponsePayload } from 'webdav/dist/node/response.js';\nimport { prepareFileFromProps } from 'webdav/dist/node/tools/dav.js';\nimport client from './DavClient.js';\nexport const DEFAULT_LIMIT = 20;\n/**\n * Retrieve the comments list\n *\n * @param data destructuring object\n * @param data.resourceType the resource type\n * @param data.resourceId the resource ID\n * @param [options] optional options for axios\n * @param [options.offset] the pagination offset\n * @param [options.limit] the pagination limit, defaults to 20\n * @param [options.datetime] optional date to query\n * @return the comments list\n */\nexport async function getComments({ resourceType, resourceId }, options) {\n const resourcePath = ['', resourceType, resourceId].join('/');\n const datetime = options.datetime ? `${options.datetime.toISOString()}` : '';\n const response = await client.customRequest(resourcePath, {\n method: 'REPORT',\n data: `\n\t\t\t\n\t\t\t\t${options.limit ?? DEFAULT_LIMIT}\n\t\t\t\t${options.offset || 0}\n\t\t\t\t${datetime}\n\t\t\t`,\n ...options,\n });\n const responseData = await response.text();\n const result = await parseXML(responseData);\n const stat = getDirectoryFiles(result, true);\n // https://github.com/perry-mitchell/webdav-client/issues/339\n return processResponsePayload(response, stat, true);\n}\n/**\n * https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/operations/directoryContents.ts\n *\n * @param result\n * @param isDetailed\n */\nfunction getDirectoryFiles(result, isDetailed = false) {\n // Extract the response items (directory contents)\n const { multistatus: { response: responseItems }, } = result;\n // Map all items to a consistent output structure (results)\n return responseItems.map((item) => {\n // Each item should contain a stat object\n const props = item.propstat.prop;\n return prepareFileFromProps(props, props.id.toString(), isDetailed);\n });\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Creates a cancelable axios 'request object'.\n *\n * @param {Function} request the axios promise request\n * @return {object}\n */\nfunction cancelableRequest(request) {\n\tconst controller = new AbortController()\n\tconst signal = controller.signal\n\n\t/**\n\t * Execute the request\n\t *\n\t * @param {string} url the url to send the request to\n\t * @param {object} [options] optional config for the request\n\t */\n\tconst fetch = async function(url, options) {\n\t\tconst response = await request(\n\t\t\turl,\n\t\t\t{ signal, ...options },\n\t\t)\n\t\treturn response\n\t}\n\n\treturn {\n\t\trequest: fetch,\n\t\tabort: () => controller.abort(),\n\t}\n}\n\nexport default cancelableRequest\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.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!./Comments.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport client from './DavClient.js';\n/**\n * Mark comments older than the date timestamp as read\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param date the date object\n */\nexport function markCommentsAsRead(resourceType, resourceId, date) {\n const resourcePath = ['', resourceType, resourceId].join('/');\n const readMarker = date.toUTCString();\n return client.customRequest(resourcePath, {\n method: 'PROPPATCH',\n data: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${readMarker}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n });\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!./Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comments.vue?vue&type=template&id=6c8c157a&scoped=true\"\nimport script from \"./Comments.vue?vue&type=script&lang=js\"\nexport * from \"./Comments.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comments.vue?vue&type=style&index=0&id=6c8c157a&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 \"6c8c157a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.onVisibilityChange),expression:\"onVisibilityChange\"}],staticClass:\"comments\",class:{ 'icon-loading': _vm.isFirstLoading }},[_c('Comment',_vm._b({staticClass:\"comments__writer\",attrs:{\"auto-complete\":_vm.autoComplete,\"resource-type\":_vm.resourceType,\"editor\":true,\"user-data\":_vm.userData,\"resource-id\":_vm.currentResourceId},on:{\"new\":_vm.onNewComment}},'Comment',_vm.editorData,false)),_vm._v(\" \"),(!_vm.isFirstLoading)?[(!_vm.hasComments && _vm.done)?_c('NcEmptyContent',{staticClass:\"comments__empty\",attrs:{\"name\":_vm.t('comments', 'No comments yet, start the conversation!')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconMessageReplyTextOutline')]},proxy:true}],null,false,326612300)}):_c('ul',_vm._l((_vm.comments),function(comment){return _c('Comment',_vm._b({key:comment.props.id,staticClass:\"comments__list\",attrs:{\"tag\":\"li\",\"auto-complete\":_vm.autoComplete,\"resource-type\":_vm.resourceType,\"message\":comment.props.message,\"resource-id\":_vm.currentResourceId,\"user-data\":_vm.genMentionsData(comment.props.mentions)},on:{\"update:message\":function($event){return _vm.$set(comment.props, \"message\", $event)},\"delete\":_vm.onDelete}},'Comment',comment.props,false))}),1),_vm._v(\" \"),(_vm.loading && !_vm.isFirstLoading)?_c('div',{staticClass:\"comments__info icon-loading\"}):(_vm.hasComments && _vm.done)?_c('div',{staticClass:\"comments__info\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('comments', 'No more messages'))+\"\\n\\t\\t\")]):(_vm.error)?[_c('NcEmptyContent',{staticClass:\"comments__error\",attrs:{\"name\":_vm.error},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}],null,false,3663249556)}),_vm._v(\" \"),_c('NcButton',{staticClass:\"comments__retry\",on:{\"click\":_vm.getComments},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconRefresh')]},proxy:true}],null,false,2997625269)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Retry'))+\"\\n\\t\\t\\t\")])]:_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { n, t } from '@nextcloud/l10n'\nimport { createPinia, PiniaVuePlugin } from 'pinia'\nimport Vue from 'vue'\nimport CommentsApp from '../views/Comments.vue'\nimport logger from '../logger.js'\n\nVue.use(PiniaVuePlugin)\n\n__webpack_nonce__ = getCSPNonce()\n\n// Add translates functions\nVue.mixin({\n\tdata() {\n\t\treturn {\n\t\t\tlogger,\n\t\t}\n\t},\n\tmethods: {\n\t\tt,\n\t\tn,\n\t},\n})\n\nexport default class CommentInstance {\n\t/**\n\t * Initialize a new Comments instance for the desired type\n\t *\n\t * @param {string} resourceType the comments endpoint type\n\t * @param {object} options the vue options (propsData, parent, el...)\n\t */\n\tconstructor(resourceType = 'files', options = {}) {\n\t\tconst pinia = createPinia()\n\n\t\t// Merge options and set `resourceType` property\n\t\toptions = {\n\t\t\t...options,\n\t\t\tpropsData: {\n\t\t\t\t...(options.propsData ?? {}),\n\t\t\t\tresourceType,\n\t\t\t},\n\t\t\tpinia,\n\t\t}\n\t\t// Init Comments component\n\t\tconst View = Vue.extend(CommentsApp)\n\t\treturn new View(options)\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport logger from './logger.js'\nimport CommentsInstance from './services/CommentsInstance.js'\n\n// Init Comments\nif (window.OCA && !window.OCA.Comments) {\n\tObject.assign(window.OCA, { Comments: {} })\n}\n\n// Init Comments App view\nObject.assign(window.OCA.Comments, { View: CommentsInstance })\nlogger.debug('OCA.Comments.View initialized')\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, `.comment[data-v-70317f94]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-70317f94]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-70317f94]{display:flex;flex-grow:1;flex-direction:column;container-type:inline-size}.comment__header[data-v-70317f94]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-70317f94]{margin-inline-start:10px !important}.comment__author[data-v-70317f94]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-70317f94],.comment__timestamp[data-v-70317f94]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-70317f94]{position:relative}.comment__editor-description[data-v-70317f94]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-70317f94]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-70317f94]{white-space:pre-wrap;word-break:normal;max-height:200px;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;margin-top:-6px}.comment__message--expanded[data-v-70317f94]{max-height:none;overflow:visible}.comment__message[data-v-70317f94] img{max-width:100%;height:auto}.rich-contenteditable__input[data-v-70317f94]{min-height:44px;margin:0;padding:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/components/Comment.vue\"],\"names\":[],\"mappings\":\"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CACA,0BAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,iBAAA,CACA,gBAAA,CACA,aAAA,CACA,uBAAA,CACA,oBAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAED,uCACC,cAAA,CACA,WAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YAlFiB\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n\\n$comment-padding: 10px;\\n\\n.comment {\\n\\tdisplay: flex;\\n\\tgap: 8px;\\n\\tpadding: 5px $comment-padding;\\n\\n\\t&__side {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\tpadding-top: 6px;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-grow: 1;\\n\\t\\tflex-direction: column;\\n\\t\\tcontainer-type: inline-size;\\n\\t}\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tmin-height: 44px;\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tmargin-inline-start: $comment-padding !important;\\n\\t}\\n\\n\\t&__author {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&_loading,\\n\\t&__timestamp {\\n\\t\\tmargin-inline-start: auto;\\n\\t\\ttext-align: end;\\n\\t\\twhite-space: nowrap;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__editor-group {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__editor-description {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding-block: var(--default-grid-baseline);\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tposition: absolute !important;\\n\\t\\tbottom: 5px;\\n\\t\\tinset-inline-end: 0;\\n\\t}\\n\\n\\t&__message {\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tword-break: normal;\\n\\t\\tmax-height: 200px;\\n\\t\\toverflow: auto;\\n\\t\\tscrollbar-gutter: stable;\\n\\t\\tscrollbar-width: thin;\\n\\t\\tmargin-top: -6px;\\n\\t\\t&--expanded {\\n\\t\\t\\tmax-height: none;\\n\\t\\t\\toverflow: visible;\\n\\t\\t}\\n\\t\\t:deep(img) {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\theight: auto;\\n\\t\\t}\\n\\t}\\n}\\n\\n.rich-contenteditable__input {\\n\\tmin-height: 44px;\\n\\tmargin: 0;\\n\\tpadding: $comment-padding;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.comments[data-v-6c8c157a]{min-height:100%;display:flex;flex-direction:column}.comments__empty[data-v-6c8c157a],.comments__error[data-v-6c8c157a]{flex:1 0}.comments__retry[data-v-6c8c157a]{margin:0 auto}.comments__info[data-v-6c8c157a]{height:60px;color:var(--color-text-maxcontrast);text-align:center;line-height:60px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/views/Comments.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,oEAEC,QAAA,CAGD,kCACC,aAAA,CAGD,iCACC,WAAA,CACA,mCAAA,CACA,iBAAA,CACA,gBAAA\",\"sourcesContent\":[\"\\n.comments {\\n\\tmin-height: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t&__empty,\\n\\t&__error {\\n\\t\\tflex: 1 0;\\n\\t}\\n\\n\\t&__retry {\\n\\t\\tmargin: 0 auto;\\n\\t}\\n\\n\\t&__info {\\n\\t\\theight: 60px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\ttext-align: center;\\n\\t\\tline-height: 60px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"594\":\"2c86902dfae9a5006399\",\"620\":\"8f7783b39d802f10e22b\",\"2391\":\"908fc68e4bc9b878c937\",\"2880\":\"fdf99dc4a6f328ebe498\",\"4325\":\"67df7ab13a8e8d214551\",\"4508\":\"61802d3dfc5cc8f443ef\",\"5258\":\"0f6571662152e8883015\",\"5862\":\"d020c05f13d21afee82a\",\"6768\":\"c1c515178e2c30a27e58\",\"7145\":\"7889fe0b0ebc57e3d5f1\",\"8154\":\"4eb4313dee22e0ddb7de\",\"8339\":\"6cdca71a6b3b2d7bef33\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7062;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7062: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(11541)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","getLoggerBuilder","setApp","detectUser","build","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","getRootPath","generateRemoteUrl","client","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","decodeHtmlEntities","value","passes","parser","DOMParser","decoded","i","parseFromString","documentElement","textContent","useDeletedCommentLimbo","defineStore","state","idsInLimbo","actions","addId","id","push","removeId","index","indexOf","splice","checkForId","includes","message","resourceId","required","resourceType","data","deleted","editing","loading","computed","mapStores","methods","onEdit","onEditCancel","updateLocalMessage","onEditComment","async","commentId","commentPath","join","customRequest","method","EditComment","logger","debug","error","showError","t","onDeleteWithUndo","deletedCommentLimboStore","timeOutDelete","setTimeout","onDelete","TOAST_UNDO_TIMEOUT","showUndo","clearTimeout","deleteFile","DeleteComment","onNewComment","newComment","resourcePath","response","axios","post","actorDisplayName","getCurrentUser","displayName","actorId","uid","actorType","creationDateTime","Date","toUTCString","objectType","verb","parseInt","headers","split","pop","comment","stat","details","NewComment","localMessage","components","IconArrowRight","IconClose","IconTrashCanOutline","IconPencilOutline","NcActionButton","NcActions","NcActionSeparator","NcAvatar","NcButton","NcDateTime","NcLoadingIcon","NcRichContenteditable","NcRichText","mixins","CommentMixin","inheritAttrs","editor","Boolean","autoComplete","Function","userData","Object","tag","expanded","submitted","isOwnComment","richContent","mentions","keys","forEach","user","key","regex","RegExp","replace","component","NcUserBubble","label","primary","isEmptyMessage","trim","timestamp","parse","isLimbo","watch","beforeMount","toString","onSubmit","$nextTick","$refs","$el","focus","onExpand","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","directives","rawName","expression","class","scopedSlots","_u","fn","proxy","preventDefault","ref","nativeOn","apply","arguments","defineComponent","editorData","currentResourceId","search","callback","get","generateOcsUrl","params","itemType","itemId","sorter","limit","loadState","ocs","values","genMentionsData","flat","mention","mentionId","icon","mentionDisplayName","source","getComments","datetime","toISOString","offset","responseData","text","result","isDetailed","multistatus","responseItems","map","item","propstat","prop","prepareFileFromProps","getDirectoryFiles","parseXML","processResponsePayload","Comment","NcEmptyContent","IconRefresh","IconMessageReplyTextOutline","IconAlertCircleOutline","elementVisibility","CommentView","done","comments","cancelRequest","hasComments","length","isFirstLoading","onVisibilityChange","isVisible","date","readMarker","markCommentsAsRead","e","update","resetState","onScrollBottomReached","request","abort","controller","AbortController","signal","url","cancelableRequest","unshift","findIndex","_l","$set","Vue","use","PiniaVuePlugin","__webpack_nonce__","getCSPNonce","mixin","n","window","OCA","Comments","assign","View","constructor","pinia","createPinia","propsData","extend","CommentsApp","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","chunkId","Promise","all","reduce","promises","u","obj","prototype","hasOwnProperty","l","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","timeout","doneFns","parentNode","removeChild","bind","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","globalThis","importScripts","location","currentScript","tagName","toUpperCase","test","Error","p","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/comments-comments-tab.js b/dist/comments-comments-tab.js index d8ee3c30a92..bc4ca27a91d 100644 --- a/dist/comments-comments-tab.js +++ b/dist/comments-comments-tab.js @@ -1,2 +1,2 @@ -(()=>{var e,o,r,n={1836:(e,o,r)=>{"use strict";var n=r(21777),i=r(81222),a=r(51651),s=r(10810),c=r(85471),d=r(96689),l=r(60669),u=r(29999),m=r(90176),f=r(35550);let p,b;if(c.Ay.use(s.R2),r.nc=(0,n.aV)(),(0,i.C)("comments","activityEnabled",!1)&&void 0!==OCA?.Activity?.registerSidebarAction)window.addEventListener("DOMContentLoaded",function(){window.OCA.Activity.registerSidebarAction({mount:async(e,{fileInfo:t,reload:o})=>{const n=(0,s.Ey)();if(!p){const{default:e}=await Promise.all([r.e(4208),r.e(4743),r.e(5679)]).then(r.bind(r,5679));p=c.Ay.extend(e)}b=new p({el:e,pinia:n,propsData:{reloadCallback:o,resourceId:t.id}}),d.A.info("Comments plugin mounted in Activity sidebar action",{fileInfo:t})},unmount:()=>{b&&b.$destroy()}}),window.OCA.Activity.registerSidebarEntries(async({fileInfo:e,limit:t,offset:o})=>{const{data:n}=await async function({resourceType:e,resourceId:t},o){const r=["",e,t].join("/"),n=o.datetime?`${o.datetime.toISOString()}`:"",i=await f.A.customRequest(r,{method:"REPORT",data:`\n\t\t\t\n\t\t\t\t${o.limit??20}\n\t\t\t\t${o.offset||0}\n\t\t\t\t${n}\n\t\t\t`,...o}),a=await i.text(),s=function(e,t=!1){const{multistatus:{response:o}}=e;return o.map(e=>{const o=e.propstat.prop;return(0,m.ch)(o,o.id.toString(),t)})}(await(0,l.h4)(a),!0);return(0,u.hq)(i,s,!0)}({resourceType:"files",resourceId:e.id},{limit:t,offset:o});d.A.debug("Loaded comments",{fileInfo:e,comments:n});const{default:i}=await Promise.all([r.e(4208),r.e(4743),r.e(1543)]).then(r.bind(r,31543)),s=c.Ay.extend(i);return n.map(t=>({_CommentsViewInstance:void 0,timestamp:(0,a.A)(t.props?.creationDateTime).toDate().getTime(),mount(o,{reload:r}){this._CommentsViewInstance=new s({el:o,propsData:{comment:t,resourceId:e.id,reloadCallback:r}})},unmount(){this._CommentsViewInstance?.$destroy()}}))}),window.OCA.Activity.registerSidebarFilter(e=>"comments"!==e.type),d.A.info("Comments plugin registered for Activity sidebar action")});else{let e=null;const o=new OCA.Files.Sidebar.Tab({id:"comments",name:t("comments","Comments"),iconSvg:'',async mount(t,o,r){e&&e.$destroy(),e=new OCA.Comments.View("files",{parent:r,propsData:{resourceId:o.id}}),await e.update(o.id),e.$mount(t)},update(t){e.update(t.id)},destroy(){e.$destroy(),e=null},scrollBottomReached(){e.onScrollBottomReached()}});window.addEventListener("DOMContentLoaded",function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(o)})}},17003:(e,t,o)=>{"use strict";o.d(t,{e:()=>n});var r=o(63814);function n(){return(0,r.dC)("dav/comments")}},35550:(e,t,o)=>{"use strict";o.d(t,{A:()=>c});var r=o(21777),n=o(60669),i=o(17003);const a=(0,n.UU)((0,i.e)());function s(e){a.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:e??""})}(0,r.zo)(s),s((0,r.do)());const c=a},42634:()=>{},59169:()=>{},63779:()=>{},77199:()=>{},86833:()=>{},96689:(e,t,o)=>{"use strict";o.d(t,{A:()=>r});const r=(0,o(35947).YK)().setApp("comments").detectUser().build()}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var o=i[e]={id:e,loaded:!1,exports:{}};return n[e].call(o.exports,o,o.exports,a),o.loaded=!0,o.exports}a.m=n,e=[],a.O=(t,o,r,n)=>{if(!o){var i=1/0;for(l=0;l=n)&&Object.keys(a.O).every(e=>a.O[e](o[c]))?o.splice(c--,1):(s=!1,n0&&e[l-1][2]>n;l--)e[l]=e[l-1];e[l]=[o,r,n]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var o in t)a.o(t,o)&&!a.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce((t,o)=>(a.f[o](e,t),t),[])),a.u=e=>e+"-"+e+".js?v="+{594:"2c86902dfae9a5006399",620:"8f7783b39d802f10e22b",1543:"897942cd480f832e974d",2391:"908fc68e4bc9b878c937",2880:"fdf99dc4a6f328ebe498",4325:"67df7ab13a8e8d214551",4508:"61802d3dfc5cc8f443ef",4743:"9a8d995c9f74941ba261",5258:"0f6571662152e8883015",5679:"d276e13535db16182f50",5862:"d020c05f13d21afee82a",6768:"c1c515178e2c30a27e58",7145:"7889fe0b0ebc57e3d5f1",8154:"4eb4313dee22e0ddb7de",8339:"6cdca71a6b3b2d7bef33"}[e],a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},r="nextcloud-ui-legacy:",a.l=(e,t,n,i)=>{if(o[e])o[e].push(t);else{var s,c;if(void 0!==n)for(var d=document.getElementsByTagName("script"),l=0;l{s.onerror=s.onload=null,clearTimeout(f);var n=o[e];if(delete o[e],s.parentNode&&s.parentNode.removeChild(s),n&&n.forEach(e=>e(r)),t)return t(r)},f=setTimeout(m.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=m.bind(null,s.onerror),s.onload=m.bind(null,s.onload),c&&document.head.appendChild(s)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.j=2122,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");if(o.length)for(var r=o.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=o[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{var e={2122:0};a.f.j=(t,o)=>{var r=a.o(e,t)?e[t]:void 0;if(0!==r)if(r)o.push(r[2]);else{var n=new Promise((o,n)=>r=e[t]=[o,n]);o.push(r[2]=n);var i=a.p+a.u(t),s=new Error;a.l(i,o=>{if(a.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var n=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.src;s.message="Loading chunk "+t+" failed.\n("+n+": "+i+")",s.name="ChunkLoadError",s.type=n,s.request=i,r[1](s)}},"chunk-"+t,t)}},a.O.j=t=>0===e[t];var t=(t,o)=>{var r,n,[i,s,c]=o,d=0;if(i.some(t=>0!==e[t])){for(r in s)a.o(s,r)&&(a.m[r]=s[r]);if(c)var l=c(a)}for(t&&t(o);da(1836));s=a.O(s)})(); -//# sourceMappingURL=comments-comments-tab.js.map?v=f7d16805abbeff048409 \ No newline at end of file +(()=>{var e,o,r,n={1836:(e,o,r)=>{"use strict";var n=r(21777),i=r(81222),a=r(51651),s=r(10810),c=r(85471),d=r(96689),l=r(60669),u=r(29999),m=r(90176),f=r(35550);let p,b;if(c.Ay.use(s.R2),r.nc=(0,n.aV)(),(0,i.C)("comments","activityEnabled",!1)&&void 0!==OCA?.Activity?.registerSidebarAction)window.addEventListener("DOMContentLoaded",function(){window.OCA.Activity.registerSidebarAction({mount:async(e,{fileInfo:t,reload:o})=>{const n=(0,s.Ey)();if(!p){const{default:e}=await Promise.all([r.e(4208),r.e(4743),r.e(5679)]).then(r.bind(r,5679));p=c.Ay.extend(e)}b=new p({el:e,pinia:n,propsData:{reloadCallback:o,resourceId:t.id}}),d.A.info("Comments plugin mounted in Activity sidebar action",{fileInfo:t})},unmount:()=>{b&&b.$destroy()}}),window.OCA.Activity.registerSidebarEntries(async({fileInfo:e,limit:t,offset:o})=>{const{data:n}=await async function({resourceType:e,resourceId:t},o){const r=["",e,t].join("/"),n=o.datetime?`${o.datetime.toISOString()}`:"",i=await f.A.customRequest(r,{method:"REPORT",data:`\n\t\t\t\n\t\t\t\t${o.limit??20}\n\t\t\t\t${o.offset||0}\n\t\t\t\t${n}\n\t\t\t`,...o}),a=await i.text(),s=function(e,t=!1){const{multistatus:{response:o}}=e;return o.map(e=>{const o=e.propstat.prop;return(0,m.ch)(o,o.id.toString(),t)})}(await(0,l.h4)(a),!0);return(0,u.hq)(i,s,!0)}({resourceType:"files",resourceId:e.id},{limit:t,offset:o});d.A.debug("Loaded comments",{fileInfo:e,comments:n});const{default:i}=await Promise.all([r.e(4208),r.e(4743),r.e(1543)]).then(r.bind(r,31543)),s=c.Ay.extend(i);return n.map(t=>({_CommentsViewInstance:void 0,timestamp:(0,a.A)(t.props?.creationDateTime).toDate().getTime(),mount(o,{reload:r}){this._CommentsViewInstance=new s({el:o,propsData:{comment:t,resourceId:e.id,reloadCallback:r}})},unmount(){this._CommentsViewInstance?.$destroy()}}))}),window.OCA.Activity.registerSidebarFilter(e=>"comments"!==e.type),d.A.info("Comments plugin registered for Activity sidebar action")});else{let e=null;const o=new OCA.Files.Sidebar.Tab({id:"comments",name:t("comments","Comments"),iconSvg:'',async mount(t,o,r){e&&e.$destroy(),e=new OCA.Comments.View("files",{parent:r,propsData:{resourceId:o.id}}),await e.update(o.id),e.$mount(t)},update(t){e.update(t.id)},destroy(){e.$destroy(),e=null},scrollBottomReached(){e.onScrollBottomReached()}});window.addEventListener("DOMContentLoaded",function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(o)})}},17003:(e,t,o)=>{"use strict";o.d(t,{e:()=>n});var r=o(63814);function n(){return(0,r.dC)("dav/comments")}},35550:(e,t,o)=>{"use strict";o.d(t,{A:()=>c});var r=o(21777),n=o(60669),i=o(17003);const a=(0,n.UU)((0,i.e)());function s(e){a.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:e??""})}(0,r.zo)(s),s((0,r.do)());const c=a},42634:()=>{},59169:()=>{},63779:()=>{},77199:()=>{},86833:()=>{},96689:(e,t,o)=>{"use strict";o.d(t,{A:()=>r});const r=(0,o(35947).YK)().setApp("comments").detectUser().build()}},i={};function a(e){var t=i[e];if(void 0!==t)return t.exports;var o=i[e]={id:e,loaded:!1,exports:{}};return n[e].call(o.exports,o,o.exports,a),o.loaded=!0,o.exports}a.m=n,e=[],a.O=(t,o,r,n)=>{if(!o){var i=1/0;for(l=0;l=n)&&Object.keys(a.O).every(e=>a.O[e](o[c]))?o.splice(c--,1):(s=!1,n0&&e[l-1][2]>n;l--)e[l]=e[l-1];e[l]=[o,r,n]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var o in t)a.o(t,o)&&!a.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce((t,o)=>(a.f[o](e,t),t),[])),a.u=e=>e+"-"+e+".js?v="+{594:"2c86902dfae9a5006399",620:"8f7783b39d802f10e22b",1543:"897942cd480f832e974d",2391:"908fc68e4bc9b878c937",2880:"fdf99dc4a6f328ebe498",4325:"67df7ab13a8e8d214551",4508:"61802d3dfc5cc8f443ef",4743:"49947d0e7d5380717427",5258:"0f6571662152e8883015",5679:"d276e13535db16182f50",5862:"d020c05f13d21afee82a",6768:"c1c515178e2c30a27e58",7145:"7889fe0b0ebc57e3d5f1",8154:"4eb4313dee22e0ddb7de",8339:"6cdca71a6b3b2d7bef33"}[e],a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},r="nextcloud-ui-legacy:",a.l=(e,t,n,i)=>{if(o[e])o[e].push(t);else{var s,c;if(void 0!==n)for(var d=document.getElementsByTagName("script"),l=0;l{s.onerror=s.onload=null,clearTimeout(f);var n=o[e];if(delete o[e],s.parentNode&&s.parentNode.removeChild(s),n&&n.forEach(e=>e(r)),t)return t(r)},f=setTimeout(m.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=m.bind(null,s.onerror),s.onload=m.bind(null,s.onload),c&&document.head.appendChild(s)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.j=2122,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");if(o.length)for(var r=o.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=o[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{var e={2122:0};a.f.j=(t,o)=>{var r=a.o(e,t)?e[t]:void 0;if(0!==r)if(r)o.push(r[2]);else{var n=new Promise((o,n)=>r=e[t]=[o,n]);o.push(r[2]=n);var i=a.p+a.u(t),s=new Error;a.l(i,o=>{if(a.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var n=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.src;s.message="Loading chunk "+t+" failed.\n("+n+": "+i+")",s.name="ChunkLoadError",s.type=n,s.request=i,r[1](s)}},"chunk-"+t,t)}},a.O.j=t=>0===e[t];var t=(t,o)=>{var r,n,[i,s,c]=o,d=0;if(i.some(t=>0!==e[t])){for(r in s)a.o(s,r)&&(a.m[r]=s[r]);if(c)var l=c(a)}for(t&&t(o);da(1836));s=a.O(s)})(); +//# sourceMappingURL=comments-comments-tab.js.map?v=c29bb9268250d1b857b0 \ No newline at end of file diff --git a/dist/comments-comments-tab.js.map b/dist/comments-comments-tab.js.map index d3e8f9483d3..5bbe285d77c 100644 --- a/dist/comments-comments-tab.js.map +++ b/dist/comments-comments-tab.js.map @@ -1 +1 @@ -{"version":3,"file":"comments-comments-tab.js?v=f7d16805abbeff048409","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/comments/src/comments-activity-tab.ts","webpack:///nextcloud/apps/comments/src/comments-tab.js","webpack:///nextcloud/apps/comments/src/services/GetComments.ts","webpack:///nextcloud/apps/comments/src/utils/davUtils.js","webpack:///nextcloud/apps/comments/src/services/DavClient.js","webpack:///nextcloud/apps/comments/src/logger.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport moment from '@nextcloud/moment';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport Vue, {} from 'vue';\nimport logger from './logger.js';\nimport { getComments } from './services/GetComments.js';\nVue.use(PiniaVuePlugin);\nlet ActivityTabPluginView;\nlet ActivityTabPluginInstance;\n/**\n * Register the comments plugins for the Activity sidebar\n */\nexport function registerCommentsPlugins() {\n window.OCA.Activity.registerSidebarAction({\n mount: async (el, { fileInfo, reload }) => {\n const pinia = createPinia();\n if (!ActivityTabPluginView) {\n const { default: ActivityCommentAction } = await import('./views/ActivityCommentAction.vue');\n // @ts-expect-error Types are broken for Vue2\n ActivityTabPluginView = Vue.extend(ActivityCommentAction);\n }\n ActivityTabPluginInstance = new ActivityTabPluginView({\n el,\n pinia,\n propsData: {\n reloadCallback: reload,\n resourceId: fileInfo.id,\n },\n });\n logger.info('Comments plugin mounted in Activity sidebar action', { fileInfo });\n },\n unmount: () => {\n // destroy previous instance if available\n if (ActivityTabPluginInstance) {\n ActivityTabPluginInstance.$destroy();\n }\n },\n });\n window.OCA.Activity.registerSidebarEntries(async ({ fileInfo, limit, offset }) => {\n const { data: comments } = await getComments({ resourceType: 'files', resourceId: fileInfo.id }, { limit, offset });\n logger.debug('Loaded comments', { fileInfo, comments });\n const { default: CommentView } = await import('./views/ActivityCommentEntry.vue');\n // @ts-expect-error Types are broken for Vue2\n const CommentsViewObject = Vue.extend(CommentView);\n return comments.map((comment) => ({\n _CommentsViewInstance: undefined,\n timestamp: moment(comment.props?.creationDateTime).toDate().getTime(),\n mount(element, { reload }) {\n this._CommentsViewInstance = new CommentsViewObject({\n el: element,\n propsData: {\n comment,\n resourceId: fileInfo.id,\n reloadCallback: reload,\n },\n });\n },\n unmount() {\n this._CommentsViewInstance?.$destroy();\n },\n }));\n });\n window.OCA.Activity.registerSidebarFilter((activity) => activity.type !== 'comments');\n logger.info('Comments plugin registered for Activity sidebar action');\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport MessageReplyText from '@mdi/svg/svg/message-reply-text.svg?raw'\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport { registerCommentsPlugins } from './comments-activity-tab.ts'\n\n// @ts-expect-error __webpack_nonce__ is injected by webpack\n__webpack_nonce__ = getCSPNonce()\n\nif (loadState('comments', 'activityEnabled', false) && OCA?.Activity?.registerSidebarAction !== undefined) {\n\t// Do not mount own tab but mount into activity\n\twindow.addEventListener('DOMContentLoaded', function() {\n\t\tregisterCommentsPlugins()\n\t})\n} else {\n\t// Init Comments tab component\n\tlet TabInstance = null\n\tconst commentTab = new OCA.Files.Sidebar.Tab({\n\t\tid: 'comments',\n\t\tname: t('comments', 'Comments'),\n\t\ticonSvg: MessageReplyText,\n\n\t\tasync mount(el, fileInfo, context) {\n\t\t\tif (TabInstance) {\n\t\t\t\tTabInstance.$destroy()\n\t\t\t}\n\t\t\tTabInstance = new OCA.Comments.View('files', {\n\t\t\t\t// Better integration with vue parent component\n\t\t\t\tparent: context,\n\t\t\t\tpropsData: {\n\t\t\t\t\tresourceId: fileInfo.id,\n\t\t\t\t},\n\t\t\t})\n\t\t\t// Only mount after we have all the info we need\n\t\t\tawait TabInstance.update(fileInfo.id)\n\t\t\tTabInstance.$mount(el)\n\t\t},\n\t\tupdate(fileInfo) {\n\t\t\tTabInstance.update(fileInfo.id)\n\t\t},\n\t\tdestroy() {\n\t\t\tTabInstance.$destroy()\n\t\t\tTabInstance = null\n\t\t},\n\t\tscrollBottomReached() {\n\t\t\tTabInstance.onScrollBottomReached()\n\t\t},\n\t})\n\n\twindow.addEventListener('DOMContentLoaded', function() {\n\t\tif (OCA.Files && OCA.Files.Sidebar) {\n\t\t\tOCA.Files.Sidebar.registerTab(commentTab)\n\t\t}\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { parseXML } from 'webdav';\nimport { processResponsePayload } from 'webdav/dist/node/response.js';\nimport { prepareFileFromProps } from 'webdav/dist/node/tools/dav.js';\nimport client from './DavClient.js';\nexport const DEFAULT_LIMIT = 20;\n/**\n * Retrieve the comments list\n *\n * @param data destructuring object\n * @param data.resourceType the resource type\n * @param data.resourceId the resource ID\n * @param [options] optional options for axios\n * @param [options.offset] the pagination offset\n * @param [options.limit] the pagination limit, defaults to 20\n * @param [options.datetime] optional date to query\n * @return the comments list\n */\nexport async function getComments({ resourceType, resourceId }, options) {\n const resourcePath = ['', resourceType, resourceId].join('/');\n const datetime = options.datetime ? `${options.datetime.toISOString()}` : '';\n const response = await client.customRequest(resourcePath, {\n method: 'REPORT',\n data: `\n\t\t\t\n\t\t\t\t${options.limit ?? DEFAULT_LIMIT}\n\t\t\t\t${options.offset || 0}\n\t\t\t\t${datetime}\n\t\t\t`,\n ...options,\n });\n const responseData = await response.text();\n const result = await parseXML(responseData);\n const stat = getDirectoryFiles(result, true);\n // https://github.com/perry-mitchell/webdav-client/issues/339\n return processResponsePayload(response, stat, true);\n}\n/**\n * https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/operations/directoryContents.ts\n *\n * @param result\n * @param isDetailed\n */\nfunction getDirectoryFiles(result, isDetailed = false) {\n // Extract the response items (directory contents)\n const { multistatus: { response: responseItems }, } = result;\n // Map all items to a consistent output structure (results)\n return responseItems.map((item) => {\n // Each item should contain a stat object\n const props = item.propstat.prop;\n return prepareFileFromProps(props, props.id.toString(), isDetailed);\n });\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router'\n\n/**\n *\n */\nfunction getRootPath() {\n\treturn generateRemoteUrl('dav/comments')\n}\n\nexport { getRootPath }\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\nimport { createClient } from 'webdav'\nimport { getRootPath } from '../utils/davUtils.js'\n\n// init webdav client\nconst client = createClient(getRootPath())\n\n// set CSRF token header\n/**\n * @param token\n */\nfunction setHeaders(token) {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('comments')\n\t.detectUser()\n\t.build()\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"594\":\"2c86902dfae9a5006399\",\"620\":\"8f7783b39d802f10e22b\",\"1543\":\"897942cd480f832e974d\",\"2391\":\"908fc68e4bc9b878c937\",\"2880\":\"fdf99dc4a6f328ebe498\",\"4325\":\"67df7ab13a8e8d214551\",\"4508\":\"61802d3dfc5cc8f443ef\",\"4743\":\"9a8d995c9f74941ba261\",\"5258\":\"0f6571662152e8883015\",\"5679\":\"d276e13535db16182f50\",\"5862\":\"d020c05f13d21afee82a\",\"6768\":\"c1c515178e2c30a27e58\",\"7145\":\"7889fe0b0ebc57e3d5f1\",\"8154\":\"4eb4313dee22e0ddb7de\",\"8339\":\"6cdca71a6b3b2d7bef33\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2122;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2122: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(1836)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","ActivityTabPluginView","ActivityTabPluginInstance","Vue","use","PiniaVuePlugin","__webpack_nonce__","getCSPNonce","loadState","undefined","OCA","Activity","registerSidebarAction","window","addEventListener","mount","async","el","fileInfo","reload","pinia","createPinia","default","ActivityCommentAction","extend","propsData","reloadCallback","resourceId","id","logger","info","unmount","$destroy","registerSidebarEntries","limit","offset","data","comments","resourceType","options","resourcePath","join","datetime","toISOString","response","client","customRequest","method","responseData","text","stat","result","isDetailed","multistatus","responseItems","map","item","props","propstat","prop","prepareFileFromProps","toString","getDirectoryFiles","parseXML","processResponsePayload","getComments","debug","CommentView","CommentsViewObject","comment","_CommentsViewInstance","timestamp","moment","creationDateTime","toDate","getTime","element","this","registerSidebarFilter","activity","type","TabInstance","commentTab","Files","Sidebar","Tab","name","t","iconSvg","context","Comments","View","parent","update","$mount","destroy","scrollBottomReached","onScrollBottomReached","registerTab","getRootPath","generateRemoteUrl","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","getLoggerBuilder","setApp","detectUser","build","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","obj","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","globalThis","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","installedChunks","installedChunkData","promise","resolve","reject","error","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"comments-comments-tab.js?v=c29bb9268250d1b857b0","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/comments/src/comments-activity-tab.ts","webpack:///nextcloud/apps/comments/src/comments-tab.js","webpack:///nextcloud/apps/comments/src/services/GetComments.ts","webpack:///nextcloud/apps/comments/src/utils/davUtils.js","webpack:///nextcloud/apps/comments/src/services/DavClient.js","webpack:///nextcloud/apps/comments/src/logger.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport moment from '@nextcloud/moment';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport Vue, {} from 'vue';\nimport logger from './logger.js';\nimport { getComments } from './services/GetComments.js';\nVue.use(PiniaVuePlugin);\nlet ActivityTabPluginView;\nlet ActivityTabPluginInstance;\n/**\n * Register the comments plugins for the Activity sidebar\n */\nexport function registerCommentsPlugins() {\n window.OCA.Activity.registerSidebarAction({\n mount: async (el, { fileInfo, reload }) => {\n const pinia = createPinia();\n if (!ActivityTabPluginView) {\n const { default: ActivityCommentAction } = await import('./views/ActivityCommentAction.vue');\n // @ts-expect-error Types are broken for Vue2\n ActivityTabPluginView = Vue.extend(ActivityCommentAction);\n }\n ActivityTabPluginInstance = new ActivityTabPluginView({\n el,\n pinia,\n propsData: {\n reloadCallback: reload,\n resourceId: fileInfo.id,\n },\n });\n logger.info('Comments plugin mounted in Activity sidebar action', { fileInfo });\n },\n unmount: () => {\n // destroy previous instance if available\n if (ActivityTabPluginInstance) {\n ActivityTabPluginInstance.$destroy();\n }\n },\n });\n window.OCA.Activity.registerSidebarEntries(async ({ fileInfo, limit, offset }) => {\n const { data: comments } = await getComments({ resourceType: 'files', resourceId: fileInfo.id }, { limit, offset });\n logger.debug('Loaded comments', { fileInfo, comments });\n const { default: CommentView } = await import('./views/ActivityCommentEntry.vue');\n // @ts-expect-error Types are broken for Vue2\n const CommentsViewObject = Vue.extend(CommentView);\n return comments.map((comment) => ({\n _CommentsViewInstance: undefined,\n timestamp: moment(comment.props?.creationDateTime).toDate().getTime(),\n mount(element, { reload }) {\n this._CommentsViewInstance = new CommentsViewObject({\n el: element,\n propsData: {\n comment,\n resourceId: fileInfo.id,\n reloadCallback: reload,\n },\n });\n },\n unmount() {\n this._CommentsViewInstance?.$destroy();\n },\n }));\n });\n window.OCA.Activity.registerSidebarFilter((activity) => activity.type !== 'comments');\n logger.info('Comments plugin registered for Activity sidebar action');\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport MessageReplyText from '@mdi/svg/svg/message-reply-text.svg?raw'\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { loadState } from '@nextcloud/initial-state'\nimport { registerCommentsPlugins } from './comments-activity-tab.ts'\n\n// @ts-expect-error __webpack_nonce__ is injected by webpack\n__webpack_nonce__ = getCSPNonce()\n\nif (loadState('comments', 'activityEnabled', false) && OCA?.Activity?.registerSidebarAction !== undefined) {\n\t// Do not mount own tab but mount into activity\n\twindow.addEventListener('DOMContentLoaded', function() {\n\t\tregisterCommentsPlugins()\n\t})\n} else {\n\t// Init Comments tab component\n\tlet TabInstance = null\n\tconst commentTab = new OCA.Files.Sidebar.Tab({\n\t\tid: 'comments',\n\t\tname: t('comments', 'Comments'),\n\t\ticonSvg: MessageReplyText,\n\n\t\tasync mount(el, fileInfo, context) {\n\t\t\tif (TabInstance) {\n\t\t\t\tTabInstance.$destroy()\n\t\t\t}\n\t\t\tTabInstance = new OCA.Comments.View('files', {\n\t\t\t\t// Better integration with vue parent component\n\t\t\t\tparent: context,\n\t\t\t\tpropsData: {\n\t\t\t\t\tresourceId: fileInfo.id,\n\t\t\t\t},\n\t\t\t})\n\t\t\t// Only mount after we have all the info we need\n\t\t\tawait TabInstance.update(fileInfo.id)\n\t\t\tTabInstance.$mount(el)\n\t\t},\n\t\tupdate(fileInfo) {\n\t\t\tTabInstance.update(fileInfo.id)\n\t\t},\n\t\tdestroy() {\n\t\t\tTabInstance.$destroy()\n\t\t\tTabInstance = null\n\t\t},\n\t\tscrollBottomReached() {\n\t\t\tTabInstance.onScrollBottomReached()\n\t\t},\n\t})\n\n\twindow.addEventListener('DOMContentLoaded', function() {\n\t\tif (OCA.Files && OCA.Files.Sidebar) {\n\t\t\tOCA.Files.Sidebar.registerTab(commentTab)\n\t\t}\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { parseXML } from 'webdav';\nimport { processResponsePayload } from 'webdav/dist/node/response.js';\nimport { prepareFileFromProps } from 'webdav/dist/node/tools/dav.js';\nimport client from './DavClient.js';\nexport const DEFAULT_LIMIT = 20;\n/**\n * Retrieve the comments list\n *\n * @param data destructuring object\n * @param data.resourceType the resource type\n * @param data.resourceId the resource ID\n * @param [options] optional options for axios\n * @param [options.offset] the pagination offset\n * @param [options.limit] the pagination limit, defaults to 20\n * @param [options.datetime] optional date to query\n * @return the comments list\n */\nexport async function getComments({ resourceType, resourceId }, options) {\n const resourcePath = ['', resourceType, resourceId].join('/');\n const datetime = options.datetime ? `${options.datetime.toISOString()}` : '';\n const response = await client.customRequest(resourcePath, {\n method: 'REPORT',\n data: `\n\t\t\t\n\t\t\t\t${options.limit ?? DEFAULT_LIMIT}\n\t\t\t\t${options.offset || 0}\n\t\t\t\t${datetime}\n\t\t\t`,\n ...options,\n });\n const responseData = await response.text();\n const result = await parseXML(responseData);\n const stat = getDirectoryFiles(result, true);\n // https://github.com/perry-mitchell/webdav-client/issues/339\n return processResponsePayload(response, stat, true);\n}\n/**\n * https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/operations/directoryContents.ts\n *\n * @param result\n * @param isDetailed\n */\nfunction getDirectoryFiles(result, isDetailed = false) {\n // Extract the response items (directory contents)\n const { multistatus: { response: responseItems }, } = result;\n // Map all items to a consistent output structure (results)\n return responseItems.map((item) => {\n // Each item should contain a stat object\n const props = item.propstat.prop;\n return prepareFileFromProps(props, props.id.toString(), isDetailed);\n });\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router'\n\n/**\n *\n */\nfunction getRootPath() {\n\treturn generateRemoteUrl('dav/comments')\n}\n\nexport { getRootPath }\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\nimport { createClient } from 'webdav'\nimport { getRootPath } from '../utils/davUtils.js'\n\n// init webdav client\nconst client = createClient(getRootPath())\n\n// set CSRF token header\n/**\n * @param token\n */\nfunction setHeaders(token) {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('comments')\n\t.detectUser()\n\t.build()\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"594\":\"2c86902dfae9a5006399\",\"620\":\"8f7783b39d802f10e22b\",\"1543\":\"897942cd480f832e974d\",\"2391\":\"908fc68e4bc9b878c937\",\"2880\":\"fdf99dc4a6f328ebe498\",\"4325\":\"67df7ab13a8e8d214551\",\"4508\":\"61802d3dfc5cc8f443ef\",\"4743\":\"49947d0e7d5380717427\",\"5258\":\"0f6571662152e8883015\",\"5679\":\"d276e13535db16182f50\",\"5862\":\"d020c05f13d21afee82a\",\"6768\":\"c1c515178e2c30a27e58\",\"7145\":\"7889fe0b0ebc57e3d5f1\",\"8154\":\"4eb4313dee22e0ddb7de\",\"8339\":\"6cdca71a6b3b2d7bef33\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2122;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2122: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(1836)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","ActivityTabPluginView","ActivityTabPluginInstance","Vue","use","PiniaVuePlugin","__webpack_nonce__","getCSPNonce","loadState","undefined","OCA","Activity","registerSidebarAction","window","addEventListener","mount","async","el","fileInfo","reload","pinia","createPinia","default","ActivityCommentAction","extend","propsData","reloadCallback","resourceId","id","logger","info","unmount","$destroy","registerSidebarEntries","limit","offset","data","comments","resourceType","options","resourcePath","join","datetime","toISOString","response","client","customRequest","method","responseData","text","stat","result","isDetailed","multistatus","responseItems","map","item","props","propstat","prop","prepareFileFromProps","toString","getDirectoryFiles","parseXML","processResponsePayload","getComments","debug","CommentView","CommentsViewObject","comment","_CommentsViewInstance","timestamp","moment","creationDateTime","toDate","getTime","element","this","registerSidebarFilter","activity","type","TabInstance","commentTab","Files","Sidebar","Tab","name","t","iconSvg","context","Comments","View","parent","update","$mount","destroy","scrollBottomReached","onScrollBottomReached","registerTab","getRootPath","generateRemoteUrl","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","getLoggerBuilder","setApp","detectUser","build","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","obj","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","children","scriptUrl","globalThis","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","installedChunks","installedChunkData","promise","resolve","reject","error","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file