@nextcloud/vue 8.23.1 → 8.25.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 (688) hide show
  1. package/CHANGELOG.md +297 -201
  2. package/README.md +8 -4
  3. package/dist/Components/NcActionButton.cjs +2 -1
  4. package/dist/Components/NcActionButton.mjs +2 -1
  5. package/dist/Components/NcActionButtonGroup.cjs +2 -1
  6. package/dist/Components/NcActionButtonGroup.mjs +2 -1
  7. package/dist/Components/NcActionCaption.cjs +1 -0
  8. package/dist/Components/NcActionCaption.mjs +1 -0
  9. package/dist/Components/NcActionCheckbox.cjs +2 -1
  10. package/dist/Components/NcActionCheckbox.mjs +2 -1
  11. package/dist/Components/NcActionInput.cjs +2 -1
  12. package/dist/Components/NcActionInput.mjs +2 -1
  13. package/dist/Components/NcActionLink.cjs +2 -1
  14. package/dist/Components/NcActionLink.mjs +2 -1
  15. package/dist/Components/NcActionRadio.cjs +2 -1
  16. package/dist/Components/NcActionRadio.mjs +2 -1
  17. package/dist/Components/NcActionRouter.cjs +2 -1
  18. package/dist/Components/NcActionRouter.mjs +2 -1
  19. package/dist/Components/NcActionSeparator.cjs +1 -0
  20. package/dist/Components/NcActionSeparator.mjs +1 -0
  21. package/dist/Components/NcActionText.cjs +2 -1
  22. package/dist/Components/NcActionText.mjs +2 -1
  23. package/dist/Components/NcActionTextEditable.cjs +2 -1
  24. package/dist/Components/NcActionTextEditable.mjs +2 -1
  25. package/dist/Components/NcActions.cjs +2 -1
  26. package/dist/Components/NcActions.mjs +2 -1
  27. package/dist/Components/NcAppContent.cjs +2 -1
  28. package/dist/Components/NcAppContent.mjs +2 -1
  29. package/dist/Components/NcAppContentDetails.cjs +1 -0
  30. package/dist/Components/NcAppContentDetails.mjs +1 -0
  31. package/dist/Components/NcAppContentList.cjs +1 -0
  32. package/dist/Components/NcAppContentList.mjs +1 -0
  33. package/dist/Components/NcAppNavigation.cjs +2 -1
  34. package/dist/Components/NcAppNavigation.mjs +2 -1
  35. package/dist/Components/NcAppNavigationCaption.cjs +2 -1
  36. package/dist/Components/NcAppNavigationCaption.mjs +2 -1
  37. package/dist/Components/NcAppNavigationIconBullet.cjs +1 -0
  38. package/dist/Components/NcAppNavigationIconBullet.mjs +1 -0
  39. package/dist/Components/NcAppNavigationItem.cjs +2 -1
  40. package/dist/Components/NcAppNavigationItem.mjs +2 -1
  41. package/dist/Components/NcAppNavigationList.cjs +1 -0
  42. package/dist/Components/NcAppNavigationList.mjs +1 -0
  43. package/dist/Components/NcAppNavigationNew.cjs +18 -3
  44. package/dist/Components/NcAppNavigationNew.cjs.map +1 -1
  45. package/dist/Components/NcAppNavigationNew.mjs +18 -3
  46. package/dist/Components/NcAppNavigationNew.mjs.map +1 -1
  47. package/dist/Components/NcAppNavigationNewItem.cjs +2 -1
  48. package/dist/Components/NcAppNavigationNewItem.mjs +2 -1
  49. package/dist/Components/NcAppNavigationSearch.cjs +2 -1
  50. package/dist/Components/NcAppNavigationSearch.mjs +2 -1
  51. package/dist/Components/NcAppNavigationSettings.cjs +2 -1
  52. package/dist/Components/NcAppNavigationSettings.mjs +2 -1
  53. package/dist/Components/NcAppNavigationSpacer.cjs +1 -0
  54. package/dist/Components/NcAppNavigationSpacer.mjs +1 -0
  55. package/dist/Components/NcAppNavigationToggle.cjs +2 -1
  56. package/dist/Components/NcAppNavigationToggle.mjs +2 -1
  57. package/dist/Components/NcAppSettingsDialog.cjs +2 -1
  58. package/dist/Components/NcAppSettingsDialog.mjs +2 -1
  59. package/dist/Components/NcAppSettingsSection.cjs +1 -0
  60. package/dist/Components/NcAppSettingsSection.mjs +1 -0
  61. package/dist/Components/NcAppSidebar.cjs +2 -1
  62. package/dist/Components/NcAppSidebar.mjs +2 -1
  63. package/dist/Components/NcAppSidebarTab.cjs +1 -0
  64. package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
  65. package/dist/Components/NcAppSidebarTab.mjs +1 -0
  66. package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
  67. package/dist/Components/NcAvatar.cjs +2 -1
  68. package/dist/Components/NcAvatar.mjs +2 -1
  69. package/dist/Components/NcBlurHash.cjs +4 -0
  70. package/dist/Components/NcBlurHash.cjs.map +1 -0
  71. package/dist/Components/NcBlurHash.mjs +5 -0
  72. package/dist/Components/NcBlurHash.mjs.map +1 -0
  73. package/dist/Components/NcBreadcrumb.cjs +2 -1
  74. package/dist/Components/NcBreadcrumb.mjs +2 -1
  75. package/dist/Components/NcBreadcrumbs.cjs +2 -1
  76. package/dist/Components/NcBreadcrumbs.mjs +2 -1
  77. package/dist/Components/NcButton.cjs +52 -10
  78. package/dist/Components/NcButton.cjs.map +1 -1
  79. package/dist/Components/NcButton.mjs +52 -10
  80. package/dist/Components/NcButton.mjs.map +1 -1
  81. package/dist/Components/NcCheckboxRadioSwitch.cjs +2 -1
  82. package/dist/Components/NcCheckboxRadioSwitch.mjs +2 -1
  83. package/dist/Components/NcChip.cjs +27 -12
  84. package/dist/Components/NcChip.cjs.map +1 -1
  85. package/dist/Components/NcChip.mjs +27 -12
  86. package/dist/Components/NcChip.mjs.map +1 -1
  87. package/dist/Components/NcCollectionList.cjs +2 -1
  88. package/dist/Components/NcCollectionList.mjs +2 -1
  89. package/dist/Components/NcColorPicker.cjs +2 -1
  90. package/dist/Components/NcColorPicker.mjs +2 -1
  91. package/dist/Components/NcContent.cjs +2 -1
  92. package/dist/Components/NcContent.mjs +2 -1
  93. package/dist/Components/NcCounterBubble.cjs +1 -0
  94. package/dist/Components/NcCounterBubble.mjs +1 -0
  95. package/dist/Components/NcDashboardWidget.cjs +2 -1
  96. package/dist/Components/NcDashboardWidget.mjs +2 -1
  97. package/dist/Components/NcDashboardWidgetItem.cjs +2 -1
  98. package/dist/Components/NcDashboardWidgetItem.mjs +2 -1
  99. package/dist/Components/NcDateTime.cjs +2 -1
  100. package/dist/Components/NcDateTime.mjs +2 -1
  101. package/dist/Components/NcDateTimePicker.cjs +48 -21
  102. package/dist/Components/NcDateTimePicker.cjs.map +1 -1
  103. package/dist/Components/NcDateTimePicker.mjs +49 -22
  104. package/dist/Components/NcDateTimePicker.mjs.map +1 -1
  105. package/dist/Components/NcDateTimePickerNative.cjs +2 -1
  106. package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
  107. package/dist/Components/NcDateTimePickerNative.mjs +2 -1
  108. package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
  109. package/dist/Components/NcDialog.cjs +2 -1
  110. package/dist/Components/NcDialog.mjs +2 -1
  111. package/dist/Components/NcDialogButton.cjs +2 -1
  112. package/dist/Components/NcDialogButton.mjs +2 -1
  113. package/dist/Components/NcEllipsisedOption.cjs +1 -0
  114. package/dist/Components/NcEllipsisedOption.cjs.map +1 -1
  115. package/dist/Components/NcEllipsisedOption.mjs +1 -0
  116. package/dist/Components/NcEmojiPicker.cjs +2 -1
  117. package/dist/Components/NcEmojiPicker.mjs +2 -1
  118. package/dist/Components/NcEmptyContent.cjs +3 -2
  119. package/dist/Components/NcEmptyContent.cjs.map +1 -1
  120. package/dist/Components/NcEmptyContent.mjs +3 -2
  121. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  122. package/dist/Components/NcGuestContent.cjs +1 -0
  123. package/dist/Components/NcGuestContent.mjs +1 -0
  124. package/dist/Components/NcHeaderButton.cjs +4 -3
  125. package/dist/Components/NcHeaderButton.cjs.map +1 -1
  126. package/dist/Components/NcHeaderButton.mjs +4 -3
  127. package/dist/Components/NcHeaderButton.mjs.map +1 -1
  128. package/dist/Components/NcHeaderMenu.cjs +2 -1
  129. package/dist/Components/NcHeaderMenu.mjs +2 -1
  130. package/dist/Components/NcHighlight.cjs +1 -0
  131. package/dist/Components/NcHighlight.mjs +1 -0
  132. package/dist/Components/NcIconSvgWrapper.cjs +2 -1
  133. package/dist/Components/NcIconSvgWrapper.mjs +2 -1
  134. package/dist/Components/NcInputField.cjs +2 -1
  135. package/dist/Components/NcInputField.mjs +2 -1
  136. package/dist/Components/NcListItem.cjs +2 -1
  137. package/dist/Components/NcListItem.mjs +2 -1
  138. package/dist/Components/NcListItemIcon.cjs +2 -1
  139. package/dist/Components/NcListItemIcon.mjs +2 -1
  140. package/dist/Components/NcLoadingIcon.cjs +1 -0
  141. package/dist/Components/NcLoadingIcon.mjs +1 -0
  142. package/dist/Components/NcModal.cjs +38 -27
  143. package/dist/Components/NcModal.cjs.map +1 -1
  144. package/dist/Components/NcModal.mjs +38 -27
  145. package/dist/Components/NcModal.mjs.map +1 -1
  146. package/dist/Components/NcNoteCard.cjs +1 -0
  147. package/dist/Components/NcNoteCard.mjs +1 -0
  148. package/dist/Components/NcPasswordField.cjs +2 -1
  149. package/dist/Components/NcPasswordField.mjs +2 -1
  150. package/dist/Components/NcPopover.cjs +2 -1
  151. package/dist/Components/NcPopover.mjs +2 -1
  152. package/dist/Components/NcProgressBar.cjs +1 -0
  153. package/dist/Components/NcProgressBar.mjs +1 -0
  154. package/dist/Components/NcRelatedResourcesPanel.cjs +2 -1
  155. package/dist/Components/NcRelatedResourcesPanel.mjs +2 -1
  156. package/dist/Components/NcRichContenteditable.cjs +2 -1
  157. package/dist/Components/NcRichContenteditable.mjs +2 -1
  158. package/dist/Components/NcRichText.cjs +3 -2
  159. package/dist/Components/NcRichText.mjs +5 -4
  160. package/dist/Components/NcSavingIndicatorIcon.cjs +1 -0
  161. package/dist/Components/NcSavingIndicatorIcon.mjs +1 -0
  162. package/dist/Components/NcSelect.cjs +2 -1
  163. package/dist/Components/NcSelect.mjs +2 -1
  164. package/dist/Components/NcSelectTags.cjs +2 -1
  165. package/dist/Components/NcSelectTags.mjs +2 -1
  166. package/dist/Components/NcSelectUsers.cjs +4 -0
  167. package/dist/Components/NcSelectUsers.cjs.map +1 -0
  168. package/dist/Components/NcSelectUsers.mjs +5 -0
  169. package/dist/Components/NcSelectUsers.mjs.map +1 -0
  170. package/dist/Components/NcSettingsInputText.cjs +2 -1
  171. package/dist/Components/NcSettingsInputText.mjs +2 -1
  172. package/dist/Components/NcSettingsSection.cjs +2 -1
  173. package/dist/Components/NcSettingsSection.mjs +2 -1
  174. package/dist/Components/NcSettingsSelectGroup.cjs +2 -1
  175. package/dist/Components/NcSettingsSelectGroup.mjs +2 -1
  176. package/dist/Components/NcTextArea.cjs +1 -0
  177. package/dist/Components/NcTextArea.mjs +1 -0
  178. package/dist/Components/NcTextField.cjs +2 -1
  179. package/dist/Components/NcTextField.mjs +2 -1
  180. package/dist/Components/NcTimezonePicker.cjs +2 -1
  181. package/dist/Components/NcTimezonePicker.mjs +2 -1
  182. package/dist/Components/NcUserBubble.cjs +2 -1
  183. package/dist/Components/NcUserBubble.mjs +2 -1
  184. package/dist/Components/NcUserStatusIcon.cjs +2 -1
  185. package/dist/Components/NcUserStatusIcon.mjs +2 -1
  186. package/dist/Components/NcVNodes.cjs +1 -0
  187. package/dist/Components/NcVNodes.mjs +1 -0
  188. package/dist/Composables/useHotKey.cjs +1 -0
  189. package/dist/Composables/useHotKey.cjs.map +1 -1
  190. package/dist/Composables/useHotKey.mjs +1 -0
  191. package/dist/Composables/useHotKey.mjs.map +1 -1
  192. package/dist/Composables/useIsDarkTheme.cjs +1 -0
  193. package/dist/Composables/useIsDarkTheme.cjs.map +1 -1
  194. package/dist/Composables/useIsDarkTheme.mjs +1 -0
  195. package/dist/Composables/useIsDarkTheme.mjs.map +1 -1
  196. package/dist/Composables/useIsFullscreen.cjs +1 -0
  197. package/dist/Composables/useIsFullscreen.cjs.map +1 -1
  198. package/dist/Composables/useIsFullscreen.mjs +1 -0
  199. package/dist/Composables/useIsFullscreen.mjs.map +1 -1
  200. package/dist/Composables/useIsMobile.cjs +1 -0
  201. package/dist/Composables/useIsMobile.cjs.map +1 -1
  202. package/dist/Composables/useIsMobile.mjs +1 -0
  203. package/dist/Composables/useIsMobile.mjs.map +1 -1
  204. package/dist/Directives/Focus.cjs +1 -0
  205. package/dist/Directives/Focus.cjs.map +1 -1
  206. package/dist/Directives/Focus.mjs +1 -0
  207. package/dist/Directives/Focus.mjs.map +1 -1
  208. package/dist/Directives/Linkify.cjs +1 -0
  209. package/dist/Directives/Linkify.cjs.map +1 -1
  210. package/dist/Directives/Linkify.mjs +1 -0
  211. package/dist/Directives/Linkify.mjs.map +1 -1
  212. package/dist/Directives/Tooltip.cjs +2 -1
  213. package/dist/Directives/Tooltip.cjs.map +1 -1
  214. package/dist/Directives/Tooltip.mjs +5 -4
  215. package/dist/Directives/Tooltip.mjs.map +1 -1
  216. package/dist/Functions/a11y.cjs +1 -0
  217. package/dist/Functions/a11y.cjs.map +1 -1
  218. package/dist/Functions/a11y.mjs +1 -0
  219. package/dist/Functions/a11y.mjs.map +1 -1
  220. package/dist/Functions/contactsMenu.cjs +1 -0
  221. package/dist/Functions/contactsMenu.cjs.map +1 -1
  222. package/dist/Functions/contactsMenu.mjs +1 -0
  223. package/dist/Functions/contactsMenu.mjs.map +1 -1
  224. package/dist/Functions/dialog.cjs +1 -0
  225. package/dist/Functions/dialog.cjs.map +1 -1
  226. package/dist/Functions/dialog.mjs +1 -0
  227. package/dist/Functions/dialog.mjs.map +1 -1
  228. package/dist/Functions/emoji.cjs +1 -0
  229. package/dist/Functions/emoji.mjs +1 -0
  230. package/dist/Functions/isDarkTheme.cjs +1 -0
  231. package/dist/Functions/isDarkTheme.cjs.map +1 -1
  232. package/dist/Functions/isDarkTheme.mjs +1 -0
  233. package/dist/Functions/isDarkTheme.mjs.map +1 -1
  234. package/dist/Functions/preloadImage.cjs +19 -0
  235. package/dist/Functions/preloadImage.cjs.map +1 -0
  236. package/dist/Functions/preloadImage.mjs +17 -0
  237. package/dist/Functions/preloadImage.mjs.map +1 -0
  238. package/dist/Functions/reference.cjs +2 -1
  239. package/dist/Functions/reference.mjs +3 -2
  240. package/dist/Functions/registerReference.cjs +1 -0
  241. package/dist/Functions/registerReference.mjs +3 -2
  242. package/dist/Functions/usernameToColor.cjs +2 -1
  243. package/dist/Functions/usernameToColor.mjs +2 -1
  244. package/dist/Mixins/clickOutsideOptions.cjs +1 -0
  245. package/dist/Mixins/clickOutsideOptions.cjs.map +1 -1
  246. package/dist/Mixins/clickOutsideOptions.mjs +1 -0
  247. package/dist/Mixins/clickOutsideOptions.mjs.map +1 -1
  248. package/dist/Mixins/isFullscreen.cjs +1 -0
  249. package/dist/Mixins/isFullscreen.cjs.map +1 -1
  250. package/dist/Mixins/isFullscreen.mjs +1 -0
  251. package/dist/Mixins/isMobile.cjs +1 -0
  252. package/dist/Mixins/isMobile.cjs.map +1 -1
  253. package/dist/Mixins/isMobile.mjs +1 -0
  254. package/dist/Mixins/richEditor.cjs +1 -0
  255. package/dist/Mixins/richEditor.mjs +1 -0
  256. package/dist/assets/{NcActionButton-BYN2SUN0.css → NcActionButton-BqMeBMdA.css} +17 -16
  257. package/dist/assets/{NcActionCheckbox-Dan0EvGm.css → NcActionCheckbox-BlyPt7DF.css} +1 -0
  258. package/dist/assets/{NcActionInput-Dz21fyVD.css → NcActionInput-gUagFGC5.css} +2 -0
  259. package/dist/assets/{NcActionLink-BG9B9dP4.css → NcActionLink-DA3ebr8W.css} +1 -0
  260. package/dist/assets/{NcActionRadio-C87waXE-.css → NcActionRadio-CodyhP86.css} +1 -0
  261. package/dist/assets/{NcActionRouter-BAGuUfFu.css → NcActionRouter-DlqXQ6ai.css} +1 -0
  262. package/dist/assets/{NcActionText-Cjp26Bn0.css → NcActionText-Cvug6qMa.css} +1 -0
  263. package/dist/assets/{NcActionTextEditable-1TXeJ5zp.css → NcActionTextEditable-CasTVqIo.css} +62 -60
  264. package/dist/assets/{NcActions-C4SuFczn.css → NcActions-3STB3u9J.css} +11 -11
  265. package/dist/assets/{NcAppContent-BO0ksFwD.css → NcAppContent-DswTJB9n.css} +23 -23
  266. package/dist/assets/{NcAppNavigation-CJj8AvqM.css → NcAppNavigation-DfTQlVGB.css} +12 -12
  267. package/dist/assets/{NcAppNavigationItem-lh9Say1M.css → NcAppNavigationItem-CdT6ce8-.css} +11 -4
  268. package/dist/assets/{NcAppNavigationNew-BcDuupzO.css → NcAppNavigationNew-Dbo2rvXH.css} +3 -3
  269. package/dist/assets/{NcAppNavigationNewItem-fUP3wQTQ.css → NcAppNavigationNewItem-D7wroqrc.css} +7 -0
  270. package/dist/assets/{NcAppNavigationSearch-Df50ss_2.css → NcAppNavigationSearch-CFtTLRbc.css} +6 -6
  271. package/dist/assets/{NcAppNavigationToggle-B6FCDJp7.css → NcAppNavigationToggle-C5IMygw1.css} +3 -3
  272. package/dist/assets/{NcAppSidebar-BntAj6H-.css → NcAppSidebar-Dun97zcC.css} +43 -43
  273. package/dist/assets/{NcAvatar-CcJlFpcI.css → NcAvatar-BvPk6o_F.css} +24 -24
  274. package/dist/assets/NcBlurHash-7aGtE-_T.css +8 -0
  275. package/dist/assets/{NcBreadcrumb-Cjcyeimd.css → NcBreadcrumb-DqaFt2qu.css} +15 -15
  276. package/dist/assets/{NcButton-CfOAX-eQ.css → NcButton-DnNZaEy_.css} +47 -47
  277. package/dist/assets/{NcCheckboxRadioSwitch-DuFrRU9C.css → NcCheckboxRadioSwitch-DlEieXCj.css} +41 -41
  278. package/dist/assets/{NcChip-CIvAlds6.css → NcChip-BNLuZgd6.css} +9 -9
  279. package/dist/assets/{NcColorPicker-C1DuuANb.css → NcColorPicker-BayJGD4p.css} +28 -30
  280. package/dist/assets/{NcContent-CZamE_IP.css → NcContent-Bq-7EZQc.css} +9 -9
  281. package/dist/assets/{NcDateTimePicker-BtV9Fz-n.css → NcDateTimePicker-BY1UnUZM.css} +59 -12
  282. package/dist/assets/{NcDialog-Bzs9oxyt.css → NcDialog-BPI0CJvw.css} +15 -15
  283. package/dist/assets/{NcEmojiPicker-rk5qcSl7.css → NcEmojiPicker-Ca6U46T8.css} +19 -15
  284. package/dist/assets/{NcEmptyContent-BlXL6nnq.css → NcEmptyContent-CSsXYYcn.css} +9 -9
  285. package/dist/assets/{NcHeaderButton-BPkJ5wxD.css → NcHeaderButton-Dr6MgPDQ.css} +8 -7
  286. package/dist/assets/{NcHeaderMenu-BYjnMPPl.css → NcHeaderMenu-DN-HfTkh.css} +12 -11
  287. package/dist/assets/{NcIconSvgWrapper-BxyhLaB5.css → NcIconSvgWrapper-BiNW6Guv.css} +8 -4
  288. package/dist/assets/{NcInputConfirmCancel-EYtW7MxF.css → NcInputConfirmCancel-BanazdhC.css} +5 -5
  289. package/dist/assets/{NcInputField-CzryIHRa.css → NcInputField-GxJ-rf2p.css} +32 -32
  290. package/dist/assets/{NcListItem-GE5S37TT.css → NcListItem-DfaWGP5A.css} +44 -44
  291. package/dist/assets/{NcModal-ZfCDJxwd.css → NcModal-BS5vtogq.css} +68 -69
  292. package/dist/assets/{NcPopover-DpakVVxI.css → NcPopover-CWwUNpmE.css} +9 -9
  293. package/dist/assets/{NcRelatedResourcesPanel-DSf7TVcC.css → NcRelatedResourcesPanel-DhStLIO2.css} +21 -21
  294. package/dist/assets/{NcRichContenteditable-BV6g3dmd.css → NcRichContenteditable-CtPZudY6.css} +13 -10
  295. package/dist/assets/{NcRichText-zt8ALFHi.css → NcRichText-BwghUUnz.css} +3 -0
  296. package/dist/assets/NcSelectUsers-BoxBQpbA.css +4 -0
  297. package/dist/assets/{Tooltip-DQ4Plm4r.css → Tooltip-C-QZMStp.css} +7 -9
  298. package/dist/assets/{referencePickerModal-CTumspFH.css → referencePickerModal-Ba6soz9w.css} +8 -8
  299. package/dist/chunks/AlertCircleOutline-BrsasUsU.cjs +1 -0
  300. package/dist/chunks/AlertCircleOutline-DBxbepLy.mjs +1 -0
  301. package/dist/chunks/ArrowLeft-BP7yfzCQ.cjs +1 -0
  302. package/dist/chunks/ArrowLeft-DuT2LZOm.mjs +1 -0
  303. package/dist/chunks/ArrowRight-CY2b9hgN.mjs +1 -0
  304. package/dist/chunks/ArrowRight-DPARnmu3.cjs +1 -0
  305. package/dist/chunks/Check-BkThHPH7.mjs +1 -0
  306. package/dist/chunks/Check-Du8mPz_B.cjs +1 -0
  307. package/dist/chunks/ChevronDown-BlfyuflD.cjs +1 -0
  308. package/dist/chunks/ChevronDown-DFQfzh63.mjs +1 -0
  309. package/dist/chunks/ChevronRight-BUv-PtHh.mjs +1 -0
  310. package/dist/chunks/ChevronRight-ZCKVg9OI.cjs +1 -0
  311. package/dist/chunks/ChevronUp-Bpd__OBZ.cjs +1 -0
  312. package/dist/chunks/ChevronUp-C7Dy9Bph.mjs +1 -0
  313. package/dist/chunks/Close-BtLPUSdO.mjs +1 -0
  314. package/dist/chunks/Close-CqmXxEKi.cjs +1 -0
  315. package/dist/chunks/DotsHorizontal-BoI3vnhk.cjs +1 -0
  316. package/dist/chunks/DotsHorizontal-C6LNsw4N.mjs +1 -0
  317. package/dist/chunks/{GenColors-Di5GSft7.cjs → GenColors-7bkY5Nwl.cjs} +2 -1
  318. package/dist/chunks/{GenColors-Di5GSft7.cjs.map → GenColors-7bkY5Nwl.cjs.map} +1 -1
  319. package/dist/chunks/{GenColors-DfwXw1-o.mjs → GenColors-S7frO84b.mjs} +2 -1
  320. package/dist/chunks/{GenColors-DfwXw1-o.mjs.map → GenColors-S7frO84b.mjs.map} +1 -1
  321. package/dist/chunks/GenRandomId-BQDud3d4.cjs +1 -0
  322. package/dist/chunks/GenRandomId-BQDud3d4.cjs.map +1 -1
  323. package/dist/chunks/GenRandomId-CMooMQt0.mjs +1 -0
  324. package/dist/chunks/GenRandomId-CMooMQt0.mjs.map +1 -1
  325. package/dist/chunks/{NcActionButton-DcpUnqA7.cjs → NcActionButton-CXeEXQLT.cjs} +46 -13
  326. package/dist/chunks/NcActionButton-CXeEXQLT.cjs.map +1 -0
  327. package/dist/chunks/{NcActionButton-CEysTg4c.mjs → NcActionButton-Gpv56vuS.mjs} +46 -13
  328. package/dist/chunks/NcActionButton-Gpv56vuS.mjs.map +1 -0
  329. package/dist/chunks/{NcActionButtonGroup-x6D7S13W.cjs → NcActionButtonGroup-BMy3W9fG.cjs} +2 -1
  330. package/dist/chunks/{NcActionButtonGroup-x6D7S13W.cjs.map → NcActionButtonGroup-BMy3W9fG.cjs.map} +1 -1
  331. package/dist/chunks/{NcActionButtonGroup-3v-qy9C0.mjs → NcActionButtonGroup-BteTNhIn.mjs} +2 -1
  332. package/dist/chunks/{NcActionButtonGroup-3v-qy9C0.mjs.map → NcActionButtonGroup-BteTNhIn.mjs.map} +1 -1
  333. package/dist/chunks/{NcActionCheckbox-BnL71Qmi.mjs → NcActionCheckbox-DSMKeccY.mjs} +2 -1
  334. package/dist/chunks/{NcActionCheckbox-BnL71Qmi.mjs.map → NcActionCheckbox-DSMKeccY.mjs.map} +1 -1
  335. package/dist/chunks/{NcActionCheckbox-Dd5Y6f63.cjs → NcActionCheckbox-JX-QaTD6.cjs} +2 -1
  336. package/dist/chunks/{NcActionCheckbox-Dd5Y6f63.cjs.map → NcActionCheckbox-JX-QaTD6.cjs.map} +1 -1
  337. package/dist/chunks/{NcActionInput-VR510EDJ.cjs → NcActionInput-B-7FoLVy.cjs} +7 -6
  338. package/dist/chunks/{NcActionInput-VR510EDJ.cjs.map → NcActionInput-B-7FoLVy.cjs.map} +1 -1
  339. package/dist/chunks/{NcActionInput-BAM8T3gm.mjs → NcActionInput-D-zf_ZR9.mjs} +7 -6
  340. package/dist/chunks/{NcActionInput-BAM8T3gm.mjs.map → NcActionInput-D-zf_ZR9.mjs.map} +1 -1
  341. package/dist/chunks/{NcActionRadio-BQ0jAh5V.cjs → NcActionRadio-BUCQ6VxA.cjs} +2 -1
  342. package/dist/chunks/{NcActionRadio-BQ0jAh5V.cjs.map → NcActionRadio-BUCQ6VxA.cjs.map} +1 -1
  343. package/dist/chunks/{NcActionRadio-CCTupqRR.mjs → NcActionRadio-yAm71xxU.mjs} +2 -1
  344. package/dist/chunks/{NcActionRadio-CCTupqRR.mjs.map → NcActionRadio-yAm71xxU.mjs.map} +1 -1
  345. package/dist/chunks/{NcActionTextEditable-JRD-G0CT.mjs → NcActionTextEditable-BYqqHPj2.mjs} +6 -5
  346. package/dist/chunks/NcActionTextEditable-BYqqHPj2.mjs.map +1 -0
  347. package/dist/chunks/{NcActionTextEditable-C-ZP8_Tn.cjs → NcActionTextEditable-s1Xqpg6x.cjs} +6 -5
  348. package/dist/chunks/NcActionTextEditable-s1Xqpg6x.cjs.map +1 -0
  349. package/dist/chunks/{NcActions-D3hGxwlc.mjs → NcActions-Bkh3UMs3.mjs} +52 -53
  350. package/dist/chunks/NcActions-Bkh3UMs3.mjs.map +1 -0
  351. package/dist/chunks/{NcActions-DTICeoTz.cjs → NcActions-DFHXBqKC.cjs} +51 -52
  352. package/dist/chunks/NcActions-DFHXBqKC.cjs.map +1 -0
  353. package/dist/chunks/{NcAppContent-BOt6_YA7.cjs → NcAppContent-D__4-2XM.cjs} +60 -22
  354. package/dist/chunks/NcAppContent-D__4-2XM.cjs.map +1 -0
  355. package/dist/chunks/{NcAppContent-BKQ-H04y.mjs → NcAppContent-_x1Bvwg-.mjs} +60 -22
  356. package/dist/chunks/NcAppContent-_x1Bvwg-.mjs.map +1 -0
  357. package/dist/chunks/{NcAppNavigation-D7W-4cVo.cjs → NcAppNavigation-DBfTz6qV.cjs} +6 -5
  358. package/dist/chunks/NcAppNavigation-DBfTz6qV.cjs.map +1 -0
  359. package/dist/chunks/{NcAppNavigation-B_92V8o3.mjs → NcAppNavigation-H8Gvbq5E.mjs} +7 -6
  360. package/dist/chunks/NcAppNavigation-H8Gvbq5E.mjs.map +1 -0
  361. package/dist/chunks/{NcAppNavigationCaption-B3w692fN.mjs → NcAppNavigationCaption-Dz7wVRDM.mjs} +2 -1
  362. package/dist/chunks/{NcAppNavigationCaption-B3w692fN.mjs.map → NcAppNavigationCaption-Dz7wVRDM.mjs.map} +1 -1
  363. package/dist/chunks/{NcAppNavigationCaption-BDqTyLIj.cjs → NcAppNavigationCaption-Kjwx7t2O.cjs} +2 -1
  364. package/dist/chunks/{NcAppNavigationCaption-BDqTyLIj.cjs.map → NcAppNavigationCaption-Kjwx7t2O.cjs.map} +1 -1
  365. package/dist/chunks/{NcAppNavigationItem-DL9OwWo-.cjs → NcAppNavigationItem-CHa42b-x.cjs} +9 -8
  366. package/dist/chunks/NcAppNavigationItem-CHa42b-x.cjs.map +1 -0
  367. package/dist/chunks/{NcAppNavigationItem-CpcFOmJR.mjs → NcAppNavigationItem-Dpm3T1dA.mjs} +9 -8
  368. package/dist/chunks/NcAppNavigationItem-Dpm3T1dA.mjs.map +1 -0
  369. package/dist/chunks/{NcAppNavigationNewItem-BaKxxZqt.cjs → NcAppNavigationNewItem-BLek0JRU.cjs} +3 -2
  370. package/dist/chunks/{NcAppNavigationNewItem-BaKxxZqt.cjs.map → NcAppNavigationNewItem-BLek0JRU.cjs.map} +1 -1
  371. package/dist/chunks/{NcAppNavigationNewItem-BvQaVuL6.mjs → NcAppNavigationNewItem-DGjgp78o.mjs} +3 -2
  372. package/dist/chunks/{NcAppNavigationNewItem-BvQaVuL6.mjs.map → NcAppNavigationNewItem-DGjgp78o.mjs.map} +1 -1
  373. package/dist/chunks/{NcAppNavigationSearch-Q0eMy5I2.cjs → NcAppNavigationSearch-BblolNaS.cjs} +6 -5
  374. package/dist/chunks/NcAppNavigationSearch-BblolNaS.cjs.map +1 -0
  375. package/dist/chunks/{NcAppNavigationSearch-gytpBKme.mjs → NcAppNavigationSearch-DTW6CtnU.mjs} +6 -5
  376. package/dist/chunks/NcAppNavigationSearch-DTW6CtnU.mjs.map +1 -0
  377. package/dist/chunks/{NcAppNavigationSettings-CZFm1d-N.mjs → NcAppNavigationSettings-C0QuEMmn.mjs} +3 -2
  378. package/dist/chunks/{NcAppNavigationSettings-CZFm1d-N.mjs.map → NcAppNavigationSettings-C0QuEMmn.mjs.map} +1 -1
  379. package/dist/chunks/{NcAppNavigationSettings-CwwmvKYV.cjs → NcAppNavigationSettings-lfJvt3vG.cjs} +3 -2
  380. package/dist/chunks/{NcAppNavigationSettings-CwwmvKYV.cjs.map → NcAppNavigationSettings-lfJvt3vG.cjs.map} +1 -1
  381. package/dist/chunks/{NcAppNavigationToggle-Br1hcFGt.cjs → NcAppNavigationToggle-CUGOWggc.cjs} +5 -4
  382. package/dist/chunks/NcAppNavigationToggle-CUGOWggc.cjs.map +1 -0
  383. package/dist/chunks/{NcAppNavigationToggle-Pr8bEpDs.mjs → NcAppNavigationToggle-CjPJB2s3.mjs} +5 -4
  384. package/dist/chunks/NcAppNavigationToggle-CjPJB2s3.mjs.map +1 -0
  385. package/dist/chunks/{NcAppSettingsDialog-JPB-srka.mjs → NcAppSettingsDialog-Dl-kMSpe.mjs} +4 -3
  386. package/dist/chunks/{NcAppSettingsDialog-JPB-srka.mjs.map → NcAppSettingsDialog-Dl-kMSpe.mjs.map} +1 -1
  387. package/dist/chunks/{NcAppSettingsDialog-z9v6V6ye.cjs → NcAppSettingsDialog-K3yVenLs.cjs} +4 -3
  388. package/dist/chunks/{NcAppSettingsDialog-z9v6V6ye.cjs.map → NcAppSettingsDialog-K3yVenLs.cjs.map} +1 -1
  389. package/dist/chunks/{NcAppSidebar-BY33yoNX.cjs → NcAppSidebar-Bmlid_Pa.cjs} +13 -12
  390. package/dist/chunks/NcAppSidebar-Bmlid_Pa.cjs.map +1 -0
  391. package/dist/chunks/{NcAppSidebar-cEQy8s50.mjs → NcAppSidebar-DOJNq1iG.mjs} +17 -16
  392. package/dist/chunks/NcAppSidebar-DOJNq1iG.mjs.map +1 -0
  393. package/dist/chunks/{NcAvatar-CQtsmbBW.cjs → NcAvatar-Bp1wPu2I.cjs} +45 -23
  394. package/dist/chunks/NcAvatar-Bp1wPu2I.cjs.map +1 -0
  395. package/dist/chunks/{NcAvatar-BjwyJw34.mjs → NcAvatar-DOvpF1gr.mjs} +46 -24
  396. package/dist/chunks/NcAvatar-DOvpF1gr.mjs.map +1 -0
  397. package/dist/chunks/NcBlurHash-CJ8retHx.cjs +115 -0
  398. package/dist/chunks/NcBlurHash-CJ8retHx.cjs.map +1 -0
  399. package/dist/chunks/NcBlurHash-do2wxY-0.mjs +116 -0
  400. package/dist/chunks/NcBlurHash-do2wxY-0.mjs.map +1 -0
  401. package/dist/chunks/{NcBreadcrumb-GHiD-Sw7.mjs → NcBreadcrumb-1Gv4FRrG.mjs} +6 -5
  402. package/dist/chunks/NcBreadcrumb-1Gv4FRrG.mjs.map +1 -0
  403. package/dist/chunks/{NcBreadcrumb-DrlhnNbV.cjs → NcBreadcrumb-9pV_jqex.cjs} +6 -5
  404. package/dist/chunks/NcBreadcrumb-9pV_jqex.cjs.map +1 -0
  405. package/dist/chunks/{NcBreadcrumbs-D0Hhym9A.mjs → NcBreadcrumbs-CwuR-hUE.mjs} +5 -4
  406. package/dist/chunks/{NcBreadcrumbs-D0Hhym9A.mjs.map → NcBreadcrumbs-CwuR-hUE.mjs.map} +1 -1
  407. package/dist/chunks/{NcBreadcrumbs-Cde4tv8l.cjs → NcBreadcrumbs-D4RrS0HT.cjs} +4 -3
  408. package/dist/chunks/{NcBreadcrumbs-Cde4tv8l.cjs.map → NcBreadcrumbs-D4RrS0HT.cjs.map} +1 -1
  409. package/dist/chunks/{NcCheckboxRadioSwitch-RjEq0SqY.cjs → NcCheckboxRadioSwitch-DbK49DI7.cjs} +7 -13
  410. package/dist/chunks/NcCheckboxRadioSwitch-DbK49DI7.cjs.map +1 -0
  411. package/dist/chunks/{NcCheckboxRadioSwitch-CCuKA55c.mjs → NcCheckboxRadioSwitch-Di9rSADK.mjs} +7 -13
  412. package/dist/chunks/NcCheckboxRadioSwitch-Di9rSADK.mjs.map +1 -0
  413. package/dist/chunks/{NcCollectionList-fyDi2W_B.cjs → NcCollectionList-C3QKgLIe.cjs} +6 -5
  414. package/dist/chunks/{NcCollectionList-fyDi2W_B.cjs.map → NcCollectionList-C3QKgLIe.cjs.map} +1 -1
  415. package/dist/chunks/{NcCollectionList-BNxu1MWE.mjs → NcCollectionList-D51FpJCr.mjs} +6 -5
  416. package/dist/chunks/{NcCollectionList-BNxu1MWE.mjs.map → NcCollectionList-D51FpJCr.mjs.map} +1 -1
  417. package/dist/chunks/{NcColorPicker-CTQlyVCL.cjs → NcColorPicker-9BNg5lJ0.cjs} +9 -8
  418. package/dist/chunks/NcColorPicker-9BNg5lJ0.cjs.map +1 -0
  419. package/dist/chunks/{NcColorPicker-ph8Nubq7.mjs → NcColorPicker-sJKL33GV.mjs} +9 -8
  420. package/dist/chunks/NcColorPicker-sJKL33GV.mjs.map +1 -0
  421. package/dist/chunks/{NcContent-CJNhr5lF.cjs → NcContent-4X_oNYtW.cjs} +7 -6
  422. package/dist/chunks/{NcContent-CJNhr5lF.cjs.map → NcContent-4X_oNYtW.cjs.map} +1 -1
  423. package/dist/chunks/{NcContent-RlppaZCX.mjs → NcContent-BHl5YDYI.mjs} +7 -6
  424. package/dist/chunks/{NcContent-RlppaZCX.mjs.map → NcContent-BHl5YDYI.mjs.map} +1 -1
  425. package/dist/chunks/NcCounterBubble-BRrUO34D.cjs +1 -0
  426. package/dist/chunks/NcCounterBubble-CDfRYl8B.mjs +1 -0
  427. package/dist/chunks/{NcDashboardWidget-CirRHHmT.cjs → NcDashboardWidget-B1och7uR.cjs} +4 -3
  428. package/dist/chunks/{NcDashboardWidget-CirRHHmT.cjs.map → NcDashboardWidget-B1och7uR.cjs.map} +1 -1
  429. package/dist/chunks/{NcDashboardWidget-Dg12xu50.mjs → NcDashboardWidget-CioEwUfN.mjs} +4 -3
  430. package/dist/chunks/{NcDashboardWidget-Dg12xu50.mjs.map → NcDashboardWidget-CioEwUfN.mjs.map} +1 -1
  431. package/dist/chunks/{NcDashboardWidgetItem-COONyn0g.cjs → NcDashboardWidgetItem-BZPoOCWQ.cjs} +4 -3
  432. package/dist/chunks/{NcDashboardWidgetItem-COONyn0g.cjs.map → NcDashboardWidgetItem-BZPoOCWQ.cjs.map} +1 -1
  433. package/dist/chunks/{NcDashboardWidgetItem-DZGooEwA.mjs → NcDashboardWidgetItem-D4EefvnL.mjs} +4 -3
  434. package/dist/chunks/{NcDashboardWidgetItem-DZGooEwA.mjs.map → NcDashboardWidgetItem-D4EefvnL.mjs.map} +1 -1
  435. package/dist/chunks/{NcDateTime-DBZ-vBfi.mjs → NcDateTime-BR6BBvML.mjs} +2 -1
  436. package/dist/chunks/{NcDateTime-DBZ-vBfi.mjs.map → NcDateTime-BR6BBvML.mjs.map} +1 -1
  437. package/dist/chunks/{NcDateTime-AFZif5Dn.cjs → NcDateTime-C-kLQayi.cjs} +2 -1
  438. package/dist/chunks/{NcDateTime-AFZif5Dn.cjs.map → NcDateTime-C-kLQayi.cjs.map} +1 -1
  439. package/dist/chunks/{NcDialog-mcbLFc8o.cjs → NcDialog-BjLJB7fW.cjs} +28 -11
  440. package/dist/chunks/NcDialog-BjLJB7fW.cjs.map +1 -0
  441. package/dist/chunks/{NcDialog-I_9fyJVt.mjs → NcDialog-D2lwwZL-.mjs} +28 -11
  442. package/dist/chunks/NcDialog-D2lwwZL-.mjs.map +1 -0
  443. package/dist/chunks/{NcDialogButton-DuJ3lE7e.mjs → NcDialogButton-BB56HcBl.mjs} +29 -10
  444. package/dist/chunks/NcDialogButton-BB56HcBl.mjs.map +1 -0
  445. package/dist/chunks/{NcDialogButton-FLqQdVLb.cjs → NcDialogButton-ByvLH63s.cjs} +29 -10
  446. package/dist/chunks/NcDialogButton-ByvLH63s.cjs.map +1 -0
  447. package/dist/chunks/{NcEmojiPicker-DDCgW2zQ.mjs → NcEmojiPicker-B49sJeMw.mjs} +20 -12
  448. package/dist/chunks/NcEmojiPicker-B49sJeMw.mjs.map +1 -0
  449. package/dist/chunks/{NcEmojiPicker-B1ot5iNB.cjs → NcEmojiPicker-DcTSImTm.cjs} +18 -10
  450. package/dist/chunks/NcEmojiPicker-DcTSImTm.cjs.map +1 -0
  451. package/dist/chunks/{NcHeaderMenu-BaHhnhN0.cjs → NcHeaderMenu-B287C-Vk.cjs} +6 -5
  452. package/dist/chunks/NcHeaderMenu-B287C-Vk.cjs.map +1 -0
  453. package/dist/chunks/{NcHeaderMenu-CLcpStap.mjs → NcHeaderMenu-Bc1ucNsv.mjs} +6 -5
  454. package/dist/chunks/NcHeaderMenu-Bc1ucNsv.mjs.map +1 -0
  455. package/dist/chunks/{NcIconSvgWrapper-B_eOG2sZ.cjs → NcIconSvgWrapper-BlucK1g3.cjs} +27 -15
  456. package/dist/chunks/NcIconSvgWrapper-BlucK1g3.cjs.map +1 -0
  457. package/dist/chunks/{NcIconSvgWrapper-CHmdAuhg.mjs → NcIconSvgWrapper-RKuZn260.mjs} +28 -16
  458. package/dist/chunks/NcIconSvgWrapper-RKuZn260.mjs.map +1 -0
  459. package/dist/chunks/{NcInputConfirmCancel-C7a7Nha7.mjs → NcInputConfirmCancel-CacBXLGS.mjs} +7 -6
  460. package/dist/chunks/NcInputConfirmCancel-CacBXLGS.mjs.map +1 -0
  461. package/dist/chunks/{NcInputConfirmCancel-XzKuYi6L.cjs → NcInputConfirmCancel-lVLFwBA4.cjs} +7 -6
  462. package/dist/chunks/NcInputConfirmCancel-lVLFwBA4.cjs.map +1 -0
  463. package/dist/chunks/{NcInputField-DkhKrb8k.cjs → NcInputField-C61UUN46.cjs} +4 -3
  464. package/dist/chunks/NcInputField-C61UUN46.cjs.map +1 -0
  465. package/dist/chunks/{NcInputField-CU5a68Pc.mjs → NcInputField-DTtUueUZ.mjs} +4 -3
  466. package/dist/chunks/NcInputField-DTtUueUZ.mjs.map +1 -0
  467. package/dist/chunks/{NcListItem-3e1MminS.mjs → NcListItem-BBTd7BLc.mjs} +4 -3
  468. package/dist/chunks/NcListItem-BBTd7BLc.mjs.map +1 -0
  469. package/dist/chunks/{NcListItem-9w7m2lJ_.cjs → NcListItem-D_mvsnph.cjs} +4 -3
  470. package/dist/chunks/NcListItem-D_mvsnph.cjs.map +1 -0
  471. package/dist/chunks/{NcListItemIcon-7x7iDHYw.mjs → NcListItemIcon-B16M-aHV.mjs} +3 -2
  472. package/dist/chunks/{NcListItemIcon-7x7iDHYw.mjs.map → NcListItemIcon-B16M-aHV.mjs.map} +1 -1
  473. package/dist/chunks/{NcListItemIcon-pOj8Vr2H.cjs → NcListItemIcon-COUzDQI5.cjs} +3 -2
  474. package/dist/chunks/{NcListItemIcon-pOj8Vr2H.cjs.map → NcListItemIcon-COUzDQI5.cjs.map} +1 -1
  475. package/dist/chunks/{NcPasswordField-BS6bkHtv.cjs → NcPasswordField-BCzIotoB.cjs} +3 -2
  476. package/dist/chunks/{NcPasswordField-BS6bkHtv.cjs.map → NcPasswordField-BCzIotoB.cjs.map} +1 -1
  477. package/dist/chunks/{NcPasswordField-Dpu9nI6h.mjs → NcPasswordField-CTKHRVC4.mjs} +3 -2
  478. package/dist/chunks/{NcPasswordField-Dpu9nI6h.mjs.map → NcPasswordField-CTKHRVC4.mjs.map} +1 -1
  479. package/dist/chunks/{NcPopover-BKlH1mbx.cjs → NcPopover-BxLo6SFb.cjs} +12 -5
  480. package/dist/chunks/NcPopover-BxLo6SFb.cjs.map +1 -0
  481. package/dist/chunks/{NcPopover-DFCPlZpS.mjs → NcPopover-w98cBbbF.mjs} +12 -5
  482. package/dist/chunks/NcPopover-w98cBbbF.mjs.map +1 -0
  483. package/dist/chunks/NcProgressBar-DegJ2JjE.mjs +1 -0
  484. package/dist/chunks/NcProgressBar-Do5Y3u8S.cjs +1 -0
  485. package/dist/chunks/{NcRelatedResourcesPanel-BrkyIR3v.cjs → NcRelatedResourcesPanel-B-y_Wan4.cjs} +10 -9
  486. package/dist/chunks/NcRelatedResourcesPanel-B-y_Wan4.cjs.map +1 -0
  487. package/dist/chunks/{NcRelatedResourcesPanel-C6JIVMvN.mjs → NcRelatedResourcesPanel-CmiW_ds0.mjs} +10 -9
  488. package/dist/chunks/NcRelatedResourcesPanel-CmiW_ds0.mjs.map +1 -0
  489. package/dist/chunks/{NcRichContenteditable-DJy0zZXx.cjs → NcRichContenteditable-ClHXIiXL.cjs} +12 -20
  490. package/dist/chunks/NcRichContenteditable-ClHXIiXL.cjs.map +1 -0
  491. package/dist/chunks/{NcRichContenteditable-3kkU0Uxu.mjs → NcRichContenteditable-zZQChT9M.mjs} +14 -22
  492. package/dist/chunks/NcRichContenteditable-zZQChT9M.mjs.map +1 -0
  493. package/dist/chunks/NcRichText-C43cKGcR.mjs +3679 -0
  494. package/dist/chunks/NcRichText-C43cKGcR.mjs.map +1 -0
  495. package/dist/chunks/NcRichText-CMbtZkLP.cjs +3707 -0
  496. package/dist/chunks/NcRichText-CMbtZkLP.cjs.map +1 -0
  497. package/dist/chunks/NcSavingIndicatorIcon-Bu-zt4pR.cjs +1 -0
  498. package/dist/chunks/NcSavingIndicatorIcon-nv1147dk.mjs +1 -0
  499. package/dist/chunks/{NcSelect-YHwbPAJD.cjs → NcSelect-C9cGa-5v.cjs} +25 -7
  500. package/dist/chunks/NcSelect-C9cGa-5v.cjs.map +1 -0
  501. package/dist/chunks/{NcSelect-BQ-NFBXI.mjs → NcSelect-XLdUgokz.mjs} +25 -7
  502. package/dist/chunks/NcSelect-XLdUgokz.mjs.map +1 -0
  503. package/dist/chunks/{NcSelectTags-BAMsfdw9.cjs → NcSelectTags-B0rsXdxP.cjs} +3 -2
  504. package/dist/chunks/{NcSelectTags-BAMsfdw9.cjs.map → NcSelectTags-B0rsXdxP.cjs.map} +1 -1
  505. package/dist/chunks/{NcSelectTags-BKtOWgrz.mjs → NcSelectTags-DT2Y3Kms.mjs} +3 -2
  506. package/dist/chunks/{NcSelectTags-BKtOWgrz.mjs.map → NcSelectTags-DT2Y3Kms.mjs.map} +1 -1
  507. package/dist/chunks/NcSelectUsers-C-bbm2cW.cjs +187 -0
  508. package/dist/chunks/NcSelectUsers-C-bbm2cW.cjs.map +1 -0
  509. package/dist/chunks/NcSelectUsers-DFlj_h9t.mjs +188 -0
  510. package/dist/chunks/NcSelectUsers-DFlj_h9t.mjs.map +1 -0
  511. package/dist/chunks/{NcSettingsInputText-nb2XMaJW.cjs → NcSettingsInputText-BU1_SHOq.cjs} +3 -2
  512. package/dist/chunks/{NcSettingsInputText-nb2XMaJW.cjs.map → NcSettingsInputText-BU1_SHOq.cjs.map} +1 -1
  513. package/dist/chunks/{NcSettingsInputText-DC7H_6Uz.mjs → NcSettingsInputText-t1FMnLKA.mjs} +3 -2
  514. package/dist/chunks/{NcSettingsInputText-DC7H_6Uz.mjs.map → NcSettingsInputText-t1FMnLKA.mjs.map} +1 -1
  515. package/dist/chunks/{NcSettingsSection-6Sc6GBsM.cjs → NcSettingsSection-Dcdxs1IN.cjs} +2 -1
  516. package/dist/chunks/{NcSettingsSection-6Sc6GBsM.cjs.map → NcSettingsSection-Dcdxs1IN.cjs.map} +1 -1
  517. package/dist/chunks/{NcSettingsSection-BYKUjim0.mjs → NcSettingsSection-EC3SmiDX.mjs} +2 -1
  518. package/dist/chunks/{NcSettingsSection-BYKUjim0.mjs.map → NcSettingsSection-EC3SmiDX.mjs.map} +1 -1
  519. package/dist/chunks/{NcSettingsSelectGroup-CI2LoVeL.mjs → NcSettingsSelectGroup-B4isXyUU.mjs} +4 -3
  520. package/dist/chunks/{NcSettingsSelectGroup-CI2LoVeL.mjs.map → NcSettingsSelectGroup-B4isXyUU.mjs.map} +1 -1
  521. package/dist/chunks/{NcSettingsSelectGroup-DX4AaRte.cjs → NcSettingsSelectGroup-CE71MIQo.cjs} +4 -3
  522. package/dist/chunks/{NcSettingsSelectGroup-DX4AaRte.cjs.map → NcSettingsSelectGroup-CE71MIQo.cjs.map} +1 -1
  523. package/dist/chunks/NcTextArea-BHERsE_g.mjs +1 -0
  524. package/dist/chunks/NcTextArea-CYLGAGcO.cjs +1 -0
  525. package/dist/chunks/NcTextArea-CYLGAGcO.cjs.map +1 -1
  526. package/dist/chunks/{NcTextField-9gC8or6j.mjs → NcTextField-DRANdaIf.mjs} +4 -3
  527. package/dist/chunks/{NcTextField-9gC8or6j.mjs.map → NcTextField-DRANdaIf.mjs.map} +1 -1
  528. package/dist/chunks/{NcTextField-Pbox9mQE.cjs → NcTextField-Uk5iD8o2.cjs} +4 -3
  529. package/dist/chunks/{NcTextField-Pbox9mQE.cjs.map → NcTextField-Uk5iD8o2.cjs.map} +1 -1
  530. package/dist/chunks/{NcTimezonePicker-DIwsRdu2.cjs → NcTimezonePicker-BTyhPxMT.cjs} +4 -3
  531. package/dist/chunks/{NcTimezonePicker-DIwsRdu2.cjs.map → NcTimezonePicker-BTyhPxMT.cjs.map} +1 -1
  532. package/dist/chunks/{NcTimezonePicker-xSXSuNHX.mjs → NcTimezonePicker-sAG8kn1b.mjs} +4 -3
  533. package/dist/chunks/{NcTimezonePicker-xSXSuNHX.mjs.map → NcTimezonePicker-sAG8kn1b.mjs.map} +1 -1
  534. package/dist/chunks/{NcUserBubble-BFvEaXLr.mjs → NcUserBubble-DmZZOMRr.mjs} +3 -2
  535. package/dist/chunks/{NcUserBubble-BFvEaXLr.mjs.map → NcUserBubble-DmZZOMRr.mjs.map} +1 -1
  536. package/dist/chunks/{NcUserBubble-rphdAcHS.cjs → NcUserBubble-cX4wyq1_.cjs} +3 -2
  537. package/dist/chunks/{NcUserBubble-rphdAcHS.cjs.map → NcUserBubble-cX4wyq1_.cjs.map} +1 -1
  538. package/dist/chunks/{NcUserStatusIcon-S5bBgRl6.mjs → NcUserStatusIcon-WEKmuaoU.mjs} +4 -2
  539. package/dist/chunks/{NcUserStatusIcon-S5bBgRl6.mjs.map → NcUserStatusIcon-WEKmuaoU.mjs.map} +1 -1
  540. package/dist/chunks/{NcUserStatusIcon-CFLiHFkC.cjs → NcUserStatusIcon-cs42Lzdd.cjs} +4 -2
  541. package/dist/chunks/{NcUserStatusIcon-CFLiHFkC.cjs.map → NcUserStatusIcon-cs42Lzdd.cjs.map} +1 -1
  542. package/dist/chunks/{ScopeComponent-CEMLuQd5.mjs → ScopeComponent-BaHwjQGQ.mjs} +2 -1
  543. package/dist/chunks/{ScopeComponent-CEMLuQd5.mjs.map → ScopeComponent-BaHwjQGQ.mjs.map} +1 -1
  544. package/dist/chunks/{ScopeComponent-B5vclUCV.cjs → ScopeComponent-CqVh6vwk.cjs} +2 -1
  545. package/dist/chunks/{ScopeComponent-B5vclUCV.cjs.map → ScopeComponent-CqVh6vwk.cjs.map} +1 -1
  546. package/dist/chunks/_l10n-BiiXtYiP.cjs +143 -0
  547. package/dist/chunks/{_l10n-CjO_W5Dt.cjs.map → _l10n-BiiXtYiP.cjs.map} +1 -1
  548. package/dist/chunks/_l10n-Dt0m9Fxw.mjs +144 -0
  549. package/dist/chunks/_l10n-Dt0m9Fxw.mjs.map +1 -0
  550. package/dist/chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs +1 -0
  551. package/dist/chunks/_plugin-vue2_normalizer-V0q-tHlQ.cjs +1 -0
  552. package/dist/chunks/actionGlobal-DqVa7c7G.mjs +1 -0
  553. package/dist/chunks/actionGlobal-DqVa7c7G.mjs.map +1 -1
  554. package/dist/chunks/actionGlobal-L0Ls8tPJ.cjs +1 -0
  555. package/dist/chunks/actionGlobal-L0Ls8tPJ.cjs.map +1 -1
  556. package/dist/chunks/actionText-BcrK4uH1.cjs +1 -0
  557. package/dist/chunks/actionText-BcrK4uH1.cjs.map +1 -1
  558. package/dist/chunks/actionText-fFcUPi2g.mjs +1 -0
  559. package/dist/chunks/actionText-fFcUPi2g.mjs.map +1 -1
  560. package/dist/chunks/autolink-BAgL31EZ.cjs +1 -0
  561. package/dist/chunks/autolink-BAgL31EZ.cjs.map +1 -1
  562. package/dist/chunks/autolink-cbuFALXr.mjs +1 -0
  563. package/dist/chunks/autolink-cbuFALXr.mjs.map +1 -1
  564. package/dist/chunks/emoji-BY_D0V5K.mjs +1 -0
  565. package/dist/chunks/emoji-BY_D0V5K.mjs.map +1 -1
  566. package/dist/chunks/emoji-VgSjNTd5.cjs +1 -0
  567. package/dist/chunks/emoji-VgSjNTd5.cjs.map +1 -1
  568. package/dist/chunks/focusTrap-DmkaYJTC.mjs +32 -0
  569. package/dist/chunks/focusTrap-DmkaYJTC.mjs.map +1 -0
  570. package/dist/chunks/focusTrap-Vbgxe8ZX.cjs +31 -0
  571. package/dist/chunks/focusTrap-Vbgxe8ZX.cjs.map +1 -0
  572. package/dist/chunks/getAvatarUrl-6z9qRNH-.cjs +1 -0
  573. package/dist/chunks/getAvatarUrl-DxvUjKMi.mjs +1 -0
  574. package/dist/chunks/{index-CtoB4eIp.mjs → index-56SXuvlv.mjs} +3 -2
  575. package/dist/chunks/{index-CtoB4eIp.mjs.map → index-56SXuvlv.mjs.map} +1 -1
  576. package/dist/chunks/index-BV85rPB7.cjs +1 -0
  577. package/dist/chunks/index-BV85rPB7.cjs.map +1 -1
  578. package/dist/chunks/index-BiECbTbJ.cjs +1 -0
  579. package/dist/chunks/index-BiECbTbJ.cjs.map +1 -1
  580. package/dist/chunks/index-Bz6q9mZw.mjs +1 -0
  581. package/dist/chunks/index-Bz6q9mZw.mjs.map +1 -1
  582. package/dist/chunks/index-DIJxEozm.cjs +1 -0
  583. package/dist/chunks/index-DIJxEozm.cjs.map +1 -1
  584. package/dist/chunks/index-G8WQDZ8G.mjs +1 -0
  585. package/dist/chunks/index-G8WQDZ8G.mjs.map +1 -1
  586. package/dist/chunks/logger-3HuiEIF6.cjs +1 -0
  587. package/dist/chunks/logger-D3RVzcfQ.mjs +1 -0
  588. package/dist/chunks/mdi-CZJxQPz6.mjs +9 -0
  589. package/dist/chunks/mdi-CZJxQPz6.mjs.map +1 -0
  590. package/dist/chunks/mdi-Da9VuUVq.cjs +8 -0
  591. package/dist/chunks/mdi-Da9VuUVq.cjs.map +1 -0
  592. package/dist/chunks/{referencePickerModal-BkBu4cnq.cjs → referencePickerModal-BdK-_zC6.cjs} +9 -8
  593. package/dist/chunks/{referencePickerModal-BkBu4cnq.cjs.map → referencePickerModal-BdK-_zC6.cjs.map} +1 -1
  594. package/dist/chunks/{referencePickerModal-CGG57Dy_.mjs → referencePickerModal-Bxp4FMcs.mjs} +10 -9
  595. package/dist/chunks/{referencePickerModal-CGG57Dy_.mjs.map → referencePickerModal-Bxp4FMcs.mjs.map} +1 -1
  596. package/dist/chunks/rtl-DLuwcTlm.cjs +5 -0
  597. package/dist/chunks/rtl-DLuwcTlm.cjs.map +1 -0
  598. package/dist/chunks/rtl-v0UOPAM7.mjs +6 -0
  599. package/dist/chunks/rtl-v0UOPAM7.mjs.map +1 -0
  600. package/dist/chunks/useModelMigration-D5zhrNXr.cjs +1 -0
  601. package/dist/chunks/useModelMigration-D5zhrNXr.cjs.map +1 -1
  602. package/dist/chunks/useModelMigration-EhAWvqDD.mjs +1 -0
  603. package/dist/chunks/useModelMigration-EhAWvqDD.mjs.map +1 -1
  604. package/dist/chunks/useTrapStackControl-BJmJdJak.cjs +22 -0
  605. package/dist/chunks/useTrapStackControl-BJmJdJak.cjs.map +1 -0
  606. package/dist/chunks/useTrapStackControl-b3A_383w.mjs +23 -0
  607. package/dist/chunks/useTrapStackControl-b3A_383w.mjs.map +1 -0
  608. package/dist/chunks/{usernameToColor-BCZuxlEH.mjs → usernameToColor-DJfepfog.mjs} +2 -1
  609. package/dist/chunks/{usernameToColor-BCZuxlEH.mjs.map → usernameToColor-DJfepfog.mjs.map} +1 -1
  610. package/dist/chunks/{usernameToColor-cVFS7tET.cjs → usernameToColor-mqInDrGv.cjs} +2 -1
  611. package/dist/chunks/{usernameToColor-cVFS7tET.cjs.map → usernameToColor-mqInDrGv.cjs.map} +1 -1
  612. package/dist/composables/useTrapStackControl.d.ts +12 -0
  613. package/dist/functions/index.d.ts +3 -2
  614. package/dist/functions/preloadImage/index.d.ts +9 -0
  615. package/dist/functions/reference/widgets.d.ts +1 -1
  616. package/dist/index.cjs +62 -53
  617. package/dist/index.cjs.map +1 -1
  618. package/dist/index.mjs +63 -54
  619. package/dist/index.mjs.map +1 -1
  620. package/dist/utils/focusTrap.d.ts +26 -0
  621. package/dist/utils/rtl.d.ts +5 -0
  622. package/dist/vendor.LICENSE.txt +128 -0
  623. package/package.json +23 -15
  624. package/dist/chunks/ChevronLeft-BK4j9oVH.mjs +0 -37
  625. package/dist/chunks/ChevronLeft-BK4j9oVH.mjs.map +0 -1
  626. package/dist/chunks/ChevronLeft-CAiEPWc5.cjs +0 -36
  627. package/dist/chunks/ChevronLeft-CAiEPWc5.cjs.map +0 -1
  628. package/dist/chunks/NcActionButton-CEysTg4c.mjs.map +0 -1
  629. package/dist/chunks/NcActionButton-DcpUnqA7.cjs.map +0 -1
  630. package/dist/chunks/NcActionTextEditable-C-ZP8_Tn.cjs.map +0 -1
  631. package/dist/chunks/NcActionTextEditable-JRD-G0CT.mjs.map +0 -1
  632. package/dist/chunks/NcActions-D3hGxwlc.mjs.map +0 -1
  633. package/dist/chunks/NcActions-DTICeoTz.cjs.map +0 -1
  634. package/dist/chunks/NcAppContent-BKQ-H04y.mjs.map +0 -1
  635. package/dist/chunks/NcAppContent-BOt6_YA7.cjs.map +0 -1
  636. package/dist/chunks/NcAppNavigation-B_92V8o3.mjs.map +0 -1
  637. package/dist/chunks/NcAppNavigation-D7W-4cVo.cjs.map +0 -1
  638. package/dist/chunks/NcAppNavigationItem-CpcFOmJR.mjs.map +0 -1
  639. package/dist/chunks/NcAppNavigationItem-DL9OwWo-.cjs.map +0 -1
  640. package/dist/chunks/NcAppNavigationSearch-Q0eMy5I2.cjs.map +0 -1
  641. package/dist/chunks/NcAppNavigationSearch-gytpBKme.mjs.map +0 -1
  642. package/dist/chunks/NcAppNavigationToggle-Br1hcFGt.cjs.map +0 -1
  643. package/dist/chunks/NcAppNavigationToggle-Pr8bEpDs.mjs.map +0 -1
  644. package/dist/chunks/NcAppSidebar-BY33yoNX.cjs.map +0 -1
  645. package/dist/chunks/NcAppSidebar-cEQy8s50.mjs.map +0 -1
  646. package/dist/chunks/NcAvatar-BjwyJw34.mjs.map +0 -1
  647. package/dist/chunks/NcAvatar-CQtsmbBW.cjs.map +0 -1
  648. package/dist/chunks/NcBreadcrumb-DrlhnNbV.cjs.map +0 -1
  649. package/dist/chunks/NcBreadcrumb-GHiD-Sw7.mjs.map +0 -1
  650. package/dist/chunks/NcCheckboxRadioSwitch-CCuKA55c.mjs.map +0 -1
  651. package/dist/chunks/NcCheckboxRadioSwitch-RjEq0SqY.cjs.map +0 -1
  652. package/dist/chunks/NcColorPicker-CTQlyVCL.cjs.map +0 -1
  653. package/dist/chunks/NcColorPicker-ph8Nubq7.mjs.map +0 -1
  654. package/dist/chunks/NcDialog-I_9fyJVt.mjs.map +0 -1
  655. package/dist/chunks/NcDialog-mcbLFc8o.cjs.map +0 -1
  656. package/dist/chunks/NcDialogButton-DuJ3lE7e.mjs.map +0 -1
  657. package/dist/chunks/NcDialogButton-FLqQdVLb.cjs.map +0 -1
  658. package/dist/chunks/NcEmojiPicker-B1ot5iNB.cjs.map +0 -1
  659. package/dist/chunks/NcEmojiPicker-DDCgW2zQ.mjs.map +0 -1
  660. package/dist/chunks/NcHeaderMenu-BaHhnhN0.cjs.map +0 -1
  661. package/dist/chunks/NcHeaderMenu-CLcpStap.mjs.map +0 -1
  662. package/dist/chunks/NcIconSvgWrapper-B_eOG2sZ.cjs.map +0 -1
  663. package/dist/chunks/NcIconSvgWrapper-CHmdAuhg.mjs.map +0 -1
  664. package/dist/chunks/NcInputConfirmCancel-C7a7Nha7.mjs.map +0 -1
  665. package/dist/chunks/NcInputConfirmCancel-XzKuYi6L.cjs.map +0 -1
  666. package/dist/chunks/NcInputField-CU5a68Pc.mjs.map +0 -1
  667. package/dist/chunks/NcInputField-DkhKrb8k.cjs.map +0 -1
  668. package/dist/chunks/NcListItem-3e1MminS.mjs.map +0 -1
  669. package/dist/chunks/NcListItem-9w7m2lJ_.cjs.map +0 -1
  670. package/dist/chunks/NcPopover-BKlH1mbx.cjs.map +0 -1
  671. package/dist/chunks/NcPopover-DFCPlZpS.mjs.map +0 -1
  672. package/dist/chunks/NcRelatedResourcesPanel-BrkyIR3v.cjs.map +0 -1
  673. package/dist/chunks/NcRelatedResourcesPanel-C6JIVMvN.mjs.map +0 -1
  674. package/dist/chunks/NcRichContenteditable-3kkU0Uxu.mjs.map +0 -1
  675. package/dist/chunks/NcRichContenteditable-DJy0zZXx.cjs.map +0 -1
  676. package/dist/chunks/NcRichText-C8SjsRK8.mjs +0 -420
  677. package/dist/chunks/NcRichText-C8SjsRK8.mjs.map +0 -1
  678. package/dist/chunks/NcRichText-Ci72ylJ9.cjs +0 -449
  679. package/dist/chunks/NcRichText-Ci72ylJ9.cjs.map +0 -1
  680. package/dist/chunks/NcSelect-BQ-NFBXI.mjs.map +0 -1
  681. package/dist/chunks/NcSelect-YHwbPAJD.cjs.map +0 -1
  682. package/dist/chunks/_l10n-CjO_W5Dt.cjs +0 -138
  683. package/dist/chunks/_l10n-DDKxBWQL.mjs +0 -139
  684. package/dist/chunks/_l10n-DDKxBWQL.mjs.map +0 -1
  685. package/dist/chunks/focusTrap-Cecv_gjR.mjs +0 -7
  686. package/dist/chunks/focusTrap-Cecv_gjR.mjs.map +0 -1
  687. package/dist/chunks/focusTrap-EeXFmjdI.cjs +0 -6
  688. package/dist/chunks/focusTrap-EeXFmjdI.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index-Bz6q9mZw.mjs","sources":["../../src/utils/FindRanges.js","../../src/components/NcHighlight/NcHighlight.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Find the ranges of a substr in a given string\n *\n * @param {string} text The text to search in\n * @param {string} search The text to search for\n * @return {Array} The array of ranges to highlight\n */\nconst FindRanges = (text, search) => {\n\tconst ranges = []\n\tlet currentIndex = 0\n\tlet index = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex)\n\t// Variable to track that we don't iterate more often than the length of the text.\n\t// Shouldn't happen anyway, but just to be sure to not hang the browser for some reason.\n\tlet i = 0\n\twhile (index > -1 && i < text.length) {\n\t\tcurrentIndex = index + search.length\n\t\tranges.push({ start: index, end: currentIndex })\n\n\t\tindex = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex)\n\t\ti++\n\t}\n\treturn ranges\n}\n\nexport default FindRanges\n","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nHighlight a string with html &lt;strong&gt;. Accepts a substring to highlight or an array with ranges.\n\n### Usage\n\n```vue\n<template>\n\t<div>\n\t\t<NcHighlight text=\"Highlight me please!\" search=\"me\" />\n\t\t<br />\n\t\t<NcHighlight text=\"Highlight me please!\" :highlight=\"[{ start: 4, end: 12 }]\" />\n\t</div>\n</template>\n```\n</docs>\n\n<script>\nimport FindRanges from '../../utils/FindRanges.js'\n\nexport default {\n\tname: 'NcHighlight',\n\tprops: {\n\t\t/**\n\t\t * The string to display\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The string to match and highlight\n\t\t */\n\t\tsearch: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The ranges to highlight, takes precedence over the search prop.\n\t\t */\n\t\thighlight: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * The indice ranges which should be highlighted.\n\t\t * If an array with ranges is provided, we use it. Otherwise\n\t\t * we calculate it based on the provided substring to highlight.\n\t\t *\n\t\t * @return {Array} The array of ranges to highlight\n\t\t */\n\t\tranges() {\n\t\t\tlet ranges = []\n\t\t\t// If the search term and the highlight array is empty, return early with empty array\n\t\t\tif (!this.search && this.highlight.length === 0) {\n\t\t\t\treturn ranges\n\t\t\t}\n\n\t\t\t// If there are ranges to highlight provided, we use this array.\n\t\t\tif (this.highlight.length > 0) {\n\t\t\t\tranges = this.highlight\n\t\t\t// Otherwise we check the text to highlight for matches of the search term.\n\t\t\t} else {\n\t\t\t\tranges = FindRanges(this.text, this.search)\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Ensure that the start of each range is equal to or smaller than the end\n\t\t\t */\n\t\t\tranges.forEach((range, i) => {\n\t\t\t\tif (range.end < range.start) {\n\t\t\t\t\tranges[i] = {\n\t\t\t\t\t\tstart: range.end,\n\t\t\t\t\t\tend: range.start,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t/**\n\t\t\t * Validate the ranges array to be within the string length\n\t\t\t * and discard ranges which are completely out of bonds.\n\t\t\t */\n\t\t\tranges = ranges.reduce((validRanges, range) => {\n\t\t\t\tif (range.start < this.text.length && range.end > 0) {\n\t\t\t\t\tvalidRanges.push({\n\t\t\t\t\t\tstart: (range.start < 0) ? 0 : range.start,\n\t\t\t\t\t\tend: (range.end > this.text.length) ? this.text.length : range.end,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn validRanges\n\t\t\t}, [])\n\n\t\t\t/**\n\t\t\t * Sort ranges ascendingly (necessary for next step)\n\t\t\t */\n\t\t\tranges.sort((a, b) => {\n\t\t\t\treturn a.start - b.start\n\t\t\t})\n\n\t\t\t/**\n\t\t\t * Merge overlapping or adjacent ranges\n\t\t\t */\n\t\t\tranges = ranges.reduce((mergedRanges, range) => {\n\t\t\t\t// If there are no ranges, just add the range\n\t\t\t\tif (!mergedRanges.length) {\n\t\t\t\t\tmergedRanges.push(range)\n\t\t\t\t} else {\n\t\t\t\t\t// If the range overlaps the last range, merge them\n\t\t\t\t\tconst idx = mergedRanges.length - 1\n\t\t\t\t\tif (mergedRanges[idx].end >= range.start) {\n\t\t\t\t\t\tmergedRanges[idx] = {\n\t\t\t\t\t\t\tstart: mergedRanges[idx].start,\n\t\t\t\t\t\t\tend: Math.max(mergedRanges[idx].end, range.end),\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmergedRanges.push(range)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn mergedRanges\n\t\t\t}, [])\n\n\t\t\treturn ranges\n\t\t},\n\t\t/**\n\t\t * Calculate the different chunks to show based on the ranges to highlight.\n\t\t *\n\t\t * @return {Array} The chunks\n\t\t */\n\t\tchunks() {\n\t\t\t// If the ranges array is empty, show only one chunk with all text\n\t\t\tif (this.ranges.length === 0) {\n\t\t\t\treturn [{\n\t\t\t\t\tstart: 0,\n\t\t\t\t\tend: this.text.length,\n\t\t\t\t\thighlight: false,\n\t\t\t\t\ttext: this.text,\n\t\t\t\t}]\n\t\t\t}\n\t\t\t// Calculate the chunks\n\t\t\tconst chunks = []\n\t\t\tlet currentIndex = 0\n\t\t\tlet currentRange = 0\n\t\t\t// Iterate over all characters in the text\n\t\t\twhile (currentIndex < this.text.length) {\n\t\t\t\t// Get the first range to highlight\n\t\t\t\tconst range = this.ranges[currentRange]\n\t\t\t\t// If the range starts at the current index, construct a chunk to highlight,\n\t\t\t\t// set the next range and continue with the next iteration.\n\t\t\t\tif (range.start === currentIndex) {\n\t\t\t\t\tchunks.push({\n\t\t\t\t\t\t...range,\n\t\t\t\t\t\thighlight: true,\n\t\t\t\t\t\ttext: this.text.slice(range.start, range.end),\n\t\t\t\t\t})\n\t\t\t\t\tcurrentRange++\n\t\t\t\t\tcurrentIndex = range.end\n\t\t\t\t\t// If this was the last range to highlight and we haven't reached the end of the text,\n\t\t\t\t\t// add the rest of the text without highlighting.\n\t\t\t\t\tif (currentRange >= this.ranges.length && currentIndex < this.text.length) {\n\t\t\t\t\t\tchunks.push({\n\t\t\t\t\t\t\tstart: currentIndex,\n\t\t\t\t\t\t\tend: this.text.length,\n\t\t\t\t\t\t\thighlight: false,\n\t\t\t\t\t\t\ttext: this.text.slice(currentIndex),\n\t\t\t\t\t\t})\n\t\t\t\t\t\t// Set the current index so the while loop ends.\n\t\t\t\t\t\tcurrentIndex = this.text.length\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// If the current range does start after the current index, construct a chunk without\n\t\t\t\t// highlighting and set the current index to the start of the current range.\n\t\t\t\tchunks.push({\n\t\t\t\t\tstart: currentIndex,\n\t\t\t\t\tend: range.start,\n\t\t\t\t\thighlight: false,\n\t\t\t\t\ttext: this.text.slice(currentIndex, range.start),\n\t\t\t\t})\n\t\t\t\tcurrentIndex = range.start\n\t\t\t}\n\t\t\treturn chunks\n\t\t},\n\t},\n\t/**\n\t * The render function to display the component\n\t *\n\t * @param {Function} h The function to create VNodes\n\t * @return {object} The created VNode\n\t */\n\trender(h) {\n\t\tif (!this.ranges.length) {\n\t\t\treturn h('span', {}, this.text)\n\t\t}\n\n\t\treturn h('span', {}, this.chunks.map(chunk => {\n\t\t\treturn chunk.highlight ? h('strong', {}, chunk.text) : chunk.text\n\t\t}))\n\t},\n}\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-Bz6q9mZw.mjs","sources":["../../src/utils/FindRanges.js","../../src/components/NcHighlight/NcHighlight.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Find the ranges of a substr in a given string\n *\n * @param {string} text The text to search in\n * @param {string} search The text to search for\n * @return {Array} The array of ranges to highlight\n */\nconst FindRanges = (text, search) => {\n\tconst ranges = []\n\tlet currentIndex = 0\n\tlet index = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex)\n\t// Variable to track that we don't iterate more often than the length of the text.\n\t// Shouldn't happen anyway, but just to be sure to not hang the browser for some reason.\n\tlet i = 0\n\twhile (index > -1 && i < text.length) {\n\t\tcurrentIndex = index + search.length\n\t\tranges.push({ start: index, end: currentIndex })\n\n\t\tindex = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex)\n\t\ti++\n\t}\n\treturn ranges\n}\n\nexport default FindRanges\n","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nHighlight a string with html &lt;strong&gt;. Accepts a substring to highlight or an array with ranges.\n\n### Usage\n\n```vue\n<template>\n\t<div>\n\t\t<NcHighlight text=\"Highlight me please!\" search=\"me\" />\n\t\t<br />\n\t\t<NcHighlight text=\"Highlight me please!\" :highlight=\"[{ start: 4, end: 12 }]\" />\n\t</div>\n</template>\n```\n</docs>\n\n<script>\nimport FindRanges from '../../utils/FindRanges.js'\n\nexport default {\n\tname: 'NcHighlight',\n\tprops: {\n\t\t/**\n\t\t * The string to display\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The string to match and highlight\n\t\t */\n\t\tsearch: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The ranges to highlight, takes precedence over the search prop.\n\t\t */\n\t\thighlight: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * The indice ranges which should be highlighted.\n\t\t * If an array with ranges is provided, we use it. Otherwise\n\t\t * we calculate it based on the provided substring to highlight.\n\t\t *\n\t\t * @return {Array} The array of ranges to highlight\n\t\t */\n\t\tranges() {\n\t\t\tlet ranges = []\n\t\t\t// If the search term and the highlight array is empty, return early with empty array\n\t\t\tif (!this.search && this.highlight.length === 0) {\n\t\t\t\treturn ranges\n\t\t\t}\n\n\t\t\t// If there are ranges to highlight provided, we use this array.\n\t\t\tif (this.highlight.length > 0) {\n\t\t\t\tranges = this.highlight\n\t\t\t// Otherwise we check the text to highlight for matches of the search term.\n\t\t\t} else {\n\t\t\t\tranges = FindRanges(this.text, this.search)\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Ensure that the start of each range is equal to or smaller than the end\n\t\t\t */\n\t\t\tranges.forEach((range, i) => {\n\t\t\t\tif (range.end < range.start) {\n\t\t\t\t\tranges[i] = {\n\t\t\t\t\t\tstart: range.end,\n\t\t\t\t\t\tend: range.start,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t/**\n\t\t\t * Validate the ranges array to be within the string length\n\t\t\t * and discard ranges which are completely out of bonds.\n\t\t\t */\n\t\t\tranges = ranges.reduce((validRanges, range) => {\n\t\t\t\tif (range.start < this.text.length && range.end > 0) {\n\t\t\t\t\tvalidRanges.push({\n\t\t\t\t\t\tstart: (range.start < 0) ? 0 : range.start,\n\t\t\t\t\t\tend: (range.end > this.text.length) ? this.text.length : range.end,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn validRanges\n\t\t\t}, [])\n\n\t\t\t/**\n\t\t\t * Sort ranges ascendingly (necessary for next step)\n\t\t\t */\n\t\t\tranges.sort((a, b) => {\n\t\t\t\treturn a.start - b.start\n\t\t\t})\n\n\t\t\t/**\n\t\t\t * Merge overlapping or adjacent ranges\n\t\t\t */\n\t\t\tranges = ranges.reduce((mergedRanges, range) => {\n\t\t\t\t// If there are no ranges, just add the range\n\t\t\t\tif (!mergedRanges.length) {\n\t\t\t\t\tmergedRanges.push(range)\n\t\t\t\t} else {\n\t\t\t\t\t// If the range overlaps the last range, merge them\n\t\t\t\t\tconst idx = mergedRanges.length - 1\n\t\t\t\t\tif (mergedRanges[idx].end >= range.start) {\n\t\t\t\t\t\tmergedRanges[idx] = {\n\t\t\t\t\t\t\tstart: mergedRanges[idx].start,\n\t\t\t\t\t\t\tend: Math.max(mergedRanges[idx].end, range.end),\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmergedRanges.push(range)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn mergedRanges\n\t\t\t}, [])\n\n\t\t\treturn ranges\n\t\t},\n\t\t/**\n\t\t * Calculate the different chunks to show based on the ranges to highlight.\n\t\t *\n\t\t * @return {Array} The chunks\n\t\t */\n\t\tchunks() {\n\t\t\t// If the ranges array is empty, show only one chunk with all text\n\t\t\tif (this.ranges.length === 0) {\n\t\t\t\treturn [{\n\t\t\t\t\tstart: 0,\n\t\t\t\t\tend: this.text.length,\n\t\t\t\t\thighlight: false,\n\t\t\t\t\ttext: this.text,\n\t\t\t\t}]\n\t\t\t}\n\t\t\t// Calculate the chunks\n\t\t\tconst chunks = []\n\t\t\tlet currentIndex = 0\n\t\t\tlet currentRange = 0\n\t\t\t// Iterate over all characters in the text\n\t\t\twhile (currentIndex < this.text.length) {\n\t\t\t\t// Get the first range to highlight\n\t\t\t\tconst range = this.ranges[currentRange]\n\t\t\t\t// If the range starts at the current index, construct a chunk to highlight,\n\t\t\t\t// set the next range and continue with the next iteration.\n\t\t\t\tif (range.start === currentIndex) {\n\t\t\t\t\tchunks.push({\n\t\t\t\t\t\t...range,\n\t\t\t\t\t\thighlight: true,\n\t\t\t\t\t\ttext: this.text.slice(range.start, range.end),\n\t\t\t\t\t})\n\t\t\t\t\tcurrentRange++\n\t\t\t\t\tcurrentIndex = range.end\n\t\t\t\t\t// If this was the last range to highlight and we haven't reached the end of the text,\n\t\t\t\t\t// add the rest of the text without highlighting.\n\t\t\t\t\tif (currentRange >= this.ranges.length && currentIndex < this.text.length) {\n\t\t\t\t\t\tchunks.push({\n\t\t\t\t\t\t\tstart: currentIndex,\n\t\t\t\t\t\t\tend: this.text.length,\n\t\t\t\t\t\t\thighlight: false,\n\t\t\t\t\t\t\ttext: this.text.slice(currentIndex),\n\t\t\t\t\t\t})\n\t\t\t\t\t\t// Set the current index so the while loop ends.\n\t\t\t\t\t\tcurrentIndex = this.text.length\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// If the current range does start after the current index, construct a chunk without\n\t\t\t\t// highlighting and set the current index to the start of the current range.\n\t\t\t\tchunks.push({\n\t\t\t\t\tstart: currentIndex,\n\t\t\t\t\tend: range.start,\n\t\t\t\t\thighlight: false,\n\t\t\t\t\ttext: this.text.slice(currentIndex, range.start),\n\t\t\t\t})\n\t\t\t\tcurrentIndex = range.start\n\t\t\t}\n\t\t\treturn chunks\n\t\t},\n\t},\n\t/**\n\t * The render function to display the component\n\t *\n\t * @param {Function} h The function to create VNodes\n\t * @return {object} The created VNode\n\t */\n\trender(h) {\n\t\tif (!this.ranges.length) {\n\t\t\treturn h('span', {}, this.text)\n\t\t}\n\n\t\treturn h('span', {}, this.chunks.map(chunk => {\n\t\t\treturn chunk.highlight ? h('strong', {}, chunk.text) : chunk.text\n\t\t}))\n\t},\n}\n</script>\n"],"names":[],"mappings":"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"}
@@ -171,3 +171,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
171
171
  const NcHighlight = __component__.exports;
172
172
  exports.FindRanges = FindRanges;
173
173
  exports.NcHighlight = NcHighlight;
174
+ //# sourceMappingURL=index-DIJxEozm.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-DIJxEozm.cjs","sources":["../../src/utils/FindRanges.js","../../src/components/NcHighlight/NcHighlight.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Find the ranges of a substr in a given string\n *\n * @param {string} text The text to search in\n * @param {string} search The text to search for\n * @return {Array} The array of ranges to highlight\n */\nconst FindRanges = (text, search) => {\n\tconst ranges = []\n\tlet currentIndex = 0\n\tlet index = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex)\n\t// Variable to track that we don't iterate more often than the length of the text.\n\t// Shouldn't happen anyway, but just to be sure to not hang the browser for some reason.\n\tlet i = 0\n\twhile (index > -1 && i < text.length) {\n\t\tcurrentIndex = index + search.length\n\t\tranges.push({ start: index, end: currentIndex })\n\n\t\tindex = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex)\n\t\ti++\n\t}\n\treturn ranges\n}\n\nexport default FindRanges\n","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nHighlight a string with html &lt;strong&gt;. Accepts a substring to highlight or an array with ranges.\n\n### Usage\n\n```vue\n<template>\n\t<div>\n\t\t<NcHighlight text=\"Highlight me please!\" search=\"me\" />\n\t\t<br />\n\t\t<NcHighlight text=\"Highlight me please!\" :highlight=\"[{ start: 4, end: 12 }]\" />\n\t</div>\n</template>\n```\n</docs>\n\n<script>\nimport FindRanges from '../../utils/FindRanges.js'\n\nexport default {\n\tname: 'NcHighlight',\n\tprops: {\n\t\t/**\n\t\t * The string to display\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The string to match and highlight\n\t\t */\n\t\tsearch: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The ranges to highlight, takes precedence over the search prop.\n\t\t */\n\t\thighlight: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * The indice ranges which should be highlighted.\n\t\t * If an array with ranges is provided, we use it. Otherwise\n\t\t * we calculate it based on the provided substring to highlight.\n\t\t *\n\t\t * @return {Array} The array of ranges to highlight\n\t\t */\n\t\tranges() {\n\t\t\tlet ranges = []\n\t\t\t// If the search term and the highlight array is empty, return early with empty array\n\t\t\tif (!this.search && this.highlight.length === 0) {\n\t\t\t\treturn ranges\n\t\t\t}\n\n\t\t\t// If there are ranges to highlight provided, we use this array.\n\t\t\tif (this.highlight.length > 0) {\n\t\t\t\tranges = this.highlight\n\t\t\t// Otherwise we check the text to highlight for matches of the search term.\n\t\t\t} else {\n\t\t\t\tranges = FindRanges(this.text, this.search)\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Ensure that the start of each range is equal to or smaller than the end\n\t\t\t */\n\t\t\tranges.forEach((range, i) => {\n\t\t\t\tif (range.end < range.start) {\n\t\t\t\t\tranges[i] = {\n\t\t\t\t\t\tstart: range.end,\n\t\t\t\t\t\tend: range.start,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t/**\n\t\t\t * Validate the ranges array to be within the string length\n\t\t\t * and discard ranges which are completely out of bonds.\n\t\t\t */\n\t\t\tranges = ranges.reduce((validRanges, range) => {\n\t\t\t\tif (range.start < this.text.length && range.end > 0) {\n\t\t\t\t\tvalidRanges.push({\n\t\t\t\t\t\tstart: (range.start < 0) ? 0 : range.start,\n\t\t\t\t\t\tend: (range.end > this.text.length) ? this.text.length : range.end,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn validRanges\n\t\t\t}, [])\n\n\t\t\t/**\n\t\t\t * Sort ranges ascendingly (necessary for next step)\n\t\t\t */\n\t\t\tranges.sort((a, b) => {\n\t\t\t\treturn a.start - b.start\n\t\t\t})\n\n\t\t\t/**\n\t\t\t * Merge overlapping or adjacent ranges\n\t\t\t */\n\t\t\tranges = ranges.reduce((mergedRanges, range) => {\n\t\t\t\t// If there are no ranges, just add the range\n\t\t\t\tif (!mergedRanges.length) {\n\t\t\t\t\tmergedRanges.push(range)\n\t\t\t\t} else {\n\t\t\t\t\t// If the range overlaps the last range, merge them\n\t\t\t\t\tconst idx = mergedRanges.length - 1\n\t\t\t\t\tif (mergedRanges[idx].end >= range.start) {\n\t\t\t\t\t\tmergedRanges[idx] = {\n\t\t\t\t\t\t\tstart: mergedRanges[idx].start,\n\t\t\t\t\t\t\tend: Math.max(mergedRanges[idx].end, range.end),\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmergedRanges.push(range)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn mergedRanges\n\t\t\t}, [])\n\n\t\t\treturn ranges\n\t\t},\n\t\t/**\n\t\t * Calculate the different chunks to show based on the ranges to highlight.\n\t\t *\n\t\t * @return {Array} The chunks\n\t\t */\n\t\tchunks() {\n\t\t\t// If the ranges array is empty, show only one chunk with all text\n\t\t\tif (this.ranges.length === 0) {\n\t\t\t\treturn [{\n\t\t\t\t\tstart: 0,\n\t\t\t\t\tend: this.text.length,\n\t\t\t\t\thighlight: false,\n\t\t\t\t\ttext: this.text,\n\t\t\t\t}]\n\t\t\t}\n\t\t\t// Calculate the chunks\n\t\t\tconst chunks = []\n\t\t\tlet currentIndex = 0\n\t\t\tlet currentRange = 0\n\t\t\t// Iterate over all characters in the text\n\t\t\twhile (currentIndex < this.text.length) {\n\t\t\t\t// Get the first range to highlight\n\t\t\t\tconst range = this.ranges[currentRange]\n\t\t\t\t// If the range starts at the current index, construct a chunk to highlight,\n\t\t\t\t// set the next range and continue with the next iteration.\n\t\t\t\tif (range.start === currentIndex) {\n\t\t\t\t\tchunks.push({\n\t\t\t\t\t\t...range,\n\t\t\t\t\t\thighlight: true,\n\t\t\t\t\t\ttext: this.text.slice(range.start, range.end),\n\t\t\t\t\t})\n\t\t\t\t\tcurrentRange++\n\t\t\t\t\tcurrentIndex = range.end\n\t\t\t\t\t// If this was the last range to highlight and we haven't reached the end of the text,\n\t\t\t\t\t// add the rest of the text without highlighting.\n\t\t\t\t\tif (currentRange >= this.ranges.length && currentIndex < this.text.length) {\n\t\t\t\t\t\tchunks.push({\n\t\t\t\t\t\t\tstart: currentIndex,\n\t\t\t\t\t\t\tend: this.text.length,\n\t\t\t\t\t\t\thighlight: false,\n\t\t\t\t\t\t\ttext: this.text.slice(currentIndex),\n\t\t\t\t\t\t})\n\t\t\t\t\t\t// Set the current index so the while loop ends.\n\t\t\t\t\t\tcurrentIndex = this.text.length\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// If the current range does start after the current index, construct a chunk without\n\t\t\t\t// highlighting and set the current index to the start of the current range.\n\t\t\t\tchunks.push({\n\t\t\t\t\tstart: currentIndex,\n\t\t\t\t\tend: range.start,\n\t\t\t\t\thighlight: false,\n\t\t\t\t\ttext: this.text.slice(currentIndex, range.start),\n\t\t\t\t})\n\t\t\t\tcurrentIndex = range.start\n\t\t\t}\n\t\t\treturn chunks\n\t\t},\n\t},\n\t/**\n\t * The render function to display the component\n\t *\n\t * @param {Function} h The function to create VNodes\n\t * @return {object} The created VNode\n\t */\n\trender(h) {\n\t\tif (!this.ranges.length) {\n\t\t\treturn h('span', {}, this.text)\n\t\t}\n\n\t\treturn h('span', {}, this.chunks.map(chunk => {\n\t\t\treturn chunk.highlight ? h('strong', {}, chunk.text) : chunk.text\n\t\t}))\n\t},\n}\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-DIJxEozm.cjs","sources":["../../src/utils/FindRanges.js","../../src/components/NcHighlight/NcHighlight.vue"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Find the ranges of a substr in a given string\n *\n * @param {string} text The text to search in\n * @param {string} search The text to search for\n * @return {Array} The array of ranges to highlight\n */\nconst FindRanges = (text, search) => {\n\tconst ranges = []\n\tlet currentIndex = 0\n\tlet index = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex)\n\t// Variable to track that we don't iterate more often than the length of the text.\n\t// Shouldn't happen anyway, but just to be sure to not hang the browser for some reason.\n\tlet i = 0\n\twhile (index > -1 && i < text.length) {\n\t\tcurrentIndex = index + search.length\n\t\tranges.push({ start: index, end: currentIndex })\n\n\t\tindex = text.toLowerCase().indexOf(search.toLowerCase(), currentIndex)\n\t\ti++\n\t}\n\treturn ranges\n}\n\nexport default FindRanges\n","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nHighlight a string with html &lt;strong&gt;. Accepts a substring to highlight or an array with ranges.\n\n### Usage\n\n```vue\n<template>\n\t<div>\n\t\t<NcHighlight text=\"Highlight me please!\" search=\"me\" />\n\t\t<br />\n\t\t<NcHighlight text=\"Highlight me please!\" :highlight=\"[{ start: 4, end: 12 }]\" />\n\t</div>\n</template>\n```\n</docs>\n\n<script>\nimport FindRanges from '../../utils/FindRanges.js'\n\nexport default {\n\tname: 'NcHighlight',\n\tprops: {\n\t\t/**\n\t\t * The string to display\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The string to match and highlight\n\t\t */\n\t\tsearch: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The ranges to highlight, takes precedence over the search prop.\n\t\t */\n\t\thighlight: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * The indice ranges which should be highlighted.\n\t\t * If an array with ranges is provided, we use it. Otherwise\n\t\t * we calculate it based on the provided substring to highlight.\n\t\t *\n\t\t * @return {Array} The array of ranges to highlight\n\t\t */\n\t\tranges() {\n\t\t\tlet ranges = []\n\t\t\t// If the search term and the highlight array is empty, return early with empty array\n\t\t\tif (!this.search && this.highlight.length === 0) {\n\t\t\t\treturn ranges\n\t\t\t}\n\n\t\t\t// If there are ranges to highlight provided, we use this array.\n\t\t\tif (this.highlight.length > 0) {\n\t\t\t\tranges = this.highlight\n\t\t\t// Otherwise we check the text to highlight for matches of the search term.\n\t\t\t} else {\n\t\t\t\tranges = FindRanges(this.text, this.search)\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Ensure that the start of each range is equal to or smaller than the end\n\t\t\t */\n\t\t\tranges.forEach((range, i) => {\n\t\t\t\tif (range.end < range.start) {\n\t\t\t\t\tranges[i] = {\n\t\t\t\t\t\tstart: range.end,\n\t\t\t\t\t\tend: range.start,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t/**\n\t\t\t * Validate the ranges array to be within the string length\n\t\t\t * and discard ranges which are completely out of bonds.\n\t\t\t */\n\t\t\tranges = ranges.reduce((validRanges, range) => {\n\t\t\t\tif (range.start < this.text.length && range.end > 0) {\n\t\t\t\t\tvalidRanges.push({\n\t\t\t\t\t\tstart: (range.start < 0) ? 0 : range.start,\n\t\t\t\t\t\tend: (range.end > this.text.length) ? this.text.length : range.end,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn validRanges\n\t\t\t}, [])\n\n\t\t\t/**\n\t\t\t * Sort ranges ascendingly (necessary for next step)\n\t\t\t */\n\t\t\tranges.sort((a, b) => {\n\t\t\t\treturn a.start - b.start\n\t\t\t})\n\n\t\t\t/**\n\t\t\t * Merge overlapping or adjacent ranges\n\t\t\t */\n\t\t\tranges = ranges.reduce((mergedRanges, range) => {\n\t\t\t\t// If there are no ranges, just add the range\n\t\t\t\tif (!mergedRanges.length) {\n\t\t\t\t\tmergedRanges.push(range)\n\t\t\t\t} else {\n\t\t\t\t\t// If the range overlaps the last range, merge them\n\t\t\t\t\tconst idx = mergedRanges.length - 1\n\t\t\t\t\tif (mergedRanges[idx].end >= range.start) {\n\t\t\t\t\t\tmergedRanges[idx] = {\n\t\t\t\t\t\t\tstart: mergedRanges[idx].start,\n\t\t\t\t\t\t\tend: Math.max(mergedRanges[idx].end, range.end),\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmergedRanges.push(range)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn mergedRanges\n\t\t\t}, [])\n\n\t\t\treturn ranges\n\t\t},\n\t\t/**\n\t\t * Calculate the different chunks to show based on the ranges to highlight.\n\t\t *\n\t\t * @return {Array} The chunks\n\t\t */\n\t\tchunks() {\n\t\t\t// If the ranges array is empty, show only one chunk with all text\n\t\t\tif (this.ranges.length === 0) {\n\t\t\t\treturn [{\n\t\t\t\t\tstart: 0,\n\t\t\t\t\tend: this.text.length,\n\t\t\t\t\thighlight: false,\n\t\t\t\t\ttext: this.text,\n\t\t\t\t}]\n\t\t\t}\n\t\t\t// Calculate the chunks\n\t\t\tconst chunks = []\n\t\t\tlet currentIndex = 0\n\t\t\tlet currentRange = 0\n\t\t\t// Iterate over all characters in the text\n\t\t\twhile (currentIndex < this.text.length) {\n\t\t\t\t// Get the first range to highlight\n\t\t\t\tconst range = this.ranges[currentRange]\n\t\t\t\t// If the range starts at the current index, construct a chunk to highlight,\n\t\t\t\t// set the next range and continue with the next iteration.\n\t\t\t\tif (range.start === currentIndex) {\n\t\t\t\t\tchunks.push({\n\t\t\t\t\t\t...range,\n\t\t\t\t\t\thighlight: true,\n\t\t\t\t\t\ttext: this.text.slice(range.start, range.end),\n\t\t\t\t\t})\n\t\t\t\t\tcurrentRange++\n\t\t\t\t\tcurrentIndex = range.end\n\t\t\t\t\t// If this was the last range to highlight and we haven't reached the end of the text,\n\t\t\t\t\t// add the rest of the text without highlighting.\n\t\t\t\t\tif (currentRange >= this.ranges.length && currentIndex < this.text.length) {\n\t\t\t\t\t\tchunks.push({\n\t\t\t\t\t\t\tstart: currentIndex,\n\t\t\t\t\t\t\tend: this.text.length,\n\t\t\t\t\t\t\thighlight: false,\n\t\t\t\t\t\t\ttext: this.text.slice(currentIndex),\n\t\t\t\t\t\t})\n\t\t\t\t\t\t// Set the current index so the while loop ends.\n\t\t\t\t\t\tcurrentIndex = this.text.length\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// If the current range does start after the current index, construct a chunk without\n\t\t\t\t// highlighting and set the current index to the start of the current range.\n\t\t\t\tchunks.push({\n\t\t\t\t\tstart: currentIndex,\n\t\t\t\t\tend: range.start,\n\t\t\t\t\thighlight: false,\n\t\t\t\t\ttext: this.text.slice(currentIndex, range.start),\n\t\t\t\t})\n\t\t\t\tcurrentIndex = range.start\n\t\t\t}\n\t\t\treturn chunks\n\t\t},\n\t},\n\t/**\n\t * The render function to display the component\n\t *\n\t * @param {Function} h The function to create VNodes\n\t * @return {object} The created VNode\n\t */\n\trender(h) {\n\t\tif (!this.ranges.length) {\n\t\t\treturn h('span', {}, this.text)\n\t\t}\n\n\t\treturn h('span', {}, this.chunks.map(chunk => {\n\t\t\treturn chunk.highlight ? h('strong', {}, chunk.text) : chunk.text\n\t\t}))\n\t},\n}\n</script>\n"],"names":[],"mappings":"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"}
@@ -171,3 +171,4 @@ export {
171
171
  USERID_REGEX_WITH_SPACE as a,
172
172
  richEditor as r
173
173
  };
174
+ //# sourceMappingURL=index-G8WQDZ8G.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-G8WQDZ8G.mjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\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 { getAvatarUrl } from '../../utils/getAvatarUrl.ts'\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,\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-inline: $bubble-padding $bubble-padding * 3;\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-inline-start: $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\tinset-inline-start: -100vw;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\toverflow: hidden;\n\t}\n}\n\n</style>\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport NcMentionBubble from '../../components/NcRichContenteditable/NcMentionBubble.vue'\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. Uses positive lookahead (to work on MobileSafari <16.4)\nconst MENTION_START = /(?=[a-z0-9_\\-@.'])\\B/.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|email){1}\\/[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\treturn 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// 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 off new lines, tabs and consecutive whitespaces\n\t\t\treturn this.renderComponentHtml(data, NcMentionBubble)\n\t\t\t\t.replace(/[\\n\\t]/gmi, '')\n\t\t\t\t.replace(/>\\s+</g, '><')\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":[],"mappings":"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"}
1
+ {"version":3,"file":"index-G8WQDZ8G.mjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\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 { getAvatarUrl } from '../../utils/getAvatarUrl.ts'\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,\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-inline: $bubble-padding $bubble-padding * 3;\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-inline-start: $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\tinset-inline-start: -100vw;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\toverflow: hidden;\n\t}\n}\n\n</style>\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport NcMentionBubble from '../../components/NcRichContenteditable/NcMentionBubble.vue'\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. Uses positive lookahead (to work on MobileSafari <16.4)\nconst MENTION_START = /(?=[a-z0-9_\\-@.'])\\B/.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|email){1}\\/[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\treturn 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// 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 off new lines, tabs and consecutive whitespaces\n\t\t\treturn this.renderComponentHtml(data, NcMentionBubble)\n\t\t\t\t.replace(/[\\n\\t]/gmi, '')\n\t\t\t\t.replace(/>\\s+</g, '><')\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":[],"mappings":"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"}
@@ -2,3 +2,4 @@
2
2
  const logger$1 = require("@nextcloud/logger");
3
3
  const logger = logger$1.getLoggerBuilder().detectUser().setApp("@nextcloud/vue").build();
4
4
  exports.logger = logger;
5
+ //# sourceMappingURL=logger-3HuiEIF6.cjs.map
@@ -3,3 +3,4 @@ const logger = getLoggerBuilder().detectUser().setApp("@nextcloud/vue").build();
3
3
  export {
4
4
  logger as l
5
5
  };
6
+ //# sourceMappingURL=logger-D3RVzcfQ.mjs.map
@@ -0,0 +1,9 @@
1
+ var mdiChevronLeft = "M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z";
2
+ var mdiChevronRight = "M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z";
3
+ var mdiClose = "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z";
4
+ export {
5
+ mdiChevronRight as a,
6
+ mdiChevronLeft as b,
7
+ mdiClose as m
8
+ };
9
+ //# sourceMappingURL=mdi-CZJxQPz6.mjs.map