@nextcloud/vue 8.9.1 → 8.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +4 -2
  3. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  4. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  5. package/dist/Components/NcActionInput.cjs +1 -1
  6. package/dist/Components/NcActionInput.mjs +1 -1
  7. package/dist/Components/NcActions.cjs +1 -1
  8. package/dist/Components/NcActions.mjs +1 -1
  9. package/dist/Components/NcAppContent.cjs +1 -1
  10. package/dist/Components/NcAppContent.mjs +1 -1
  11. package/dist/Components/NcAppNavigation.cjs +1 -1
  12. package/dist/Components/NcAppNavigation.mjs +1 -1
  13. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  14. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  15. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  16. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  17. package/dist/Components/NcAppNavigationList.cjs +6 -6
  18. package/dist/Components/NcAppNavigationList.cjs.map +1 -1
  19. package/dist/Components/NcAppNavigationList.mjs +8 -8
  20. package/dist/Components/NcAppNavigationList.mjs.map +1 -1
  21. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  22. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  23. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  24. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  25. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  26. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  27. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  28. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  29. package/dist/Components/NcAppSidebar.cjs +1 -1
  30. package/dist/Components/NcAppSidebar.mjs +1 -1
  31. package/dist/Components/NcAvatar.cjs +1 -1
  32. package/dist/Components/NcAvatar.mjs +1 -1
  33. package/dist/Components/NcBreadcrumb.cjs +1 -1
  34. package/dist/Components/NcBreadcrumb.mjs +1 -1
  35. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  36. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  37. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  38. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  39. package/dist/Components/NcColorPicker.cjs +1 -1
  40. package/dist/Components/NcColorPicker.mjs +1 -1
  41. package/dist/Components/NcContent.cjs +1 -1
  42. package/dist/Components/NcContent.mjs +1 -1
  43. package/dist/Components/NcDashboardWidget.cjs +1 -1
  44. package/dist/Components/NcDashboardWidget.mjs +1 -1
  45. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  46. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  47. package/dist/Components/NcDateTime.cjs +1 -1
  48. package/dist/Components/NcDateTime.mjs +1 -1
  49. package/dist/Components/NcDateTimePicker.cjs +2 -2
  50. package/dist/Components/NcDateTimePicker.mjs +4 -4
  51. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  52. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  53. package/dist/Components/NcEmojiPicker.cjs +1 -1
  54. package/dist/Components/NcEmojiPicker.mjs +1 -1
  55. package/dist/Components/NcListItem.cjs +1 -1
  56. package/dist/Components/NcListItem.mjs +1 -1
  57. package/dist/Components/NcListItemIcon.cjs +1 -1
  58. package/dist/Components/NcListItemIcon.mjs +1 -1
  59. package/dist/Components/NcModal.cjs +1 -1
  60. package/dist/Components/NcModal.mjs +3 -3
  61. package/dist/Components/NcPasswordField.cjs +1 -1
  62. package/dist/Components/NcPasswordField.mjs +1 -1
  63. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  64. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  65. package/dist/Components/NcRichContenteditable.cjs +1 -1
  66. package/dist/Components/NcRichContenteditable.mjs +2 -2
  67. package/dist/Components/NcRichText.cjs +1 -1
  68. package/dist/Components/NcRichText.mjs +3 -3
  69. package/dist/Components/NcSelect.cjs +1 -1
  70. package/dist/Components/NcSelect.mjs +1 -1
  71. package/dist/Components/NcSelectTags.cjs +1 -1
  72. package/dist/Components/NcSelectTags.mjs +1 -1
  73. package/dist/Components/NcSettingsInputText.cjs +1 -1
  74. package/dist/Components/NcSettingsInputText.mjs +1 -1
  75. package/dist/Components/NcSettingsSection.cjs +1 -1
  76. package/dist/Components/NcSettingsSection.mjs +1 -1
  77. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  78. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  79. package/dist/Components/NcTextField.cjs +1 -1
  80. package/dist/Components/NcTextField.mjs +1 -1
  81. package/dist/Components/NcTimezonePicker.cjs +1 -1
  82. package/dist/Components/NcTimezonePicker.mjs +1 -1
  83. package/dist/Components/NcUserBubble.cjs +1 -1
  84. package/dist/Components/NcUserBubble.mjs +1 -1
  85. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  86. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  87. package/dist/Functions/reference.cjs +1 -1
  88. package/dist/Functions/reference.mjs +1 -1
  89. package/dist/Functions/usernameToColor.cjs +1 -1
  90. package/dist/Functions/usernameToColor.mjs +1 -1
  91. package/dist/Mixins/richEditor.cjs +1 -1
  92. package/dist/Mixins/richEditor.mjs +1 -1
  93. package/dist/assets/{NcActions-CEbgl0_n.css → NcActions-DL7ZZIjx.css} +12 -12
  94. package/dist/assets/{NcAppContent-Cv8rRTyy.css → NcAppContent-aWiDWWeq.css} +36 -24
  95. package/dist/assets/{NcAppNavigation-D2eVie5R.css → NcAppNavigation-BgGJuJPv.css} +15 -9
  96. package/dist/assets/{NcAppNavigationList-BGig8-Dj.css → NcAppNavigationList-CUnaMQQD.css} +4 -8
  97. package/dist/assets/{NcAvatar-Dkf1ypwP.css → NcAvatar-j5b9vXAH.css} +27 -27
  98. package/dist/assets/{NcDateTimePicker-C3D1hmlB.css → NcDateTimePicker-D8gouVII.css} +10 -10
  99. package/dist/assets/NcListItem--ilRNXci.css +179 -0
  100. package/dist/assets/{NcRelatedResourcesPanel-COW9gzml.css → NcRelatedResourcesPanel-D6K7OQFJ.css} +19 -13
  101. package/dist/assets/{NcRichContenteditable-CtbqXSHe.css → NcRichContenteditable-DvTdg1DO.css} +12 -12
  102. package/dist/assets/{NcRichText-BMe-xENJ.css → NcRichText-D2BBsB-_.css} +65 -65
  103. package/dist/assets/{referencePickerModal-C1KJzICb.css → referencePickerModal-DWB2ghBg.css} +19 -19
  104. package/dist/chunks/{GenColors-vI-bx9ZY.cjs → GenColors-BCHzPRPI.cjs} +1 -1
  105. package/dist/chunks/{GenColors-vI-bx9ZY.cjs.map → GenColors-BCHzPRPI.cjs.map} +1 -1
  106. package/dist/chunks/{GenColors-BteFtwOv.mjs → GenColors-SRrPRTFN.mjs} +1 -1
  107. package/dist/chunks/{GenColors-BteFtwOv.mjs.map → GenColors-SRrPRTFN.mjs.map} +1 -1
  108. package/dist/chunks/{NcActionButtonGroup-SS3PkUD2.mjs → NcActionButtonGroup-BS4fKDux.mjs} +1 -1
  109. package/dist/chunks/{NcActionButtonGroup-SS3PkUD2.mjs.map → NcActionButtonGroup-BS4fKDux.mjs.map} +1 -1
  110. package/dist/chunks/{NcActionButtonGroup-BdxkXNwc.cjs → NcActionButtonGroup-Dc9G34Er.cjs} +1 -1
  111. package/dist/chunks/{NcActionButtonGroup-BdxkXNwc.cjs.map → NcActionButtonGroup-Dc9G34Er.cjs.map} +1 -1
  112. package/dist/chunks/{NcActionInput-BHq3Le0q.mjs → NcActionInput-B_upGNjs.mjs} +4 -4
  113. package/dist/chunks/{NcActionInput-BHq3Le0q.mjs.map → NcActionInput-B_upGNjs.mjs.map} +1 -1
  114. package/dist/chunks/{NcActionInput-D308ZntG.cjs → NcActionInput-C6WR9W8-.cjs} +1 -1
  115. package/dist/chunks/{NcActionInput-D308ZntG.cjs.map → NcActionInput-C6WR9W8-.cjs.map} +1 -1
  116. package/dist/chunks/{NcActions-CpU9WXzM.mjs → NcActions-ClU5w8U1.mjs} +144 -85
  117. package/dist/chunks/NcActions-ClU5w8U1.mjs.map +1 -0
  118. package/dist/chunks/{NcActions-Dfkog_G0.cjs → NcActions-DL722iMU.cjs} +144 -85
  119. package/dist/chunks/NcActions-DL722iMU.cjs.map +1 -0
  120. package/dist/chunks/{NcAppContent-BDwOdxJE.mjs → NcAppContent-CZUuFw1x.mjs} +72 -38
  121. package/dist/chunks/NcAppContent-CZUuFw1x.mjs.map +1 -0
  122. package/dist/chunks/NcAppContent-CyPht0ua.cjs +256 -0
  123. package/dist/chunks/NcAppContent-CyPht0ua.cjs.map +1 -0
  124. package/dist/chunks/{NcAppNavigation-C1Qe3lsk.mjs → NcAppNavigation-8_Bef_ph.mjs} +25 -23
  125. package/dist/chunks/NcAppNavigation-8_Bef_ph.mjs.map +1 -0
  126. package/dist/chunks/{NcAppNavigation-C423R_m2.cjs → NcAppNavigation-BPCfq5ox.cjs} +25 -24
  127. package/dist/chunks/NcAppNavigation-BPCfq5ox.cjs.map +1 -0
  128. package/dist/chunks/{NcAppNavigationCaption-BKchbDsJ.cjs → NcAppNavigationCaption-DNugUyEL.cjs} +1 -1
  129. package/dist/chunks/{NcAppNavigationCaption-BKchbDsJ.cjs.map → NcAppNavigationCaption-DNugUyEL.cjs.map} +1 -1
  130. package/dist/chunks/{NcAppNavigationCaption-DsT6O4Hx.mjs → NcAppNavigationCaption-DZl4aJXn.mjs} +1 -1
  131. package/dist/chunks/{NcAppNavigationCaption-DsT6O4Hx.mjs.map → NcAppNavigationCaption-DZl4aJXn.mjs.map} +1 -1
  132. package/dist/chunks/{NcAppNavigationItem-bjPcEx5D.mjs → NcAppNavigationItem-D7L6HxhH.mjs} +3 -3
  133. package/dist/chunks/{NcAppNavigationItem-bjPcEx5D.mjs.map → NcAppNavigationItem-D7L6HxhH.mjs.map} +1 -1
  134. package/dist/chunks/{NcAppNavigationItem-CABF2T4q.cjs → NcAppNavigationItem-znyy3LU1.cjs} +1 -1
  135. package/dist/chunks/{NcAppNavigationItem-CABF2T4q.cjs.map → NcAppNavigationItem-znyy3LU1.cjs.map} +1 -1
  136. package/dist/chunks/{NcAppNavigationNewItem-BHCgaCoK.mjs → NcAppNavigationNewItem-CRLPUH7B.mjs} +1 -1
  137. package/dist/chunks/{NcAppNavigationNewItem-BHCgaCoK.mjs.map → NcAppNavigationNewItem-CRLPUH7B.mjs.map} +1 -1
  138. package/dist/chunks/{NcAppNavigationNewItem-t45tM5u1.cjs → NcAppNavigationNewItem-DgPfNmx6.cjs} +1 -1
  139. package/dist/chunks/{NcAppNavigationNewItem-t45tM5u1.cjs.map → NcAppNavigationNewItem-DgPfNmx6.cjs.map} +1 -1
  140. package/dist/chunks/{NcAppNavigationSettings-CBeUiVLk.cjs → NcAppNavigationSettings-DPb0p_eD.cjs} +1 -1
  141. package/dist/chunks/{NcAppNavigationSettings-CBeUiVLk.cjs.map → NcAppNavigationSettings-DPb0p_eD.cjs.map} +1 -1
  142. package/dist/chunks/{NcAppNavigationSettings-BQD7JA4m.mjs → NcAppNavigationSettings-EcktukV4.mjs} +1 -1
  143. package/dist/chunks/{NcAppNavigationSettings-BQD7JA4m.mjs.map → NcAppNavigationSettings-EcktukV4.mjs.map} +1 -1
  144. package/dist/chunks/{NcAppNavigationToggle-DDChOnAq.cjs → NcAppNavigationToggle-CSOgniTa.cjs} +1 -1
  145. package/dist/chunks/{NcAppNavigationToggle-DDChOnAq.cjs.map → NcAppNavigationToggle-CSOgniTa.cjs.map} +1 -1
  146. package/dist/chunks/{NcAppNavigationToggle-BZxbkhCr.mjs → NcAppNavigationToggle-DwO9-oiH.mjs} +1 -1
  147. package/dist/chunks/{NcAppNavigationToggle-BZxbkhCr.mjs.map → NcAppNavigationToggle-DwO9-oiH.mjs.map} +1 -1
  148. package/dist/chunks/{NcAppSettingsDialog-EUys9Os_.cjs → NcAppSettingsDialog-EIsS0HU9.cjs} +1 -1
  149. package/dist/chunks/{NcAppSettingsDialog-EUys9Os_.cjs.map → NcAppSettingsDialog-EIsS0HU9.cjs.map} +1 -1
  150. package/dist/chunks/{NcAppSettingsDialog-DeFBTD2J.mjs → NcAppSettingsDialog-fgbU_-h8.mjs} +1 -1
  151. package/dist/chunks/{NcAppSettingsDialog-DeFBTD2J.mjs.map → NcAppSettingsDialog-fgbU_-h8.mjs.map} +1 -1
  152. package/dist/chunks/{NcAppSidebar-CdSvRI6l.mjs → NcAppSidebar-BbEflEtM.mjs} +3 -3
  153. package/dist/chunks/{NcAppSidebar-CdSvRI6l.mjs.map → NcAppSidebar-BbEflEtM.mjs.map} +1 -1
  154. package/dist/chunks/{NcAppSidebar-Du-IRmEO.cjs → NcAppSidebar-DNAgJFfm.cjs} +2 -2
  155. package/dist/chunks/{NcAppSidebar-Du-IRmEO.cjs.map → NcAppSidebar-DNAgJFfm.cjs.map} +1 -1
  156. package/dist/chunks/{NcAvatar-BEet_8fB.cjs → NcAvatar-CDeuGCns.cjs} +45 -35
  157. package/dist/chunks/NcAvatar-CDeuGCns.cjs.map +1 -0
  158. package/dist/chunks/{NcAvatar-e0M-nnF6.mjs → NcAvatar-k_VeT7Vp.mjs} +65 -54
  159. package/dist/chunks/NcAvatar-k_VeT7Vp.mjs.map +1 -0
  160. package/dist/chunks/{NcBreadcrumb-DVXsgQkE.cjs → NcBreadcrumb-6--UKRl5.cjs} +1 -1
  161. package/dist/chunks/{NcBreadcrumb-DVXsgQkE.cjs.map → NcBreadcrumb-6--UKRl5.cjs.map} +1 -1
  162. package/dist/chunks/{NcBreadcrumb-CVMyBckA.mjs → NcBreadcrumb-Yg1njNwp.mjs} +1 -1
  163. package/dist/chunks/{NcBreadcrumb-CVMyBckA.mjs.map → NcBreadcrumb-Yg1njNwp.mjs.map} +1 -1
  164. package/dist/chunks/{NcBreadcrumbs-DkgzO9f5.cjs → NcBreadcrumbs-CgSLqCmo.cjs} +1 -1
  165. package/dist/chunks/{NcBreadcrumbs-DkgzO9f5.cjs.map → NcBreadcrumbs-CgSLqCmo.cjs.map} +1 -1
  166. package/dist/chunks/{NcBreadcrumbs-DqRU0BfB.mjs → NcBreadcrumbs-DXD2Kiak.mjs} +2 -2
  167. package/dist/chunks/{NcBreadcrumbs-DqRU0BfB.mjs.map → NcBreadcrumbs-DXD2Kiak.mjs.map} +1 -1
  168. package/dist/chunks/{NcCheckboxRadioSwitch-7Yib86y3.mjs → NcCheckboxRadioSwitch-BRPYihez.mjs} +2 -2
  169. package/dist/chunks/{NcCheckboxRadioSwitch-7Yib86y3.mjs.map → NcCheckboxRadioSwitch-BRPYihez.mjs.map} +1 -1
  170. package/dist/chunks/{NcCheckboxRadioSwitch-Dt96X5bR.cjs → NcCheckboxRadioSwitch-BS2C-YSz.cjs} +2 -2
  171. package/dist/chunks/{NcCheckboxRadioSwitch-Dt96X5bR.cjs.map → NcCheckboxRadioSwitch-BS2C-YSz.cjs.map} +1 -1
  172. package/dist/chunks/{NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-C1WLneXl.cjs → NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-B5QWlofX.cjs} +1 -1
  173. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-B5QWlofX.cjs.map +1 -0
  174. package/dist/chunks/{NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-CKROuACA.mjs → NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-CURkxtfw.mjs} +1 -1
  175. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-CURkxtfw.mjs.map +1 -0
  176. package/dist/chunks/{NcColorPicker-BVqwn1Fr.cjs → NcColorPicker-D0rQKQAy.cjs} +1 -1
  177. package/dist/chunks/{NcColorPicker-BVqwn1Fr.cjs.map → NcColorPicker-D0rQKQAy.cjs.map} +1 -1
  178. package/dist/chunks/{NcColorPicker-Dkxeigs5.mjs → NcColorPicker-DNGismgl.mjs} +2 -2
  179. package/dist/chunks/{NcColorPicker-Dkxeigs5.mjs.map → NcColorPicker-DNGismgl.mjs.map} +1 -1
  180. package/dist/chunks/{NcContent-Bmeq8hLO.cjs → NcContent-BXfreK7p.cjs} +1 -1
  181. package/dist/chunks/{NcContent-Bmeq8hLO.cjs.map → NcContent-BXfreK7p.cjs.map} +1 -1
  182. package/dist/chunks/{NcContent-COIw1X7V.mjs → NcContent-DCmLP8Ly.mjs} +1 -1
  183. package/dist/chunks/{NcContent-COIw1X7V.mjs.map → NcContent-DCmLP8Ly.mjs.map} +1 -1
  184. package/dist/chunks/{NcDashboardWidget-Cxz_n1AN.mjs → NcDashboardWidget-6UWLF9LM.mjs} +3 -3
  185. package/dist/chunks/{NcDashboardWidget-Cxz_n1AN.mjs.map → NcDashboardWidget-6UWLF9LM.mjs.map} +1 -1
  186. package/dist/chunks/{NcDashboardWidget-DArU3jbL.cjs → NcDashboardWidget-CPXbrHii.cjs} +1 -1
  187. package/dist/chunks/{NcDashboardWidget-DArU3jbL.cjs.map → NcDashboardWidget-CPXbrHii.cjs.map} +1 -1
  188. package/dist/chunks/{NcDashboardWidgetItem-BAhzcFfs.cjs → NcDashboardWidgetItem-Buh2BPAN.cjs} +1 -1
  189. package/dist/chunks/{NcDashboardWidgetItem-BAhzcFfs.cjs.map → NcDashboardWidgetItem-Buh2BPAN.cjs.map} +1 -1
  190. package/dist/chunks/{NcDashboardWidgetItem-BV2tuXoj.mjs → NcDashboardWidgetItem-bFGf6_R7.mjs} +2 -2
  191. package/dist/chunks/{NcDashboardWidgetItem-BV2tuXoj.mjs.map → NcDashboardWidgetItem-bFGf6_R7.mjs.map} +1 -1
  192. package/dist/chunks/{NcDateTime-Dl0XztMt.cjs → NcDateTime-DG_XAvbT.cjs} +1 -1
  193. package/dist/chunks/{NcDateTime-Dl0XztMt.cjs.map → NcDateTime-DG_XAvbT.cjs.map} +1 -1
  194. package/dist/chunks/{NcDateTime-B0oaElJX.mjs → NcDateTime-GW15p7yp.mjs} +1 -1
  195. package/dist/chunks/{NcDateTime-B0oaElJX.mjs.map → NcDateTime-GW15p7yp.mjs.map} +1 -1
  196. package/dist/chunks/{NcEmojiPicker-fRx7dTTf.mjs → NcEmojiPicker-B34sLJKs.mjs} +4 -4
  197. package/dist/chunks/{NcEmojiPicker-fRx7dTTf.mjs.map → NcEmojiPicker-B34sLJKs.mjs.map} +1 -1
  198. package/dist/chunks/{NcEmojiPicker-BCdoIKXJ.cjs → NcEmojiPicker-BDcdqsgr.cjs} +1 -1
  199. package/dist/chunks/{NcEmojiPicker-BCdoIKXJ.cjs.map → NcEmojiPicker-BDcdqsgr.cjs.map} +1 -1
  200. package/dist/chunks/{NcInputConfirmCancel-DpgXTGmT.cjs → NcInputConfirmCancel-CVgJcgbg.cjs} +1 -1
  201. package/dist/chunks/{NcInputConfirmCancel-DpgXTGmT.cjs.map → NcInputConfirmCancel-CVgJcgbg.cjs.map} +1 -1
  202. package/dist/chunks/{NcInputConfirmCancel-BXZqwqY6.mjs → NcInputConfirmCancel-GFlH1B9I.mjs} +1 -1
  203. package/dist/chunks/{NcInputConfirmCancel-BXZqwqY6.mjs.map → NcInputConfirmCancel-GFlH1B9I.mjs.map} +1 -1
  204. package/dist/chunks/{NcListItem-wxqWqs4s.cjs → NcListItem-BDrxkM0q.cjs} +30 -23
  205. package/dist/chunks/NcListItem-BDrxkM0q.cjs.map +1 -0
  206. package/dist/chunks/{NcListItem-C5oWvAZQ.mjs → NcListItem-rlwo19vU.mjs} +29 -22
  207. package/dist/chunks/NcListItem-rlwo19vU.mjs.map +1 -0
  208. package/dist/chunks/{NcListItemIcon-WH9TUCxb.mjs → NcListItemIcon-Bwl8bKaY.mjs} +1 -1
  209. package/dist/chunks/{NcListItemIcon-WH9TUCxb.mjs.map → NcListItemIcon-Bwl8bKaY.mjs.map} +1 -1
  210. package/dist/chunks/{NcListItemIcon-DfdkSCin.cjs → NcListItemIcon-D_cwlGhm.cjs} +1 -1
  211. package/dist/chunks/{NcListItemIcon-DfdkSCin.cjs.map → NcListItemIcon-D_cwlGhm.cjs.map} +1 -1
  212. package/dist/chunks/{NcPasswordField-BPAivxc_.mjs → NcPasswordField-D91QgkSR.mjs} +1 -1
  213. package/dist/chunks/{NcPasswordField-BPAivxc_.mjs.map → NcPasswordField-D91QgkSR.mjs.map} +1 -1
  214. package/dist/chunks/{NcPasswordField-BgNcvN0V.cjs → NcPasswordField-EDrr_9PG.cjs} +1 -1
  215. package/dist/chunks/{NcPasswordField-BgNcvN0V.cjs.map → NcPasswordField-EDrr_9PG.cjs.map} +1 -1
  216. package/dist/chunks/{NcRelatedResourcesPanel-Cp8Au2iI.cjs → NcRelatedResourcesPanel-DDL8rJnB.cjs} +4 -4
  217. package/dist/chunks/NcRelatedResourcesPanel-DDL8rJnB.cjs.map +1 -0
  218. package/dist/chunks/{NcRelatedResourcesPanel-LTNqJecS.mjs → NcRelatedResourcesPanel-DaLcC_9H.mjs} +8 -8
  219. package/dist/chunks/NcRelatedResourcesPanel-DaLcC_9H.mjs.map +1 -0
  220. package/dist/chunks/{NcRichContenteditable-CHggLQuR.mjs → NcRichContenteditable-CaeNwWTC.mjs} +35 -26
  221. package/dist/chunks/NcRichContenteditable-CaeNwWTC.mjs.map +1 -0
  222. package/dist/chunks/{NcRichContenteditable-hT5m_2tr.cjs → NcRichContenteditable-DjUF2Kzl.cjs} +41 -32
  223. package/dist/chunks/NcRichContenteditable-DjUF2Kzl.cjs.map +1 -0
  224. package/dist/chunks/{NcRichText-BBXbh0Hh.mjs → NcRichText-DVnS4C_H.mjs} +45 -29
  225. package/dist/chunks/NcRichText-DVnS4C_H.mjs.map +1 -0
  226. package/dist/chunks/{NcRichText-BWX8BLVh.cjs → NcRichText-D_p79y2S.cjs} +35 -19
  227. package/dist/chunks/NcRichText-D_p79y2S.cjs.map +1 -0
  228. package/dist/chunks/{NcSelect-DjTSAsNL.cjs → NcSelect-BVCCppX6.cjs} +1 -1
  229. package/dist/chunks/{NcSelect-DjTSAsNL.cjs.map → NcSelect-BVCCppX6.cjs.map} +1 -1
  230. package/dist/chunks/{NcSelect-BVmjiQFa.mjs → NcSelect-BjojUUy7.mjs} +2 -2
  231. package/dist/chunks/{NcSelect-BVmjiQFa.mjs.map → NcSelect-BjojUUy7.mjs.map} +1 -1
  232. package/dist/chunks/{NcSelectTags-Ccv-eQzZ.mjs → NcSelectTags-CIa3RL2u.mjs} +2 -2
  233. package/dist/chunks/{NcSelectTags-Ccv-eQzZ.mjs.map → NcSelectTags-CIa3RL2u.mjs.map} +1 -1
  234. package/dist/chunks/{NcSelectTags-BJvxyO8E.cjs → NcSelectTags-b_FdAE_d.cjs} +1 -1
  235. package/dist/chunks/{NcSelectTags-BJvxyO8E.cjs.map → NcSelectTags-b_FdAE_d.cjs.map} +1 -1
  236. package/dist/chunks/{NcSettingsInputText-DXxmqvcd.mjs → NcSettingsInputText-BESxHP0m.mjs} +1 -1
  237. package/dist/chunks/{NcSettingsInputText-DXxmqvcd.mjs.map → NcSettingsInputText-BESxHP0m.mjs.map} +1 -1
  238. package/dist/chunks/{NcSettingsInputText-CcO2Du6E.cjs → NcSettingsInputText-D_wATSbL.cjs} +1 -1
  239. package/dist/chunks/{NcSettingsInputText-CcO2Du6E.cjs.map → NcSettingsInputText-D_wATSbL.cjs.map} +1 -1
  240. package/dist/chunks/{NcSettingsSection-DBe4fKFA.mjs → NcSettingsSection-BzN6JXnV.mjs} +1 -1
  241. package/dist/chunks/{NcSettingsSection-DBe4fKFA.mjs.map → NcSettingsSection-BzN6JXnV.mjs.map} +1 -1
  242. package/dist/chunks/{NcSettingsSection-qgIYSB_M.cjs → NcSettingsSection-TG0j5-kd.cjs} +1 -1
  243. package/dist/chunks/{NcSettingsSection-qgIYSB_M.cjs.map → NcSettingsSection-TG0j5-kd.cjs.map} +1 -1
  244. package/dist/chunks/{NcSettingsSelectGroup-d2TLOW1O.mjs → NcSettingsSelectGroup-BRov--RO.mjs} +2 -2
  245. package/dist/chunks/{NcSettingsSelectGroup-d2TLOW1O.mjs.map → NcSettingsSelectGroup-BRov--RO.mjs.map} +1 -1
  246. package/dist/chunks/{NcSettingsSelectGroup-DD8PEgvQ.cjs → NcSettingsSelectGroup-JJ4LZALf.cjs} +1 -1
  247. package/dist/chunks/{NcSettingsSelectGroup-DD8PEgvQ.cjs.map → NcSettingsSelectGroup-JJ4LZALf.cjs.map} +1 -1
  248. package/dist/chunks/{NcTextField-CU-YIhL3.mjs → NcTextField-BPGi70PD.mjs} +1 -1
  249. package/dist/chunks/{NcTextField-CU-YIhL3.mjs.map → NcTextField-BPGi70PD.mjs.map} +1 -1
  250. package/dist/chunks/{NcTextField-CsnzlYWD.cjs → NcTextField-DgzR5_48.cjs} +1 -1
  251. package/dist/chunks/{NcTextField-CsnzlYWD.cjs.map → NcTextField-DgzR5_48.cjs.map} +1 -1
  252. package/dist/chunks/{NcTimezonePicker-C-Ci2IuC.cjs → NcTimezonePicker-8ZYdOp_g.cjs} +1 -1
  253. package/dist/chunks/{NcTimezonePicker-C-Ci2IuC.cjs.map → NcTimezonePicker-8ZYdOp_g.cjs.map} +1 -1
  254. package/dist/chunks/{NcTimezonePicker-gvp9MAcg.mjs → NcTimezonePicker-jCKohlic.mjs} +2 -2
  255. package/dist/chunks/{NcTimezonePicker-gvp9MAcg.mjs.map → NcTimezonePicker-jCKohlic.mjs.map} +1 -1
  256. package/dist/chunks/{NcUserBubble-COhpp9l_.cjs → NcUserBubble-Bfph5VfL.cjs} +1 -1
  257. package/dist/chunks/{NcUserBubble-COhpp9l_.cjs.map → NcUserBubble-Bfph5VfL.cjs.map} +1 -1
  258. package/dist/chunks/{NcUserBubble-CbufscPi.mjs → NcUserBubble-DwKN1aRa.mjs} +1 -1
  259. package/dist/chunks/{NcUserBubble-CbufscPi.mjs.map → NcUserBubble-DwKN1aRa.mjs.map} +1 -1
  260. package/dist/chunks/{NcUserStatusIcon-0SGYQL9L.mjs → NcUserStatusIcon-Blep5GZX.mjs} +9 -9
  261. package/dist/chunks/NcUserStatusIcon-Blep5GZX.mjs.map +1 -0
  262. package/dist/chunks/{NcUserStatusIcon-C7dfcW39.cjs → NcUserStatusIcon-Bu_nFfO_.cjs} +4 -4
  263. package/dist/chunks/NcUserStatusIcon-Bu_nFfO_.cjs.map +1 -0
  264. package/dist/chunks/{ScopeComponent-DXQGLon_.cjs → ScopeComponent-BiLZtJeb.cjs} +1 -1
  265. package/dist/chunks/{ScopeComponent-DXQGLon_.cjs.map → ScopeComponent-BiLZtJeb.cjs.map} +1 -1
  266. package/dist/chunks/{ScopeComponent-DFDrMcn0.mjs → ScopeComponent-CGJeYf1D.mjs} +1 -1
  267. package/dist/chunks/{ScopeComponent-DFDrMcn0.mjs.map → ScopeComponent-CGJeYf1D.mjs.map} +1 -1
  268. package/dist/chunks/{_l10n-B986q8RC.cjs → _l10n-BG5lXDmm.cjs} +3 -3
  269. package/dist/chunks/_l10n-BG5lXDmm.cjs.map +1 -0
  270. package/dist/chunks/{_l10n-D8Scz3mH.mjs → _l10n-Cj65IvRp.mjs} +3 -3
  271. package/dist/chunks/_l10n-Cj65IvRp.mjs.map +1 -0
  272. package/dist/chunks/{index-DYXjj9ET.mjs → index-BAVa4G2v.mjs} +31 -31
  273. package/dist/chunks/index-BAVa4G2v.mjs.map +1 -0
  274. package/dist/chunks/{index-CIsMzBte.cjs → index-CVsxVZon.cjs} +19 -19
  275. package/dist/chunks/index-CVsxVZon.cjs.map +1 -0
  276. package/dist/chunks/{referencePickerModal-DUhJWt2e.mjs → referencePickerModal-ChgMFkNu.mjs} +443 -437
  277. package/dist/chunks/referencePickerModal-ChgMFkNu.mjs.map +1 -0
  278. package/dist/chunks/{referencePickerModal-DV7-XzCc.cjs → referencePickerModal-DRZH-El6.cjs} +343 -337
  279. package/dist/chunks/referencePickerModal-DRZH-El6.cjs.map +1 -0
  280. package/dist/chunks/{usernameToColor-DibvD_OP.cjs → usernameToColor-BG9PjZRM.cjs} +1 -1
  281. package/dist/chunks/{usernameToColor-DibvD_OP.cjs.map → usernameToColor-BG9PjZRM.cjs.map} +1 -1
  282. package/dist/chunks/{usernameToColor-iYF-oKTP.mjs → usernameToColor-DrnKFnLP.mjs} +1 -1
  283. package/dist/chunks/{usernameToColor-iYF-oKTP.mjs.map → usernameToColor-DrnKFnLP.mjs.map} +1 -1
  284. package/dist/index.cjs +8 -9
  285. package/dist/index.cjs.map +1 -1
  286. package/dist/index.mjs +45 -45
  287. package/package.json +1 -1
  288. package/dist/assets/NcListItem-vwt4bCl6.css +0 -165
  289. package/dist/chunks/NcActions-CpU9WXzM.mjs.map +0 -1
  290. package/dist/chunks/NcActions-Dfkog_G0.cjs.map +0 -1
  291. package/dist/chunks/NcAppContent-BDwOdxJE.mjs.map +0 -1
  292. package/dist/chunks/NcAppContent-kqYjKpzU.cjs +0 -222
  293. package/dist/chunks/NcAppContent-kqYjKpzU.cjs.map +0 -1
  294. package/dist/chunks/NcAppNavigation-C1Qe3lsk.mjs.map +0 -1
  295. package/dist/chunks/NcAppNavigation-C423R_m2.cjs.map +0 -1
  296. package/dist/chunks/NcAvatar-BEet_8fB.cjs.map +0 -1
  297. package/dist/chunks/NcAvatar-e0M-nnF6.mjs.map +0 -1
  298. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-C1WLneXl.cjs.map +0 -1
  299. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-CKROuACA.mjs.map +0 -1
  300. package/dist/chunks/NcListItem-C5oWvAZQ.mjs.map +0 -1
  301. package/dist/chunks/NcListItem-wxqWqs4s.cjs.map +0 -1
  302. package/dist/chunks/NcRelatedResourcesPanel-Cp8Au2iI.cjs.map +0 -1
  303. package/dist/chunks/NcRelatedResourcesPanel-LTNqJecS.mjs.map +0 -1
  304. package/dist/chunks/NcRichContenteditable-CHggLQuR.mjs.map +0 -1
  305. package/dist/chunks/NcRichContenteditable-hT5m_2tr.cjs.map +0 -1
  306. package/dist/chunks/NcRichText-BBXbh0Hh.mjs.map +0 -1
  307. package/dist/chunks/NcRichText-BWX8BLVh.cjs.map +0 -1
  308. package/dist/chunks/NcUserStatusIcon-0SGYQL9L.mjs.map +0 -1
  309. package/dist/chunks/NcUserStatusIcon-C7dfcW39.cjs.map +0 -1
  310. package/dist/chunks/_l10n-B986q8RC.cjs.map +0 -1
  311. package/dist/chunks/_l10n-D8Scz3mH.mjs.map +0 -1
  312. package/dist/chunks/index-CIsMzBte.cjs.map +0 -1
  313. package/dist/chunks/index-DYXjj9ET.mjs.map +0 -1
  314. package/dist/chunks/referencePickerModal-DUhJWt2e.mjs.map +0 -1
  315. package/dist/chunks/referencePickerModal-DV7-XzCc.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_l10n-Cj65IvRp.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
@@ -1,11 +1,11 @@
1
1
  import '../assets/NcMentionBubble-BhiXWJv8.css';
2
- import { generateUrl as u } from "@nextcloud/router";
2
+ import { generateUrl as c } from "@nextcloud/router";
3
3
  /* empty css */
4
- import { n as p } from "./_plugin-vue2_normalizer-Bj5bLKV4.mjs";
5
- import { L as m } from "./Linkify-BaDLLFxP.mjs";
6
- import d from "escape-html";
7
- import s from "striptags";
8
- import b from "vue";
4
+ import { n as u } from "./_plugin-vue2_normalizer-Bj5bLKV4.mjs";
5
+ import { L as p } from "./Linkify-BaDLLFxP.mjs";
6
+ import m from "escape-html";
7
+ import a from "striptags";
8
+ import d from "vue";
9
9
  const _ = {
10
10
  name: "NcMentionBubble",
11
11
  props: {
@@ -57,27 +57,27 @@ const _ = {
57
57
  },
58
58
  methods: {
59
59
  getAvatarUrl(t, e) {
60
- return u("/avatar/{user}/{size}", {
60
+ return c("/avatar/{user}/{size}", {
61
61
  user: t,
62
62
  size: e
63
63
  });
64
64
  }
65
65
  }
66
66
  };
67
- var f = function() {
68
- var e = this, n = e._self._c;
69
- return n("span", { staticClass: "mention-bubble", class: { "mention-bubble--primary": e.primary }, attrs: { contenteditable: "false" } }, [n("span", { staticClass: "mention-bubble__wrapper" }, [n("span", { staticClass: "mention-bubble__content" }, [n("span", { staticClass: "mention-bubble__icon", class: [e.icon, "mention-bubble__icon--".concat(e.avatarUrl ? "with-avatar" : "")], style: e.avatarUrl ? { backgroundImage: "url(".concat(e.avatarUrl, ")") } : null }), n("span", { staticClass: "mention-bubble__title", attrs: { role: "heading", title: e.labelWithFallback } })]), n("span", { staticClass: "mention-bubble__select", attrs: { role: "none" } }, [e._v(e._s(e.mentionText))])])]);
70
- }, g = [], h = /* @__PURE__ */ p(
67
+ var b = function() {
68
+ var e = this, r = e._self._c;
69
+ return r("span", { staticClass: "mention-bubble", class: { "mention-bubble--primary": e.primary }, attrs: { contenteditable: "false" } }, [r("span", { staticClass: "mention-bubble__wrapper" }, [r("span", { staticClass: "mention-bubble__content" }, [r("span", { staticClass: "mention-bubble__icon", class: [e.icon, "mention-bubble__icon--".concat(e.avatarUrl ? "with-avatar" : "")], style: e.avatarUrl ? { backgroundImage: "url(".concat(e.avatarUrl, ")") } : null }), r("span", { staticClass: "mention-bubble__title", attrs: { role: "heading", title: e.labelWithFallback } })]), r("span", { staticClass: "mention-bubble__select", attrs: { role: "none" } }, [e._v(e._s(e.mentionText))])])]);
70
+ }, f = [], g = /* @__PURE__ */ u(
71
71
  _,
72
+ b,
72
73
  f,
73
- g,
74
74
  !1,
75
75
  null,
76
76
  "9c74f2e0",
77
77
  null,
78
78
  null
79
79
  );
80
- const y = h.exports;
80
+ const h = g.exports;
81
81
  /**
82
82
  * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>
83
83
  *
@@ -99,7 +99,7 @@ const y = h.exports;
99
99
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
100
100
  *
101
101
  */
102
- const l = "(?:^|\\s)", o = "(?:[^a-z]|$)", E = new RegExp("".concat(l, "(@[a-zA-Z0-9_.@\\-']+)(").concat(o, ")"), "gi"), $ = new RegExp("".concat(l, "(@&quot;[a-zA-Z0-9 _/.@\\-']+&quot;)(").concat(o, ")"), "gi"), N = {
102
+ const l = new RegExp("\\B(?<![^a-z0-9_\\-@.'\\s])").source, E = /(@[a-z0-9_\-@.']+)/.source, T = /@&quot;guest\/[a-f0-9]+&quot;/.source, y = /@&quot;(?:federated_)?(?:group|team|user){1}\/[a-z0-9_\-@.' /:]+&quot;/.source, $ = /@&quot;[a-z0-9_\-@.' ]+&quot;/.source, v = "(".concat(T, "|").concat(y, "|").concat($, ")"), C = new RegExp("".concat(l).concat(E), "gi"), N = new RegExp("".concat(l).concat(v), "gi"), z = {
103
103
  props: {
104
104
  userData: {
105
105
  type: Object,
@@ -114,11 +114,11 @@ const l = "(?:^|\\s)", o = "(?:[^a-z]|$)", E = new RegExp("".concat(l, "(@[a-zA-
114
114
  * @return {string} rendered html
115
115
  */
116
116
  renderContent(t) {
117
- return d(t).split(E).map((r) => r.split($)).flat().map((r) => {
118
- if (!r.startsWith("@"))
119
- return m(r);
120
- const i = r.slice(1).replace(/&quot;/gi, "");
121
- return " " + this.genSelectTemplate(i);
117
+ return m(t).split(C).map((n) => n.split(N)).flat().map((n) => {
118
+ if (!n.startsWith("@"))
119
+ return p(n);
120
+ const i = n.slice(1).replace(/&quot;/gi, "");
121
+ return this.genSelectTemplate(i);
122
122
  }).join("").replace(/\n/gmi, "<br>").replace(/&amp;/gmi, "&");
123
123
  },
124
124
  /**
@@ -128,8 +128,8 @@ const l = "(?:^|\\s)", o = "(?:[^a-z]|$)", E = new RegExp("".concat(l, "(@[a-zA-
128
128
  * @return {string}
129
129
  */
130
130
  parseContent(t) {
131
- let e = t.replace(/<br>/gmi, "\n");
132
- return e = e.replace(/&nbsp;/gmi, " "), e = e.replace(/&amp;/gmi, "&"), e = e.replace(/<\/div>/gmi, "\n"), e = s(e, "<div>"), e = s(e), e;
131
+ let e = t;
132
+ return e = e.replace(/>\s+</g, "><"), e = e.replace(/<br>/gmi, "\n"), e = e.replace(/&nbsp;/gmi, " "), e = e.replace(/&amp;/gmi, "&"), e = e.replace(/<\/div>/gmi, "\n"), e = a(e, "<div>"), e = a(e), e;
133
133
  },
134
134
  /**
135
135
  * Generate an autocompletion popup entry template
@@ -141,7 +141,7 @@ const l = "(?:^|\\s)", o = "(?:[^a-z]|$)", E = new RegExp("".concat(l, "(@[a-zA-
141
141
  if (typeof t > "u")
142
142
  return "".concat(this.autocompleteTribute.current.collection.trigger).concat(this.autocompleteTribute.current.mentionText);
143
143
  const e = this.userData[t];
144
- return e ? this.renderComponentHtml(e, y).replace(/[\n\t]/gmi, "") : !t.includes(" ") && !t.includes("/") ? "@".concat(t) : '@"'.concat(t, '"');
144
+ return e ? this.renderComponentHtml(e, h).replace(/[\n\t]/gmi, "") : [" ", "/", ":"].every((r) => !t.includes(r)) ? "@".concat(t) : '@"'.concat(t, '"');
145
145
  },
146
146
  /**
147
147
  * Render a component and return its html content
@@ -151,18 +151,18 @@ const l = "(?:^|\\s)", o = "(?:[^a-z]|$)", E = new RegExp("".concat(l, "(@[a-zA-
151
151
  * @return {string} the rendered html
152
152
  */
153
153
  renderComponentHtml(t, e) {
154
- const n = b.extend(e), r = new n({
154
+ const r = d.extend(e), n = new r({
155
155
  propsData: t
156
- }), i = document.createElement("div"), a = document.createElement("div");
157
- i.style.display = "none", i.appendChild(a), document.body.appendChild(i), r.$mount(a);
158
- const c = i.innerHTML;
159
- return r.$destroy(), i.remove(), c;
156
+ }), i = document.createElement("div"), s = document.createElement("div");
157
+ i.style.display = "none", i.appendChild(s), document.body.appendChild(i), n.$mount(s);
158
+ const o = i.innerHTML;
159
+ return n.$destroy(), i.remove(), o;
160
160
  }
161
161
  }
162
162
  };
163
163
  export {
164
- y as N,
165
- E as U,
166
- $ as a,
167
- N as r
164
+ h as N,
165
+ C as U,
166
+ N as a,
167
+ z as r
168
168
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BAVa4G2v.mjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"labelWithFallback\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'NcMentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * @deprecated Use `label` instead\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticonUrl: {\n\t\t\ttype: [String, null],\n\t\t\tdefault: null,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\tif (this.iconUrl) {\n\t\t\t\treturn this.iconUrl\n\t\t\t}\n\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn !this.id.includes(' ') && !this.id.includes('/')\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t\t// Fallback to title for compatibility\n\t\tlabelWithFallback() {\n\t\t\treturn this.label || this.title\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl(user, size) {\n\t\t\treturn generateUrl('/avatar/{user}/{size}', {\n\t\t\t\tuser,\n\t\t\t\tsize,\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-element-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-right: $bubble-padding * 3;\n\t\tpadding-left: $bubble-padding;\n\t\tborder-radius: math.div($bubble-height, 2);\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tposition: relative;\n\t\twidth: $bubble-avatar-size;\n\t\theight: $bubble-avatar-size;\n\t\tborder-radius: math.div($bubble-avatar-size, 2);\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\n\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\tmargin-left: $bubble-padding;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Put title in ::before so it is not selectable\n\t\t&::before {\n\t\t\tcontent: attr(title);\n\t\t}\n\t}\n\n\t// Hide the mention id so it is selectable\n\t&__select {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\tleft: -1000px;\n\t}\n}\n\n</style>\n","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport NcMentionBubble from '../../components/NcRichContenteditable/NcMentionBubble.vue'\nimport Linkify from '../../utils/Linkify.js'\n\nimport escapeHtml from 'escape-html'\nimport stripTags from 'striptags'\nimport Vue from 'vue'\n\n// Referenced from public function getMentions(): https://github.com/nextcloud/server/blob/master/lib/private/Comments/Comment.php\n// Beginning or whitespace. Non-capturing group within word boundary\nconst MENTION_START = /\\B(?<![^a-z0-9_\\-@.'\\s])/.source\n// Capturing groups like: @user-id, @\"guest/abc16def\", @\"federated_user/user-id\", @\"user-id with space\"\nconst MENTION_SIMPLE = /(@[a-z0-9_\\-@.']+)/.source\nconst MENTION_GUEST = /@&quot;guest\\/[a-f0-9]+&quot;/.source\nconst MENTION_PREFIXED = /@&quot;(?:federated_)?(?:group|team|user){1}\\/[a-z0-9_\\-@.' /:]+&quot;/.source\nconst MENTION_WITH_SPACE = /@&quot;[a-z0-9_\\-@.' ]+&quot;/.source\nconst MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`\n// Concatenated regular expressions\nexport const USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, 'gi')\n\nexport default {\n\tprops: {\n\t\tuserData: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Convert the value string to html for the inner content\n\t\t *\n\t\t * @param {string} value the content without html\n\t\t * @return {string} rendered html\n\t\t */\n\t\trenderContent(value) {\n\t\t\t// Sanitize the value prop\n\t\t\tconst sanitizedValue = escapeHtml(value)\n\n\t\t\t// Extract all the userIds\n\t\t\tconst splitValue = sanitizedValue.split(USERID_REGEX)\n\t\t\t\t.map(part => part.split(USERID_REGEX_WITH_SPACE)).flat()\n\n\t\t\t// Replace userIds by html\n\t\t\treturn splitValue\n\t\t\t\t.map(part => {\n\t\t\t\t\t// When splitting, the string is always putting the userIds\n\t\t\t\t\t// on the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\t// This part doesn't contain a mention, let's make sure links are parsed\n\t\t\t\t\t\treturn Linkify(part)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the leading @ and all \"\n\t\t\t\t\tconst id = part.slice(1).replace(/&quot;/gi, '')\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&amp;/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @return {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content\n\t\t\t// Consecutive spaces in HTML tags should collapse\n\t\t\ttext = text.replace(/>\\s+</g, '><')\n\t\t\t// Replace break lines with new lines\n\t\t\ttext = text.replace(/<br>/gmi, '\\n')\n\t\t\t// Replace some html special characters\n\t\t\ttext = text.replace(/&nbsp;/gmi, ' ')\n\t\t\ttext = text.replace(/&amp;/gmi, '&')\n\n\t\t\t// Convert the mentions to text only\n\t\t\t// first we replace divs with new lines\n\t\t\ttext = text.replace(/<\\/div>/gmi, '\\n')\n\t\t\t// then we remove all leftover html\n\t\t\ttext = stripTags(text, '<div>')\n\t\t\ttext = stripTags(text)\n\n\t\t\treturn text\n\t\t},\n\n\t\t/**\n\t\t * Generate an autocompletion popup entry template\n\t\t *\n\t\t * @param {string} value the value to match against the userData\n\t\t * @return {string}\n\t\t */\n\t\tgenSelectTemplate(value) {\n\t\t\t// The value returned by this function will replace the trigger '@'\n\t\t\t// and the search text, so when there is no match we simply return\n\t\t\t// '@' and the text.\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\treturn `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`\n\t\t\t}\n\n\t\t\tconst data = this.userData[value]\n\n\t\t\t// Fallback to @mention in case no data matches\n\t\t\tif (!data) {\n\t\t\t\t// return @value if matches MENTION_SIMPLE, @\"value\" otherwise\n\t\t\t\treturn [' ', '/', ':'].every(char => !value.includes(char))\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip of new lines and tabs\n\t\t\treturn this.renderComponentHtml(data, NcMentionBubble).replace(/[\\n\\t]/gmi, '')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {object} propsData the props to pass to the component\n\t\t * @param {object} component the component to render\n\t\t * @return {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(propsData, component) {\n\t\t\tconst View = Vue.extend(component)\n\t\t\tconst Item = new View({\n\t\t\t\tpropsData,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst wrapper = document.createElement('div')\n\t\t\tconst mount = document.createElement('div')\n\t\t\twrapper.style.display = 'none'\n\t\t\twrapper.appendChild(mount)\n\t\t\tdocument.body.appendChild(wrapper)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.$mount(mount)\n\t\t\tconst renderedHtml = wrapper.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.$destroy()\n\t\t\twrapper.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n"],"names":["_sfc_main","user","size","generateUrl","MENTION_START","MENTION_SIMPLE","MENTION_GUEST","MENTION_PREFIXED","MENTION_WITH_SPACE","MENTION_COMPLEX","USERID_REGEX","USERID_REGEX_WITH_SPACE","richEditor","value","escapeHtml","part","Linkify","id","content","text","stripTags","data","NcMentionBubble","char","propsData","component","View","Vue","Item","wrapper","mount","renderedHtml"],"mappings":"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"}
@@ -2,7 +2,7 @@ require('../assets/NcMentionBubble-BhiXWJv8.css');
2
2
  "use strict";
3
3
  const _ = require("@nextcloud/router");
4
4
  ;/* empty css */
5
- const b = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs"), f = require("./Linkify-Dola0NBa.cjs"), g = require("escape-html"), h = require("striptags"), E = require("vue"), l = (t) => t && t.__esModule ? t : { default: t }, y = /* @__PURE__ */ l(g), a = /* @__PURE__ */ l(h), T = /* @__PURE__ */ l(E), q = {
5
+ const m = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs"), b = require("./Linkify-Dola0NBa.cjs"), f = require("escape-html"), g = require("striptags"), E = require("vue"), s = (t) => t && t.__esModule ? t : { default: t }, h = /* @__PURE__ */ s(f), l = /* @__PURE__ */ s(g), T = /* @__PURE__ */ s(E), y = {
6
6
  name: "NcMentionBubble",
7
7
  props: {
8
8
  id: {
@@ -60,12 +60,12 @@ const b = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs"), f = require("./Link
60
60
  }
61
61
  }
62
62
  };
63
- var C = function() {
63
+ var q = function() {
64
64
  var e = this, n = e._self._c;
65
65
  return n("span", { staticClass: "mention-bubble", class: { "mention-bubble--primary": e.primary }, attrs: { contenteditable: "false" } }, [n("span", { staticClass: "mention-bubble__wrapper" }, [n("span", { staticClass: "mention-bubble__content" }, [n("span", { staticClass: "mention-bubble__icon", class: [e.icon, "mention-bubble__icon--".concat(e.avatarUrl ? "with-avatar" : "")], style: e.avatarUrl ? { backgroundImage: "url(".concat(e.avatarUrl, ")") } : null }), n("span", { staticClass: "mention-bubble__title", attrs: { role: "heading", title: e.labelWithFallback } })]), n("span", { staticClass: "mention-bubble__select", attrs: { role: "none" } }, [e._v(e._s(e.mentionText))])])]);
66
- }, S = [], $ = /* @__PURE__ */ b.normalizeComponent(
66
+ }, S = [], C = /* @__PURE__ */ m.normalizeComponent(
67
+ y,
67
68
  q,
68
- C,
69
69
  S,
70
70
  !1,
71
71
  null,
@@ -73,7 +73,7 @@ var C = function() {
73
73
  null,
74
74
  null
75
75
  );
76
- const o = $.exports;
76
+ const o = C.exports;
77
77
  /**
78
78
  * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>
79
79
  *
@@ -95,7 +95,7 @@ const o = $.exports;
95
95
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
96
96
  *
97
97
  */
98
- const u = "(?:^|\\s)", c = "(?:[^a-z]|$)", d = new RegExp("".concat(u, "(@[a-zA-Z0-9_.@\\-']+)(").concat(c, ")"), "gi"), p = new RegExp("".concat(u, "(@&quot;[a-zA-Z0-9 _/.@\\-']+&quot;)(").concat(c, ")"), "gi"), v = {
98
+ const u = new RegExp("\\B(?<![^a-z0-9_\\-@.'\\s])").source, I = /(@[a-z0-9_\-@.']+)/.source, $ = /@&quot;guest\/[a-f0-9]+&quot;/.source, v = /@&quot;(?:federated_)?(?:group|team|user){1}\/[a-z0-9_\-@.' /:]+&quot;/.source, N = /@&quot;[a-z0-9_\-@.' ]+&quot;/.source, U = "(".concat($, "|").concat(v, "|").concat(N, ")"), c = new RegExp("".concat(u).concat(I), "gi"), d = new RegExp("".concat(u).concat(U), "gi"), M = {
99
99
  props: {
100
100
  userData: {
101
101
  type: Object,
@@ -110,11 +110,11 @@ const u = "(?:^|\\s)", c = "(?:[^a-z]|$)", d = new RegExp("".concat(u, "(@[a-zA-
110
110
  * @return {string} rendered html
111
111
  */
112
112
  renderContent(t) {
113
- return y.default(t).split(d).map((r) => r.split(p)).flat().map((r) => {
113
+ return h.default(t).split(c).map((r) => r.split(d)).flat().map((r) => {
114
114
  if (!r.startsWith("@"))
115
- return f.Linkify(r);
115
+ return b.Linkify(r);
116
116
  const i = r.slice(1).replace(/&quot;/gi, "");
117
- return " " + this.genSelectTemplate(i);
117
+ return this.genSelectTemplate(i);
118
118
  }).join("").replace(/\n/gmi, "<br>").replace(/&amp;/gmi, "&");
119
119
  },
120
120
  /**
@@ -124,8 +124,8 @@ const u = "(?:^|\\s)", c = "(?:[^a-z]|$)", d = new RegExp("".concat(u, "(@[a-zA-
124
124
  * @return {string}
125
125
  */
126
126
  parseContent(t) {
127
- let e = t.replace(/<br>/gmi, "\n");
128
- return e = e.replace(/&nbsp;/gmi, " "), e = e.replace(/&amp;/gmi, "&"), e = e.replace(/<\/div>/gmi, "\n"), e = a.default(e, "<div>"), e = a.default(e), e;
127
+ let e = t;
128
+ return e = e.replace(/>\s+</g, "><"), e = e.replace(/<br>/gmi, "\n"), e = e.replace(/&nbsp;/gmi, " "), e = e.replace(/&amp;/gmi, "&"), e = e.replace(/<\/div>/gmi, "\n"), e = l.default(e, "<div>"), e = l.default(e), e;
129
129
  },
130
130
  /**
131
131
  * Generate an autocompletion popup entry template
@@ -137,7 +137,7 @@ const u = "(?:^|\\s)", c = "(?:[^a-z]|$)", d = new RegExp("".concat(u, "(@[a-zA-
137
137
  if (typeof t > "u")
138
138
  return "".concat(this.autocompleteTribute.current.collection.trigger).concat(this.autocompleteTribute.current.mentionText);
139
139
  const e = this.userData[t];
140
- return e ? this.renderComponentHtml(e, o).replace(/[\n\t]/gmi, "") : !t.includes(" ") && !t.includes("/") ? "@".concat(t) : '@"'.concat(t, '"');
140
+ return e ? this.renderComponentHtml(e, o).replace(/[\n\t]/gmi, "") : [" ", "/", ":"].every((n) => !t.includes(n)) ? "@".concat(t) : '@"'.concat(t, '"');
141
141
  },
142
142
  /**
143
143
  * Render a component and return its html content
@@ -149,14 +149,14 @@ const u = "(?:^|\\s)", c = "(?:[^a-z]|$)", d = new RegExp("".concat(u, "(@[a-zA-
149
149
  renderComponentHtml(t, e) {
150
150
  const n = T.default.extend(e), r = new n({
151
151
  propsData: t
152
- }), i = document.createElement("div"), s = document.createElement("div");
153
- i.style.display = "none", i.appendChild(s), document.body.appendChild(i), r.$mount(s);
154
- const m = i.innerHTML;
155
- return r.$destroy(), i.remove(), m;
152
+ }), i = document.createElement("div"), a = document.createElement("div");
153
+ i.style.display = "none", i.appendChild(a), document.body.appendChild(i), r.$mount(a);
154
+ const p = i.innerHTML;
155
+ return r.$destroy(), i.remove(), p;
156
156
  }
157
157
  }
158
158
  };
159
159
  exports.NcMentionBubble = o;
160
- exports.USERID_REGEX = d;
161
- exports.USERID_REGEX_WITH_SPACE = p;
162
- exports.richEditor = v;
160
+ exports.USERID_REGEX = c;
161
+ exports.USERID_REGEX_WITH_SPACE = d;
162
+ exports.richEditor = M;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CVsxVZon.cjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"labelWithFallback\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'NcMentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * @deprecated Use `label` instead\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticonUrl: {\n\t\t\ttype: [String, null],\n\t\t\tdefault: null,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\tif (this.iconUrl) {\n\t\t\t\treturn this.iconUrl\n\t\t\t}\n\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn !this.id.includes(' ') && !this.id.includes('/')\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t\t// Fallback to title for compatibility\n\t\tlabelWithFallback() {\n\t\t\treturn this.label || this.title\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl(user, size) {\n\t\t\treturn generateUrl('/avatar/{user}/{size}', {\n\t\t\t\tuser,\n\t\t\t\tsize,\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-element-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-right: $bubble-padding * 3;\n\t\tpadding-left: $bubble-padding;\n\t\tborder-radius: math.div($bubble-height, 2);\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tposition: relative;\n\t\twidth: $bubble-avatar-size;\n\t\theight: $bubble-avatar-size;\n\t\tborder-radius: math.div($bubble-avatar-size, 2);\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\n\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\tmargin-left: $bubble-padding;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Put title in ::before so it is not selectable\n\t\t&::before {\n\t\t\tcontent: attr(title);\n\t\t}\n\t}\n\n\t// Hide the mention id so it is selectable\n\t&__select {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\tleft: -1000px;\n\t}\n}\n\n</style>\n","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport NcMentionBubble from '../../components/NcRichContenteditable/NcMentionBubble.vue'\nimport Linkify from '../../utils/Linkify.js'\n\nimport escapeHtml from 'escape-html'\nimport stripTags from 'striptags'\nimport Vue from 'vue'\n\n// Referenced from public function getMentions(): https://github.com/nextcloud/server/blob/master/lib/private/Comments/Comment.php\n// Beginning or whitespace. Non-capturing group within word boundary\nconst MENTION_START = /\\B(?<![^a-z0-9_\\-@.'\\s])/.source\n// Capturing groups like: @user-id, @\"guest/abc16def\", @\"federated_user/user-id\", @\"user-id with space\"\nconst MENTION_SIMPLE = /(@[a-z0-9_\\-@.']+)/.source\nconst MENTION_GUEST = /@&quot;guest\\/[a-f0-9]+&quot;/.source\nconst MENTION_PREFIXED = /@&quot;(?:federated_)?(?:group|team|user){1}\\/[a-z0-9_\\-@.' /:]+&quot;/.source\nconst MENTION_WITH_SPACE = /@&quot;[a-z0-9_\\-@.' ]+&quot;/.source\nconst MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`\n// Concatenated regular expressions\nexport const USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, 'gi')\n\nexport default {\n\tprops: {\n\t\tuserData: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Convert the value string to html for the inner content\n\t\t *\n\t\t * @param {string} value the content without html\n\t\t * @return {string} rendered html\n\t\t */\n\t\trenderContent(value) {\n\t\t\t// Sanitize the value prop\n\t\t\tconst sanitizedValue = escapeHtml(value)\n\n\t\t\t// Extract all the userIds\n\t\t\tconst splitValue = sanitizedValue.split(USERID_REGEX)\n\t\t\t\t.map(part => part.split(USERID_REGEX_WITH_SPACE)).flat()\n\n\t\t\t// Replace userIds by html\n\t\t\treturn splitValue\n\t\t\t\t.map(part => {\n\t\t\t\t\t// When splitting, the string is always putting the userIds\n\t\t\t\t\t// on the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\t// This part doesn't contain a mention, let's make sure links are parsed\n\t\t\t\t\t\treturn Linkify(part)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the leading @ and all \"\n\t\t\t\t\tconst id = part.slice(1).replace(/&quot;/gi, '')\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&amp;/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @return {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content\n\t\t\t// Consecutive spaces in HTML tags should collapse\n\t\t\ttext = text.replace(/>\\s+</g, '><')\n\t\t\t// Replace break lines with new lines\n\t\t\ttext = text.replace(/<br>/gmi, '\\n')\n\t\t\t// Replace some html special characters\n\t\t\ttext = text.replace(/&nbsp;/gmi, ' ')\n\t\t\ttext = text.replace(/&amp;/gmi, '&')\n\n\t\t\t// Convert the mentions to text only\n\t\t\t// first we replace divs with new lines\n\t\t\ttext = text.replace(/<\\/div>/gmi, '\\n')\n\t\t\t// then we remove all leftover html\n\t\t\ttext = stripTags(text, '<div>')\n\t\t\ttext = stripTags(text)\n\n\t\t\treturn text\n\t\t},\n\n\t\t/**\n\t\t * Generate an autocompletion popup entry template\n\t\t *\n\t\t * @param {string} value the value to match against the userData\n\t\t * @return {string}\n\t\t */\n\t\tgenSelectTemplate(value) {\n\t\t\t// The value returned by this function will replace the trigger '@'\n\t\t\t// and the search text, so when there is no match we simply return\n\t\t\t// '@' and the text.\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\treturn `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`\n\t\t\t}\n\n\t\t\tconst data = this.userData[value]\n\n\t\t\t// Fallback to @mention in case no data matches\n\t\t\tif (!data) {\n\t\t\t\t// return @value if matches MENTION_SIMPLE, @\"value\" otherwise\n\t\t\t\treturn [' ', '/', ':'].every(char => !value.includes(char))\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip of new lines and tabs\n\t\t\treturn this.renderComponentHtml(data, NcMentionBubble).replace(/[\\n\\t]/gmi, '')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {object} propsData the props to pass to the component\n\t\t * @param {object} component the component to render\n\t\t * @return {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(propsData, component) {\n\t\t\tconst View = Vue.extend(component)\n\t\t\tconst Item = new View({\n\t\t\t\tpropsData,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst wrapper = document.createElement('div')\n\t\t\tconst mount = document.createElement('div')\n\t\t\twrapper.style.display = 'none'\n\t\t\twrapper.appendChild(mount)\n\t\t\tdocument.body.appendChild(wrapper)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.$mount(mount)\n\t\t\tconst renderedHtml = wrapper.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.$destroy()\n\t\t\twrapper.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n"],"names":["_sfc_main","user","size","generateUrl","MENTION_START","MENTION_SIMPLE","MENTION_GUEST","MENTION_PREFIXED","MENTION_WITH_SPACE","MENTION_COMPLEX","USERID_REGEX","USERID_REGEX_WITH_SPACE","richEditor","value","escapeHtml","part","Linkify","id","content","text","stripTags","data","NcMentionBubble","char","propsData","component","View","Vue","Item","wrapper","mount","renderedHtml"],"mappings":"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"}