@nextcloud/vue 8.8.0 → 8.9.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 (580) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/Components/NcActionButton.cjs +3 -3
  3. package/dist/Components/NcActionButton.mjs +6 -6
  4. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  5. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  6. package/dist/Components/NcActionCaption.cjs +2 -2
  7. package/dist/Components/NcActionCaption.mjs +2 -2
  8. package/dist/Components/NcActionCheckbox.cjs +2 -2
  9. package/dist/Components/NcActionCheckbox.mjs +4 -4
  10. package/dist/Components/NcActionInput.cjs +1 -1
  11. package/dist/Components/NcActionInput.mjs +1 -1
  12. package/dist/Components/NcActionLink.cjs +3 -3
  13. package/dist/Components/NcActionLink.mjs +4 -4
  14. package/dist/Components/NcActionRadio.cjs +2 -2
  15. package/dist/Components/NcActionRadio.mjs +4 -4
  16. package/dist/Components/NcActionRouter.cjs +3 -3
  17. package/dist/Components/NcActionRouter.mjs +4 -4
  18. package/dist/Components/NcActionSeparator.cjs +2 -2
  19. package/dist/Components/NcActionSeparator.mjs +2 -2
  20. package/dist/Components/NcActionText.cjs +3 -3
  21. package/dist/Components/NcActionText.mjs +4 -4
  22. package/dist/Components/NcActionTextEditable.cjs +3 -3
  23. package/dist/Components/NcActionTextEditable.mjs +6 -6
  24. package/dist/Components/NcActions.cjs +1 -1
  25. package/dist/Components/NcActions.mjs +1 -1
  26. package/dist/Components/NcAppContent.cjs +1 -1
  27. package/dist/Components/NcAppContent.mjs +1 -1
  28. package/dist/Components/NcAppContentDetails.cjs +1 -1
  29. package/dist/Components/NcAppContentDetails.mjs +1 -1
  30. package/dist/Components/NcAppContentList.cjs +1 -1
  31. package/dist/Components/NcAppContentList.mjs +1 -1
  32. package/dist/Components/NcAppNavigation.cjs +1 -1
  33. package/dist/Components/NcAppNavigation.mjs +1 -1
  34. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  35. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  36. package/dist/Components/NcAppNavigationIconBullet.cjs +2 -2
  37. package/dist/Components/NcAppNavigationIconBullet.mjs +2 -2
  38. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  39. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  40. package/dist/Components/NcAppNavigationList.cjs +6 -6
  41. package/dist/Components/NcAppNavigationList.cjs.map +1 -1
  42. package/dist/Components/NcAppNavigationList.mjs +6 -6
  43. package/dist/Components/NcAppNavigationList.mjs.map +1 -1
  44. package/dist/Components/NcAppNavigationNew.cjs +2 -2
  45. package/dist/Components/NcAppNavigationNew.mjs +2 -2
  46. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  47. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  48. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  49. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  50. package/dist/Components/NcAppNavigationSpacer.cjs +2 -2
  51. package/dist/Components/NcAppNavigationSpacer.mjs +2 -2
  52. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  53. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  54. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  55. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  56. package/dist/Components/NcAppSettingsSection.cjs +8 -5
  57. package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
  58. package/dist/Components/NcAppSettingsSection.mjs +8 -5
  59. package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
  60. package/dist/Components/NcAppSidebar.cjs +1 -1
  61. package/dist/Components/NcAppSidebar.mjs +1 -1
  62. package/dist/Components/NcAppSidebarTab.cjs +5 -4
  63. package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
  64. package/dist/Components/NcAppSidebarTab.mjs +5 -4
  65. package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
  66. package/dist/Components/NcAvatar.cjs +1 -1
  67. package/dist/Components/NcAvatar.mjs +1 -1
  68. package/dist/Components/NcBreadcrumb.cjs +1 -1
  69. package/dist/Components/NcBreadcrumb.mjs +1 -1
  70. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  71. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  72. package/dist/Components/NcButton.cjs +27 -26
  73. package/dist/Components/NcButton.cjs.map +1 -1
  74. package/dist/Components/NcButton.mjs +28 -27
  75. package/dist/Components/NcButton.mjs.map +1 -1
  76. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  77. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  78. package/dist/Components/NcColorPicker.cjs +1 -1
  79. package/dist/Components/NcColorPicker.mjs +1 -1
  80. package/dist/Components/NcContent.cjs +1 -1
  81. package/dist/Components/NcContent.mjs +1 -1
  82. package/dist/Components/NcCounterBubble.cjs +2 -2
  83. package/dist/Components/NcCounterBubble.mjs +2 -2
  84. package/dist/Components/NcDashboardWidget.cjs +1 -1
  85. package/dist/Components/NcDashboardWidget.mjs +1 -1
  86. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  87. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  88. package/dist/Components/NcDateTime.cjs +1 -1
  89. package/dist/Components/NcDateTime.mjs +1 -1
  90. package/dist/Components/NcDateTimePicker.cjs +42 -40
  91. package/dist/Components/NcDateTimePicker.cjs.map +1 -1
  92. package/dist/Components/NcDateTimePicker.mjs +27 -25
  93. package/dist/Components/NcDateTimePicker.mjs.map +1 -1
  94. package/dist/Components/NcDateTimePickerNative.cjs +11 -11
  95. package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
  96. package/dist/Components/NcDateTimePickerNative.mjs +12 -12
  97. package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
  98. package/dist/Components/NcDialog.cjs +1 -1
  99. package/dist/Components/NcDialog.mjs +1 -1
  100. package/dist/Components/NcDialogButton.cjs +1 -1
  101. package/dist/Components/NcDialogButton.mjs +1 -1
  102. package/dist/Components/NcEllipsisedOption.cjs +2 -2
  103. package/dist/Components/NcEllipsisedOption.mjs +3 -3
  104. package/dist/Components/NcEmojiPicker.cjs +1 -1
  105. package/dist/Components/NcEmojiPicker.mjs +1 -1
  106. package/dist/Components/NcEmptyContent.cjs +9 -8
  107. package/dist/Components/NcEmptyContent.cjs.map +1 -1
  108. package/dist/Components/NcEmptyContent.mjs +9 -8
  109. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  110. package/dist/Components/NcGuestContent.cjs +2 -2
  111. package/dist/Components/NcGuestContent.mjs +2 -2
  112. package/dist/Components/NcHeaderMenu.cjs +1 -1
  113. package/dist/Components/NcHeaderMenu.mjs +1 -1
  114. package/dist/Components/NcHighlight.cjs +1 -1
  115. package/dist/Components/NcHighlight.mjs +1 -1
  116. package/dist/Components/NcIconSvgWrapper.cjs +1 -1
  117. package/dist/Components/NcIconSvgWrapper.mjs +1 -1
  118. package/dist/Components/NcInputField.cjs +4 -4
  119. package/dist/Components/NcInputField.cjs.map +1 -1
  120. package/dist/Components/NcInputField.mjs +7 -7
  121. package/dist/Components/NcInputField.mjs.map +1 -1
  122. package/dist/Components/NcListItem.cjs +1 -1
  123. package/dist/Components/NcListItem.mjs +1 -1
  124. package/dist/Components/NcListItemIcon.cjs +1 -1
  125. package/dist/Components/NcListItemIcon.mjs +1 -1
  126. package/dist/Components/NcLoadingIcon.cjs +2 -2
  127. package/dist/Components/NcLoadingIcon.mjs +2 -2
  128. package/dist/Components/NcModal.cjs +8 -7
  129. package/dist/Components/NcModal.cjs.map +1 -1
  130. package/dist/Components/NcModal.mjs +19 -18
  131. package/dist/Components/NcModal.mjs.map +1 -1
  132. package/dist/Components/NcNoteCard.cjs +3 -3
  133. package/dist/Components/NcNoteCard.mjs +3 -3
  134. package/dist/Components/NcPasswordField.cjs +1 -1
  135. package/dist/Components/NcPasswordField.mjs +1 -1
  136. package/dist/Components/NcPopover.cjs +1 -1
  137. package/dist/Components/NcPopover.mjs +1 -1
  138. package/dist/Components/NcProgressBar.cjs +1 -1
  139. package/dist/Components/NcProgressBar.mjs +1 -1
  140. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  141. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  142. package/dist/Components/NcRichContenteditable.cjs +1 -1
  143. package/dist/Components/NcRichContenteditable.mjs +2 -2
  144. package/dist/Components/NcRichText.cjs +1 -1
  145. package/dist/Components/NcRichText.cjs.map +1 -1
  146. package/dist/Components/NcRichText.mjs +8 -8
  147. package/dist/Components/NcRichText.mjs.map +1 -1
  148. package/dist/Components/NcSavingIndicatorIcon.cjs +1 -1
  149. package/dist/Components/NcSavingIndicatorIcon.mjs +1 -1
  150. package/dist/Components/NcSelect.cjs +1 -1
  151. package/dist/Components/NcSelect.mjs +1 -1
  152. package/dist/Components/NcSelectTags.cjs +1 -1
  153. package/dist/Components/NcSelectTags.mjs +1 -1
  154. package/dist/Components/NcSettingsInputText.cjs +1 -1
  155. package/dist/Components/NcSettingsInputText.mjs +1 -1
  156. package/dist/Components/NcSettingsSection.cjs +1 -1
  157. package/dist/Components/NcSettingsSection.mjs +1 -1
  158. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  159. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  160. package/dist/Components/NcTextArea.cjs +4 -4
  161. package/dist/Components/NcTextArea.cjs.map +1 -1
  162. package/dist/Components/NcTextArea.mjs +7 -7
  163. package/dist/Components/NcTextArea.mjs.map +1 -1
  164. package/dist/Components/NcTextField.cjs +1 -1
  165. package/dist/Components/NcTextField.mjs +1 -1
  166. package/dist/Components/NcTimezonePicker.cjs +1 -1
  167. package/dist/Components/NcTimezonePicker.mjs +1 -1
  168. package/dist/Components/NcUserBubble.cjs +1 -1
  169. package/dist/Components/NcUserBubble.mjs +1 -1
  170. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  171. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  172. package/dist/Components/NcVNodes.cjs +11 -10
  173. package/dist/Components/NcVNodes.cjs.map +1 -1
  174. package/dist/Components/NcVNodes.mjs +12 -11
  175. package/dist/Components/NcVNodes.mjs.map +1 -1
  176. package/dist/Directives/Linkify.cjs +5 -4
  177. package/dist/Directives/Linkify.cjs.map +1 -1
  178. package/dist/Directives/Linkify.mjs +6 -5
  179. package/dist/Directives/Linkify.mjs.map +1 -1
  180. package/dist/Directives/Tooltip.cjs +1 -1
  181. package/dist/Directives/Tooltip.mjs +1 -1
  182. package/dist/Functions/reference.cjs +2 -1
  183. package/dist/Functions/reference.cjs.map +1 -1
  184. package/dist/Functions/reference.mjs +12 -11
  185. package/dist/Functions/registerReference.cjs +11 -69
  186. package/dist/Functions/registerReference.cjs.map +1 -1
  187. package/dist/Functions/registerReference.mjs +9 -67
  188. package/dist/Functions/registerReference.mjs.map +1 -1
  189. package/dist/Functions/usernameToColor.cjs +1 -1
  190. package/dist/Functions/usernameToColor.mjs +1 -1
  191. package/dist/Mixins/richEditor.cjs +2 -2
  192. package/dist/Mixins/richEditor.mjs +2 -2
  193. package/dist/assets/{NcActions-mt8BQ_bn.css → NcActions-CEbgl0_n.css} +12 -12
  194. package/dist/assets/{NcAppContent-SZz3PTd8.css → NcAppContent-Cv8rRTyy.css} +1 -0
  195. package/dist/assets/{NcAppNavigation-9nlYnuUQ.css → NcAppNavigation-D4ZBCJrI.css} +18 -8
  196. package/dist/assets/{NcAppNavigationList-RooPPg4w.css → NcAppNavigationList-Bj9PwL4X.css} +3 -7
  197. package/dist/assets/{NcDateTimePicker-l-C3PwHK.css → NcDateTimePicker-BChLYJ5X.css} +10 -10
  198. package/dist/assets/{NcEmojiPicker-hTlSVIq0.css → NcEmojiPicker-B-4WNYcx.css} +1 -0
  199. package/dist/assets/{NcRelatedResourcesPanel-oq5eMIoh.css → NcRelatedResourcesPanel-COW9gzml.css} +72 -6
  200. package/dist/assets/{NcRichText-kDp48Nji.css → NcRichText-BMe-xENJ.css} +5 -2
  201. package/dist/assets/{NcSelect-GsLmwj9w.css → NcSelect-4aBmXHhA.css} +3 -0
  202. package/dist/assets/{referencePickerModal-A0PlFUEI.css → referencePickerModal-C1KJzICb.css} +34 -14
  203. package/dist/chunks/{AlertCircleOutline-HYz1lvHU.cjs → AlertCircleOutline-DHFN4OkX.cjs} +1 -1
  204. package/dist/chunks/{AlertCircleOutline-HYz1lvHU.cjs.map → AlertCircleOutline-DHFN4OkX.cjs.map} +1 -1
  205. package/dist/chunks/{AlertCircleOutline-XY0EPUmQ.mjs → AlertCircleOutline-U_bhL30C.mjs} +1 -1
  206. package/dist/chunks/{AlertCircleOutline-XY0EPUmQ.mjs.map → AlertCircleOutline-U_bhL30C.mjs.map} +1 -1
  207. package/dist/chunks/{ArrowLeft-fC5aEWWu.cjs → ArrowLeft-CjNnGIlF.cjs} +1 -1
  208. package/dist/chunks/{ArrowLeft-fC5aEWWu.cjs.map → ArrowLeft-CjNnGIlF.cjs.map} +1 -1
  209. package/dist/chunks/{ArrowLeft-uW5eNVkY.mjs → ArrowLeft-kklNBL9z.mjs} +1 -1
  210. package/dist/chunks/{ArrowLeft-uW5eNVkY.mjs.map → ArrowLeft-kklNBL9z.mjs.map} +1 -1
  211. package/dist/chunks/{ArrowRight-16bLxoZc.mjs → ArrowRight-C3BxTDjF.mjs} +1 -1
  212. package/dist/chunks/{ArrowRight-16bLxoZc.mjs.map → ArrowRight-C3BxTDjF.mjs.map} +1 -1
  213. package/dist/chunks/{ArrowRight-uUC8qW2c.cjs → ArrowRight-CxzzJJQ6.cjs} +1 -1
  214. package/dist/chunks/{ArrowRight-uUC8qW2c.cjs.map → ArrowRight-CxzzJJQ6.cjs.map} +1 -1
  215. package/dist/chunks/{Check-qy5XrF1J.mjs → Check-CRLmJNGG.mjs} +1 -1
  216. package/dist/chunks/{Check-qy5XrF1J.mjs.map → Check-CRLmJNGG.mjs.map} +1 -1
  217. package/dist/chunks/{Check-QBzDcHpr.cjs → Check-CVn5nytg.cjs} +1 -1
  218. package/dist/chunks/{Check-QBzDcHpr.cjs.map → Check-CVn5nytg.cjs.map} +1 -1
  219. package/dist/chunks/{ChevronDown-Hc_DTRav.cjs → ChevronDown-DQPox_nl.cjs} +1 -1
  220. package/dist/chunks/{ChevronDown-Hc_DTRav.cjs.map → ChevronDown-DQPox_nl.cjs.map} +1 -1
  221. package/dist/chunks/{ChevronDown-suAKKmeb.mjs → ChevronDown-HHJdUMN4.mjs} +1 -1
  222. package/dist/chunks/{ChevronDown-suAKKmeb.mjs.map → ChevronDown-HHJdUMN4.mjs.map} +1 -1
  223. package/dist/chunks/{ChevronRight-MdQC55Yq.cjs → ChevronRight-BAJhNawb.cjs} +1 -1
  224. package/dist/chunks/{ChevronRight-MdQC55Yq.cjs.map → ChevronRight-BAJhNawb.cjs.map} +1 -1
  225. package/dist/chunks/{ChevronRight-9owhU_17.mjs → ChevronRight-DL3e8bjj.mjs} +1 -1
  226. package/dist/chunks/{ChevronRight-9owhU_17.mjs.map → ChevronRight-DL3e8bjj.mjs.map} +1 -1
  227. package/dist/chunks/ChevronUp-B6TIgl1a.mjs +37 -0
  228. package/dist/chunks/ChevronUp-B6TIgl1a.mjs.map +1 -0
  229. package/dist/chunks/ChevronUp-kmHRpe7H.cjs +35 -0
  230. package/dist/chunks/ChevronUp-kmHRpe7H.cjs.map +1 -0
  231. package/dist/chunks/{Close-QtH6_3PP.mjs → Close-BtO5TPBO.mjs} +1 -1
  232. package/dist/chunks/{Close-QtH6_3PP.mjs.map → Close-BtO5TPBO.mjs.map} +1 -1
  233. package/dist/chunks/{Close-dotk0707.cjs → Close-DBfrdXMw.cjs} +1 -1
  234. package/dist/chunks/{Close-dotk0707.cjs.map → Close-DBfrdXMw.cjs.map} +1 -1
  235. package/dist/chunks/{DotsHorizontal-6hepLUSS.cjs → DotsHorizontal-B8kTqpHe.cjs} +1 -1
  236. package/dist/chunks/{DotsHorizontal-6hepLUSS.cjs.map → DotsHorizontal-B8kTqpHe.cjs.map} +1 -1
  237. package/dist/chunks/{DotsHorizontal-IbmXTXRA.mjs → DotsHorizontal-DfVgEXgz.mjs} +1 -1
  238. package/dist/chunks/{DotsHorizontal-IbmXTXRA.mjs.map → DotsHorizontal-DfVgEXgz.mjs.map} +1 -1
  239. package/dist/chunks/{GenColors-MjG_SfWn.mjs → GenColors-BteFtwOv.mjs} +3 -3
  240. package/dist/chunks/{GenColors-MjG_SfWn.mjs.map → GenColors-BteFtwOv.mjs.map} +1 -1
  241. package/dist/chunks/{GenColors-LzmNxRE8.cjs → GenColors-vI-bx9ZY.cjs} +3 -3
  242. package/dist/chunks/{GenColors-LzmNxRE8.cjs.map → GenColors-vI-bx9ZY.cjs.map} +1 -1
  243. package/dist/chunks/{GenRandomId-ULxaMkkr.cjs.map → GenRandomId-B2O1GMbH.cjs.map} +1 -1
  244. package/dist/chunks/{GenRandomId-VodkdWbp.mjs.map → GenRandomId-BW3iYFf9.mjs.map} +1 -1
  245. package/dist/chunks/{Linkify-V7PfCeZ8.mjs.map → Linkify-BaDLLFxP.mjs.map} +1 -1
  246. package/dist/chunks/{Linkify-f3s3nAe_.cjs.map → Linkify-Dola0NBa.cjs.map} +1 -1
  247. package/dist/chunks/{NcActionButtonGroup-6TAtQFtq.cjs → NcActionButtonGroup-BdxkXNwc.cjs} +3 -3
  248. package/dist/chunks/{NcActionButtonGroup-6TAtQFtq.cjs.map → NcActionButtonGroup-BdxkXNwc.cjs.map} +1 -1
  249. package/dist/chunks/{NcActionButtonGroup-w6A9Fw2n.mjs → NcActionButtonGroup-SS3PkUD2.mjs} +5 -5
  250. package/dist/chunks/{NcActionButtonGroup-w6A9Fw2n.mjs.map → NcActionButtonGroup-SS3PkUD2.mjs.map} +1 -1
  251. package/dist/chunks/{NcActionInput-yvhGpEsS.mjs → NcActionInput-BHq3Le0q.mjs} +9 -9
  252. package/dist/chunks/{NcActionInput-yvhGpEsS.mjs.map → NcActionInput-BHq3Le0q.mjs.map} +1 -1
  253. package/dist/chunks/{NcActionInput-Fl2UyuVW.cjs → NcActionInput-D308ZntG.cjs} +4 -4
  254. package/dist/chunks/{NcActionInput-Fl2UyuVW.cjs.map → NcActionInput-D308ZntG.cjs.map} +1 -1
  255. package/dist/chunks/{NcActions-rHzi4RcQ.mjs → NcActions-CpU9WXzM.mjs} +135 -131
  256. package/dist/chunks/{NcActions-rHzi4RcQ.mjs.map → NcActions-CpU9WXzM.mjs.map} +1 -1
  257. package/dist/chunks/{NcActions-iACO4laf.cjs → NcActions-Dfkog_G0.cjs} +134 -130
  258. package/dist/chunks/{NcActions-iACO4laf.cjs.map → NcActions-Dfkog_G0.cjs.map} +1 -1
  259. package/dist/chunks/{NcAppContent-c0KjHkMb.mjs → NcAppContent-BDwOdxJE.mjs} +6 -6
  260. package/dist/chunks/{NcAppContent-c0KjHkMb.mjs.map → NcAppContent-BDwOdxJE.mjs.map} +1 -1
  261. package/dist/chunks/{NcAppContent--JRFOyLe.cjs → NcAppContent-kqYjKpzU.cjs} +6 -6
  262. package/dist/chunks/{NcAppContent--JRFOyLe.cjs.map → NcAppContent-kqYjKpzU.cjs.map} +1 -1
  263. package/dist/chunks/{NcAppNavigation-7U8buuT7.mjs → NcAppNavigation-BRtyTvKt.mjs} +19 -19
  264. package/dist/chunks/NcAppNavigation-BRtyTvKt.mjs.map +1 -0
  265. package/dist/chunks/{NcAppNavigation-AcPesLHq.cjs → NcAppNavigation-DMxORgkV.cjs} +15 -15
  266. package/dist/chunks/NcAppNavigation-DMxORgkV.cjs.map +1 -0
  267. package/dist/chunks/{NcAppNavigationCaption-Iuzt-yzb.cjs → NcAppNavigationCaption-BKchbDsJ.cjs} +2 -2
  268. package/dist/chunks/{NcAppNavigationCaption-Iuzt-yzb.cjs.map → NcAppNavigationCaption-BKchbDsJ.cjs.map} +1 -1
  269. package/dist/chunks/{NcAppNavigationCaption-UJ7iY1q5.mjs → NcAppNavigationCaption-DsT6O4Hx.mjs} +3 -3
  270. package/dist/chunks/{NcAppNavigationCaption-UJ7iY1q5.mjs.map → NcAppNavigationCaption-DsT6O4Hx.mjs.map} +1 -1
  271. package/dist/chunks/{NcAppNavigationItem-pvFIrGQv.cjs → NcAppNavigationItem-CABF2T4q.cjs} +47 -79
  272. package/dist/chunks/NcAppNavigationItem-CABF2T4q.cjs.map +1 -0
  273. package/dist/chunks/{NcAppNavigationItem-9n2uXjvj.mjs → NcAppNavigationItem-bjPcEx5D.mjs} +55 -86
  274. package/dist/chunks/NcAppNavigationItem-bjPcEx5D.mjs.map +1 -0
  275. package/dist/chunks/{NcAppNavigationNewItem-jr12p6VL.mjs → NcAppNavigationNewItem-BHCgaCoK.mjs} +3 -3
  276. package/dist/chunks/{NcAppNavigationNewItem-jr12p6VL.mjs.map → NcAppNavigationNewItem-BHCgaCoK.mjs.map} +1 -1
  277. package/dist/chunks/{NcAppNavigationNewItem-CXGDvuMl.cjs → NcAppNavigationNewItem-t45tM5u1.cjs} +2 -2
  278. package/dist/chunks/{NcAppNavigationNewItem-CXGDvuMl.cjs.map → NcAppNavigationNewItem-t45tM5u1.cjs.map} +1 -1
  279. package/dist/chunks/{NcAppNavigationSettings-NRqRmMXw.mjs → NcAppNavigationSettings-BQD7JA4m.mjs} +4 -4
  280. package/dist/chunks/{NcAppNavigationSettings-NRqRmMXw.mjs.map → NcAppNavigationSettings-BQD7JA4m.mjs.map} +1 -1
  281. package/dist/chunks/{NcAppNavigationSettings-Nd8RJnYL.cjs → NcAppNavigationSettings-CBeUiVLk.cjs} +5 -5
  282. package/dist/chunks/{NcAppNavigationSettings-Nd8RJnYL.cjs.map → NcAppNavigationSettings-CBeUiVLk.cjs.map} +1 -1
  283. package/dist/chunks/{NcAppNavigationToggle-kL5XkG2J.mjs → NcAppNavigationToggle-BZxbkhCr.mjs} +3 -3
  284. package/dist/chunks/{NcAppNavigationToggle-kL5XkG2J.mjs.map → NcAppNavigationToggle-BZxbkhCr.mjs.map} +1 -1
  285. package/dist/chunks/{NcAppNavigationToggle-KZ_xHLv9.cjs → NcAppNavigationToggle-DDChOnAq.cjs} +2 -2
  286. package/dist/chunks/{NcAppNavigationToggle-KZ_xHLv9.cjs.map → NcAppNavigationToggle-DDChOnAq.cjs.map} +1 -1
  287. package/dist/chunks/{NcAppSettingsDialog-S9pm_eoJ.mjs → NcAppSettingsDialog-DeFBTD2J.mjs} +35 -28
  288. package/dist/chunks/{NcAppSettingsDialog-S9pm_eoJ.mjs.map → NcAppSettingsDialog-DeFBTD2J.mjs.map} +1 -1
  289. package/dist/chunks/{NcAppSettingsDialog-8l-aNNFq.cjs → NcAppSettingsDialog-EUys9Os_.cjs} +29 -22
  290. package/dist/chunks/{NcAppSettingsDialog-8l-aNNFq.cjs.map → NcAppSettingsDialog-EUys9Os_.cjs.map} +1 -1
  291. package/dist/chunks/{NcAppSidebar-kN5SMxgh.mjs → NcAppSidebar-CdSvRI6l.mjs} +26 -22
  292. package/dist/chunks/{NcAppSidebar-kN5SMxgh.mjs.map → NcAppSidebar-CdSvRI6l.mjs.map} +1 -1
  293. package/dist/chunks/{NcAppSidebar-l6rV-lnp.cjs → NcAppSidebar-Du-IRmEO.cjs} +17 -13
  294. package/dist/chunks/{NcAppSidebar-l6rV-lnp.cjs.map → NcAppSidebar-Du-IRmEO.cjs.map} +1 -1
  295. package/dist/chunks/{NcAvatar-CVj9XTPL.cjs → NcAvatar-BEet_8fB.cjs} +57 -53
  296. package/dist/chunks/{NcAvatar-CVj9XTPL.cjs.map → NcAvatar-BEet_8fB.cjs.map} +1 -1
  297. package/dist/chunks/{NcAvatar-MI8_N7U1.mjs → NcAvatar-e0M-nnF6.mjs} +73 -69
  298. package/dist/chunks/{NcAvatar-MI8_N7U1.mjs.map → NcAvatar-e0M-nnF6.mjs.map} +1 -1
  299. package/dist/chunks/{NcBreadcrumb-LpXeIBcG.mjs → NcBreadcrumb-CVMyBckA.mjs} +7 -7
  300. package/dist/chunks/{NcBreadcrumb-LpXeIBcG.mjs.map → NcBreadcrumb-CVMyBckA.mjs.map} +1 -1
  301. package/dist/chunks/{NcBreadcrumb-EhfhBqAL.cjs → NcBreadcrumb-DVXsgQkE.cjs} +4 -4
  302. package/dist/chunks/{NcBreadcrumb-EhfhBqAL.cjs.map → NcBreadcrumb-DVXsgQkE.cjs.map} +1 -1
  303. package/dist/chunks/{NcBreadcrumbs-zYhyJxEY.cjs → NcBreadcrumbs-DkgzO9f5.cjs} +103 -99
  304. package/dist/chunks/{NcBreadcrumbs-zYhyJxEY.cjs.map → NcBreadcrumbs-DkgzO9f5.cjs.map} +1 -1
  305. package/dist/chunks/{NcBreadcrumbs--4xgDVR7.mjs → NcBreadcrumbs-DqRU0BfB.mjs} +65 -61
  306. package/dist/chunks/{NcBreadcrumbs--4xgDVR7.mjs.map → NcBreadcrumbs-DqRU0BfB.mjs.map} +1 -1
  307. package/dist/chunks/{NcCheckboxRadioSwitch-ymUA5BIs.mjs → NcCheckboxRadioSwitch-7Yib86y3.mjs} +6 -6
  308. package/dist/chunks/{NcCheckboxRadioSwitch-ymUA5BIs.mjs.map → NcCheckboxRadioSwitch-7Yib86y3.mjs.map} +1 -1
  309. package/dist/chunks/{NcCheckboxRadioSwitch-Ox3J2r7t.cjs → NcCheckboxRadioSwitch-Dt96X5bR.cjs} +5 -5
  310. package/dist/chunks/{NcCheckboxRadioSwitch-Ox3J2r7t.cjs.map → NcCheckboxRadioSwitch-Dt96X5bR.cjs.map} +1 -1
  311. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-C1WLneXl.cjs +4 -0
  312. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-C1WLneXl.cjs.map +1 -0
  313. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-CKROuACA.mjs +3 -0
  314. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-CKROuACA.mjs.map +1 -0
  315. package/dist/chunks/{NcColorPicker-7PNp6DUg.cjs → NcColorPicker-BVqwn1Fr.cjs} +4 -5
  316. package/dist/chunks/{NcColorPicker-1m1Xv5fE.mjs.map → NcColorPicker-BVqwn1Fr.cjs.map} +1 -1
  317. package/dist/chunks/{NcColorPicker-1m1Xv5fE.mjs → NcColorPicker-Dkxeigs5.mjs} +11 -12
  318. package/dist/chunks/{NcColorPicker-7PNp6DUg.cjs.map → NcColorPicker-Dkxeigs5.mjs.map} +1 -1
  319. package/dist/chunks/NcContent-Bmeq8hLO.cjs +80 -0
  320. package/dist/chunks/{NcContent-YJfqE5Kv.mjs.map → NcContent-Bmeq8hLO.cjs.map} +1 -1
  321. package/dist/chunks/NcContent-COIw1X7V.mjs +87 -0
  322. package/dist/chunks/{NcContent-L5DDeJmE.cjs.map → NcContent-COIw1X7V.mjs.map} +1 -1
  323. package/dist/chunks/{NcDashboardWidget-oUPY199x.mjs → NcDashboardWidget-Cxz_n1AN.mjs} +6 -6
  324. package/dist/chunks/{NcDashboardWidget-oUPY199x.mjs.map → NcDashboardWidget-Cxz_n1AN.mjs.map} +1 -1
  325. package/dist/chunks/{NcDashboardWidget-KPADyPUh.cjs → NcDashboardWidget-DArU3jbL.cjs} +3 -3
  326. package/dist/chunks/{NcDashboardWidget-KPADyPUh.cjs.map → NcDashboardWidget-DArU3jbL.cjs.map} +1 -1
  327. package/dist/chunks/{NcDashboardWidgetItem-KpDnCM7Y.cjs → NcDashboardWidgetItem-BAhzcFfs.cjs} +2 -2
  328. package/dist/chunks/{NcDashboardWidgetItem-KpDnCM7Y.cjs.map → NcDashboardWidgetItem-BAhzcFfs.cjs.map} +1 -1
  329. package/dist/chunks/{NcDashboardWidgetItem-iZA9aHuL.mjs → NcDashboardWidgetItem-BV2tuXoj.mjs} +4 -4
  330. package/dist/chunks/{NcDashboardWidgetItem-iZA9aHuL.mjs.map → NcDashboardWidgetItem-BV2tuXoj.mjs.map} +1 -1
  331. package/dist/chunks/{NcDateTime-EqdvmXRa.mjs → NcDateTime-B0oaElJX.mjs} +2 -2
  332. package/dist/chunks/{NcDateTime-EqdvmXRa.mjs.map → NcDateTime-B0oaElJX.mjs.map} +1 -1
  333. package/dist/chunks/{NcDateTime-ez2Mc6Ut.cjs → NcDateTime-Dl0XztMt.cjs} +1 -1
  334. package/dist/chunks/{NcDateTime-ez2Mc6Ut.cjs.map → NcDateTime-Dl0XztMt.cjs.map} +1 -1
  335. package/dist/chunks/{NcDialog-f6KwlaqC.cjs → NcDialog-C6nYgBDF.cjs} +3 -3
  336. package/dist/chunks/{NcDialog-f6KwlaqC.cjs.map → NcDialog-C6nYgBDF.cjs.map} +1 -1
  337. package/dist/chunks/{NcDialog-_HZnlBi4.mjs → NcDialog-D6YSjidf.mjs} +5 -5
  338. package/dist/chunks/{NcDialog-_HZnlBi4.mjs.map → NcDialog-D6YSjidf.mjs.map} +1 -1
  339. package/dist/chunks/{NcDialogButton-CtdP0-DO.cjs → NcDialogButton-D7ibBxsQ.cjs} +11 -10
  340. package/dist/chunks/{NcDialogButton-xDZQrfsw.mjs.map → NcDialogButton-D7ibBxsQ.cjs.map} +1 -1
  341. package/dist/chunks/{NcDialogButton-xDZQrfsw.mjs → NcDialogButton-DQFoaN7q.mjs} +14 -13
  342. package/dist/chunks/{NcDialogButton-CtdP0-DO.cjs.map → NcDialogButton-DQFoaN7q.mjs.map} +1 -1
  343. package/dist/chunks/{NcEmojiPicker-gZaqE1rk.cjs → NcEmojiPicker-BCdoIKXJ.cjs} +54 -52
  344. package/dist/chunks/{NcEmojiPicker-gZaqE1rk.cjs.map → NcEmojiPicker-BCdoIKXJ.cjs.map} +1 -1
  345. package/dist/chunks/{NcEmojiPicker-Qi10uLHB.mjs → NcEmojiPicker-fRx7dTTf.mjs} +12 -10
  346. package/dist/chunks/{NcEmojiPicker-Qi10uLHB.mjs.map → NcEmojiPicker-fRx7dTTf.mjs.map} +1 -1
  347. package/dist/chunks/{NcHeaderMenu-0d6eqre6.cjs → NcHeaderMenu-BUeI4DGP.cjs} +11 -9
  348. package/dist/chunks/{NcHeaderMenu-0d6eqre6.cjs.map → NcHeaderMenu-BUeI4DGP.cjs.map} +1 -1
  349. package/dist/chunks/{NcHeaderMenu-91qMsRIw.mjs → NcHeaderMenu-CXBimxcN.mjs} +11 -9
  350. package/dist/chunks/{NcHeaderMenu-91qMsRIw.mjs.map → NcHeaderMenu-CXBimxcN.mjs.map} +1 -1
  351. package/dist/chunks/{NcIconSvgWrapper-CvnWKK7h.mjs → NcIconSvgWrapper-BTdzvQGV.mjs} +3 -3
  352. package/dist/chunks/{NcIconSvgWrapper-CvnWKK7h.mjs.map → NcIconSvgWrapper-BTdzvQGV.mjs.map} +1 -1
  353. package/dist/chunks/{NcIconSvgWrapper-RwagV5P9.cjs → NcIconSvgWrapper-kIn1eQyv.cjs} +3 -3
  354. package/dist/chunks/{NcIconSvgWrapper-RwagV5P9.cjs.map → NcIconSvgWrapper-kIn1eQyv.cjs.map} +1 -1
  355. package/dist/chunks/{NcInputConfirmCancel-EgnZwbmj.mjs → NcInputConfirmCancel-BXZqwqY6.mjs} +5 -5
  356. package/dist/chunks/{NcInputConfirmCancel-EgnZwbmj.mjs.map → NcInputConfirmCancel-BXZqwqY6.mjs.map} +1 -1
  357. package/dist/chunks/{NcInputConfirmCancel-wK1KES_K.cjs → NcInputConfirmCancel-DpgXTGmT.cjs} +2 -2
  358. package/dist/chunks/{NcInputConfirmCancel-wK1KES_K.cjs.map → NcInputConfirmCancel-DpgXTGmT.cjs.map} +1 -1
  359. package/dist/chunks/{NcListItem-DwAhV_Om.mjs → NcListItem-C5oWvAZQ.mjs} +5 -5
  360. package/dist/chunks/{NcListItem-DwAhV_Om.mjs.map → NcListItem-C5oWvAZQ.mjs.map} +1 -1
  361. package/dist/chunks/{NcListItem-7wde4DHX.cjs → NcListItem-wxqWqs4s.cjs} +3 -3
  362. package/dist/chunks/{NcListItem-7wde4DHX.cjs.map → NcListItem-wxqWqs4s.cjs.map} +1 -1
  363. package/dist/chunks/{NcListItemIcon-1qPc7NDv.cjs → NcListItemIcon-DfdkSCin.cjs} +6 -5
  364. package/dist/chunks/{NcListItemIcon-1qPc7NDv.cjs.map → NcListItemIcon-DfdkSCin.cjs.map} +1 -1
  365. package/dist/chunks/{NcListItemIcon-S06TFU1A.mjs → NcListItemIcon-WH9TUCxb.mjs} +8 -7
  366. package/dist/chunks/{NcListItemIcon-S06TFU1A.mjs.map → NcListItemIcon-WH9TUCxb.mjs.map} +1 -1
  367. package/dist/chunks/{NcPasswordField-F30zJsph.mjs → NcPasswordField-BPAivxc_.mjs} +38 -38
  368. package/dist/chunks/{NcPasswordField-F30zJsph.mjs.map → NcPasswordField-BPAivxc_.mjs.map} +1 -1
  369. package/dist/chunks/{NcPasswordField-hngMvgyo.cjs → NcPasswordField-BgNcvN0V.cjs} +16 -16
  370. package/dist/chunks/{NcPasswordField-hngMvgyo.cjs.map → NcPasswordField-BgNcvN0V.cjs.map} +1 -1
  371. package/dist/chunks/{NcPopover-93ns_0K4.mjs → NcPopover--V3R3EKV.mjs} +39 -33
  372. package/dist/chunks/{NcPopover-93ns_0K4.mjs.map → NcPopover--V3R3EKV.mjs.map} +1 -1
  373. package/dist/chunks/{NcPopover-fv7OFtxM.cjs → NcPopover-h-t7Dnjk.cjs} +16 -10
  374. package/dist/chunks/{NcPopover-fv7OFtxM.cjs.map → NcPopover-h-t7Dnjk.cjs.map} +1 -1
  375. package/dist/chunks/{NcProgressBar-BthaVVHU.cjs → NcProgressBar-BYk5hfPI.cjs} +3 -3
  376. package/dist/chunks/{NcProgressBar-BthaVVHU.cjs.map → NcProgressBar-BYk5hfPI.cjs.map} +1 -1
  377. package/dist/chunks/{NcProgressBar-h2ufKS6c.mjs → NcProgressBar-DDAeXyp8.mjs} +3 -3
  378. package/dist/chunks/{NcProgressBar-h2ufKS6c.mjs.map → NcProgressBar-DDAeXyp8.mjs.map} +1 -1
  379. package/dist/chunks/NcRelatedResourcesPanel-Cp8Au2iI.cjs +371 -0
  380. package/dist/chunks/NcRelatedResourcesPanel-Cp8Au2iI.cjs.map +1 -0
  381. package/dist/chunks/NcRelatedResourcesPanel-LTNqJecS.mjs +381 -0
  382. package/dist/chunks/NcRelatedResourcesPanel-LTNqJecS.mjs.map +1 -0
  383. package/dist/chunks/{NcRichContenteditable-lE_j-Gfc.mjs → NcRichContenteditable-CHggLQuR.mjs} +42 -35
  384. package/dist/chunks/{NcRichContenteditable--pSQfJW9.cjs.map → NcRichContenteditable-CHggLQuR.mjs.map} +1 -1
  385. package/dist/chunks/{NcRichContenteditable--pSQfJW9.cjs → NcRichContenteditable-hT5m_2tr.cjs} +120 -113
  386. package/dist/chunks/{NcRichContenteditable-lE_j-Gfc.mjs.map → NcRichContenteditable-hT5m_2tr.cjs.map} +1 -1
  387. package/dist/chunks/{NcRichText-Vm0d22pV.mjs → NcRichText-BBXbh0Hh.mjs} +65 -62
  388. package/dist/chunks/NcRichText-BBXbh0Hh.mjs.map +1 -0
  389. package/dist/chunks/{NcRichText-0eMrB-8S.cjs → NcRichText-BWX8BLVh.cjs} +53 -50
  390. package/dist/chunks/NcRichText-BWX8BLVh.cjs.map +1 -0
  391. package/dist/chunks/{NcSavingIndicatorIcon-wcQ0mBIL.cjs → NcSavingIndicatorIcon-BTvUkUn-.cjs} +1 -1
  392. package/dist/chunks/{NcSavingIndicatorIcon-wcQ0mBIL.cjs.map → NcSavingIndicatorIcon-BTvUkUn-.cjs.map} +1 -1
  393. package/dist/chunks/{NcSavingIndicatorIcon-IqoMFcDK.mjs → NcSavingIndicatorIcon-Bf0SEmgS.mjs} +1 -1
  394. package/dist/chunks/{NcSavingIndicatorIcon-IqoMFcDK.mjs.map → NcSavingIndicatorIcon-Bf0SEmgS.mjs.map} +1 -1
  395. package/dist/chunks/{NcSelect-75KHhmKy.mjs → NcSelect-BVmjiQFa.mjs} +55 -51
  396. package/dist/chunks/{NcSelect-DmqYvkx5.cjs.map → NcSelect-BVmjiQFa.mjs.map} +1 -1
  397. package/dist/chunks/{NcSelect-DmqYvkx5.cjs → NcSelect-DjTSAsNL.cjs} +50 -46
  398. package/dist/chunks/{NcSelect-75KHhmKy.mjs.map → NcSelect-DjTSAsNL.cjs.map} +1 -1
  399. package/dist/chunks/{NcSelectTags-hNbQxoKD.cjs → NcSelectTags-BJvxyO8E.cjs} +2 -11
  400. package/dist/chunks/{NcSelectTags-hNbQxoKD.cjs.map → NcSelectTags-BJvxyO8E.cjs.map} +1 -1
  401. package/dist/chunks/{NcSelectTags--fJnxT3p.mjs → NcSelectTags-Ccv-eQzZ.mjs} +4 -13
  402. package/dist/chunks/{NcSelectTags--fJnxT3p.mjs.map → NcSelectTags-Ccv-eQzZ.mjs.map} +1 -1
  403. package/dist/chunks/{NcSettingsInputText-TsKBeDLR.cjs → NcSettingsInputText-CcO2Du6E.cjs} +3 -3
  404. package/dist/chunks/{NcSettingsInputText-TsKBeDLR.cjs.map → NcSettingsInputText-CcO2Du6E.cjs.map} +1 -1
  405. package/dist/chunks/{NcSettingsInputText-UaZCytJK.mjs → NcSettingsInputText-DXxmqvcd.mjs} +4 -4
  406. package/dist/chunks/{NcSettingsInputText-UaZCytJK.mjs.map → NcSettingsInputText-DXxmqvcd.mjs.map} +1 -1
  407. package/dist/chunks/{NcSettingsSection-bupJ6Jna.mjs → NcSettingsSection-DBe4fKFA.mjs} +3 -3
  408. package/dist/chunks/{NcSettingsSection-bupJ6Jna.mjs.map → NcSettingsSection-DBe4fKFA.mjs.map} +1 -1
  409. package/dist/chunks/{NcSettingsSection-m79BAMzc.cjs → NcSettingsSection-qgIYSB_M.cjs} +3 -3
  410. package/dist/chunks/{NcSettingsSection-m79BAMzc.cjs.map → NcSettingsSection-qgIYSB_M.cjs.map} +1 -1
  411. package/dist/chunks/{NcSettingsSelectGroup--i1OpaqD.cjs → NcSettingsSelectGroup-DD8PEgvQ.cjs} +6 -6
  412. package/dist/chunks/{NcSettingsSelectGroup--i1OpaqD.cjs.map → NcSettingsSelectGroup-DD8PEgvQ.cjs.map} +1 -1
  413. package/dist/chunks/{NcSettingsSelectGroup-OBtXPYek.mjs → NcSettingsSelectGroup-d2TLOW1O.mjs} +8 -8
  414. package/dist/chunks/{NcSettingsSelectGroup-OBtXPYek.mjs.map → NcSettingsSelectGroup-d2TLOW1O.mjs.map} +1 -1
  415. package/dist/chunks/{NcTextField-J7CSrszM.mjs → NcTextField-CU-YIhL3.mjs} +4 -4
  416. package/dist/chunks/{NcTextField-J7CSrszM.mjs.map → NcTextField-CU-YIhL3.mjs.map} +1 -1
  417. package/dist/chunks/{NcTextField-_LseQJYw.cjs → NcTextField-CsnzlYWD.cjs} +2 -2
  418. package/dist/chunks/{NcTextField-_LseQJYw.cjs.map → NcTextField-CsnzlYWD.cjs.map} +1 -1
  419. package/dist/chunks/NcTimezonePicker-C-Ci2IuC.cjs +3780 -0
  420. package/dist/chunks/{NcTimezonePicker-3_GbgBdk.cjs.map → NcTimezonePicker-C-Ci2IuC.cjs.map} +1 -1
  421. package/dist/chunks/NcTimezonePicker-gvp9MAcg.mjs +3786 -0
  422. package/dist/chunks/{NcTimezonePicker-WyBb1HGy.mjs.map → NcTimezonePicker-gvp9MAcg.mjs.map} +1 -1
  423. package/dist/chunks/{NcUserBubble-dk-rgek6.cjs → NcUserBubble-COhpp9l_.cjs} +4 -3
  424. package/dist/chunks/{NcUserBubble-GvPAfzyX.mjs.map → NcUserBubble-COhpp9l_.cjs.map} +1 -1
  425. package/dist/chunks/{NcUserBubble-GvPAfzyX.mjs → NcUserBubble-CbufscPi.mjs} +6 -5
  426. package/dist/chunks/{NcUserBubble-dk-rgek6.cjs.map → NcUserBubble-CbufscPi.mjs.map} +1 -1
  427. package/dist/chunks/{NcUserStatusIcon-Y1esUu9e.mjs → NcUserStatusIcon-0SGYQL9L.mjs} +37 -54
  428. package/dist/chunks/{NcUserStatusIcon-Y1esUu9e.mjs.map → NcUserStatusIcon-0SGYQL9L.mjs.map} +1 -1
  429. package/dist/chunks/NcUserStatusIcon-C7dfcW39.cjs +150 -0
  430. package/dist/chunks/{NcUserStatusIcon-vElqf2Lx.cjs.map → NcUserStatusIcon-C7dfcW39.cjs.map} +1 -1
  431. package/dist/chunks/{ScopeComponent-Cswoc9a6.cjs → ScopeComponent-CSd5rNUA.cjs} +1 -1
  432. package/dist/chunks/{ScopeComponent-Cswoc9a6.cjs.map → ScopeComponent-CSd5rNUA.cjs.map} +1 -1
  433. package/dist/chunks/{ScopeComponent-_g3nK3Vt.mjs → ScopeComponent-LxI8YPnR.mjs} +1 -1
  434. package/dist/chunks/{ScopeComponent-_g3nK3Vt.mjs.map → ScopeComponent-LxI8YPnR.mjs.map} +1 -1
  435. package/dist/chunks/_l10n-B986q8RC.cjs +66 -0
  436. package/dist/chunks/_l10n-B986q8RC.cjs.map +1 -0
  437. package/dist/chunks/_l10n-D8Scz3mH.mjs +68 -0
  438. package/dist/chunks/_l10n-D8Scz3mH.mjs.map +1 -0
  439. package/dist/chunks/_plugin-vue2_normalizer-Bj5bLKV4.mjs.map +1 -0
  440. package/dist/chunks/_plugin-vue2_normalizer-GXKvuwrq.cjs.map +1 -0
  441. package/dist/chunks/{actionGlobal-fRayfdEK.mjs.map → actionGlobal-D49NL940.mjs.map} +1 -1
  442. package/dist/chunks/{actionGlobal-SGFis4LZ.cjs.map → actionGlobal-DL1VaQzF.cjs.map} +1 -1
  443. package/dist/chunks/{actionText-nj1gFMEY.cjs → actionText-iWNpvZuI.cjs} +1 -1
  444. package/dist/chunks/{actionText-nj1gFMEY.cjs.map → actionText-iWNpvZuI.cjs.map} +1 -1
  445. package/dist/chunks/{actionText-bMy_49i8.mjs → actionText-jLsEBszD.mjs} +1 -1
  446. package/dist/chunks/{actionText-bMy_49i8.mjs.map → actionText-jLsEBszD.mjs.map} +1 -1
  447. package/dist/chunks/{autolink-oKM43mOC.mjs.map → autolink-BtgUDDdk.mjs.map} +1 -1
  448. package/dist/chunks/{autolink-gVCgJtXh.cjs.map → autolink-D0rLUkqm.cjs.map} +1 -1
  449. package/dist/chunks/{emoji-mJIuLpNR.cjs → emoji-DEH9dtOa.cjs} +7 -6
  450. package/dist/chunks/{emoji-mJIuLpNR.cjs.map → emoji-DEH9dtOa.cjs.map} +1 -1
  451. package/dist/chunks/{emoji-tllD0Rvt.mjs → emoji-k4gWHxrE.mjs} +4 -3
  452. package/dist/chunks/{emoji-tllD0Rvt.mjs.map → emoji-k4gWHxrE.mjs.map} +1 -1
  453. package/dist/chunks/{focusTrap-Py2bQ9-r.mjs.map → focusTrap-Be9GEB5C.mjs.map} +1 -1
  454. package/dist/chunks/{focusTrap-n3H52LOw.cjs.map → focusTrap-xauhLvvr.cjs.map} +1 -1
  455. package/dist/chunks/index-Bh9FEWbr.cjs +87 -0
  456. package/dist/chunks/index-Bh9FEWbr.cjs.map +1 -0
  457. package/dist/chunks/{index-XRGLuo0a.cjs → index-CIsMzBte.cjs} +9 -11
  458. package/dist/chunks/{index-XRGLuo0a.cjs.map → index-CIsMzBte.cjs.map} +1 -1
  459. package/dist/chunks/index-CU14QsCg.mjs +88 -0
  460. package/dist/chunks/index-CU14QsCg.mjs.map +1 -0
  461. package/dist/chunks/{index-FO4BaGaF.cjs → index-Cke9rKBg.cjs} +1 -1
  462. package/dist/chunks/{index-FO4BaGaF.cjs.map → index-Cke9rKBg.cjs.map} +1 -1
  463. package/dist/chunks/{index-2phCrsSH.mjs → index-CnpswYi6.mjs} +1 -1
  464. package/dist/chunks/{index-2phCrsSH.mjs.map → index-CnpswYi6.mjs.map} +1 -1
  465. package/dist/chunks/{index-05Rfhge1.mjs → index-DYXjj9ET.mjs} +10 -12
  466. package/dist/chunks/{index-05Rfhge1.mjs.map → index-DYXjj9ET.mjs.map} +1 -1
  467. package/dist/chunks/{logger-3m1eQsSo.mjs.map → logger-C7qcfVW8.mjs.map} +1 -1
  468. package/dist/chunks/{logger-G6OKp5ly.cjs.map → logger-D9RRY4er.cjs.map} +1 -1
  469. package/dist/chunks/{referencePickerModal-TxU49swn.mjs → referencePickerModal-DUhJWt2e.mjs} +721 -659
  470. package/dist/chunks/referencePickerModal-DUhJWt2e.mjs.map +1 -0
  471. package/dist/chunks/{referencePickerModal-bKXpgb2c.cjs → referencePickerModal-DV7-XzCc.cjs} +377 -315
  472. package/dist/chunks/referencePickerModal-DV7-XzCc.cjs.map +1 -0
  473. package/dist/chunks/{usernameToColor-AinK73Yf.cjs → usernameToColor-DibvD_OP.cjs} +1 -1
  474. package/dist/chunks/{usernameToColor-AinK73Yf.cjs.map → usernameToColor-DibvD_OP.cjs.map} +1 -1
  475. package/dist/chunks/{usernameToColor-CgFQ3CLQ.mjs → usernameToColor-iYF-oKTP.mjs} +1 -1
  476. package/dist/chunks/{usernameToColor-CgFQ3CLQ.mjs.map → usernameToColor-iYF-oKTP.mjs.map} +1 -1
  477. package/dist/functions/reference/widgets.d.ts +37 -0
  478. package/dist/index.cjs +18 -17
  479. package/dist/index.cjs.map +1 -1
  480. package/dist/index.mjs +112 -111
  481. package/package.json +13 -13
  482. package/dist/chunks/NcAppNavigation-7U8buuT7.mjs.map +0 -1
  483. package/dist/chunks/NcAppNavigation-AcPesLHq.cjs.map +0 -1
  484. package/dist/chunks/NcAppNavigationItem-9n2uXjvj.mjs.map +0 -1
  485. package/dist/chunks/NcAppNavigationItem-pvFIrGQv.cjs.map +0 -1
  486. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-0EjSdGnM.mjs +0 -3
  487. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-0EjSdGnM.mjs.map +0 -1
  488. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-0FNcC7Nt.cjs +0 -4
  489. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-0FNcC7Nt.cjs.map +0 -1
  490. package/dist/chunks/NcContent-L5DDeJmE.cjs +0 -124
  491. package/dist/chunks/NcContent-YJfqE5Kv.mjs +0 -131
  492. package/dist/chunks/NcRelatedResourcesPanel-f1Up3M7Q.cjs +0 -205
  493. package/dist/chunks/NcRelatedResourcesPanel-f1Up3M7Q.cjs.map +0 -1
  494. package/dist/chunks/NcRelatedResourcesPanel-zXNE9qiS.mjs +0 -211
  495. package/dist/chunks/NcRelatedResourcesPanel-zXNE9qiS.mjs.map +0 -1
  496. package/dist/chunks/NcRichText-0eMrB-8S.cjs.map +0 -1
  497. package/dist/chunks/NcRichText-Vm0d22pV.mjs.map +0 -1
  498. package/dist/chunks/NcTimezonePicker-3_GbgBdk.cjs +0 -7195
  499. package/dist/chunks/NcTimezonePicker-WyBb1HGy.mjs +0 -7201
  500. package/dist/chunks/NcUserStatusIcon-vElqf2Lx.cjs +0 -167
  501. package/dist/chunks/_l10n-AmjncLyn.cjs +0 -64
  502. package/dist/chunks/_l10n-AmjncLyn.cjs.map +0 -1
  503. package/dist/chunks/_l10n-Y2fvkVoK.mjs +0 -66
  504. package/dist/chunks/_l10n-Y2fvkVoK.mjs.map +0 -1
  505. package/dist/chunks/_plugin-vue2_normalizer-DCfUPqga.cjs.map +0 -1
  506. package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.mjs.map +0 -1
  507. package/dist/chunks/referencePickerModal-TxU49swn.mjs.map +0 -1
  508. package/dist/chunks/referencePickerModal-bKXpgb2c.cjs.map +0 -1
  509. /package/dist/assets/{NcActionButton-rOZFVQA8.css → NcActionButton-Cs5kVVAD.css} +0 -0
  510. /package/dist/assets/{NcActionButtonGroup-oXobVIqQ.css → NcActionButtonGroup-ChehtUip.css} +0 -0
  511. /package/dist/assets/{NcActionCaption-afJqyJO6.css → NcActionCaption-Bp8mrIk7.css} +0 -0
  512. /package/dist/assets/{NcActionCheckbox-6Pvlr1E7.css → NcActionCheckbox-Do--WvUT.css} +0 -0
  513. /package/dist/assets/{NcActionInput-4zSvDkWm.css → NcActionInput-DjNK8ORa.css} +0 -0
  514. /package/dist/assets/{NcActionLink-zdzQgwtH.css → NcActionLink-DN3NCDC0.css} +0 -0
  515. /package/dist/assets/{NcActionRadio-eOr9Sp-D.css → NcActionRadio-B46v1Kn4.css} +0 -0
  516. /package/dist/assets/{NcActionRouter-MFTD6tYI.css → NcActionRouter-wVMPq1gi.css} +0 -0
  517. /package/dist/assets/{NcActionSeparator-l98xWbiL.css → NcActionSeparator-CX3zFZuI.css} +0 -0
  518. /package/dist/assets/{NcActionText-GJYwsw_U.css → NcActionText-YljCzD9Q.css} +0 -0
  519. /package/dist/assets/{NcActionTextEditable-JrYuWEDd.css → NcActionTextEditable-mti5YQN1.css} +0 -0
  520. /package/dist/assets/{NcAppNavigationCaption-I1dcvB0N.css → NcAppNavigationCaption-jV1y8HQ1.css} +0 -0
  521. /package/dist/assets/{NcAppNavigationIconBullet-Nf3ARMLv.css → NcAppNavigationIconBullet-1_cBEwu8.css} +0 -0
  522. /package/dist/assets/{NcAppNavigationItem-caMsw_N_.css → NcAppNavigationItem-BxoyzD83.css} +0 -0
  523. /package/dist/assets/{NcAppNavigationNew-joyd78FM.css → NcAppNavigationNew-COjJ3vwU.css} +0 -0
  524. /package/dist/assets/{NcAppNavigationNewItem-ue-H4LQY.css → NcAppNavigationNewItem-C574fgtB.css} +0 -0
  525. /package/dist/assets/{NcAppNavigationSettings-Jx_6RpSn.css → NcAppNavigationSettings-nH_pGlKc.css} +0 -0
  526. /package/dist/assets/{NcAppNavigationSpacer-uaft91Uz.css → NcAppNavigationSpacer-C5p-33VT.css} +0 -0
  527. /package/dist/assets/{NcAppNavigationToggle-3vMKtCQL.css → NcAppNavigationToggle-De8wq0JA.css} +0 -0
  528. /package/dist/assets/{NcAppSettingsDialog-0eOo3ERv.css → NcAppSettingsDialog-DR46jcRG.css} +0 -0
  529. /package/dist/assets/{NcAppSettingsSection-ahfdhix_.css → NcAppSettingsSection-BqF92GLH.css} +0 -0
  530. /package/dist/assets/{NcAppSidebar-RkF-tqKy.css → NcAppSidebar-BGQX62or.css} +0 -0
  531. /package/dist/assets/{NcAppSidebarTab-FywbKxqo.css → NcAppSidebarTab-XLBsrGqg.css} +0 -0
  532. /package/dist/assets/{NcAvatar-5H9cqcD1.css → NcAvatar-Dkf1ypwP.css} +0 -0
  533. /package/dist/assets/{NcBreadcrumb-HspaFygg.css → NcBreadcrumb-eyloXKCC.css} +0 -0
  534. /package/dist/assets/{NcBreadcrumbs-KBV0Jccv.css → NcBreadcrumbs-oFXQlxy-.css} +0 -0
  535. /package/dist/assets/{NcButton-4Wj3KJn8.css → NcButton-DhaPcomf.css} +0 -0
  536. /package/dist/assets/{NcCheckboxRadioSwitch-mgKotCbU.css → NcCheckboxRadioSwitch-CaAqi0Jt.css} +0 -0
  537. /package/dist/assets/{NcColorPicker-jW6HOxWA.css → NcColorPicker-CNboc7FY.css} +0 -0
  538. /package/dist/assets/{NcContent-LWR23l9i.css → NcContent-tZHbeX2L.css} +0 -0
  539. /package/dist/assets/{NcCounterBubble-rgkmqN46.css → NcCounterBubble-CuCSao3j.css} +0 -0
  540. /package/dist/assets/{NcDashboardWidget-01deRW9Z.css → NcDashboardWidget-DTV15Fb1.css} +0 -0
  541. /package/dist/assets/{NcDashboardWidgetItem-OL--xR_P.css → NcDashboardWidgetItem-4v77FH89.css} +0 -0
  542. /package/dist/assets/{NcDateTimePickerNative-5yybtvfx.css → NcDateTimePickerNative-DnLJu29_.css} +0 -0
  543. /package/dist/assets/{NcDialog-DN-rY-55.css → NcDialog-M36tj7nk.css} +0 -0
  544. /package/dist/assets/{NcEllipsisedOption-eoI10kvc.css → NcEllipsisedOption-B6gjXSS9.css} +0 -0
  545. /package/dist/assets/{NcEmptyContent-pSz7F6Oe.css → NcEmptyContent-ClLPsXo5.css} +0 -0
  546. /package/dist/assets/{NcGuestContent-mGGTzI2_.css → NcGuestContent-CYYZPMjb.css} +0 -0
  547. /package/dist/assets/{NcHeaderMenu-Srn5iXdL.css → NcHeaderMenu-BKufmJd0.css} +0 -0
  548. /package/dist/assets/{NcIconSvgWrapper-KLotijwU.css → NcIconSvgWrapper-oui2KPBT.css} +0 -0
  549. /package/dist/assets/{NcInputConfirmCancel-ks8z8dIn.css → NcInputConfirmCancel-CSzzPx0i.css} +0 -0
  550. /package/dist/assets/{NcInputField-L2Lld_iG.css → NcInputField-vYuV3-IY.css} +0 -0
  551. /package/dist/assets/{NcListItem-L8LeGwpe.css → NcListItem-vwt4bCl6.css} +0 -0
  552. /package/dist/assets/{NcListItemIcon-PQ2s6ZqX.css → NcListItemIcon-9Dazpmpd.css} +0 -0
  553. /package/dist/assets/{NcLoadingIcon-hZn7TJM8.css → NcLoadingIcon-CFmftMkz.css} +0 -0
  554. /package/dist/assets/{NcMentionBubble-YYl1ib_F.css → NcMentionBubble-BhiXWJv8.css} +0 -0
  555. /package/dist/assets/{NcModal-sIK5sUoC.css → NcModal-CwgrmxSg.css} +0 -0
  556. /package/dist/assets/{NcNoteCard-f0NZpwjL.css → NcNoteCard-B_Q1mnCM.css} +0 -0
  557. /package/dist/assets/{NcPopover-MK4GcuPY.css → NcPopover-wrgZy49g.css} +0 -0
  558. /package/dist/assets/{NcProgressBar-w4-G5gQR.css → NcProgressBar-DDj4bmBB.css} +0 -0
  559. /package/dist/assets/{NcRichContenteditable-rW6l0h3m.css → NcRichContenteditable-CtbqXSHe.css} +0 -0
  560. /package/dist/assets/{NcSettingsInputText-MPi6a3Yy.css → NcSettingsInputText-w-LprdjK.css} +0 -0
  561. /package/dist/assets/{NcSettingsSection-PEWm0eeL.css → NcSettingsSection-8RabR54v.css} +0 -0
  562. /package/dist/assets/{NcSettingsSelectGroup-_Jpb8yE3.css → NcSettingsSelectGroup-D8mlvzIT.css} +0 -0
  563. /package/dist/assets/{NcTextArea-4rVwq6GK.css → NcTextArea-DitXCroY.css} +0 -0
  564. /package/dist/assets/{NcUserBubble-jjzI5imn.css → NcUserBubble-COPMjmKa.css} +0 -0
  565. /package/dist/assets/{NcUserStatusIcon-62u43_6P.css → NcUserStatusIcon-Dra7jf_o.css} +0 -0
  566. /package/dist/assets/{Tooltip-wOLIuz0Q.css → Tooltip-DA4si7PR.css} +0 -0
  567. /package/dist/chunks/{GenRandomId-ULxaMkkr.cjs → GenRandomId-B2O1GMbH.cjs} +0 -0
  568. /package/dist/chunks/{GenRandomId-VodkdWbp.mjs → GenRandomId-BW3iYFf9.mjs} +0 -0
  569. /package/dist/chunks/{Linkify-V7PfCeZ8.mjs → Linkify-BaDLLFxP.mjs} +0 -0
  570. /package/dist/chunks/{Linkify-f3s3nAe_.cjs → Linkify-Dola0NBa.cjs} +0 -0
  571. /package/dist/chunks/{_plugin-vue2_normalizer-u6G_3nkj.mjs → _plugin-vue2_normalizer-Bj5bLKV4.mjs} +0 -0
  572. /package/dist/chunks/{_plugin-vue2_normalizer-DCfUPqga.cjs → _plugin-vue2_normalizer-GXKvuwrq.cjs} +0 -0
  573. /package/dist/chunks/{actionGlobal-fRayfdEK.mjs → actionGlobal-D49NL940.mjs} +0 -0
  574. /package/dist/chunks/{actionGlobal-SGFis4LZ.cjs → actionGlobal-DL1VaQzF.cjs} +0 -0
  575. /package/dist/chunks/{autolink-oKM43mOC.mjs → autolink-BtgUDDdk.mjs} +0 -0
  576. /package/dist/chunks/{autolink-gVCgJtXh.cjs → autolink-D0rLUkqm.cjs} +0 -0
  577. /package/dist/chunks/{focusTrap-Py2bQ9-r.mjs → focusTrap-Be9GEB5C.mjs} +0 -0
  578. /package/dist/chunks/{focusTrap-n3H52LOw.cjs → focusTrap-xauhLvvr.cjs} +0 -0
  579. /package/dist/chunks/{logger-3m1eQsSo.mjs → logger-C7qcfVW8.mjs} +0 -0
  580. /package/dist/chunks/{logger-G6OKp5ly.cjs → logger-D9RRY4er.cjs} +0 -0
@@ -0,0 +1,88 @@
1
+ window._vue_richtext_widgets || (window._vue_richtext_widgets = {});
2
+ const _ = (e) => !!window._vue_richtext_widgets[e], c = (e) => {
3
+ var t;
4
+ return !!((t = window._vue_richtext_widgets[e]) != null && t.hasInteractiveView);
5
+ }, u = (e) => {
6
+ var t;
7
+ return !!((t = window._vue_richtext_widgets[e]) != null && t.fullWidth);
8
+ }, n = (e, t, r = (s) => {
9
+ }, i) => {
10
+ const s = {
11
+ hasInteractiveView: !0,
12
+ fullWidth: !1,
13
+ ...i
14
+ };
15
+ if (window._vue_richtext_widgets[e]) {
16
+ console.error("Widget for id " + e + " already registered");
17
+ return;
18
+ }
19
+ window._vue_richtext_widgets[e] = {
20
+ id: e,
21
+ callback: t,
22
+ onDestroy: r,
23
+ ...s
24
+ };
25
+ }, w = (e, { richObjectType: t, richObject: r, accessible: i, interactive: s }) => {
26
+ if (t !== "open-graph") {
27
+ if (!window._vue_richtext_widgets[t]) {
28
+ console.error("Widget for rich object type " + t + " not registered");
29
+ return;
30
+ }
31
+ window._vue_richtext_widgets[t].callback(e, { richObjectType: t, richObject: r, accessible: i, interactive: s });
32
+ }
33
+ }, l = (e, t) => {
34
+ e !== "open-graph" && window._vue_richtext_widgets[e] && window._vue_richtext_widgets[e].onDestroy(t);
35
+ };
36
+ window._registerWidget = (e, t, r, i) => {
37
+ n(e, t, r, i);
38
+ };
39
+ window._vue_richtext_custom_picker_elements || (window._vue_richtext_custom_picker_elements = {});
40
+ class d {
41
+ /**
42
+ * @param {HTMLElement} element The HTML element
43
+ * @param {object} object The object
44
+ */
45
+ constructor(t, r) {
46
+ this.element = t, this.object = r;
47
+ }
48
+ }
49
+ const a = (e) => !!window._vue_richtext_custom_picker_elements[e], m = (e) => {
50
+ var r;
51
+ const t = (r = window._vue_richtext_custom_picker_elements[e]) == null ? void 0 : r.size;
52
+ return ["small", "normal", "large", "full"].includes(t) ? t : null;
53
+ }, o = (e, t, r = (s) => {
54
+ }, i = "large") => {
55
+ if (window._vue_richtext_custom_picker_elements[e]) {
56
+ console.error("Custom reference picker element for id " + e + " already registered");
57
+ return;
58
+ }
59
+ window._vue_richtext_custom_picker_elements[e] = {
60
+ id: e,
61
+ callback: t,
62
+ onDestroy: r,
63
+ size: i
64
+ };
65
+ }, g = (e, { providerId: t, accessible: r }) => {
66
+ if (!window._vue_richtext_custom_picker_elements[t]) {
67
+ console.error("Custom reference picker element for reference provider ID " + t + " not registered");
68
+ return;
69
+ }
70
+ return window._vue_richtext_custom_picker_elements[t].callback(e, { providerId: t, accessible: r });
71
+ }, h = (e, t, r) => {
72
+ window._vue_richtext_custom_picker_elements[e] && window._vue_richtext_custom_picker_elements[e].onDestroy(t, r);
73
+ };
74
+ window._registerCustomPickerElement = o;
75
+ export {
76
+ d as N,
77
+ w as a,
78
+ o as b,
79
+ g as c,
80
+ a as d,
81
+ u as e,
82
+ l as f,
83
+ h as g,
84
+ c as h,
85
+ _ as i,
86
+ m as j,
87
+ n as r
88
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CU14QsCg.mjs","sources":["../../src/functions/reference/widgets.ts","../../src/functions/reference/customPickerElements.js"],"sourcesContent":["interface WidgetRenderProperties {\n\trichObjectType: string;\n\trichObject: object;\n\taccessible: boolean;\n\tinteractive: boolean;\n}\n\ntype widgetRenderCallback = (el: HTMLElement, properties: WidgetRenderProperties) => void;\ntype widgetDestroyCallback = (el: HTMLElement) => void;\n\ninterface WidgetProps {\n\tid: string;\n\thasInteractiveView: boolean;\n\tfullWidth: boolean;\n\tcallback: widgetRenderCallback;\n\tonDestroy: widgetDestroyCallback;\n}\n\ninterface WidgetPropsOptional {\n\thasInteractiveView?: boolean;\n\tfullWidth?: boolean;\n}\n\ndeclare global {\n\tinterface Window {\n\t\t_vue_richtext_widgets: Record<string, WidgetProps>;\n\t\t_registerWidget: (id: string, callback: widgetRenderCallback, onDestroy: widgetDestroyCallback, props: WidgetPropsOptional) => void;\n\t}\n}\n\nif (!window._vue_richtext_widgets) {\n\twindow._vue_richtext_widgets = {}\n}\n\nconst isWidgetRegistered = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]\n}\n\nconst hasInteractiveView = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]?.hasInteractiveView\n}\n\nexport const hasFullWidth = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]?.fullWidth ?? false\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst registerWidget = (id: string, callback: widgetRenderCallback, onDestroy = (el: HTMLElement) => {}, props: WidgetPropsOptional) => {\n\tconst propsWithDefaults = {\n\t\thasInteractiveView: true,\n\t\tfullWidth: false,\n\t\t...props,\n\t}\n\n\tif (window._vue_richtext_widgets[id]) {\n\t\tconsole.error('Widget for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t\t...propsWithDefaults,\n\t}\n}\n\nconst renderWidget = (el: HTMLElement, { richObjectType, richObject, accessible, interactive }) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\tconsole.error('Widget for rich object type ' + richObjectType + ' not registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive })\n}\n\nconst destroyWidget = (richObjectType: string, el: HTMLElement) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].onDestroy(el)\n}\n\nwindow._registerWidget = (id: string, callback: widgetRenderCallback, onDestroy: widgetDestroyCallback, props: WidgetPropsOptional) => {\n\tregisterWidget(id, callback, onDestroy, props)\n}\n\nexport {\n\tregisterWidget,\n\trenderWidget,\n\tdestroyWidget,\n\tisWidgetRegistered,\n\thasInteractiveView,\n}\n","if (!window._vue_richtext_custom_picker_elements) {\n\twindow._vue_richtext_custom_picker_elements = {}\n}\n\n/**\n * Representation of the render callback result\n * It contains a dom element and an object (Vue instance or other fancy things)\n */\nclass NcCustomPickerRenderResult {\n\n\t/**\n\t * @param {HTMLElement} element The HTML element\n\t * @param {object} object The object\n\t */\n\tconstructor(element, object) {\n\t\tthis.element = element\n\t\tthis.object = object\n\t}\n\n}\n\nconst isCustomPickerElementRegistered = (id) => {\n\treturn !!window._vue_richtext_custom_picker_elements[id]\n}\n\nconst getCustomPickerElementSize = (id) => {\n\tconst size = window._vue_richtext_custom_picker_elements[id]?.size\n\tif (['small', 'normal', 'large', 'full'].includes(size)) {\n\t\treturn size\n\t}\n\treturn null\n}\n\nconst registerCustomPickerElement = (id, callback, onDestroy = (el) => {}, size = 'large') => {\n\tif (window._vue_richtext_custom_picker_elements[id]) {\n\t\tconsole.error('Custom reference picker element for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t\tsize,\n\t}\n}\n\nconst renderCustomPickerElement = (el, { providerId, accessible }) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\tconsole.error('Custom reference picker element for reference provider ID ' + providerId + ' not registered')\n\t\treturn\n\t}\n\n\treturn window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible })\n}\n\nconst destroyCustomPickerElement = (providerId, el, renderResult) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult)\n}\n\nwindow._registerCustomPickerElement = registerCustomPickerElement\n\nexport {\n\tNcCustomPickerRenderResult,\n\tregisterCustomPickerElement,\n\trenderCustomPickerElement,\n\tdestroyCustomPickerElement,\n\tisCustomPickerElementRegistered,\n\tgetCustomPickerElementSize,\n}\n"],"names":["isWidgetRegistered","id","hasInteractiveView","_a","hasFullWidth","registerWidget","callback","onDestroy","el","props","propsWithDefaults","renderWidget","richObjectType","richObject","accessible","interactive","destroyWidget","NcCustomPickerRenderResult","element","object","isCustomPickerElementRegistered","getCustomPickerElementSize","size","registerCustomPickerElement","renderCustomPickerElement","providerId","destroyCustomPickerElement","renderResult"],"mappings":"AA8BK,OAAO,0BACX,OAAO,wBAAwB;AAG1B,MAAAA,IAAqB,CAACC,MACpB,CAAC,CAAC,OAAO,sBAAsBA,CAAE,GAGnCC,IAAqB,CAACD,MAAe;AAtC3C,MAAAE;AAuCC,SAAO,CAAC,GAACA,IAAA,OAAO,sBAAsBF,CAAE,MAA/B,QAAkCE,EAAA;AAC5C,GAEaC,IAAe,CAACH,MAAe;AA1C5C,MAAAE;AA2CC,SAAO,CAAC,GAACA,IAAA,OAAO,sBAAsBF,CAAE,MAA/B,QAAkCE,EAAA;AAC5C,GAGME,IAAiB,CAACJ,GAAYK,GAAgCC,IAAY,CAACC,MAAoB;AAAC,GAAGC,MAA+B;AACvI,QAAMC,IAAoB;AAAA,IACzB,oBAAoB;AAAA,IACpB,WAAW;AAAA,IACX,GAAGD;AAAA,EAAA;AAGA,MAAA,OAAO,sBAAsBR,CAAE,GAAG;AAC7B,YAAA,MAAM,mBAAmBA,IAAK,qBAAqB;AAC3D;AAAA,EACD;AAEO,SAAA,sBAAsBA,CAAE,IAAI;AAAA,IAClC,IAAAA;AAAA,IACA,UAAAK;AAAA,IACA,WAAAC;AAAA,IACA,GAAGG;AAAA,EAAA;AAEL,GAEMC,IAAe,CAACH,GAAiB,EAAE,gBAAAI,GAAgB,YAAAC,GAAY,YAAAC,GAAY,aAAAC,QAAkB;AAClG,MAAIH,MAAmB,cAIvB;AAAA,QAAI,CAAC,OAAO,sBAAsBA,CAAc,GAAG;AAC1C,cAAA,MAAM,iCAAiCA,IAAiB,iBAAiB;AACjF;AAAA,IACD;AAEO,WAAA,sBAAsBA,CAAc,EAAE,SAASJ,GAAI,EAAE,gBAAAI,GAAgB,YAAAC,GAAY,YAAAC,GAAY,aAAAC,EAAa,CAAA;AAAA;AAClH,GAEMC,IAAgB,CAACJ,GAAwBJ,MAAoB;AAClE,EAAII,MAAmB,gBAIlB,OAAO,sBAAsBA,CAAc,KAIhD,OAAO,sBAAsBA,CAAc,EAAE,UAAUJ,CAAE;AAC1D;AAEA,OAAO,kBAAkB,CAACP,GAAYK,GAAgCC,GAAkCE,MAA+B;AACvH,EAAAJ,EAAAJ,GAAIK,GAAUC,GAAWE,CAAK;AAC9C;AC9FK,OAAO,yCACX,OAAO,uCAAuC,CAAE;AAOjD,MAAMQ,EAA2B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhC,YAAYC,GAASC,GAAQ;AAC5B,SAAK,UAAUD,GACf,KAAK,SAASC;AAAA,EACd;AAEF;AAEK,MAACC,IAAkC,CAACnB,MACjC,CAAC,CAAC,OAAO,qCAAqCA,CAAE,GAGlDoB,IAA6B,CAACpB,MAAO;ADK3C,MAAAE;ACJC,QAAMmB,KAAOnB,IAAA,OAAO,qCAAqCF,CAAE,MAA9C,gBAAAE,EAAiD;AAC9D,SAAI,CAAC,SAAS,UAAU,SAAS,MAAM,EAAE,SAASmB,CAAI,IAC9CA,IAED;AACR,GAEMC,IAA8B,CAACtB,GAAIK,GAAUC,IAAY,CAACC,MAAO;AAAA,GAAIc,IAAO,YAAY;AAC7F,MAAI,OAAO,qCAAqCrB,CAAE,GAAG;AACpD,YAAQ,MAAM,4CAA4CA,IAAK,qBAAqB;AACpF;AAAA,EACA;AAED,SAAO,qCAAqCA,CAAE,IAAI;AAAA,IACjD,IAAAA;AAAA,IACA,UAAAK;AAAA,IACA,WAAAC;AAAA,IACA,MAAAe;AAAA,EACA;AACF,GAEME,IAA4B,CAAChB,GAAI,EAAE,YAAAiB,GAAY,YAAAX,EAAU,MAAO;AACrE,MAAI,CAAC,OAAO,qCAAqCW,CAAU,GAAG;AAC7D,YAAQ,MAAM,+DAA+DA,IAAa,iBAAiB;AAC3G;AAAA,EACA;AAED,SAAO,OAAO,qCAAqCA,CAAU,EAAE,SAASjB,GAAI,EAAE,YAAAiB,GAAY,YAAAX,GAAY;AACvG,GAEMY,IAA6B,CAACD,GAAYjB,GAAImB,MAAiB;AACpE,EAAK,OAAO,qCAAqCF,CAAU,KAI3D,OAAO,qCAAqCA,CAAU,EAAE,UAAUjB,GAAImB,CAAY;AACnF;AAEA,OAAO,+BAA+BJ;"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const l = require("./_plugin-vue2_normalizer-DCfUPqga.cjs");
2
+ const l = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs");
3
3
  /**
4
4
  * @copyright Copyright (c) 2020 Raimund Schlüßler <raimund.schluessler@mailbox.org>
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index-FO4BaGaF.cjs","sources":["../../src/utils/FindRanges.js","../../src/components/NcHighlight/NcHighlight.vue"],"sourcesContent":["/**\n * @copyright Copyright (c) 2020 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\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 - @copyright Copyright (c) 2021 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<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":["FindRanges","text","search","ranges","currentIndex","index","_sfc_main","range","i","validRanges","a","b","mergedRanges","idx","chunks","currentRange","h","chunk"],"mappings":"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"}
1
+ {"version":3,"file":"index-Cke9rKBg.cjs","sources":["../../src/utils/FindRanges.js","../../src/components/NcHighlight/NcHighlight.vue"],"sourcesContent":["/**\n * @copyright Copyright (c) 2020 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\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 - @copyright Copyright (c) 2021 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<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":["FindRanges","text","search","ranges","currentIndex","index","_sfc_main","range","i","validRanges","a","b","mergedRanges","idx","chunks","currentRange","h","chunk"],"mappings":";;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BK,MAACA,IAAa,CAACC,GAAMC,MAAW;AACpC,QAAMC,IAAS,CAAE;AACjB,MAAIC,IAAe,GACfC,IAAQJ,EAAK,YAAa,EAAC,QAAQC,EAAO,YAAa,GAAEE,CAAY,GAGrE,IAAI;AACR,SAAOC,IAAQ,MAAM,IAAIJ,EAAK;AAC7B,IAAAG,IAAeC,IAAQH,EAAO,QAC9BC,EAAO,KAAK,EAAE,OAAOE,GAAO,KAAKD,GAAc,GAE/CC,IAAQJ,EAAK,YAAa,EAAC,QAAQC,EAAO,YAAa,GAAEE,CAAY,GACrE;AAED,SAAOD;AACR,GCAAG,IAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,SAAA;AACA,UAAAH,IAAA,CAAA;AAEA,aAAA,CAAA,KAAA,UAAA,KAAA,UAAA,WAAA,MAKA,KAAA,UAAA,SAAA,IACAA,IAAA,KAAA,YAGAA,IAAAH,EAAA,KAAA,MAAA,KAAA,MAAA,GAMAG,EAAA,QAAA,CAAAI,GAAAC,MAAA;AACA,QAAAD,EAAA,MAAAA,EAAA,UACAJ,EAAAK,CAAA,IAAA;AAAA,UACA,OAAAD,EAAA;AAAA,UACA,KAAAA,EAAA;AAAA,QACA;AAAA,MAEA,CAAA,GAMAJ,IAAAA,EAAA,OAAA,CAAAM,GAAAF,OACAA,EAAA,QAAA,KAAA,KAAA,UAAAA,EAAA,MAAA,KACAE,EAAA,KAAA;AAAA,QACA,OAAAF,EAAA,QAAA,IAAA,IAAAA,EAAA;AAAA,QACA,KAAAA,EAAA,MAAA,KAAA,KAAA,SAAA,KAAA,KAAA,SAAAA,EAAA;AAAA,MACA,CAAA,GAEAE,IACA,EAAA,GAKAN,EAAA,KAAA,CAAAO,GAAAC,MACAD,EAAA,QAAAC,EAAA,KACA,GAKAR,IAAAA,EAAA,OAAA,CAAAS,GAAAL,MAAA;AAEA,YAAA,CAAAK,EAAA;AACA,UAAAA,EAAA,KAAAL,CAAA;AAAA,aACA;AAEA,gBAAAM,IAAAD,EAAA,SAAA;AACA,UAAAA,EAAAC,CAAA,EAAA,OAAAN,EAAA,QACAK,EAAAC,CAAA,IAAA;AAAA,YACA,OAAAD,EAAAC,CAAA,EAAA;AAAA,YACA,KAAA,KAAA,IAAAD,EAAAC,CAAA,EAAA,KAAAN,EAAA,GAAA;AAAA,UACA,IAEAK,EAAA,KAAAL,CAAA;AAAA,QAEA;AACA,eAAAK;AAAA,MACA,GAAA,EAAA,IAEAT;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,SAAA;AAEA,UAAA,KAAA,OAAA,WAAA;AACA,eAAA,CAAA;AAAA,UACA,OAAA;AAAA,UACA,KAAA,KAAA,KAAA;AAAA,UACA,WAAA;AAAA,UACA,MAAA,KAAA;AAAA,QACA,CAAA;AAGA,YAAAW,IAAA,CAAA;AACA,UAAAV,IAAA,GACAW,IAAA;AAEA,aAAAX,IAAA,KAAA,KAAA,UAAA;AAEA,cAAAG,IAAA,KAAA,OAAAQ,CAAA;AAGA,YAAAR,EAAA,UAAAH,GAAA;AACA,UAAAU,EAAA,KAAA;AAAA,YACA,GAAAP;AAAA,YACA,WAAA;AAAA,YACA,MAAA,KAAA,KAAA,MAAAA,EAAA,OAAAA,EAAA,GAAA;AAAA,UACA,CAAA,GACAQ,KACAX,IAAAG,EAAA,KAGAQ,KAAA,KAAA,OAAA,UAAAX,IAAA,KAAA,KAAA,WACAU,EAAA,KAAA;AAAA,YACA,OAAAV;AAAA,YACA,KAAA,KAAA,KAAA;AAAA,YACA,WAAA;AAAA,YACA,MAAA,KAAA,KAAA,MAAAA,CAAA;AAAA,UACA,CAAA,GAEAA,IAAA,KAAA,KAAA;AAEA;AAAA,QACA;AAGA,QAAAU,EAAA,KAAA;AAAA,UACA,OAAAV;AAAA,UACA,KAAAG,EAAA;AAAA,UACA,WAAA;AAAA,UACA,MAAA,KAAA,KAAA,MAAAH,GAAAG,EAAA,KAAA;AAAA,QACA,CAAA,GACAH,IAAAG,EAAA;AAAA,MACA;AACA,aAAAO;AAAA,IACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAAE,GAAA;AACA,WAAA,KAAA,OAAA,SAIAA,EAAA,QAAA,CAAA,GAAA,KAAA,OAAA,IAAA,CAAAC,MACAA,EAAA,YAAAD,EAAA,UAAA,CAAA,GAAAC,EAAA,IAAA,IAAAA,EAAA,IACA,CAAA,IALAD,EAAA,QAAA,IAAA,KAAA,IAAA;AAAA,EAMA;AACA;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { n as r } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
1
+ import { n as r } from "./_plugin-vue2_normalizer-Bj5bLKV4.mjs";
2
2
  /**
3
3
  * @copyright Copyright (c) 2020 Raimund Schlüßler <raimund.schluessler@mailbox.org>
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index-2phCrsSH.mjs","sources":["../../src/utils/FindRanges.js","../../src/components/NcHighlight/NcHighlight.vue"],"sourcesContent":["/**\n * @copyright Copyright (c) 2020 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\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 - @copyright Copyright (c) 2021 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<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":["FindRanges","text","search","ranges","currentIndex","index","_sfc_main","range","i","validRanges","a","b","mergedRanges","idx","chunks","currentRange","h","chunk"],"mappings":"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"}
1
+ {"version":3,"file":"index-CnpswYi6.mjs","sources":["../../src/utils/FindRanges.js","../../src/components/NcHighlight/NcHighlight.vue"],"sourcesContent":["/**\n * @copyright Copyright (c) 2020 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\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 - @copyright Copyright (c) 2021 Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @author Raimund Schlüßler <raimund.schluessler@mailbox.org>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<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":["FindRanges","text","search","ranges","currentIndex","index","_sfc_main","range","i","validRanges","a","b","mergedRanges","idx","chunks","currentRange","h","chunk"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import '../assets/NcMentionBubble-YYl1ib_F.css';
1
+ import '../assets/NcMentionBubble-BhiXWJv8.css';
2
2
  import { generateUrl as u } from "@nextcloud/router";
3
3
  /* empty css */
4
- import { n as p } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
5
- import { L as m } from "./Linkify-V7PfCeZ8.mjs";
4
+ import { n as p } from "./_plugin-vue2_normalizer-Bj5bLKV4.mjs";
5
+ import { L as m } from "./Linkify-BaDLLFxP.mjs";
6
6
  import d from "escape-html";
7
7
  import s from "striptags";
8
8
  import b from "vue";
@@ -48,7 +48,7 @@ const _ = {
48
48
  return this.iconUrl ? this.iconUrl : this.id && this.source === "users" ? this.getAvatarUrl(this.id, 44) : null;
49
49
  },
50
50
  mentionText() {
51
- return !this.id.includes(" ") && !this.id.includes("/") ? `@${this.id}` : `@"${this.id}"`;
51
+ return !this.id.includes(" ") && !this.id.includes("/") ? "@".concat(this.id) : '@"'.concat(this.id, '"');
52
52
  },
53
53
  // Fallback to title for compatibility
54
54
  labelWithFallback() {
@@ -66,7 +66,7 @@ const _ = {
66
66
  };
67
67
  var f = function() {
68
68
  var e = this, n = e._self._c;
69
- return n("span", { staticClass: "mention-bubble", class: { "mention-bubble--primary": e.primary }, attrs: { contenteditable: "false" } }, [n("span", { staticClass: "mention-bubble__wrapper" }, [n("span", { staticClass: "mention-bubble__content" }, [n("span", { staticClass: "mention-bubble__icon", class: [e.icon, `mention-bubble__icon--${e.avatarUrl ? "with-avatar" : ""}`], style: e.avatarUrl ? { backgroundImage: `url(${e.avatarUrl})` } : null }), n("span", { staticClass: "mention-bubble__title", attrs: { role: "heading", title: e.labelWithFallback } })]), n("span", { staticClass: "mention-bubble__select", attrs: { role: "none" } }, [e._v(e._s(e.mentionText))])])]);
69
+ return n("span", { staticClass: "mention-bubble", class: { "mention-bubble--primary": e.primary }, attrs: { contenteditable: "false" } }, [n("span", { staticClass: "mention-bubble__wrapper" }, [n("span", { staticClass: "mention-bubble__content" }, [n("span", { staticClass: "mention-bubble__icon", class: [e.icon, "mention-bubble__icon--".concat(e.avatarUrl ? "with-avatar" : "")], style: e.avatarUrl ? { backgroundImage: "url(".concat(e.avatarUrl, ")") } : null }), n("span", { staticClass: "mention-bubble__title", attrs: { role: "heading", title: e.labelWithFallback } })]), n("span", { staticClass: "mention-bubble__select", attrs: { role: "none" } }, [e._v(e._s(e.mentionText))])])]);
70
70
  }, g = [], h = /* @__PURE__ */ p(
71
71
  _,
72
72
  f,
@@ -99,7 +99,7 @@ const y = h.exports;
99
99
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
100
100
  *
101
101
  */
102
- const l = "(?:^|\\s)", o = "(?:[^a-z]|$)", E = new RegExp(`${l}(@[a-zA-Z0-9_.@\\-']+)(${o})`, "gi"), $ = new RegExp(`${l}(@&quot;[a-zA-Z0-9 _/.@\\-']+&quot;)(${o})`, "gi"), N = {
102
+ const l = "(?:^|\\s)", o = "(?:[^a-z]|$)", E = new RegExp("".concat(l, "(@[a-zA-Z0-9_.@\\-']+)(").concat(o, ")"), "gi"), $ = new RegExp("".concat(l, "(@&quot;[a-zA-Z0-9 _/.@\\-']+&quot;)(").concat(o, ")"), "gi"), N = {
103
103
  props: {
104
104
  userData: {
105
105
  type: Object,
@@ -128,10 +128,8 @@ const l = "(?:^|\\s)", o = "(?:[^a-z]|$)", E = new RegExp(`${l}(@[a-zA-Z0-9_.@\\
128
128
  * @return {string}
129
129
  */
130
130
  parseContent(t) {
131
- let e = t.replace(/<br>/gmi, `
132
- `);
133
- return e = e.replace(/&nbsp;/gmi, " "), e = e.replace(/&amp;/gmi, "&"), e = e.replace(/<\/div>/gmi, `
134
- `), e = s(e, "<div>"), e = s(e), e;
131
+ let e = t.replace(/<br>/gmi, "\n");
132
+ return e = e.replace(/&nbsp;/gmi, " "), e = e.replace(/&amp;/gmi, "&"), e = e.replace(/<\/div>/gmi, "\n"), e = s(e, "<div>"), e = s(e), e;
135
133
  },
136
134
  /**
137
135
  * Generate an autocompletion popup entry template
@@ -141,9 +139,9 @@ const l = "(?:^|\\s)", o = "(?:[^a-z]|$)", E = new RegExp(`${l}(@[a-zA-Z0-9_.@\\
141
139
  */
142
140
  genSelectTemplate(t) {
143
141
  if (typeof t > "u")
144
- return `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`;
142
+ return "".concat(this.autocompleteTribute.current.collection.trigger).concat(this.autocompleteTribute.current.mentionText);
145
143
  const e = this.userData[t];
146
- return e ? this.renderComponentHtml(e, y).replace(/[\n\t]/gmi, "") : !t.includes(" ") && !t.includes("/") ? `@${t}` : `@"${t}"`;
144
+ return e ? this.renderComponentHtml(e, y).replace(/[\n\t]/gmi, "") : !t.includes(" ") && !t.includes("/") ? "@".concat(t) : '@"'.concat(t, '"');
147
145
  },
148
146
  /**
149
147
  * Render a component and return its html content
@@ -1 +1 @@
1
- {"version":3,"file":"index-05Rfhge1.mjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"labelWithFallback\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'NcMentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * @deprecated Use `label` instead\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticonUrl: {\n\t\t\ttype: [String, null],\n\t\t\tdefault: null,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\tif (this.iconUrl) {\n\t\t\t\treturn this.iconUrl\n\t\t\t}\n\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn !this.id.includes(' ') && !this.id.includes('/')\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t\t// Fallback to title for compatibility\n\t\tlabelWithFallback() {\n\t\t\treturn this.label || this.title\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl(user, size) {\n\t\t\treturn generateUrl('/avatar/{user}/{size}', {\n\t\t\t\tuser,\n\t\t\t\tsize,\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-element-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-right: $bubble-padding * 3;\n\t\tpadding-left: $bubble-padding;\n\t\tborder-radius: math.div($bubble-height, 2);\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tposition: relative;\n\t\twidth: $bubble-avatar-size;\n\t\theight: $bubble-avatar-size;\n\t\tborder-radius: math.div($bubble-avatar-size, 2);\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\n\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\tmargin-left: $bubble-padding;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Put title in ::before so it is not selectable\n\t\t&::before {\n\t\t\tcontent: attr(title);\n\t\t}\n\t}\n\n\t// Hide the mention id so it is selectable\n\t&__select {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\tleft: -1000px;\n\t}\n}\n\n</style>\n","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport NcMentionBubble from '../../components/NcRichContenteditable/NcMentionBubble.vue'\nimport Linkify from '../../utils/Linkify.js'\n\nimport escapeHtml from 'escape-html'\nimport stripTags from 'striptags'\nimport Vue from 'vue'\n\n// Beginning or whitespace. Non-capturing group\nconst MENTION_START = '(?:^|\\\\s)'\n// Anything that is not text or end-of-line. Non-capturing group\nconst MENTION_END = '(?:[^a-z]|$)'\nexport const USERID_REGEX = new RegExp(`${MENTION_START}(@[a-zA-Z0-9_.@\\\\-']+)(${MENTION_END})`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}(@&quot;[a-zA-Z0-9 _/.@\\\\-']+&quot;)(${MENTION_END})`, '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 the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\t// This part doesn't contain a mention, let's make sure links are parsed\n\t\t\t\t\t\treturn Linkify(part)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the leading @ and all \"\n\t\t\t\t\tconst id = part.slice(1).replace(/&quot;/gi, '')\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn ' ' + this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&amp;/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @return {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content.replace(/<br>/gmi, '\\n')\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}`\n\t\t\t\treturn !value.includes(' ') && !value.includes('/')\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip of new lines and tabs\n\t\t\treturn this.renderComponentHtml(data, NcMentionBubble).replace(/[\\n\\t]/gmi, '')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {object} propsData the props to pass to the component\n\t\t * @param {object} component the component to render\n\t\t * @return {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(propsData, component) {\n\t\t\tconst View = Vue.extend(component)\n\t\t\tconst Item = new View({\n\t\t\t\tpropsData,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst wrapper = document.createElement('div')\n\t\t\tconst mount = document.createElement('div')\n\t\t\twrapper.style.display = 'none'\n\t\t\twrapper.appendChild(mount)\n\t\t\tdocument.body.appendChild(wrapper)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.$mount(mount)\n\t\t\tconst renderedHtml = wrapper.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.$destroy()\n\t\t\twrapper.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n"],"names":["_sfc_main","user","size","generateUrl","MENTION_START","MENTION_END","USERID_REGEX","USERID_REGEX_WITH_SPACE","richEditor","value","escapeHtml","part","Linkify","id","content","text","stripTags","data","NcMentionBubble","propsData","component","View","Vue","Item","wrapper","mount","renderedHtml"],"mappings":"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"}
1
+ {"version":3,"file":"index-DYXjj9ET.mjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"labelWithFallback\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'NcMentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * @deprecated Use `label` instead\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticonUrl: {\n\t\t\ttype: [String, null],\n\t\t\tdefault: null,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\tif (this.iconUrl) {\n\t\t\t\treturn this.iconUrl\n\t\t\t}\n\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn !this.id.includes(' ') && !this.id.includes('/')\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t\t// Fallback to title for compatibility\n\t\tlabelWithFallback() {\n\t\t\treturn this.label || this.title\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl(user, size) {\n\t\t\treturn generateUrl('/avatar/{user}/{size}', {\n\t\t\t\tuser,\n\t\t\t\tsize,\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-element-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-right: $bubble-padding * 3;\n\t\tpadding-left: $bubble-padding;\n\t\tborder-radius: math.div($bubble-height, 2);\n\t\tbackground-color: var(--color-background-dark);\n\t}\n\n\t&__icon {\n\t\tposition: relative;\n\t\twidth: $bubble-avatar-size;\n\t\theight: $bubble-avatar-size;\n\t\tborder-radius: math.div($bubble-avatar-size, 2);\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: $bubble-avatar-size - 2 * $bubble-padding;\n\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\tmargin-left: $bubble-padding;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\t// Put title in ::before so it is not selectable\n\t\t&::before {\n\t\t\tcontent: attr(title);\n\t\t}\n\t}\n\n\t// Hide the mention id so it is selectable\n\t&__select {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\tleft: -1000px;\n\t}\n}\n\n</style>\n","/**\n * @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport NcMentionBubble from '../../components/NcRichContenteditable/NcMentionBubble.vue'\nimport Linkify from '../../utils/Linkify.js'\n\nimport escapeHtml from 'escape-html'\nimport stripTags from 'striptags'\nimport Vue from 'vue'\n\n// Beginning or whitespace. Non-capturing group\nconst MENTION_START = '(?:^|\\\\s)'\n// Anything that is not text or end-of-line. Non-capturing group\nconst MENTION_END = '(?:[^a-z]|$)'\nexport const USERID_REGEX = new RegExp(`${MENTION_START}(@[a-zA-Z0-9_.@\\\\-']+)(${MENTION_END})`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}(@&quot;[a-zA-Z0-9 _/.@\\\\-']+&quot;)(${MENTION_END})`, '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 the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\t// This part doesn't contain a mention, let's make sure links are parsed\n\t\t\t\t\t\treturn Linkify(part)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the leading @ and all \"\n\t\t\t\t\tconst id = part.slice(1).replace(/&quot;/gi, '')\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn ' ' + this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&amp;/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @return {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content.replace(/<br>/gmi, '\\n')\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}`\n\t\t\t\treturn !value.includes(' ') && !value.includes('/')\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip of new lines and tabs\n\t\t\treturn this.renderComponentHtml(data, NcMentionBubble).replace(/[\\n\\t]/gmi, '')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {object} propsData the props to pass to the component\n\t\t * @param {object} component the component to render\n\t\t * @return {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(propsData, component) {\n\t\t\tconst View = Vue.extend(component)\n\t\t\tconst Item = new View({\n\t\t\t\tpropsData,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst wrapper = document.createElement('div')\n\t\t\tconst mount = document.createElement('div')\n\t\t\twrapper.style.display = 'none'\n\t\t\twrapper.appendChild(mount)\n\t\t\tdocument.body.appendChild(wrapper)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.$mount(mount)\n\t\t\tconst renderedHtml = wrapper.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.$destroy()\n\t\t\twrapper.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n"],"names":["_sfc_main","user","size","generateUrl","MENTION_START","MENTION_END","USERID_REGEX","USERID_REGEX_WITH_SPACE","richEditor","value","escapeHtml","part","Linkify","id","content","text","stripTags","data","NcMentionBubble","propsData","component","View","Vue","Item","wrapper","mount","renderedHtml"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger-3m1eQsSo.mjs","sources":["../../src/utils/logger.js"],"sourcesContent":["/**\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.detectUser()\n\t.setApp('@nextcloud/vue')\n\t.build()\n"],"names":["logger","getLoggerBuilder"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA,MAAAA,IAAeC,EAAkB,EAC/B,WAAY,EACZ,OAAO,gBAAgB,EACvB,MAAK;"}
1
+ {"version":3,"file":"logger-C7qcfVW8.mjs","sources":["../../src/utils/logger.js"],"sourcesContent":["/**\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.detectUser()\n\t.setApp('@nextcloud/vue')\n\t.build()\n"],"names":["logger","getLoggerBuilder"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA,MAAAA,IAAeC,EAAkB,EAC/B,WAAY,EACZ,OAAO,gBAAgB,EACvB,MAAK;"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger-G6OKp5ly.cjs","sources":["../../src/utils/logger.js"],"sourcesContent":["/**\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.detectUser()\n\t.setApp('@nextcloud/vue')\n\t.build()\n"],"names":["logger","getLoggerBuilder"],"mappings":";;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA,MAAAA,IAAeC,mBAAkB,EAC/B,WAAY,EACZ,OAAO,gBAAgB,EACvB,MAAK;;"}
1
+ {"version":3,"file":"logger-D9RRY4er.cjs","sources":["../../src/utils/logger.js"],"sourcesContent":["/**\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.detectUser()\n\t.setApp('@nextcloud/vue')\n\t.build()\n"],"names":["logger","getLoggerBuilder"],"mappings":";;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA,MAAAA,IAAeC,mBAAkB,EAC/B,WAAY,EACZ,OAAO,gBAAgB,EACvB,MAAK;;"}