@nextcloud/vue 8.6.1 → 8.7.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 (211) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/Components/NcActionButton.cjs +6 -6
  3. package/dist/Components/NcActionButton.cjs.map +1 -1
  4. package/dist/Components/NcActionButton.mjs +3 -3
  5. package/dist/Components/NcActionButton.mjs.map +1 -1
  6. package/dist/Components/NcActionInput.cjs +1 -1
  7. package/dist/Components/NcActionInput.mjs +1 -1
  8. package/dist/Components/NcActions.cjs +1 -1
  9. package/dist/Components/NcActions.mjs +1 -1
  10. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  11. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  12. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  13. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  14. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  15. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  16. package/dist/Components/NcAppSidebar.cjs +1 -1
  17. package/dist/Components/NcAppSidebar.mjs +1 -1
  18. package/dist/Components/NcAppSidebarTab.cjs +3 -3
  19. package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
  20. package/dist/Components/NcAppSidebarTab.mjs +5 -5
  21. package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
  22. package/dist/Components/NcAvatar.cjs +1 -1
  23. package/dist/Components/NcAvatar.mjs +1 -1
  24. package/dist/Components/NcBreadcrumb.cjs +1 -1
  25. package/dist/Components/NcBreadcrumb.mjs +1 -1
  26. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  27. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  28. package/dist/Components/NcDashboardWidget.cjs +1 -1
  29. package/dist/Components/NcDashboardWidget.mjs +1 -1
  30. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  31. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  32. package/dist/Components/NcDateTimePicker.cjs +3 -3
  33. package/dist/Components/NcDateTimePicker.cjs.map +1 -1
  34. package/dist/Components/NcDateTimePicker.mjs +8 -8
  35. package/dist/Components/NcDateTimePicker.mjs.map +1 -1
  36. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  37. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  38. package/dist/Components/NcHeaderMenu.cjs +1 -1
  39. package/dist/Components/NcHeaderMenu.mjs +1 -1
  40. package/dist/Components/NcListItem.cjs +1 -1
  41. package/dist/Components/NcListItem.mjs +1 -1
  42. package/dist/Components/NcListItemIcon.cjs +1 -1
  43. package/dist/Components/NcListItemIcon.mjs +1 -1
  44. package/dist/Components/NcModal.cjs +7 -7
  45. package/dist/Components/NcModal.cjs.map +1 -1
  46. package/dist/Components/NcModal.mjs +7 -7
  47. package/dist/Components/NcModal.mjs.map +1 -1
  48. package/dist/Components/NcRichContenteditable.cjs +1 -1
  49. package/dist/Components/NcRichContenteditable.mjs +2 -2
  50. package/dist/Components/NcRichText.cjs +11 -11
  51. package/dist/Components/NcRichText.cjs.map +1 -1
  52. package/dist/Components/NcRichText.mjs +22 -21
  53. package/dist/Components/NcRichText.mjs.map +1 -1
  54. package/dist/Components/NcSelect.cjs +1 -1
  55. package/dist/Components/NcSelect.mjs +1 -1
  56. package/dist/Components/NcSelectTags.cjs +1 -1
  57. package/dist/Components/NcSelectTags.mjs +1 -1
  58. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  59. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  60. package/dist/Components/NcTimezonePicker.cjs +1 -1
  61. package/dist/Components/NcTimezonePicker.mjs +1 -1
  62. package/dist/Components/NcUserBubble.cjs +1 -1
  63. package/dist/Components/NcUserBubble.mjs +1 -1
  64. package/dist/Functions/reference.cjs +16 -0
  65. package/dist/Functions/reference.cjs.map +1 -0
  66. package/dist/Functions/reference.mjs +17 -0
  67. package/dist/Functions/reference.mjs.map +1 -0
  68. package/dist/Functions/registerReference.cjs +71 -0
  69. package/dist/Functions/registerReference.cjs.map +1 -0
  70. package/dist/Functions/registerReference.mjs +71 -0
  71. package/dist/Functions/registerReference.mjs.map +1 -0
  72. package/dist/Mixins/richEditor.cjs +1 -1
  73. package/dist/Mixins/richEditor.mjs +1 -1
  74. package/dist/assets/{NcActionButton-1Z9lN7ar.css → NcActionButton-rOZFVQA8.css} +17 -17
  75. package/dist/assets/{NcActions-mSL9fcPO.css → NcActions-4Gq5bZLW.css} +12 -12
  76. package/dist/assets/{NcAppSidebar-iU8Zp4Qk.css → NcAppSidebar-YHd7DpMW.css} +44 -44
  77. package/dist/assets/{NcAppSidebarTab-Phau6edJ.css → NcAppSidebarTab-FywbKxqo.css} +4 -4
  78. package/dist/assets/{NcBreadcrumb-M3hqCbqS.css → NcBreadcrumb-HspaFygg.css} +16 -16
  79. package/dist/assets/{NcDateTimePicker-vivOLt2Q.css → NcDateTimePicker-w8SEtYvQ.css} +17 -17
  80. package/dist/assets/{NcHeaderMenu-06vdn4tC.css → NcHeaderMenu-Srn5iXdL.css} +14 -15
  81. package/dist/assets/NcListItem-L8LeGwpe.css +165 -0
  82. package/dist/assets/{NcMentionBubble-2OXF_uEJ.css → NcMentionBubble-YYl1ib_F.css} +9 -9
  83. package/dist/assets/{NcModal-UZh031V1.css → NcModal-sIK5sUoC.css} +63 -63
  84. package/dist/assets/{NcRichContenteditable-j9edXOEH.css → NcRichContenteditable-N1TxeACO.css} +76 -84
  85. package/dist/assets/NcRichText-kDp48Nji.css +215 -0
  86. package/dist/assets/referencePickerModal-A0PlFUEI.css +316 -0
  87. package/dist/chunks/{NcActionInput-jQFZLsoe.mjs → NcActionInput-XHMzOL_h.mjs} +1 -1
  88. package/dist/chunks/{NcActionInput-jQFZLsoe.mjs.map → NcActionInput-XHMzOL_h.mjs.map} +1 -1
  89. package/dist/chunks/{NcActionInput--MiyWKmE.cjs → NcActionInput-f1Oq2O71.cjs} +1 -1
  90. package/dist/chunks/{NcActionInput--MiyWKmE.cjs.map → NcActionInput-f1Oq2O71.cjs.map} +1 -1
  91. package/dist/chunks/{NcActions-qCVw08zV.mjs → NcActions-5_igU-CH.mjs} +21 -21
  92. package/dist/chunks/{NcActions-qCVw08zV.mjs.map → NcActions-5_igU-CH.mjs.map} +1 -1
  93. package/dist/chunks/{NcActions-SlBohqiI.cjs → NcActions-JXnhQhum.cjs} +7 -7
  94. package/dist/chunks/{NcActions-SlBohqiI.cjs.map → NcActions-JXnhQhum.cjs.map} +1 -1
  95. package/dist/chunks/{NcAppNavigationCaption-0lGP-5CR.mjs → NcAppNavigationCaption-2rUO5Mns.mjs} +1 -1
  96. package/dist/chunks/{NcAppNavigationCaption-0lGP-5CR.mjs.map → NcAppNavigationCaption-2rUO5Mns.mjs.map} +1 -1
  97. package/dist/chunks/{NcAppNavigationCaption-nEKQXQYr.cjs → NcAppNavigationCaption-JQWbmgdy.cjs} +1 -1
  98. package/dist/chunks/{NcAppNavigationCaption-nEKQXQYr.cjs.map → NcAppNavigationCaption-JQWbmgdy.cjs.map} +1 -1
  99. package/dist/chunks/{NcAppNavigationItem-g_XncGxL.mjs → NcAppNavigationItem-A1yAdDNN.mjs} +1 -1
  100. package/dist/chunks/{NcAppNavigationItem-g_XncGxL.mjs.map → NcAppNavigationItem-A1yAdDNN.mjs.map} +1 -1
  101. package/dist/chunks/{NcAppNavigationItem-AdLvgSbV.cjs → NcAppNavigationItem-Wb8gX-Ln.cjs} +1 -1
  102. package/dist/chunks/{NcAppNavigationItem-AdLvgSbV.cjs.map → NcAppNavigationItem-Wb8gX-Ln.cjs.map} +1 -1
  103. package/dist/chunks/{NcAppNavigationSettings-UKQnGAEz.cjs → NcAppNavigationSettings-VLa79G7w.cjs} +1 -1
  104. package/dist/chunks/{NcAppNavigationSettings-UKQnGAEz.cjs.map → NcAppNavigationSettings-VLa79G7w.cjs.map} +1 -1
  105. package/dist/chunks/{NcAppNavigationSettings-DQHPDc4X.mjs → NcAppNavigationSettings-gwL_FqLN.mjs} +1 -1
  106. package/dist/chunks/{NcAppNavigationSettings-DQHPDc4X.mjs.map → NcAppNavigationSettings-gwL_FqLN.mjs.map} +1 -1
  107. package/dist/chunks/{NcAppSidebar-WyDtlgwP.cjs → NcAppSidebar-rRNJnN-k.cjs} +59 -31
  108. package/dist/chunks/NcAppSidebar-rRNJnN-k.cjs.map +1 -0
  109. package/dist/chunks/{NcAppSidebar-Wo8-p3nm.mjs → NcAppSidebar-tnHBPGbL.mjs} +138 -109
  110. package/dist/chunks/NcAppSidebar-tnHBPGbL.mjs.map +1 -0
  111. package/dist/chunks/{NcAvatar-c9ryo-7h.mjs → NcAvatar-xT3kz6mU.mjs} +2 -2
  112. package/dist/chunks/{NcAvatar-c9ryo-7h.mjs.map → NcAvatar-xT3kz6mU.mjs.map} +1 -1
  113. package/dist/chunks/{NcAvatar-khVnYpF2.cjs → NcAvatar-zTS9P1lK.cjs} +2 -2
  114. package/dist/chunks/{NcAvatar-khVnYpF2.cjs.map → NcAvatar-zTS9P1lK.cjs.map} +1 -1
  115. package/dist/chunks/{NcBreadcrumb-SEyo99to.cjs → NcBreadcrumb-DEWk7wO9.cjs} +27 -20
  116. package/dist/chunks/NcBreadcrumb-DEWk7wO9.cjs.map +1 -0
  117. package/dist/chunks/{NcBreadcrumb-Ac0G-oky.mjs → NcBreadcrumb-w1UX2NR-.mjs} +14 -7
  118. package/dist/chunks/NcBreadcrumb-w1UX2NR-.mjs.map +1 -0
  119. package/dist/chunks/{NcBreadcrumbs-DXpOwLNx.cjs → NcBreadcrumbs-VuaG3ex5.cjs} +1 -1
  120. package/dist/chunks/{NcBreadcrumbs-DXpOwLNx.cjs.map → NcBreadcrumbs-VuaG3ex5.cjs.map} +1 -1
  121. package/dist/chunks/{NcBreadcrumbs-YOANgGCY.mjs → NcBreadcrumbs-tRR9CjKD.mjs} +2 -2
  122. package/dist/chunks/{NcBreadcrumbs-YOANgGCY.mjs.map → NcBreadcrumbs-tRR9CjKD.mjs.map} +1 -1
  123. package/dist/chunks/{NcDashboardWidget-zBrcpL_E.cjs → NcDashboardWidget-QciRRvL4.cjs} +1 -1
  124. package/dist/chunks/{NcDashboardWidget-zBrcpL_E.cjs.map → NcDashboardWidget-QciRRvL4.cjs.map} +1 -1
  125. package/dist/chunks/{NcDashboardWidget-bEnoXtKm.mjs → NcDashboardWidget-ogqyHahY.mjs} +2 -2
  126. package/dist/chunks/{NcDashboardWidget-bEnoXtKm.mjs.map → NcDashboardWidget-ogqyHahY.mjs.map} +1 -1
  127. package/dist/chunks/{NcDashboardWidgetItem-LcxIx2-S.cjs → NcDashboardWidgetItem-mIPkPR7r.cjs} +1 -1
  128. package/dist/chunks/{NcDashboardWidgetItem-LcxIx2-S.cjs.map → NcDashboardWidgetItem-mIPkPR7r.cjs.map} +1 -1
  129. package/dist/chunks/{NcDashboardWidgetItem-p7yyFX-b.mjs → NcDashboardWidgetItem-wuUHTeLl.mjs} +2 -2
  130. package/dist/chunks/{NcDashboardWidgetItem-p7yyFX-b.mjs.map → NcDashboardWidgetItem-wuUHTeLl.mjs.map} +1 -1
  131. package/dist/chunks/{NcHeaderMenu-BSi8E43v.cjs → NcHeaderMenu-0d6eqre6.cjs} +6 -6
  132. package/dist/chunks/{NcHeaderMenu-Vytc8Eqg.mjs.map → NcHeaderMenu-0d6eqre6.cjs.map} +1 -1
  133. package/dist/chunks/{NcHeaderMenu-Vytc8Eqg.mjs → NcHeaderMenu-91qMsRIw.mjs} +3 -3
  134. package/dist/chunks/{NcHeaderMenu-BSi8E43v.cjs.map → NcHeaderMenu-91qMsRIw.mjs.map} +1 -1
  135. package/dist/chunks/{NcListItem-lqYZQhuZ.cjs → NcListItem--_PCqetA.cjs} +30 -47
  136. package/dist/chunks/NcListItem--_PCqetA.cjs.map +1 -0
  137. package/dist/chunks/{NcListItem-90hXqC4C.mjs → NcListItem-AMcc69jK.mjs} +33 -50
  138. package/dist/chunks/NcListItem-AMcc69jK.mjs.map +1 -0
  139. package/dist/chunks/{NcListItemIcon-ccke4gpg.cjs → NcListItemIcon-BnoIbVbD.cjs} +2 -2
  140. package/dist/chunks/{NcListItemIcon-ccke4gpg.cjs.map → NcListItemIcon-BnoIbVbD.cjs.map} +1 -1
  141. package/dist/chunks/{NcListItemIcon-hTbMo3-O.mjs → NcListItemIcon-rqgXledP.mjs} +2 -2
  142. package/dist/chunks/{NcListItemIcon-hTbMo3-O.mjs.map → NcListItemIcon-rqgXledP.mjs.map} +1 -1
  143. package/dist/chunks/NcRichContenteditable-eG8Fyo-M.mjs +638 -0
  144. package/dist/chunks/NcRichContenteditable-eG8Fyo-M.mjs.map +1 -0
  145. package/dist/chunks/{NcRichContenteditable-WxSgSNot.cjs → NcRichContenteditable-jReu2l-M.cjs} +235 -111
  146. package/dist/chunks/NcRichContenteditable-jReu2l-M.cjs.map +1 -0
  147. package/dist/chunks/NcRichText-Yo5pFnd0.cjs +310 -0
  148. package/dist/chunks/NcRichText-Yo5pFnd0.cjs.map +1 -0
  149. package/dist/chunks/NcRichText-qID66jAy.mjs +325 -0
  150. package/dist/chunks/NcRichText-qID66jAy.mjs.map +1 -0
  151. package/dist/chunks/{NcSelect-rMSul72R.cjs → NcSelect-U9LJcdIo.cjs} +55 -45
  152. package/dist/chunks/NcSelect-U9LJcdIo.cjs.map +1 -0
  153. package/dist/chunks/{NcSelect-vSPKKiyt.mjs → NcSelect-b2H-YQsK.mjs} +40 -30
  154. package/dist/chunks/NcSelect-b2H-YQsK.mjs.map +1 -0
  155. package/dist/chunks/{NcSelectTags-MwCs_QbM.mjs → NcSelectTags-MlILya2b.mjs} +1 -1
  156. package/dist/chunks/{NcSelectTags-MwCs_QbM.mjs.map → NcSelectTags-MlILya2b.mjs.map} +1 -1
  157. package/dist/chunks/{NcSelectTags-beMN3ZsT.cjs → NcSelectTags-rO88Pk-1.cjs} +1 -1
  158. package/dist/chunks/{NcSelectTags-beMN3ZsT.cjs.map → NcSelectTags-rO88Pk-1.cjs.map} +1 -1
  159. package/dist/chunks/{NcSettingsSelectGroup-msn3aYsn.cjs → NcSettingsSelectGroup-rfeDPLCg.cjs} +1 -1
  160. package/dist/chunks/{NcSettingsSelectGroup-msn3aYsn.cjs.map → NcSettingsSelectGroup-rfeDPLCg.cjs.map} +1 -1
  161. package/dist/chunks/{NcSettingsSelectGroup-HkS2QpZS.mjs → NcSettingsSelectGroup-xhnDBg8a.mjs} +1 -1
  162. package/dist/chunks/{NcSettingsSelectGroup-HkS2QpZS.mjs.map → NcSettingsSelectGroup-xhnDBg8a.mjs.map} +1 -1
  163. package/dist/chunks/{NcTimezonePicker-Cp479kFL.cjs → NcTimezonePicker-KG0dvgUv.cjs} +1 -1
  164. package/dist/chunks/{NcTimezonePicker-Cp479kFL.cjs.map → NcTimezonePicker-KG0dvgUv.cjs.map} +1 -1
  165. package/dist/chunks/{NcTimezonePicker-I6wF2jeF.mjs → NcTimezonePicker-jJeiI-Ff.mjs} +1 -1
  166. package/dist/chunks/{NcTimezonePicker-I6wF2jeF.mjs.map → NcTimezonePicker-jJeiI-Ff.mjs.map} +1 -1
  167. package/dist/chunks/{NcUserBubble-6AbwSr2B.cjs → NcUserBubble-027_C0cM.cjs} +1 -1
  168. package/dist/chunks/{NcUserBubble-6AbwSr2B.cjs.map → NcUserBubble-027_C0cM.cjs.map} +1 -1
  169. package/dist/chunks/{NcUserBubble-imSUw-aP.mjs → NcUserBubble-9StjszDh.mjs} +1 -1
  170. package/dist/chunks/{NcUserBubble-imSUw-aP.mjs.map → NcUserBubble-9StjszDh.mjs.map} +1 -1
  171. package/dist/chunks/{ScopeComponent-CjAOgGnx.mjs → ScopeComponent-9fOoDGYa.mjs} +1 -1
  172. package/dist/chunks/{ScopeComponent-CjAOgGnx.mjs.map → ScopeComponent-9fOoDGYa.mjs.map} +1 -1
  173. package/dist/chunks/{ScopeComponent-V9SPec9g.cjs → ScopeComponent-R0tAsT2f.cjs} +1 -1
  174. package/dist/chunks/{ScopeComponent-V9SPec9g.cjs.map → ScopeComponent-R0tAsT2f.cjs.map} +1 -1
  175. package/dist/chunks/{index-U21dQVa7.cjs → index-5TyVc_TT.cjs} +29 -16
  176. package/dist/chunks/index-5TyVc_TT.cjs.map +1 -0
  177. package/dist/chunks/{index-n2q3iT69.mjs → index-xnq0-IMW.mjs} +26 -13
  178. package/dist/chunks/index-xnq0-IMW.mjs.map +1 -0
  179. package/dist/chunks/referencePickerModal-cPBjsn4r.cjs +2393 -0
  180. package/dist/chunks/referencePickerModal-cPBjsn4r.cjs.map +1 -0
  181. package/dist/chunks/referencePickerModal-gDBkGfNV.mjs +2414 -0
  182. package/dist/chunks/referencePickerModal-gDBkGfNV.mjs.map +1 -0
  183. package/dist/index.cjs +189 -170
  184. package/dist/index.cjs.map +1 -1
  185. package/dist/index.mjs +184 -165
  186. package/dist/index.mjs.map +1 -1
  187. package/dist/vendor.LICENSE.txt +4 -0
  188. package/package.json +4 -4
  189. package/dist/assets/NcListItem-6sL-frKJ.css +0 -165
  190. package/dist/assets/referencePickerModal-iy5QSWj6.css +0 -509
  191. package/dist/chunks/NcAppSidebar-Wo8-p3nm.mjs.map +0 -1
  192. package/dist/chunks/NcAppSidebar-WyDtlgwP.cjs.map +0 -1
  193. package/dist/chunks/NcBreadcrumb-Ac0G-oky.mjs.map +0 -1
  194. package/dist/chunks/NcBreadcrumb-SEyo99to.cjs.map +0 -1
  195. package/dist/chunks/NcListItem-90hXqC4C.mjs.map +0 -1
  196. package/dist/chunks/NcListItem-lqYZQhuZ.cjs.map +0 -1
  197. package/dist/chunks/NcRichContenteditable-WxSgSNot.cjs.map +0 -1
  198. package/dist/chunks/NcRichContenteditable-gQh2HFSV.mjs +0 -515
  199. package/dist/chunks/NcRichContenteditable-gQh2HFSV.mjs.map +0 -1
  200. package/dist/chunks/NcRichText-RSAcESV2.mjs +0 -353
  201. package/dist/chunks/NcRichText-RSAcESV2.mjs.map +0 -1
  202. package/dist/chunks/NcRichText-fHn-j5sa.cjs +0 -337
  203. package/dist/chunks/NcRichText-fHn-j5sa.cjs.map +0 -1
  204. package/dist/chunks/NcSelect-rMSul72R.cjs.map +0 -1
  205. package/dist/chunks/NcSelect-vSPKKiyt.mjs.map +0 -1
  206. package/dist/chunks/index-U21dQVa7.cjs.map +0 -1
  207. package/dist/chunks/index-n2q3iT69.mjs.map +0 -1
  208. package/dist/chunks/referencePickerModal-FeA-PRqB.mjs +0 -897
  209. package/dist/chunks/referencePickerModal-FeA-PRqB.mjs.map +0 -1
  210. package/dist/chunks/referencePickerModal-GXRJ351Q.cjs +0 -880
  211. package/dist/chunks/referencePickerModal-GXRJ351Q.cjs.map +0 -1
@@ -1,353 +0,0 @@
1
- import { N as b } from "./referencePickerModal-FeA-PRqB.mjs";
2
- import h from "@nextcloud/axios";
3
- import { generateOcsUrl as d } from "@nextcloud/router";
4
- import { n as g } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
5
- import { N as y } from "./NcCheckboxRadioSwitch-PlgK1zWr.mjs";
6
- import { visit as k, SKIP as v } from "unist-util-visit";
7
- import { u as p } from "unist-builder";
8
- import { G as w } from "./GenRandomId-VodkdWbp.mjs";
9
- import { unified as R } from "unified";
10
- import N from "remark-parse";
11
- import A from "remark-gfm";
12
- import $ from "remark-breaks";
13
- import M from "remark-rehype";
14
- import E from "rehype-react";
15
- import L from "rehype-external-links";
16
- const m = /(\s|^)(https?:\/\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\s|$)/ig, x = /(\s|\(|^)((https?:\/\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\s|\)|$)/ig, j = {
17
- name: "NcReferenceList",
18
- components: {
19
- NcReferenceWidget: b
20
- },
21
- props: {
22
- text: {
23
- type: String,
24
- default: ""
25
- },
26
- referenceData: {
27
- type: Object,
28
- default: null
29
- },
30
- limit: {
31
- type: Number,
32
- default: 1
33
- },
34
- displayFallback: {
35
- type: Boolean,
36
- default: !1
37
- },
38
- interactive: {
39
- type: Boolean,
40
- default: !1
41
- }
42
- },
43
- data() {
44
- return {
45
- references: null,
46
- loading: !0
47
- };
48
- },
49
- computed: {
50
- isVisible() {
51
- return this.loading || this.displayedReferences.length !== 0;
52
- },
53
- values() {
54
- return this.referenceData ? this.referenceData : this.displayFallback && !this.loading && !this.references ? [this.fallbackReference] : this.references ? Object.values(this.references) : [];
55
- },
56
- firstReference() {
57
- return this.values[0] ?? null;
58
- },
59
- displayedReferences() {
60
- return this.values.slice(0, this.limit).map((e) => ({
61
- ...e,
62
- interactive: this.interactive
63
- }));
64
- },
65
- fallbackReference() {
66
- return {
67
- accessible: !0,
68
- openGraphObject: {
69
- id: this.text,
70
- link: this.text,
71
- name: this.text
72
- },
73
- richObjectType: "open-graph"
74
- };
75
- }
76
- },
77
- watch: {
78
- text: "fetch"
79
- },
80
- mounted() {
81
- this.fetch();
82
- },
83
- methods: {
84
- fetch() {
85
- if (this.loading = !0, this.referenceData) {
86
- this.loading = !1;
87
- return;
88
- }
89
- if (!new RegExp(m).exec(this.text)) {
90
- this.loading = !1;
91
- return;
92
- }
93
- this.resolve().then((e) => {
94
- this.references = e.data.ocs.data.references, this.loading = !1, this.$emit("loaded");
95
- }).catch((e) => {
96
- console.error("Failed to extract references", e), this.loading = !1, this.$emit("loaded");
97
- });
98
- },
99
- resolve() {
100
- const e = new RegExp(m).exec(this.text.trim());
101
- return this.limit === 1 && e ? h.get(d("references/resolve", 2) + `?reference=${encodeURIComponent(e[0])}`) : h.post(d("references/extract", 2), {
102
- text: this.text,
103
- resolve: !0,
104
- limit: this.limit
105
- });
106
- }
107
- }
108
- };
109
- var O = function() {
110
- var i = this, t = i._self._c;
111
- return i.isVisible ? t("div", { staticClass: "widgets--list", class: { "icon-loading": i.loading } }, i._l(i.displayedReferences, function(r) {
112
- return t("div", { key: r?.openGraphObject?.id }, [t("NcReferenceWidget", { attrs: { reference: r } })], 1);
113
- }), 0) : i._e();
114
- }, T = [], C = /* @__PURE__ */ g(
115
- j,
116
- O,
117
- T,
118
- !1,
119
- null,
120
- "ad47d8e3",
121
- null,
122
- null
123
- );
124
- const f = C.exports, B = {
125
- name: "NcLink",
126
- props: {
127
- href: {
128
- type: String,
129
- required: !0
130
- }
131
- },
132
- render(e) {
133
- return e("a", {
134
- attrs: {
135
- href: this.href,
136
- rel: "noopener noreferrer",
137
- target: "_blank",
138
- class: "rich-text--external-link"
139
- }
140
- }, [this.href.trim()]);
141
- }
142
- }, P = function({ autolink: e, useMarkdown: i, useExtendedMarkdown: t }) {
143
- return function(r) {
144
- t || !i || !e || k(r, (a) => a.type === "text", (a, n, o) => {
145
- let c = _(a.value);
146
- return c = c.map((s) => typeof s == "string" ? p("text", s) : p("link", {
147
- url: s.props.href
148
- }, [p("text", s.props.href)])).filter((s) => s), o.children.splice(n, 1, ...c.flat()), [v, n + c.flat().length];
149
- });
150
- };
151
- }, _ = (e) => {
152
- let i = x.exec(e);
153
- const t = [];
154
- let r = 0;
155
- for (; i !== null; ) {
156
- let n = i[2], o, c = e.substring(r, i.index + i[1].length);
157
- n[0] === " " && (c += n[0], n = n.substring(1).trim());
158
- const s = n[n.length - 1];
159
- (s === "." || s === "," || s === ";" || i[0][0] === "(" && s === ")") && (n = n.substring(0, n.length - 1), o = s), t.push(c), t.push({ component: B, props: { href: n } }), o && t.push(o), r = i.index + i[0].length, i = x.exec(e);
160
- }
161
- t.push(e.substring(r));
162
- const a = t.map((n) => typeof n == "string" ? n : n.props.href).join("");
163
- return e === a ? t : (console.error("Failed to reassemble the chunked text: " + e), e);
164
- }, D = function() {
165
- return function(e) {
166
- k(e, (t) => t.type === "text", i);
167
- function i(t, r, a) {
168
- const n = t.value.split(/(\{[a-z\-_.0-9]+\})/ig).map((o, c, s) => {
169
- const l = o.match(/^\{([a-z\-_.0-9]+)\}$/i);
170
- if (!l)
171
- return p("text", o);
172
- const [, u] = l;
173
- return p("element", {
174
- tagName: `#${u}`
175
- });
176
- });
177
- a.children.splice(r, 1, ...n);
178
- }
179
- };
180
- }, F = ({ h: e, context: i }, t) => (i.autolink && (t = _(t)), Array.isArray(t) ? t.map((r) => {
181
- if (typeof r == "string")
182
- return r;
183
- const { component: a, props: n } = r, o = a.name === "NcLink" ? void 0 : "rich-text--component";
184
- return e(a, {
185
- props: n,
186
- class: o
187
- });
188
- }) : t), S = {
189
- name: "NcRichText",
190
- components: {
191
- NcReferenceList: f
192
- },
193
- props: {
194
- text: {
195
- type: String,
196
- default: ""
197
- },
198
- arguments: {
199
- type: Object,
200
- default: () => ({})
201
- },
202
- referenceLimit: {
203
- type: Number,
204
- default: 0
205
- },
206
- /** Provide data upfront to avoid extra http request */
207
- references: {
208
- type: Object,
209
- default: null
210
- },
211
- markdownCssClasses: {
212
- type: Object,
213
- default: () => ({
214
- a: "rich-text--external-link",
215
- ol: "rich-text--ordered-list",
216
- ul: "rich-text--un-ordered-list",
217
- li: "rich-text--list-item",
218
- strong: "rich-text--strong",
219
- em: "rich-text--italic",
220
- h1: "rich-text--heading rich-text--heading-1",
221
- h2: "rich-text--heading rich-text--heading-2",
222
- h3: "rich-text--heading rich-text--heading-3",
223
- h4: "rich-text--heading rich-text--heading-4",
224
- h5: "rich-text--heading rich-text--heading-5",
225
- h6: "rich-text--heading rich-text--heading-6",
226
- hr: "rich-text--hr",
227
- table: "rich-text--table",
228
- pre: "rich-text--pre",
229
- code: "rich-text--code",
230
- blockquote: "rich-text--blockquote"
231
- })
232
- },
233
- useMarkdown: {
234
- type: Boolean,
235
- default: !1
236
- },
237
- /** Provide GitHub Flavored Markdown syntax */
238
- useExtendedMarkdown: {
239
- type: Boolean,
240
- default: !1
241
- },
242
- /** Provide event from rendered markdown inputs */
243
- interactive: {
244
- type: Boolean,
245
- default: !1
246
- },
247
- autolink: {
248
- type: Boolean,
249
- default: !0
250
- }
251
- },
252
- emits: ["interact:todo"],
253
- methods: {
254
- renderPlaintext(e) {
255
- const i = this, t = this.text.split(/(\{[a-z\-_.0-9]+\})/ig).map(function(r, a, n) {
256
- const o = r.match(/^\{([a-z\-_.0-9]+)\}$/i);
257
- if (!o)
258
- return F({ h: e, context: i }, r);
259
- const c = o[1], s = i.arguments[c];
260
- if (typeof s == "object") {
261
- const { component: l, props: u } = s;
262
- return e(l, {
263
- props: u,
264
- class: "rich-text--component"
265
- });
266
- }
267
- return s ? e("span", { class: "rich-text--fallback" }, s) : r;
268
- });
269
- return e("div", { class: "rich-text--wrapper" }, [
270
- e("div", {}, t.flat()),
271
- this.referenceLimit > 0 ? e("div", { class: "rich-text--reference-widget" }, [
272
- e(f, { props: { text: this.text, referenceData: this.references } })
273
- ]) : null
274
- ]);
275
- },
276
- renderMarkdown(e) {
277
- const i = R().use(N).use(P, {
278
- autolink: this.autolink,
279
- useMarkdown: this.useMarkdown,
280
- useExtendedMarkdown: this.useExtendedMarkdown
281
- }).use(this.useExtendedMarkdown ? A : void 0).use($).use(M, {
282
- handlers: {
283
- component(t, r) {
284
- return t(r, r.component, { value: r.value });
285
- }
286
- }
287
- }).use(D).use(L, {
288
- target: "_blank",
289
- rel: ["noopener noreferrer"]
290
- }).use(E, {
291
- createElement: (t, r, a) => {
292
- if (a = a?.map(
293
- (o) => typeof o == "string" ? o.replace(/&lt;/gmi, "<") : o
294
- ), !t.startsWith("#")) {
295
- if (this.useExtendedMarkdown && t === "li" && Array.isArray(a) && a[0].tag === "input" && a[0].data.attrs.type === "checkbox") {
296
- const [o, , c] = a, s = "markdown-input-" + w(5), l = e(y, {
297
- attrs: {
298
- ...o.data.attrs,
299
- id: s,
300
- disabled: !this.interactive
301
- },
302
- on: {
303
- "update:checked": (u) => {
304
- this.$emit("interact:todo", { id: s, label: c, value: u });
305
- }
306
- }
307
- }, [c]);
308
- return e(t, r, [l]);
309
- }
310
- return e(t, r, a);
311
- }
312
- const n = this.arguments[t.slice(1)];
313
- return n ? n.component ? e(
314
- n.component,
315
- {
316
- attrs: r,
317
- props: n.props,
318
- class: "rich-text--component"
319
- },
320
- a
321
- ) : e("span", r, [n]) : e("span", { attrs: r, class: "rich-text--fallback" }, [`{${t.slice(1)}}`]);
322
- },
323
- prefix: !1
324
- }).processSync(
325
- this.text.replace(/</gmi, "&lt;").replace(/&gt;/gmi, ">")
326
- ).result;
327
- return e("div", { class: "rich-text--wrapper rich-text--wrapper-markdown" }, [
328
- i,
329
- this.referenceLimit > 0 ? e("div", { class: "rich-text--reference-widget" }, [
330
- e(f, { props: { text: this.text, referenceData: this.references } })
331
- ]) : null
332
- ]);
333
- }
334
- },
335
- render(e) {
336
- return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown(e) : this.renderPlaintext(e);
337
- }
338
- }, U = null, z = null;
339
- var G = /* @__PURE__ */ g(
340
- S,
341
- U,
342
- z,
343
- !1,
344
- null,
345
- "09180f92",
346
- null,
347
- null
348
- );
349
- const ie = G.exports;
350
- export {
351
- ie as N,
352
- f as a
353
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcRichText-RSAcESV2.mjs","sources":["../../src/components/NcRichText/helpers.js","../../src/components/NcRichText/NcReferenceList.vue","../../src/components/NcRichText/autolink.js","../../src/components/NcRichText/placeholder.js","../../src/components/NcRichText/NcRichText.vue"],"sourcesContent":["/**\n * Regex pattern to match links to be resolved by the link-reference provider\n *\n * @type {RegExp}\n */\nexport const URL_PATTERN = /(\\s|^)(https?:\\/\\/)([-A-Z0-9+_.]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|$)/ig\n\n/**\n * Regex pattern to identify strings as links and then making them clickable\n *\n * @type {RegExp}\n */\nexport const URL_PATTERN_AUTOLINK = /(\\s|\\(|^)((https?:\\/\\/)([-A-Z0-9+_.]+[-A-Z0-9]+(?::[0-9]+)?(?:\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*))(?=\\s|\\)|$)/ig\n","<template>\n\t<div v-if=\"isVisible\" class=\"widgets--list\" :class=\"{'icon-loading': loading }\">\n\t\t<div v-for=\"reference in displayedReferences\" :key=\"reference?.openGraphObject?.id\">\n\t\t\t<NcReferenceWidget :reference=\"reference\" />\n\t\t</div>\n\t</div>\n</template>\n<script>\nimport NcReferenceWidget from './NcReferenceWidget.vue'\nimport { URL_PATTERN } from './helpers.js'\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'NcReferenceList',\n\tcomponents: {\n\t\tNcReferenceWidget,\n\t},\n\tprops: {\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\treferenceData: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\t\tlimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 1,\n\t\t},\n\t\tdisplayFallback: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tinteractive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\treferences: null,\n\t\t\tloading: true,\n\t\t}\n\t},\n\tcomputed: {\n\t\tisVisible() {\n\t\t\treturn this.loading || this.displayedReferences.length !== 0\n\t\t},\n\t\tvalues() {\n\t\t\tif (this.referenceData) {\n\t\t\t\treturn this.referenceData\n\t\t\t}\n\n\t\t\tif (this.displayFallback && !this.loading && !this.references) {\n\t\t\t\treturn [this.fallbackReference]\n\t\t\t}\n\n\t\t\treturn this.references ? Object.values(this.references) : []\n\t\t},\n\t\tfirstReference() {\n\t\t\treturn this.values[0] ?? null\n\t\t},\n\t\tdisplayedReferences() {\n\t\t\treturn this.values.slice(0, this.limit).map(reference => {\n\t\t\t\treturn {\n\t\t\t\t\t...reference,\n\t\t\t\t\tinteractive: this.interactive,\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t\tfallbackReference() {\n\t\t\treturn {\n\t\t\t\taccessible: true,\n\t\t\t\topenGraphObject: {\n\t\t\t\t\tid: this.text,\n\t\t\t\t\tlink: this.text,\n\t\t\t\t\tname: this.text,\n\t\t\t\t},\n\t\t\t\trichObjectType: 'open-graph',\n\t\t\t}\n\t\t},\n\t},\n\twatch: {\n\t\ttext: 'fetch',\n\t},\n\tmounted() {\n\t\tthis.fetch()\n\t},\n\tmethods: {\n\t\tfetch() {\n\t\t\tthis.loading = true\n\t\t\tif (this.referenceData) {\n\t\t\t\tthis.loading = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (!(new RegExp(URL_PATTERN).exec(this.text))) {\n\t\t\t\tthis.loading = false\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.resolve().then((response) => {\n\t\t\t\tthis.references = response.data.ocs.data.references\n\t\t\t\tthis.loading = false\n\t\t\t\tthis.$emit('loaded')\n\t\t\t}).catch((error) => {\n\t\t\t\tconsole.error('Failed to extract references', error)\n\t\t\t\tthis.loading = false\n\t\t\t\tthis.$emit('loaded')\n\t\t\t})\n\t\t},\n\t\tresolve() {\n\t\t\tconst match = (new RegExp(URL_PATTERN).exec(this.text.trim()))\n\t\t\tif (this.limit === 1 && match) {\n\t\t\t\treturn axios.get(generateOcsUrl('references/resolve', 2) + `?reference=${encodeURIComponent(match[0])}`)\n\t\t\t}\n\n\t\t\treturn axios.post(generateOcsUrl('references/extract', 2), {\n\t\t\t\ttext: this.text,\n\t\t\t\tresolve: true,\n\t\t\t\tlimit: this.limit,\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.widgets--list.icon-loading {\n\tmin-height: 44px;\n}\n</style>\n","import { URL_PATTERN_AUTOLINK } from './helpers.js'\n\nimport { visit, SKIP } from 'unist-util-visit'\nimport { u } from 'unist-builder'\n\nconst NcLink = {\n\tname: 'NcLink',\n\tprops: {\n\t\thref: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\trender(h) {\n\t\treturn h('a', {\n\t\t\tattrs: {\n\t\t\t\thref: this.href,\n\t\t\t\trel: 'noopener noreferrer',\n\t\t\t\ttarget: '_blank',\n\t\t\t\tclass: 'rich-text--external-link',\n\t\t\t},\n\t\t}, [this.href.trim()])\n\t},\n}\n\nexport const remarkAutolink = function({ autolink, useMarkdown, useExtendedMarkdown }) {\n\treturn function(tree) {\n\t\t// remark-gfm has its own autolink parser which can not be disabled\n\t\t// and thus a local one is not needed\n\t\tif (useExtendedMarkdown || !useMarkdown || !autolink) {\n\t\t\treturn\n\t\t}\n\n\t\tvisit(tree, (node) => node.type === 'text', (node, index, parent) => {\n\t\t\tlet parsed = parseUrl(node.value)\n\t\t\tparsed = parsed.map((n) => {\n\t\t\t\tif (typeof n === 'string') {\n\t\t\t\t\treturn u('text', n)\n\t\t\t\t}\n\n\t\t\t\treturn u('link', {\n\t\t\t\t\turl: n.props.href,\n\t\t\t\t}, [u('text', n.props.href)])\n\t\t\t}).filter((x) => x)\n\n\t\t\tparent.children.splice(index, 1, ...parsed.flat())\n\t\t\treturn [SKIP, index + parsed.flat().length]\n\t\t})\n\t}\n}\n\nexport const parseUrl = (text) => {\n\tlet match = URL_PATTERN_AUTOLINK.exec(text)\n\tconst list = []\n\tlet start = 0\n\twhile (match !== null) {\n\t\tlet href = match[2]\n\t\tlet textAfter\n\t\tlet textBefore = text.substring(start, match.index + match[1].length)\n\t\tif (href[0] === ' ') {\n\t\t\ttextBefore += href[0]\n\t\t\thref = href.substring(1).trim()\n\t\t}\n\t\tconst lastChar = href[(href.length - 1)]\n\t\tif (lastChar === '.' || lastChar === ',' || lastChar === ';' || (match[0][0] === '(' && lastChar === ')')) {\n\t\t\thref = href.substring(0, href.length - 1)\n\t\t\ttextAfter = lastChar\n\t\t}\n\t\tlist.push(textBefore)\n\t\tlist.push({ component: NcLink, props: { href } })\n\t\tif (textAfter) {\n\t\t\tlist.push(textAfter)\n\t\t}\n\t\tstart = match.index + match[0].length\n\t\tmatch = URL_PATTERN_AUTOLINK.exec(text)\n\t}\n\tlist.push(text.substring(start))\n\tconst joinedText = list.map((item) => typeof item === 'string' ? item : item.props.href).join('')\n\tif (text === joinedText) {\n\t\treturn list\n\t}\n\tconsole.error('Failed to reassemble the chunked text: ' + text)\n\treturn text\n}\n","import { parseUrl } from './autolink.js'\n\nimport { visit } from 'unist-util-visit'\nimport { u } from 'unist-builder'\n\nexport const remarkPlaceholder = function() {\n\treturn function(ast) {\n\t\tvisit(ast, (node) => node.type === 'text', visitor)\n\n\t\t/**\n\t\t *\n\t\t * @param {object} node The node\n\t\t * @param {number} index The index of the node\n\t\t * @param {object} parent The parent node\n\t\t */\n\t\tfunction visitor(node, index, parent) {\n\t\t\tconst placeholders = node.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig)\n\t\t\t\t.map((entry, index, list) => {\n\t\t\t\t\tconst matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i)\n\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\treturn u('text', entry)\n\t\t\t\t\t}\n\t\t\t\t\tconst [, component] = matches\n\t\t\t\t\treturn u('element', {\n\t\t\t\t\t\ttagName: `#${component}`,\n\t\t\t\t\t})\n\t\t\t\t})\n\n\t\t\tparent.children.splice(index, 1, ...placeholders)\n\t\t}\n\t}\n}\n\nexport const prepareTextNode = ({ h, context }, text) => {\n\tif (context.autolink) {\n\t\ttext = parseUrl(text)\n\t}\n\tif (Array.isArray(text)) {\n\t\treturn text.map((entry) => {\n\t\t\tif (typeof entry === 'string') {\n\t\t\t\treturn entry\n\t\t\t}\n\t\t\tconst { component, props } = entry\n\t\t\t// do not override class of NcLink\n\t\t\tconst componentClass = component.name === 'NcLink' ? undefined : 'rich-text--component'\n\t\t\treturn h(component, {\n\t\t\t\tprops,\n\t\t\t\tclass: componentClass,\n\t\t\t})\n\t\t})\n\t}\n\treturn text\n}\n","<!--\n - @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n - @author Guido Krömer <mail@cacodaemon.de>\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<docs>\n### General description\n\nThis component displays rich text with optional autolink or [Markdown support](https://www.markdownguide.org/basic-syntax/).\n\n```vue\n<template>\n\t<div>\n\t\t<textarea v-model=\"text\" />\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"autolink\" type=\"checkbox\">Autolink</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"useMarkdown\" type=\"checkbox\">Use Markdown</NcCheckboxRadioSwitch>\n\n\t\t<NcRichText\n\t\t\t:class=\"{'plain-text': !useMarkdown }\"\n\t\t\t:text=\"text\" :autolink=\"autolink\" :arguments=\"args\"\n\t\t\t:use-markdown=\"useMarkdown\" />\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttext: `## Hello everyone 🎉\nThe file {file} was added by {username}. Visit https://nextcloud.com to check it!\n\nSome examples for markdown syntax:\n1. **bold text**\n2. _italic text_\n3. example of \\`inline code\\`\n\n> blockquote example\n`,\n\t\t\tautolink: true,\n\t\t\tuseMarkdown: true,\n\t\t\targs: {\n\t\t\t\tfile: 'MyDocument.odt',\n\t\t\t\tusername: {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Jane Doe'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t},\n}\n</script>\n<style lang=\"scss\">\ntextarea {\n\twidth: 100%;\n\theight: 200px;\n}\n\n.plain-text {\n\twhite-space: pre-line;\n}\n</style>\n```\n\n### Flavored Markdown\n\nThis component can support [Github Flavored Markdown](https://github.github.com/gfm/).\nIt adds such elements, as tables, task lists, strikethrough, and supports autolinks by default\n\nIt is also possible to make a rendered content interactive and listen for events\n\n```vue\n<template>\n\t<div>\n\t\t<textarea v-model=\"text\" />\n\n\t\t<NcRichText :text=\"text\"\n\t\t\t:use-extended-markdown=\"true\"\n\t\t\t:interactive=\"true\"\n\t\t\t@interact:todo=\"handleInteraction\"/>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttext: `## Try flavored markdown right now!\n\n~~strikethrough~~\n\n- [ ] task to be done\n- [x] task completed\n\nTable header | Column A | Column B\n-- | -- | --\nTable row | value A | value B\n`,\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\thandleInteraction(event) {\n\t\t\t\tconst uncheckedItem = '- [ ] ' + event.label + '\\n'\n\t\t\t\tconst checkedItem = '- [x] ' + event.label + '\\n'\n\n\t\t\t\tthis.text = event.value\n\t\t\t\t\t? this.text.replace(uncheckedItem, checkedItem)\n\t\t\t\t\t: this.text.replace(checkedItem, uncheckedItem)\n\t\t\t},\n\t\t},\n\t}\n</script>\n<style lang=\"scss\">\ntextarea {\n\twidth: 100%;\n\theight: 200px;\n}\n</style>\n```\n\n### Usage with NcRichContenteditable\n\nSee [NcRichContenteditable](#/Components/NcRichContenteditable) documentation for more information\n\n```vue\n<template>\n\t<div>\n\t\t<NcRichContenteditable :value.sync=\"message\"\n\t\t\t:auto-complete=\"autoComplete\"\n\t\t\t:maxlength=\"100\"\n\t\t\t:user-data=\"userData\"\n\t\t\tplaceholder=\"Try mentioning user @Test01 or inserting emoji :smile\"\n\t\t\t@submit=\"onSubmit\" />\n\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"autolink\" type=\"checkbox\">Autolink</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"useMarkdown\" type=\"checkbox\">Use Markdown</NcCheckboxRadioSwitch>\n\n\t\t<NcRichText :text=\"text\"\n\t\t\t:autolink=\"autolink\"\n\t\t\t:arguments=\"userMentions\"\n\t\t\t:use-markdown=\"useMarkdown\" />\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tmessage: '',\n\t\t\t\tautolink: true,\n\t\t\t\tuseMarkdown: true,\n\t\t\t\tuserData: {\n\t\t\t\t\tTest01: {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test01',\n\t\t\t\t\t\ttitle: 'Test01',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tprimary: true,\n\t\t\t\t\t},\n\t\t\t\t\tTest02: {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test02',\n\t\t\t\t\t\ttitle: 'Test02',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\t\ticon: '🎡',\n\t\t\t\t\t\t\tmessage: 'Visiting London',\n\t\t\t\t\t\t\tstatus: 'away',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubline: 'Visiting London',\n\t\t\t\t\t},\n\t\t\t\t\t'Test@User': {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test@User',\n\t\t\t\t\t\ttitle: 'Test 03',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\t\ticon: '🎡',\n\t\t\t\t\t\t\tmessage: 'Having space in my name',\n\t\t\t\t\t\t\tstatus: 'online',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubline: 'Visiting London',\n\t\t\t\t\t},\n\t\t\t\t\t'Test Offline': {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test Offline',\n\t\t\t\t\t\ttitle: 'Test Offline',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\t\tmessage: null,\n\t\t\t\t\t\t\tstatus: 'offline',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubline: null,\n\t\t\t\t\t},\n\t\t\t\t\t'Test DND': {\n\t\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\t\tid: 'Test DND',\n\t\t\t\t\t\ttitle: 'Test DND',\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t\tstatus: {\n\t\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\t\tmessage: 'Out sick',\n\t\t\t\t\t\t\tstatus: 'dnd',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsubline: 'Out sick',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tuserMentions: {\n\t\t\t\t\t'user-1': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test01',\n\t\t\t\t\t\t\tuser: 'Test01',\n\t\t\t\t\t\t\tprimary: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'user-2': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test02',\n\t\t\t\t\t\t\tuser: 'Test02',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'user-3': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test 03',\n\t\t\t\t\t\t\tuser: 'Test@User',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'user-4': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test Offline',\n\t\t\t\t\t\t\tuser: 'Test Offline',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t'user-5': {\n\t\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tdisplayName: 'Test DND',\n\t\t\t\t\t\t\tuser: 'Test DND',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t\tcomputed: {\n\t\t\ttext() {\n\t\t\t\treturn this.message\n\t\t\t\t\t\t.replace('@Test01', '{user-1}')\n\t\t\t\t\t\t.replace('@Test02', '{user-2}')\n\t\t\t\t\t\t.replace('@Test@User', '{user-3}')\n\t\t\t\t\t\t.replace('@\"Test Offline\"', '{user-4}')\n\t\t\t\t\t\t.replace('@\"Test DND\"', '{user-5}')\n\t\t\t},\n\t\t},\n\t\tmethods: {\n\t\t\tautoComplete(search, callback) {\n\t\t\t\tcallback(Object.values(this.userData))\n\t\t\t},\n\t\t\tonSubmit() {\n\t\t\t\talert(this.message)\n\t\t\t}\n\t\t}\n\t}\n</script>\n```\n</docs>\n\n<script>\nimport NcReferenceList from './NcReferenceList.vue'\nimport NcCheckboxRadioSwitch from '../NcCheckboxRadioSwitch/NcCheckboxRadioSwitch.vue'\nimport { remarkAutolink } from './autolink.js'\nimport { remarkPlaceholder, prepareTextNode } from './placeholder.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nimport { unified } from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkGfm from 'remark-gfm'\nimport breaks from 'remark-breaks'\nimport remark2rehype from 'remark-rehype'\nimport rehype2react from 'rehype-react'\nimport rehypeExternalLinks from 'rehype-external-links'\n\nexport default {\n\tname: 'NcRichText',\n\tcomponents: {\n\t\tNcReferenceList,\n\t},\n\tprops: {\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\targuments: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {\n\t\t\t\treturn {}\n\t\t\t},\n\t\t},\n\t\treferenceLimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t\t/** Provide data upfront to avoid extra http request */\n\t\treferences: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\t\tmarkdownCssClasses: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {\n\t\t\t\treturn {\n\t\t\t\t\ta: 'rich-text--external-link',\n\t\t\t\t\tol: 'rich-text--ordered-list',\n\t\t\t\t\tul: 'rich-text--un-ordered-list',\n\t\t\t\t\tli: 'rich-text--list-item',\n\t\t\t\t\tstrong: 'rich-text--strong',\n\t\t\t\t\tem: 'rich-text--italic',\n\t\t\t\t\th1: 'rich-text--heading rich-text--heading-1',\n\t\t\t\t\th2: 'rich-text--heading rich-text--heading-2',\n\t\t\t\t\th3: 'rich-text--heading rich-text--heading-3',\n\t\t\t\t\th4: 'rich-text--heading rich-text--heading-4',\n\t\t\t\t\th5: 'rich-text--heading rich-text--heading-5',\n\t\t\t\t\th6: 'rich-text--heading rich-text--heading-6',\n\t\t\t\t\thr: 'rich-text--hr',\n\t\t\t\t\ttable: 'rich-text--table',\n\t\t\t\t\tpre: 'rich-text--pre',\n\t\t\t\t\tcode: 'rich-text--code',\n\t\t\t\t\tblockquote: 'rich-text--blockquote',\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tuseMarkdown: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** Provide GitHub Flavored Markdown syntax */\n\t\tuseExtendedMarkdown: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** Provide event from rendered markdown inputs */\n\t\tinteractive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tautolink: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\temits: ['interact:todo'],\n\tmethods: {\n\t\trenderPlaintext(h) {\n\t\t\tconst context = this\n\t\t\tconst placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map(function(entry, index, list) {\n\t\t\t\tconst matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i)\n\t\t\t\t// just return plain string nodes as text\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn prepareTextNode({ h, context }, entry)\n\t\t\t\t}\n\t\t\t\t// return component instance if argument is an object\n\t\t\t\tconst argumentId = matches[1]\n\t\t\t\tconst argument = context.arguments[argumentId]\n\t\t\t\tif (typeof argument === 'object') {\n\t\t\t\t\tconst { component, props } = argument\n\t\t\t\t\treturn h(component, {\n\t\t\t\t\t\tprops,\n\t\t\t\t\t\tclass: 'rich-text--component',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (argument) {\n\t\t\t\t\treturn h('span', { class: 'rich-text--fallback' }, argument)\n\t\t\t\t}\n\t\t\t\treturn entry\n\t\t\t})\n\t\t\treturn h('div', { class: 'rich-text--wrapper' }, [\n\t\t\t\th('div', {}, placeholders.flat()),\n\t\t\t\tthis.referenceLimit > 0\n\t\t\t\t\t? h('div', { class: 'rich-text--reference-widget' }, [\n\t\t\t\t\t\th(NcReferenceList, { props: { text: this.text, referenceData: this.references } }),\n\t\t\t\t\t])\n\t\t\t\t\t: null,\n\t\t\t])\n\t\t},\n\t\trenderMarkdown(h) {\n\t\t\tconst renderedMarkdown = unified()\n\t\t\t\t.use(remarkParse)\n\t\t\t\t.use(remarkAutolink, {\n\t\t\t\t\tautolink: this.autolink,\n\t\t\t\t\tuseMarkdown: this.useMarkdown,\n\t\t\t\t\tuseExtendedMarkdown: this.useExtendedMarkdown,\n\t\t\t\t})\n\t\t\t\t.use(this.useExtendedMarkdown ? remarkGfm : undefined)\n\t\t\t\t.use(breaks)\n\t\t\t\t.use(remark2rehype, {\n\t\t\t\t\thandlers: {\n\t\t\t\t\t\tcomponent(toHast, node) {\n\t\t\t\t\t\t\treturn toHast(node, node.component, { value: node.value })\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\t// .use(rehypeAddClasses, this.markdownCssClasses)\n\t\t\t\t.use(remarkPlaceholder)\n\t\t\t\t.use(rehypeExternalLinks, {\n\t\t\t\t\ttarget: '_blank',\n\t\t\t\t\trel: ['noopener noreferrer'],\n\t\t\t\t})\n\t\t\t\t.use(rehype2react, {\n\t\t\t\t\tcreateElement: (tag, attrs, children) => {\n\t\t\t\t\t\t// unescape special symbol \"<\" for simple text nodes\n\t\t\t\t\t\tchildren = children?.map(child => typeof child === 'string'\n\t\t\t\t\t\t\t? child.replace(/&lt;/gmi, '<')\n\t\t\t\t\t\t\t: child,\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\tif (!tag.startsWith('#')) {\n\t\t\t\t\t\t\tif (this.useExtendedMarkdown) {\n\t\t\t\t\t\t\t\tif (tag === 'li' && Array.isArray(children)\n\t\t\t\t\t\t\t\t\t&& children[0].tag === 'input'\n\t\t\t\t\t\t\t\t\t&& children[0].data.attrs.type === 'checkbox') {\n\t\t\t\t\t\t\t\t\tconst [inputNode, , label] = children\n\t\t\t\t\t\t\t\t\tconst id = 'markdown-input-' + GenRandomId(5)\n\t\t\t\t\t\t\t\t\tconst inputComponent = h(NcCheckboxRadioSwitch, {\n\t\t\t\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\t\t\t\t...inputNode.data.attrs,\n\t\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t\tdisabled: !this.interactive,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\t\t\t\t'update:checked': (value) => {\n\t\t\t\t\t\t\t\t\t\t\t\tthis.$emit('interact:todo', { id, label, value })\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}, [label])\n\t\t\t\t\t\t\t\t\treturn h(tag, attrs, [inputComponent])\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn h(tag, attrs, children)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst placeholder = this.arguments[tag.slice(1)]\n\t\t\t\t\t\tif (!placeholder) {\n\t\t\t\t\t\t\treturn h('span', { ...{ attrs }, ...{ class: 'rich-text--fallback' } }, [`{${tag.slice(1)}}`])\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!placeholder.component) {\n\t\t\t\t\t\t\treturn h('span', attrs, [placeholder])\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn h(\n\t\t\t\t\t\t\tplaceholder.component,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tattrs,\n\t\t\t\t\t\t\t\tprops: placeholder.props,\n\t\t\t\t\t\t\t\tclass: 'rich-text--component',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren,\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t\tprefix: false,\n\t\t\t\t})\n\t\t\t\t.processSync(this.text\n\t\t\t\t\t// escape special symbol \"<\" to not treat text as HTML\n\t\t\t\t\t.replace(/</gmi, '&lt;')\n\t\t\t\t\t// unescape special symbol \">\" to parse blockquotes\n\t\t\t\t\t.replace(/&gt;/gmi, '>'),\n\t\t\t\t)\n\t\t\t\t.result\n\n\t\t\treturn h('div', { class: 'rich-text--wrapper rich-text--wrapper-markdown' }, [\n\t\t\t\trenderedMarkdown,\n\t\t\t\tthis.referenceLimit > 0\n\t\t\t\t\t? h('div', { class: 'rich-text--reference-widget' }, [\n\t\t\t\t\t\th(NcReferenceList, { props: { text: this.text, referenceData: this.references } }),\n\t\t\t\t\t])\n\t\t\t\t\t: null,\n\t\t\t])\n\t\t},\n\t},\n\trender(h) {\n\t\treturn this.useMarkdown || this.useExtendedMarkdown\n\t\t\t? this.renderMarkdown(h)\n\t\t\t: this.renderPlaintext(h)\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n/* stylelint-disable-next-line scss/at-import-partial-extension */\n@import './richtext.scss';\n\na:not(.rich-text--component) {\n\ttext-decoration: underline;\n}\n</style>\n"],"names":["URL_PATTERN","URL_PATTERN_AUTOLINK","_sfc_main","NcReferenceWidget","reference","response","error","match","axios","generateOcsUrl","NcLink","h","remarkAutolink","autolink","useMarkdown","useExtendedMarkdown","tree","visit","node","index","parent","parsed","parseUrl","n","u","x","SKIP","text","list","start","href","textAfter","textBefore","lastChar","joinedText","item","remarkPlaceholder","ast","visitor","placeholders","entry","matches","component","prepareTextNode","context","props","componentClass","NcReferenceList","argumentId","argument","renderedMarkdown","unified","remarkParse","remarkGfm","breaks","remark2rehype","toHast","rehypeExternalLinks","rehype2react","tag","attrs","children","child","inputNode","label","id","GenRandomId","inputComponent","NcCheckboxRadioSwitch","value","placeholder"],"mappings":"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"}