@nextcloud/vue 8.19.0 → 8.20.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 (653) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/Components/NcActionButton.cjs +4 -4
  3. package/dist/Components/NcActionButton.mjs +4 -4
  4. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  5. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  6. package/dist/Components/NcActionCaption.cjs +1 -1
  7. package/dist/Components/NcActionCaption.mjs +1 -1
  8. package/dist/Components/NcActionCheckbox.cjs +2 -106
  9. package/dist/Components/NcActionCheckbox.cjs.map +1 -1
  10. package/dist/Components/NcActionCheckbox.mjs +2 -106
  11. package/dist/Components/NcActionCheckbox.mjs.map +1 -1
  12. package/dist/Components/NcActionInput.cjs +1 -1
  13. package/dist/Components/NcActionInput.mjs +1 -1
  14. package/dist/Components/NcActionLink.cjs +2 -2
  15. package/dist/Components/NcActionLink.mjs +2 -2
  16. package/dist/Components/NcActionRadio.cjs +2 -108
  17. package/dist/Components/NcActionRadio.cjs.map +1 -1
  18. package/dist/Components/NcActionRadio.mjs +2 -108
  19. package/dist/Components/NcActionRadio.mjs.map +1 -1
  20. package/dist/Components/NcActionRouter.cjs +2 -2
  21. package/dist/Components/NcActionRouter.mjs +2 -2
  22. package/dist/Components/NcActionSeparator.cjs +1 -1
  23. package/dist/Components/NcActionSeparator.mjs +1 -1
  24. package/dist/Components/NcActionText.cjs +2 -2
  25. package/dist/Components/NcActionText.mjs +2 -2
  26. package/dist/Components/NcActionTextEditable.cjs +2 -89
  27. package/dist/Components/NcActionTextEditable.cjs.map +1 -1
  28. package/dist/Components/NcActionTextEditable.mjs +2 -89
  29. package/dist/Components/NcActionTextEditable.mjs.map +1 -1
  30. package/dist/Components/NcActions.cjs +1 -1
  31. package/dist/Components/NcActions.mjs +1 -1
  32. package/dist/Components/NcAppContent.cjs +1 -1
  33. package/dist/Components/NcAppContent.mjs +1 -1
  34. package/dist/Components/NcAppNavigation.cjs +1 -1
  35. package/dist/Components/NcAppNavigation.mjs +1 -1
  36. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  37. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  38. package/dist/Components/NcAppNavigationIconBullet.cjs +1 -1
  39. package/dist/Components/NcAppNavigationIconBullet.mjs +1 -1
  40. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  41. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  42. package/dist/Components/NcAppNavigationList.cjs +1 -1
  43. package/dist/Components/NcAppNavigationList.mjs +1 -1
  44. package/dist/Components/NcAppNavigationNew.cjs +1 -1
  45. package/dist/Components/NcAppNavigationNew.mjs +1 -1
  46. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  47. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  48. package/dist/Components/NcAppNavigationSearch.cjs +1 -1
  49. package/dist/Components/NcAppNavigationSearch.mjs +1 -1
  50. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  51. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  52. package/dist/Components/NcAppNavigationSpacer.cjs +1 -1
  53. package/dist/Components/NcAppNavigationSpacer.mjs +1 -1
  54. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  55. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  56. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  57. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  58. package/dist/Components/NcAppSettingsSection.cjs +5 -8
  59. package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
  60. package/dist/Components/NcAppSettingsSection.mjs +5 -8
  61. package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
  62. package/dist/Components/NcAppSidebar.cjs +1 -1
  63. package/dist/Components/NcAppSidebar.mjs +1 -1
  64. package/dist/Components/NcAppSidebarTab.cjs +3 -4
  65. package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
  66. package/dist/Components/NcAppSidebarTab.mjs +3 -4
  67. package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
  68. package/dist/Components/NcAvatar.cjs +1 -1
  69. package/dist/Components/NcAvatar.mjs +1 -1
  70. package/dist/Components/NcBreadcrumb.cjs +1 -1
  71. package/dist/Components/NcBreadcrumb.mjs +1 -1
  72. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  73. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  74. package/dist/Components/NcButton.cjs +7 -8
  75. package/dist/Components/NcButton.cjs.map +1 -1
  76. package/dist/Components/NcButton.mjs +7 -8
  77. package/dist/Components/NcButton.mjs.map +1 -1
  78. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  79. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  80. package/dist/Components/NcChip.cjs +7 -13
  81. package/dist/Components/NcChip.cjs.map +1 -1
  82. package/dist/Components/NcChip.mjs +7 -13
  83. package/dist/Components/NcChip.mjs.map +1 -1
  84. package/dist/Components/NcCollectionList.cjs +1 -1
  85. package/dist/Components/NcCollectionList.mjs +1 -1
  86. package/dist/Components/NcColorPicker.cjs +1 -1
  87. package/dist/Components/NcColorPicker.mjs +1 -1
  88. package/dist/Components/NcContent.cjs +1 -1
  89. package/dist/Components/NcContent.mjs +1 -1
  90. package/dist/Components/NcCounterBubble.cjs +1 -1
  91. package/dist/Components/NcCounterBubble.mjs +1 -1
  92. package/dist/Components/NcDashboardWidget.cjs +1 -1
  93. package/dist/Components/NcDashboardWidget.mjs +1 -1
  94. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  95. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  96. package/dist/Components/NcDateTime.cjs +1 -1
  97. package/dist/Components/NcDateTime.mjs +1 -1
  98. package/dist/Components/NcDateTimePicker.cjs +37 -17
  99. package/dist/Components/NcDateTimePicker.cjs.map +1 -1
  100. package/dist/Components/NcDateTimePicker.mjs +37 -17
  101. package/dist/Components/NcDateTimePicker.mjs.map +1 -1
  102. package/dist/Components/NcDateTimePickerNative.cjs +52 -21
  103. package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
  104. package/dist/Components/NcDateTimePickerNative.mjs +52 -21
  105. package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
  106. package/dist/Components/NcDialog.cjs +1 -1
  107. package/dist/Components/NcDialog.mjs +1 -1
  108. package/dist/Components/NcDialogButton.cjs +1 -1
  109. package/dist/Components/NcDialogButton.mjs +1 -1
  110. package/dist/Components/NcEllipsisedOption.cjs +3 -3
  111. package/dist/Components/NcEllipsisedOption.cjs.map +1 -1
  112. package/dist/Components/NcEllipsisedOption.mjs +3 -3
  113. package/dist/Components/NcEllipsisedOption.mjs.map +1 -1
  114. package/dist/Components/NcEmojiPicker.cjs +1 -1
  115. package/dist/Components/NcEmojiPicker.mjs +1 -1
  116. package/dist/Components/NcEmptyContent.cjs +2 -3
  117. package/dist/Components/NcEmptyContent.cjs.map +1 -1
  118. package/dist/Components/NcEmptyContent.mjs +2 -3
  119. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  120. package/dist/Components/NcGuestContent.cjs +1 -1
  121. package/dist/Components/NcGuestContent.mjs +1 -1
  122. package/dist/Components/NcHeaderButton.cjs +1 -1
  123. package/dist/Components/NcHeaderButton.mjs +1 -1
  124. package/dist/Components/NcHeaderMenu.cjs +1 -1
  125. package/dist/Components/NcHeaderMenu.mjs +1 -1
  126. package/dist/Components/NcIconSvgWrapper.cjs +1 -1
  127. package/dist/Components/NcIconSvgWrapper.mjs +1 -1
  128. package/dist/Components/NcInputField.cjs +2 -232
  129. package/dist/Components/NcInputField.cjs.map +1 -1
  130. package/dist/Components/NcInputField.mjs +2 -232
  131. package/dist/Components/NcInputField.mjs.map +1 -1
  132. package/dist/Components/NcListItem.cjs +1 -1
  133. package/dist/Components/NcListItem.mjs +1 -1
  134. package/dist/Components/NcListItemIcon.cjs +1 -1
  135. package/dist/Components/NcListItemIcon.mjs +1 -1
  136. package/dist/Components/NcLoadingIcon.cjs +1 -1
  137. package/dist/Components/NcLoadingIcon.mjs +1 -1
  138. package/dist/Components/NcModal.cjs +14 -15
  139. package/dist/Components/NcModal.cjs.map +1 -1
  140. package/dist/Components/NcModal.mjs +14 -15
  141. package/dist/Components/NcModal.mjs.map +1 -1
  142. package/dist/Components/NcNoteCard.cjs +6 -6
  143. package/dist/Components/NcNoteCard.cjs.map +1 -1
  144. package/dist/Components/NcNoteCard.mjs +6 -6
  145. package/dist/Components/NcNoteCard.mjs.map +1 -1
  146. package/dist/Components/NcPasswordField.cjs +1 -1
  147. package/dist/Components/NcPasswordField.mjs +1 -1
  148. package/dist/Components/NcPopover.cjs +1 -1
  149. package/dist/Components/NcPopover.mjs +1 -1
  150. package/dist/Components/NcProgressBar.cjs +1 -1
  151. package/dist/Components/NcProgressBar.mjs +1 -1
  152. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  153. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  154. package/dist/Components/NcRichContenteditable.cjs +2 -2
  155. package/dist/Components/NcRichContenteditable.mjs +2 -2
  156. package/dist/Components/NcRichText.cjs +3 -3
  157. package/dist/Components/NcRichText.mjs +4 -4
  158. package/dist/Components/NcSelect.cjs +1 -1
  159. package/dist/Components/NcSelect.mjs +1 -1
  160. package/dist/Components/NcSelectTags.cjs +1 -1
  161. package/dist/Components/NcSelectTags.mjs +1 -1
  162. package/dist/Components/NcSettingsInputText.cjs +1 -1
  163. package/dist/Components/NcSettingsInputText.mjs +1 -1
  164. package/dist/Components/NcSettingsSection.cjs +1 -1
  165. package/dist/Components/NcSettingsSection.mjs +1 -1
  166. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  167. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  168. package/dist/Components/NcTextArea.cjs +2 -179
  169. package/dist/Components/NcTextArea.cjs.map +1 -1
  170. package/dist/Components/NcTextArea.mjs +2 -179
  171. package/dist/Components/NcTextArea.mjs.map +1 -1
  172. package/dist/Components/NcTextField.cjs +1 -1
  173. package/dist/Components/NcTextField.mjs +1 -1
  174. package/dist/Components/NcTimezonePicker.cjs +1 -1
  175. package/dist/Components/NcTimezonePicker.mjs +1 -1
  176. package/dist/Components/NcUserBubble.cjs +1 -1
  177. package/dist/Components/NcUserBubble.mjs +1 -1
  178. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  179. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  180. package/dist/Components/NcVNodes.cjs +1 -2
  181. package/dist/Components/NcVNodes.cjs.map +1 -1
  182. package/dist/Components/NcVNodes.mjs +1 -2
  183. package/dist/Components/NcVNodes.mjs.map +1 -1
  184. package/dist/Composables/useHotKey.cjs +2 -4
  185. package/dist/Composables/useHotKey.cjs.map +1 -1
  186. package/dist/Composables/useHotKey.mjs +2 -4
  187. package/dist/Composables/useHotKey.mjs.map +1 -1
  188. package/dist/Composables/useIsDarkTheme.cjs +18 -0
  189. package/dist/Composables/useIsDarkTheme.cjs.map +1 -0
  190. package/dist/Composables/useIsDarkTheme.mjs +18 -0
  191. package/dist/Composables/useIsDarkTheme.mjs.map +1 -0
  192. package/dist/Directives/Linkify.cjs +1 -2
  193. package/dist/Directives/Linkify.cjs.map +1 -1
  194. package/dist/Directives/Linkify.mjs +1 -2
  195. package/dist/Directives/Linkify.mjs.map +1 -1
  196. package/dist/Directives/Tooltip.cjs +1 -1
  197. package/dist/Directives/Tooltip.mjs +1 -1
  198. package/dist/Functions/dialog.cjs +27 -0
  199. package/dist/Functions/dialog.cjs.map +1 -0
  200. package/dist/Functions/dialog.mjs +25 -0
  201. package/dist/Functions/dialog.mjs.map +1 -0
  202. package/dist/Functions/emoji.cjs +1 -1
  203. package/dist/Functions/emoji.mjs +1 -1
  204. package/dist/Functions/isDarkTheme.cjs +12 -0
  205. package/dist/Functions/isDarkTheme.cjs.map +1 -0
  206. package/dist/Functions/isDarkTheme.mjs +12 -0
  207. package/dist/Functions/isDarkTheme.mjs.map +1 -0
  208. package/dist/Functions/reference.cjs +2 -2
  209. package/dist/Functions/reference.mjs +2 -2
  210. package/dist/Functions/registerReference.cjs +1 -1
  211. package/dist/Functions/registerReference.mjs +1 -1
  212. package/dist/Functions/usernameToColor.cjs +1 -1
  213. package/dist/Functions/usernameToColor.mjs +1 -1
  214. package/dist/Mixins/richEditor.cjs +1 -1
  215. package/dist/Mixins/richEditor.mjs +1 -1
  216. package/dist/assets/{NcActionButton-D90PTEA5.css → NcActionButton-CNq6xIdS.css} +1 -1
  217. package/dist/assets/{NcActionCheckbox-sIGqnckr.css → NcActionCheckbox-DeW2CCVc.css} +11 -11
  218. package/dist/assets/{NcActionInput-C_3Csa6A.css → NcActionInput-CNRERfyh.css} +61 -61
  219. package/dist/assets/{NcActionLink-Db_ZlqWs.css → NcActionLink-CC6a7Hsf.css} +1 -1
  220. package/dist/assets/{NcActionRadio-DFcWmvae.css → NcActionRadio-DC7Wp9rR.css} +11 -11
  221. package/dist/assets/{NcActionRouter-DidTlbov.css → NcActionRouter-CsIBHw6E.css} +1 -1
  222. package/dist/assets/{NcActionText-DCx1DWXe.css → NcActionText-BSD_HYx4.css} +1 -1
  223. package/dist/assets/{NcActionTextEditable-Dud9NOdm.css → NcActionTextEditable-Cg16Q4zr.css} +59 -59
  224. package/dist/assets/{NcAppContent-DVBVZyuW.css → NcAppContent-CpXVlHUj.css} +6 -6
  225. package/dist/assets/{NcAppNavigation-fhylfTxx.css → NcAppNavigation-CBN6X2dT.css} +13 -13
  226. package/dist/assets/{NcAppNavigationItem-CxlG8Qdb.css → NcAppNavigationItem-CNZsPcla.css} +30 -30
  227. package/dist/assets/{NcAppNavigationToggle-DvYpNzHv.css → NcAppNavigationToggle-Chtb7sE7.css} +5 -5
  228. package/dist/assets/{NcAppSidebar-CpV7czJx.css → NcAppSidebar-BntAj6H-.css} +73 -73
  229. package/dist/assets/{NcCheckboxRadioSwitch-BzAGGne9.css → NcCheckboxRadioSwitch-D0kAZROF.css} +31 -31
  230. package/dist/assets/{NcColorPicker-aCjZY65-.css → NcColorPicker-Dw2wy2tU.css} +28 -28
  231. package/dist/assets/{NcDateTimePicker-BFvU3We7.css → NcDateTimePicker-D264hKgE.css} +48 -33
  232. package/dist/assets/NcDateTimePickerNative-BfZfqRvD.css +47 -0
  233. package/dist/assets/{NcEllipsisedOption-DZK2vWD1.css → NcEllipsisedOption-DGr9_bIL.css} +5 -5
  234. package/dist/assets/{NcInputField-CQc5dRbY.css → NcInputField-C0PHosfg.css} +32 -32
  235. package/dist/assets/{NcModal-Cg2K9DV5.css → NcModal-BBKX-T6V.css} +61 -61
  236. package/dist/assets/{NcPasswordField-DWd5gg73.css → NcPasswordField-DZ6dcMzH.css} +2 -2
  237. package/dist/assets/{NcRichContenteditable-BYEZK1DT.css → NcRichContenteditable-R-32wbyl.css} +10 -10
  238. package/dist/assets/{NcRichText-DqDAPQPD.css → NcRichText-Ds8WxUk1.css} +56 -58
  239. package/dist/assets/{NcSettingsInputText-DbTNj9E6.css → NcSettingsInputText-Bsp_6DjJ.css} +5 -5
  240. package/dist/assets/{NcSettingsSelectGroup-CzD7YrGm.css → NcSettingsSelectGroup-BEjOwCJQ.css} +2 -2
  241. package/dist/assets/{NcTextArea-D8bZi2fT.css → NcTextArea-fzbciv3V.css} +20 -20
  242. package/dist/assets/{referencePickerModal-9BcmmfUy.css → referencePickerModal-BhhuyO3J.css} +38 -38
  243. package/dist/chunks/{AlertCircleOutline-DLtiWgZd.cjs → AlertCircleOutline-BrsasUsU.cjs} +1 -1
  244. package/dist/chunks/AlertCircleOutline-BrsasUsU.cjs.map +1 -0
  245. package/dist/chunks/{AlertCircleOutline-DU3QwU5Y.mjs → AlertCircleOutline-DBxbepLy.mjs} +1 -1
  246. package/dist/chunks/AlertCircleOutline-DBxbepLy.mjs.map +1 -0
  247. package/dist/chunks/{ArrowLeft-CONurT5C.cjs → ArrowLeft-BP7yfzCQ.cjs} +1 -1
  248. package/dist/chunks/ArrowLeft-BP7yfzCQ.cjs.map +1 -0
  249. package/dist/chunks/{ArrowLeft-BhAxJBYx.mjs → ArrowLeft-DuT2LZOm.mjs} +1 -1
  250. package/dist/chunks/ArrowLeft-DuT2LZOm.mjs.map +1 -0
  251. package/dist/chunks/{ArrowRight-KsL2PC-o.mjs → ArrowRight-CY2b9hgN.mjs} +1 -1
  252. package/dist/chunks/ArrowRight-CY2b9hgN.mjs.map +1 -0
  253. package/dist/chunks/{ArrowRight-Bj5G_mG0.cjs → ArrowRight-DPARnmu3.cjs} +1 -1
  254. package/dist/chunks/ArrowRight-DPARnmu3.cjs.map +1 -0
  255. package/dist/chunks/{Check-XHAzUBkX.mjs → Check-BkThHPH7.mjs} +1 -1
  256. package/dist/chunks/Check-BkThHPH7.mjs.map +1 -0
  257. package/dist/chunks/{Check-fCbe4vqy.cjs → Check-Du8mPz_B.cjs} +1 -1
  258. package/dist/chunks/Check-Du8mPz_B.cjs.map +1 -0
  259. package/dist/chunks/{ChevronDown-CiFbcDUC.cjs → ChevronDown-BlfyuflD.cjs} +1 -1
  260. package/dist/chunks/ChevronDown-BlfyuflD.cjs.map +1 -0
  261. package/dist/chunks/{ChevronDown-D3Tfshug.mjs → ChevronDown-DFQfzh63.mjs} +1 -1
  262. package/dist/chunks/ChevronDown-DFQfzh63.mjs.map +1 -0
  263. package/dist/chunks/{ChevronRight-C3eVhc5a.mjs → ChevronRight-BUv-PtHh.mjs} +1 -1
  264. package/dist/chunks/ChevronRight-BUv-PtHh.mjs.map +1 -0
  265. package/dist/chunks/{ChevronRight-CWbdN5_r.cjs → ChevronRight-ZCKVg9OI.cjs} +1 -1
  266. package/dist/chunks/ChevronRight-ZCKVg9OI.cjs.map +1 -0
  267. package/dist/chunks/{ChevronUp-A2riTBrv.cjs → ChevronUp-Bpd__OBZ.cjs} +1 -1
  268. package/dist/chunks/ChevronUp-Bpd__OBZ.cjs.map +1 -0
  269. package/dist/chunks/{ChevronUp-ljACquzS.mjs → ChevronUp-C7Dy9Bph.mjs} +1 -1
  270. package/dist/chunks/ChevronUp-C7Dy9Bph.mjs.map +1 -0
  271. package/dist/chunks/{Close-B6ccm1RP.mjs → Close-BtLPUSdO.mjs} +1 -1
  272. package/dist/chunks/Close-BtLPUSdO.mjs.map +1 -0
  273. package/dist/chunks/{Close-B7lGu0cG.cjs → Close-CqmXxEKi.cjs} +1 -1
  274. package/dist/chunks/Close-CqmXxEKi.cjs.map +1 -0
  275. package/dist/chunks/{DotsHorizontal-DQfnwpao.cjs → DotsHorizontal-BoI3vnhk.cjs} +1 -1
  276. package/dist/chunks/DotsHorizontal-BoI3vnhk.cjs.map +1 -0
  277. package/dist/chunks/{DotsHorizontal-Cd2x8oz2.mjs → DotsHorizontal-C6LNsw4N.mjs} +1 -1
  278. package/dist/chunks/DotsHorizontal-C6LNsw4N.mjs.map +1 -0
  279. package/dist/chunks/{GenColors-BWE946ht.mjs → GenColors-BAOuMMLW.mjs} +3 -3
  280. package/dist/chunks/{GenColors-BWE946ht.mjs.map → GenColors-BAOuMMLW.mjs.map} +1 -1
  281. package/dist/chunks/{GenColors-Cay7TLwO.cjs → GenColors-iV_vrBr4.cjs} +3 -3
  282. package/dist/chunks/{GenColors-Cay7TLwO.cjs.map → GenColors-iV_vrBr4.cjs.map} +1 -1
  283. package/dist/chunks/{NcActionButtonGroup-BrN2mWdo.cjs → NcActionButtonGroup-C0nQ7J_W.cjs} +3 -3
  284. package/dist/chunks/{NcActionButtonGroup-BrN2mWdo.cjs.map → NcActionButtonGroup-C0nQ7J_W.cjs.map} +1 -1
  285. package/dist/chunks/{NcActionButtonGroup-B5RmRcow.mjs → NcActionButtonGroup-D1B23tmS.mjs} +3 -3
  286. package/dist/chunks/{NcActionButtonGroup-B5RmRcow.mjs.map → NcActionButtonGroup-D1B23tmS.mjs.map} +1 -1
  287. package/dist/chunks/NcActionCheckbox-DiDhwRJA.cjs +137 -0
  288. package/dist/chunks/NcActionCheckbox-DiDhwRJA.cjs.map +1 -0
  289. package/dist/chunks/NcActionCheckbox-DiTExF3O.mjs +138 -0
  290. package/dist/chunks/NcActionCheckbox-DiTExF3O.mjs.map +1 -0
  291. package/dist/chunks/{NcActionInput-BxlypAgV.mjs → NcActionInput-BcNial11.mjs} +46 -14
  292. package/dist/chunks/NcActionInput-BcNial11.mjs.map +1 -0
  293. package/dist/chunks/{NcActionInput-TP6P798j.cjs → NcActionInput-zCzwKL6H.cjs} +46 -14
  294. package/dist/chunks/NcActionInput-zCzwKL6H.cjs.map +1 -0
  295. package/dist/chunks/NcActionRadio-DSIJMuFP.cjs +139 -0
  296. package/dist/chunks/NcActionRadio-DSIJMuFP.cjs.map +1 -0
  297. package/dist/chunks/NcActionRadio-kbPC8ri8.mjs +140 -0
  298. package/dist/chunks/NcActionRadio-kbPC8ri8.mjs.map +1 -0
  299. package/dist/chunks/NcActionTextEditable-CA3Eoscz.mjs +122 -0
  300. package/dist/chunks/NcActionTextEditable-CA3Eoscz.mjs.map +1 -0
  301. package/dist/chunks/NcActionTextEditable-DgdiBv6b.cjs +121 -0
  302. package/dist/chunks/NcActionTextEditable-DgdiBv6b.cjs.map +1 -0
  303. package/dist/chunks/{NcActions-BgYpDq2n.mjs → NcActions-BUZ5Oprh.mjs} +30 -37
  304. package/dist/chunks/{NcActions-BgYpDq2n.mjs.map → NcActions-BUZ5Oprh.mjs.map} +1 -1
  305. package/dist/chunks/{NcActions-gOMT5VzC.cjs → NcActions-CCYNSnCn.cjs} +30 -37
  306. package/dist/chunks/{NcActions-gOMT5VzC.cjs.map → NcActions-CCYNSnCn.cjs.map} +1 -1
  307. package/dist/chunks/{NcAppContent-fXpgsMfG.cjs → NcAppContent-BnoVcMYZ.cjs} +12 -8
  308. package/dist/chunks/NcAppContent-BnoVcMYZ.cjs.map +1 -0
  309. package/dist/chunks/{NcAppContent-lEyly7Jk.mjs → NcAppContent-C-WAXtGI.mjs} +12 -8
  310. package/dist/chunks/NcAppContent-C-WAXtGI.mjs.map +1 -0
  311. package/dist/chunks/{NcAppNavigation-BleAA1U_.cjs → NcAppNavigation-BuKJwvwT.cjs} +3 -3
  312. package/dist/chunks/{NcAppNavigation-BleAA1U_.cjs.map → NcAppNavigation-BuKJwvwT.cjs.map} +1 -1
  313. package/dist/chunks/{NcAppNavigation-CxsxPI9x.mjs → NcAppNavigation-CHWYmJnQ.mjs} +3 -3
  314. package/dist/chunks/{NcAppNavigation-CxsxPI9x.mjs.map → NcAppNavigation-CHWYmJnQ.mjs.map} +1 -1
  315. package/dist/chunks/{NcAppNavigationCaption-BQVV0F7Y.mjs → NcAppNavigationCaption-AGVUaCQj.mjs} +3 -3
  316. package/dist/chunks/{NcAppNavigationCaption-BQVV0F7Y.mjs.map → NcAppNavigationCaption-AGVUaCQj.mjs.map} +1 -1
  317. package/dist/chunks/{NcAppNavigationCaption-BK-acRxg.cjs → NcAppNavigationCaption-DUPonEWi.cjs} +3 -3
  318. package/dist/chunks/{NcAppNavigationCaption-BK-acRxg.cjs.map → NcAppNavigationCaption-DUPonEWi.cjs.map} +1 -1
  319. package/dist/chunks/{NcAppNavigationItem-MvvOWnip.mjs → NcAppNavigationItem-DmJnEXTV.mjs} +23 -27
  320. package/dist/chunks/NcAppNavigationItem-DmJnEXTV.mjs.map +1 -0
  321. package/dist/chunks/{NcAppNavigationItem-DfgovIvi.cjs → NcAppNavigationItem-Y_CVXzId.cjs} +23 -27
  322. package/dist/chunks/NcAppNavigationItem-Y_CVXzId.cjs.map +1 -0
  323. package/dist/chunks/{NcAppNavigationNewItem-C66Vvx3t.cjs → NcAppNavigationNewItem-B76-cCDH.cjs} +2 -2
  324. package/dist/chunks/{NcAppNavigationNewItem-C66Vvx3t.cjs.map → NcAppNavigationNewItem-B76-cCDH.cjs.map} +1 -1
  325. package/dist/chunks/{NcAppNavigationNewItem-DyLB6t5e.mjs → NcAppNavigationNewItem-DmObx9Od.mjs} +2 -2
  326. package/dist/chunks/{NcAppNavigationNewItem-DyLB6t5e.mjs.map → NcAppNavigationNewItem-DmObx9Od.mjs.map} +1 -1
  327. package/dist/chunks/{NcAppNavigationSearch-8jcfsc-r.mjs → NcAppNavigationSearch-Br5pMcP9.mjs} +6 -10
  328. package/dist/chunks/{NcAppNavigationSearch-8jcfsc-r.mjs.map → NcAppNavigationSearch-Br5pMcP9.mjs.map} +1 -1
  329. package/dist/chunks/{NcAppNavigationSearch-CZRhuV6d.cjs → NcAppNavigationSearch-CNwLOHdO.cjs} +7 -11
  330. package/dist/chunks/{NcAppNavigationSearch-CZRhuV6d.cjs.map → NcAppNavigationSearch-CNwLOHdO.cjs.map} +1 -1
  331. package/dist/chunks/{NcAppNavigationSettings-C-_G8yUn.cjs → NcAppNavigationSettings-BH5t68oV.cjs} +4 -4
  332. package/dist/chunks/NcAppNavigationSettings-BH5t68oV.cjs.map +1 -0
  333. package/dist/chunks/{NcAppNavigationSettings-DScz0UWm.mjs → NcAppNavigationSettings-L0Jfd8At.mjs} +4 -4
  334. package/dist/chunks/NcAppNavigationSettings-L0Jfd8At.mjs.map +1 -0
  335. package/dist/chunks/{NcAppNavigationToggle-DAhbqsn_.cjs → NcAppNavigationToggle-Dwg-dMWx.cjs} +5 -5
  336. package/dist/chunks/NcAppNavigationToggle-Dwg-dMWx.cjs.map +1 -0
  337. package/dist/chunks/{NcAppNavigationToggle-BXainLDc.mjs → NcAppNavigationToggle-hXwP6wJk.mjs} +5 -5
  338. package/dist/chunks/NcAppNavigationToggle-hXwP6wJk.mjs.map +1 -0
  339. package/dist/chunks/{NcAppSettingsDialog-BxDO8Ivr.mjs → NcAppSettingsDialog-Bo_xk7JT.mjs} +8 -15
  340. package/dist/chunks/{NcAppSettingsDialog-BxDO8Ivr.mjs.map → NcAppSettingsDialog-Bo_xk7JT.mjs.map} +1 -1
  341. package/dist/chunks/{NcAppSettingsDialog-niXwDCmG.cjs → NcAppSettingsDialog-Dkl3cqU-.cjs} +8 -15
  342. package/dist/chunks/{NcAppSettingsDialog-niXwDCmG.cjs.map → NcAppSettingsDialog-Dkl3cqU-.cjs.map} +1 -1
  343. package/dist/chunks/{NcAppSidebar-D1Ss2put.mjs → NcAppSidebar-BHUsuOkb.mjs} +20 -23
  344. package/dist/chunks/NcAppSidebar-BHUsuOkb.mjs.map +1 -0
  345. package/dist/chunks/{NcAppSidebar-1S8EBs22.cjs → NcAppSidebar-D0XGsAFm.cjs} +20 -23
  346. package/dist/chunks/NcAppSidebar-D0XGsAFm.cjs.map +1 -0
  347. package/dist/chunks/{NcAvatar-lRUjWiR6.mjs → NcAvatar-Bv7NGIzM.mjs} +20 -22
  348. package/dist/chunks/{NcAvatar-lRUjWiR6.mjs.map → NcAvatar-Bv7NGIzM.mjs.map} +1 -1
  349. package/dist/chunks/{NcAvatar-B238cv9d.cjs → NcAvatar-DypzACJs.cjs} +20 -22
  350. package/dist/chunks/{NcAvatar-B238cv9d.cjs.map → NcAvatar-DypzACJs.cjs.map} +1 -1
  351. package/dist/chunks/{NcBreadcrumb-Fqw2S2pM.cjs → NcBreadcrumb-DVn5-KGF.cjs} +5 -5
  352. package/dist/chunks/{NcBreadcrumb-Fqw2S2pM.cjs.map → NcBreadcrumb-DVn5-KGF.cjs.map} +1 -1
  353. package/dist/chunks/{NcBreadcrumb-ydWs_Sw8.mjs → NcBreadcrumb-Da_uoAcB.mjs} +5 -5
  354. package/dist/chunks/{NcBreadcrumb-ydWs_Sw8.mjs.map → NcBreadcrumb-Da_uoAcB.mjs.map} +1 -1
  355. package/dist/chunks/{NcBreadcrumbs-GKwJaai0.cjs → NcBreadcrumbs-JqPHfTRj.cjs} +26 -30
  356. package/dist/chunks/NcBreadcrumbs-JqPHfTRj.cjs.map +1 -0
  357. package/dist/chunks/{NcBreadcrumbs-CPW9eMLa.mjs → NcBreadcrumbs-qEKUdf4H.mjs} +26 -30
  358. package/dist/chunks/NcBreadcrumbs-qEKUdf4H.mjs.map +1 -0
  359. package/dist/chunks/{NcCheckboxRadioSwitch-COeeT-7G.cjs → NcCheckboxRadioSwitch-KmTVoK0G.cjs} +56 -28
  360. package/dist/chunks/NcCheckboxRadioSwitch-KmTVoK0G.cjs.map +1 -0
  361. package/dist/chunks/{NcCheckboxRadioSwitch-CvMEEI9x.mjs → NcCheckboxRadioSwitch-l-6YVD9V.mjs} +56 -28
  362. package/dist/chunks/NcCheckboxRadioSwitch-l-6YVD9V.mjs.map +1 -0
  363. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_ff5243c5_lang-CwPH3K13.mjs +3 -0
  364. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_ff5243c5_lang-CwPH3K13.mjs.map +1 -0
  365. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_ff5243c5_lang-Zy8SpLXY.cjs +4 -0
  366. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_ff5243c5_lang-Zy8SpLXY.cjs.map +1 -0
  367. package/dist/chunks/{NcCollectionList-CAM0Gyhi.mjs → NcCollectionList-76i9dHm0.mjs} +6 -7
  368. package/dist/chunks/{NcCollectionList-CAM0Gyhi.mjs.map → NcCollectionList-76i9dHm0.mjs.map} +1 -1
  369. package/dist/chunks/{NcCollectionList-DWyT_P3u.cjs → NcCollectionList-UhLoC1sN.cjs} +6 -7
  370. package/dist/chunks/{NcCollectionList-DWyT_P3u.cjs.map → NcCollectionList-UhLoC1sN.cjs.map} +1 -1
  371. package/dist/chunks/{NcColorPicker-Ddm2gbz0.mjs → NcColorPicker-CKWvpkRM.mjs} +43 -14
  372. package/dist/chunks/NcColorPicker-CKWvpkRM.mjs.map +1 -0
  373. package/dist/chunks/{NcColorPicker-Dy2BtsaH.cjs → NcColorPicker-CVeLov2Q.cjs} +43 -14
  374. package/dist/chunks/NcColorPicker-CVeLov2Q.cjs.map +1 -0
  375. package/dist/chunks/{NcContent-DKpTIl9F.mjs → NcContent-BTuJtsQM.mjs} +4 -4
  376. package/dist/chunks/{NcContent-DKpTIl9F.mjs.map → NcContent-BTuJtsQM.mjs.map} +1 -1
  377. package/dist/chunks/{NcContent-BTyHf5mF.cjs → NcContent-BXi18ILU.cjs} +4 -4
  378. package/dist/chunks/{NcContent-BTyHf5mF.cjs.map → NcContent-BXi18ILU.cjs.map} +1 -1
  379. package/dist/chunks/{NcCounterBubble-R8Tmi05i.cjs → NcCounterBubble-DF2rwIo4.cjs} +4 -6
  380. package/dist/chunks/{NcCounterBubble-R8Tmi05i.cjs.map → NcCounterBubble-DF2rwIo4.cjs.map} +1 -1
  381. package/dist/chunks/{NcCounterBubble-D1QC3eP1.mjs → NcCounterBubble-M1q9GRkH.mjs} +4 -6
  382. package/dist/chunks/{NcCounterBubble-D1QC3eP1.mjs.map → NcCounterBubble-M1q9GRkH.mjs.map} +1 -1
  383. package/dist/chunks/{NcDashboardWidget-DhVJqy1d.cjs → NcDashboardWidget-Bu-WC7kg.cjs} +5 -5
  384. package/dist/chunks/{NcDashboardWidget-DhVJqy1d.cjs.map → NcDashboardWidget-Bu-WC7kg.cjs.map} +1 -1
  385. package/dist/chunks/{NcDashboardWidget-DG9u5NLf.mjs → NcDashboardWidget-Xit6eLCu.mjs} +5 -5
  386. package/dist/chunks/{NcDashboardWidget-DG9u5NLf.mjs.map → NcDashboardWidget-Xit6eLCu.mjs.map} +1 -1
  387. package/dist/chunks/{NcDashboardWidgetItem-DuntgAlo.cjs → NcDashboardWidgetItem-CI59K-wE.cjs} +3 -3
  388. package/dist/chunks/{NcDashboardWidgetItem-DuntgAlo.cjs.map → NcDashboardWidgetItem-CI59K-wE.cjs.map} +1 -1
  389. package/dist/chunks/{NcDashboardWidgetItem-CHCygvjp.mjs → NcDashboardWidgetItem-CcCRU45T.mjs} +3 -3
  390. package/dist/chunks/{NcDashboardWidgetItem-CHCygvjp.mjs.map → NcDashboardWidgetItem-CcCRU45T.mjs.map} +1 -1
  391. package/dist/chunks/{NcDateTime-ciAHA2YL.mjs → NcDateTime-B5H_8fXN.mjs} +1 -1
  392. package/dist/chunks/{NcDateTime-ciAHA2YL.mjs.map → NcDateTime-B5H_8fXN.mjs.map} +1 -1
  393. package/dist/chunks/{NcDateTime-BfOmGrzK.cjs → NcDateTime-CaJHhgab.cjs} +1 -1
  394. package/dist/chunks/{NcDateTime-BfOmGrzK.cjs.map → NcDateTime-CaJHhgab.cjs.map} +1 -1
  395. package/dist/chunks/{NcDialog-D9l7GQQJ.cjs → NcDialog-CWGgSCpv.cjs} +3 -3
  396. package/dist/chunks/{NcDialog-D9l7GQQJ.cjs.map → NcDialog-CWGgSCpv.cjs.map} +1 -1
  397. package/dist/chunks/{NcDialog-DmcKxy4v.mjs → NcDialog-LPfqWPKk.mjs} +3 -3
  398. package/dist/chunks/{NcDialog-DmcKxy4v.mjs.map → NcDialog-LPfqWPKk.mjs.map} +1 -1
  399. package/dist/chunks/{NcDialogButton-CubYnLkp.mjs → NcDialogButton-7UqknfnA.mjs} +3 -4
  400. package/dist/chunks/{NcDialogButton-CubYnLkp.mjs.map → NcDialogButton-7UqknfnA.mjs.map} +1 -1
  401. package/dist/chunks/{NcDialogButton-C4-agMb3.cjs → NcDialogButton-B7d1LWFN.cjs} +3 -4
  402. package/dist/chunks/{NcDialogButton-C4-agMb3.cjs.map → NcDialogButton-B7d1LWFN.cjs.map} +1 -1
  403. package/dist/chunks/{NcEmojiPicker-C2DIjkqr.mjs → NcEmojiPicker-B36zeXTi.mjs} +10 -12
  404. package/dist/chunks/NcEmojiPicker-B36zeXTi.mjs.map +1 -0
  405. package/dist/chunks/{NcEmojiPicker-DrMA-XDR.cjs → NcEmojiPicker-Dm6SEjiB.cjs} +10 -12
  406. package/dist/chunks/NcEmojiPicker-Dm6SEjiB.cjs.map +1 -0
  407. package/dist/chunks/{NcHeaderMenu-Bis33gPF.cjs → NcHeaderMenu-CzS2doDR.cjs} +6 -8
  408. package/dist/chunks/{NcHeaderMenu-Bis33gPF.cjs.map → NcHeaderMenu-CzS2doDR.cjs.map} +1 -1
  409. package/dist/chunks/{NcHeaderMenu-DYGKi6bj.mjs → NcHeaderMenu-vLqcJ-_w.mjs} +6 -8
  410. package/dist/chunks/{NcHeaderMenu-DYGKi6bj.mjs.map → NcHeaderMenu-vLqcJ-_w.mjs.map} +1 -1
  411. package/dist/chunks/{NcIconSvgWrapper-Cb4bAwV6.cjs → NcIconSvgWrapper-B_eOG2sZ.cjs} +2 -2
  412. package/dist/chunks/{NcIconSvgWrapper-Cb4bAwV6.cjs.map → NcIconSvgWrapper-B_eOG2sZ.cjs.map} +1 -1
  413. package/dist/chunks/{NcIconSvgWrapper-DjrkBUkC.mjs → NcIconSvgWrapper-CHmdAuhg.mjs} +2 -2
  414. package/dist/chunks/{NcIconSvgWrapper-DjrkBUkC.mjs.map → NcIconSvgWrapper-CHmdAuhg.mjs.map} +1 -1
  415. package/dist/chunks/{NcInputConfirmCancel-bHJNQ1vm.cjs → NcInputConfirmCancel-CYQsG_3t.cjs} +4 -4
  416. package/dist/chunks/{NcInputConfirmCancel-bHJNQ1vm.cjs.map → NcInputConfirmCancel-CYQsG_3t.cjs.map} +1 -1
  417. package/dist/chunks/{NcInputConfirmCancel-PXVZ7mLT.mjs → NcInputConfirmCancel-YuMDoRCi.mjs} +4 -4
  418. package/dist/chunks/{NcInputConfirmCancel-PXVZ7mLT.mjs.map → NcInputConfirmCancel-YuMDoRCi.mjs.map} +1 -1
  419. package/dist/chunks/NcInputField-CKq4udSu.cjs +260 -0
  420. package/dist/chunks/NcInputField-CKq4udSu.cjs.map +1 -0
  421. package/dist/chunks/NcInputField-DNQOfrn0.mjs +261 -0
  422. package/dist/chunks/NcInputField-DNQOfrn0.mjs.map +1 -0
  423. package/dist/chunks/{NcListItem-D16FB3uo.mjs → NcListItem-BS9Vcxph.mjs} +6 -7
  424. package/dist/chunks/{NcListItem-D16FB3uo.mjs.map → NcListItem-BS9Vcxph.mjs.map} +1 -1
  425. package/dist/chunks/{NcListItem-Hx7E50yZ.cjs → NcListItem-DMaVvwXJ.cjs} +6 -7
  426. package/dist/chunks/{NcListItem-Hx7E50yZ.cjs.map → NcListItem-DMaVvwXJ.cjs.map} +1 -1
  427. package/dist/chunks/{NcListItemIcon-Do_af_2v.cjs → NcListItemIcon-BLvWsnbD.cjs} +5 -6
  428. package/dist/chunks/{NcListItemIcon-Do_af_2v.cjs.map → NcListItemIcon-BLvWsnbD.cjs.map} +1 -1
  429. package/dist/chunks/{NcListItemIcon-Bc4y0xg3.mjs → NcListItemIcon-BdoUa2si.mjs} +5 -6
  430. package/dist/chunks/{NcListItemIcon-Bc4y0xg3.mjs.map → NcListItemIcon-BdoUa2si.mjs.map} +1 -1
  431. package/dist/chunks/{NcPasswordField-BQCunRtm.cjs → NcPasswordField-CV_FuOEL.cjs} +37 -13
  432. package/dist/chunks/NcPasswordField-CV_FuOEL.cjs.map +1 -0
  433. package/dist/chunks/{NcPasswordField-DLXPfvQB.mjs → NcPasswordField-oIhYntQw.mjs} +34 -10
  434. package/dist/chunks/NcPasswordField-oIhYntQw.mjs.map +1 -0
  435. package/dist/chunks/{NcPopover-DbeCmze0.mjs → NcPopover-DzYbNu-I.mjs} +7 -11
  436. package/dist/chunks/{NcPopover-DbeCmze0.mjs.map → NcPopover-DzYbNu-I.mjs.map} +1 -1
  437. package/dist/chunks/{NcPopover-C0G7sLVP.cjs → NcPopover-MxwUgZu1.cjs} +7 -11
  438. package/dist/chunks/{NcPopover-C0G7sLVP.cjs.map → NcPopover-MxwUgZu1.cjs.map} +1 -1
  439. package/dist/chunks/{NcProgressBar-D_6Z7U5w.mjs → NcProgressBar-DegJ2JjE.mjs} +2 -2
  440. package/dist/chunks/{NcProgressBar-D_6Z7U5w.mjs.map → NcProgressBar-DegJ2JjE.mjs.map} +1 -1
  441. package/dist/chunks/{NcProgressBar-BrDAF_Zr.cjs → NcProgressBar-Do5Y3u8S.cjs} +2 -2
  442. package/dist/chunks/{NcProgressBar-BrDAF_Zr.cjs.map → NcProgressBar-Do5Y3u8S.cjs.map} +1 -1
  443. package/dist/chunks/{NcRelatedResourcesPanel-CsOAnfA1.cjs → NcRelatedResourcesPanel-BRoP-NiB.cjs} +16 -24
  444. package/dist/chunks/NcRelatedResourcesPanel-BRoP-NiB.cjs.map +1 -0
  445. package/dist/chunks/{NcRelatedResourcesPanel-DZICfdzQ.mjs → NcRelatedResourcesPanel-Czuc8tf5.mjs} +16 -24
  446. package/dist/chunks/NcRelatedResourcesPanel-Czuc8tf5.mjs.map +1 -0
  447. package/dist/chunks/{NcRichContenteditable-CCJdho4G.mjs → NcRichContenteditable-Cv9rZiqh.mjs} +55 -41
  448. package/dist/chunks/NcRichContenteditable-Cv9rZiqh.mjs.map +1 -0
  449. package/dist/chunks/{NcRichContenteditable-Ye5vABN5.cjs → NcRichContenteditable-nVuOP1__.cjs} +55 -41
  450. package/dist/chunks/NcRichContenteditable-nVuOP1__.cjs.map +1 -0
  451. package/dist/chunks/{NcRichText-7rxnpUCI.cjs → NcRichText-D7syaTEJ.cjs} +20 -16
  452. package/dist/chunks/NcRichText-D7syaTEJ.cjs.map +1 -0
  453. package/dist/chunks/{NcRichText-Xs-QVexE.mjs → NcRichText-ohrXAz36.mjs} +20 -16
  454. package/dist/chunks/NcRichText-ohrXAz36.mjs.map +1 -0
  455. package/dist/chunks/{NcSelect-DRRPiPZG.mjs → NcSelect-DJQ1nwEX.mjs} +49 -21
  456. package/dist/chunks/NcSelect-DJQ1nwEX.mjs.map +1 -0
  457. package/dist/chunks/{NcSelect-CKgkjF4m.cjs → NcSelect-VZJ_gUib.cjs} +49 -21
  458. package/dist/chunks/NcSelect-VZJ_gUib.cjs.map +1 -0
  459. package/dist/chunks/{NcSelectTags-BceJx_FU.cjs → NcSelectTags-CfiOYB0i.cjs} +55 -11
  460. package/dist/chunks/NcSelectTags-CfiOYB0i.cjs.map +1 -0
  461. package/dist/chunks/{NcSelectTags-CPc3qB8r.mjs → NcSelectTags-DOOq_cD0.mjs} +55 -11
  462. package/dist/chunks/NcSelectTags-DOOq_cD0.mjs.map +1 -0
  463. package/dist/chunks/{NcSettingsInputText-Cv_JwbFO.cjs → NcSettingsInputText-CECqEZO0.cjs} +37 -6
  464. package/dist/chunks/NcSettingsInputText-CECqEZO0.cjs.map +1 -0
  465. package/dist/chunks/{NcSettingsInputText-BF_v4yDP.mjs → NcSettingsInputText-DTAI3bS2.mjs} +37 -6
  466. package/dist/chunks/NcSettingsInputText-DTAI3bS2.mjs.map +1 -0
  467. package/dist/chunks/{NcSettingsSection-V9DkkSuI.mjs → NcSettingsSection-CEWt4eXE.mjs} +4 -5
  468. package/dist/chunks/NcSettingsSection-CEWt4eXE.mjs.map +1 -0
  469. package/dist/chunks/{NcSettingsSection-CA2JahBC.cjs → NcSettingsSection-Dn7Qmknm.cjs} +4 -5
  470. package/dist/chunks/NcSettingsSection-Dn7Qmknm.cjs.map +1 -0
  471. package/dist/chunks/{NcSettingsSelectGroup-8tK3uGkJ.cjs → NcSettingsSelectGroup-C6JgQUes.cjs} +39 -12
  472. package/dist/chunks/NcSettingsSelectGroup-C6JgQUes.cjs.map +1 -0
  473. package/dist/chunks/{NcSettingsSelectGroup-Bx__1Iss.mjs → NcSettingsSelectGroup-haZmDz--.mjs} +39 -12
  474. package/dist/chunks/NcSettingsSelectGroup-haZmDz--.mjs.map +1 -0
  475. package/dist/chunks/NcTextArea-CXWHO22r.cjs +206 -0
  476. package/dist/chunks/NcTextArea-CXWHO22r.cjs.map +1 -0
  477. package/dist/chunks/NcTextArea-Cegw6i17.mjs +207 -0
  478. package/dist/chunks/NcTextArea-Cegw6i17.mjs.map +1 -0
  479. package/dist/chunks/{NcTextField-CmXmPZ4h.mjs → NcTextField-DaGO9lFz.mjs} +25 -7
  480. package/dist/chunks/NcTextField-DaGO9lFz.mjs.map +1 -0
  481. package/dist/chunks/{NcTextField-BnZnDMjV.cjs → NcTextField-DwWIlisf.cjs} +28 -10
  482. package/dist/chunks/NcTextField-DwWIlisf.cjs.map +1 -0
  483. package/dist/chunks/{NcTimezonePicker-CPfvqXuN.cjs → NcTimezonePicker-Dh3nLcb5.cjs} +40 -9
  484. package/dist/chunks/NcTimezonePicker-Dh3nLcb5.cjs.map +1 -0
  485. package/dist/chunks/{NcTimezonePicker-BwygP9tV.mjs → NcTimezonePicker-Nn0FbzGI.mjs} +40 -9
  486. package/dist/chunks/NcTimezonePicker-Nn0FbzGI.mjs.map +1 -0
  487. package/dist/chunks/{NcUserBubble-G7FKOk8N.mjs → NcUserBubble-CSUTL5fC.mjs} +4 -5
  488. package/dist/chunks/{NcUserBubble-TVnJaVQg.cjs.map → NcUserBubble-CSUTL5fC.mjs.map} +1 -1
  489. package/dist/chunks/{NcUserBubble-TVnJaVQg.cjs → NcUserBubble-Cg86HaKF.cjs} +4 -5
  490. package/dist/chunks/{NcUserBubble-G7FKOk8N.mjs.map → NcUserBubble-Cg86HaKF.cjs.map} +1 -1
  491. package/dist/chunks/{NcUserStatusIcon-CPZOWw3t.mjs → NcUserStatusIcon-C4oNCbQv.mjs} +6 -9
  492. package/dist/chunks/{NcUserStatusIcon-CPZOWw3t.mjs.map → NcUserStatusIcon-C4oNCbQv.mjs.map} +1 -1
  493. package/dist/chunks/{NcUserStatusIcon-FtKzp5sl.cjs → NcUserStatusIcon-CP1EGHie.cjs} +6 -9
  494. package/dist/chunks/{NcUserStatusIcon-FtKzp5sl.cjs.map → NcUserStatusIcon-CP1EGHie.cjs.map} +1 -1
  495. package/dist/chunks/{ScopeComponent-BVnA9iVd.mjs → ScopeComponent-7geL5q_S.mjs} +1 -1
  496. package/dist/chunks/{ScopeComponent-BVnA9iVd.mjs.map → ScopeComponent-7geL5q_S.mjs.map} +1 -1
  497. package/dist/chunks/{ScopeComponent-B0gd6vEY.cjs → ScopeComponent-CABGdfsV.cjs} +1 -1
  498. package/dist/chunks/{ScopeComponent-B0gd6vEY.cjs.map → ScopeComponent-CABGdfsV.cjs.map} +1 -1
  499. package/dist/chunks/_l10n-Ch5mEdUH.cjs +131 -0
  500. package/dist/chunks/{_l10n-Ci9_UR5q.cjs.map → _l10n-Ch5mEdUH.cjs.map} +1 -1
  501. package/dist/chunks/_l10n-DXr-EzLn.mjs +132 -0
  502. package/dist/chunks/_l10n-DXr-EzLn.mjs.map +1 -0
  503. package/dist/chunks/{emoji-V6ytyzoR.mjs → emoji-BY_D0V5K.mjs} +2 -3
  504. package/dist/chunks/{emoji-V6ytyzoR.mjs.map → emoji-BY_D0V5K.mjs.map} +1 -1
  505. package/dist/chunks/{emoji-BCCCB3t3.cjs → emoji-VgSjNTd5.cjs} +2 -3
  506. package/dist/chunks/{emoji-BCCCB3t3.cjs.map → emoji-VgSjNTd5.cjs.map} +1 -1
  507. package/dist/chunks/{index-Dsgv-f-l.cjs → index-BV85rPB7.cjs} +3 -6
  508. package/dist/chunks/{index-Dsgv-f-l.cjs.map → index-BV85rPB7.cjs.map} +1 -1
  509. package/dist/chunks/{index-CMZdBcqP.mjs → index-CKNLRG-q.mjs} +8 -8
  510. package/dist/chunks/{index-CMZdBcqP.mjs.map → index-CKNLRG-q.mjs.map} +1 -1
  511. package/dist/chunks/{index-BwyQ2N-M.mjs → index-CtoB4eIp.mjs} +3 -6
  512. package/dist/chunks/{index-BwyQ2N-M.mjs.map → index-CtoB4eIp.mjs.map} +1 -1
  513. package/dist/chunks/{index-CC4ahXvG.cjs → index-DLGLmjm4.cjs} +8 -8
  514. package/dist/chunks/{index-CC4ahXvG.cjs.map → index-DLGLmjm4.cjs.map} +1 -1
  515. package/dist/chunks/{referencePickerModal-ByI9zX0a.mjs → referencePickerModal-B4rYwkv3.mjs} +29 -42
  516. package/dist/chunks/referencePickerModal-B4rYwkv3.mjs.map +1 -0
  517. package/dist/chunks/{referencePickerModal--FRvx7tZ.cjs → referencePickerModal-DlPz1XJQ.cjs} +29 -42
  518. package/dist/chunks/referencePickerModal-DlPz1XJQ.cjs.map +1 -0
  519. package/dist/chunks/useModelMigration-BvlORW73.mjs +24 -0
  520. package/dist/chunks/useModelMigration-BvlORW73.mjs.map +1 -0
  521. package/dist/chunks/useModelMigration-CVxLzfS5.cjs +25 -0
  522. package/dist/chunks/useModelMigration-CVxLzfS5.cjs.map +1 -0
  523. package/dist/chunks/{usernameToColor-D6FJP4ni.mjs → usernameToColor-B9AB7E7x.mjs} +1 -1
  524. package/dist/chunks/{usernameToColor-D6FJP4ni.mjs.map → usernameToColor-B9AB7E7x.mjs.map} +1 -1
  525. package/dist/chunks/{usernameToColor-u2MH9nY7.cjs → usernameToColor-CWxjw-Pq.cjs} +1 -1
  526. package/dist/chunks/{usernameToColor-u2MH9nY7.cjs.map → usernameToColor-CWxjw-Pq.cjs.map} +1 -1
  527. package/dist/composables/useIsDarkTheme/index.d.ts +16 -0
  528. package/dist/composables/useModelMigration.d.ts +12 -0
  529. package/dist/functions/dialog/index.d.ts +16 -0
  530. package/dist/functions/index.d.ts +10 -0
  531. package/dist/functions/isDarkTheme/index.d.ts +17 -0
  532. package/dist/index.cjs +74 -66
  533. package/dist/index.cjs.map +1 -1
  534. package/dist/index.mjs +67 -59
  535. package/dist/index.mjs.map +1 -1
  536. package/dist/vendor.LICENSE.txt +1 -1
  537. package/package.json +2 -2
  538. package/dist/assets/NcDateTimePickerNative-BAcKr0B3.css +0 -47
  539. package/dist/chunks/AlertCircleOutline-DLtiWgZd.cjs.map +0 -1
  540. package/dist/chunks/AlertCircleOutline-DU3QwU5Y.mjs.map +0 -1
  541. package/dist/chunks/ArrowLeft-BhAxJBYx.mjs.map +0 -1
  542. package/dist/chunks/ArrowLeft-CONurT5C.cjs.map +0 -1
  543. package/dist/chunks/ArrowRight-Bj5G_mG0.cjs.map +0 -1
  544. package/dist/chunks/ArrowRight-KsL2PC-o.mjs.map +0 -1
  545. package/dist/chunks/Check-XHAzUBkX.mjs.map +0 -1
  546. package/dist/chunks/Check-fCbe4vqy.cjs.map +0 -1
  547. package/dist/chunks/ChevronDown-CiFbcDUC.cjs.map +0 -1
  548. package/dist/chunks/ChevronDown-D3Tfshug.mjs.map +0 -1
  549. package/dist/chunks/ChevronRight-C3eVhc5a.mjs.map +0 -1
  550. package/dist/chunks/ChevronRight-CWbdN5_r.cjs.map +0 -1
  551. package/dist/chunks/ChevronUp-A2riTBrv.cjs.map +0 -1
  552. package/dist/chunks/ChevronUp-ljACquzS.mjs.map +0 -1
  553. package/dist/chunks/Close-B6ccm1RP.mjs.map +0 -1
  554. package/dist/chunks/Close-B7lGu0cG.cjs.map +0 -1
  555. package/dist/chunks/DotsHorizontal-Cd2x8oz2.mjs.map +0 -1
  556. package/dist/chunks/DotsHorizontal-DQfnwpao.cjs.map +0 -1
  557. package/dist/chunks/NcActionInput-BxlypAgV.mjs.map +0 -1
  558. package/dist/chunks/NcActionInput-TP6P798j.cjs.map +0 -1
  559. package/dist/chunks/NcAppContent-fXpgsMfG.cjs.map +0 -1
  560. package/dist/chunks/NcAppContent-lEyly7Jk.mjs.map +0 -1
  561. package/dist/chunks/NcAppNavigationItem-DfgovIvi.cjs.map +0 -1
  562. package/dist/chunks/NcAppNavigationItem-MvvOWnip.mjs.map +0 -1
  563. package/dist/chunks/NcAppNavigationSettings-C-_G8yUn.cjs.map +0 -1
  564. package/dist/chunks/NcAppNavigationSettings-DScz0UWm.mjs.map +0 -1
  565. package/dist/chunks/NcAppNavigationToggle-BXainLDc.mjs.map +0 -1
  566. package/dist/chunks/NcAppNavigationToggle-DAhbqsn_.cjs.map +0 -1
  567. package/dist/chunks/NcAppSidebar-1S8EBs22.cjs.map +0 -1
  568. package/dist/chunks/NcAppSidebar-D1Ss2put.mjs.map +0 -1
  569. package/dist/chunks/NcBreadcrumbs-CPW9eMLa.mjs.map +0 -1
  570. package/dist/chunks/NcBreadcrumbs-GKwJaai0.cjs.map +0 -1
  571. package/dist/chunks/NcCheckboxRadioSwitch-COeeT-7G.cjs.map +0 -1
  572. package/dist/chunks/NcCheckboxRadioSwitch-CvMEEI9x.mjs.map +0 -1
  573. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_00597cce_lang-CbxHILUm.cjs +0 -4
  574. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_00597cce_lang-CbxHILUm.cjs.map +0 -1
  575. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_00597cce_lang-pIxtu28F.mjs +0 -3
  576. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_00597cce_lang-pIxtu28F.mjs.map +0 -1
  577. package/dist/chunks/NcColorPicker-Ddm2gbz0.mjs.map +0 -1
  578. package/dist/chunks/NcColorPicker-Dy2BtsaH.cjs.map +0 -1
  579. package/dist/chunks/NcEmojiPicker-C2DIjkqr.mjs.map +0 -1
  580. package/dist/chunks/NcEmojiPicker-DrMA-XDR.cjs.map +0 -1
  581. package/dist/chunks/NcPasswordField-BQCunRtm.cjs.map +0 -1
  582. package/dist/chunks/NcPasswordField-DLXPfvQB.mjs.map +0 -1
  583. package/dist/chunks/NcRelatedResourcesPanel-CsOAnfA1.cjs.map +0 -1
  584. package/dist/chunks/NcRelatedResourcesPanel-DZICfdzQ.mjs.map +0 -1
  585. package/dist/chunks/NcRichContenteditable-CCJdho4G.mjs.map +0 -1
  586. package/dist/chunks/NcRichContenteditable-Ye5vABN5.cjs.map +0 -1
  587. package/dist/chunks/NcRichText-7rxnpUCI.cjs.map +0 -1
  588. package/dist/chunks/NcRichText-Xs-QVexE.mjs.map +0 -1
  589. package/dist/chunks/NcSelect-CKgkjF4m.cjs.map +0 -1
  590. package/dist/chunks/NcSelect-DRRPiPZG.mjs.map +0 -1
  591. package/dist/chunks/NcSelectTags-BceJx_FU.cjs.map +0 -1
  592. package/dist/chunks/NcSelectTags-CPc3qB8r.mjs.map +0 -1
  593. package/dist/chunks/NcSettingsInputText-BF_v4yDP.mjs.map +0 -1
  594. package/dist/chunks/NcSettingsInputText-Cv_JwbFO.cjs.map +0 -1
  595. package/dist/chunks/NcSettingsSection-CA2JahBC.cjs.map +0 -1
  596. package/dist/chunks/NcSettingsSection-V9DkkSuI.mjs.map +0 -1
  597. package/dist/chunks/NcSettingsSelectGroup-8tK3uGkJ.cjs.map +0 -1
  598. package/dist/chunks/NcSettingsSelectGroup-Bx__1Iss.mjs.map +0 -1
  599. package/dist/chunks/NcTextField-BnZnDMjV.cjs.map +0 -1
  600. package/dist/chunks/NcTextField-CmXmPZ4h.mjs.map +0 -1
  601. package/dist/chunks/NcTimezonePicker-BwygP9tV.mjs.map +0 -1
  602. package/dist/chunks/NcTimezonePicker-CPfvqXuN.cjs.map +0 -1
  603. package/dist/chunks/_l10n-Ci9_UR5q.cjs +0 -131
  604. package/dist/chunks/_l10n-JYjUKekn.mjs +0 -132
  605. package/dist/chunks/_l10n-JYjUKekn.mjs.map +0 -1
  606. package/dist/chunks/referencePickerModal--FRvx7tZ.cjs.map +0 -1
  607. package/dist/chunks/referencePickerModal-ByI9zX0a.mjs.map +0 -1
  608. /package/dist/assets/{NcActionButtonGroup-CQxLn2fv.css → NcActionButtonGroup-BND4GQdv.css} +0 -0
  609. /package/dist/assets/{NcActionCaption-B7FZTc3Y.css → NcActionCaption-JVhz4Wp7.css} +0 -0
  610. /package/dist/assets/{NcActionSeparator-CEbb5P6P.css → NcActionSeparator-Ct2RnclR.css} +0 -0
  611. /package/dist/assets/{NcActions-CkVHYk_-.css → NcActions-DM_LoRlx.css} +0 -0
  612. /package/dist/assets/{NcAppNavigationCaption-zgtPq3Od.css → NcAppNavigationCaption-Dt5K_hKD.css} +0 -0
  613. /package/dist/assets/{NcAppNavigationIconBullet-By_0o2dG.css → NcAppNavigationIconBullet-CeBYVy6t.css} +0 -0
  614. /package/dist/assets/{NcAppNavigationList-BIbyyT7b.css → NcAppNavigationList-DnKj0-Zq.css} +0 -0
  615. /package/dist/assets/{NcAppNavigationNew-BKfawNII.css → NcAppNavigationNew-BcDuupzO.css} +0 -0
  616. /package/dist/assets/{NcAppNavigationNewItem-Ce17FkDl.css → NcAppNavigationNewItem-CQ1f40wK.css} +0 -0
  617. /package/dist/assets/{NcAppNavigationSearch-BLGG_WBn.css → NcAppNavigationSearch-Df50ss_2.css} +0 -0
  618. /package/dist/assets/{NcAppNavigationSettings-AzpTlUym.css → NcAppNavigationSettings-BV_QS8jh.css} +0 -0
  619. /package/dist/assets/{NcAppNavigationSpacer-CfNqmQeR.css → NcAppNavigationSpacer-Fkr_mEI1.css} +0 -0
  620. /package/dist/assets/{NcAppSettingsDialog-QF6aTZ3s.css → NcAppSettingsDialog-kKMMsdb3.css} +0 -0
  621. /package/dist/assets/{NcAppSettingsSection-qU4SUZvh.css → NcAppSettingsSection-Bl2-D3_g.css} +0 -0
  622. /package/dist/assets/{NcAppSidebarTab-BieYhqvk.css → NcAppSidebarTab-Blv6UfuA.css} +0 -0
  623. /package/dist/assets/{NcAvatar-5N7xP8zN.css → NcAvatar-xe4gdFKk.css} +0 -0
  624. /package/dist/assets/{NcBreadcrumb-DOvK-XG1.css → NcBreadcrumb-Cjcyeimd.css} +0 -0
  625. /package/dist/assets/{NcBreadcrumbs-CPUAM38l.css → NcBreadcrumbs-CFRjXqRg.css} +0 -0
  626. /package/dist/assets/{NcButton-DYJAoXeG.css → NcButton-BHDLon1_.css} +0 -0
  627. /package/dist/assets/{NcChip-CEKw1zaK.css → NcChip-CHVJ7LYT.css} +0 -0
  628. /package/dist/assets/{NcCollectionList-ETQTqkqt.css → NcCollectionList-yjTCAR46.css} +0 -0
  629. /package/dist/assets/{NcContent-ZFNIjylG.css → NcContent-CZamE_IP.css} +0 -0
  630. /package/dist/assets/{NcCounterBubble-Dizdz4Hk.css → NcCounterBubble-DdYmHnng.css} +0 -0
  631. /package/dist/assets/{NcDashboardWidget-CpstyXok.css → NcDashboardWidget-BSTvIgiJ.css} +0 -0
  632. /package/dist/assets/{NcDashboardWidgetItem-BBZT17WU.css → NcDashboardWidgetItem-BtOuK4mf.css} +0 -0
  633. /package/dist/assets/{NcDialog-ByAK1rQ0.css → NcDialog-Bzs9oxyt.css} +0 -0
  634. /package/dist/assets/{NcEmojiPicker-B5dclDLD.css → NcEmojiPicker-BNCW1Q94.css} +0 -0
  635. /package/dist/assets/{NcEmptyContent-BU0QVo3d.css → NcEmptyContent-BlXL6nnq.css} +0 -0
  636. /package/dist/assets/{NcGuestContent-BLJ37yLM.css → NcGuestContent-B0ivUQHg.css} +0 -0
  637. /package/dist/assets/{NcHeaderButton-BybvB5sC.css → NcHeaderButton-DH4Qtw3P.css} +0 -0
  638. /package/dist/assets/{NcHeaderMenu-BCtvpsZj.css → NcHeaderMenu-C2XbJMYL.css} +0 -0
  639. /package/dist/assets/{NcIconSvgWrapper-BwsJ8wBM.css → NcIconSvgWrapper-BxyhLaB5.css} +0 -0
  640. /package/dist/assets/{NcInputConfirmCancel-SGr0-6w8.css → NcInputConfirmCancel-EYtW7MxF.css} +0 -0
  641. /package/dist/assets/{NcListItem-D-8LyMsI.css → NcListItem-BBu5UTTe.css} +0 -0
  642. /package/dist/assets/{NcListItemIcon--7OhLYWA.css → NcListItemIcon-UmX9YoH3.css} +0 -0
  643. /package/dist/assets/{NcLoadingIcon-BSONDy7x.css → NcLoadingIcon-x1d284UU.css} +0 -0
  644. /package/dist/assets/{NcMentionBubble-C6t8od-_.css → NcMentionBubble-Bt71nB8X.css} +0 -0
  645. /package/dist/assets/{NcNoteCard-CImn6F9p.css → NcNoteCard-C6xb7vi0.css} +0 -0
  646. /package/dist/assets/{NcPopover-BDlL00qZ.css → NcPopover-TS4CW9MJ.css} +0 -0
  647. /package/dist/assets/{NcProgressBar-BsqdCn-x.css → NcProgressBar--z-WqmX4.css} +0 -0
  648. /package/dist/assets/{NcRelatedResourcesPanel-BE9CQ8s8.css → NcRelatedResourcesPanel-DIhZx6lY.css} +0 -0
  649. /package/dist/assets/{NcSelect-EIXtZSVn.css → NcSelect-GdIw6cIy.css} +0 -0
  650. /package/dist/assets/{NcSettingsSection-CGaCS1X0.css → NcSettingsSection-Dlaob2ni.css} +0 -0
  651. /package/dist/assets/{NcUserBubble-Cv-q-rH5.css → NcUserBubble-CNid1YOT.css} +0 -0
  652. /package/dist/assets/{NcUserStatusIcon-DMxcdM51.css → NcUserStatusIcon-DAVSJFhS.css} +0 -0
  653. /package/dist/assets/{Tooltip-4CSl8xev.css → Tooltip-DQ4Plm4r.css} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_l10n-DXr-EzLn.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -19,7 +19,7 @@ function emojiSearch(query, maxResults = 10) {
19
19
  const currentSkinTone = getCurrentSkinTone();
20
20
  let results;
21
21
  if (query) {
22
- results = emojiIndex.search(":".concat(query), maxResults);
22
+ results = emojiIndex.search(`:${query}`, maxResults);
23
23
  if (results.length < maxResults) {
24
24
  results = results.concat(emojiIndex.search(query, maxResults - results.length));
25
25
  }
@@ -32,8 +32,7 @@ function emojiAddRecent(emojiData) {
32
32
  frequently.add(emojiData);
33
33
  }
34
34
  function getCurrentSkinTone() {
35
- var _a;
36
- const skinTone = Number.parseInt((_a = storage.getItem("NcEmojiPicker::currentSkinTone")) != null ? _a : "1");
35
+ const skinTone = Number.parseInt(storage.getItem("NcEmojiPicker::currentSkinTone") ?? "1");
37
36
  return Math.min(
38
37
  Math.max(
39
38
  skinTone,
@@ -1 +1 @@
1
- {"version":3,"file":"emoji-V6ytyzoR.mjs","sources":["../../src/functions/emoji/emoji.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\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// Shared emoji index and skinTone for all emojiSearch function calls\n// Will be initialized on the first call\nlet emojiIndex\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 * Get the list of emojis by search filter or the list of frequently used emojis\n *\n * @param query Emoji search filter string; if no string or empty string is given, the list of frequently used emojis is returned\n * @param maxResults Maximum of returned emojis\n * @return {object[]} list of found emojis in the same format as the emoji-mart-vue-fast's EmojiIndex\n */\nexport function emojiSearch(query: string, maxResults: number = 10): object[] {\n\t// If this is the first call of function - initialize EmojiIndex\n\tif (!emojiIndex) {\n\t\temojiIndex = new EmojiIndex(data)\n\t}\n\tconst currentSkinTone = getCurrentSkinTone()\n\n\tlet results\n\tif (query) {\n\t\tresults = emojiIndex.search(`:${query}`, maxResults)\n\t\tif (results.length < maxResults) {\n\t\t\tresults = results.concat(emojiIndex.search(query, maxResults - results.length))\n\t\t}\n\t} else {\n\t\tresults = frequently.get(maxResults).map((id: number) => emojiIndex.emoji(id)) || []\n\t}\n\n\treturn results.map((emoji) => emoji.getSkin(currentSkinTone))\n}\n\n/**\n * Add emoji to the list of recent emojis.\n * This list can be got from emojiSearch function and it is used in NcEmojiPicker.\n *\n * @param emojiData object with `id` property\n * @param emojiData.id the emoji ID from emoji index\n */\nexport function emojiAddRecent(emojiData: { id: string }): void {\n\tfrequently.add(emojiData)\n}\n\n/**\n * Get the current skin tone index used for emojis\n *\n * @return {EmojiSkinTone} The skin tone\n */\nexport function getCurrentSkinTone(): EmojiSkinTone {\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 *\n * @param skinTone Skin tone\n */\nexport function setCurrentSkinTone(skinTone: EmojiSkinTone): void {\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":["EmojiSkinTone"],"mappings":";;;AAUA,MAAM,UAAU,WAAW,eAAe,EAAE,QAAQ,IAAI,EAAE;AAI1D,IAAI;AAMQ,IAAA,kCAAAA,mBAAL;AACNA,iBAAAA,eAAA,aAAU,CAAV,IAAA;AACAA,iBAAAA,eAAA,WAAQ,CAAR,IAAA;AACAA,iBAAAA,eAAA,iBAAc,CAAd,IAAA;AACAA,iBAAAA,eAAA,YAAS,CAAT,IAAA;AACAA,iBAAAA,eAAA,gBAAa,CAAb,IAAA;AACAA,iBAAAA,eAAA,UAAO,CAAP,IAAA;AANWA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAgBI,SAAA,YAAY,OAAe,aAAqB,IAAc;AAE7E,MAAI,CAAC,YAAY;AACH,iBAAA,IAAI,WAAW,IAAI;AAAA,EACjC;AACA,QAAM,kBAAkB;AAEpB,MAAA;AACJ,MAAI,OAAO;AACV,cAAU,WAAW,OAAO,IAAI,OAAA,KAAA,GAAS,UAAU;AAC/C,QAAA,QAAQ,SAAS,YAAY;AACtB,gBAAA,QAAQ,OAAO,WAAW,OAAO,OAAO,aAAa,QAAQ,MAAM,CAAC;AAAA,IAC/E;AAAA,EAAA,OACM;AACN,cAAU,WAAW,IAAI,UAAU,EAAE,IAAI,CAAC,OAAe,WAAW,MAAM,EAAE,CAAC,KAAK,CAAA;AAAA,EACnF;AAEA,SAAO,QAAQ,IAAI,CAAC,UAAU,MAAM,QAAQ,eAAe,CAAC;AAC7D;AASO,SAAS,eAAe,WAAiC;AAC/D,aAAW,IAAI,SAAS;AACzB;AAOO,SAAS,qBAAoC;AAxEpD,MAAA;AAyEO,QAAA,WAAW,OAAO,UAAS,KAAA,QAAQ,QAAQ,gCAAgC,MAAhD,YAAqD,GAAG;AAEzF,SAAO,KAAK;AAAA,IAAI,KAAK;AAAA,MAAI;AAAA,MAAU;AAAA;AAAA,IAAA;AAAA,IAAwB;AAAA;AAAA;AAC5D;AAOO,SAAS,mBAAmB,UAA+B;AAEjE,aAAW,KAAK;AAAA,IAAI,KAAK;AAAA,MAAI;AAAA,MAAU;AAAA;AAAA;IAAwB;AAAA;AAAA;AAC/D,UAAQ,QAAQ,kCAAkC,SAAS,SAAU,CAAA;AACtE;"}
1
+ {"version":3,"file":"emoji-BY_D0V5K.mjs","sources":["../../src/functions/emoji/emoji.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\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// Shared emoji index and skinTone for all emojiSearch function calls\n// Will be initialized on the first call\nlet emojiIndex\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 * Get the list of emojis by search filter or the list of frequently used emojis\n *\n * @param query Emoji search filter string; if no string or empty string is given, the list of frequently used emojis is returned\n * @param maxResults Maximum of returned emojis\n * @return {object[]} list of found emojis in the same format as the emoji-mart-vue-fast's EmojiIndex\n */\nexport function emojiSearch(query: string, maxResults: number = 10): object[] {\n\t// If this is the first call of function - initialize EmojiIndex\n\tif (!emojiIndex) {\n\t\temojiIndex = new EmojiIndex(data)\n\t}\n\tconst currentSkinTone = getCurrentSkinTone()\n\n\tlet results\n\tif (query) {\n\t\tresults = emojiIndex.search(`:${query}`, maxResults)\n\t\tif (results.length < maxResults) {\n\t\t\tresults = results.concat(emojiIndex.search(query, maxResults - results.length))\n\t\t}\n\t} else {\n\t\tresults = frequently.get(maxResults).map((id: number) => emojiIndex.emoji(id)) || []\n\t}\n\n\treturn results.map((emoji) => emoji.getSkin(currentSkinTone))\n}\n\n/**\n * Add emoji to the list of recent emojis.\n * This list can be got from emojiSearch function and it is used in NcEmojiPicker.\n *\n * @param emojiData object with `id` property\n * @param emojiData.id the emoji ID from emoji index\n */\nexport function emojiAddRecent(emojiData: { id: string }): void {\n\tfrequently.add(emojiData)\n}\n\n/**\n * Get the current skin tone index used for emojis\n *\n * @return {EmojiSkinTone} The skin tone\n */\nexport function getCurrentSkinTone(): EmojiSkinTone {\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 *\n * @param skinTone Skin tone\n */\nexport function setCurrentSkinTone(skinTone: EmojiSkinTone): void {\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":["EmojiSkinTone"],"mappings":";;;AAUA,MAAM,UAAU,WAAW,eAAe,EAAE,QAAQ,IAAI,EAAE;AAI1D,IAAI;AAMQ,IAAA,kCAAAA,mBAAL;AACNA,iBAAAA,eAAA,aAAU,CAAV,IAAA;AACAA,iBAAAA,eAAA,WAAQ,CAAR,IAAA;AACAA,iBAAAA,eAAA,iBAAc,CAAd,IAAA;AACAA,iBAAAA,eAAA,YAAS,CAAT,IAAA;AACAA,iBAAAA,eAAA,gBAAa,CAAb,IAAA;AACAA,iBAAAA,eAAA,UAAO,CAAP,IAAA;AANWA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAgBI,SAAA,YAAY,OAAe,aAAqB,IAAc;AAE7E,MAAI,CAAC,YAAY;AACH,iBAAA,IAAI,WAAW,IAAI;AAAA,EACjC;AACA,QAAM,kBAAkB;AAEpB,MAAA;AACJ,MAAI,OAAO;AACV,cAAU,WAAW,OAAO,IAAI,KAAK,IAAI,UAAU;AAC/C,QAAA,QAAQ,SAAS,YAAY;AACtB,gBAAA,QAAQ,OAAO,WAAW,OAAO,OAAO,aAAa,QAAQ,MAAM,CAAC;AAAA,IAC/E;AAAA,EAAA,OACM;AACN,cAAU,WAAW,IAAI,UAAU,EAAE,IAAI,CAAC,OAAe,WAAW,MAAM,EAAE,CAAC,KAAK,CAAA;AAAA,EACnF;AAEA,SAAO,QAAQ,IAAI,CAAC,UAAU,MAAM,QAAQ,eAAe,CAAC;AAC7D;AASO,SAAS,eAAe,WAAiC;AAC/D,aAAW,IAAI,SAAS;AACzB;AAOO,SAAS,qBAAoC;AACnD,QAAM,WAAW,OAAO,SAAS,QAAQ,QAAQ,gCAAgC,KAAK,GAAG;AAEzF,SAAO,KAAK;AAAA,IAAI,KAAK;AAAA,MAAI;AAAA,MAAU;AAAA;AAAA,IAAA;AAAA,IAAwB;AAAA;AAAA;AAC5D;AAOO,SAAS,mBAAmB,UAA+B;AAEjE,aAAW,KAAK;AAAA,IAAI,KAAK;AAAA,MAAI;AAAA,MAAU;AAAA;AAAA;IAAwB;AAAA;AAAA;AAC/D,UAAQ,QAAQ,kCAAkC,SAAS,SAAU,CAAA;AACtE;"}
@@ -22,7 +22,7 @@ function emojiSearch(query, maxResults = 10) {
22
22
  const currentSkinTone = getCurrentSkinTone();
23
23
  let results;
24
24
  if (query) {
25
- results = emojiIndex.search(":".concat(query), maxResults);
25
+ results = emojiIndex.search(`:${query}`, maxResults);
26
26
  if (results.length < maxResults) {
27
27
  results = results.concat(emojiIndex.search(query, maxResults - results.length));
28
28
  }
@@ -35,8 +35,7 @@ function emojiAddRecent(emojiData) {
35
35
  emojiMartVueFast.frequently.add(emojiData);
36
36
  }
37
37
  function getCurrentSkinTone() {
38
- var _a;
39
- const skinTone = Number.parseInt((_a = storage.getItem("NcEmojiPicker::currentSkinTone")) != null ? _a : "1");
38
+ const skinTone = Number.parseInt(storage.getItem("NcEmojiPicker::currentSkinTone") ?? "1");
40
39
  return Math.min(
41
40
  Math.max(
42
41
  skinTone,
@@ -1 +1 @@
1
- {"version":3,"file":"emoji-BCCCB3t3.cjs","sources":["../../src/functions/emoji/emoji.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\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// Shared emoji index and skinTone for all emojiSearch function calls\n// Will be initialized on the first call\nlet emojiIndex\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 * Get the list of emojis by search filter or the list of frequently used emojis\n *\n * @param query Emoji search filter string; if no string or empty string is given, the list of frequently used emojis is returned\n * @param maxResults Maximum of returned emojis\n * @return {object[]} list of found emojis in the same format as the emoji-mart-vue-fast's EmojiIndex\n */\nexport function emojiSearch(query: string, maxResults: number = 10): object[] {\n\t// If this is the first call of function - initialize EmojiIndex\n\tif (!emojiIndex) {\n\t\temojiIndex = new EmojiIndex(data)\n\t}\n\tconst currentSkinTone = getCurrentSkinTone()\n\n\tlet results\n\tif (query) {\n\t\tresults = emojiIndex.search(`:${query}`, maxResults)\n\t\tif (results.length < maxResults) {\n\t\t\tresults = results.concat(emojiIndex.search(query, maxResults - results.length))\n\t\t}\n\t} else {\n\t\tresults = frequently.get(maxResults).map((id: number) => emojiIndex.emoji(id)) || []\n\t}\n\n\treturn results.map((emoji) => emoji.getSkin(currentSkinTone))\n}\n\n/**\n * Add emoji to the list of recent emojis.\n * This list can be got from emojiSearch function and it is used in NcEmojiPicker.\n *\n * @param emojiData object with `id` property\n * @param emojiData.id the emoji ID from emoji index\n */\nexport function emojiAddRecent(emojiData: { id: string }): void {\n\tfrequently.add(emojiData)\n}\n\n/**\n * Get the current skin tone index used for emojis\n *\n * @return {EmojiSkinTone} The skin tone\n */\nexport function getCurrentSkinTone(): EmojiSkinTone {\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 *\n * @param skinTone Skin tone\n */\nexport function setCurrentSkinTone(skinTone: EmojiSkinTone): void {\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":["getBuilder","EmojiSkinTone","EmojiIndex","data","frequently"],"mappings":";;;;;;AAUA,MAAM,UAAUA,eAAW,WAAA,eAAe,EAAE,QAAQ,IAAI,EAAE;AAI1D,IAAI;AAMQ,IAAA,kCAAAC,mBAAL;AACNA,iBAAAA,eAAA,aAAU,CAAV,IAAA;AACAA,iBAAAA,eAAA,WAAQ,CAAR,IAAA;AACAA,iBAAAA,eAAA,iBAAc,CAAd,IAAA;AACAA,iBAAAA,eAAA,YAAS,CAAT,IAAA;AACAA,iBAAAA,eAAA,gBAAa,CAAb,IAAA;AACAA,iBAAAA,eAAA,UAAO,CAAP,IAAA;AANWA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAgBI,SAAA,YAAY,OAAe,aAAqB,IAAc;AAE7E,MAAI,CAAC,YAAY;AACH,iBAAA,IAAIC,4BAAWC,cAAAA,OAAI;AAAA,EACjC;AACA,QAAM,kBAAkB;AAEpB,MAAA;AACJ,MAAI,OAAO;AACV,cAAU,WAAW,OAAO,IAAI,OAAA,KAAA,GAAS,UAAU;AAC/C,QAAA,QAAQ,SAAS,YAAY;AACtB,gBAAA,QAAQ,OAAO,WAAW,OAAO,OAAO,aAAa,QAAQ,MAAM,CAAC;AAAA,IAC/E;AAAA,EAAA,OACM;AACN,cAAUC,iBAAW,WAAA,IAAI,UAAU,EAAE,IAAI,CAAC,OAAe,WAAW,MAAM,EAAE,CAAC,KAAK,CAAA;AAAA,EACnF;AAEA,SAAO,QAAQ,IAAI,CAAC,UAAU,MAAM,QAAQ,eAAe,CAAC;AAC7D;AASO,SAAS,eAAe,WAAiC;AAC/DA,8BAAW,IAAI,SAAS;AACzB;AAOO,SAAS,qBAAoC;AAxEpD,MAAA;AAyEO,QAAA,WAAW,OAAO,UAAS,KAAA,QAAQ,QAAQ,gCAAgC,MAAhD,YAAqD,GAAG;AAEzF,SAAO,KAAK;AAAA,IAAI,KAAK;AAAA,MAAI;AAAA,MAAU;AAAA;AAAA,IAAA;AAAA,IAAwB;AAAA;AAAA;AAC5D;AAOO,SAAS,mBAAmB,UAA+B;AAEjE,aAAW,KAAK;AAAA,IAAI,KAAK;AAAA,MAAI;AAAA,MAAU;AAAA;AAAA;IAAwB;AAAA;AAAA;AAC/D,UAAQ,QAAQ,kCAAkC,SAAS,SAAU,CAAA;AACtE;;;;;;"}
1
+ {"version":3,"file":"emoji-VgSjNTd5.cjs","sources":["../../src/functions/emoji/emoji.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\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// Shared emoji index and skinTone for all emojiSearch function calls\n// Will be initialized on the first call\nlet emojiIndex\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 * Get the list of emojis by search filter or the list of frequently used emojis\n *\n * @param query Emoji search filter string; if no string or empty string is given, the list of frequently used emojis is returned\n * @param maxResults Maximum of returned emojis\n * @return {object[]} list of found emojis in the same format as the emoji-mart-vue-fast's EmojiIndex\n */\nexport function emojiSearch(query: string, maxResults: number = 10): object[] {\n\t// If this is the first call of function - initialize EmojiIndex\n\tif (!emojiIndex) {\n\t\temojiIndex = new EmojiIndex(data)\n\t}\n\tconst currentSkinTone = getCurrentSkinTone()\n\n\tlet results\n\tif (query) {\n\t\tresults = emojiIndex.search(`:${query}`, maxResults)\n\t\tif (results.length < maxResults) {\n\t\t\tresults = results.concat(emojiIndex.search(query, maxResults - results.length))\n\t\t}\n\t} else {\n\t\tresults = frequently.get(maxResults).map((id: number) => emojiIndex.emoji(id)) || []\n\t}\n\n\treturn results.map((emoji) => emoji.getSkin(currentSkinTone))\n}\n\n/**\n * Add emoji to the list of recent emojis.\n * This list can be got from emojiSearch function and it is used in NcEmojiPicker.\n *\n * @param emojiData object with `id` property\n * @param emojiData.id the emoji ID from emoji index\n */\nexport function emojiAddRecent(emojiData: { id: string }): void {\n\tfrequently.add(emojiData)\n}\n\n/**\n * Get the current skin tone index used for emojis\n *\n * @return {EmojiSkinTone} The skin tone\n */\nexport function getCurrentSkinTone(): EmojiSkinTone {\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 *\n * @param skinTone Skin tone\n */\nexport function setCurrentSkinTone(skinTone: EmojiSkinTone): void {\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":["getBuilder","EmojiSkinTone","EmojiIndex","data","frequently"],"mappings":";;;;;;AAUA,MAAM,UAAUA,eAAW,WAAA,eAAe,EAAE,QAAQ,IAAI,EAAE;AAI1D,IAAI;AAMQ,IAAA,kCAAAC,mBAAL;AACNA,iBAAAA,eAAA,aAAU,CAAV,IAAA;AACAA,iBAAAA,eAAA,WAAQ,CAAR,IAAA;AACAA,iBAAAA,eAAA,iBAAc,CAAd,IAAA;AACAA,iBAAAA,eAAA,YAAS,CAAT,IAAA;AACAA,iBAAAA,eAAA,gBAAa,CAAb,IAAA;AACAA,iBAAAA,eAAA,UAAO,CAAP,IAAA;AANWA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAgBI,SAAA,YAAY,OAAe,aAAqB,IAAc;AAE7E,MAAI,CAAC,YAAY;AACH,iBAAA,IAAIC,4BAAWC,cAAAA,OAAI;AAAA,EACjC;AACA,QAAM,kBAAkB;AAEpB,MAAA;AACJ,MAAI,OAAO;AACV,cAAU,WAAW,OAAO,IAAI,KAAK,IAAI,UAAU;AAC/C,QAAA,QAAQ,SAAS,YAAY;AACtB,gBAAA,QAAQ,OAAO,WAAW,OAAO,OAAO,aAAa,QAAQ,MAAM,CAAC;AAAA,IAC/E;AAAA,EAAA,OACM;AACN,cAAUC,iBAAW,WAAA,IAAI,UAAU,EAAE,IAAI,CAAC,OAAe,WAAW,MAAM,EAAE,CAAC,KAAK,CAAA;AAAA,EACnF;AAEA,SAAO,QAAQ,IAAI,CAAC,UAAU,MAAM,QAAQ,eAAe,CAAC;AAC7D;AASO,SAAS,eAAe,WAAiC;AAC/DA,8BAAW,IAAI,SAAS;AACzB;AAOO,SAAS,qBAAoC;AACnD,QAAM,WAAW,OAAO,SAAS,QAAQ,QAAQ,gCAAgC,KAAK,GAAG;AAEzF,SAAO,KAAK;AAAA,IAAI,KAAK;AAAA,MAAI;AAAA,MAAU;AAAA;AAAA,IAAA;AAAA,IAAwB;AAAA;AAAA;AAC5D;AAOO,SAAS,mBAAmB,UAA+B;AAEjE,aAAW,KAAK;AAAA,IAAI,KAAK;AAAA,MAAI;AAAA,MAAU;AAAA;AAAA;IAAwB;AAAA;AAAA;AAC/D,UAAQ,QAAQ,kCAAkC,SAAS,SAAU,CAAA;AACtE;;;;;;"}
@@ -6,12 +6,10 @@ const isWidgetRegistered = (id) => {
6
6
  return !!window._vue_richtext_widgets[id];
7
7
  };
8
8
  const hasInteractiveView = (id) => {
9
- var _a;
10
- return !!((_a = window._vue_richtext_widgets[id]) == null ? void 0 : _a.hasInteractiveView);
9
+ return !!window._vue_richtext_widgets[id]?.hasInteractiveView;
11
10
  };
12
11
  const hasFullWidth = (id) => {
13
- var _a;
14
- return !!((_a = window._vue_richtext_widgets[id]) == null ? void 0 : _a.fullWidth);
12
+ return !!window._vue_richtext_widgets[id]?.fullWidth;
15
13
  };
16
14
  const registerWidget = (id, callback, onDestroy = (el) => {
17
15
  }, props) => {
@@ -70,8 +68,7 @@ const isCustomPickerElementRegistered = (id) => {
70
68
  return !!window._vue_richtext_custom_picker_elements[id];
71
69
  };
72
70
  const getCustomPickerElementSize = (id) => {
73
- var _a;
74
- const size = (_a = window._vue_richtext_custom_picker_elements[id]) == null ? void 0 : _a.size;
71
+ const size = window._vue_richtext_custom_picker_elements[id]?.size;
75
72
  if (["small", "normal", "large", "full"].includes(size)) {
76
73
  return size;
77
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index-Dsgv-f-l.cjs","sources":["../../src/functions/reference/widgets.ts","../../src/functions/reference/customPickerElements.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\ninterface WidgetRenderProperties {\n\trichObjectType: string;\n\trichObject: object;\n\taccessible: boolean;\n\tinteractive: boolean;\n}\n\ntype widgetRenderCallback = (el: HTMLElement, properties: WidgetRenderProperties) => void;\ntype widgetDestroyCallback = (el: HTMLElement) => void;\n\ninterface WidgetProps {\n\tid: string;\n\thasInteractiveView: boolean;\n\tfullWidth: boolean;\n\tcallback: widgetRenderCallback;\n\tonDestroy: widgetDestroyCallback;\n}\n\ninterface WidgetPropsOptional {\n\thasInteractiveView?: boolean;\n\tfullWidth?: boolean;\n}\n\ndeclare global {\n\tinterface Window {\n\t\t_vue_richtext_widgets: Record<string, WidgetProps>;\n\t\t_registerWidget: (id: string, callback: widgetRenderCallback, onDestroy: widgetDestroyCallback, props: WidgetPropsOptional) => void;\n\t}\n}\n\nif (!window._vue_richtext_widgets) {\n\twindow._vue_richtext_widgets = {}\n}\n\nconst isWidgetRegistered = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]\n}\n\nconst hasInteractiveView = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]?.hasInteractiveView\n}\n\nexport const hasFullWidth = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]?.fullWidth\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst registerWidget = (id: string, callback: widgetRenderCallback, onDestroy = (el: HTMLElement) => {}, props: WidgetPropsOptional) => {\n\tconst propsWithDefaults = {\n\t\thasInteractiveView: true,\n\t\tfullWidth: false,\n\t\t...props,\n\t}\n\n\tif (window._vue_richtext_widgets[id]) {\n\t\tconsole.error('Widget for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t\t...propsWithDefaults,\n\t}\n}\n\nconst renderWidget = (el: HTMLElement, { richObjectType, richObject, accessible, interactive }) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\tconsole.error('Widget for rich object type ' + richObjectType + ' not registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive })\n}\n\nconst destroyWidget = (richObjectType: string, el: HTMLElement) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].onDestroy(el)\n}\n\nwindow._registerWidget = (id: string, callback: widgetRenderCallback, onDestroy: widgetDestroyCallback, props: WidgetPropsOptional) => {\n\tregisterWidget(id, callback, onDestroy, props)\n}\n\nexport {\n\tregisterWidget,\n\trenderWidget,\n\tdestroyWidget,\n\tisWidgetRegistered,\n\thasInteractiveView,\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nif (!window._vue_richtext_custom_picker_elements) {\n\twindow._vue_richtext_custom_picker_elements = {}\n}\n\n/**\n * Representation of the render callback result\n * It contains a dom element and an object (Vue instance or other fancy things)\n */\nclass NcCustomPickerRenderResult {\n\n\t/**\n\t * @param {HTMLElement} element The HTML element\n\t * @param {object} object The object\n\t */\n\tconstructor(element, object) {\n\t\tthis.element = element\n\t\tthis.object = object\n\t}\n\n}\n\nconst isCustomPickerElementRegistered = (id) => {\n\treturn !!window._vue_richtext_custom_picker_elements[id]\n}\n\nconst getCustomPickerElementSize = (id) => {\n\tconst size = window._vue_richtext_custom_picker_elements[id]?.size\n\tif (['small', 'normal', 'large', 'full'].includes(size)) {\n\t\treturn size\n\t}\n\treturn null\n}\n\nconst registerCustomPickerElement = (id, callback, onDestroy = (el) => {}, size = 'large') => {\n\tif (window._vue_richtext_custom_picker_elements[id]) {\n\t\tconsole.error('Custom reference picker element for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t\tsize,\n\t}\n}\n\nconst renderCustomPickerElement = (el, { providerId, accessible }) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\tconsole.error('Custom reference picker element for reference provider ID ' + providerId + ' not registered')\n\t\treturn\n\t}\n\n\treturn window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible })\n}\n\nconst destroyCustomPickerElement = (providerId, el, renderResult) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult)\n}\n\nwindow._registerCustomPickerElement = registerCustomPickerElement\n\nexport {\n\tNcCustomPickerRenderResult,\n\tregisterCustomPickerElement,\n\trenderCustomPickerElement,\n\tdestroyCustomPickerElement,\n\tisCustomPickerElementRegistered,\n\tgetCustomPickerElementSize,\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-BV85rPB7.cjs","sources":["../../src/functions/reference/widgets.ts","../../src/functions/reference/customPickerElements.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\ninterface WidgetRenderProperties {\n\trichObjectType: string;\n\trichObject: object;\n\taccessible: boolean;\n\tinteractive: boolean;\n}\n\ntype widgetRenderCallback = (el: HTMLElement, properties: WidgetRenderProperties) => void;\ntype widgetDestroyCallback = (el: HTMLElement) => void;\n\ninterface WidgetProps {\n\tid: string;\n\thasInteractiveView: boolean;\n\tfullWidth: boolean;\n\tcallback: widgetRenderCallback;\n\tonDestroy: widgetDestroyCallback;\n}\n\ninterface WidgetPropsOptional {\n\thasInteractiveView?: boolean;\n\tfullWidth?: boolean;\n}\n\ndeclare global {\n\tinterface Window {\n\t\t_vue_richtext_widgets: Record<string, WidgetProps>;\n\t\t_registerWidget: (id: string, callback: widgetRenderCallback, onDestroy: widgetDestroyCallback, props: WidgetPropsOptional) => void;\n\t}\n}\n\nif (!window._vue_richtext_widgets) {\n\twindow._vue_richtext_widgets = {}\n}\n\nconst isWidgetRegistered = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]\n}\n\nconst hasInteractiveView = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]?.hasInteractiveView\n}\n\nexport const hasFullWidth = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]?.fullWidth\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst registerWidget = (id: string, callback: widgetRenderCallback, onDestroy = (el: HTMLElement) => {}, props: WidgetPropsOptional) => {\n\tconst propsWithDefaults = {\n\t\thasInteractiveView: true,\n\t\tfullWidth: false,\n\t\t...props,\n\t}\n\n\tif (window._vue_richtext_widgets[id]) {\n\t\tconsole.error('Widget for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t\t...propsWithDefaults,\n\t}\n}\n\nconst renderWidget = (el: HTMLElement, { richObjectType, richObject, accessible, interactive }) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\tconsole.error('Widget for rich object type ' + richObjectType + ' not registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive })\n}\n\nconst destroyWidget = (richObjectType: string, el: HTMLElement) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].onDestroy(el)\n}\n\nwindow._registerWidget = (id: string, callback: widgetRenderCallback, onDestroy: widgetDestroyCallback, props: WidgetPropsOptional) => {\n\tregisterWidget(id, callback, onDestroy, props)\n}\n\nexport {\n\tregisterWidget,\n\trenderWidget,\n\tdestroyWidget,\n\tisWidgetRegistered,\n\thasInteractiveView,\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nif (!window._vue_richtext_custom_picker_elements) {\n\twindow._vue_richtext_custom_picker_elements = {}\n}\n\n/**\n * Representation of the render callback result\n * It contains a dom element and an object (Vue instance or other fancy things)\n */\nclass NcCustomPickerRenderResult {\n\n\t/**\n\t * @param {HTMLElement} element The HTML element\n\t * @param {object} object The object\n\t */\n\tconstructor(element, object) {\n\t\tthis.element = element\n\t\tthis.object = object\n\t}\n\n}\n\nconst isCustomPickerElementRegistered = (id) => {\n\treturn !!window._vue_richtext_custom_picker_elements[id]\n}\n\nconst getCustomPickerElementSize = (id) => {\n\tconst size = window._vue_richtext_custom_picker_elements[id]?.size\n\tif (['small', 'normal', 'large', 'full'].includes(size)) {\n\t\treturn size\n\t}\n\treturn null\n}\n\nconst registerCustomPickerElement = (id, callback, onDestroy = (el) => {}, size = 'large') => {\n\tif (window._vue_richtext_custom_picker_elements[id]) {\n\t\tconsole.error('Custom reference picker element for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t\tsize,\n\t}\n}\n\nconst renderCustomPickerElement = (el, { providerId, accessible }) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\tconsole.error('Custom reference picker element for reference provider ID ' + providerId + ' not registered')\n\t\treturn\n\t}\n\n\treturn window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible })\n}\n\nconst destroyCustomPickerElement = (providerId, el, renderResult) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult)\n}\n\nwindow._registerCustomPickerElement = registerCustomPickerElement\n\nexport {\n\tNcCustomPickerRenderResult,\n\tregisterCustomPickerElement,\n\trenderCustomPickerElement,\n\tdestroyCustomPickerElement,\n\tisCustomPickerElementRegistered,\n\tgetCustomPickerElementSize,\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import '../assets/NcMentionBubble-C6t8od-_.css';
1
+ import '../assets/NcMentionBubble-Bt71nB8X.css';
2
2
  import { g as getAvatarUrl } from "./getAvatarUrl-DxvUjKMi.mjs";
3
3
  /* empty css */
4
4
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
@@ -51,7 +51,7 @@ const _sfc_main = {
51
51
  return this.id && this.source === "users" ? this.getAvatarUrl(this.id, 44) : null;
52
52
  },
53
53
  mentionText() {
54
- return !this.id.includes(" ") && !this.id.includes("/") ? "@".concat(this.id) : '@"'.concat(this.id, '"');
54
+ return !this.id.includes(" ") && !this.id.includes("/") ? `@${this.id}` : `@"${this.id}"`;
55
55
  },
56
56
  // Fallback to title for compatibility
57
57
  labelWithFallback() {
@@ -64,7 +64,7 @@ const _sfc_main = {
64
64
  };
65
65
  var _sfc_render = function render() {
66
66
  var _vm = this, _c = _vm._self._c;
67
- return _c("span", { staticClass: "mention-bubble", class: { "mention-bubble--primary": _vm.primary }, attrs: { "contenteditable": "false" } }, [_c("span", { staticClass: "mention-bubble__wrapper" }, [_c("span", { staticClass: "mention-bubble__content" }, [_c("span", { staticClass: "mention-bubble__icon", class: [_vm.icon, "mention-bubble__icon--".concat(_vm.avatarUrl ? "with-avatar" : "")], style: _vm.avatarUrl ? { backgroundImage: "url(".concat(_vm.avatarUrl, ")") } : null }), _c("span", { staticClass: "mention-bubble__title", attrs: { "role": "heading", "title": _vm.labelWithFallback } })]), _c("span", { staticClass: "mention-bubble__select", attrs: { "role": "none" } }, [_vm._v(_vm._s(_vm.mentionText))])])]);
67
+ return _c("span", { staticClass: "mention-bubble", class: { "mention-bubble--primary": _vm.primary }, attrs: { "contenteditable": "false" } }, [_c("span", { staticClass: "mention-bubble__wrapper" }, [_c("span", { staticClass: "mention-bubble__content" }, [_c("span", { staticClass: "mention-bubble__icon", class: [_vm.icon, `mention-bubble__icon--${_vm.avatarUrl ? "with-avatar" : ""}`], style: _vm.avatarUrl ? { backgroundImage: `url(${_vm.avatarUrl})` } : null }), _c("span", { staticClass: "mention-bubble__title", attrs: { "role": "heading", "title": _vm.labelWithFallback } })]), _c("span", { staticClass: "mention-bubble__select", attrs: { "role": "none" } }, [_vm._v(_vm._s(_vm.mentionText))])])]);
68
68
  };
69
69
  var _sfc_staticRenderFns = [];
70
70
  var __component__ = /* @__PURE__ */ normalizeComponent(
@@ -81,9 +81,9 @@ const MENTION_SIMPLE = /(@[a-z0-9_\-@.']+)/.source;
81
81
  const MENTION_GUEST = /@&quot;guest\/[a-f0-9]+&quot;/.source;
82
82
  const MENTION_PREFIXED = /@&quot;(?:federated_)?(?:group|team|user){1}\/[a-z0-9_\-@.' /:]+&quot;/.source;
83
83
  const MENTION_WITH_SPACE = /@&quot;[a-z0-9_\-@.' ]+&quot;/.source;
84
- const MENTION_COMPLEX = "(".concat(MENTION_GUEST, "|").concat(MENTION_PREFIXED, "|").concat(MENTION_WITH_SPACE, ")");
85
- const USERID_REGEX = new RegExp("".concat(MENTION_START).concat(MENTION_SIMPLE), "gi");
86
- const USERID_REGEX_WITH_SPACE = new RegExp("".concat(MENTION_START).concat(MENTION_COMPLEX), "gi");
84
+ const MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`;
85
+ const USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, "gi");
86
+ const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, "gi");
87
87
  const richEditor = {
88
88
  props: {
89
89
  userData: {
@@ -134,11 +134,11 @@ const richEditor = {
134
134
  */
135
135
  genSelectTemplate(value) {
136
136
  if (typeof value === "undefined") {
137
- return "".concat(this.autocompleteTribute.current.collection.trigger).concat(this.autocompleteTribute.current.mentionText);
137
+ return `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`;
138
138
  }
139
139
  const data = this.userData[value];
140
140
  if (!data) {
141
- return [" ", "/", ":"].every((char) => !value.includes(char)) ? "@".concat(value) : '@"'.concat(value, '"');
141
+ return [" ", "/", ":"].every((char) => !value.includes(char)) ? `@${value}` : `@"${value}"`;
142
142
  }
143
143
  return this.renderComponentHtml(data, NcMentionBubble).replace(/[\n\t]/gmi, "");
144
144
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index-CMZdBcqP.mjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"labelWithFallback\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { getAvatarUrl } from '../../utils/getAvatarUrl.ts'\n\nexport default {\n\tname: 'NcMentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * @deprecated Use `label` instead\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticonUrl: {\n\t\t\ttype: [String, null],\n\t\t\tdefault: null,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\tif (this.iconUrl) {\n\t\t\t\treturn this.iconUrl\n\t\t\t}\n\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn !this.id.includes(' ') && !this.id.includes('/')\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t\t// Fallback to title for compatibility\n\t\tlabelWithFallback() {\n\t\t\treturn this.label || this.title\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-element-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-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: -100vw;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\toverflow: hidden;\n\t}\n}\n\n</style>\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport NcMentionBubble from '../../components/NcRichContenteditable/NcMentionBubble.vue'\nimport Linkify from '../../utils/Linkify.js'\n\nimport escapeHtml from 'escape-html'\nimport stripTags from 'striptags'\nimport Vue from 'vue'\n\n// Referenced from public function getMentions(): https://github.com/nextcloud/server/blob/master/lib/private/Comments/Comment.php\n// Beginning or whitespace. Uses positive lookahead (to work on MobileSafari <16.4)\nconst MENTION_START = /(?=[a-z0-9_\\-@.'])\\B/.source\n// Capturing groups like: @user-id, @\"guest/abc16def\", @\"federated_user/user-id\", @\"user-id with space\"\nconst MENTION_SIMPLE = /(@[a-z0-9_\\-@.']+)/.source\nconst MENTION_GUEST = /@&quot;guest\\/[a-f0-9]+&quot;/.source\nconst MENTION_PREFIXED = /@&quot;(?:federated_)?(?:group|team|user){1}\\/[a-z0-9_\\-@.' /:]+&quot;/.source\nconst MENTION_WITH_SPACE = /@&quot;[a-z0-9_\\-@.' ]+&quot;/.source\nconst MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`\n// Concatenated regular expressions\nexport const USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, 'gi')\n\nexport default {\n\tprops: {\n\t\tuserData: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Convert the value string to html for the inner content\n\t\t *\n\t\t * @param {string} value the content without html\n\t\t * @return {string} rendered html\n\t\t */\n\t\trenderContent(value) {\n\t\t\t// Sanitize the value prop\n\t\t\tconst sanitizedValue = escapeHtml(value)\n\n\t\t\t// Extract all the userIds\n\t\t\tconst splitValue = sanitizedValue.split(USERID_REGEX)\n\t\t\t\t.map(part => part.split(USERID_REGEX_WITH_SPACE)).flat()\n\n\t\t\t// Replace userIds by html\n\t\t\treturn splitValue\n\t\t\t\t.map(part => {\n\t\t\t\t\t// When splitting, the string is always putting the userIds\n\t\t\t\t\t// on the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\t// This part doesn't contain a mention, let's make sure links are parsed\n\t\t\t\t\t\treturn Linkify(part)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the leading @ and all \"\n\t\t\t\t\tconst id = part.slice(1).replace(/&quot;/gi, '')\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&amp;/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @return {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content\n\t\t\t// Consecutive spaces in HTML tags should collapse\n\t\t\ttext = text.replace(/>\\s+</g, '><')\n\t\t\t// Replace break lines with new lines\n\t\t\ttext = text.replace(/<br>/gmi, '\\n')\n\t\t\t// Replace some html special characters\n\t\t\ttext = text.replace(/&nbsp;/gmi, ' ')\n\t\t\ttext = text.replace(/&amp;/gmi, '&')\n\n\t\t\t// Convert the mentions to text only\n\t\t\t// first we replace divs with new lines\n\t\t\ttext = text.replace(/<\\/div>/gmi, '\\n')\n\t\t\t// then we remove all leftover html\n\t\t\ttext = stripTags(text, '<div>')\n\t\t\ttext = stripTags(text)\n\n\t\t\treturn text\n\t\t},\n\n\t\t/**\n\t\t * Generate an autocompletion popup entry template\n\t\t *\n\t\t * @param {string} value the value to match against the userData\n\t\t * @return {string}\n\t\t */\n\t\tgenSelectTemplate(value) {\n\t\t\t// The value returned by this function will replace the trigger '@'\n\t\t\t// and the search text, so when there is no match we simply return\n\t\t\t// '@' and the text.\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\treturn `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`\n\t\t\t}\n\n\t\t\tconst data = this.userData[value]\n\n\t\t\t// Fallback to @mention in case no data matches\n\t\t\tif (!data) {\n\t\t\t\t// return @value if matches MENTION_SIMPLE, @\"value\" otherwise\n\t\t\t\treturn [' ', '/', ':'].every(char => !value.includes(char))\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip of new lines and tabs\n\t\t\treturn this.renderComponentHtml(data, NcMentionBubble).replace(/[\\n\\t]/gmi, '')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {object} propsData the props to pass to the component\n\t\t * @param {object} component the component to render\n\t\t * @return {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(propsData, component) {\n\t\t\tconst View = Vue.extend(component)\n\t\t\tconst Item = new View({\n\t\t\t\tpropsData,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst wrapper = document.createElement('div')\n\t\t\tconst mount = document.createElement('div')\n\t\t\twrapper.style.display = 'none'\n\t\t\twrapper.appendChild(mount)\n\t\t\tdocument.body.appendChild(wrapper)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.$mount(mount)\n\t\t\tconst renderedHtml = wrapper.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.$destroy()\n\t\t\twrapper.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-CKNLRG-q.mjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"labelWithFallback\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { getAvatarUrl } from '../../utils/getAvatarUrl.ts'\n\nexport default {\n\tname: 'NcMentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * @deprecated Use `label` instead\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticonUrl: {\n\t\t\ttype: [String, null],\n\t\t\tdefault: null,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\tif (this.iconUrl) {\n\t\t\t\treturn this.iconUrl\n\t\t\t}\n\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn !this.id.includes(' ') && !this.id.includes('/')\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t\t// Fallback to title for compatibility\n\t\tlabelWithFallback() {\n\t\t\treturn this.label || this.title\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-element-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-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: -100vw;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\toverflow: hidden;\n\t}\n}\n\n</style>\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport NcMentionBubble from '../../components/NcRichContenteditable/NcMentionBubble.vue'\nimport Linkify from '../../utils/Linkify.js'\n\nimport escapeHtml from 'escape-html'\nimport stripTags from 'striptags'\nimport Vue from 'vue'\n\n// Referenced from public function getMentions(): https://github.com/nextcloud/server/blob/master/lib/private/Comments/Comment.php\n// Beginning or whitespace. Uses positive lookahead (to work on MobileSafari <16.4)\nconst MENTION_START = /(?=[a-z0-9_\\-@.'])\\B/.source\n// Capturing groups like: @user-id, @\"guest/abc16def\", @\"federated_user/user-id\", @\"user-id with space\"\nconst MENTION_SIMPLE = /(@[a-z0-9_\\-@.']+)/.source\nconst MENTION_GUEST = /@&quot;guest\\/[a-f0-9]+&quot;/.source\nconst MENTION_PREFIXED = /@&quot;(?:federated_)?(?:group|team|user){1}\\/[a-z0-9_\\-@.' /:]+&quot;/.source\nconst MENTION_WITH_SPACE = /@&quot;[a-z0-9_\\-@.' ]+&quot;/.source\nconst MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`\n// Concatenated regular expressions\nexport const USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, 'gi')\n\nexport default {\n\tprops: {\n\t\tuserData: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Convert the value string to html for the inner content\n\t\t *\n\t\t * @param {string} value the content without html\n\t\t * @return {string} rendered html\n\t\t */\n\t\trenderContent(value) {\n\t\t\t// Sanitize the value prop\n\t\t\tconst sanitizedValue = escapeHtml(value)\n\n\t\t\t// Extract all the userIds\n\t\t\tconst splitValue = sanitizedValue.split(USERID_REGEX)\n\t\t\t\t.map(part => part.split(USERID_REGEX_WITH_SPACE)).flat()\n\n\t\t\t// Replace userIds by html\n\t\t\treturn splitValue\n\t\t\t\t.map(part => {\n\t\t\t\t\t// When splitting, the string is always putting the userIds\n\t\t\t\t\t// on the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\t// This part doesn't contain a mention, let's make sure links are parsed\n\t\t\t\t\t\treturn Linkify(part)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the leading @ and all \"\n\t\t\t\t\tconst id = part.slice(1).replace(/&quot;/gi, '')\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&amp;/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @return {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content\n\t\t\t// Consecutive spaces in HTML tags should collapse\n\t\t\ttext = text.replace(/>\\s+</g, '><')\n\t\t\t// Replace break lines with new lines\n\t\t\ttext = text.replace(/<br>/gmi, '\\n')\n\t\t\t// Replace some html special characters\n\t\t\ttext = text.replace(/&nbsp;/gmi, ' ')\n\t\t\ttext = text.replace(/&amp;/gmi, '&')\n\n\t\t\t// Convert the mentions to text only\n\t\t\t// first we replace divs with new lines\n\t\t\ttext = text.replace(/<\\/div>/gmi, '\\n')\n\t\t\t// then we remove all leftover html\n\t\t\ttext = stripTags(text, '<div>')\n\t\t\ttext = stripTags(text)\n\n\t\t\treturn text\n\t\t},\n\n\t\t/**\n\t\t * Generate an autocompletion popup entry template\n\t\t *\n\t\t * @param {string} value the value to match against the userData\n\t\t * @return {string}\n\t\t */\n\t\tgenSelectTemplate(value) {\n\t\t\t// The value returned by this function will replace the trigger '@'\n\t\t\t// and the search text, so when there is no match we simply return\n\t\t\t// '@' and the text.\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\treturn `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`\n\t\t\t}\n\n\t\t\tconst data = this.userData[value]\n\n\t\t\t// Fallback to @mention in case no data matches\n\t\t\tif (!data) {\n\t\t\t\t// return @value if matches MENTION_SIMPLE, @\"value\" otherwise\n\t\t\t\treturn [' ', '/', ':'].every(char => !value.includes(char))\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip of new lines and tabs\n\t\t\treturn this.renderComponentHtml(data, NcMentionBubble).replace(/[\\n\\t]/gmi, '')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {object} propsData the props to pass to the component\n\t\t * @param {object} component the component to render\n\t\t * @return {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(propsData, component) {\n\t\t\tconst View = Vue.extend(component)\n\t\t\tconst Item = new View({\n\t\t\t\tpropsData,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst wrapper = document.createElement('div')\n\t\t\tconst mount = document.createElement('div')\n\t\t\twrapper.style.display = 'none'\n\t\t\twrapper.appendChild(mount)\n\t\t\tdocument.body.appendChild(wrapper)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.$mount(mount)\n\t\t\tconst renderedHtml = wrapper.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.$destroy()\n\t\t\twrapper.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n"],"names":[],"mappings":"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"}
@@ -5,12 +5,10 @@ const isWidgetRegistered = (id) => {
5
5
  return !!window._vue_richtext_widgets[id];
6
6
  };
7
7
  const hasInteractiveView = (id) => {
8
- var _a;
9
- return !!((_a = window._vue_richtext_widgets[id]) == null ? void 0 : _a.hasInteractiveView);
8
+ return !!window._vue_richtext_widgets[id]?.hasInteractiveView;
10
9
  };
11
10
  const hasFullWidth = (id) => {
12
- var _a;
13
- return !!((_a = window._vue_richtext_widgets[id]) == null ? void 0 : _a.fullWidth);
11
+ return !!window._vue_richtext_widgets[id]?.fullWidth;
14
12
  };
15
13
  const registerWidget = (id, callback, onDestroy = (el) => {
16
14
  }, props) => {
@@ -69,8 +67,7 @@ const isCustomPickerElementRegistered = (id) => {
69
67
  return !!window._vue_richtext_custom_picker_elements[id];
70
68
  };
71
69
  const getCustomPickerElementSize = (id) => {
72
- var _a;
73
- const size = (_a = window._vue_richtext_custom_picker_elements[id]) == null ? void 0 : _a.size;
70
+ const size = window._vue_richtext_custom_picker_elements[id]?.size;
74
71
  if (["small", "normal", "large", "full"].includes(size)) {
75
72
  return size;
76
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index-BwyQ2N-M.mjs","sources":["../../src/functions/reference/widgets.ts","../../src/functions/reference/customPickerElements.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\ninterface WidgetRenderProperties {\n\trichObjectType: string;\n\trichObject: object;\n\taccessible: boolean;\n\tinteractive: boolean;\n}\n\ntype widgetRenderCallback = (el: HTMLElement, properties: WidgetRenderProperties) => void;\ntype widgetDestroyCallback = (el: HTMLElement) => void;\n\ninterface WidgetProps {\n\tid: string;\n\thasInteractiveView: boolean;\n\tfullWidth: boolean;\n\tcallback: widgetRenderCallback;\n\tonDestroy: widgetDestroyCallback;\n}\n\ninterface WidgetPropsOptional {\n\thasInteractiveView?: boolean;\n\tfullWidth?: boolean;\n}\n\ndeclare global {\n\tinterface Window {\n\t\t_vue_richtext_widgets: Record<string, WidgetProps>;\n\t\t_registerWidget: (id: string, callback: widgetRenderCallback, onDestroy: widgetDestroyCallback, props: WidgetPropsOptional) => void;\n\t}\n}\n\nif (!window._vue_richtext_widgets) {\n\twindow._vue_richtext_widgets = {}\n}\n\nconst isWidgetRegistered = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]\n}\n\nconst hasInteractiveView = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]?.hasInteractiveView\n}\n\nexport const hasFullWidth = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]?.fullWidth\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst registerWidget = (id: string, callback: widgetRenderCallback, onDestroy = (el: HTMLElement) => {}, props: WidgetPropsOptional) => {\n\tconst propsWithDefaults = {\n\t\thasInteractiveView: true,\n\t\tfullWidth: false,\n\t\t...props,\n\t}\n\n\tif (window._vue_richtext_widgets[id]) {\n\t\tconsole.error('Widget for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t\t...propsWithDefaults,\n\t}\n}\n\nconst renderWidget = (el: HTMLElement, { richObjectType, richObject, accessible, interactive }) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\tconsole.error('Widget for rich object type ' + richObjectType + ' not registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive })\n}\n\nconst destroyWidget = (richObjectType: string, el: HTMLElement) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].onDestroy(el)\n}\n\nwindow._registerWidget = (id: string, callback: widgetRenderCallback, onDestroy: widgetDestroyCallback, props: WidgetPropsOptional) => {\n\tregisterWidget(id, callback, onDestroy, props)\n}\n\nexport {\n\tregisterWidget,\n\trenderWidget,\n\tdestroyWidget,\n\tisWidgetRegistered,\n\thasInteractiveView,\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nif (!window._vue_richtext_custom_picker_elements) {\n\twindow._vue_richtext_custom_picker_elements = {}\n}\n\n/**\n * Representation of the render callback result\n * It contains a dom element and an object (Vue instance or other fancy things)\n */\nclass NcCustomPickerRenderResult {\n\n\t/**\n\t * @param {HTMLElement} element The HTML element\n\t * @param {object} object The object\n\t */\n\tconstructor(element, object) {\n\t\tthis.element = element\n\t\tthis.object = object\n\t}\n\n}\n\nconst isCustomPickerElementRegistered = (id) => {\n\treturn !!window._vue_richtext_custom_picker_elements[id]\n}\n\nconst getCustomPickerElementSize = (id) => {\n\tconst size = window._vue_richtext_custom_picker_elements[id]?.size\n\tif (['small', 'normal', 'large', 'full'].includes(size)) {\n\t\treturn size\n\t}\n\treturn null\n}\n\nconst registerCustomPickerElement = (id, callback, onDestroy = (el) => {}, size = 'large') => {\n\tif (window._vue_richtext_custom_picker_elements[id]) {\n\t\tconsole.error('Custom reference picker element for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t\tsize,\n\t}\n}\n\nconst renderCustomPickerElement = (el, { providerId, accessible }) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\tconsole.error('Custom reference picker element for reference provider ID ' + providerId + ' not registered')\n\t\treturn\n\t}\n\n\treturn window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible })\n}\n\nconst destroyCustomPickerElement = (providerId, el, renderResult) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult)\n}\n\nwindow._registerCustomPickerElement = registerCustomPickerElement\n\nexport {\n\tNcCustomPickerRenderResult,\n\tregisterCustomPickerElement,\n\trenderCustomPickerElement,\n\tdestroyCustomPickerElement,\n\tisCustomPickerElementRegistered,\n\tgetCustomPickerElementSize,\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-CtoB4eIp.mjs","sources":["../../src/functions/reference/widgets.ts","../../src/functions/reference/customPickerElements.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\ninterface WidgetRenderProperties {\n\trichObjectType: string;\n\trichObject: object;\n\taccessible: boolean;\n\tinteractive: boolean;\n}\n\ntype widgetRenderCallback = (el: HTMLElement, properties: WidgetRenderProperties) => void;\ntype widgetDestroyCallback = (el: HTMLElement) => void;\n\ninterface WidgetProps {\n\tid: string;\n\thasInteractiveView: boolean;\n\tfullWidth: boolean;\n\tcallback: widgetRenderCallback;\n\tonDestroy: widgetDestroyCallback;\n}\n\ninterface WidgetPropsOptional {\n\thasInteractiveView?: boolean;\n\tfullWidth?: boolean;\n}\n\ndeclare global {\n\tinterface Window {\n\t\t_vue_richtext_widgets: Record<string, WidgetProps>;\n\t\t_registerWidget: (id: string, callback: widgetRenderCallback, onDestroy: widgetDestroyCallback, props: WidgetPropsOptional) => void;\n\t}\n}\n\nif (!window._vue_richtext_widgets) {\n\twindow._vue_richtext_widgets = {}\n}\n\nconst isWidgetRegistered = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]\n}\n\nconst hasInteractiveView = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]?.hasInteractiveView\n}\n\nexport const hasFullWidth = (id: string) => {\n\treturn !!window._vue_richtext_widgets[id]?.fullWidth\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst registerWidget = (id: string, callback: widgetRenderCallback, onDestroy = (el: HTMLElement) => {}, props: WidgetPropsOptional) => {\n\tconst propsWithDefaults = {\n\t\thasInteractiveView: true,\n\t\tfullWidth: false,\n\t\t...props,\n\t}\n\n\tif (window._vue_richtext_widgets[id]) {\n\t\tconsole.error('Widget for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t\t...propsWithDefaults,\n\t}\n}\n\nconst renderWidget = (el: HTMLElement, { richObjectType, richObject, accessible, interactive }) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\tconsole.error('Widget for rich object type ' + richObjectType + ' not registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].callback(el, { richObjectType, richObject, accessible, interactive })\n}\n\nconst destroyWidget = (richObjectType: string, el: HTMLElement) => {\n\tif (richObjectType === 'open-graph') {\n\t\treturn\n\t}\n\n\tif (!window._vue_richtext_widgets[richObjectType]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_widgets[richObjectType].onDestroy(el)\n}\n\nwindow._registerWidget = (id: string, callback: widgetRenderCallback, onDestroy: widgetDestroyCallback, props: WidgetPropsOptional) => {\n\tregisterWidget(id, callback, onDestroy, props)\n}\n\nexport {\n\tregisterWidget,\n\trenderWidget,\n\tdestroyWidget,\n\tisWidgetRegistered,\n\thasInteractiveView,\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nif (!window._vue_richtext_custom_picker_elements) {\n\twindow._vue_richtext_custom_picker_elements = {}\n}\n\n/**\n * Representation of the render callback result\n * It contains a dom element and an object (Vue instance or other fancy things)\n */\nclass NcCustomPickerRenderResult {\n\n\t/**\n\t * @param {HTMLElement} element The HTML element\n\t * @param {object} object The object\n\t */\n\tconstructor(element, object) {\n\t\tthis.element = element\n\t\tthis.object = object\n\t}\n\n}\n\nconst isCustomPickerElementRegistered = (id) => {\n\treturn !!window._vue_richtext_custom_picker_elements[id]\n}\n\nconst getCustomPickerElementSize = (id) => {\n\tconst size = window._vue_richtext_custom_picker_elements[id]?.size\n\tif (['small', 'normal', 'large', 'full'].includes(size)) {\n\t\treturn size\n\t}\n\treturn null\n}\n\nconst registerCustomPickerElement = (id, callback, onDestroy = (el) => {}, size = 'large') => {\n\tif (window._vue_richtext_custom_picker_elements[id]) {\n\t\tconsole.error('Custom reference picker element for id ' + id + ' already registered')\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[id] = {\n\t\tid,\n\t\tcallback,\n\t\tonDestroy,\n\t\tsize,\n\t}\n}\n\nconst renderCustomPickerElement = (el, { providerId, accessible }) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\tconsole.error('Custom reference picker element for reference provider ID ' + providerId + ' not registered')\n\t\treturn\n\t}\n\n\treturn window._vue_richtext_custom_picker_elements[providerId].callback(el, { providerId, accessible })\n}\n\nconst destroyCustomPickerElement = (providerId, el, renderResult) => {\n\tif (!window._vue_richtext_custom_picker_elements[providerId]) {\n\t\treturn\n\t}\n\n\twindow._vue_richtext_custom_picker_elements[providerId].onDestroy(el, renderResult)\n}\n\nwindow._registerCustomPickerElement = registerCustomPickerElement\n\nexport {\n\tNcCustomPickerRenderResult,\n\tregisterCustomPickerElement,\n\trenderCustomPickerElement,\n\tdestroyCustomPickerElement,\n\tisCustomPickerElementRegistered,\n\tgetCustomPickerElementSize,\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- require('../assets/NcMentionBubble-C6t8od-_.css');
1
+ require('../assets/NcMentionBubble-Bt71nB8X.css');
2
2
  "use strict";
3
3
  const getAvatarUrl = require("./getAvatarUrl-6z9qRNH-.cjs");
4
4
  ;/* empty css */
@@ -56,7 +56,7 @@ const _sfc_main = {
56
56
  return this.id && this.source === "users" ? this.getAvatarUrl(this.id, 44) : null;
57
57
  },
58
58
  mentionText() {
59
- return !this.id.includes(" ") && !this.id.includes("/") ? "@".concat(this.id) : '@"'.concat(this.id, '"');
59
+ return !this.id.includes(" ") && !this.id.includes("/") ? `@${this.id}` : `@"${this.id}"`;
60
60
  },
61
61
  // Fallback to title for compatibility
62
62
  labelWithFallback() {
@@ -69,7 +69,7 @@ const _sfc_main = {
69
69
  };
70
70
  var _sfc_render = function render() {
71
71
  var _vm = this, _c = _vm._self._c;
72
- return _c("span", { staticClass: "mention-bubble", class: { "mention-bubble--primary": _vm.primary }, attrs: { "contenteditable": "false" } }, [_c("span", { staticClass: "mention-bubble__wrapper" }, [_c("span", { staticClass: "mention-bubble__content" }, [_c("span", { staticClass: "mention-bubble__icon", class: [_vm.icon, "mention-bubble__icon--".concat(_vm.avatarUrl ? "with-avatar" : "")], style: _vm.avatarUrl ? { backgroundImage: "url(".concat(_vm.avatarUrl, ")") } : null }), _c("span", { staticClass: "mention-bubble__title", attrs: { "role": "heading", "title": _vm.labelWithFallback } })]), _c("span", { staticClass: "mention-bubble__select", attrs: { "role": "none" } }, [_vm._v(_vm._s(_vm.mentionText))])])]);
72
+ return _c("span", { staticClass: "mention-bubble", class: { "mention-bubble--primary": _vm.primary }, attrs: { "contenteditable": "false" } }, [_c("span", { staticClass: "mention-bubble__wrapper" }, [_c("span", { staticClass: "mention-bubble__content" }, [_c("span", { staticClass: "mention-bubble__icon", class: [_vm.icon, `mention-bubble__icon--${_vm.avatarUrl ? "with-avatar" : ""}`], style: _vm.avatarUrl ? { backgroundImage: `url(${_vm.avatarUrl})` } : null }), _c("span", { staticClass: "mention-bubble__title", attrs: { "role": "heading", "title": _vm.labelWithFallback } })]), _c("span", { staticClass: "mention-bubble__select", attrs: { "role": "none" } }, [_vm._v(_vm._s(_vm.mentionText))])])]);
73
73
  };
74
74
  var _sfc_staticRenderFns = [];
75
75
  var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
@@ -86,9 +86,9 @@ const MENTION_SIMPLE = /(@[a-z0-9_\-@.']+)/.source;
86
86
  const MENTION_GUEST = /@&quot;guest\/[a-f0-9]+&quot;/.source;
87
87
  const MENTION_PREFIXED = /@&quot;(?:federated_)?(?:group|team|user){1}\/[a-z0-9_\-@.' /:]+&quot;/.source;
88
88
  const MENTION_WITH_SPACE = /@&quot;[a-z0-9_\-@.' ]+&quot;/.source;
89
- const MENTION_COMPLEX = "(".concat(MENTION_GUEST, "|").concat(MENTION_PREFIXED, "|").concat(MENTION_WITH_SPACE, ")");
90
- const USERID_REGEX = new RegExp("".concat(MENTION_START).concat(MENTION_SIMPLE), "gi");
91
- const USERID_REGEX_WITH_SPACE = new RegExp("".concat(MENTION_START).concat(MENTION_COMPLEX), "gi");
89
+ const MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`;
90
+ const USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, "gi");
91
+ const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, "gi");
92
92
  const richEditor = {
93
93
  props: {
94
94
  userData: {
@@ -139,11 +139,11 @@ const richEditor = {
139
139
  */
140
140
  genSelectTemplate(value) {
141
141
  if (typeof value === "undefined") {
142
- return "".concat(this.autocompleteTribute.current.collection.trigger).concat(this.autocompleteTribute.current.mentionText);
142
+ return `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`;
143
143
  }
144
144
  const data = this.userData[value];
145
145
  if (!data) {
146
- return [" ", "/", ":"].every((char) => !value.includes(char)) ? "@".concat(value) : '@"'.concat(value, '"');
146
+ return [" ", "/", ":"].every((char) => !value.includes(char)) ? `@${value}` : `@"${value}"`;
147
147
  }
148
148
  return this.renderComponentHtml(data, NcMentionBubble).replace(/[\n\t]/gmi, "");
149
149
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index-CC4ahXvG.cjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"labelWithFallback\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { getAvatarUrl } from '../../utils/getAvatarUrl.ts'\n\nexport default {\n\tname: 'NcMentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * @deprecated Use `label` instead\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticonUrl: {\n\t\t\ttype: [String, null],\n\t\t\tdefault: null,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\tif (this.iconUrl) {\n\t\t\t\treturn this.iconUrl\n\t\t\t}\n\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn !this.id.includes(' ') && !this.id.includes('/')\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t\t// Fallback to title for compatibility\n\t\tlabelWithFallback() {\n\t\t\treturn this.label || this.title\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-element-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-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: -100vw;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\toverflow: hidden;\n\t}\n}\n\n</style>\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport NcMentionBubble from '../../components/NcRichContenteditable/NcMentionBubble.vue'\nimport Linkify from '../../utils/Linkify.js'\n\nimport escapeHtml from 'escape-html'\nimport stripTags from 'striptags'\nimport Vue from 'vue'\n\n// Referenced from public function getMentions(): https://github.com/nextcloud/server/blob/master/lib/private/Comments/Comment.php\n// Beginning or whitespace. Uses positive lookahead (to work on MobileSafari <16.4)\nconst MENTION_START = /(?=[a-z0-9_\\-@.'])\\B/.source\n// Capturing groups like: @user-id, @\"guest/abc16def\", @\"federated_user/user-id\", @\"user-id with space\"\nconst MENTION_SIMPLE = /(@[a-z0-9_\\-@.']+)/.source\nconst MENTION_GUEST = /@&quot;guest\\/[a-f0-9]+&quot;/.source\nconst MENTION_PREFIXED = /@&quot;(?:federated_)?(?:group|team|user){1}\\/[a-z0-9_\\-@.' /:]+&quot;/.source\nconst MENTION_WITH_SPACE = /@&quot;[a-z0-9_\\-@.' ]+&quot;/.source\nconst MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`\n// Concatenated regular expressions\nexport const USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, 'gi')\n\nexport default {\n\tprops: {\n\t\tuserData: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Convert the value string to html for the inner content\n\t\t *\n\t\t * @param {string} value the content without html\n\t\t * @return {string} rendered html\n\t\t */\n\t\trenderContent(value) {\n\t\t\t// Sanitize the value prop\n\t\t\tconst sanitizedValue = escapeHtml(value)\n\n\t\t\t// Extract all the userIds\n\t\t\tconst splitValue = sanitizedValue.split(USERID_REGEX)\n\t\t\t\t.map(part => part.split(USERID_REGEX_WITH_SPACE)).flat()\n\n\t\t\t// Replace userIds by html\n\t\t\treturn splitValue\n\t\t\t\t.map(part => {\n\t\t\t\t\t// When splitting, the string is always putting the userIds\n\t\t\t\t\t// on the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\t// This part doesn't contain a mention, let's make sure links are parsed\n\t\t\t\t\t\treturn Linkify(part)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the leading @ and all \"\n\t\t\t\t\tconst id = part.slice(1).replace(/&quot;/gi, '')\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&amp;/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @return {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content\n\t\t\t// Consecutive spaces in HTML tags should collapse\n\t\t\ttext = text.replace(/>\\s+</g, '><')\n\t\t\t// Replace break lines with new lines\n\t\t\ttext = text.replace(/<br>/gmi, '\\n')\n\t\t\t// Replace some html special characters\n\t\t\ttext = text.replace(/&nbsp;/gmi, ' ')\n\t\t\ttext = text.replace(/&amp;/gmi, '&')\n\n\t\t\t// Convert the mentions to text only\n\t\t\t// first we replace divs with new lines\n\t\t\ttext = text.replace(/<\\/div>/gmi, '\\n')\n\t\t\t// then we remove all leftover html\n\t\t\ttext = stripTags(text, '<div>')\n\t\t\ttext = stripTags(text)\n\n\t\t\treturn text\n\t\t},\n\n\t\t/**\n\t\t * Generate an autocompletion popup entry template\n\t\t *\n\t\t * @param {string} value the value to match against the userData\n\t\t * @return {string}\n\t\t */\n\t\tgenSelectTemplate(value) {\n\t\t\t// The value returned by this function will replace the trigger '@'\n\t\t\t// and the search text, so when there is no match we simply return\n\t\t\t// '@' and the text.\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\treturn `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`\n\t\t\t}\n\n\t\t\tconst data = this.userData[value]\n\n\t\t\t// Fallback to @mention in case no data matches\n\t\t\tif (!data) {\n\t\t\t\t// return @value if matches MENTION_SIMPLE, @\"value\" otherwise\n\t\t\t\treturn [' ', '/', ':'].every(char => !value.includes(char))\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip of new lines and tabs\n\t\t\treturn this.renderComponentHtml(data, NcMentionBubble).replace(/[\\n\\t]/gmi, '')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {object} propsData the props to pass to the component\n\t\t * @param {object} component the component to render\n\t\t * @return {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(propsData, component) {\n\t\t\tconst View = Vue.extend(component)\n\t\t\tconst Item = new View({\n\t\t\t\tpropsData,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst wrapper = document.createElement('div')\n\t\t\tconst mount = document.createElement('div')\n\t\t\twrapper.style.display = 'none'\n\t\t\twrapper.appendChild(mount)\n\t\t\tdocument.body.appendChild(wrapper)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.$mount(mount)\n\t\t\tconst renderedHtml = wrapper.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.$destroy()\n\t\t\twrapper.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n"],"names":["getAvatarUrl","escapeHtml","Linkify","stripTags","Vue"],"mappings":"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"}
1
+ {"version":3,"file":"index-DLGLmjm4.cjs","sources":["../../src/components/NcRichContenteditable/NcMentionBubble.vue","../../src/mixins/richEditor/index.js"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<span :class=\"{'mention-bubble--primary': primary}\"\n\t\tclass=\"mention-bubble\"\n\t\tcontenteditable=\"false\">\n\t\t<span class=\"mention-bubble__wrapper\">\n\t\t\t<span class=\"mention-bubble__content\">\n\t\t\t\t<!-- Avatar or icon -->\n\t\t\t\t<span :class=\"[icon, `mention-bubble__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null\"\n\t\t\t\t\tclass=\"mention-bubble__icon\" />\n\n\t\t\t\t<!-- Title -->\n\t\t\t\t<span role=\"heading\" class=\"mention-bubble__title\" :title=\"labelWithFallback\" />\n\t\t\t</span>\n\n\t\t\t<!-- Selectable text for copy/paste -->\n\t\t\t<span role=\"none\" class=\"mention-bubble__select\">{{ mentionText }}</span>\n\t\t</span>\n\t</span>\n</template>\n\n<script>\nimport { getAvatarUrl } from '../../utils/getAvatarUrl.ts'\n\nexport default {\n\tname: 'NcMentionBubble',\n\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * @deprecated Use `label` instead\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticonUrl: {\n\t\t\ttype: [String, null],\n\t\t\tdefault: null,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\tif (this.iconUrl) {\n\t\t\t\treturn this.iconUrl\n\t\t\t}\n\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\tmentionText() {\n\t\t\treturn !this.id.includes(' ') && !this.id.includes('/')\n\t\t\t\t? `@${this.id}`\n\t\t\t\t: `@\"${this.id}\"`\n\t\t},\n\t\t// Fallback to title for compatibility\n\t\tlabelWithFallback() {\n\t\t\treturn this.label || this.title\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$bubble-height: 20px;\n$bubble-max-width: 150px;\n$bubble-padding: 2px;\n$bubble-avatar-size: $bubble-height - 2 * $bubble-padding;\n\n.mention-bubble {\n\t&--primary &__content {\n\t\tcolor: var(--color-primary-element-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&__wrapper {\n\t\tmax-width: $bubble-max-width;\n\t\t// Align with text\n\t\theight: $bubble-height - $bubble-padding;\n\t\tvertical-align: text-bottom;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\toverflow: hidden;\n\t\talign-items: center;\n\t\tmax-width: 100%;\n\t\theight: $bubble-height ;\n\t\t-webkit-user-select: none;\n\t\tuser-select: none;\n\t\tpadding-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: -100vw;\n\t\twidth: 1px;\n\t\theight: 1px;\n\t\toverflow: hidden;\n\t}\n}\n\n</style>\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport NcMentionBubble from '../../components/NcRichContenteditable/NcMentionBubble.vue'\nimport Linkify from '../../utils/Linkify.js'\n\nimport escapeHtml from 'escape-html'\nimport stripTags from 'striptags'\nimport Vue from 'vue'\n\n// Referenced from public function getMentions(): https://github.com/nextcloud/server/blob/master/lib/private/Comments/Comment.php\n// Beginning or whitespace. Uses positive lookahead (to work on MobileSafari <16.4)\nconst MENTION_START = /(?=[a-z0-9_\\-@.'])\\B/.source\n// Capturing groups like: @user-id, @\"guest/abc16def\", @\"federated_user/user-id\", @\"user-id with space\"\nconst MENTION_SIMPLE = /(@[a-z0-9_\\-@.']+)/.source\nconst MENTION_GUEST = /@&quot;guest\\/[a-f0-9]+&quot;/.source\nconst MENTION_PREFIXED = /@&quot;(?:federated_)?(?:group|team|user){1}\\/[a-z0-9_\\-@.' /:]+&quot;/.source\nconst MENTION_WITH_SPACE = /@&quot;[a-z0-9_\\-@.' ]+&quot;/.source\nconst MENTION_COMPLEX = `(${MENTION_GUEST}|${MENTION_PREFIXED}|${MENTION_WITH_SPACE})`\n// Concatenated regular expressions\nexport const USERID_REGEX = new RegExp(`${MENTION_START}${MENTION_SIMPLE}`, 'gi')\nexport const USERID_REGEX_WITH_SPACE = new RegExp(`${MENTION_START}${MENTION_COMPLEX}`, 'gi')\n\nexport default {\n\tprops: {\n\t\tuserData: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Convert the value string to html for the inner content\n\t\t *\n\t\t * @param {string} value the content without html\n\t\t * @return {string} rendered html\n\t\t */\n\t\trenderContent(value) {\n\t\t\t// Sanitize the value prop\n\t\t\tconst sanitizedValue = escapeHtml(value)\n\n\t\t\t// Extract all the userIds\n\t\t\tconst splitValue = sanitizedValue.split(USERID_REGEX)\n\t\t\t\t.map(part => part.split(USERID_REGEX_WITH_SPACE)).flat()\n\n\t\t\t// Replace userIds by html\n\t\t\treturn splitValue\n\t\t\t\t.map(part => {\n\t\t\t\t\t// When splitting, the string is always putting the userIds\n\t\t\t\t\t// on the uneven indexes. We only want to generate the mentions html\n\t\t\t\t\tif (!part.startsWith('@')) {\n\t\t\t\t\t\t// This part doesn't contain a mention, let's make sure links are parsed\n\t\t\t\t\t\treturn Linkify(part)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Extracting the id, nuking the leading @ and all \"\n\t\t\t\t\tconst id = part.slice(1).replace(/&quot;/gi, '')\n\t\t\t\t\t// Compiling template and prepend with the space we removed during the split\n\t\t\t\t\treturn this.genSelectTemplate(id)\n\t\t\t\t})\n\t\t\t\t.join('')\n\t\t\t\t.replace(/\\n/gmi, '<br>')\n\t\t\t\t.replace(/&amp;/gmi, '&')\n\t\t},\n\n\t\t/**\n\t\t * Convert the innerHtml content to a string with mentions as text\n\t\t *\n\t\t * @param {string} content the content without html\n\t\t * @return {string}\n\t\t */\n\t\tparseContent(content) {\n\t\t\tlet text = content\n\t\t\t// Consecutive spaces in HTML tags should collapse\n\t\t\ttext = text.replace(/>\\s+</g, '><')\n\t\t\t// Replace break lines with new lines\n\t\t\ttext = text.replace(/<br>/gmi, '\\n')\n\t\t\t// Replace some html special characters\n\t\t\ttext = text.replace(/&nbsp;/gmi, ' ')\n\t\t\ttext = text.replace(/&amp;/gmi, '&')\n\n\t\t\t// Convert the mentions to text only\n\t\t\t// first we replace divs with new lines\n\t\t\ttext = text.replace(/<\\/div>/gmi, '\\n')\n\t\t\t// then we remove all leftover html\n\t\t\ttext = stripTags(text, '<div>')\n\t\t\ttext = stripTags(text)\n\n\t\t\treturn text\n\t\t},\n\n\t\t/**\n\t\t * Generate an autocompletion popup entry template\n\t\t *\n\t\t * @param {string} value the value to match against the userData\n\t\t * @return {string}\n\t\t */\n\t\tgenSelectTemplate(value) {\n\t\t\t// The value returned by this function will replace the trigger '@'\n\t\t\t// and the search text, so when there is no match we simply return\n\t\t\t// '@' and the text.\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\treturn `${this.autocompleteTribute.current.collection.trigger}${this.autocompleteTribute.current.mentionText}`\n\t\t\t}\n\n\t\t\tconst data = this.userData[value]\n\n\t\t\t// Fallback to @mention in case no data matches\n\t\t\tif (!data) {\n\t\t\t\t// return @value if matches MENTION_SIMPLE, @\"value\" otherwise\n\t\t\t\treturn [' ', '/', ':'].every(char => !value.includes(char))\n\t\t\t\t\t? `@${value}`\n\t\t\t\t\t: `@\"${value}\"`\n\t\t\t}\n\n\t\t\t// Return template and make sure we strip of new lines and tabs\n\t\t\treturn this.renderComponentHtml(data, NcMentionBubble).replace(/[\\n\\t]/gmi, '')\n\t\t},\n\n\t\t/**\n\t\t * Render a component and return its html content\n\t\t *\n\t\t * @param {object} propsData the props to pass to the component\n\t\t * @param {object} component the component to render\n\t\t * @return {string} the rendered html\n\t\t */\n\t\trenderComponentHtml(propsData, component) {\n\t\t\tconst View = Vue.extend(component)\n\t\t\tconst Item = new View({\n\t\t\t\tpropsData,\n\t\t\t})\n\n\t\t\t// Prepare mountpoint\n\t\t\tconst wrapper = document.createElement('div')\n\t\t\tconst mount = document.createElement('div')\n\t\t\twrapper.style.display = 'none'\n\t\t\twrapper.appendChild(mount)\n\t\t\tdocument.body.appendChild(wrapper)\n\n\t\t\t// Mount and get raw html\n\t\t\tItem.$mount(mount)\n\t\t\tconst renderedHtml = wrapper.innerHTML\n\n\t\t\t// Destroy\n\t\t\tItem.$destroy()\n\t\t\twrapper.remove()\n\n\t\t\treturn renderedHtml\n\t\t},\n\t},\n}\n"],"names":["getAvatarUrl","escapeHtml","Linkify","stripTags","Vue"],"mappings":"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"}