@nextcloud/vue 8.3.0 → 8.5.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 (662) hide show
  1. package/CHANGELOG.md +95 -3
  2. package/dist/Components/NcActionButton.cjs +85 -23
  3. package/dist/Components/NcActionButton.cjs.map +1 -1
  4. package/dist/Components/NcActionButton.mjs +88 -24
  5. package/dist/Components/NcActionButton.mjs.map +1 -1
  6. package/dist/Components/NcActionButtonGroup.cjs +3 -41
  7. package/dist/Components/NcActionButtonGroup.cjs.map +1 -1
  8. package/dist/Components/NcActionButtonGroup.mjs +2 -43
  9. package/dist/Components/NcActionButtonGroup.mjs.map +1 -1
  10. package/dist/Components/NcActionCaption.cjs +8 -9
  11. package/dist/Components/NcActionCaption.cjs.map +1 -1
  12. package/dist/Components/NcActionCaption.mjs +8 -8
  13. package/dist/Components/NcActionCheckbox.cjs +4 -5
  14. package/dist/Components/NcActionCheckbox.cjs.map +1 -1
  15. package/dist/Components/NcActionCheckbox.mjs +13 -13
  16. package/dist/Components/NcActionInput.cjs +3 -233
  17. package/dist/Components/NcActionInput.cjs.map +1 -1
  18. package/dist/Components/NcActionInput.mjs +2 -241
  19. package/dist/Components/NcActionInput.mjs.map +1 -1
  20. package/dist/Components/NcActionLink.cjs +2 -3
  21. package/dist/Components/NcActionLink.cjs.map +1 -1
  22. package/dist/Components/NcActionLink.mjs +3 -3
  23. package/dist/Components/NcActionRadio.cjs +12 -13
  24. package/dist/Components/NcActionRadio.cjs.map +1 -1
  25. package/dist/Components/NcActionRadio.mjs +11 -11
  26. package/dist/Components/NcActionRouter.cjs +5 -6
  27. package/dist/Components/NcActionRouter.cjs.map +1 -1
  28. package/dist/Components/NcActionRouter.mjs +6 -6
  29. package/dist/Components/NcActionSeparator.cjs +6 -7
  30. package/dist/Components/NcActionSeparator.cjs.map +1 -1
  31. package/dist/Components/NcActionSeparator.mjs +9 -9
  32. package/dist/Components/NcActionText.cjs +7 -8
  33. package/dist/Components/NcActionText.cjs.map +1 -1
  34. package/dist/Components/NcActionText.mjs +10 -10
  35. package/dist/Components/NcActionTextEditable.cjs +4 -5
  36. package/dist/Components/NcActionTextEditable.cjs.map +1 -1
  37. package/dist/Components/NcActionTextEditable.mjs +5 -5
  38. package/dist/Components/NcActions.cjs +3 -483
  39. package/dist/Components/NcActions.cjs.map +1 -1
  40. package/dist/Components/NcActions.mjs +2 -489
  41. package/dist/Components/NcActions.mjs.map +1 -1
  42. package/dist/Components/NcAppContent.cjs +3 -221
  43. package/dist/Components/NcAppContent.cjs.map +1 -1
  44. package/dist/Components/NcAppContent.mjs +2 -229
  45. package/dist/Components/NcAppContent.mjs.map +1 -1
  46. package/dist/Components/NcAppContentDetails.cjs +1 -1
  47. package/dist/Components/NcAppContentDetails.mjs +1 -1
  48. package/dist/Components/NcAppContentList.cjs +1 -1
  49. package/dist/Components/NcAppContentList.mjs +1 -1
  50. package/dist/Components/NcAppNavigation.cjs +3 -101
  51. package/dist/Components/NcAppNavigation.cjs.map +1 -1
  52. package/dist/Components/NcAppNavigation.mjs +2 -106
  53. package/dist/Components/NcAppNavigation.mjs.map +1 -1
  54. package/dist/Components/NcAppNavigationCaption.cjs +3 -44
  55. package/dist/Components/NcAppNavigationCaption.cjs.map +1 -1
  56. package/dist/Components/NcAppNavigationCaption.mjs +2 -45
  57. package/dist/Components/NcAppNavigationCaption.mjs.map +1 -1
  58. package/dist/Components/NcAppNavigationIconBullet.cjs +5 -6
  59. package/dist/Components/NcAppNavigationIconBullet.cjs.map +1 -1
  60. package/dist/Components/NcAppNavigationIconBullet.mjs +8 -8
  61. package/dist/Components/NcAppNavigationItem.cjs +3 -494
  62. package/dist/Components/NcAppNavigationItem.cjs.map +1 -1
  63. package/dist/Components/NcAppNavigationItem.mjs +2 -505
  64. package/dist/Components/NcAppNavigationItem.mjs.map +1 -1
  65. package/dist/Components/NcAppNavigationNew.cjs +14 -15
  66. package/dist/Components/NcAppNavigationNew.cjs.map +1 -1
  67. package/dist/Components/NcAppNavigationNew.mjs +6 -6
  68. package/dist/Components/NcAppNavigationNewItem.cjs +3 -87
  69. package/dist/Components/NcAppNavigationNewItem.cjs.map +1 -1
  70. package/dist/Components/NcAppNavigationNewItem.mjs +2 -89
  71. package/dist/Components/NcAppNavigationNewItem.mjs.map +1 -1
  72. package/dist/Components/NcAppNavigationSettings.cjs +3 -103
  73. package/dist/Components/NcAppNavigationSettings.cjs.map +1 -1
  74. package/dist/Components/NcAppNavigationSettings.mjs +2 -105
  75. package/dist/Components/NcAppNavigationSettings.mjs.map +1 -1
  76. package/dist/Components/NcAppNavigationSpacer.cjs +10 -11
  77. package/dist/Components/NcAppNavigationSpacer.cjs.map +1 -1
  78. package/dist/Components/NcAppNavigationSpacer.mjs +10 -10
  79. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  80. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  81. package/dist/Components/NcAppSettingsDialog.cjs +3 -181
  82. package/dist/Components/NcAppSettingsDialog.cjs.map +1 -1
  83. package/dist/Components/NcAppSettingsDialog.mjs +2 -187
  84. package/dist/Components/NcAppSettingsDialog.mjs.map +1 -1
  85. package/dist/Components/NcAppSettingsSection.cjs +7 -11
  86. package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
  87. package/dist/Components/NcAppSettingsSection.mjs +7 -10
  88. package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
  89. package/dist/Components/NcAppSidebar.cjs +3 -509
  90. package/dist/Components/NcAppSidebar.cjs.map +1 -1
  91. package/dist/Components/NcAppSidebar.mjs +2 -521
  92. package/dist/Components/NcAppSidebar.mjs.map +1 -1
  93. package/dist/Components/NcAppSidebarTab.cjs +5 -7
  94. package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
  95. package/dist/Components/NcAppSidebarTab.mjs +3 -4
  96. package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
  97. package/dist/Components/NcAvatar.cjs +2 -2
  98. package/dist/Components/NcAvatar.mjs +1 -1
  99. package/dist/Components/NcBreadcrumb.cjs +3 -175
  100. package/dist/Components/NcBreadcrumb.cjs.map +1 -1
  101. package/dist/Components/NcBreadcrumb.mjs +2 -178
  102. package/dist/Components/NcBreadcrumb.mjs.map +1 -1
  103. package/dist/Components/NcBreadcrumbs.cjs +3 -404
  104. package/dist/Components/NcBreadcrumbs.cjs.map +1 -1
  105. package/dist/Components/NcBreadcrumbs.mjs +2 -413
  106. package/dist/Components/NcBreadcrumbs.mjs.map +1 -1
  107. package/dist/Components/NcButton.cjs +37 -28
  108. package/dist/Components/NcButton.cjs.map +1 -1
  109. package/dist/Components/NcButton.mjs +37 -27
  110. package/dist/Components/NcButton.mjs.map +1 -1
  111. package/dist/Components/NcCheckboxRadioSwitch.cjs +3 -590
  112. package/dist/Components/NcCheckboxRadioSwitch.cjs.map +1 -1
  113. package/dist/Components/NcCheckboxRadioSwitch.mjs +2 -594
  114. package/dist/Components/NcCheckboxRadioSwitch.mjs.map +1 -1
  115. package/dist/Components/NcColorPicker.cjs +3 -135
  116. package/dist/Components/NcColorPicker.cjs.map +1 -1
  117. package/dist/Components/NcColorPicker.mjs +2 -144
  118. package/dist/Components/NcColorPicker.mjs.map +1 -1
  119. package/dist/Components/NcContent.cjs +3 -25
  120. package/dist/Components/NcContent.cjs.map +1 -1
  121. package/dist/Components/NcContent.mjs +2 -25
  122. package/dist/Components/NcContent.mjs.map +1 -1
  123. package/dist/Components/NcCounterBubble.cjs +4 -5
  124. package/dist/Components/NcCounterBubble.cjs.map +1 -1
  125. package/dist/Components/NcCounterBubble.mjs +4 -4
  126. package/dist/Components/NcDashboardWidget.cjs +3 -133
  127. package/dist/Components/NcDashboardWidget.cjs.map +1 -1
  128. package/dist/Components/NcDashboardWidget.mjs +2 -138
  129. package/dist/Components/NcDashboardWidget.mjs.map +1 -1
  130. package/dist/Components/NcDashboardWidgetItem.cjs +3 -138
  131. package/dist/Components/NcDashboardWidgetItem.cjs.map +1 -1
  132. package/dist/Components/NcDashboardWidgetItem.mjs +2 -141
  133. package/dist/Components/NcDashboardWidgetItem.mjs.map +1 -1
  134. package/dist/Components/NcDateTime.cjs +2 -127
  135. package/dist/Components/NcDateTime.cjs.map +1 -1
  136. package/dist/Components/NcDateTime.mjs +2 -130
  137. package/dist/Components/NcDateTime.mjs.map +1 -1
  138. package/dist/Components/NcDateTimePicker.cjs +70 -51
  139. package/dist/Components/NcDateTimePicker.cjs.map +1 -1
  140. package/dist/Components/NcDateTimePicker.mjs +77 -58
  141. package/dist/Components/NcDateTimePicker.mjs.map +1 -1
  142. package/dist/Components/NcDateTimePickerNative.cjs +9 -10
  143. package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
  144. package/dist/Components/NcDateTimePickerNative.mjs +8 -8
  145. package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
  146. package/dist/Components/NcDialog.cjs +3 -171
  147. package/dist/Components/NcDialog.cjs.map +1 -1
  148. package/dist/Components/NcDialog.mjs +2 -175
  149. package/dist/Components/NcDialog.mjs.map +1 -1
  150. package/dist/Components/NcDialogButton.cjs +2 -68
  151. package/dist/Components/NcDialogButton.cjs.map +1 -1
  152. package/dist/Components/NcDialogButton.mjs +2 -72
  153. package/dist/Components/NcDialogButton.mjs.map +1 -1
  154. package/dist/Components/NcEllipsisedOption.cjs +4 -5
  155. package/dist/Components/NcEllipsisedOption.cjs.map +1 -1
  156. package/dist/Components/NcEllipsisedOption.mjs +14 -14
  157. package/dist/Components/NcEmojiPicker.cjs +3 -175
  158. package/dist/Components/NcEmojiPicker.cjs.map +1 -1
  159. package/dist/Components/NcEmojiPicker.mjs +2 -180
  160. package/dist/Components/NcEmojiPicker.mjs.map +1 -1
  161. package/dist/Components/NcEmptyContent.cjs +14 -16
  162. package/dist/Components/NcEmptyContent.cjs.map +1 -1
  163. package/dist/Components/NcEmptyContent.mjs +8 -9
  164. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  165. package/dist/Components/NcGuestContent.cjs +8 -9
  166. package/dist/Components/NcGuestContent.cjs.map +1 -1
  167. package/dist/Components/NcGuestContent.mjs +7 -7
  168. package/dist/Components/NcHeaderMenu.cjs +3 -169
  169. package/dist/Components/NcHeaderMenu.cjs.map +1 -1
  170. package/dist/Components/NcHeaderMenu.mjs +2 -172
  171. package/dist/Components/NcHeaderMenu.mjs.map +1 -1
  172. package/dist/Components/NcHighlight.cjs +1 -1
  173. package/dist/Components/NcHighlight.mjs +1 -1
  174. package/dist/Components/NcIconSvgWrapper.cjs +3 -59
  175. package/dist/Components/NcIconSvgWrapper.cjs.map +1 -1
  176. package/dist/Components/NcIconSvgWrapper.mjs +2 -61
  177. package/dist/Components/NcIconSvgWrapper.mjs.map +1 -1
  178. package/dist/Components/NcInputField.cjs +7 -7
  179. package/dist/Components/NcInputField.cjs.map +1 -1
  180. package/dist/Components/NcInputField.mjs +10 -9
  181. package/dist/Components/NcInputField.mjs.map +1 -1
  182. package/dist/Components/NcListItem.cjs +3 -237
  183. package/dist/Components/NcListItem.cjs.map +1 -1
  184. package/dist/Components/NcListItem.mjs +2 -241
  185. package/dist/Components/NcListItem.mjs.map +1 -1
  186. package/dist/Components/NcListItemIcon.cjs +3 -160
  187. package/dist/Components/NcListItemIcon.cjs.map +1 -1
  188. package/dist/Components/NcListItemIcon.mjs +2 -162
  189. package/dist/Components/NcListItemIcon.mjs.map +1 -1
  190. package/dist/Components/NcLoadingIcon.cjs +9 -10
  191. package/dist/Components/NcLoadingIcon.cjs.map +1 -1
  192. package/dist/Components/NcLoadingIcon.mjs +10 -10
  193. package/dist/Components/NcModal.cjs +61 -49
  194. package/dist/Components/NcModal.cjs.map +1 -1
  195. package/dist/Components/NcModal.mjs +79 -68
  196. package/dist/Components/NcModal.mjs.map +1 -1
  197. package/dist/Components/NcNoteCard.cjs +8 -9
  198. package/dist/Components/NcNoteCard.cjs.map +1 -1
  199. package/dist/Components/NcNoteCard.mjs +8 -9
  200. package/dist/Components/NcNoteCard.mjs.map +1 -1
  201. package/dist/Components/NcPasswordField.cjs +2 -226
  202. package/dist/Components/NcPasswordField.cjs.map +1 -1
  203. package/dist/Components/NcPasswordField.mjs +2 -234
  204. package/dist/Components/NcPasswordField.mjs.map +1 -1
  205. package/dist/Components/NcPopover.cjs +3 -125
  206. package/dist/Components/NcPopover.cjs.map +1 -1
  207. package/dist/Components/NcPopover.mjs +2 -128
  208. package/dist/Components/NcPopover.mjs.map +1 -1
  209. package/dist/Components/NcProgressBar.cjs +3 -57
  210. package/dist/Components/NcProgressBar.cjs.map +1 -1
  211. package/dist/Components/NcProgressBar.mjs +2 -57
  212. package/dist/Components/NcProgressBar.mjs.map +1 -1
  213. package/dist/Components/NcRelatedResourcesPanel.cjs +3 -201
  214. package/dist/Components/NcRelatedResourcesPanel.cjs.map +1 -1
  215. package/dist/Components/NcRelatedResourcesPanel.mjs +2 -205
  216. package/dist/Components/NcRelatedResourcesPanel.mjs.map +1 -1
  217. package/dist/Components/NcRichContenteditable.cjs +5 -481
  218. package/dist/Components/NcRichContenteditable.cjs.map +1 -1
  219. package/dist/Components/NcRichContenteditable.mjs +5 -489
  220. package/dist/Components/NcRichContenteditable.mjs.map +1 -1
  221. package/dist/Components/NcRichText.cjs +1 -1
  222. package/dist/Components/NcRichText.mjs +3 -3
  223. package/dist/Components/NcSavingIndicatorIcon.cjs +2 -58
  224. package/dist/Components/NcSavingIndicatorIcon.cjs.map +1 -1
  225. package/dist/Components/NcSavingIndicatorIcon.mjs +2 -60
  226. package/dist/Components/NcSavingIndicatorIcon.mjs.map +1 -1
  227. package/dist/Components/NcSelect.cjs +3 -434
  228. package/dist/Components/NcSelect.cjs.map +1 -1
  229. package/dist/Components/NcSelect.mjs +2 -444
  230. package/dist/Components/NcSelect.mjs.map +1 -1
  231. package/dist/Components/NcSelectTags.cjs +2 -258
  232. package/dist/Components/NcSelectTags.cjs.map +1 -1
  233. package/dist/Components/NcSelectTags.mjs +2 -263
  234. package/dist/Components/NcSelectTags.mjs.map +1 -1
  235. package/dist/Components/NcSettingsInputText.cjs +3 -90
  236. package/dist/Components/NcSettingsInputText.cjs.map +1 -1
  237. package/dist/Components/NcSettingsInputText.mjs +2 -92
  238. package/dist/Components/NcSettingsInputText.mjs.map +1 -1
  239. package/dist/Components/NcSettingsSection.cjs +3 -94
  240. package/dist/Components/NcSettingsSection.cjs.map +1 -1
  241. package/dist/Components/NcSettingsSection.mjs +2 -96
  242. package/dist/Components/NcSettingsSection.mjs.map +1 -1
  243. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  244. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  245. package/dist/Components/NcTextArea.cjs +3 -4
  246. package/dist/Components/NcTextArea.cjs.map +1 -1
  247. package/dist/Components/NcTextArea.mjs +6 -6
  248. package/dist/Components/NcTextArea.mjs.map +1 -1
  249. package/dist/Components/NcTextField.cjs +2 -137
  250. package/dist/Components/NcTextField.cjs.map +1 -1
  251. package/dist/Components/NcTextField.mjs +2 -142
  252. package/dist/Components/NcTextField.mjs.map +1 -1
  253. package/dist/Components/NcTimezonePicker.cjs +2 -7196
  254. package/dist/Components/NcTimezonePicker.cjs.map +1 -1
  255. package/dist/Components/NcTimezonePicker.mjs +1 -7200
  256. package/dist/Components/NcTimezonePicker.mjs.map +1 -1
  257. package/dist/Components/NcUserBubble.cjs +3 -193
  258. package/dist/Components/NcUserBubble.cjs.map +1 -1
  259. package/dist/Components/NcUserBubble.mjs +2 -197
  260. package/dist/Components/NcUserBubble.mjs.map +1 -1
  261. package/dist/Components/NcUserStatusIcon.cjs +3 -0
  262. package/dist/Components/NcUserStatusIcon.cjs.map +1 -0
  263. package/dist/Components/NcUserStatusIcon.mjs +4 -0
  264. package/dist/Components/NcUserStatusIcon.mjs.map +1 -0
  265. package/dist/Components/NcVNodes.cjs +10 -11
  266. package/dist/Components/NcVNodes.cjs.map +1 -1
  267. package/dist/Components/NcVNodes.mjs +11 -12
  268. package/dist/Components/NcVNodes.mjs.map +1 -1
  269. package/dist/Composables/useIsMobile.cjs +13 -8
  270. package/dist/Composables/useIsMobile.cjs.map +1 -1
  271. package/dist/Composables/useIsMobile.mjs +15 -10
  272. package/dist/Composables/useIsMobile.mjs.map +1 -1
  273. package/dist/Directives/Linkify.cjs +4 -5
  274. package/dist/Directives/Linkify.cjs.map +1 -1
  275. package/dist/Directives/Linkify.mjs +5 -6
  276. package/dist/Directives/Linkify.mjs.map +1 -1
  277. package/dist/Directives/Tooltip.cjs +1 -1
  278. package/dist/Directives/Tooltip.mjs +3 -3
  279. package/dist/Functions/usernameToColor.cjs +2 -38
  280. package/dist/Functions/usernameToColor.cjs.map +1 -1
  281. package/dist/Functions/usernameToColor.mjs +2 -39
  282. package/dist/Functions/usernameToColor.mjs.map +1 -1
  283. package/dist/Mixins/richEditor.cjs +2 -2
  284. package/dist/Mixins/richEditor.mjs +2 -2
  285. package/dist/assets/{index-7868494b.css → NcActionButton-YVkNHN_x.css} +17 -16
  286. package/dist/assets/{index-5fa0ac5a.css → NcActionButtonGroup-oXobVIqQ.css} +14 -0
  287. package/dist/assets/{index-e0e6bab6.css → NcActionCheckbox-6Pvlr1E7.css} +1 -1
  288. package/dist/assets/{index-9020d9ca.css → NcActionInput-4zSvDkWm.css} +67 -67
  289. package/dist/assets/{index-4ba699a1.css → NcActionLink-zdzQgwtH.css} +1 -1
  290. package/dist/assets/{index-542cf50a.css → NcActionRadio-eOr9Sp-D.css} +1 -1
  291. package/dist/assets/{index-7fac55ed.css → NcActionRouter-MFTD6tYI.css} +1 -1
  292. package/dist/assets/{index-00012a4c.css → NcActionText-GJYwsw_U.css} +1 -1
  293. package/dist/assets/{index-93ad846c.css → NcActionTextEditable-JrYuWEDd.css} +1 -1
  294. package/dist/assets/{index-b0a8a48c.css → NcActions-nAi2TA1m.css} +16 -11
  295. package/dist/assets/{index-4596132f.css → NcAppContent-SZz3PTd8.css} +0 -1
  296. package/dist/assets/{index-5784183b.css → NcAppNavigation-vjqOL-kR.css} +8 -8
  297. package/dist/assets/{index-f72cef5d.css → NcAppNavigationCaption-l5yRGXZx.css} +6 -5
  298. package/dist/assets/{index-5e4bf286.css → NcAppNavigationItem-n-wauJE7.css} +43 -41
  299. package/dist/assets/{index-93bc89ef.css → NcAppNavigationNewItem-MQBvffq9.css} +14 -12
  300. package/dist/assets/{index-34dfc54e.css → NcAppNavigationSettings-Jx_6RpSn.css} +13 -13
  301. package/dist/assets/{NcAppNavigationToggle-2bc73ee8.css → NcAppNavigationToggle-upUgYNtL.css} +4 -2
  302. package/dist/assets/{index-810b8984.css → NcAppSettingsDialog-8K8FduDk.css} +11 -11
  303. package/dist/assets/{index-3d1ccc15.css → NcAppSidebar-iU8Zp4Qk.css} +45 -45
  304. package/dist/assets/NcAvatar-Vg6Mi1TD.css +144 -0
  305. package/dist/assets/{index-b991895f.css → NcBreadcrumb-M3hqCbqS.css} +26 -33
  306. package/dist/assets/{index-4611417f.css → NcBreadcrumbs-KBV0Jccv.css} +7 -8
  307. package/dist/assets/{index-f091e784.css → NcButton-DTnreNJ5.css} +43 -43
  308. package/dist/assets/{index-e6a91529.css → NcCheckboxRadioSwitch-IKpLtz9k.css} +50 -47
  309. package/dist/assets/{index-7157aefa.css → NcColorPicker-CNX9fj56.css} +24 -24
  310. package/dist/assets/{index-a9e4fe04.css → NcContent-LWR23l9i.css} +42 -4
  311. package/dist/assets/{index-50dc154e.css → NcDateTimePicker-J_kGHwdu.css} +20 -20
  312. package/dist/assets/NcDateTimePickerNative-2pQS5L0H.css +46 -0
  313. package/dist/assets/{index-9941f384.css → NcDialog-2V180xdm.css} +13 -13
  314. package/dist/assets/{index-2a8e4ca1.css → NcEmojiPicker-lBXbC6Jd.css} +36 -26
  315. package/dist/assets/{index-3764a447.css → NcHeaderMenu-P0OkK9WN.css} +18 -25
  316. package/dist/assets/{index-2d4de2fc.css → NcIconSvgWrapper-arqrq5Bj.css} +13 -7
  317. package/dist/assets/{index-2a1ec06b.css → NcInputField-Y-Qp3D_b.css} +40 -40
  318. package/dist/assets/{index-4e03d941.css → NcListItem-xcW2PRrk.css} +49 -48
  319. package/dist/assets/{index-73ded07b.css → NcModal-QzDLeQrW.css} +63 -63
  320. package/dist/assets/{index-61b63a8f.css → NcProgressBar-w4-G5gQR.css} +19 -9
  321. package/dist/assets/{index-ab715d82.css → NcRelatedResourcesPanel-m3uf_nvH.css} +4 -4
  322. package/dist/assets/{index-ffa6d11c.css → NcRichContenteditable-xiQ4y2Z6.css} +64 -31
  323. package/dist/assets/{index-f9bfa317.css → NcSelect-GsLmwj9w.css} +13 -2
  324. package/dist/assets/{index-76a58945.css → NcSettingsSection-PEWm0eeL.css} +13 -13
  325. package/dist/assets/{NcSettingsSelectGroup-6ddb63a6.css → NcSettingsSelectGroup-_Jpb8yE3.css} +2 -2
  326. package/dist/assets/{index-30ca9574.css → NcTextArea-K-KVPiMp.css} +27 -40
  327. package/dist/assets/{index-c221fe05.css → NcUserBubble-jjzI5imn.css} +9 -9
  328. package/dist/assets/{index-57b305d3.css → NcUserStatusIcon-62u43_6P.css} +7 -10
  329. package/dist/assets/{referencePickerModal-3a127978.css → referencePickerModal-VxSowpb5.css} +84 -57
  330. package/dist/chunks/{AlertCircleOutline-7085c10f.cjs → AlertCircleOutline-VgVvRWpm.cjs} +1 -1
  331. package/dist/chunks/{AlertCircleOutline-7085c10f.cjs.map → AlertCircleOutline-VgVvRWpm.cjs.map} +1 -1
  332. package/dist/chunks/{AlertCircleOutline-b73838e0.mjs → AlertCircleOutline-lwSRucNO.mjs} +1 -1
  333. package/dist/chunks/{AlertCircleOutline-b73838e0.mjs.map → AlertCircleOutline-lwSRucNO.mjs.map} +1 -1
  334. package/dist/chunks/{ArrowLeft-2f9b9323.cjs → ArrowLeft-3KC2k3tR.cjs} +1 -1
  335. package/dist/chunks/{ArrowLeft-2f9b9323.cjs.map → ArrowLeft-3KC2k3tR.cjs.map} +1 -1
  336. package/dist/chunks/{ArrowLeft-3779ba88.mjs → ArrowLeft-buaCjhfr.mjs} +1 -1
  337. package/dist/chunks/{ArrowLeft-3779ba88.mjs.map → ArrowLeft-buaCjhfr.mjs.map} +1 -1
  338. package/dist/chunks/{ArrowRight-74a9fcb2.mjs → ArrowRight-4p6gv-9o.mjs} +1 -1
  339. package/dist/chunks/{ArrowRight-74a9fcb2.mjs.map → ArrowRight-4p6gv-9o.mjs.map} +1 -1
  340. package/dist/chunks/{ArrowRight-7315f6c1.cjs → ArrowRight-uEMed4kl.cjs} +1 -1
  341. package/dist/chunks/{ArrowRight-7315f6c1.cjs.map → ArrowRight-uEMed4kl.cjs.map} +1 -1
  342. package/dist/chunks/{Check-be8cd6af.cjs → Check-5uKO4aXx.cjs} +1 -1
  343. package/dist/chunks/{Check-be8cd6af.cjs.map → Check-5uKO4aXx.cjs.map} +1 -1
  344. package/dist/chunks/{Check-2ea0a88a.mjs → Check-FObi_cEO.mjs} +1 -1
  345. package/dist/chunks/{Check-2ea0a88a.mjs.map → Check-FObi_cEO.mjs.map} +1 -1
  346. package/dist/chunks/{ChevronDown-a72d365d.mjs → ChevronDown-TbRvziNU.mjs} +1 -1
  347. package/dist/chunks/{ChevronDown-a72d365d.mjs.map → ChevronDown-TbRvziNU.mjs.map} +1 -1
  348. package/dist/chunks/{ChevronDown-dc32e51d.cjs → ChevronDown-rdCNNu7u.cjs} +1 -1
  349. package/dist/chunks/{ChevronDown-dc32e51d.cjs.map → ChevronDown-rdCNNu7u.cjs.map} +1 -1
  350. package/dist/chunks/{ChevronRight-1a6a6cf2.mjs → ChevronRight-XOmSMmxA.mjs} +1 -1
  351. package/dist/chunks/{ChevronRight-1a6a6cf2.mjs.map → ChevronRight-XOmSMmxA.mjs.map} +1 -1
  352. package/dist/chunks/{ChevronRight-a4c1e0d3.cjs → ChevronRight-bp7fT1r7.cjs} +1 -1
  353. package/dist/chunks/{ChevronRight-a4c1e0d3.cjs.map → ChevronRight-bp7fT1r7.cjs.map} +1 -1
  354. package/dist/chunks/{Close-271f72e2.mjs → Close-5Hzp7J3v.mjs} +1 -1
  355. package/dist/chunks/{Close-271f72e2.mjs.map → Close-5Hzp7J3v.mjs.map} +1 -1
  356. package/dist/chunks/{Close-98cb6f12.cjs → Close-QFLrdRdG.cjs} +1 -1
  357. package/dist/chunks/{Close-98cb6f12.cjs.map → Close-QFLrdRdG.cjs.map} +1 -1
  358. package/dist/chunks/{DotsHorizontal-0ee7d901.mjs → DotsHorizontal-NssXDZGM.mjs} +1 -1
  359. package/dist/chunks/{DotsHorizontal-0ee7d901.mjs.map → DotsHorizontal-NssXDZGM.mjs.map} +1 -1
  360. package/dist/chunks/{DotsHorizontal-ac96129a.cjs → DotsHorizontal-dlN1WvqM.cjs} +1 -1
  361. package/dist/chunks/{DotsHorizontal-ac96129a.cjs.map → DotsHorizontal-dlN1WvqM.cjs.map} +1 -1
  362. package/dist/chunks/GenColors-6mrcK1J2.cjs +141 -0
  363. package/dist/chunks/GenColors-6mrcK1J2.cjs.map +1 -0
  364. package/dist/chunks/GenColors-ZwEj275X.mjs +142 -0
  365. package/dist/chunks/GenColors-ZwEj275X.mjs.map +1 -0
  366. package/dist/chunks/{GenRandomId-c214d235.cjs.map → GenRandomId-ULxaMkkr.cjs.map} +1 -1
  367. package/dist/chunks/{GenRandomId-cb9ccebe.mjs.map → GenRandomId-VodkdWbp.mjs.map} +1 -1
  368. package/dist/chunks/{Linkify-39f20c9a.mjs.map → Linkify-V7PfCeZ8.mjs.map} +1 -1
  369. package/dist/chunks/{Linkify-40cdd635.cjs.map → Linkify-f3s3nAe_.cjs.map} +1 -1
  370. package/dist/chunks/NcActionButtonGroup-3W6tc8gZ.mjs +50 -0
  371. package/dist/chunks/NcActionButtonGroup-3W6tc8gZ.mjs.map +1 -0
  372. package/dist/chunks/NcActionButtonGroup-IEaXhYp3.cjs +45 -0
  373. package/dist/chunks/NcActionButtonGroup-IEaXhYp3.cjs.map +1 -0
  374. package/dist/chunks/NcActionInput-bLRYLx45.cjs +234 -0
  375. package/dist/chunks/NcActionInput-bLRYLx45.cjs.map +1 -0
  376. package/dist/chunks/NcActionInput-v8cC8WD4.mjs +244 -0
  377. package/dist/chunks/NcActionInput-v8cC8WD4.mjs.map +1 -0
  378. package/dist/chunks/NcActions-7ytNFRBJ.cjs +493 -0
  379. package/dist/chunks/NcActions-7ytNFRBJ.cjs.map +1 -0
  380. package/dist/chunks/NcActions-CNDgnRLf.mjs +501 -0
  381. package/dist/chunks/NcActions-CNDgnRLf.mjs.map +1 -0
  382. package/dist/chunks/NcAppContent-XBosilQH.mjs +231 -0
  383. package/dist/chunks/NcAppContent-XBosilQH.mjs.map +1 -0
  384. package/dist/chunks/NcAppContent-f3dNUfhO.cjs +221 -0
  385. package/dist/chunks/NcAppContent-f3dNUfhO.cjs.map +1 -0
  386. package/dist/chunks/NcAppNavigation-oke9RxP6.cjs +113 -0
  387. package/dist/chunks/NcAppNavigation-oke9RxP6.cjs.map +1 -0
  388. package/dist/chunks/NcAppNavigation-qUXaV47L.mjs +122 -0
  389. package/dist/chunks/NcAppNavigation-qUXaV47L.mjs.map +1 -0
  390. package/dist/chunks/NcAppNavigationCaption-M-KZKijE.mjs +47 -0
  391. package/dist/chunks/NcAppNavigationCaption-M-KZKijE.mjs.map +1 -0
  392. package/dist/chunks/NcAppNavigationCaption-hVmjPz-2.cjs +43 -0
  393. package/dist/chunks/NcAppNavigationCaption-hVmjPz-2.cjs.map +1 -0
  394. package/dist/chunks/NcAppNavigationItem-GNnDmUq5.mjs +508 -0
  395. package/dist/chunks/NcAppNavigationItem-GNnDmUq5.mjs.map +1 -0
  396. package/dist/chunks/NcAppNavigationItem-YYoh37Ky.cjs +496 -0
  397. package/dist/chunks/NcAppNavigationItem-YYoh37Ky.cjs.map +1 -0
  398. package/dist/chunks/NcAppNavigationNewItem-3l4mRRsI.cjs +86 -0
  399. package/dist/chunks/NcAppNavigationNewItem-3l4mRRsI.cjs.map +1 -0
  400. package/dist/chunks/NcAppNavigationNewItem-pBHgj8Es.mjs +91 -0
  401. package/dist/chunks/NcAppNavigationNewItem-pBHgj8Es.mjs.map +1 -0
  402. package/dist/chunks/NcAppNavigationSettings-IkF_z_xt.cjs +102 -0
  403. package/dist/chunks/NcAppNavigationSettings-IkF_z_xt.cjs.map +1 -0
  404. package/dist/chunks/NcAppNavigationSettings-c_S9UbSU.mjs +105 -0
  405. package/dist/chunks/NcAppNavigationSettings-c_S9UbSU.mjs.map +1 -0
  406. package/dist/chunks/{NcAppNavigationToggle-f5591773.mjs → NcAppNavigationToggle-S4YTmnky.mjs} +30 -30
  407. package/dist/chunks/{NcAppNavigationToggle-6a975868.cjs.map → NcAppNavigationToggle-S4YTmnky.mjs.map} +1 -1
  408. package/dist/chunks/NcAppNavigationToggle-Tvz9copM.cjs +109 -0
  409. package/dist/chunks/{NcAppNavigationToggle-f5591773.mjs.map → NcAppNavigationToggle-Tvz9copM.cjs.map} +1 -1
  410. package/dist/chunks/NcAppSettingsDialog-CQtmRXyZ.mjs +184 -0
  411. package/dist/chunks/NcAppSettingsDialog-CQtmRXyZ.mjs.map +1 -0
  412. package/dist/chunks/NcAppSettingsDialog-L6IvAL_I.cjs +176 -0
  413. package/dist/chunks/NcAppSettingsDialog-L6IvAL_I.cjs.map +1 -0
  414. package/dist/chunks/NcAppSidebar-GCbKi7Tk.cjs +547 -0
  415. package/dist/chunks/NcAppSidebar-GCbKi7Tk.cjs.map +1 -0
  416. package/dist/chunks/NcAppSidebar-nHbqU8Wl.mjs +565 -0
  417. package/dist/chunks/NcAppSidebar-nHbqU8Wl.mjs.map +1 -0
  418. package/dist/chunks/{index-efb07851.mjs → NcAvatar-1gX-bnpd.mjs} +68 -93
  419. package/dist/chunks/NcAvatar-1gX-bnpd.mjs.map +1 -0
  420. package/dist/chunks/{index-32c8b581.cjs → NcAvatar-8NgbtiTN.cjs} +40 -66
  421. package/dist/chunks/NcAvatar-8NgbtiTN.cjs.map +1 -0
  422. package/dist/chunks/NcBreadcrumb-3vNer4Fs.cjs +172 -0
  423. package/dist/chunks/NcBreadcrumb-3vNer4Fs.cjs.map +1 -0
  424. package/dist/chunks/NcBreadcrumb-VlYks8Vu.mjs +179 -0
  425. package/dist/chunks/NcBreadcrumb-VlYks8Vu.mjs.map +1 -0
  426. package/dist/chunks/NcBreadcrumbs-GhYBmcix.cjs +407 -0
  427. package/dist/chunks/NcBreadcrumbs-GhYBmcix.cjs.map +1 -0
  428. package/dist/chunks/NcBreadcrumbs-UCJPNjZg.mjs +418 -0
  429. package/dist/chunks/NcBreadcrumbs-UCJPNjZg.mjs.map +1 -0
  430. package/dist/chunks/NcCheckboxRadioSwitch-3sa_9DpY.mjs +607 -0
  431. package/dist/chunks/NcCheckboxRadioSwitch-3sa_9DpY.mjs.map +1 -0
  432. package/dist/chunks/NcCheckboxRadioSwitch-s5C7ZGB_.cjs +603 -0
  433. package/dist/chunks/NcCheckboxRadioSwitch-s5C7ZGB_.cjs.map +1 -0
  434. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-2l55YbP4.cjs +3 -0
  435. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-2l55YbP4.cjs.map +1 -0
  436. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-4V3NxICZ.mjs +3 -0
  437. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-4V3NxICZ.mjs.map +1 -0
  438. package/dist/chunks/NcColorPicker-4qA0UWdA.cjs +161 -0
  439. package/dist/chunks/NcColorPicker-4qA0UWdA.cjs.map +1 -0
  440. package/dist/chunks/NcColorPicker-aNJDKf-I.mjs +172 -0
  441. package/dist/chunks/NcColorPicker-aNJDKf-I.mjs.map +1 -0
  442. package/dist/chunks/NcContent-V1PRVhsU.mjs +131 -0
  443. package/dist/chunks/NcContent-V1PRVhsU.mjs.map +1 -0
  444. package/dist/chunks/NcContent-x5KPSopo.cjs +123 -0
  445. package/dist/chunks/NcContent-x5KPSopo.cjs.map +1 -0
  446. package/dist/chunks/NcDashboardWidget-pzCvVb_0.mjs +141 -0
  447. package/dist/chunks/NcDashboardWidget-pzCvVb_0.mjs.map +1 -0
  448. package/dist/chunks/NcDashboardWidget-w15LYpmC.cjs +134 -0
  449. package/dist/chunks/NcDashboardWidget-w15LYpmC.cjs.map +1 -0
  450. package/dist/chunks/NcDashboardWidgetItem-FNmPTAuj.mjs +143 -0
  451. package/dist/chunks/NcDashboardWidgetItem-FNmPTAuj.mjs.map +1 -0
  452. package/dist/chunks/NcDashboardWidgetItem-YJerQyu5.cjs +137 -0
  453. package/dist/chunks/NcDashboardWidgetItem-YJerQyu5.cjs.map +1 -0
  454. package/dist/chunks/NcDateTime-22ULCxg8.mjs +146 -0
  455. package/dist/chunks/NcDateTime-22ULCxg8.mjs.map +1 -0
  456. package/dist/chunks/NcDateTime-eHTrKYG4.cjs +142 -0
  457. package/dist/chunks/NcDateTime-eHTrKYG4.cjs.map +1 -0
  458. package/dist/chunks/NcDialog-KlvRL7k1.cjs +209 -0
  459. package/dist/chunks/NcDialog-KlvRL7k1.cjs.map +1 -0
  460. package/dist/chunks/NcDialog-b2LjzZB8.mjs +217 -0
  461. package/dist/chunks/NcDialog-b2LjzZB8.mjs.map +1 -0
  462. package/dist/chunks/NcDialogButton-37xKCh_l.cjs +68 -0
  463. package/dist/chunks/NcDialogButton-37xKCh_l.cjs.map +1 -0
  464. package/dist/chunks/NcDialogButton-O4JZ53Dj.mjs +73 -0
  465. package/dist/chunks/NcDialogButton-O4JZ53Dj.mjs.map +1 -0
  466. package/dist/chunks/NcEmojiPicker-H_YmCt4L.mjs +249 -0
  467. package/dist/chunks/NcEmojiPicker-H_YmCt4L.mjs.map +1 -0
  468. package/dist/chunks/NcEmojiPicker-o1VRXxQO.cjs +238 -0
  469. package/dist/chunks/NcEmojiPicker-o1VRXxQO.cjs.map +1 -0
  470. package/dist/chunks/NcHeaderMenu-CIYGCufy.cjs +183 -0
  471. package/dist/chunks/NcHeaderMenu-CIYGCufy.cjs.map +1 -0
  472. package/dist/chunks/NcHeaderMenu-CfEUQ0JV.mjs +190 -0
  473. package/dist/chunks/NcHeaderMenu-CfEUQ0JV.mjs.map +1 -0
  474. package/dist/chunks/NcIconSvgWrapper-P-GkSjTH.mjs +85 -0
  475. package/dist/chunks/NcIconSvgWrapper-P-GkSjTH.mjs.map +1 -0
  476. package/dist/chunks/NcIconSvgWrapper-_lgitSfS.cjs +80 -0
  477. package/dist/chunks/NcIconSvgWrapper-_lgitSfS.cjs.map +1 -0
  478. package/dist/chunks/NcInputConfirmCancel-YzEcukdc.cjs +91 -0
  479. package/dist/chunks/{NcInputConfirmCancel-790f5902.cjs.map → NcInputConfirmCancel-YzEcukdc.cjs.map} +1 -1
  480. package/dist/chunks/{NcInputConfirmCancel-7837eb4d.mjs → NcInputConfirmCancel-lUDtoN2O.mjs} +15 -14
  481. package/dist/chunks/{NcInputConfirmCancel-7837eb4d.mjs.map → NcInputConfirmCancel-lUDtoN2O.mjs.map} +1 -1
  482. package/dist/chunks/NcListItem-AZpInn_s.mjs +248 -0
  483. package/dist/chunks/NcListItem-AZpInn_s.mjs.map +1 -0
  484. package/dist/chunks/NcListItem-bBx6_yWw.cjs +242 -0
  485. package/dist/chunks/NcListItem-bBx6_yWw.cjs.map +1 -0
  486. package/dist/chunks/NcListItemIcon-1ZcwsrMT.mjs +164 -0
  487. package/dist/chunks/NcListItemIcon-1ZcwsrMT.mjs.map +1 -0
  488. package/dist/chunks/NcListItemIcon-uPc7p1KY.cjs +160 -0
  489. package/dist/chunks/NcListItemIcon-uPc7p1KY.cjs.map +1 -0
  490. package/dist/chunks/NcPasswordField-YvUbX2WS.cjs +229 -0
  491. package/dist/chunks/NcPasswordField-YvUbX2WS.cjs.map +1 -0
  492. package/dist/chunks/NcPasswordField-fNiTJMmG.mjs +238 -0
  493. package/dist/chunks/NcPasswordField-fNiTJMmG.mjs.map +1 -0
  494. package/dist/chunks/NcPopover-EXxv8Pzw.cjs +218 -0
  495. package/dist/chunks/NcPopover-EXxv8Pzw.cjs.map +1 -0
  496. package/dist/chunks/NcPopover-NyUZ2r7V.mjs +225 -0
  497. package/dist/chunks/NcPopover-NyUZ2r7V.mjs.map +1 -0
  498. package/dist/chunks/NcProgressBar-hQCFE5H3.mjs +99 -0
  499. package/dist/chunks/NcProgressBar-hQCFE5H3.mjs.map +1 -0
  500. package/dist/chunks/NcProgressBar-yrdD1jxU.cjs +95 -0
  501. package/dist/chunks/NcProgressBar-yrdD1jxU.cjs.map +1 -0
  502. package/dist/chunks/NcRelatedResourcesPanel-DCqlPqZc.cjs +199 -0
  503. package/dist/chunks/NcRelatedResourcesPanel-DCqlPqZc.cjs.map +1 -0
  504. package/dist/chunks/NcRelatedResourcesPanel-H2imJgxi.mjs +205 -0
  505. package/dist/chunks/NcRelatedResourcesPanel-H2imJgxi.mjs.map +1 -0
  506. package/dist/chunks/NcRichContenteditable-EZp-vrCT.mjs +515 -0
  507. package/dist/chunks/NcRichContenteditable-EZp-vrCT.mjs.map +1 -0
  508. package/dist/chunks/NcRichContenteditable-lPa8fqWG.cjs +504 -0
  509. package/dist/chunks/NcRichContenteditable-lPa8fqWG.cjs.map +1 -0
  510. package/dist/chunks/{NcRichText-0db09c78.mjs → NcRichText-7CHftQ4Z.mjs} +125 -81
  511. package/dist/chunks/NcRichText-7CHftQ4Z.mjs.map +1 -0
  512. package/dist/chunks/{NcRichText-0dd96aac.cjs → NcRichText-SPiEkcnt.cjs} +112 -71
  513. package/dist/chunks/NcRichText-SPiEkcnt.cjs.map +1 -0
  514. package/dist/chunks/NcSavingIndicatorIcon-IqoMFcDK.mjs +62 -0
  515. package/dist/chunks/NcSavingIndicatorIcon-IqoMFcDK.mjs.map +1 -0
  516. package/dist/chunks/NcSavingIndicatorIcon-wcQ0mBIL.cjs +59 -0
  517. package/dist/chunks/NcSavingIndicatorIcon-wcQ0mBIL.cjs.map +1 -0
  518. package/dist/chunks/NcSelect-c9-eF29z.cjs +462 -0
  519. package/dist/chunks/NcSelect-c9-eF29z.cjs.map +1 -0
  520. package/dist/chunks/NcSelect-zx9IspDS.mjs +474 -0
  521. package/dist/chunks/NcSelect-zx9IspDS.mjs.map +1 -0
  522. package/dist/chunks/NcSelectTags-WGdCwmRr.mjs +267 -0
  523. package/dist/chunks/NcSelectTags-WGdCwmRr.mjs.map +1 -0
  524. package/dist/chunks/NcSelectTags-doFIXNxC.cjs +261 -0
  525. package/dist/chunks/NcSelectTags-doFIXNxC.cjs.map +1 -0
  526. package/dist/chunks/NcSettingsInputText-YMRo6B3V.mjs +95 -0
  527. package/dist/chunks/NcSettingsInputText-YMRo6B3V.mjs.map +1 -0
  528. package/dist/chunks/NcSettingsInputText-sJarpoq-.cjs +91 -0
  529. package/dist/chunks/NcSettingsInputText-sJarpoq-.cjs.map +1 -0
  530. package/dist/chunks/NcSettingsSection-R_JKZdJk.cjs +95 -0
  531. package/dist/chunks/NcSettingsSection-R_JKZdJk.cjs.map +1 -0
  532. package/dist/chunks/NcSettingsSection-zdWzOqxk.mjs +98 -0
  533. package/dist/chunks/NcSettingsSection-zdWzOqxk.mjs.map +1 -0
  534. package/dist/chunks/{NcSettingsSelectGroup-cdd84895.mjs → NcSettingsSelectGroup-Ghgl6Y_d.mjs} +20 -20
  535. package/dist/chunks/NcSettingsSelectGroup-Ghgl6Y_d.mjs.map +1 -0
  536. package/dist/chunks/{NcSettingsSelectGroup-532ba813.cjs → NcSettingsSelectGroup-NhJyFPsw.cjs} +16 -15
  537. package/dist/chunks/NcSettingsSelectGroup-NhJyFPsw.cjs.map +1 -0
  538. package/dist/chunks/NcTextField-8ap5MAGr.cjs +140 -0
  539. package/dist/chunks/NcTextField-8ap5MAGr.cjs.map +1 -0
  540. package/dist/chunks/NcTextField-tIJ3fJ37.mjs +146 -0
  541. package/dist/chunks/NcTextField-tIJ3fJ37.mjs.map +1 -0
  542. package/dist/chunks/NcTimezonePicker-Ue_mc4jo.mjs +7205 -0
  543. package/dist/chunks/NcTimezonePicker-Ue_mc4jo.mjs.map +1 -0
  544. package/dist/chunks/NcTimezonePicker-ag-krDDP.cjs +7199 -0
  545. package/dist/chunks/NcTimezonePicker-ag-krDDP.cjs.map +1 -0
  546. package/dist/chunks/NcUserBubble-hfgJXqk2.cjs +191 -0
  547. package/dist/chunks/NcUserBubble-hfgJXqk2.cjs.map +1 -0
  548. package/dist/chunks/NcUserBubble-s30BQXdv.mjs +197 -0
  549. package/dist/chunks/NcUserBubble-s30BQXdv.mjs.map +1 -0
  550. package/dist/chunks/NcUserStatusIcon-H5b_e8YL.mjs +174 -0
  551. package/dist/chunks/NcUserStatusIcon-H5b_e8YL.mjs.map +1 -0
  552. package/dist/chunks/NcUserStatusIcon-PevYJx6w.cjs +166 -0
  553. package/dist/chunks/NcUserStatusIcon-PevYJx6w.cjs.map +1 -0
  554. package/dist/chunks/{ScopeComponent-ac5265f5.mjs → ScopeComponent-9XNLQCuu.mjs} +1 -1
  555. package/dist/chunks/{ScopeComponent-ac5265f5.mjs.map → ScopeComponent-9XNLQCuu.mjs.map} +1 -1
  556. package/dist/chunks/{ScopeComponent-92144d97.cjs → ScopeComponent-_Cg8ogL-.cjs} +1 -1
  557. package/dist/chunks/{ScopeComponent-92144d97.cjs.map → ScopeComponent-_Cg8ogL-.cjs.map} +1 -1
  558. package/dist/chunks/_l10n-juAR1Sua.cjs +64 -0
  559. package/dist/chunks/_l10n-juAR1Sua.cjs.map +1 -0
  560. package/dist/chunks/_l10n-tZEKUJRj.mjs +66 -0
  561. package/dist/chunks/_l10n-tZEKUJRj.mjs.map +1 -0
  562. package/dist/chunks/_plugin-vue2_normalizer-DCfUPqga.cjs.map +1 -0
  563. package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.mjs.map +1 -0
  564. package/dist/chunks/{actionGlobal-9e29e11b.cjs → actionGlobal-_f-PhW84.cjs} +3 -7
  565. package/dist/chunks/actionGlobal-_f-PhW84.cjs.map +1 -0
  566. package/dist/chunks/{actionGlobal-8c1c28c9.mjs → actionGlobal-ejpd0zqm.mjs} +3 -7
  567. package/dist/chunks/actionGlobal-ejpd0zqm.mjs.map +1 -0
  568. package/dist/chunks/{actionText-60ff01d1.mjs → actionText-AoAs4kqP.mjs} +8 -4
  569. package/dist/chunks/{actionText-60ff01d1.mjs.map → actionText-AoAs4kqP.mjs.map} +1 -1
  570. package/dist/chunks/{actionText-9582810f.cjs → actionText-pGrMQtZ3.cjs} +10 -6
  571. package/dist/chunks/{actionText-9582810f.cjs.map → actionText-pGrMQtZ3.cjs.map} +1 -1
  572. package/dist/chunks/emoji-mJIuLpNR.cjs +58 -0
  573. package/dist/chunks/emoji-mJIuLpNR.cjs.map +1 -0
  574. package/dist/chunks/emoji-tllD0Rvt.mjs +61 -0
  575. package/dist/chunks/emoji-tllD0Rvt.mjs.map +1 -0
  576. package/dist/chunks/{focusTrap-5d0f71d4.mjs.map → focusTrap-Py2bQ9-r.mjs.map} +1 -1
  577. package/dist/chunks/{focusTrap-14985831.cjs.map → focusTrap-n3H52LOw.cjs.map} +1 -1
  578. package/dist/chunks/{index-20a9ace9.mjs → index-2phCrsSH.mjs} +1 -1
  579. package/dist/chunks/{index-20a9ace9.mjs.map → index-2phCrsSH.mjs.map} +1 -1
  580. package/dist/chunks/{index-4398f925.cjs → index-AX_b-FPF.cjs} +2 -1
  581. package/dist/chunks/{index-4398f925.cjs.map → index-AX_b-FPF.cjs.map} +1 -1
  582. package/dist/chunks/{index-e894376a.cjs → index-FO4BaGaF.cjs} +1 -1
  583. package/dist/chunks/{index-e894376a.cjs.map → index-FO4BaGaF.cjs.map} +1 -1
  584. package/dist/chunks/{index-5f2a5f57.mjs → index-KrMGGc7j.mjs} +3 -2
  585. package/dist/chunks/{index-5f2a5f57.mjs.map → index-KrMGGc7j.mjs.map} +1 -1
  586. package/dist/chunks/{logger-3612e664.mjs.map → logger-3m1eQsSo.mjs.map} +1 -1
  587. package/dist/chunks/{logger-4998b668.cjs.map → logger-G6OKp5ly.cjs.map} +1 -1
  588. package/dist/chunks/{referencePickerModal-ded8273d.mjs → referencePickerModal-jbqYHMmd.mjs} +202 -214
  589. package/dist/chunks/{referencePickerModal-ded8273d.mjs.map → referencePickerModal-jbqYHMmd.mjs.map} +1 -1
  590. package/dist/chunks/{referencePickerModal-90dac0d0.cjs → referencePickerModal-rHOAeK-a.cjs} +171 -183
  591. package/dist/chunks/{referencePickerModal-90dac0d0.cjs.map → referencePickerModal-rHOAeK-a.cjs.map} +1 -1
  592. package/dist/chunks/usernameToColor-fJ1S8Q2S.cjs +39 -0
  593. package/dist/chunks/usernameToColor-fJ1S8Q2S.cjs.map +1 -0
  594. package/dist/chunks/usernameToColor-pYptUj7i.mjs +41 -0
  595. package/dist/chunks/usernameToColor-pYptUj7i.mjs.map +1 -0
  596. package/dist/functions/emoji/emoji.d.ts +50 -0
  597. package/dist/{Functions/emoji.mjs → functions/emoji/index.d.ts} +1 -16
  598. package/dist/index.cjs +170 -164
  599. package/dist/index.cjs.map +1 -1
  600. package/dist/index.mjs +169 -160
  601. package/dist/index.mjs.map +1 -1
  602. package/dist/utils/UserStatus.d.ts +24 -0
  603. package/package.json +14 -6
  604. package/dist/Functions/emoji.cjs +0 -36
  605. package/dist/Functions/emoji.cjs.map +0 -1
  606. package/dist/Functions/emoji.mjs.map +0 -1
  607. package/dist/assets/index-2e5e3b55.css +0 -151
  608. package/dist/chunks/GenColors-12ec1caa.mjs +0 -56
  609. package/dist/chunks/GenColors-12ec1caa.mjs.map +0 -1
  610. package/dist/chunks/GenColors-a8d54566.cjs +0 -55
  611. package/dist/chunks/GenColors-a8d54566.cjs.map +0 -1
  612. package/dist/chunks/NcAppNavigationToggle-6a975868.cjs +0 -108
  613. package/dist/chunks/NcInputConfirmCancel-790f5902.cjs +0 -90
  614. package/dist/chunks/NcRichText-0db09c78.mjs.map +0 -1
  615. package/dist/chunks/NcRichText-0dd96aac.cjs.map +0 -1
  616. package/dist/chunks/NcSettingsSelectGroup-532ba813.cjs.map +0 -1
  617. package/dist/chunks/NcSettingsSelectGroup-cdd84895.mjs.map +0 -1
  618. package/dist/chunks/_plugin-vue2_normalizer-71e2aa87.mjs.map +0 -1
  619. package/dist/chunks/_plugin-vue2_normalizer-7f9efb60.cjs.map +0 -1
  620. package/dist/chunks/actionGlobal-8c1c28c9.mjs.map +0 -1
  621. package/dist/chunks/actionGlobal-9e29e11b.cjs.map +0 -1
  622. package/dist/chunks/index-32c8b581.cjs.map +0 -1
  623. package/dist/chunks/index-efb07851.mjs.map +0 -1
  624. package/dist/chunks/l10n-070da9ad.cjs +0 -29
  625. package/dist/chunks/l10n-070da9ad.cjs.map +0 -1
  626. package/dist/chunks/l10n-1b905a9a.mjs +0 -31
  627. package/dist/chunks/l10n-1b905a9a.mjs.map +0 -1
  628. package/dist/chunks/l10n-38626490.cjs +0 -8
  629. package/dist/chunks/l10n-38626490.cjs.map +0 -1
  630. package/dist/chunks/l10n-6cfc1200.mjs +0 -10
  631. package/dist/chunks/l10n-6cfc1200.mjs.map +0 -1
  632. /package/dist/assets/{index-418d4e87.css → NcActionCaption-afJqyJO6.css} +0 -0
  633. /package/dist/assets/{index-018895f7.css → NcActionSeparator-l98xWbiL.css} +0 -0
  634. /package/dist/assets/{index-fc61f2d8.css → NcAppNavigationIconBullet-Nf3ARMLv.css} +0 -0
  635. /package/dist/assets/{index-0ac09203.css → NcAppNavigationNew-joyd78FM.css} +0 -0
  636. /package/dist/assets/{index-76dd9f11.css → NcAppNavigationSpacer-MfL8GeCN.css} +0 -0
  637. /package/dist/assets/{index-1f25a3c0.css → NcAppSettingsSection-ahfdhix_.css} +0 -0
  638. /package/dist/assets/{index-77a548be.css → NcAppSidebarTab-Phau6edJ.css} +0 -0
  639. /package/dist/assets/{index-17673ea1.css → NcCounterBubble-rgkmqN46.css} +0 -0
  640. /package/dist/assets/{index-6416f636.css → NcDashboardWidget-01deRW9Z.css} +0 -0
  641. /package/dist/assets/{index-e7eadba7.css → NcDashboardWidgetItem-S7fELANA.css} +0 -0
  642. /package/dist/assets/{index-a2b51bce.css → NcEllipsisedOption-eoI10kvc.css} +0 -0
  643. /package/dist/assets/{index-c239a2fc.css → NcEmptyContent-pSz7F6Oe.css} +0 -0
  644. /package/dist/assets/{index-8aa4712e.css → NcGuestContent-mGGTzI2_.css} +0 -0
  645. /package/dist/assets/{NcInputConfirmCancel-45d1d76b.css → NcInputConfirmCancel-ks8z8dIn.css} +0 -0
  646. /package/dist/assets/{index-6f721577.css → NcListItemIcon-PQ2s6ZqX.css} +0 -0
  647. /package/dist/assets/{index-b8f13a1f.css → NcLoadingIcon-hZn7TJM8.css} +0 -0
  648. /package/dist/assets/{NcMentionBubble-6e887c5f.css → NcMentionBubble-2OXF_uEJ.css} +0 -0
  649. /package/dist/assets/{index-400b48a6.css → NcNoteCard-OTfZqVvP.css} +0 -0
  650. /package/dist/assets/{index-4ebacc78.css → NcPopover-MK4GcuPY.css} +0 -0
  651. /package/dist/assets/{index-6c47e88a.css → NcSettingsInputText-MPi6a3Yy.css} +0 -0
  652. /package/dist/assets/{index-d211cae8.css → Tooltip-wOLIuz0Q.css} +0 -0
  653. /package/dist/chunks/{GenRandomId-c214d235.cjs → GenRandomId-ULxaMkkr.cjs} +0 -0
  654. /package/dist/chunks/{GenRandomId-cb9ccebe.mjs → GenRandomId-VodkdWbp.mjs} +0 -0
  655. /package/dist/chunks/{Linkify-39f20c9a.mjs → Linkify-V7PfCeZ8.mjs} +0 -0
  656. /package/dist/chunks/{Linkify-40cdd635.cjs → Linkify-f3s3nAe_.cjs} +0 -0
  657. /package/dist/chunks/{_plugin-vue2_normalizer-7f9efb60.cjs → _plugin-vue2_normalizer-DCfUPqga.cjs} +0 -0
  658. /package/dist/chunks/{_plugin-vue2_normalizer-71e2aa87.mjs → _plugin-vue2_normalizer-u6G_3nkj.mjs} +0 -0
  659. /package/dist/chunks/{focusTrap-5d0f71d4.mjs → focusTrap-Py2bQ9-r.mjs} +0 -0
  660. /package/dist/chunks/{focusTrap-14985831.cjs → focusTrap-n3H52LOw.cjs} +0 -0
  661. /package/dist/chunks/{logger-3612e664.mjs → logger-3m1eQsSo.mjs} +0 -0
  662. /package/dist/chunks/{logger-4998b668.cjs → logger-G6OKp5ly.cjs} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_l10n-tZEKUJRj.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_plugin-vue2_normalizer-DCfUPqga.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_plugin-vue2_normalizer-u6G_3nkj.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- const e = require("vue"), i = (t) => t && t.__esModule ? t : { default: t }, s = /* @__PURE__ */ i(e);
3
2
  /**
4
3
  * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
5
4
  *
@@ -21,10 +20,7 @@ const e = require("vue"), i = (t) => t && t.__esModule ? t : { default: t }, s =
21
20
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22
21
  *
23
22
  */
24
- const n = {
25
- before() {
26
- (!this.$slots.default || this.text.trim() === "") && (s.default.util.warn(`${this.$options.name} cannot be empty and requires a meaningful text content`, this), this.$destroy(), this.$el.remove());
27
- },
23
+ const t = {
28
24
  beforeUpdate() {
29
25
  this.text = this.getText();
30
26
  },
@@ -42,8 +38,8 @@ const n = {
42
38
  },
43
39
  methods: {
44
40
  getText() {
45
- return this.$slots.default ? this.$slots.default[0].text.trim() : "";
41
+ return this.$scopedSlots.default ? this.$scopedSlots.default()?.[0].text.trim() : "";
46
42
  }
47
43
  }
48
44
  };
49
- exports.ActionGlobalMixin = n;
45
+ exports.ActionGlobalMixin = t;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionGlobal-_f-PhW84.cjs","sources":["../../src/mixins/actionGlobal.js"],"sourcesContent":["/**\n * @copyright Copyright (c) 2019 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 */\nexport default {\n\tbeforeUpdate() {\n\t\tthis.text = this.getText()\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// $slots are not reactive.\n\t\t\t// We need to update the content manually\n\t\t\ttext: this.getText(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisLongText() {\n\t\t\treturn this.text && this.text.trim().length > 20\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetText() {\n\t\t\treturn this.$scopedSlots.default ? this.$scopedSlots.default()?.[0].text.trim() : ''\n\t\t},\n\t},\n}\n"],"names":["ActionGlobalMixin"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBA,MAAeA,IAAA;AAAA,EACd,eAAe;AACd,SAAK,OAAO,KAAK,QAAS;AAAA,EAC1B;AAAA,EAED,OAAO;AACN,WAAO;AAAA;AAAA;AAAA,MAGN,MAAM,KAAK,QAAS;AAAA,IACpB;AAAA,EACD;AAAA,EAED,UAAU;AAAA,IACT,aAAa;AACZ,aAAO,KAAK,QAAQ,KAAK,KAAK,KAAI,EAAG,SAAS;AAAA,IAC9C;AAAA,EACD;AAAA,EAED,SAAS;AAAA,IACR,UAAU;AACT,aAAO,KAAK,aAAa,UAAU,KAAK,aAAa,QAAS,IAAG,CAAC,EAAE,KAAK,KAAM,IAAG;AAAA,IAClF;AAAA,EACD;AACF;;"}
@@ -1,4 +1,3 @@
1
- import t from "vue";
2
1
  /**
3
2
  * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
4
3
  *
@@ -20,10 +19,7 @@ import t from "vue";
20
19
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
21
20
  *
22
21
  */
23
- const i = {
24
- before() {
25
- (!this.$slots.default || this.text.trim() === "") && (t.util.warn(`${this.$options.name} cannot be empty and requires a meaningful text content`, this), this.$destroy(), this.$el.remove());
26
- },
22
+ const t = {
27
23
  beforeUpdate() {
28
24
  this.text = this.getText();
29
25
  },
@@ -41,10 +37,10 @@ const i = {
41
37
  },
42
38
  methods: {
43
39
  getText() {
44
- return this.$slots.default ? this.$slots.default[0].text.trim() : "";
40
+ return this.$scopedSlots.default ? this.$scopedSlots.default()?.[0].text.trim() : "";
45
41
  }
46
42
  }
47
43
  };
48
44
  export {
49
- i as A
45
+ t as A
50
46
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionGlobal-ejpd0zqm.mjs","sources":["../../src/mixins/actionGlobal.js"],"sourcesContent":["/**\n * @copyright Copyright (c) 2019 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 */\nexport default {\n\tbeforeUpdate() {\n\t\tthis.text = this.getText()\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// $slots are not reactive.\n\t\t\t// We need to update the content manually\n\t\t\ttext: this.getText(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisLongText() {\n\t\t\treturn this.text && this.text.trim().length > 20\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetText() {\n\t\t\treturn this.$scopedSlots.default ? this.$scopedSlots.default()?.[0].text.trim() : ''\n\t\t},\n\t},\n}\n"],"names":["ActionGlobalMixin"],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBA,MAAeA,IAAA;AAAA,EACd,eAAe;AACd,SAAK,OAAO,KAAK,QAAS;AAAA,EAC1B;AAAA,EAED,OAAO;AACN,WAAO;AAAA;AAAA;AAAA,MAGN,MAAM,KAAK,QAAS;AAAA,IACpB;AAAA,EACD;AAAA,EAED,UAAU;AAAA,IACT,aAAa;AACZ,aAAO,KAAK,QAAQ,KAAK,KAAK,KAAI,EAAG,SAAS;AAAA,IAC9C;AAAA,EACD;AAAA,EAED,SAAS;AAAA,IACR,UAAU;AACT,aAAO,KAAK,aAAa,UAAU,KAAK,aAAa,QAAS,IAAG,CAAC,EAAE,KAAK,KAAM,IAAG;AAAA,IAClF;AAAA,EACD;AACF;"}
@@ -1,4 +1,4 @@
1
- import { A as n } from "./actionGlobal-8c1c28c9.mjs";
1
+ import { A as n } from "./actionGlobal-ejpd0zqm.mjs";
2
2
  /**
3
3
  * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
4
4
  *
@@ -20,7 +20,7 @@ import { A as n } from "./actionGlobal-8c1c28c9.mjs";
20
20
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
21
21
  *
22
22
  */
23
- const l = function(i, t) {
23
+ const o = function(i, t) {
24
24
  let e = i.$parent;
25
25
  for (; e; ) {
26
26
  if (e.$options.name === t)
@@ -101,9 +101,13 @@ const r = {
101
101
  "click"
102
102
  ],
103
103
  computed: {
104
+ /**
105
+ * Check if icon prop is an URL
106
+ * @return {boolean} Whether the icon prop is an URL
107
+ */
104
108
  isIconUrl() {
105
109
  try {
106
- return new URL(this.icon);
110
+ return !!new URL(this.icon, this.icon.startsWith("/") ? window.location.origin : void 0);
107
111
  } catch {
108
112
  return !1;
109
113
  }
@@ -112,7 +116,7 @@ const r = {
112
116
  methods: {
113
117
  onClick(i) {
114
118
  if (this.$emit("click", i), this.closeAfterClick) {
115
- const t = l(this, "NcActions");
119
+ const t = o(this, "NcActions");
116
120
  t && t.closeMenu && t.closeMenu(!1);
117
121
  }
118
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"actionText-60ff01d1.mjs","sources":["../../src/utils/GetParent.js","../../src/mixins/actionText.js"],"sourcesContent":["/**\n * @copyright Copyright (c) 2019 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\n/**\n * Get the first parent component matching the provided name\n *\n * @param {object} context the context to search from (usually this)\n * @param {string} name the parent name\n * @return {object|undefined} the parent component\n */\nconst GetParent = function(context, name) {\n\tlet parent = context.$parent\n\twhile (parent) {\n\t\tif (parent.$options.name === name) {\n\t\t\treturn parent\n\t\t}\n\t\tparent = parent.$parent\n\t}\n}\n\nexport default GetParent\n","/**\n * @copyright Copyright (c) 2019 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 */\nimport actionGlobal from './actionGlobal.js'\nimport GetParent from '../utils/GetParent.js'\n\nexport default {\n\tmixins: [actionGlobal],\n\tprops: {\n\t\t/**\n\t\t * Icon to show with the action, can be either a CSS class or an URL\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The main text content of the entry.\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The title attribute of the element.\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Whether we close the Actions menu after the click\n\t\t */\n\t\tcloseAfterClick: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Aria label for the button. Not needed if the button has text.\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n\t\t * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n\t\t * otherwise root element will inherit incorrect aria-hidden.\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t],\n\n\tcomputed: {\n\t\tisIconUrl() {\n\t\t\ttry {\n\t\t\t\treturn new URL(this.icon)\n\t\t\t} catch (error) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonClick(event) {\n\t\t\t/**\n\t\t\t * Emitted when the action is clicked\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('click', event)\n\n\t\t\tif (this.closeAfterClick) {\n\t\t\t\tconst parent = GetParent(this, 'NcActions')\n\t\t\t\tif (parent && parent.closeMenu) {\n\t\t\t\t\tparent.closeMenu(false)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n}\n"],"names":["GetParent","context","name","parent","ActionTextMixin","actionGlobal","event"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BA,MAAMA,IAAY,SAASC,GAASC,GAAM;AACzC,MAAIC,IAASF,EAAQ;AACrB,SAAOE,KAAQ;AACd,QAAIA,EAAO,SAAS,SAASD;AAC5B,aAAOC;AAER,IAAAA,IAASA,EAAO;AAAA,EAChB;AACF;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBA,MAAeC,IAAA;AAAA,EACd,QAAQ,CAACC,CAAY;AAAA,EACrB,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,OAAO;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,iBAAiB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,WAAW;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,YAAY;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,EACD;AAAA,EAED,OAAO;AAAA,IACN;AAAA,EACA;AAAA,EAED,UAAU;AAAA,IACT,YAAY;AACX,UAAI;AACH,eAAO,IAAI,IAAI,KAAK,IAAI;AAAA,MACxB,QAAe;AACf,eAAO;AAAA,MACP;AAAA,IACD;AAAA,EACD;AAAA,EAED,SAAS;AAAA,IACR,QAAQC,GAAO;AAQd,UAFA,KAAK,MAAM,SAASA,CAAK,GAErB,KAAK,iBAAiB;AACzB,cAAMH,IAASH,EAAU,MAAM,WAAW;AAC1C,QAAIG,KAAUA,EAAO,aACpBA,EAAO,UAAU,EAAK;AAAA,MAEvB;AAAA,IACD;AAAA,EACD;AACF;"}
1
+ {"version":3,"file":"actionText-AoAs4kqP.mjs","sources":["../../src/utils/GetParent.js","../../src/mixins/actionText.js"],"sourcesContent":["/**\n * @copyright Copyright (c) 2019 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\n/**\n * Get the first parent component matching the provided name\n *\n * @param {object} context the context to search from (usually this)\n * @param {string} name the parent name\n * @return {object|undefined} the parent component\n */\nconst GetParent = function(context, name) {\n\tlet parent = context.$parent\n\twhile (parent) {\n\t\tif (parent.$options.name === name) {\n\t\t\treturn parent\n\t\t}\n\t\tparent = parent.$parent\n\t}\n}\n\nexport default GetParent\n","/**\n * @copyright Copyright (c) 2019 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 */\nimport actionGlobal from './actionGlobal.js'\nimport GetParent from '../utils/GetParent.js'\n\nexport default {\n\tmixins: [actionGlobal],\n\tprops: {\n\t\t/**\n\t\t * Icon to show with the action, can be either a CSS class or an URL\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The main text content of the entry.\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The title attribute of the element.\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Whether we close the Actions menu after the click\n\t\t */\n\t\tcloseAfterClick: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Aria label for the button. Not needed if the button has text.\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n\t\t * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n\t\t * otherwise root element will inherit incorrect aria-hidden.\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t],\n\n\tcomputed: {\n\t\t/**\n\t\t * Check if icon prop is an URL\n\t\t * @return {boolean} Whether the icon prop is an URL\n\t\t */\n\t\tisIconUrl() {\n\t\t\ttry {\n\t\t\t\treturn !!(new URL(this.icon, this.icon.startsWith('/') ? window.location.origin : undefined))\n\t\t\t} catch (error) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonClick(event) {\n\t\t\t/**\n\t\t\t * Emitted when the action is clicked\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('click', event)\n\n\t\t\tif (this.closeAfterClick) {\n\t\t\t\tconst parent = GetParent(this, 'NcActions')\n\t\t\t\tif (parent && parent.closeMenu) {\n\t\t\t\t\tparent.closeMenu(false)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n}\n"],"names":["GetParent","context","name","parent","ActionTextMixin","actionGlobal","event"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BA,MAAMA,IAAY,SAASC,GAASC,GAAM;AACzC,MAAIC,IAASF,EAAQ;AACrB,SAAOE,KAAQ;AACd,QAAIA,EAAO,SAAS,SAASD;AAC5B,aAAOC;AAER,IAAAA,IAASA,EAAO;AAAA,EAChB;AACF;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBA,MAAeC,IAAA;AAAA,EACd,QAAQ,CAACC,CAAY;AAAA,EACrB,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,OAAO;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,iBAAiB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,WAAW;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,YAAY;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,EACD;AAAA,EAED,OAAO;AAAA,IACN;AAAA,EACA;AAAA,EAED,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,IAKT,YAAY;AACX,UAAI;AACH,eAAO,CAAC,CAAE,IAAI,IAAI,KAAK,MAAM,KAAK,KAAK,WAAW,GAAG,IAAI,OAAO,SAAS,SAAS,MAAS;AAAA,MAC3F,QAAe;AACf,eAAO;AAAA,MACP;AAAA,IACD;AAAA,EACD;AAAA,EAED,SAAS;AAAA,IACR,QAAQC,GAAO;AAQd,UAFA,KAAK,MAAM,SAASA,CAAK,GAErB,KAAK,iBAAiB;AACzB,cAAMH,IAASH,EAAU,MAAM,WAAW;AAC1C,QAAIG,KAAUA,EAAO,aACpBA,EAAO,UAAU,EAAK;AAAA,MAEvB;AAAA,IACD;AAAA,EACD;AACF;"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const n = require("./actionGlobal-9e29e11b.cjs");
2
+ const n = require("./actionGlobal-_f-PhW84.cjs");
3
3
  /**
4
4
  * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
5
5
  *
@@ -21,7 +21,7 @@ const n = require("./actionGlobal-9e29e11b.cjs");
21
21
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22
22
  *
23
23
  */
24
- const l = function(i, t) {
24
+ const o = function(i, t) {
25
25
  let e = i.$parent;
26
26
  for (; e; ) {
27
27
  if (e.$options.name === t)
@@ -50,7 +50,7 @@ const l = function(i, t) {
50
50
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
51
51
  *
52
52
  */
53
- const o = {
53
+ const l = {
54
54
  mixins: [n.ActionGlobalMixin],
55
55
  props: {
56
56
  /**
@@ -102,9 +102,13 @@ const o = {
102
102
  "click"
103
103
  ],
104
104
  computed: {
105
+ /**
106
+ * Check if icon prop is an URL
107
+ * @return {boolean} Whether the icon prop is an URL
108
+ */
105
109
  isIconUrl() {
106
110
  try {
107
- return new URL(this.icon);
111
+ return !!new URL(this.icon, this.icon.startsWith("/") ? window.location.origin : void 0);
108
112
  } catch {
109
113
  return !1;
110
114
  }
@@ -113,10 +117,10 @@ const o = {
113
117
  methods: {
114
118
  onClick(i) {
115
119
  if (this.$emit("click", i), this.closeAfterClick) {
116
- const t = l(this, "NcActions");
120
+ const t = o(this, "NcActions");
117
121
  t && t.closeMenu && t.closeMenu(!1);
118
122
  }
119
123
  }
120
124
  }
121
125
  };
122
- exports.ActionTextMixin = o;
126
+ exports.ActionTextMixin = l;
@@ -1 +1 @@
1
- {"version":3,"file":"actionText-9582810f.cjs","sources":["../../src/utils/GetParent.js","../../src/mixins/actionText.js"],"sourcesContent":["/**\n * @copyright Copyright (c) 2019 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\n/**\n * Get the first parent component matching the provided name\n *\n * @param {object} context the context to search from (usually this)\n * @param {string} name the parent name\n * @return {object|undefined} the parent component\n */\nconst GetParent = function(context, name) {\n\tlet parent = context.$parent\n\twhile (parent) {\n\t\tif (parent.$options.name === name) {\n\t\t\treturn parent\n\t\t}\n\t\tparent = parent.$parent\n\t}\n}\n\nexport default GetParent\n","/**\n * @copyright Copyright (c) 2019 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 */\nimport actionGlobal from './actionGlobal.js'\nimport GetParent from '../utils/GetParent.js'\n\nexport default {\n\tmixins: [actionGlobal],\n\tprops: {\n\t\t/**\n\t\t * Icon to show with the action, can be either a CSS class or an URL\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The main text content of the entry.\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The title attribute of the element.\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Whether we close the Actions menu after the click\n\t\t */\n\t\tcloseAfterClick: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Aria label for the button. Not needed if the button has text.\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n\t\t * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n\t\t * otherwise root element will inherit incorrect aria-hidden.\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t],\n\n\tcomputed: {\n\t\tisIconUrl() {\n\t\t\ttry {\n\t\t\t\treturn new URL(this.icon)\n\t\t\t} catch (error) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonClick(event) {\n\t\t\t/**\n\t\t\t * Emitted when the action is clicked\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('click', event)\n\n\t\t\tif (this.closeAfterClick) {\n\t\t\t\tconst parent = GetParent(this, 'NcActions')\n\t\t\t\tif (parent && parent.closeMenu) {\n\t\t\t\t\tparent.closeMenu(false)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n}\n"],"names":["GetParent","context","name","parent","ActionTextMixin","actionGlobal","event"],"mappings":";;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BA,MAAMA,IAAY,SAASC,GAASC,GAAM;AACzC,MAAIC,IAASF,EAAQ;AACrB,SAAOE,KAAQ;AACd,QAAIA,EAAO,SAAS,SAASD;AAC5B,aAAOC;AAER,IAAAA,IAASA,EAAO;AAAA,EAChB;AACF;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBA,MAAeC,IAAA;AAAA,EACd,QAAQ,CAACC,EAAAA,iBAAY;AAAA,EACrB,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,OAAO;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,iBAAiB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,WAAW;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,YAAY;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,EACD;AAAA,EAED,OAAO;AAAA,IACN;AAAA,EACA;AAAA,EAED,UAAU;AAAA,IACT,YAAY;AACX,UAAI;AACH,eAAO,IAAI,IAAI,KAAK,IAAI;AAAA,MACxB,QAAe;AACf,eAAO;AAAA,MACP;AAAA,IACD;AAAA,EACD;AAAA,EAED,SAAS;AAAA,IACR,QAAQC,GAAO;AAQd,UAFA,KAAK,MAAM,SAASA,CAAK,GAErB,KAAK,iBAAiB;AACzB,cAAMH,IAASH,EAAU,MAAM,WAAW;AAC1C,QAAIG,KAAUA,EAAO,aACpBA,EAAO,UAAU,EAAK;AAAA,MAEvB;AAAA,IACD;AAAA,EACD;AACF;;"}
1
+ {"version":3,"file":"actionText-pGrMQtZ3.cjs","sources":["../../src/utils/GetParent.js","../../src/mixins/actionText.js"],"sourcesContent":["/**\n * @copyright Copyright (c) 2019 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\n/**\n * Get the first parent component matching the provided name\n *\n * @param {object} context the context to search from (usually this)\n * @param {string} name the parent name\n * @return {object|undefined} the parent component\n */\nconst GetParent = function(context, name) {\n\tlet parent = context.$parent\n\twhile (parent) {\n\t\tif (parent.$options.name === name) {\n\t\t\treturn parent\n\t\t}\n\t\tparent = parent.$parent\n\t}\n}\n\nexport default GetParent\n","/**\n * @copyright Copyright (c) 2019 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 */\nimport actionGlobal from './actionGlobal.js'\nimport GetParent from '../utils/GetParent.js'\n\nexport default {\n\tmixins: [actionGlobal],\n\tprops: {\n\t\t/**\n\t\t * Icon to show with the action, can be either a CSS class or an URL\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The main text content of the entry.\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * The title attribute of the element.\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Whether we close the Actions menu after the click\n\t\t */\n\t\tcloseAfterClick: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Aria label for the button. Not needed if the button has text.\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n\t\t * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n\t\t * otherwise root element will inherit incorrect aria-hidden.\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t],\n\n\tcomputed: {\n\t\t/**\n\t\t * Check if icon prop is an URL\n\t\t * @return {boolean} Whether the icon prop is an URL\n\t\t */\n\t\tisIconUrl() {\n\t\t\ttry {\n\t\t\t\treturn !!(new URL(this.icon, this.icon.startsWith('/') ? window.location.origin : undefined))\n\t\t\t} catch (error) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonClick(event) {\n\t\t\t/**\n\t\t\t * Emitted when the action is clicked\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('click', event)\n\n\t\t\tif (this.closeAfterClick) {\n\t\t\t\tconst parent = GetParent(this, 'NcActions')\n\t\t\t\tif (parent && parent.closeMenu) {\n\t\t\t\t\tparent.closeMenu(false)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n}\n"],"names":["GetParent","context","name","parent","ActionTextMixin","actionGlobal","event"],"mappings":";;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BA,MAAMA,IAAY,SAASC,GAASC,GAAM;AACzC,MAAIC,IAASF,EAAQ;AACrB,SAAOE,KAAQ;AACd,QAAIA,EAAO,SAAS,SAASD;AAC5B,aAAOC;AAER,IAAAA,IAASA,EAAO;AAAA,EAChB;AACF;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBA,MAAeC,IAAA;AAAA,EACd,QAAQ,CAACC,EAAAA,iBAAY;AAAA,EACrB,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,OAAO;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,iBAAiB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAID,WAAW;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,YAAY;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,EACD;AAAA,EAED,OAAO;AAAA,IACN;AAAA,EACA;AAAA,EAED,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,IAKT,YAAY;AACX,UAAI;AACH,eAAO,CAAC,CAAE,IAAI,IAAI,KAAK,MAAM,KAAK,KAAK,WAAW,GAAG,IAAI,OAAO,SAAS,SAAS,MAAS;AAAA,MAC3F,QAAe;AACf,eAAO;AAAA,MACP;AAAA,IACD;AAAA,EACD;AAAA,EAED,SAAS;AAAA,IACR,QAAQC,GAAO;AAQd,UAFA,KAAK,MAAM,SAASA,CAAK,GAErB,KAAK,iBAAiB;AACzB,cAAMH,IAASH,EAAU,MAAM,WAAW;AAC1C,QAAIG,KAAUA,EAAO,aACpBA,EAAO,UAAU,EAAK;AAAA,MAEvB;AAAA,IACD;AAAA,EACD;AACF;;"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ const o = require("@nextcloud/browser-storage"), a = require("emoji-mart-vue-fast"), g = require("emoji-mart-vue-fast/data/all.json"), h = (e) => e && e.__esModule ? e : { default: e }, l = /* @__PURE__ */ h(g);
3
+ /**
4
+ * @copyright Copyright (c) 2021 Jonas Meurer <jonas@freesources.org>
5
+ *
6
+ * @author Jonas Meurer <jonas@freesources.org>
7
+ *
8
+ * @license AGPL-3.0-or-later
9
+ *
10
+ * This program is free software: you can redistribute it and/or modify
11
+ * it under the terms of the GNU Affero General Public License as
12
+ * published by the Free Software Foundation, either version 3 of the
13
+ * License, or (at your option) any later version.
14
+ *
15
+ * This program is distributed in the hope that it will be useful,
16
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
+ * GNU Affero General Public License for more details.
19
+ *
20
+ * You should have received a copy of the GNU Affero General Public License
21
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
22
+ *
23
+ */
24
+ const c = o.getBuilder("nextcloud-vue").persist(!0).build();
25
+ var d = /* @__PURE__ */ ((e) => (e[e.Neutral = 1] = "Neutral", e[e.Light = 2] = "Light", e[e.MediumLight = 3] = "MediumLight", e[e.Medium = 4] = "Medium", e[e.MediumDark = 5] = "MediumDark", e[e.Dark = 6] = "Dark", e))(d || {});
26
+ const M = (e, r = 10) => {
27
+ const n = new a.EmojiIndex(l.default), s = i();
28
+ let t;
29
+ return e ? (t = n.search(`:${e}`, r), t.length < r && (t = t.concat(n.search(e, r - t.length)))) : t = a.frequently.get(r).map((u) => n.emoji(u)) || [], t.map((u) => u.getSkin(s));
30
+ }, m = function(e) {
31
+ a.frequently.add(e);
32
+ }, i = () => {
33
+ const e = Number.parseInt(c.getItem("NcEmojiPicker::currentSkinTone") ?? "1");
34
+ return Math.min(
35
+ Math.max(
36
+ e,
37
+ 1
38
+ /* Neutral */
39
+ ),
40
+ 6
41
+ /* Dark */
42
+ );
43
+ }, f = (e) => {
44
+ e = Math.min(
45
+ Math.max(
46
+ e,
47
+ 1
48
+ /* Neutral */
49
+ ),
50
+ 6
51
+ /* Dark */
52
+ ), c.setItem("NcEmojiPicker::currentSkinTone", e.toString());
53
+ };
54
+ exports.EmojiSkinTone = d;
55
+ exports.emojiAddRecent = m;
56
+ exports.emojiSearch = M;
57
+ exports.getCurrentSkinTone = i;
58
+ exports.setCurrentSkinTone = f;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emoji-mJIuLpNR.cjs","sources":["../../src/functions/emoji/emoji.ts"],"sourcesContent":["/**\n * @copyright Copyright (c) 2021 Jonas Meurer <jonas@freesources.org>\n *\n * @author Jonas Meurer <jonas@freesources.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\nimport { getBuilder } from '@nextcloud/browser-storage'\nimport { EmojiIndex, frequently } from 'emoji-mart-vue-fast'\n\nimport data from 'emoji-mart-vue-fast/data/all.json'\n\nconst storage = getBuilder('nextcloud-vue').persist(true).build()\n\n/**\n * Skin tones supported by Unicode Emojis (Fitzpatrick scale)\n * The numeric values align with `emoji-mart-vue`\n */\nexport enum EmojiSkinTone {\n\tNeutral = 1,\n\tLight = 2,\n\tMediumLight = 3,\n\tMedium = 4,\n\tMediumDark = 5,\n\tDark = 6,\n}\n\n/**\n * @param {string} query Emoji search string\n * @param {number} maxResults Maximum of returned emojis\n * @return {Array} list of found emojis\n */\nexport const emojiSearch = (query: string, maxResults: number = 10) => {\n\tconst index = new EmojiIndex(data)\n\tconst currentSkinTone = getCurrentSkinTone()\n\n\tlet results\n\tif (query) {\n\t\tresults = index.search(`:${query}`, maxResults)\n\t\tif (results.length < maxResults) {\n\t\t\tresults = results.concat(index.search(query, maxResults - results.length))\n\t\t}\n\t} else {\n\t\tresults = frequently.get(maxResults).map((id: number) => index.emoji(id)) || []\n\t}\n\n\treturn results.map((emoji) => emoji.getSkin(currentSkinTone))\n}\n\nexport const emojiAddRecent = function(id) {\n\tfrequently.add(id)\n}\n\n/**\n * Get the current skin tone index used for emojis\n * @return {EmojiSkinTone} The skin tone\n */\nexport const getCurrentSkinTone = () => {\n\tconst skinTone = Number.parseInt(storage.getItem('NcEmojiPicker::currentSkinTone') ?? '1')\n\t// Clamp skinTone to valid ranges\n\treturn Math.min(Math.max(skinTone, EmojiSkinTone.Neutral), EmojiSkinTone.Dark)\n}\n\n/**\n * Set the current active skin tone for emojis\n * @param {EmojiSkinTone} skinTone Skin tone\n */\nexport const setCurrentSkinTone = (skinTone: EmojiSkinTone) => {\n\t// Clamp skinTone to valid ranges\n\tskinTone = Math.min(Math.max(skinTone, EmojiSkinTone.Neutral), EmojiSkinTone.Dark)\n\tstorage.setItem('NcEmojiPicker::currentSkinTone', skinTone.toString())\n}\n"],"names":["storage","getBuilder","EmojiSkinTone","emojiSearch","query","maxResults","index","EmojiIndex","data","currentSkinTone","getCurrentSkinTone","results","frequently","id","emoji","emojiAddRecent","skinTone","setCurrentSkinTone"],"mappings":";;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BA,MAAMA,IAAUC,EAAW,WAAA,eAAe,EAAE,QAAQ,EAAI,EAAE;AAM9C,IAAAC,sBAAAA,OACXA,EAAAA,EAAA,UAAU,CAAV,IAAA,WACAA,EAAAA,EAAA,QAAQ,CAAR,IAAA,SACAA,EAAAA,EAAA,cAAc,CAAd,IAAA,eACAA,EAAAA,EAAA,SAAS,CAAT,IAAA,UACAA,EAAAA,EAAA,aAAa,CAAb,IAAA,cACAA,EAAAA,EAAA,OAAO,CAAP,IAAA,QANWA,IAAAA,KAAA,CAAA,CAAA;AAcL,MAAMC,IAAc,CAACC,GAAeC,IAAqB,OAAO;AAChE,QAAAC,IAAQ,IAAIC,aAAWC,EAAAA,OAAI,GAC3BC,IAAkBC;AAEpB,MAAAC;AACJ,SAAIP,KACHO,IAAUL,EAAM,OAAO,IAAIF,CAAK,IAAIC,CAAU,GAC1CM,EAAQ,SAASN,MACVM,IAAAA,EAAQ,OAAOL,EAAM,OAAOF,GAAOC,IAAaM,EAAQ,MAAM,CAAC,MAG1EA,IAAUC,EAAW,WAAA,IAAIP,CAAU,EAAE,IAAI,CAACQ,MAAeP,EAAM,MAAMO,CAAE,CAAC,KAAK,CAAA,GAGvEF,EAAQ,IAAI,CAACG,MAAUA,EAAM,QAAQL,CAAe,CAAC;AAC7D,GAEaM,IAAiB,SAASF,GAAI;AAC1CD,EAAAA,aAAW,IAAIC,CAAE;AAClB,GAMaH,IAAqB,MAAM;AACvC,QAAMM,IAAW,OAAO,SAAShB,EAAQ,QAAQ,gCAAgC,KAAK,GAAG;AAEzF,SAAO,KAAK;AAAA,IAAI,KAAK;AAAA,MAAIgB;AAAA,MAAU;AAAA;AAAA,IAAA;AAAA,IAAwB;AAAA;AAAA;AAC5D,GAMaC,IAAqB,CAACD,MAA4B;AAE9D,EAAAA,IAAW,KAAK;AAAA,IAAI,KAAK;AAAA,MAAIA;AAAA,MAAU;AAAA;AAAA;IAAwB;AAAA;AAAA,KAC/DhB,EAAQ,QAAQ,kCAAkCgB,EAAS,SAAU,CAAA;AACtE;;;;;;"}
@@ -0,0 +1,61 @@
1
+ import { getBuilder as d } from "@nextcloud/browser-storage";
2
+ import { EmojiIndex as g, frequently as u } from "emoji-mart-vue-fast";
3
+ import i from "emoji-mart-vue-fast/data/all.json";
4
+ /**
5
+ * @copyright Copyright (c) 2021 Jonas Meurer <jonas@freesources.org>
6
+ *
7
+ * @author Jonas Meurer <jonas@freesources.org>
8
+ *
9
+ * @license AGPL-3.0-or-later
10
+ *
11
+ * This program is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU Affero General Public License as
13
+ * published by the Free Software Foundation, either version 3 of the
14
+ * License, or (at your option) any later version.
15
+ *
16
+ * This program is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU Affero General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Affero General Public License
22
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
23
+ *
24
+ */
25
+ const n = d("nextcloud-vue").persist(!0).build();
26
+ var h = /* @__PURE__ */ ((t) => (t[t.Neutral = 1] = "Neutral", t[t.Light = 2] = "Light", t[t.MediumLight = 3] = "MediumLight", t[t.Medium = 4] = "Medium", t[t.MediumDark = 5] = "MediumDark", t[t.Dark = 6] = "Dark", t))(h || {});
27
+ const p = (t, r = 10) => {
28
+ const a = new g(i), s = m();
29
+ let e;
30
+ return t ? (e = a.search(`:${t}`, r), e.length < r && (e = e.concat(a.search(t, r - e.length)))) : e = u.get(r).map((c) => a.emoji(c)) || [], e.map((c) => c.getSkin(s));
31
+ }, f = function(t) {
32
+ u.add(t);
33
+ }, m = () => {
34
+ const t = Number.parseInt(n.getItem("NcEmojiPicker::currentSkinTone") ?? "1");
35
+ return Math.min(
36
+ Math.max(
37
+ t,
38
+ 1
39
+ /* Neutral */
40
+ ),
41
+ 6
42
+ /* Dark */
43
+ );
44
+ }, N = (t) => {
45
+ t = Math.min(
46
+ Math.max(
47
+ t,
48
+ 1
49
+ /* Neutral */
50
+ ),
51
+ 6
52
+ /* Dark */
53
+ ), n.setItem("NcEmojiPicker::currentSkinTone", t.toString());
54
+ };
55
+ export {
56
+ h as E,
57
+ f as a,
58
+ p as e,
59
+ m as g,
60
+ N as s
61
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emoji-tllD0Rvt.mjs","sources":["../../src/functions/emoji/emoji.ts"],"sourcesContent":["/**\n * @copyright Copyright (c) 2021 Jonas Meurer <jonas@freesources.org>\n *\n * @author Jonas Meurer <jonas@freesources.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\nimport { getBuilder } from '@nextcloud/browser-storage'\nimport { EmojiIndex, frequently } from 'emoji-mart-vue-fast'\n\nimport data from 'emoji-mart-vue-fast/data/all.json'\n\nconst storage = getBuilder('nextcloud-vue').persist(true).build()\n\n/**\n * Skin tones supported by Unicode Emojis (Fitzpatrick scale)\n * The numeric values align with `emoji-mart-vue`\n */\nexport enum EmojiSkinTone {\n\tNeutral = 1,\n\tLight = 2,\n\tMediumLight = 3,\n\tMedium = 4,\n\tMediumDark = 5,\n\tDark = 6,\n}\n\n/**\n * @param {string} query Emoji search string\n * @param {number} maxResults Maximum of returned emojis\n * @return {Array} list of found emojis\n */\nexport const emojiSearch = (query: string, maxResults: number = 10) => {\n\tconst index = new EmojiIndex(data)\n\tconst currentSkinTone = getCurrentSkinTone()\n\n\tlet results\n\tif (query) {\n\t\tresults = index.search(`:${query}`, maxResults)\n\t\tif (results.length < maxResults) {\n\t\t\tresults = results.concat(index.search(query, maxResults - results.length))\n\t\t}\n\t} else {\n\t\tresults = frequently.get(maxResults).map((id: number) => index.emoji(id)) || []\n\t}\n\n\treturn results.map((emoji) => emoji.getSkin(currentSkinTone))\n}\n\nexport const emojiAddRecent = function(id) {\n\tfrequently.add(id)\n}\n\n/**\n * Get the current skin tone index used for emojis\n * @return {EmojiSkinTone} The skin tone\n */\nexport const getCurrentSkinTone = () => {\n\tconst skinTone = Number.parseInt(storage.getItem('NcEmojiPicker::currentSkinTone') ?? '1')\n\t// Clamp skinTone to valid ranges\n\treturn Math.min(Math.max(skinTone, EmojiSkinTone.Neutral), EmojiSkinTone.Dark)\n}\n\n/**\n * Set the current active skin tone for emojis\n * @param {EmojiSkinTone} skinTone Skin tone\n */\nexport const setCurrentSkinTone = (skinTone: EmojiSkinTone) => {\n\t// Clamp skinTone to valid ranges\n\tskinTone = Math.min(Math.max(skinTone, EmojiSkinTone.Neutral), EmojiSkinTone.Dark)\n\tstorage.setItem('NcEmojiPicker::currentSkinTone', skinTone.toString())\n}\n"],"names":["storage","getBuilder","EmojiSkinTone","emojiSearch","query","maxResults","index","EmojiIndex","data","currentSkinTone","getCurrentSkinTone","results","frequently","id","emoji","emojiAddRecent","skinTone","setCurrentSkinTone"],"mappings":";;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BA,MAAMA,IAAUC,EAAW,eAAe,EAAE,QAAQ,EAAI,EAAE;AAM9C,IAAAC,sBAAAA,OACXA,EAAAA,EAAA,UAAU,CAAV,IAAA,WACAA,EAAAA,EAAA,QAAQ,CAAR,IAAA,SACAA,EAAAA,EAAA,cAAc,CAAd,IAAA,eACAA,EAAAA,EAAA,SAAS,CAAT,IAAA,UACAA,EAAAA,EAAA,aAAa,CAAb,IAAA,cACAA,EAAAA,EAAA,OAAO,CAAP,IAAA,QANWA,IAAAA,KAAA,CAAA,CAAA;AAcL,MAAMC,IAAc,CAACC,GAAeC,IAAqB,OAAO;AAChE,QAAAC,IAAQ,IAAIC,EAAWC,CAAI,GAC3BC,IAAkBC;AAEpB,MAAAC;AACJ,SAAIP,KACHO,IAAUL,EAAM,OAAO,IAAIF,CAAK,IAAIC,CAAU,GAC1CM,EAAQ,SAASN,MACVM,IAAAA,EAAQ,OAAOL,EAAM,OAAOF,GAAOC,IAAaM,EAAQ,MAAM,CAAC,MAG1EA,IAAUC,EAAW,IAAIP,CAAU,EAAE,IAAI,CAACQ,MAAeP,EAAM,MAAMO,CAAE,CAAC,KAAK,CAAA,GAGvEF,EAAQ,IAAI,CAACG,MAAUA,EAAM,QAAQL,CAAe,CAAC;AAC7D,GAEaM,IAAiB,SAASF,GAAI;AAC1C,EAAAD,EAAW,IAAIC,CAAE;AAClB,GAMaH,IAAqB,MAAM;AACvC,QAAMM,IAAW,OAAO,SAAShB,EAAQ,QAAQ,gCAAgC,KAAK,GAAG;AAEzF,SAAO,KAAK;AAAA,IAAI,KAAK;AAAA,MAAIgB;AAAA,MAAU;AAAA;AAAA,IAAA;AAAA,IAAwB;AAAA;AAAA;AAC5D,GAMaC,IAAqB,CAACD,MAA4B;AAE9D,EAAAA,IAAW,KAAK;AAAA,IAAI,KAAK;AAAA,MAAIA;AAAA,MAAU;AAAA;AAAA;IAAwB;AAAA;AAAA,KAC/DhB,EAAQ,QAAQ,kCAAkCgB,EAAS,SAAU,CAAA;AACtE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"focusTrap-5d0f71d4.mjs","sources":["../../src/utils/focusTrap.js"],"sourcesContent":["/**\n * @copyright Copyright (c) 2022 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\n/**\n * Return the default global focus trap stack\n *\n * @return {import('focus-trap').FocusTrap[]}\n */\nexport const getTrapStack = function() {\n\t// Create global stack if undefined\n\tObject.assign(window, { _nc_focus_trap: window._nc_focus_trap || [] })\n\n\treturn window._nc_focus_trap\n}\n"],"names":["getTrapStack"],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BY,MAACA,IAAe,WAAW;AAEtC,gBAAO,OAAO,QAAQ,EAAE,gBAAgB,OAAO,kBAAkB,CAAA,GAAI,GAE9D,OAAO;AACf;"}
1
+ {"version":3,"file":"focusTrap-Py2bQ9-r.mjs","sources":["../../src/utils/focusTrap.js"],"sourcesContent":["/**\n * @copyright Copyright (c) 2022 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\n/**\n * Return the default global focus trap stack\n *\n * @return {import('focus-trap').FocusTrap[]}\n */\nexport const getTrapStack = function() {\n\t// Create global stack if undefined\n\tObject.assign(window, { _nc_focus_trap: window._nc_focus_trap || [] })\n\n\treturn window._nc_focus_trap\n}\n"],"names":["getTrapStack"],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BY,MAACA,IAAe,WAAW;AAEtC,gBAAO,OAAO,QAAQ,EAAE,gBAAgB,OAAO,kBAAkB,CAAA,GAAI,GAE9D,OAAO;AACf;"}
@@ -1 +1 @@
1
- {"version":3,"file":"focusTrap-14985831.cjs","sources":["../../src/utils/focusTrap.js"],"sourcesContent":["/**\n * @copyright Copyright (c) 2022 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\n/**\n * Return the default global focus trap stack\n *\n * @return {import('focus-trap').FocusTrap[]}\n */\nexport const getTrapStack = function() {\n\t// Create global stack if undefined\n\tObject.assign(window, { _nc_focus_trap: window._nc_focus_trap || [] })\n\n\treturn window._nc_focus_trap\n}\n"],"names":["getTrapStack"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BY,MAACA,IAAe,WAAW;AAEtC,gBAAO,OAAO,QAAQ,EAAE,gBAAgB,OAAO,kBAAkB,CAAA,GAAI,GAE9D,OAAO;AACf;;"}
1
+ {"version":3,"file":"focusTrap-n3H52LOw.cjs","sources":["../../src/utils/focusTrap.js"],"sourcesContent":["/**\n * @copyright Copyright (c) 2022 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\n/**\n * Return the default global focus trap stack\n *\n * @return {import('focus-trap').FocusTrap[]}\n */\nexport const getTrapStack = function() {\n\t// Create global stack if undefined\n\tObject.assign(window, { _nc_focus_trap: window._nc_focus_trap || [] })\n\n\treturn window._nc_focus_trap\n}\n"],"names":["getTrapStack"],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BY,MAACA,IAAe,WAAW;AAEtC,gBAAO,OAAO,QAAQ,EAAE,gBAAgB,OAAO,kBAAkB,CAAA,GAAI,GAE9D,OAAO;AACf;;"}
@@ -1,4 +1,4 @@
1
- import { n as r } from "./_plugin-vue2_normalizer-71e2aa87.mjs";
1
+ import { n as r } from "./_plugin-vue2_normalizer-u6G_3nkj.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-20a9ace9.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-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,6 +1,7 @@
1
1
  "use strict";
2
2
  const _ = require("@nextcloud/router");
3
- /* empty css */const b = require("./_plugin-vue2_normalizer-7f9efb60.cjs"), g = require("./Linkify-40cdd635.cjs"), f = require("escape-html"), h = require("striptags"), E = require("vue"), s = (t) => t && t.__esModule ? t : { default: t }, y = /* @__PURE__ */ s(f), l = /* @__PURE__ */ s(h), T = /* @__PURE__ */ s(E), C = {
3
+ ;/* empty css */
4
+ const b = require("./_plugin-vue2_normalizer-DCfUPqga.cjs"), g = require("./Linkify-f3s3nAe_.cjs"), f = require("escape-html"), h = require("striptags"), E = require("vue"), s = (t) => t && t.__esModule ? t : { default: t }, y = /* @__PURE__ */ s(f), l = /* @__PURE__ */ s(h), T = /* @__PURE__ */ s(E), C = {
4
5
  name: "NcMentionBubble",
5
6
  props: {
6
7
  id: {
@@ -1 +1 @@
1
- {"version":3,"file":"index-4398f925.cjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"title\" />\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\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: true,\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},\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-AX_b-FPF.cjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"title\" />\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\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: true,\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},\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,5 +1,5 @@
1
1
  "use strict";
2
- const l = require("./_plugin-vue2_normalizer-7f9efb60.cjs");
2
+ const l = require("./_plugin-vue2_normalizer-DCfUPqga.cjs");
3
3
  /**
4
4
  * @copyright Copyright (c) 2020 Raimund Schlüßler <raimund.schluessler@mailbox.org>
5
5
  *