@nextcloud/vue 8.39.0 → 8.41.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 (628) hide show
  1. package/CHANGELOG.md +99 -77
  2. package/dist/Components/NcActionButton.cjs +1 -1
  3. package/dist/Components/NcActionButton.mjs +1 -1
  4. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  5. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  6. package/dist/Components/NcActionCheckbox.cjs +1 -1
  7. package/dist/Components/NcActionCheckbox.mjs +1 -1
  8. package/dist/Components/NcActionInput.cjs +1 -1
  9. package/dist/Components/NcActionInput.mjs +1 -1
  10. package/dist/Components/NcActionLink.cjs +1 -1
  11. package/dist/Components/NcActionLink.mjs +1 -1
  12. package/dist/Components/NcActionRadio.cjs +1 -1
  13. package/dist/Components/NcActionRadio.mjs +1 -1
  14. package/dist/Components/NcActionRouter.cjs +1 -1
  15. package/dist/Components/NcActionRouter.mjs +1 -1
  16. package/dist/Components/NcActionText.cjs +1 -1
  17. package/dist/Components/NcActionText.mjs +1 -1
  18. package/dist/Components/NcActionTextEditable.cjs +1 -1
  19. package/dist/Components/NcActionTextEditable.mjs +1 -1
  20. package/dist/Components/NcActions.cjs +1 -1
  21. package/dist/Components/NcActions.mjs +1 -1
  22. package/dist/Components/NcAppContent.cjs +1 -1
  23. package/dist/Components/NcAppContent.mjs +1 -1
  24. package/dist/Components/NcAppNavigation.cjs +1 -1
  25. package/dist/Components/NcAppNavigation.mjs +1 -1
  26. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  27. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  28. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  29. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  30. package/dist/Components/NcAppNavigationNew.cjs +1 -1
  31. package/dist/Components/NcAppNavigationNew.mjs +1 -1
  32. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  33. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  34. package/dist/Components/NcAppNavigationSearch.cjs +1 -1
  35. package/dist/Components/NcAppNavigationSearch.mjs +1 -1
  36. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  37. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  38. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  39. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  40. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  41. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  42. package/dist/Components/NcAppSettingsSection.cjs +1 -1
  43. package/dist/Components/NcAppSettingsSection.mjs +1 -1
  44. package/dist/Components/NcAppSettingsSectionShortcuts.cjs +1 -1
  45. package/dist/Components/NcAppSettingsSectionShortcuts.mjs +1 -1
  46. package/dist/Components/NcAppSettingsShortcutsSection.cjs +1 -1
  47. package/dist/Components/NcAppSettingsShortcutsSection.mjs +1 -1
  48. package/dist/Components/NcAppSidebar.cjs +1 -1
  49. package/dist/Components/NcAppSidebar.mjs +1 -1
  50. package/dist/Components/NcAssistantButton.cjs +1 -1
  51. package/dist/Components/NcAssistantButton.mjs +1 -1
  52. package/dist/Components/NcAssistantContent.cjs +4 -4
  53. package/dist/Components/NcAssistantContent.mjs +4 -4
  54. package/dist/Components/NcAssistantIcon.cjs +1 -1
  55. package/dist/Components/NcAssistantIcon.mjs +1 -1
  56. package/dist/Components/NcAvatar.cjs +1 -1
  57. package/dist/Components/NcAvatar.mjs +1 -1
  58. package/dist/Components/NcBlurHash.cjs +1 -1
  59. package/dist/Components/NcBlurHash.mjs +1 -1
  60. package/dist/Components/NcBreadcrumb.cjs +1 -1
  61. package/dist/Components/NcBreadcrumb.mjs +1 -1
  62. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  63. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  64. package/dist/Components/NcButton.cjs +1 -1
  65. package/dist/Components/NcButton.mjs +1 -1
  66. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  67. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  68. package/dist/Components/NcChip.cjs +4 -4
  69. package/dist/Components/NcChip.mjs +4 -4
  70. package/dist/Components/NcCollectionList.cjs +1 -1
  71. package/dist/Components/NcCollectionList.mjs +1 -1
  72. package/dist/Components/NcColorPicker.cjs +1 -1
  73. package/dist/Components/NcColorPicker.mjs +1 -1
  74. package/dist/Components/NcContent.cjs +1 -1
  75. package/dist/Components/NcContent.mjs +1 -1
  76. package/dist/Components/NcDashboardWidget.cjs +1 -1
  77. package/dist/Components/NcDashboardWidget.mjs +1 -1
  78. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  79. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  80. package/dist/Components/NcDateTimePicker.cjs +6 -6
  81. package/dist/Components/NcDateTimePicker.mjs +6 -6
  82. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  83. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  84. package/dist/Components/NcDialog.cjs +1 -1
  85. package/dist/Components/NcDialog.mjs +1 -1
  86. package/dist/Components/NcDialogButton.cjs +1 -1
  87. package/dist/Components/NcDialogButton.mjs +1 -1
  88. package/dist/Components/NcEmojiPicker.cjs +1 -1
  89. package/dist/Components/NcEmojiPicker.mjs +1 -1
  90. package/dist/Components/NcEmptyContent.cjs +2 -2
  91. package/dist/Components/NcEmptyContent.cjs.map +1 -1
  92. package/dist/Components/NcEmptyContent.mjs +2 -2
  93. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  94. package/dist/Components/NcFilePicker.cjs +1 -1
  95. package/dist/Components/NcFilePicker.mjs +1 -1
  96. package/dist/Components/NcFormBox.cjs +1 -1
  97. package/dist/Components/NcFormBox.mjs +1 -1
  98. package/dist/Components/NcFormBoxButton.cjs +1 -1
  99. package/dist/Components/NcFormBoxButton.mjs +1 -1
  100. package/dist/Components/NcFormBoxCopyButton.cjs +1 -1
  101. package/dist/Components/NcFormBoxCopyButton.mjs +1 -1
  102. package/dist/Components/NcFormBoxSwitch.cjs +1 -1
  103. package/dist/Components/NcFormBoxSwitch.mjs +1 -1
  104. package/dist/Components/NcFormGroup.cjs +1 -1
  105. package/dist/Components/NcFormGroup.mjs +1 -1
  106. package/dist/Components/NcGuestContent.cjs +3 -9
  107. package/dist/Components/NcGuestContent.cjs.map +1 -1
  108. package/dist/Components/NcGuestContent.mjs +3 -9
  109. package/dist/Components/NcGuestContent.mjs.map +1 -1
  110. package/dist/Components/NcHeaderButton.cjs +1 -1
  111. package/dist/Components/NcHeaderButton.mjs +1 -1
  112. package/dist/Components/NcHeaderMenu.cjs +1 -1
  113. package/dist/Components/NcHeaderMenu.mjs +1 -1
  114. package/dist/Components/NcHotkey.cjs +1 -1
  115. package/dist/Components/NcHotkey.mjs +1 -1
  116. package/dist/Components/NcHotkeyList.cjs +1 -1
  117. package/dist/Components/NcHotkeyList.mjs +1 -1
  118. package/dist/Components/NcInputField.cjs +1 -1
  119. package/dist/Components/NcInputField.mjs +1 -1
  120. package/dist/Components/NcKbd.cjs +1 -1
  121. package/dist/Components/NcKbd.mjs +1 -1
  122. package/dist/Components/NcListItem.cjs +1 -1
  123. package/dist/Components/NcListItem.mjs +1 -1
  124. package/dist/Components/NcListItemIcon.cjs +1 -1
  125. package/dist/Components/NcListItemIcon.mjs +1 -1
  126. package/dist/Components/NcModal.cjs +5 -5
  127. package/dist/Components/NcModal.mjs +5 -5
  128. package/dist/Components/NcNoteCard.cjs +3 -3
  129. package/dist/Components/NcNoteCard.cjs.map +1 -1
  130. package/dist/Components/NcNoteCard.mjs +3 -3
  131. package/dist/Components/NcNoteCard.mjs.map +1 -1
  132. package/dist/Components/NcPasswordField.cjs +1 -1
  133. package/dist/Components/NcPasswordField.mjs +1 -1
  134. package/dist/Components/NcPopover.cjs +1 -1
  135. package/dist/Components/NcPopover.mjs +1 -1
  136. package/dist/Components/NcProfileHoverCard.cjs +4 -0
  137. package/dist/Components/NcProfileHoverCard.cjs.map +1 -0
  138. package/dist/Components/NcProfileHoverCard.mjs +5 -0
  139. package/dist/Components/NcProfileHoverCard.mjs.map +1 -0
  140. package/dist/Components/NcRadioGroup.cjs +1 -1
  141. package/dist/Components/NcRadioGroup.mjs +1 -1
  142. package/dist/Components/NcRadioGroupButton.cjs +1 -1
  143. package/dist/Components/NcRadioGroupButton.mjs +1 -1
  144. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  145. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  146. package/dist/Components/NcRichContenteditable.cjs +1 -1
  147. package/dist/Components/NcRichContenteditable.mjs +1 -1
  148. package/dist/Components/NcRichText.cjs +9 -7
  149. package/dist/Components/NcRichText.cjs.map +1 -1
  150. package/dist/Components/NcRichText.mjs +15 -13
  151. package/dist/Components/NcRichText.mjs.map +1 -1
  152. package/dist/Components/NcSelect.cjs +1 -1
  153. package/dist/Components/NcSelect.mjs +1 -1
  154. package/dist/Components/NcSelectTags.cjs +1 -1
  155. package/dist/Components/NcSelectTags.mjs +1 -1
  156. package/dist/Components/NcSelectUsers.cjs +1 -1
  157. package/dist/Components/NcSelectUsers.mjs +1 -1
  158. package/dist/Components/NcSettingsInputText.cjs +1 -1
  159. package/dist/Components/NcSettingsInputText.mjs +1 -1
  160. package/dist/Components/NcSettingsSection.cjs +1 -1
  161. package/dist/Components/NcSettingsSection.mjs +1 -1
  162. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  163. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  164. package/dist/Components/NcTextArea.cjs +1 -1
  165. package/dist/Components/NcTextArea.mjs +1 -1
  166. package/dist/Components/NcTextField.cjs +1 -1
  167. package/dist/Components/NcTextField.mjs +1 -1
  168. package/dist/Components/NcTimezonePicker.cjs +1 -1
  169. package/dist/Components/NcTimezonePicker.mjs +1 -1
  170. package/dist/Components/NcUserBubble.cjs +1 -1
  171. package/dist/Components/NcUserBubble.mjs +1 -1
  172. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  173. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  174. package/dist/Composables/useFormatDateTime.cjs +11 -5
  175. package/dist/Composables/useFormatDateTime.cjs.map +1 -1
  176. package/dist/Composables/useFormatDateTime.mjs +11 -5
  177. package/dist/Composables/useFormatDateTime.mjs.map +1 -1
  178. package/dist/Functions/reference.cjs +11 -10
  179. package/dist/Functions/reference.cjs.map +1 -1
  180. package/dist/Functions/reference.mjs +7 -6
  181. package/dist/Functions/reference.mjs.map +1 -1
  182. package/dist/Functions/registerReference.cjs +6 -5
  183. package/dist/Functions/registerReference.cjs.map +1 -1
  184. package/dist/Functions/registerReference.mjs +6 -5
  185. package/dist/Functions/registerReference.mjs.map +1 -1
  186. package/dist/Functions/usernameToColor.cjs +1 -1
  187. package/dist/Functions/usernameToColor.mjs +1 -1
  188. package/dist/assets/{NcActionButton-CjKx3679.css → NcActionButton-CwGeOQFe.css} +3 -2
  189. package/dist/assets/{NcActionCheckbox-CzUElysW.css → NcActionCheckbox-DG9SyAAy.css} +3 -2
  190. package/dist/assets/{NcActionInput-CPu4Btyq.css → NcActionInput-ESkvZDNh.css} +66 -66
  191. package/dist/assets/{NcActionLink-Bt-73iBm.css → NcActionLink-CB74Y-9f.css} +3 -2
  192. package/dist/assets/{NcActionRadio-CROsOVZe.css → NcActionRadio-4a1cWuYb.css} +3 -2
  193. package/dist/assets/{NcActionRouter-Bpv5Ywxq.css → NcActionRouter-CyyaRzft.css} +3 -2
  194. package/dist/assets/{NcActionText-IMOkntPi.css → NcActionText-BMO_HKvg.css} +3 -2
  195. package/dist/assets/{NcActionTextEditable-AuLw5QVP.css → NcActionTextEditable-DPpx-OUr.css} +66 -66
  196. package/dist/assets/{NcAppContent-CKJUs-ZZ.css → NcAppContent-DyFYmhvX.css} +20 -20
  197. package/dist/assets/{NcAppNavigation-DfsSMVgo.css → NcAppNavigation-B-X0bAXx.css} +14 -16
  198. package/dist/assets/{NcAppNavigationCaption-C7GtQb_y.css → NcAppNavigationCaption-NX44RnkW.css} +8 -8
  199. package/dist/assets/{NcAppNavigationItem-CksjxOVP.css → NcAppNavigationItem-D4T7UQqz.css} +8 -7
  200. package/dist/assets/{NcAppNavigationNewItem-Dn_iz3og.css → NcAppNavigationNewItem-CtObIA-e.css} +4 -3
  201. package/dist/assets/{NcAppNavigationSettings-2Wh1E3Hq.css → NcAppNavigationSettings-DGkLlCyq.css} +11 -11
  202. package/dist/assets/{NcAppNavigationToggle-DgwbZOWc.css → NcAppNavigationToggle-D1K2TRZ-.css} +3 -3
  203. package/dist/assets/{NcAppSettingsDialog-DRyLeR3T.css → NcAppSettingsDialog-Cu7QAD8V.css} +34 -34
  204. package/dist/assets/{NcAppSettingsSection-Yg4NYCih.css → NcAppSettingsSection-DU9FOAnJ.css} +7 -7
  205. package/dist/assets/{NcAppSettingsShortcutsSection-C_DMnyUy.css → NcAppSettingsShortcutsSection-D-FcvAWd.css} +3 -3
  206. package/dist/assets/{NcAppSidebar-B1bkEVQA.css → NcAppSidebar-DPorFaqk.css} +73 -73
  207. package/dist/assets/{NcAssistantButton-BNEXluSq.css → NcAssistantButton-C6d88UPB.css} +9 -9
  208. package/dist/assets/{NcAssistantContent-DrswfkY-.css → NcAssistantContent-DTHxHZ09.css} +3 -3
  209. package/dist/assets/{NcAssistantIcon-CdtR1Psu.css → NcAssistantIcon-BV1uZpAb.css} +4 -4
  210. package/dist/assets/{NcAvatar-CK9ipsjF.css → NcAvatar-BdHHFwV3.css} +41 -26
  211. package/dist/assets/{NcBlurHash-CT92vFpc.css → NcBlurHash-Zj5Z9WKv.css} +2 -2
  212. package/dist/assets/{NcBreadcrumb-0xB19h6f.css → NcBreadcrumb-DyXnSA6l.css} +16 -16
  213. package/dist/assets/{NcButton-o3s2D3Dl.css → NcButton-C-bkSL_r.css} +49 -49
  214. package/dist/assets/{NcCheckboxRadioSwitch-BojbloxL.css → NcCheckboxRadioSwitch-DCSWiHVq.css} +53 -51
  215. package/dist/assets/{NcColorPicker-CCqpXoam.css → NcColorPicker-DjmfbD2K.css} +32 -32
  216. package/dist/assets/{NcContent-URJTZQq1.css → NcContent-rDfulBCh.css} +12 -13
  217. package/dist/assets/{NcDateTimePicker-DknygOcQ.css → NcDateTimePicker-CD0ZGUBz.css} +15 -15
  218. package/dist/assets/{NcEmptyContent-CUFc_Dds.css → NcEmptyContent-DAR2ze6H.css} +10 -10
  219. package/dist/assets/{NcFilePicker-BokX813z.css → NcFilePicker-BjFpDu4R.css} +1 -1
  220. package/dist/assets/{NcFormBox-9NY7pxez.css → NcFormBox-DoEpsPVV.css} +11 -11
  221. package/dist/assets/{NcFormBoxButton-BlS280R1.css → NcFormBoxButton-CFtdjCfy.css} +2 -2
  222. package/dist/assets/{NcFormBoxItem-BdFKDYqL.css → NcFormBoxItem-C918I2qS.css} +17 -13
  223. package/dist/assets/{NcFormBoxSwitch-CXtmxIfB.css → NcFormBoxSwitch-C4cbxBBA.css} +2 -2
  224. package/dist/assets/{NcFormGroup-uKT9TTrz.css → NcFormGroup-CUFSO_ru.css} +8 -8
  225. package/dist/assets/{NcGuestContent-BkegjnLL.css → NcGuestContent-27hnc8yQ.css} +3 -3
  226. package/dist/assets/{NcHotkey-9k8cxWO5.css → NcHotkey-D_InvA0N.css} +8 -8
  227. package/dist/assets/{NcHotkeyList-CNWXE5jg.css → NcHotkeyList-XE5Xd_iE.css} +3 -3
  228. package/dist/assets/{NcIconToggleSwitch-sDZkWAmc.css → NcIconToggleSwitch-DO_sv5_o.css} +4 -4
  229. package/dist/assets/{NcInputConfirmCancel-Brp9ZfY5.css → NcInputConfirmCancel-DRZviUxz.css} +8 -8
  230. package/dist/assets/{NcInputField-Cc-l-KGd.css → NcInputField-KvlF4emB.css} +46 -46
  231. package/dist/assets/{NcKbd-8TOrFNAw.css → NcKbd-IflT8hS_.css} +3 -3
  232. package/dist/assets/{NcListItem-DP1egljH.css → NcListItem-3a4Lafwa.css} +47 -47
  233. package/dist/assets/{NcNoteCard-CwNXZ4vV.css → NcNoteCard-C4SocW9G.css} +13 -13
  234. package/dist/assets/{NcPopover-CJgeCuwk.css → NcPopover-nBCZ8J9Q.css} +13 -13
  235. package/dist/assets/NcProfileHoverCard-D3V682nS.css +340 -0
  236. package/dist/assets/{NcRadioGroup-Dss0ok3g.css → NcRadioGroup-Bq7x-xEK.css} +2 -2
  237. package/dist/assets/{NcRadioGroupButton-CMOW3Q4J.css → NcRadioGroupButton-i11p0wHX.css} +14 -14
  238. package/dist/assets/NcReferenceWidget-Cg4xOL_8.css +150 -0
  239. package/dist/assets/{NcRelatedResourcesPanel-CTpqdDL9.css → NcRelatedResourcesPanel-D5DxWJPc.css} +30 -30
  240. package/dist/assets/{NcRichContenteditable-DwS6PNCv.css → NcRichContenteditable-DRPzKa4Z.css} +29 -29
  241. package/dist/assets/{NcRichText-Cp_5tfBy.css → NcRichText-D0xtzoWq.css} +91 -91
  242. package/dist/assets/{NcSettingsSection-D_qeKnRb.css → NcSettingsSection-Fyy2lFk_.css} +9 -9
  243. package/dist/assets/{NcTextArea-BtG5_qHD.css → NcTextArea-BMPUvHVL.css} +28 -28
  244. package/dist/assets/{autolink-KPdaBewQ.css → autolink-CEziQYgN.css} +3 -3
  245. package/dist/assets/{referencePickerModal-CGtNx7ew.css → referencePickerModal-0oYth4rX.css} +0 -114
  246. package/dist/chunks/DockRight-B0D52yCO.mjs +38 -0
  247. package/dist/chunks/DockRight-B0D52yCO.mjs.map +1 -0
  248. package/dist/chunks/DockRight-CXafXJaH.cjs +37 -0
  249. package/dist/chunks/DockRight-CXafXJaH.cjs.map +1 -0
  250. package/dist/chunks/{NcActionButton-CiYel4_C.cjs → NcActionButton-B1jvJWjl.cjs} +2 -2
  251. package/dist/chunks/{NcActionButton-CiYel4_C.cjs.map → NcActionButton-B1jvJWjl.cjs.map} +1 -1
  252. package/dist/chunks/{NcActionButton-K4jUGMlW.mjs → NcActionButton-D7uypboC.mjs} +2 -2
  253. package/dist/chunks/{NcActionButton-K4jUGMlW.mjs.map → NcActionButton-D7uypboC.mjs.map} +1 -1
  254. package/dist/chunks/{NcActionButtonGroup-B95wg_Q6.mjs → NcActionButtonGroup-C3eUBbt4.mjs} +2 -2
  255. package/dist/chunks/{NcActionButtonGroup-B95wg_Q6.mjs.map → NcActionButtonGroup-C3eUBbt4.mjs.map} +1 -1
  256. package/dist/chunks/{NcActionButtonGroup-CFGCmzTM.cjs → NcActionButtonGroup-CsOhQH6p.cjs} +2 -2
  257. package/dist/chunks/{NcActionButtonGroup-CFGCmzTM.cjs.map → NcActionButtonGroup-CsOhQH6p.cjs.map} +1 -1
  258. package/dist/chunks/{NcActionCheckbox-BGCUJhg_.cjs → NcActionCheckbox-B3vUOSeb.cjs} +2 -2
  259. package/dist/chunks/{NcActionCheckbox-BGCUJhg_.cjs.map → NcActionCheckbox-B3vUOSeb.cjs.map} +1 -1
  260. package/dist/chunks/{NcActionCheckbox-23CmleUh.mjs → NcActionCheckbox-Cbg5yktN.mjs} +2 -2
  261. package/dist/chunks/{NcActionCheckbox-23CmleUh.mjs.map → NcActionCheckbox-Cbg5yktN.mjs.map} +1 -1
  262. package/dist/chunks/{NcActionInput-CcA3XFGe.cjs → NcActionInput-C-j7Mehu.cjs} +7 -7
  263. package/dist/chunks/{NcActionInput-CcA3XFGe.cjs.map → NcActionInput-C-j7Mehu.cjs.map} +1 -1
  264. package/dist/chunks/{NcActionInput-BoKGVBu8.mjs → NcActionInput-CMLDgnF_.mjs} +7 -7
  265. package/dist/chunks/{NcActionInput-BoKGVBu8.mjs.map → NcActionInput-CMLDgnF_.mjs.map} +1 -1
  266. package/dist/chunks/{NcActionRadio-Dd3CsuiD.mjs → NcActionRadio-B2bgbBHw.mjs} +2 -2
  267. package/dist/chunks/{NcActionRadio-Dd3CsuiD.mjs.map → NcActionRadio-B2bgbBHw.mjs.map} +1 -1
  268. package/dist/chunks/{NcActionRadio-DbkRiTHX.cjs → NcActionRadio-BJSZBI9N.cjs} +2 -2
  269. package/dist/chunks/{NcActionRadio-DbkRiTHX.cjs.map → NcActionRadio-BJSZBI9N.cjs.map} +1 -1
  270. package/dist/chunks/{NcActionTextEditable-YqvZGY07.mjs → NcActionTextEditable-BykT5Byh.mjs} +3 -3
  271. package/dist/chunks/{NcActionTextEditable-BqJ5wONY.cjs.map → NcActionTextEditable-BykT5Byh.mjs.map} +1 -1
  272. package/dist/chunks/{NcActionTextEditable-BqJ5wONY.cjs → NcActionTextEditable-D4nvhJff.cjs} +3 -3
  273. package/dist/chunks/{NcActionTextEditable-YqvZGY07.mjs.map → NcActionTextEditable-D4nvhJff.cjs.map} +1 -1
  274. package/dist/chunks/{NcActions-DbPerbGE.mjs → NcActions-CX1MSord.mjs} +5 -5
  275. package/dist/chunks/{NcActions-DbPerbGE.mjs.map → NcActions-CX1MSord.mjs.map} +1 -1
  276. package/dist/chunks/{NcActions-D51W1X9v.cjs → NcActions-H0GXWVPU.cjs} +5 -5
  277. package/dist/chunks/{NcActions-D51W1X9v.cjs.map → NcActions-H0GXWVPU.cjs.map} +1 -1
  278. package/dist/chunks/{NcAppContent-DAN0qPID.mjs → NcAppContent-7ziLICwJ.mjs} +7 -8
  279. package/dist/chunks/NcAppContent-7ziLICwJ.mjs.map +1 -0
  280. package/dist/chunks/{NcAppContent-0hbQMH35.cjs → NcAppContent-BCYyp6nc.cjs} +9 -10
  281. package/dist/chunks/NcAppContent-BCYyp6nc.cjs.map +1 -0
  282. package/dist/chunks/{NcAppNavigation-DGufDPoi.mjs → NcAppNavigation-BDyBoXA1.mjs} +5 -5
  283. package/dist/chunks/{NcAppNavigation-DGufDPoi.mjs.map → NcAppNavigation-BDyBoXA1.mjs.map} +1 -1
  284. package/dist/chunks/{NcAppNavigation-DB3HqxPL.cjs → NcAppNavigation-BEor4mmi.cjs} +5 -5
  285. package/dist/chunks/{NcAppNavigation-DB3HqxPL.cjs.map → NcAppNavigation-BEor4mmi.cjs.map} +1 -1
  286. package/dist/chunks/{NcAppNavigationCaption-BZwuqQcm.mjs → NcAppNavigationCaption-DYdHKPv7.mjs} +4 -4
  287. package/dist/chunks/{NcAppNavigationCaption-WVnxSeIf.cjs.map → NcAppNavigationCaption-DYdHKPv7.mjs.map} +1 -1
  288. package/dist/chunks/{NcAppNavigationCaption-WVnxSeIf.cjs → NcAppNavigationCaption-drD-T2kk.cjs} +4 -4
  289. package/dist/chunks/{NcAppNavigationCaption-BZwuqQcm.mjs.map → NcAppNavigationCaption-drD-T2kk.cjs.map} +1 -1
  290. package/dist/chunks/{NcAppNavigationItem-0zDqIuUZ.cjs → NcAppNavigationItem-Ccy8CT50.cjs} +14 -14
  291. package/dist/chunks/{NcAppNavigationItem-0zDqIuUZ.cjs.map → NcAppNavigationItem-Ccy8CT50.cjs.map} +1 -1
  292. package/dist/chunks/{NcAppNavigationItem-CgYgq_nb.mjs → NcAppNavigationItem-Dg-2s6bP.mjs} +14 -14
  293. package/dist/chunks/{NcAppNavigationItem-CgYgq_nb.mjs.map → NcAppNavigationItem-Dg-2s6bP.mjs.map} +1 -1
  294. package/dist/chunks/{NcAppNavigationNew-DRdPwKOi.cjs → NcAppNavigationNew-4O3IsPEz.cjs} +2 -2
  295. package/dist/chunks/{NcAppNavigationNew-DRdPwKOi.cjs.map → NcAppNavigationNew-4O3IsPEz.cjs.map} +1 -1
  296. package/dist/chunks/{NcAppNavigationNew-BUVnumWS.mjs → NcAppNavigationNew-B8Ny1xKx.mjs} +2 -2
  297. package/dist/chunks/{NcAppNavigationNew-BUVnumWS.mjs.map → NcAppNavigationNew-B8Ny1xKx.mjs.map} +1 -1
  298. package/dist/chunks/{NcAppNavigationNewItem-Nz2HecTz.mjs → NcAppNavigationNewItem-BHnL_502.mjs} +3 -3
  299. package/dist/chunks/{NcAppNavigationNewItem-Nz2HecTz.mjs.map → NcAppNavigationNewItem-BHnL_502.mjs.map} +1 -1
  300. package/dist/chunks/{NcAppNavigationNewItem-SR744REn.cjs → NcAppNavigationNewItem-CW4Y7Hz9.cjs} +3 -3
  301. package/dist/chunks/{NcAppNavigationNewItem-SR744REn.cjs.map → NcAppNavigationNewItem-CW4Y7Hz9.cjs.map} +1 -1
  302. package/dist/chunks/{NcAppNavigationSearch-CzhlljAU.mjs → NcAppNavigationSearch-DIO0S2TU.mjs} +4 -4
  303. package/dist/chunks/{NcAppNavigationSearch-CzhlljAU.mjs.map → NcAppNavigationSearch-DIO0S2TU.mjs.map} +1 -1
  304. package/dist/chunks/{NcAppNavigationSearch-Czcwiin4.cjs → NcAppNavigationSearch-DZEqsYpD.cjs} +4 -4
  305. package/dist/chunks/{NcAppNavigationSearch-Czcwiin4.cjs.map → NcAppNavigationSearch-DZEqsYpD.cjs.map} +1 -1
  306. package/dist/chunks/{NcAppNavigationSettings-BaO-G72x.mjs → NcAppNavigationSettings-3jZKd9et.mjs} +7 -7
  307. package/dist/chunks/{NcAppNavigationSettings-BaO-G72x.mjs.map → NcAppNavigationSettings-3jZKd9et.mjs.map} +1 -1
  308. package/dist/chunks/{NcAppNavigationSettings-CotFe5aD.cjs → NcAppNavigationSettings-DpIprW-E.cjs} +7 -7
  309. package/dist/chunks/{NcAppNavigationSettings-CotFe5aD.cjs.map → NcAppNavigationSettings-DpIprW-E.cjs.map} +1 -1
  310. package/dist/chunks/{NcAppNavigationToggle-CkDMk16T.cjs → NcAppNavigationToggle-DFGuYTE8.cjs} +23 -52
  311. package/dist/chunks/NcAppNavigationToggle-DFGuYTE8.cjs.map +1 -0
  312. package/dist/chunks/{NcAppNavigationToggle-CXX1MFrf.mjs → NcAppNavigationToggle-DQZ2LWw4.mjs} +23 -52
  313. package/dist/chunks/NcAppNavigationToggle-DQZ2LWw4.mjs.map +1 -0
  314. package/dist/chunks/{NcAppSettingsDialog-Fa5DTfig.cjs → NcAppSettingsDialog-BoHdpAtG.cjs} +10 -10
  315. package/dist/chunks/NcAppSettingsDialog-BoHdpAtG.cjs.map +1 -0
  316. package/dist/chunks/{NcAppSettingsDialog-MxrFh-Ln.mjs → NcAppSettingsDialog-JB67n8yt.mjs} +10 -10
  317. package/dist/chunks/NcAppSettingsDialog-JB67n8yt.mjs.map +1 -0
  318. package/dist/chunks/{NcAppSettingsSection-BjQllLEA.mjs → NcAppSettingsSection-CsGyNFSh.mjs} +3 -3
  319. package/dist/chunks/{NcAppSettingsSection-BjQllLEA.mjs.map → NcAppSettingsSection-CsGyNFSh.mjs.map} +1 -1
  320. package/dist/chunks/{NcAppSettingsSection-CDLQ-AjK.cjs → NcAppSettingsSection-De6vkXOF.cjs} +3 -3
  321. package/dist/chunks/{NcAppSettingsSection-CDLQ-AjK.cjs.map → NcAppSettingsSection-De6vkXOF.cjs.map} +1 -1
  322. package/dist/chunks/{NcAppSettingsShortcutsSection-DgGU8-cF.cjs → NcAppSettingsShortcutsSection-Bli0fYba.cjs} +7 -7
  323. package/dist/chunks/NcAppSettingsShortcutsSection-Bli0fYba.cjs.map +1 -0
  324. package/dist/chunks/{NcAppSettingsShortcutsSection-DblUBaWP.mjs → NcAppSettingsShortcutsSection-BpUlnEbQ.mjs} +7 -7
  325. package/dist/chunks/NcAppSettingsShortcutsSection-BpUlnEbQ.mjs.map +1 -0
  326. package/dist/chunks/{NcAppSidebar-B7GuNZ4C.mjs → NcAppSidebar-B2F66PCc.mjs} +16 -48
  327. package/dist/chunks/NcAppSidebar-B2F66PCc.mjs.map +1 -0
  328. package/dist/chunks/{NcAppSidebar-DXEl0_ou.cjs → NcAppSidebar-CMHPTlTQ.cjs} +16 -48
  329. package/dist/chunks/NcAppSidebar-CMHPTlTQ.cjs.map +1 -0
  330. package/dist/chunks/{NcAssistantButton-B7BLAkwW.mjs → NcAssistantButton-D2gOuok6.mjs} +11 -11
  331. package/dist/chunks/{NcAssistantButton-B7BLAkwW.mjs.map → NcAssistantButton-D2gOuok6.mjs.map} +1 -1
  332. package/dist/chunks/{NcAssistantButton-XS3UdAKm.cjs → NcAssistantButton-po8AW9pX.cjs} +11 -11
  333. package/dist/chunks/{NcAssistantButton-XS3UdAKm.cjs.map → NcAssistantButton-po8AW9pX.cjs.map} +1 -1
  334. package/dist/chunks/{NcAssistantIcon-DCx6AaSW.mjs → NcAssistantIcon-CTTn1608.mjs} +6 -6
  335. package/dist/chunks/{NcAssistantIcon-DCx6AaSW.mjs.map → NcAssistantIcon-CTTn1608.mjs.map} +1 -1
  336. package/dist/chunks/{NcAssistantIcon-CD5mu9O1.cjs → NcAssistantIcon-D_1fcbQU.cjs} +6 -6
  337. package/dist/chunks/{NcAssistantIcon-CD5mu9O1.cjs.map → NcAssistantIcon-D_1fcbQU.cjs.map} +1 -1
  338. package/dist/chunks/{NcAvatar-D09ZAgeJ.cjs → NcAvatar-BbR_mZyT.cjs} +126 -21
  339. package/dist/chunks/NcAvatar-BbR_mZyT.cjs.map +1 -0
  340. package/dist/chunks/{NcAvatar-DkAX4nqq.mjs → NcAvatar-C1ty7wsG.mjs} +125 -21
  341. package/dist/chunks/NcAvatar-C1ty7wsG.mjs.map +1 -0
  342. package/dist/chunks/{NcBlurHash-D0wcwBet.cjs → NcBlurHash-CXPnoVsM.cjs} +4 -4
  343. package/dist/chunks/{NcBlurHash-D0wcwBet.cjs.map → NcBlurHash-CXPnoVsM.cjs.map} +1 -1
  344. package/dist/chunks/{NcBlurHash-KSj0HXbX.mjs → NcBlurHash-DKfLn7BC.mjs} +4 -4
  345. package/dist/chunks/{NcBlurHash-KSj0HXbX.mjs.map → NcBlurHash-DKfLn7BC.mjs.map} +1 -1
  346. package/dist/chunks/{NcBreadcrumb-D8xA3KcG.mjs → NcBreadcrumb-BPaEIFrD.mjs} +5 -5
  347. package/dist/chunks/{NcBreadcrumb-14OmaYrH.cjs.map → NcBreadcrumb-BPaEIFrD.mjs.map} +1 -1
  348. package/dist/chunks/{NcBreadcrumb-14OmaYrH.cjs → NcBreadcrumb-ZV3_rxwo.cjs} +5 -5
  349. package/dist/chunks/{NcBreadcrumb-D8xA3KcG.mjs.map → NcBreadcrumb-ZV3_rxwo.cjs.map} +1 -1
  350. package/dist/chunks/{NcBreadcrumbs-CesoXxTs.mjs → NcBreadcrumbs-BN_Nk5sm.mjs} +4 -4
  351. package/dist/chunks/{NcBreadcrumbs-CesoXxTs.mjs.map → NcBreadcrumbs-BN_Nk5sm.mjs.map} +1 -1
  352. package/dist/chunks/{NcBreadcrumbs-CZt3UuyO.cjs → NcBreadcrumbs-lgJctYCF.cjs} +4 -4
  353. package/dist/chunks/{NcBreadcrumbs-CZt3UuyO.cjs.map → NcBreadcrumbs-lgJctYCF.cjs.map} +1 -1
  354. package/dist/chunks/{NcButton-CCWEL9Ci.mjs → NcButton-DAGirW_B.mjs} +4 -4
  355. package/dist/chunks/NcButton-DAGirW_B.mjs.map +1 -0
  356. package/dist/chunks/{NcButton-ByTFUhwJ.cjs → NcButton-W3wDpCdX.cjs} +4 -4
  357. package/dist/chunks/NcButton-W3wDpCdX.cjs.map +1 -0
  358. package/dist/chunks/{NcCheckboxRadioSwitch-D4IV4zWy.mjs → NcCheckboxRadioSwitch-BAjRm8PQ.mjs} +18 -9
  359. package/dist/chunks/NcCheckboxRadioSwitch-BAjRm8PQ.mjs.map +1 -0
  360. package/dist/chunks/{NcCheckboxRadioSwitch-BQeglWXd.cjs → NcCheckboxRadioSwitch-Bc1iPxKK.cjs} +18 -9
  361. package/dist/chunks/NcCheckboxRadioSwitch-Bc1iPxKK.cjs.map +1 -0
  362. package/dist/chunks/{NcCollectionList-DOAZ13vO.mjs → NcCollectionList-75D50pZU.mjs} +9 -9
  363. package/dist/chunks/NcCollectionList-75D50pZU.mjs.map +1 -0
  364. package/dist/chunks/{NcCollectionList-2jk5XCm8.cjs → NcCollectionList-CX9fHs--.cjs} +9 -9
  365. package/dist/chunks/NcCollectionList-CX9fHs--.cjs.map +1 -0
  366. package/dist/chunks/{NcColorPicker-SlazeVcI.mjs → NcColorPicker-BwqjqV32.mjs} +8 -8
  367. package/dist/chunks/{NcColorPicker-SlazeVcI.mjs.map → NcColorPicker-BwqjqV32.mjs.map} +1 -1
  368. package/dist/chunks/{NcColorPicker-BTiAa5mm.cjs → NcColorPicker-oQVwX8dO.cjs} +8 -8
  369. package/dist/chunks/{NcColorPicker-BTiAa5mm.cjs.map → NcColorPicker-oQVwX8dO.cjs.map} +1 -1
  370. package/dist/chunks/{NcContent-BB-v-amq.cjs → NcContent-BlABZ4r6.cjs} +7 -7
  371. package/dist/chunks/{NcContent-BB-v-amq.cjs.map → NcContent-BlABZ4r6.cjs.map} +1 -1
  372. package/dist/chunks/{NcContent-BuTh0ZPb.mjs → NcContent-nvVwz9xO.mjs} +7 -7
  373. package/dist/chunks/{NcContent-BuTh0ZPb.mjs.map → NcContent-nvVwz9xO.mjs.map} +1 -1
  374. package/dist/chunks/{NcDashboardWidget-dMwnFBzc.cjs → NcDashboardWidget-CY9oWI6e.cjs} +5 -5
  375. package/dist/chunks/{NcDashboardWidget-dMwnFBzc.cjs.map → NcDashboardWidget-CY9oWI6e.cjs.map} +1 -1
  376. package/dist/chunks/{NcDashboardWidget-CO1z9VUN.mjs → NcDashboardWidget-d_eqooRR.mjs} +5 -5
  377. package/dist/chunks/{NcDashboardWidget-CO1z9VUN.mjs.map → NcDashboardWidget-d_eqooRR.mjs.map} +1 -1
  378. package/dist/chunks/{NcDashboardWidgetItem-9tQgaPXS.cjs → NcDashboardWidgetItem-BWELTjeT.cjs} +4 -4
  379. package/dist/chunks/{NcDashboardWidgetItem-9tQgaPXS.cjs.map → NcDashboardWidgetItem-BWELTjeT.cjs.map} +1 -1
  380. package/dist/chunks/{NcDashboardWidgetItem-2VgB9qj2.mjs → NcDashboardWidgetItem-BiZ8QNOR.mjs} +4 -4
  381. package/dist/chunks/{NcDashboardWidgetItem-2VgB9qj2.mjs.map → NcDashboardWidgetItem-BiZ8QNOR.mjs.map} +1 -1
  382. package/dist/chunks/NcDateTime-DE-ltgw2.cjs.map +1 -1
  383. package/dist/chunks/NcDateTime-enXYuwj8.mjs.map +1 -1
  384. package/dist/chunks/{NcDialog-Qak1QTrv.cjs → NcDialog-CiuR4ZK0.cjs} +2 -2
  385. package/dist/chunks/{NcDialog-Qak1QTrv.cjs.map → NcDialog-CiuR4ZK0.cjs.map} +1 -1
  386. package/dist/chunks/{NcDialog-DZ7xq7XA.mjs → NcDialog-DoGsI2_6.mjs} +2 -2
  387. package/dist/chunks/{NcDialog-DZ7xq7XA.mjs.map → NcDialog-DoGsI2_6.mjs.map} +1 -1
  388. package/dist/chunks/{NcDialogButton-BoetK2zm.cjs → NcDialogButton-BR6KI4--.cjs} +4 -4
  389. package/dist/chunks/{NcDialogButton-BoetK2zm.cjs.map → NcDialogButton-BR6KI4--.cjs.map} +1 -1
  390. package/dist/chunks/{NcDialogButton-KNF3Co74.mjs → NcDialogButton-D5yuDtSF.mjs} +4 -4
  391. package/dist/chunks/{NcDialogButton-KNF3Co74.mjs.map → NcDialogButton-D5yuDtSF.mjs.map} +1 -1
  392. package/dist/chunks/{NcEmojiPicker-DNxcceCn.mjs → NcEmojiPicker-C_88_f6x.mjs} +8 -8
  393. package/dist/chunks/{NcEmojiPicker-DNxcceCn.mjs.map → NcEmojiPicker-C_88_f6x.mjs.map} +1 -1
  394. package/dist/chunks/{NcEmojiPicker-2KIJVstd.cjs → NcEmojiPicker-Dyqwkm_d.cjs} +8 -8
  395. package/dist/chunks/{NcEmojiPicker-2KIJVstd.cjs.map → NcEmojiPicker-Dyqwkm_d.cjs.map} +1 -1
  396. package/dist/chunks/{NcFilePicker-BL6iajt2.cjs → NcFilePicker-Cdc1TsXy.cjs} +7 -7
  397. package/dist/chunks/{NcFilePicker-BL6iajt2.cjs.map → NcFilePicker-Cdc1TsXy.cjs.map} +1 -1
  398. package/dist/chunks/{NcFilePicker-Ck9o-ia3.mjs → NcFilePicker-Dg6UqMN1.mjs} +7 -7
  399. package/dist/chunks/{NcFilePicker-Ck9o-ia3.mjs.map → NcFilePicker-Dg6UqMN1.mjs.map} +1 -1
  400. package/dist/chunks/{NcFormBox-DtoCXLMx.mjs → NcFormBox-C38-8CH6.mjs} +7 -7
  401. package/dist/chunks/{NcFormBox-DtoCXLMx.mjs.map → NcFormBox-C38-8CH6.mjs.map} +1 -1
  402. package/dist/chunks/{NcFormBox-DRGVpFeZ.cjs → NcFormBox-C8LDr6nF.cjs} +7 -7
  403. package/dist/chunks/{NcFormBox-DRGVpFeZ.cjs.map → NcFormBox-C8LDr6nF.cjs.map} +1 -1
  404. package/dist/chunks/{NcFormBoxButton-ozVuTgCZ.cjs → NcFormBoxButton-Bk-1cqbj.cjs} +5 -5
  405. package/dist/chunks/{NcFormBoxButton-ozVuTgCZ.cjs.map → NcFormBoxButton-Bk-1cqbj.cjs.map} +1 -1
  406. package/dist/chunks/{NcFormBoxButton-CFWCJ0-X.mjs → NcFormBoxButton-DFqqtbav.mjs} +5 -5
  407. package/dist/chunks/{NcFormBoxButton-CFWCJ0-X.mjs.map → NcFormBoxButton-DFqqtbav.mjs.map} +1 -1
  408. package/dist/chunks/{NcFormBoxCopyButton-BS9aM994.cjs → NcFormBoxCopyButton-LEjPAg3D.cjs} +3 -3
  409. package/dist/chunks/{NcFormBoxCopyButton-BS9aM994.cjs.map → NcFormBoxCopyButton-LEjPAg3D.cjs.map} +1 -1
  410. package/dist/chunks/{NcFormBoxCopyButton-Da8RuDH1.mjs → NcFormBoxCopyButton-_KxKabAB.mjs} +3 -3
  411. package/dist/chunks/{NcFormBoxCopyButton-Da8RuDH1.mjs.map → NcFormBoxCopyButton-_KxKabAB.mjs.map} +1 -1
  412. package/dist/chunks/{NcFormBoxItem-3lI7Bu3S.cjs → NcFormBoxItem-BAJxkxRf.cjs} +12 -12
  413. package/dist/chunks/{NcFormBoxItem-3lI7Bu3S.cjs.map → NcFormBoxItem-BAJxkxRf.cjs.map} +1 -1
  414. package/dist/chunks/{NcFormBoxItem-Bz-P0lVG.mjs → NcFormBoxItem-CmfqBL1k.mjs} +12 -12
  415. package/dist/chunks/{NcFormBoxItem-Bz-P0lVG.mjs.map → NcFormBoxItem-CmfqBL1k.mjs.map} +1 -1
  416. package/dist/chunks/{NcFormBoxSwitch-DaaMuPnk.mjs → NcFormBoxSwitch-B34n4EwU.mjs} +6 -6
  417. package/dist/chunks/NcFormBoxSwitch-B34n4EwU.mjs.map +1 -0
  418. package/dist/chunks/{NcFormBoxSwitch-7R8iAj1R.cjs → NcFormBoxSwitch-Bw2utaCz.cjs} +6 -6
  419. package/dist/chunks/NcFormBoxSwitch-Bw2utaCz.cjs.map +1 -0
  420. package/dist/chunks/{NcFormGroup-AxkxubKD.cjs → NcFormGroup-dH5AXvsT.cjs} +9 -9
  421. package/dist/chunks/{NcFormGroup-AxkxubKD.cjs.map → NcFormGroup-dH5AXvsT.cjs.map} +1 -1
  422. package/dist/chunks/{NcFormGroup-DblLoFMf.mjs → NcFormGroup-geUvdoIG.mjs} +9 -9
  423. package/dist/chunks/{NcFormGroup-DblLoFMf.mjs.map → NcFormGroup-geUvdoIG.mjs.map} +1 -1
  424. package/dist/chunks/{NcHeaderButton-GtIbBhEd.mjs → NcHeaderButton-BqjMDSal.mjs} +2 -2
  425. package/dist/chunks/{NcHeaderButton-GtIbBhEd.mjs.map → NcHeaderButton-BqjMDSal.mjs.map} +1 -1
  426. package/dist/chunks/{NcHeaderButton-BndVfb3e.cjs → NcHeaderButton-ChwiTpxY.cjs} +2 -2
  427. package/dist/chunks/{NcHeaderButton-BndVfb3e.cjs.map → NcHeaderButton-ChwiTpxY.cjs.map} +1 -1
  428. package/dist/chunks/{NcHeaderMenu-elBE_Ukl.mjs → NcHeaderMenu-BB2r8v-X.mjs} +2 -2
  429. package/dist/chunks/{NcHeaderMenu-elBE_Ukl.mjs.map → NcHeaderMenu-BB2r8v-X.mjs.map} +1 -1
  430. package/dist/chunks/{NcHeaderMenu-DUQ4pqU-.cjs → NcHeaderMenu-BivYykFA.cjs} +2 -2
  431. package/dist/chunks/{NcHeaderMenu-DUQ4pqU-.cjs.map → NcHeaderMenu-BivYykFA.cjs.map} +1 -1
  432. package/dist/chunks/{NcHotkey-CLLtt9LG.mjs → NcHotkey-B6KIqqii.mjs} +7 -7
  433. package/dist/chunks/{NcHotkey-CLLtt9LG.mjs.map → NcHotkey-B6KIqqii.mjs.map} +1 -1
  434. package/dist/chunks/{NcHotkey-vKyDZ2a7.cjs → NcHotkey-BVSKiKpz.cjs} +7 -7
  435. package/dist/chunks/{NcHotkey-vKyDZ2a7.cjs.map → NcHotkey-BVSKiKpz.cjs.map} +1 -1
  436. package/dist/chunks/{NcHotkeyList-Co7MBL5U.mjs → NcHotkeyList-BACQoMeA.mjs} +6 -6
  437. package/dist/chunks/NcHotkeyList-BACQoMeA.mjs.map +1 -0
  438. package/dist/chunks/{NcHotkeyList-DhFQdopw.cjs → NcHotkeyList-Crj5V-KW.cjs} +6 -6
  439. package/dist/chunks/NcHotkeyList-Crj5V-KW.cjs.map +1 -0
  440. package/dist/chunks/{NcIconToggleSwitch-0NTw7i-t.mjs → NcIconToggleSwitch-B19dt_oD.mjs} +4 -4
  441. package/dist/chunks/{NcIconToggleSwitch-0NTw7i-t.mjs.map → NcIconToggleSwitch-B19dt_oD.mjs.map} +1 -1
  442. package/dist/chunks/{NcIconToggleSwitch-LTgdIBoC.cjs → NcIconToggleSwitch-DZSBCDbH.cjs} +4 -4
  443. package/dist/chunks/{NcIconToggleSwitch-LTgdIBoC.cjs.map → NcIconToggleSwitch-DZSBCDbH.cjs.map} +1 -1
  444. package/dist/chunks/{NcInputConfirmCancel-CwuZqsuC.mjs → NcInputConfirmCancel-44rhjqEA.mjs} +10 -10
  445. package/dist/chunks/{NcInputConfirmCancel-CwuZqsuC.mjs.map → NcInputConfirmCancel-44rhjqEA.mjs.map} +1 -1
  446. package/dist/chunks/{NcInputConfirmCancel-CEZVhgJR.cjs → NcInputConfirmCancel-CaCFiQnc.cjs} +10 -10
  447. package/dist/chunks/{NcInputConfirmCancel-CEZVhgJR.cjs.map → NcInputConfirmCancel-CaCFiQnc.cjs.map} +1 -1
  448. package/dist/chunks/{NcInputField-Brpn446B.cjs → NcInputField-BcmWwfT5.cjs} +5 -5
  449. package/dist/chunks/{NcInputField-Brpn446B.cjs.map → NcInputField-BcmWwfT5.cjs.map} +1 -1
  450. package/dist/chunks/{NcInputField-i4Z8nb4b.mjs → NcInputField-Cym5GuvB.mjs} +5 -5
  451. package/dist/chunks/{NcInputField-i4Z8nb4b.mjs.map → NcInputField-Cym5GuvB.mjs.map} +1 -1
  452. package/dist/chunks/{NcKbd-DbjnDaJH.cjs → NcKbd-CrXHar_q.cjs} +6 -6
  453. package/dist/chunks/{NcKbd-DbjnDaJH.cjs.map → NcKbd-CrXHar_q.cjs.map} +1 -1
  454. package/dist/chunks/{NcKbd-GB8FuSAU.mjs → NcKbd-D86qGvDb.mjs} +6 -6
  455. package/dist/chunks/{NcKbd-GB8FuSAU.mjs.map → NcKbd-D86qGvDb.mjs.map} +1 -1
  456. package/dist/chunks/{NcListItem-C-e9iA9w.cjs → NcListItem-5_QrKITf.cjs} +4 -4
  457. package/dist/chunks/{NcListItem-CaosvdEe.mjs.map → NcListItem-5_QrKITf.cjs.map} +1 -1
  458. package/dist/chunks/{NcListItem-CaosvdEe.mjs → NcListItem-DFrhF-DU.mjs} +4 -4
  459. package/dist/chunks/{NcListItem-C-e9iA9w.cjs.map → NcListItem-DFrhF-DU.mjs.map} +1 -1
  460. package/dist/chunks/{NcListItemIcon-BQ0f65Vg.cjs → NcListItemIcon-BpEOUL7y.cjs} +2 -2
  461. package/dist/chunks/{NcListItemIcon-BQ0f65Vg.cjs.map → NcListItemIcon-BpEOUL7y.cjs.map} +1 -1
  462. package/dist/chunks/{NcListItemIcon-DCKYv8Jr.mjs → NcListItemIcon-DIecVacf.mjs} +2 -2
  463. package/dist/chunks/{NcListItemIcon-DCKYv8Jr.mjs.map → NcListItemIcon-DIecVacf.mjs.map} +1 -1
  464. package/dist/chunks/{NcPasswordField-D4OFjLza.mjs → NcPasswordField-2woxTjbl.mjs} +4 -4
  465. package/dist/chunks/{NcPasswordField-D4OFjLza.mjs.map → NcPasswordField-2woxTjbl.mjs.map} +1 -1
  466. package/dist/chunks/{NcPasswordField-PQt7wMbW.cjs → NcPasswordField-C1FGaXn4.cjs} +4 -4
  467. package/dist/chunks/{NcPasswordField-PQt7wMbW.cjs.map → NcPasswordField-C1FGaXn4.cjs.map} +1 -1
  468. package/dist/chunks/{NcPopover-UAg26Qdd.mjs → NcPopover-BaHX3QSG.mjs} +4 -4
  469. package/dist/chunks/{NcPopover-UAg26Qdd.mjs.map → NcPopover-BaHX3QSG.mjs.map} +1 -1
  470. package/dist/chunks/{NcPopover-Ujf9nIvN.cjs → NcPopover-Bq-bsaqt.cjs} +4 -4
  471. package/dist/chunks/{NcPopover-Ujf9nIvN.cjs.map → NcPopover-Bq-bsaqt.cjs.map} +1 -1
  472. package/dist/chunks/NcProfileHoverCard-DK5YkGF0.mjs +479 -0
  473. package/dist/chunks/NcProfileHoverCard-DK5YkGF0.mjs.map +1 -0
  474. package/dist/chunks/NcProfileHoverCard-rEanhQqc.cjs +481 -0
  475. package/dist/chunks/NcProfileHoverCard-rEanhQqc.cjs.map +1 -0
  476. package/dist/chunks/{NcRadioGroup-CsPmwGlc.cjs → NcRadioGroup-C2lG1kIj.cjs} +6 -6
  477. package/dist/chunks/{NcRadioGroup-CsPmwGlc.cjs.map → NcRadioGroup-C2lG1kIj.cjs.map} +1 -1
  478. package/dist/chunks/{NcRadioGroup-BbBX9X2J.mjs → NcRadioGroup-D_7OAyQ4.mjs} +6 -6
  479. package/dist/chunks/{NcRadioGroup-BbBX9X2J.mjs.map → NcRadioGroup-D_7OAyQ4.mjs.map} +1 -1
  480. package/dist/chunks/{NcRadioGroupButton-BkxlxjIA.mjs → NcRadioGroupButton-CkpB4myv.mjs} +8 -8
  481. package/dist/chunks/{NcRadioGroupButton-BkxlxjIA.mjs.map → NcRadioGroupButton-CkpB4myv.mjs.map} +1 -1
  482. package/dist/chunks/{NcRadioGroupButton-6skMHhr7.cjs → NcRadioGroupButton-DcU_Yagn.cjs} +8 -8
  483. package/dist/chunks/{NcRadioGroupButton-6skMHhr7.cjs.map → NcRadioGroupButton-DcU_Yagn.cjs.map} +1 -1
  484. package/dist/chunks/NcReferenceWidget-Br8ecSQw.cjs +280 -0
  485. package/dist/chunks/NcReferenceWidget-Br8ecSQw.cjs.map +1 -0
  486. package/dist/chunks/NcReferenceWidget-CMq5QVka.mjs +281 -0
  487. package/dist/chunks/NcReferenceWidget-CMq5QVka.mjs.map +1 -0
  488. package/dist/chunks/{NcRelatedResourcesPanel-I2ZOB3cx.mjs → NcRelatedResourcesPanel-BKygMHvP.mjs} +11 -11
  489. package/dist/chunks/NcRelatedResourcesPanel-BKygMHvP.mjs.map +1 -0
  490. package/dist/chunks/{NcRelatedResourcesPanel-l1AlGr83.cjs → NcRelatedResourcesPanel-CjmzJ9Ex.cjs} +11 -11
  491. package/dist/chunks/NcRelatedResourcesPanel-CjmzJ9Ex.cjs.map +1 -0
  492. package/dist/chunks/{NcRichContenteditable-DZjIiOKo.cjs → NcRichContenteditable-CaDBJIrd.cjs} +28 -32
  493. package/dist/chunks/NcRichContenteditable-CaDBJIrd.cjs.map +1 -0
  494. package/dist/chunks/{NcRichContenteditable-8ZA_LArB.mjs → NcRichContenteditable-rJPX28V6.mjs} +28 -32
  495. package/dist/chunks/NcRichContenteditable-rJPX28V6.mjs.map +1 -0
  496. package/dist/chunks/{NcRichText-pqvg5l27.cjs → NcRichText-BC9lKFPb.cjs} +10 -10
  497. package/dist/chunks/{NcRichText-pqvg5l27.cjs.map → NcRichText-BC9lKFPb.cjs.map} +1 -1
  498. package/dist/chunks/{NcRichText-ByLPwUvM.mjs → NcRichText-K2ZjNIbK.mjs} +9 -9
  499. package/dist/chunks/{NcRichText-ByLPwUvM.mjs.map → NcRichText-K2ZjNIbK.mjs.map} +1 -1
  500. package/dist/chunks/{NcSelect-CHc1QupB.mjs → NcSelect-CxHfXvZV.mjs} +5 -5
  501. package/dist/chunks/{NcSelect-CHc1QupB.mjs.map → NcSelect-CxHfXvZV.mjs.map} +1 -1
  502. package/dist/chunks/{NcSelect-BCcSawYf.cjs → NcSelect-DW5W3ZIM.cjs} +5 -5
  503. package/dist/chunks/{NcSelect-BCcSawYf.cjs.map → NcSelect-DW5W3ZIM.cjs.map} +1 -1
  504. package/dist/chunks/{NcSelectTags-Bokig7ar.mjs → NcSelectTags-BWTTPN2O.mjs} +3 -3
  505. package/dist/chunks/{NcSelectTags-Bokig7ar.mjs.map → NcSelectTags-BWTTPN2O.mjs.map} +1 -1
  506. package/dist/chunks/{NcSelectTags-uU_mHbSm.cjs → NcSelectTags-Bk4doVG3.cjs} +3 -3
  507. package/dist/chunks/{NcSelectTags-uU_mHbSm.cjs.map → NcSelectTags-Bk4doVG3.cjs.map} +1 -1
  508. package/dist/chunks/{NcSelectUsers-BB9ZIHeB.cjs → NcSelectUsers-BxmxyFcE.cjs} +5 -5
  509. package/dist/chunks/{NcSelectUsers-BB9ZIHeB.cjs.map → NcSelectUsers-BxmxyFcE.cjs.map} +1 -1
  510. package/dist/chunks/{NcSelectUsers-B4w9UC_d.mjs → NcSelectUsers-D2jOjPs4.mjs} +5 -5
  511. package/dist/chunks/{NcSelectUsers-B4w9UC_d.mjs.map → NcSelectUsers-D2jOjPs4.mjs.map} +1 -1
  512. package/dist/chunks/{NcSettingsInputText-BF5437Q7.cjs → NcSettingsInputText-BAMF6udc.cjs} +3 -3
  513. package/dist/chunks/{NcSettingsInputText-BF5437Q7.cjs.map → NcSettingsInputText-BAMF6udc.cjs.map} +1 -1
  514. package/dist/chunks/{NcSettingsInputText-BwnkZzWL.mjs → NcSettingsInputText-Cc7cCwNm.mjs} +3 -3
  515. package/dist/chunks/{NcSettingsInputText-BwnkZzWL.mjs.map → NcSettingsInputText-Cc7cCwNm.mjs.map} +1 -1
  516. package/dist/chunks/{NcSettingsSection-BrIKMh-B.cjs → NcSettingsSection-D48jcXDL.cjs} +5 -5
  517. package/dist/chunks/{NcSettingsSection-BrIKMh-B.cjs.map → NcSettingsSection-D48jcXDL.cjs.map} +1 -1
  518. package/dist/chunks/{NcSettingsSection-Dz_b9rcq.mjs → NcSettingsSection-D9qxzYDc.mjs} +5 -5
  519. package/dist/chunks/{NcSettingsSection-Dz_b9rcq.mjs.map → NcSettingsSection-D9qxzYDc.mjs.map} +1 -1
  520. package/dist/chunks/{NcSettingsSelectGroup-BtNFBX1V.cjs → NcSettingsSelectGroup-CJGf5mxJ.cjs} +4 -4
  521. package/dist/chunks/{NcSettingsSelectGroup-BtNFBX1V.cjs.map → NcSettingsSelectGroup-CJGf5mxJ.cjs.map} +1 -1
  522. package/dist/chunks/{NcSettingsSelectGroup-BdXf7ytX.mjs → NcSettingsSelectGroup-DzzNyHN_.mjs} +4 -4
  523. package/dist/chunks/{NcSettingsSelectGroup-BdXf7ytX.mjs.map → NcSettingsSelectGroup-DzzNyHN_.mjs.map} +1 -1
  524. package/dist/chunks/{NcTextArea-B9Vn3rQC.cjs → NcTextArea-GxhBi7Z3.cjs} +4 -4
  525. package/dist/chunks/{NcTextArea-B9Vn3rQC.cjs.map → NcTextArea-GxhBi7Z3.cjs.map} +1 -1
  526. package/dist/chunks/{NcTextArea-DPJWqlJb.mjs → NcTextArea-T9totbme.mjs} +4 -4
  527. package/dist/chunks/{NcTextArea-DPJWqlJb.mjs.map → NcTextArea-T9totbme.mjs.map} +1 -1
  528. package/dist/chunks/{NcTextField-Czr9S6YO.mjs → NcTextField-CQp8XS4C.mjs} +4 -4
  529. package/dist/chunks/{NcTextField-Czr9S6YO.mjs.map → NcTextField-CQp8XS4C.mjs.map} +1 -1
  530. package/dist/chunks/{NcTextField-B92lM77I.cjs → NcTextField-DMxdmT5a.cjs} +4 -4
  531. package/dist/chunks/{NcTextField-B92lM77I.cjs.map → NcTextField-DMxdmT5a.cjs.map} +1 -1
  532. package/dist/chunks/{NcTimezonePicker-D2e7hW-Z.cjs → NcTimezonePicker-B0rvWaty.cjs} +4 -4
  533. package/dist/chunks/{NcTimezonePicker-D2e7hW-Z.cjs.map → NcTimezonePicker-B0rvWaty.cjs.map} +1 -1
  534. package/dist/chunks/{NcTimezonePicker-n9kr9A4o.mjs → NcTimezonePicker-BfSjyBxq.mjs} +4 -4
  535. package/dist/chunks/{NcTimezonePicker-n9kr9A4o.mjs.map → NcTimezonePicker-BfSjyBxq.mjs.map} +1 -1
  536. package/dist/chunks/{NcUserBubble-CNQJUk2l.cjs → NcUserBubble-BR5bw7lO.cjs} +3 -3
  537. package/dist/chunks/{NcUserBubble-CNQJUk2l.cjs.map → NcUserBubble-BR5bw7lO.cjs.map} +1 -1
  538. package/dist/chunks/{NcUserBubble-BGfZAi4c.mjs → NcUserBubble-Bd-PEfyK.mjs} +3 -3
  539. package/dist/chunks/{NcUserBubble-BGfZAi4c.mjs.map → NcUserBubble-Bd-PEfyK.mjs.map} +1 -1
  540. package/dist/chunks/{NcUserStatusIcon-BnGtoiCy.cjs → NcUserStatusIcon-BP2cHGxs.cjs} +5 -5
  541. package/dist/chunks/{NcUserStatusIcon-BnGtoiCy.cjs.map → NcUserStatusIcon-BP2cHGxs.cjs.map} +1 -1
  542. package/dist/chunks/{NcUserStatusIcon-DdPPN-cP.mjs → NcUserStatusIcon-gpl3yJFX.mjs} +5 -5
  543. package/dist/chunks/{NcUserStatusIcon-DdPPN-cP.mjs.map → NcUserStatusIcon-gpl3yJFX.mjs.map} +1 -1
  544. package/dist/chunks/{ScopeComponent-77Az-4PS.mjs → ScopeComponent-Df3JYkxQ.mjs} +2 -2
  545. package/dist/chunks/{ScopeComponent-77Az-4PS.mjs.map → ScopeComponent-Df3JYkxQ.mjs.map} +1 -1
  546. package/dist/chunks/{ScopeComponent-BLaRYUFv.cjs → ScopeComponent-O4dfHJkP.cjs} +2 -2
  547. package/dist/chunks/{ScopeComponent-BLaRYUFv.cjs.map → ScopeComponent-O4dfHJkP.cjs.map} +1 -1
  548. package/dist/chunks/{_l10n-skrZri3h.cjs → _l10n-Be-gO5QO.cjs} +56 -54
  549. package/dist/chunks/{_l10n-skrZri3h.cjs.map → _l10n-Be-gO5QO.cjs.map} +1 -1
  550. package/dist/chunks/{_l10n-DVz9Qdzk.mjs → _l10n-CAnZaLWU.mjs} +110 -108
  551. package/dist/chunks/_l10n-CAnZaLWU.mjs.map +1 -0
  552. package/dist/chunks/{autolink-VQMuzjxl.cjs → autolink-BHlqTULT.cjs} +5 -5
  553. package/dist/chunks/{autolink-VQMuzjxl.cjs.map → autolink-BHlqTULT.cjs.map} +1 -1
  554. package/dist/chunks/{autolink-CeB9uxD9.mjs → autolink-COrOqbJu.mjs} +5 -5
  555. package/dist/chunks/{autolink-CeB9uxD9.mjs.map → autolink-COrOqbJu.mjs.map} +1 -1
  556. package/dist/chunks/{colors-Bp0JzIQ4.mjs → colors-B_oqiKWY.mjs} +3 -3
  557. package/dist/chunks/{colors-Bp0JzIQ4.mjs.map → colors-B_oqiKWY.mjs.map} +1 -1
  558. package/dist/chunks/{colors-CyIwf6gH.cjs → colors-DF9O093h.cjs} +3 -3
  559. package/dist/chunks/{colors-CyIwf6gH.cjs.map → colors-DF9O093h.cjs.map} +1 -1
  560. package/dist/chunks/customPickerElements-CYpmyl0b.mjs +61 -0
  561. package/dist/chunks/customPickerElements-CYpmyl0b.mjs.map +1 -0
  562. package/dist/chunks/{customPickerElements-GyIIOHiQ.cjs → customPickerElements-DNevxofg.cjs} +1 -58
  563. package/dist/chunks/customPickerElements-DNevxofg.cjs.map +1 -0
  564. package/dist/chunks/{legacy-Bk0qQxIg.cjs → legacy-BpZw2Eww.cjs} +4 -2
  565. package/dist/chunks/legacy-BpZw2Eww.cjs.map +1 -0
  566. package/dist/chunks/legacy-Cy3dCXuB.mjs +11 -0
  567. package/dist/chunks/legacy-Cy3dCXuB.mjs.map +1 -0
  568. package/dist/chunks/{referencePickerModal-BGYbZYrX.cjs → referencePickerModal-D2nYmN67.cjs} +23 -198
  569. package/dist/chunks/referencePickerModal-D2nYmN67.cjs.map +1 -0
  570. package/dist/chunks/{referencePickerModal-B69WouiU.mjs → referencePickerModal-P_15xB7f.mjs} +24 -199
  571. package/dist/chunks/referencePickerModal-P_15xB7f.mjs.map +1 -0
  572. package/dist/chunks/rtl-DLuwcTlm.cjs +5 -0
  573. package/dist/chunks/rtl-DLuwcTlm.cjs.map +1 -0
  574. package/dist/chunks/rtl-v0UOPAM7.mjs +6 -0
  575. package/dist/chunks/rtl-v0UOPAM7.mjs.map +1 -0
  576. package/dist/chunks/{useCopy-DDDe5RYH.mjs → useCopy-C-jNoLry.mjs} +3 -3
  577. package/dist/chunks/{useCopy-DDDe5RYH.mjs.map → useCopy-C-jNoLry.mjs.map} +1 -1
  578. package/dist/chunks/{useCopy-3m2jDiIN.cjs → useCopy-DXXjl8MD.cjs} +3 -3
  579. package/dist/chunks/{useCopy-3m2jDiIN.cjs.map → useCopy-DXXjl8MD.cjs.map} +1 -1
  580. package/dist/chunks/widgets-DoYhefYe.cjs +65 -0
  581. package/dist/chunks/widgets-DoYhefYe.cjs.map +1 -0
  582. package/dist/chunks/widgets-XxirL-2f.mjs +66 -0
  583. package/dist/chunks/widgets-XxirL-2f.mjs.map +1 -0
  584. package/dist/components/NcProfileHoverCard/index.d.ts +5 -0
  585. package/dist/components/NcProfileHoverCard/profileCache.d.ts +31 -0
  586. package/dist/functions/reference/index.d.ts +6 -3
  587. package/dist/functions/reference/widgets.d.ts +11 -1
  588. package/dist/index.cjs +83 -84
  589. package/dist/index.cjs.map +1 -1
  590. package/dist/index.mjs +85 -86
  591. package/dist/index.mjs.map +1 -1
  592. package/dist/utils/legacy.d.ts +2 -0
  593. package/package.json +18 -18
  594. package/dist/chunks/NcAppContent-0hbQMH35.cjs.map +0 -1
  595. package/dist/chunks/NcAppContent-DAN0qPID.mjs.map +0 -1
  596. package/dist/chunks/NcAppNavigationToggle-CXX1MFrf.mjs.map +0 -1
  597. package/dist/chunks/NcAppNavigationToggle-CkDMk16T.cjs.map +0 -1
  598. package/dist/chunks/NcAppSettingsDialog-Fa5DTfig.cjs.map +0 -1
  599. package/dist/chunks/NcAppSettingsDialog-MxrFh-Ln.mjs.map +0 -1
  600. package/dist/chunks/NcAppSettingsShortcutsSection-DblUBaWP.mjs.map +0 -1
  601. package/dist/chunks/NcAppSettingsShortcutsSection-DgGU8-cF.cjs.map +0 -1
  602. package/dist/chunks/NcAppSidebar-B7GuNZ4C.mjs.map +0 -1
  603. package/dist/chunks/NcAppSidebar-DXEl0_ou.cjs.map +0 -1
  604. package/dist/chunks/NcAvatar-D09ZAgeJ.cjs.map +0 -1
  605. package/dist/chunks/NcAvatar-DkAX4nqq.mjs.map +0 -1
  606. package/dist/chunks/NcButton-ByTFUhwJ.cjs.map +0 -1
  607. package/dist/chunks/NcButton-CCWEL9Ci.mjs.map +0 -1
  608. package/dist/chunks/NcCheckboxRadioSwitch-BQeglWXd.cjs.map +0 -1
  609. package/dist/chunks/NcCheckboxRadioSwitch-D4IV4zWy.mjs.map +0 -1
  610. package/dist/chunks/NcCollectionList-2jk5XCm8.cjs.map +0 -1
  611. package/dist/chunks/NcCollectionList-DOAZ13vO.mjs.map +0 -1
  612. package/dist/chunks/NcFormBoxSwitch-7R8iAj1R.cjs.map +0 -1
  613. package/dist/chunks/NcFormBoxSwitch-DaaMuPnk.mjs.map +0 -1
  614. package/dist/chunks/NcHotkeyList-Co7MBL5U.mjs.map +0 -1
  615. package/dist/chunks/NcHotkeyList-DhFQdopw.cjs.map +0 -1
  616. package/dist/chunks/NcRelatedResourcesPanel-I2ZOB3cx.mjs.map +0 -1
  617. package/dist/chunks/NcRelatedResourcesPanel-l1AlGr83.cjs.map +0 -1
  618. package/dist/chunks/NcRichContenteditable-8ZA_LArB.mjs.map +0 -1
  619. package/dist/chunks/NcRichContenteditable-DZjIiOKo.cjs.map +0 -1
  620. package/dist/chunks/_l10n-DVz9Qdzk.mjs.map +0 -1
  621. package/dist/chunks/customPickerElements-DLFtgReB.mjs +0 -118
  622. package/dist/chunks/customPickerElements-DLFtgReB.mjs.map +0 -1
  623. package/dist/chunks/customPickerElements-GyIIOHiQ.cjs.map +0 -1
  624. package/dist/chunks/legacy-Bk0qQxIg.cjs.map +0 -1
  625. package/dist/chunks/legacy-DV3mGZdh.mjs +0 -9
  626. package/dist/chunks/legacy-DV3mGZdh.mjs.map +0 -1
  627. package/dist/chunks/referencePickerModal-B69WouiU.mjs.map +0 -1
  628. package/dist/chunks/referencePickerModal-BGYbZYrX.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"NcTimezonePicker-n9kr9A4o.mjs","sources":["../../src/components/NcTimezonePicker/timezoneUtils.ts","../../src/components/NcTimezonePicker/NcTimezonePicker.vue"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Convert timezone ID in IANA format (e.g. \"Europe/Berlin\") to a more human-readable format\n *\n * @param timezoneId - IANA timezone ID (e.g. \"America/Argentina/San_Juan\")\n * @return Formatted timezone string (e.g. \"Argentina - San Juan\")\n */\nfunction formatTimezoneId(timezoneId: string) {\n\treturn timezoneId\n\t\t// 'America/Argentina/San_Juan' -> 'Argentina/San_Juan'\n\t\t.slice(timezoneId.indexOf('/') + 1)\n\t\t// 'Argentina/San_Juan' -> 'Argentina - San_Juan'\n\t\t.replaceAll('/', ' - ')\n\t\t// 'San_Juan' -> 'San Juan'\n\t\t.replaceAll('_', ' ')\n}\n\n/**\n * Get a list of supported IANA timezone IDs (e.g. \"Europe/Berlin\") with human-readable labels,\n * excluding Etc/* administrative zones not used by users (see: https://en.wikipedia.org/wiki/Tz_database#Areas)\n */\nexport function getTimezones() {\n\treturn Intl.supportedValuesOf('timeZone')\n\t\t.filter((tz) => !tz.startsWith('Etc/'))\n\t\t.map((timezoneId) => ({\n\t\t\ttimezoneId,\n\t\t\tlabel: formatTimezoneId(timezoneId),\n\t\t}))\n\t\t.sort((a, b) => a.timezoneId.localeCompare(b.timezoneId))\n}\n","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Example\n```vue\n<template>\n\t<span>\n\t\t<NcTimezonePicker v-model=\"tz\" />\n\t\t{{ tz }}\n\t</span>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttz: 'Europe/Berlin',\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { useModelMigration } from '../../composables/useModelMigration.ts'\nimport { t } from '../../l10n.js'\nimport { createElementId } from '../../utils/createElementId.ts'\nimport NcSelect from '../NcSelect/index.js'\nimport { getTimezones } from './timezoneUtils.ts'\n\ntype ITimezone = {\n\t/**\n\t * Time zone ID in IANA format, e.g. \"Europe/Berlin\", or \"floating\" for a time independent of timezone, or a custom timezone ID\n\t */\n\ttimezoneId: string\n\t/**\n\t * Localized label of the timezone, e.g. \"Central European Standard Time\"\n\t */\n\tlabel: string\n\t/**\n\t * Continent the timezone if any, e.g. \"Europe\" (not localized)\n\t */\n\tcontinent: string\n}\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * An array of additional timezones to include with the standard database. Useful if there is a custom timezone, e.g. read from user data\n\t */\n\tadditionalTimezones?: ITimezone[]\n\t/**\n\t * Removed in v9 - use `modelValue` (`v-model`) instead\n\t *\n\t * @deprecated\n\t */\n\tvalue?: string\n\t/**\n\t * The selected timezone. Use v-model for two-way binding. The default timezone is floating, which means a time independent of timezone. See https://icalendar.org/CalDAV-Access-RFC-4791/7-3-date-and-floating-time.html for details.\n\t */\n\tmodelValue?: string\n\t/**\n\t * ID of the inner vue-select element, can be used for labels like: `vs-${uid}__combobox`\n\t */\n\tuid?: string\n}>(), {\n\tadditionalTimezones: () => [],\n\tvalue: undefined,\n\tmodelValue: 'floating',\n\tuid: createElementId(),\n})\n\ndefineEmits<{\n\t/**\n\t * Removed in v9 - use `update:modelValue` (`v-model`) instead\n\t *\n\t * @deprecated\n\t */\n\t(event: 'input', value: string): void\n\t/**\n\t * Two-way binding of the value prop. Use v-model=\"selectedTimezone\" for two-way binding\n\t */\n\t(event: 'update:modelValue', value: string): void\n\t/** Same as update:modelValue for Vue 2 compatibility */\n\t(event: 'update:model-value', value: string): void\n}>()\n\n/**\n * The selected timezone.\n * Use v-model for two-way binding.\n * The default timezone is floating, which means a time independent of timezone. See https://icalendar.org/CalDAV-Access-RFC-4791/7-3-date-and-floating-time.html for details.\n */\nconst model = useModelMigration<string>('value', 'input')\n\nconst formattedAdditionalTimezones = computed(() => {\n\treturn props.additionalTimezones.map(({ timezoneId, label }) => ({\n\t\ttimezoneId,\n\t\tlabel,\n\t}))\n})\n\nconst options = computed(() => {\n\tconst timezones = getTimezones()\n\ttimezones.unshift(...formattedAdditionalTimezones.value)\n\treturn timezones\n})\n\n/**\n * NcSelect's filterBy prop to search timezone by any option property\n *\n * @param option - The timezone option\n * @param label - The label of the timezone\n * @param search - The search string\n */\nfunction filterBy(option: ITimezone, label: string, search: string): boolean {\n\tconst terms = search.trim().split(/\\s+/)\n\tconst values = Object.values(option)\n\treturn terms.every((term) => {\n\t\treturn values.some((value) => value.toLowerCase().includes(term.toLowerCase()))\n\t})\n}\n</script>\n\n<template>\n\t<NcSelect\n\t\tv-model=\"model\"\n\t\t:aria-label-combobox=\"t('Search for time zone')\"\n\t\t:clearable=\"false\"\n\t\t:filter-by=\"filterBy\"\n\t\t:multiple=\"false\"\n\t\t:options=\"options\"\n\t\t:placeholder=\"t('Type to search time zone')\"\n\t\t:uid=\"uid\"\n\t\t:reduce=\"(option) => option.timezoneId\"\n\t\tlabel=\"label\" />\n</template>\n"],"names":[],"mappings":";;;;;;;AAWA,SAAS,iBAAiB,YAAoB;AAC7C,SAAO,WAEL,MAAM,WAAW,QAAQ,GAAG,IAAI,CAAC,EAEjC,WAAW,KAAK,KAAK,EAErB,WAAW,KAAK,GAAG;AACtB;AAMO,SAAS,eAAe;AAC9B,SAAO,KAAK,kBAAkB,UAAU,EACtC,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,MAAM,CAAC,EACrC,IAAI,CAAC,gBAAgB;AAAA,IACrB;AAAA,IACA,OAAO,iBAAiB,UAAU;AAAA,EAAA,EACjC,EACD,KAAK,CAAC,GAAG,MAAM,EAAE,WAAW,cAAc,EAAE,UAAU,CAAC;AAC1D;;;;;;;;;;;;AC8DA,UAAM,QAAQ,kBAA0B,SAAS,OAAO;AAExD,UAAM,+BAA+B,SAAS,MAAM;AACnD,aAAO,MAAM,oBAAoB,IAAI,CAAC,EAAE,YAAY,aAAa;AAAA,QAChE;AAAA,QACA;AAAA,MAAA,EACC;AAAA,IACH,CAAC;AAED,UAAM,UAAU,SAAS,MAAM;AAC9B,YAAM,YAAY,aAAA;AAClB,gBAAU,QAAQ,GAAG,6BAA6B,KAAK;AACvD,aAAO;AAAA,IACR,CAAC;AASD,aAAS,SAAS,QAAmB,OAAe,QAAyB;AAC5E,YAAM,QAAQ,OAAO,KAAA,EAAO,MAAM,KAAK;AACvC,YAAM,SAAS,OAAO,OAAO,MAAM;AACnC,aAAO,MAAM,MAAM,CAAC,SAAS;AAC5B,eAAO,OAAO,KAAK,CAAC,UAAU,MAAM,YAAA,EAAc,SAAS,KAAK,YAAA,CAAa,CAAC;AAAA,MAC/E,CAAC;AAAA,IACF;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcTimezonePicker-BfSjyBxq.mjs","sources":["../../src/components/NcTimezonePicker/timezoneUtils.ts","../../src/components/NcTimezonePicker/NcTimezonePicker.vue"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Convert timezone ID in IANA format (e.g. \"Europe/Berlin\") to a more human-readable format\n *\n * @param timezoneId - IANA timezone ID (e.g. \"America/Argentina/San_Juan\")\n * @return Formatted timezone string (e.g. \"Argentina - San Juan\")\n */\nfunction formatTimezoneId(timezoneId: string) {\n\treturn timezoneId\n\t\t// 'America/Argentina/San_Juan' -> 'Argentina/San_Juan'\n\t\t.slice(timezoneId.indexOf('/') + 1)\n\t\t// 'Argentina/San_Juan' -> 'Argentina - San_Juan'\n\t\t.replaceAll('/', ' - ')\n\t\t// 'San_Juan' -> 'San Juan'\n\t\t.replaceAll('_', ' ')\n}\n\n/**\n * Get a list of supported IANA timezone IDs (e.g. \"Europe/Berlin\") with human-readable labels,\n * excluding Etc/* administrative zones not used by users (see: https://en.wikipedia.org/wiki/Tz_database#Areas)\n */\nexport function getTimezones() {\n\treturn Intl.supportedValuesOf('timeZone')\n\t\t.filter((tz) => !tz.startsWith('Etc/'))\n\t\t.map((timezoneId) => ({\n\t\t\ttimezoneId,\n\t\t\tlabel: formatTimezoneId(timezoneId),\n\t\t}))\n\t\t.sort((a, b) => a.timezoneId.localeCompare(b.timezoneId))\n}\n","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Example\n```vue\n<template>\n\t<span>\n\t\t<NcTimezonePicker v-model=\"tz\" />\n\t\t{{ tz }}\n\t</span>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttz: 'Europe/Berlin',\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { useModelMigration } from '../../composables/useModelMigration.ts'\nimport { t } from '../../l10n.js'\nimport { createElementId } from '../../utils/createElementId.ts'\nimport NcSelect from '../NcSelect/index.js'\nimport { getTimezones } from './timezoneUtils.ts'\n\ntype ITimezone = {\n\t/**\n\t * Time zone ID in IANA format, e.g. \"Europe/Berlin\", or \"floating\" for a time independent of timezone, or a custom timezone ID\n\t */\n\ttimezoneId: string\n\t/**\n\t * Localized label of the timezone, e.g. \"Central European Standard Time\"\n\t */\n\tlabel: string\n\t/**\n\t * Continent the timezone if any, e.g. \"Europe\" (not localized)\n\t */\n\tcontinent: string\n}\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * An array of additional timezones to include with the standard database. Useful if there is a custom timezone, e.g. read from user data\n\t */\n\tadditionalTimezones?: ITimezone[]\n\t/**\n\t * Removed in v9 - use `modelValue` (`v-model`) instead\n\t *\n\t * @deprecated\n\t */\n\tvalue?: string\n\t/**\n\t * The selected timezone. Use v-model for two-way binding. The default timezone is floating, which means a time independent of timezone. See https://icalendar.org/CalDAV-Access-RFC-4791/7-3-date-and-floating-time.html for details.\n\t */\n\tmodelValue?: string\n\t/**\n\t * ID of the inner vue-select element, can be used for labels like: `vs-${uid}__combobox`\n\t */\n\tuid?: string\n}>(), {\n\tadditionalTimezones: () => [],\n\tvalue: undefined,\n\tmodelValue: 'floating',\n\tuid: createElementId(),\n})\n\ndefineEmits<{\n\t/**\n\t * Removed in v9 - use `update:modelValue` (`v-model`) instead\n\t *\n\t * @deprecated\n\t */\n\t(event: 'input', value: string): void\n\t/**\n\t * Two-way binding of the value prop. Use v-model=\"selectedTimezone\" for two-way binding\n\t */\n\t(event: 'update:modelValue', value: string): void\n\t/** Same as update:modelValue for Vue 2 compatibility */\n\t(event: 'update:model-value', value: string): void\n}>()\n\n/**\n * The selected timezone.\n * Use v-model for two-way binding.\n * The default timezone is floating, which means a time independent of timezone. See https://icalendar.org/CalDAV-Access-RFC-4791/7-3-date-and-floating-time.html for details.\n */\nconst model = useModelMigration<string>('value', 'input')\n\nconst formattedAdditionalTimezones = computed(() => {\n\treturn props.additionalTimezones.map(({ timezoneId, label }) => ({\n\t\ttimezoneId,\n\t\tlabel,\n\t}))\n})\n\nconst options = computed(() => {\n\tconst timezones = getTimezones()\n\ttimezones.unshift(...formattedAdditionalTimezones.value)\n\treturn timezones\n})\n\n/**\n * NcSelect's filterBy prop to search timezone by any option property\n *\n * @param option - The timezone option\n * @param label - The label of the timezone\n * @param search - The search string\n */\nfunction filterBy(option: ITimezone, label: string, search: string): boolean {\n\tconst terms = search.trim().split(/\\s+/)\n\tconst values = Object.values(option)\n\treturn terms.every((term) => {\n\t\treturn values.some((value) => value.toLowerCase().includes(term.toLowerCase()))\n\t})\n}\n</script>\n\n<template>\n\t<NcSelect\n\t\tv-model=\"model\"\n\t\t:aria-label-combobox=\"t('Search for time zone')\"\n\t\t:clearable=\"false\"\n\t\t:filter-by=\"filterBy\"\n\t\t:multiple=\"false\"\n\t\t:options=\"options\"\n\t\t:placeholder=\"t('Type to search time zone')\"\n\t\t:uid=\"uid\"\n\t\t:reduce=\"(option) => option.timezoneId\"\n\t\tlabel=\"label\" />\n</template>\n"],"names":[],"mappings":";;;;;;;AAWA,SAAS,iBAAiB,YAAoB;AAC7C,SAAO,WAEL,MAAM,WAAW,QAAQ,GAAG,IAAI,CAAC,EAEjC,WAAW,KAAK,KAAK,EAErB,WAAW,KAAK,GAAG;AACtB;AAMO,SAAS,eAAe;AAC9B,SAAO,KAAK,kBAAkB,UAAU,EACtC,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,MAAM,CAAC,EACrC,IAAI,CAAC,gBAAgB;AAAA,IACrB;AAAA,IACA,OAAO,iBAAiB,UAAU;AAAA,EAAA,EACjC,EACD,KAAK,CAAC,GAAG,MAAM,EAAE,WAAW,cAAc,EAAE,UAAU,CAAC;AAC1D;;;;;;;;;;;;AC8DA,UAAM,QAAQ,kBAA0B,SAAS,OAAO;AAExD,UAAM,+BAA+B,SAAS,MAAM;AACnD,aAAO,MAAM,oBAAoB,IAAI,CAAC,EAAE,YAAY,aAAa;AAAA,QAChE;AAAA,QACA;AAAA,MAAA,EACC;AAAA,IACH,CAAC;AAED,UAAM,UAAU,SAAS,MAAM;AAC9B,YAAM,YAAY,aAAA;AAClB,gBAAU,QAAQ,GAAG,6BAA6B,KAAK;AACvD,aAAO;AAAA,IACR,CAAC;AASD,aAAS,SAAS,QAAmB,OAAe,QAAyB;AAC5E,YAAM,QAAQ,OAAO,KAAA,EAAO,MAAM,KAAK;AACvC,YAAM,SAAS,OAAO,OAAO,MAAM;AACnC,aAAO,MAAM,MAAM,CAAC,SAAS;AAC5B,eAAO,OAAO,KAAK,CAAC,UAAU,MAAM,YAAA,EAAc,SAAS,KAAK,YAAA,CAAa,CAAC;AAAA,MAC/E,CAAC;AAAA,IACF;;;;;;;;;;;;;;;;;;;;"}
@@ -3,8 +3,8 @@ require('../assets/NcUserBubble-uIpJvFoQ.css');
3
3
  const Vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
6
- const NcAvatar = require("./NcAvatar-D09ZAgeJ.cjs");
7
- const NcPopover = require("./NcPopover-Ujf9nIvN.cjs");
6
+ const NcAvatar = require("./NcAvatar-BbR_mZyT.cjs");
7
+ const NcPopover = require("./NcPopover-Bq-bsaqt.cjs");
8
8
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
9
9
  const Vue__default = /* @__PURE__ */ _interopDefault(Vue);
10
10
  const _sfc_main$1 = {
@@ -219,4 +219,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
219
219
  );
220
220
  const NcUserBubble = __component__.exports;
221
221
  exports.NcUserBubble = NcUserBubble;
222
- //# sourceMappingURL=NcUserBubble-CNQJUk2l.cjs.map
222
+ //# sourceMappingURL=NcUserBubble-BR5bw7lO.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcUserBubble-CNQJUk2l.cjs","sources":["../../src/components/NcUserBubble/NcUserBubbleDiv.vue","../../src/components/NcUserBubble/NcUserBubble.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div>\n\t\t<slot name=\"trigger\" />\n\t</div>\n</template>\n\n<script>\nexport default {\n\tname: 'NcUserBubbleDiv',\n}\n</script>\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component displays a user together with a small avatar in a grey bubble.\nIt's possible to use an actual user's avatar, just an image/icon as a url or an icon-class,\nto link the bubble to e.g. a users profile\nand to show a popover on hover with e.g. the full user name handle / email address or something else.\n\nThis component has the following slot:\n* a default slot which is for the content of the popover (this is passed to the popover component directly).\n\n### Examples\n\n```vue\n<p>\n\tSome text before <NcUserBubble user=\"admin\" display-name=\"Admin Example\" url=\"/test\">@admin@foreign-host.com</NcUserBubble> and after the bubble.\n\t<NcUserBubble avatar-image=\"icon-group\" display-name=\"test group xyz\" :primary=\"true\">Hey there!</NcUserBubble>\n</p>\n```\n\n### Example with name slot\n\n```vue\n<template>\n<NcUserBubble\n\t:margin=\"4\"\n\t:size=\"30\"\n\tdisplay-name=\"Administrator\"\n\tuser=\"admin\">\n\t<template #name>\n\t\t<a href=\"#\"\n\t\t\ttitle=\"Remove user\"\n\t\t\tclass=\"icon-close\"\n\t\t\t@click=\"alert\" />\n\t</template>\n</NcUserBubble>\n</template>\n<script>\nexport default {\n\tmethods: {\n\t\talert() {\n\t\t\talert('Removed')\n\t\t},\n\t},\n}\n</script>\n<style>\n.icon-close {\n\tdisplay: block;\n\theight: 100%;\n}\n</style>\n```\n\n</docs>\n\n<template>\n\t<component\n\t\t:is=\"isPopoverComponent\"\n\t\ttrigger=\"hover focus\"\n\t\t:shown=\"open\"\n\t\tclass=\"user-bubble__wrapper\"\n\t\t@update:open=\"onOpenChange\">\n\t\t<!-- Main userbubble structure -->\n\t\t<template #trigger=\"{ attrs }\">\n\t\t\t<component\n\t\t\t\t:is=\"isLinkComponent\"\n\t\t\t\tclass=\"user-bubble__content\"\n\t\t\t\t:style=\"styles.content\"\n\t\t\t\t:to=\"to\"\n\t\t\t\t:href=\"hasUrl ? url : null\"\n\t\t\t\t:class=\"{ 'user-bubble__content--primary': primary }\"\n\t\t\t\tv-bind=\"attrs\"\n\t\t\t\t@click=\"onClick\">\n\t\t\t\t<!-- NcAvatar -->\n\t\t\t\t<NcAvatar\n\t\t\t\t\t:url=\"isCustomAvatar && isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:icon-class=\"isCustomAvatar && !isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:user=\"user\"\n\t\t\t\t\t:display-name=\"displayName\"\n\t\t\t\t\t:size=\"size - (margin * 2)\"\n\t\t\t\t\t:style=\"styles.avatar\"\n\t\t\t\t\t:disable-tooltip=\"true\"\n\t\t\t\t\t:disable-menu=\"true\"\n\t\t\t\t\t:show-user-status=\"showUserStatus\"\n\t\t\t\t\tclass=\"user-bubble__avatar\" />\n\n\t\t\t\t<!-- Name -->\n\t\t\t\t<span class=\"user-bubble__name\">\n\t\t\t\t\t{{ displayName || user }}\n\t\t\t\t</span>\n\n\t\t\t\t<!-- @slot Optional slot just after the name -->\n\t\t\t\t<span v-if=\"$slots.name\" class=\"user-bubble__secondary\">\n\t\t\t\t\t<slot name=\"name\" />\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t</template>\n\n\t\t<!-- @slot Main Popover content on userbubble hover/focus -->\n\t\t<slot />\n\t</component>\n</template>\n\n<script>\nimport Vue from 'vue'\nimport { RouterLink } from 'vue-router'\nimport NcUserBubbleDiv from './NcUserBubbleDiv.vue'\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcPopover from '../NcPopover/index.js'\n\nexport default {\n\tname: 'NcUserBubble',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcPopover,\n\t\tNcUserBubbleDiv,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Override generated avatar, can be an url or an icon class\n\t\t */\n\t\tavatarImage: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Provide the user id if this is a user\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Displayed label\n\t\t */\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Whether or not to display the user-status\n\t\t */\n\t\tshowUserStatus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Define the whole bubble as a link\n\t\t */\n\t\turl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t\tvalidator: (url) => {\n\t\t\t\ttry {\n\t\t\t\t\tnew URL(url, url?.startsWith?.('/') ? window.location.href : undefined)\n\t\t\t\t\treturn true\n\t\t\t\t} catch {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Use bubble as a router-link for in-app navigation\n\t\t */\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Default popover state. Requires the UserBubble\n\t\t * to have some content to render inside the popover\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Use the primary colour\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * This is the height of the component\n\t\t */\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 20,\n\t\t},\n\n\t\t/**\n\t\t * This is the margin of the avatar (size - margin = avatar size)\n\t\t */\n\t\tmargin: {\n\t\t\ttype: Number,\n\t\t\tdefault: 2,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t\t'update:open',\n\t],\n\n\tcomputed: {\n\t\t/**\n\t\t * If userbubble is empty, let's NOT\n\t\t * use the Popover component\n\t\t * We need a component instead of a simple div here,\n\t\t * because otherwise the trigger template will not be shown.\n\t\t *\n\t\t * @return {string} 'Popover' or 'UserBubbleDiv'\n\t\t */\n\t\tisPopoverComponent() {\n\t\t\treturn !this.popoverEmpty\n\t\t\t\t? 'NcPopover'\n\t\t\t\t: 'NcUserBubbleDiv'\n\t\t},\n\n\t\t/**\n\t\t * Is the provided avatar url valid or not\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisAvatarUrl() {\n\t\t\tif (!this.avatarImage) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst url = new URL(this.avatarImage)\n\t\t\t\treturn !!url\n\t\t\t} catch {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Do we have a custom avatar or not\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisCustomAvatar() {\n\t\t\treturn !!this.avatarImage\n\t\t},\n\n\t\thasUrl() {\n\t\t\treturn this.url && this.url.trim() !== ''\n\t\t},\n\n\t\tisLinkComponent() {\n\t\t\tif (this.hasUrl) {\n\t\t\t\treturn 'a'\n\t\t\t} else if (this.to) {\n\t\t\t\treturn RouterLink\n\t\t\t} else {\n\t\t\t\treturn 'div'\n\t\t\t}\n\t\t},\n\n\t\tpopoverEmpty() {\n\t\t\tif ('default' in this.$slots) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\tstyles() {\n\t\t\treturn {\n\t\t\t\tcontent: {\n\t\t\t\t\theight: this.size + 'px',\n\t\t\t\t\tlineHeight: this.size + 'px',\n\t\t\t\t\tborderRadius: this.size / 2 + 'px',\n\t\t\t\t},\n\n\t\t\t\tavatar: {\n\t\t\t\t\tmarginInlineStart: this.margin + 'px',\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.displayName && !this.user) {\n\t\t\tVue.util.warn('[NcUserBubble] At least `displayName` or `user` property should be set.')\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonOpenChange(state) {\n\t\t\tthis.$emit('update:open', state)\n\t\t},\n\n\t\t/**\n\t\t * Catch and forward click event to parent\n\t\t *\n\t\t * @param {Event} event the click event\n\t\t */\n\t\tonClick(event) {\n\t\t\tthis.$emit('click', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-bubble {\n\t&__wrapper {\n\t\t// align inline with text\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\t// shrink and allow grow to fit\n\t\tmin-width: 0;\n\t\tmax-width: 100%;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-background-dark);\n\n\t\t&--primary {\n\t\t\tcolor: var(--color-primary-element-text);\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\n\t\t> :last-child {\n\t\t\t// border radius end padding\n\t\t\tpadding-inline-end: 8px;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\talign-self: center;\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__name,\n\t&__secondary {\n\t\t// proper spacing between avatar, name & slot\n\t\tpadding-block: 0;\n\t\tpadding-inline: 4px 0;\n\t}\n}\n</style>\n"],"names":["_sfc_main","NcAvatar","NcPopover","RouterLink","Vue"],"mappings":";;;;;;;;AAYA,MAAAA,cAAA;AAAA,EACA,MAAA;AACA;;;;;;;;;;;;;;;ACuGA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,IACA,UAAAC,SAAAA;AAAAA,IACA,WAAAC,UAAAA;AAAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,KAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,QAAA;AACA,YAAA;AACA,cAAA,IAAA,KAAA,KAAA,aAAA,GAAA,IAAA,OAAA,SAAA,OAAA,MAAA;AACA,iBAAA;AAAA,QACA,QAAA;AACA,iBAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,IAAA;AAAA,MACA,MAAA,CAAA,QAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,qBAAA;AACA,aAAA,CAAA,KAAA,eACA,cACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,cAAA;AACA,UAAA,CAAA,KAAA,aAAA;AACA,eAAA;AAAA,MACA;AAEA,UAAA;AACA,cAAA,MAAA,IAAA,IAAA,KAAA,WAAA;AACA,eAAA,CAAA,CAAA;AAAA,MACA,QAAA;AACA,eAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,iBAAA;AACA,aAAA,CAAA,CAAA,KAAA;AAAA,IACA;AAAA,IAEA,SAAA;AACA,aAAA,KAAA,OAAA,KAAA,IAAA,KAAA,MAAA;AAAA,IACA;AAAA,IAEA,kBAAA;AACA,UAAA,KAAA,QAAA;AACA,eAAA;AAAA,MACA,WAAA,KAAA,IAAA;AACA,eAAAC,UAAAA;AAAAA,MACA,OAAA;AACA,eAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,eAAA;AACA,UAAA,aAAA,KAAA,QAAA;AACA,eAAA;AAAA,MACA;AACA,aAAA;AAAA,IACA;AAAA,IAEA,SAAA;AACA,aAAA;AAAA,QACA,SAAA;AAAA,UACA,QAAA,KAAA,OAAA;AAAA,UACA,YAAA,KAAA,OAAA;AAAA,UACA,cAAA,KAAA,OAAA,IAAA;AAAA,QACA;AAAA,QAEA,QAAA;AAAA,UACA,mBAAA,KAAA,SAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,QAAA,CAAA,KAAA,eAAA,CAAA,KAAA,MAAA;AACAC,2BAAA,KAAA,KAAA,yEAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,aAAA,OAAA;AACA,WAAA,MAAA,eAAA,KAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,QAAA,OAAA;AACA,WAAA,MAAA,SAAA,KAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcUserBubble-BR5bw7lO.cjs","sources":["../../src/components/NcUserBubble/NcUserBubbleDiv.vue","../../src/components/NcUserBubble/NcUserBubble.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div>\n\t\t<slot name=\"trigger\" />\n\t</div>\n</template>\n\n<script>\nexport default {\n\tname: 'NcUserBubbleDiv',\n}\n</script>\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component displays a user together with a small avatar in a grey bubble.\nIt's possible to use an actual user's avatar, just an image/icon as a url or an icon-class,\nto link the bubble to e.g. a users profile\nand to show a popover on hover with e.g. the full user name handle / email address or something else.\n\nThis component has the following slot:\n* a default slot which is for the content of the popover (this is passed to the popover component directly).\n\n### Examples\n\n```vue\n<p>\n\tSome text before <NcUserBubble user=\"admin\" display-name=\"Admin Example\" url=\"/test\">@admin@foreign-host.com</NcUserBubble> and after the bubble.\n\t<NcUserBubble avatar-image=\"icon-group\" display-name=\"test group xyz\" :primary=\"true\">Hey there!</NcUserBubble>\n</p>\n```\n\n### Example with name slot\n\n```vue\n<template>\n<NcUserBubble\n\t:margin=\"4\"\n\t:size=\"30\"\n\tdisplay-name=\"Administrator\"\n\tuser=\"admin\">\n\t<template #name>\n\t\t<a href=\"#\"\n\t\t\ttitle=\"Remove user\"\n\t\t\tclass=\"icon-close\"\n\t\t\t@click=\"alert\" />\n\t</template>\n</NcUserBubble>\n</template>\n<script>\nexport default {\n\tmethods: {\n\t\talert() {\n\t\t\talert('Removed')\n\t\t},\n\t},\n}\n</script>\n<style>\n.icon-close {\n\tdisplay: block;\n\theight: 100%;\n}\n</style>\n```\n\n</docs>\n\n<template>\n\t<component\n\t\t:is=\"isPopoverComponent\"\n\t\ttrigger=\"hover focus\"\n\t\t:shown=\"open\"\n\t\tclass=\"user-bubble__wrapper\"\n\t\t@update:open=\"onOpenChange\">\n\t\t<!-- Main userbubble structure -->\n\t\t<template #trigger=\"{ attrs }\">\n\t\t\t<component\n\t\t\t\t:is=\"isLinkComponent\"\n\t\t\t\tclass=\"user-bubble__content\"\n\t\t\t\t:style=\"styles.content\"\n\t\t\t\t:to=\"to\"\n\t\t\t\t:href=\"hasUrl ? url : null\"\n\t\t\t\t:class=\"{ 'user-bubble__content--primary': primary }\"\n\t\t\t\tv-bind=\"attrs\"\n\t\t\t\t@click=\"onClick\">\n\t\t\t\t<!-- NcAvatar -->\n\t\t\t\t<NcAvatar\n\t\t\t\t\t:url=\"isCustomAvatar && isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:icon-class=\"isCustomAvatar && !isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:user=\"user\"\n\t\t\t\t\t:display-name=\"displayName\"\n\t\t\t\t\t:size=\"size - (margin * 2)\"\n\t\t\t\t\t:style=\"styles.avatar\"\n\t\t\t\t\t:disable-tooltip=\"true\"\n\t\t\t\t\t:disable-menu=\"true\"\n\t\t\t\t\t:show-user-status=\"showUserStatus\"\n\t\t\t\t\tclass=\"user-bubble__avatar\" />\n\n\t\t\t\t<!-- Name -->\n\t\t\t\t<span class=\"user-bubble__name\">\n\t\t\t\t\t{{ displayName || user }}\n\t\t\t\t</span>\n\n\t\t\t\t<!-- @slot Optional slot just after the name -->\n\t\t\t\t<span v-if=\"$slots.name\" class=\"user-bubble__secondary\">\n\t\t\t\t\t<slot name=\"name\" />\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t</template>\n\n\t\t<!-- @slot Main Popover content on userbubble hover/focus -->\n\t\t<slot />\n\t</component>\n</template>\n\n<script>\nimport Vue from 'vue'\nimport { RouterLink } from 'vue-router'\nimport NcUserBubbleDiv from './NcUserBubbleDiv.vue'\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcPopover from '../NcPopover/index.js'\n\nexport default {\n\tname: 'NcUserBubble',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcPopover,\n\t\tNcUserBubbleDiv,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Override generated avatar, can be an url or an icon class\n\t\t */\n\t\tavatarImage: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Provide the user id if this is a user\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Displayed label\n\t\t */\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Whether or not to display the user-status\n\t\t */\n\t\tshowUserStatus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Define the whole bubble as a link\n\t\t */\n\t\turl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t\tvalidator: (url) => {\n\t\t\t\ttry {\n\t\t\t\t\tnew URL(url, url?.startsWith?.('/') ? window.location.href : undefined)\n\t\t\t\t\treturn true\n\t\t\t\t} catch {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Use bubble as a router-link for in-app navigation\n\t\t */\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Default popover state. Requires the UserBubble\n\t\t * to have some content to render inside the popover\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Use the primary colour\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * This is the height of the component\n\t\t */\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 20,\n\t\t},\n\n\t\t/**\n\t\t * This is the margin of the avatar (size - margin = avatar size)\n\t\t */\n\t\tmargin: {\n\t\t\ttype: Number,\n\t\t\tdefault: 2,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t\t'update:open',\n\t],\n\n\tcomputed: {\n\t\t/**\n\t\t * If userbubble is empty, let's NOT\n\t\t * use the Popover component\n\t\t * We need a component instead of a simple div here,\n\t\t * because otherwise the trigger template will not be shown.\n\t\t *\n\t\t * @return {string} 'Popover' or 'UserBubbleDiv'\n\t\t */\n\t\tisPopoverComponent() {\n\t\t\treturn !this.popoverEmpty\n\t\t\t\t? 'NcPopover'\n\t\t\t\t: 'NcUserBubbleDiv'\n\t\t},\n\n\t\t/**\n\t\t * Is the provided avatar url valid or not\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisAvatarUrl() {\n\t\t\tif (!this.avatarImage) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst url = new URL(this.avatarImage)\n\t\t\t\treturn !!url\n\t\t\t} catch {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Do we have a custom avatar or not\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisCustomAvatar() {\n\t\t\treturn !!this.avatarImage\n\t\t},\n\n\t\thasUrl() {\n\t\t\treturn this.url && this.url.trim() !== ''\n\t\t},\n\n\t\tisLinkComponent() {\n\t\t\tif (this.hasUrl) {\n\t\t\t\treturn 'a'\n\t\t\t} else if (this.to) {\n\t\t\t\treturn RouterLink\n\t\t\t} else {\n\t\t\t\treturn 'div'\n\t\t\t}\n\t\t},\n\n\t\tpopoverEmpty() {\n\t\t\tif ('default' in this.$slots) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\tstyles() {\n\t\t\treturn {\n\t\t\t\tcontent: {\n\t\t\t\t\theight: this.size + 'px',\n\t\t\t\t\tlineHeight: this.size + 'px',\n\t\t\t\t\tborderRadius: this.size / 2 + 'px',\n\t\t\t\t},\n\n\t\t\t\tavatar: {\n\t\t\t\t\tmarginInlineStart: this.margin + 'px',\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.displayName && !this.user) {\n\t\t\tVue.util.warn('[NcUserBubble] At least `displayName` or `user` property should be set.')\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonOpenChange(state) {\n\t\t\tthis.$emit('update:open', state)\n\t\t},\n\n\t\t/**\n\t\t * Catch and forward click event to parent\n\t\t *\n\t\t * @param {Event} event the click event\n\t\t */\n\t\tonClick(event) {\n\t\t\tthis.$emit('click', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-bubble {\n\t&__wrapper {\n\t\t// align inline with text\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\t// shrink and allow grow to fit\n\t\tmin-width: 0;\n\t\tmax-width: 100%;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-background-dark);\n\n\t\t&--primary {\n\t\t\tcolor: var(--color-primary-element-text);\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\n\t\t> :last-child {\n\t\t\t// border radius end padding\n\t\t\tpadding-inline-end: 8px;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\talign-self: center;\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__name,\n\t&__secondary {\n\t\t// proper spacing between avatar, name & slot\n\t\tpadding-block: 0;\n\t\tpadding-inline: 4px 0;\n\t}\n}\n</style>\n"],"names":["_sfc_main","NcAvatar","NcPopover","RouterLink","Vue"],"mappings":"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"}
@@ -2,8 +2,8 @@ import '../assets/NcUserBubble-uIpJvFoQ.css';
2
2
  import Vue from "vue";
3
3
  import { RouterLink } from "vue-router";
4
4
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
5
- import { N as NcAvatar } from "./NcAvatar-DkAX4nqq.mjs";
6
- import { N as NcPopover } from "./NcPopover-UAg26Qdd.mjs";
5
+ import { N as NcAvatar } from "./NcAvatar-C1ty7wsG.mjs";
6
+ import { N as NcPopover } from "./NcPopover-BaHX3QSG.mjs";
7
7
  const _sfc_main$1 = {
8
8
  name: "NcUserBubbleDiv"
9
9
  };
@@ -218,4 +218,4 @@ const NcUserBubble = __component__.exports;
218
218
  export {
219
219
  NcUserBubble as N
220
220
  };
221
- //# sourceMappingURL=NcUserBubble-BGfZAi4c.mjs.map
221
+ //# sourceMappingURL=NcUserBubble-Bd-PEfyK.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcUserBubble-BGfZAi4c.mjs","sources":["../../src/components/NcUserBubble/NcUserBubbleDiv.vue","../../src/components/NcUserBubble/NcUserBubble.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div>\n\t\t<slot name=\"trigger\" />\n\t</div>\n</template>\n\n<script>\nexport default {\n\tname: 'NcUserBubbleDiv',\n}\n</script>\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component displays a user together with a small avatar in a grey bubble.\nIt's possible to use an actual user's avatar, just an image/icon as a url or an icon-class,\nto link the bubble to e.g. a users profile\nand to show a popover on hover with e.g. the full user name handle / email address or something else.\n\nThis component has the following slot:\n* a default slot which is for the content of the popover (this is passed to the popover component directly).\n\n### Examples\n\n```vue\n<p>\n\tSome text before <NcUserBubble user=\"admin\" display-name=\"Admin Example\" url=\"/test\">@admin@foreign-host.com</NcUserBubble> and after the bubble.\n\t<NcUserBubble avatar-image=\"icon-group\" display-name=\"test group xyz\" :primary=\"true\">Hey there!</NcUserBubble>\n</p>\n```\n\n### Example with name slot\n\n```vue\n<template>\n<NcUserBubble\n\t:margin=\"4\"\n\t:size=\"30\"\n\tdisplay-name=\"Administrator\"\n\tuser=\"admin\">\n\t<template #name>\n\t\t<a href=\"#\"\n\t\t\ttitle=\"Remove user\"\n\t\t\tclass=\"icon-close\"\n\t\t\t@click=\"alert\" />\n\t</template>\n</NcUserBubble>\n</template>\n<script>\nexport default {\n\tmethods: {\n\t\talert() {\n\t\t\talert('Removed')\n\t\t},\n\t},\n}\n</script>\n<style>\n.icon-close {\n\tdisplay: block;\n\theight: 100%;\n}\n</style>\n```\n\n</docs>\n\n<template>\n\t<component\n\t\t:is=\"isPopoverComponent\"\n\t\ttrigger=\"hover focus\"\n\t\t:shown=\"open\"\n\t\tclass=\"user-bubble__wrapper\"\n\t\t@update:open=\"onOpenChange\">\n\t\t<!-- Main userbubble structure -->\n\t\t<template #trigger=\"{ attrs }\">\n\t\t\t<component\n\t\t\t\t:is=\"isLinkComponent\"\n\t\t\t\tclass=\"user-bubble__content\"\n\t\t\t\t:style=\"styles.content\"\n\t\t\t\t:to=\"to\"\n\t\t\t\t:href=\"hasUrl ? url : null\"\n\t\t\t\t:class=\"{ 'user-bubble__content--primary': primary }\"\n\t\t\t\tv-bind=\"attrs\"\n\t\t\t\t@click=\"onClick\">\n\t\t\t\t<!-- NcAvatar -->\n\t\t\t\t<NcAvatar\n\t\t\t\t\t:url=\"isCustomAvatar && isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:icon-class=\"isCustomAvatar && !isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:user=\"user\"\n\t\t\t\t\t:display-name=\"displayName\"\n\t\t\t\t\t:size=\"size - (margin * 2)\"\n\t\t\t\t\t:style=\"styles.avatar\"\n\t\t\t\t\t:disable-tooltip=\"true\"\n\t\t\t\t\t:disable-menu=\"true\"\n\t\t\t\t\t:show-user-status=\"showUserStatus\"\n\t\t\t\t\tclass=\"user-bubble__avatar\" />\n\n\t\t\t\t<!-- Name -->\n\t\t\t\t<span class=\"user-bubble__name\">\n\t\t\t\t\t{{ displayName || user }}\n\t\t\t\t</span>\n\n\t\t\t\t<!-- @slot Optional slot just after the name -->\n\t\t\t\t<span v-if=\"$slots.name\" class=\"user-bubble__secondary\">\n\t\t\t\t\t<slot name=\"name\" />\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t</template>\n\n\t\t<!-- @slot Main Popover content on userbubble hover/focus -->\n\t\t<slot />\n\t</component>\n</template>\n\n<script>\nimport Vue from 'vue'\nimport { RouterLink } from 'vue-router'\nimport NcUserBubbleDiv from './NcUserBubbleDiv.vue'\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcPopover from '../NcPopover/index.js'\n\nexport default {\n\tname: 'NcUserBubble',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcPopover,\n\t\tNcUserBubbleDiv,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Override generated avatar, can be an url or an icon class\n\t\t */\n\t\tavatarImage: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Provide the user id if this is a user\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Displayed label\n\t\t */\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Whether or not to display the user-status\n\t\t */\n\t\tshowUserStatus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Define the whole bubble as a link\n\t\t */\n\t\turl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t\tvalidator: (url) => {\n\t\t\t\ttry {\n\t\t\t\t\tnew URL(url, url?.startsWith?.('/') ? window.location.href : undefined)\n\t\t\t\t\treturn true\n\t\t\t\t} catch {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Use bubble as a router-link for in-app navigation\n\t\t */\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Default popover state. Requires the UserBubble\n\t\t * to have some content to render inside the popover\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Use the primary colour\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * This is the height of the component\n\t\t */\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 20,\n\t\t},\n\n\t\t/**\n\t\t * This is the margin of the avatar (size - margin = avatar size)\n\t\t */\n\t\tmargin: {\n\t\t\ttype: Number,\n\t\t\tdefault: 2,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t\t'update:open',\n\t],\n\n\tcomputed: {\n\t\t/**\n\t\t * If userbubble is empty, let's NOT\n\t\t * use the Popover component\n\t\t * We need a component instead of a simple div here,\n\t\t * because otherwise the trigger template will not be shown.\n\t\t *\n\t\t * @return {string} 'Popover' or 'UserBubbleDiv'\n\t\t */\n\t\tisPopoverComponent() {\n\t\t\treturn !this.popoverEmpty\n\t\t\t\t? 'NcPopover'\n\t\t\t\t: 'NcUserBubbleDiv'\n\t\t},\n\n\t\t/**\n\t\t * Is the provided avatar url valid or not\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisAvatarUrl() {\n\t\t\tif (!this.avatarImage) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst url = new URL(this.avatarImage)\n\t\t\t\treturn !!url\n\t\t\t} catch {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Do we have a custom avatar or not\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisCustomAvatar() {\n\t\t\treturn !!this.avatarImage\n\t\t},\n\n\t\thasUrl() {\n\t\t\treturn this.url && this.url.trim() !== ''\n\t\t},\n\n\t\tisLinkComponent() {\n\t\t\tif (this.hasUrl) {\n\t\t\t\treturn 'a'\n\t\t\t} else if (this.to) {\n\t\t\t\treturn RouterLink\n\t\t\t} else {\n\t\t\t\treturn 'div'\n\t\t\t}\n\t\t},\n\n\t\tpopoverEmpty() {\n\t\t\tif ('default' in this.$slots) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\tstyles() {\n\t\t\treturn {\n\t\t\t\tcontent: {\n\t\t\t\t\theight: this.size + 'px',\n\t\t\t\t\tlineHeight: this.size + 'px',\n\t\t\t\t\tborderRadius: this.size / 2 + 'px',\n\t\t\t\t},\n\n\t\t\t\tavatar: {\n\t\t\t\t\tmarginInlineStart: this.margin + 'px',\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.displayName && !this.user) {\n\t\t\tVue.util.warn('[NcUserBubble] At least `displayName` or `user` property should be set.')\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonOpenChange(state) {\n\t\t\tthis.$emit('update:open', state)\n\t\t},\n\n\t\t/**\n\t\t * Catch and forward click event to parent\n\t\t *\n\t\t * @param {Event} event the click event\n\t\t */\n\t\tonClick(event) {\n\t\t\tthis.$emit('click', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-bubble {\n\t&__wrapper {\n\t\t// align inline with text\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\t// shrink and allow grow to fit\n\t\tmin-width: 0;\n\t\tmax-width: 100%;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-background-dark);\n\n\t\t&--primary {\n\t\t\tcolor: var(--color-primary-element-text);\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\n\t\t> :last-child {\n\t\t\t// border radius end padding\n\t\t\tpadding-inline-end: 8px;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\talign-self: center;\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__name,\n\t&__secondary {\n\t\t// proper spacing between avatar, name & slot\n\t\tpadding-block: 0;\n\t\tpadding-inline: 4px 0;\n\t}\n}\n</style>\n"],"names":["_sfc_main"],"mappings":"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"}
1
+ {"version":3,"file":"NcUserBubble-Bd-PEfyK.mjs","sources":["../../src/components/NcUserBubble/NcUserBubbleDiv.vue","../../src/components/NcUserBubble/NcUserBubble.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div>\n\t\t<slot name=\"trigger\" />\n\t</div>\n</template>\n\n<script>\nexport default {\n\tname: 'NcUserBubbleDiv',\n}\n</script>\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component displays a user together with a small avatar in a grey bubble.\nIt's possible to use an actual user's avatar, just an image/icon as a url or an icon-class,\nto link the bubble to e.g. a users profile\nand to show a popover on hover with e.g. the full user name handle / email address or something else.\n\nThis component has the following slot:\n* a default slot which is for the content of the popover (this is passed to the popover component directly).\n\n### Examples\n\n```vue\n<p>\n\tSome text before <NcUserBubble user=\"admin\" display-name=\"Admin Example\" url=\"/test\">@admin@foreign-host.com</NcUserBubble> and after the bubble.\n\t<NcUserBubble avatar-image=\"icon-group\" display-name=\"test group xyz\" :primary=\"true\">Hey there!</NcUserBubble>\n</p>\n```\n\n### Example with name slot\n\n```vue\n<template>\n<NcUserBubble\n\t:margin=\"4\"\n\t:size=\"30\"\n\tdisplay-name=\"Administrator\"\n\tuser=\"admin\">\n\t<template #name>\n\t\t<a href=\"#\"\n\t\t\ttitle=\"Remove user\"\n\t\t\tclass=\"icon-close\"\n\t\t\t@click=\"alert\" />\n\t</template>\n</NcUserBubble>\n</template>\n<script>\nexport default {\n\tmethods: {\n\t\talert() {\n\t\t\talert('Removed')\n\t\t},\n\t},\n}\n</script>\n<style>\n.icon-close {\n\tdisplay: block;\n\theight: 100%;\n}\n</style>\n```\n\n</docs>\n\n<template>\n\t<component\n\t\t:is=\"isPopoverComponent\"\n\t\ttrigger=\"hover focus\"\n\t\t:shown=\"open\"\n\t\tclass=\"user-bubble__wrapper\"\n\t\t@update:open=\"onOpenChange\">\n\t\t<!-- Main userbubble structure -->\n\t\t<template #trigger=\"{ attrs }\">\n\t\t\t<component\n\t\t\t\t:is=\"isLinkComponent\"\n\t\t\t\tclass=\"user-bubble__content\"\n\t\t\t\t:style=\"styles.content\"\n\t\t\t\t:to=\"to\"\n\t\t\t\t:href=\"hasUrl ? url : null\"\n\t\t\t\t:class=\"{ 'user-bubble__content--primary': primary }\"\n\t\t\t\tv-bind=\"attrs\"\n\t\t\t\t@click=\"onClick\">\n\t\t\t\t<!-- NcAvatar -->\n\t\t\t\t<NcAvatar\n\t\t\t\t\t:url=\"isCustomAvatar && isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:icon-class=\"isCustomAvatar && !isAvatarUrl ? avatarImage : undefined\"\n\t\t\t\t\t:user=\"user\"\n\t\t\t\t\t:display-name=\"displayName\"\n\t\t\t\t\t:size=\"size - (margin * 2)\"\n\t\t\t\t\t:style=\"styles.avatar\"\n\t\t\t\t\t:disable-tooltip=\"true\"\n\t\t\t\t\t:disable-menu=\"true\"\n\t\t\t\t\t:show-user-status=\"showUserStatus\"\n\t\t\t\t\tclass=\"user-bubble__avatar\" />\n\n\t\t\t\t<!-- Name -->\n\t\t\t\t<span class=\"user-bubble__name\">\n\t\t\t\t\t{{ displayName || user }}\n\t\t\t\t</span>\n\n\t\t\t\t<!-- @slot Optional slot just after the name -->\n\t\t\t\t<span v-if=\"$slots.name\" class=\"user-bubble__secondary\">\n\t\t\t\t\t<slot name=\"name\" />\n\t\t\t\t</span>\n\t\t\t</component>\n\t\t</template>\n\n\t\t<!-- @slot Main Popover content on userbubble hover/focus -->\n\t\t<slot />\n\t</component>\n</template>\n\n<script>\nimport Vue from 'vue'\nimport { RouterLink } from 'vue-router'\nimport NcUserBubbleDiv from './NcUserBubbleDiv.vue'\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcPopover from '../NcPopover/index.js'\n\nexport default {\n\tname: 'NcUserBubble',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcPopover,\n\t\tNcUserBubbleDiv,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Override generated avatar, can be an url or an icon class\n\t\t */\n\t\tavatarImage: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Provide the user id if this is a user\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Displayed label\n\t\t */\n\t\tdisplayName: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Whether or not to display the user-status\n\t\t */\n\t\tshowUserStatus: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Define the whole bubble as a link\n\t\t */\n\t\turl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t\tvalidator: (url) => {\n\t\t\t\ttry {\n\t\t\t\t\tnew URL(url, url?.startsWith?.('/') ? window.location.href : undefined)\n\t\t\t\t\treturn true\n\t\t\t\t} catch {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Use bubble as a router-link for in-app navigation\n\t\t */\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Default popover state. Requires the UserBubble\n\t\t * to have some content to render inside the popover\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Use the primary colour\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * This is the height of the component\n\t\t */\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 20,\n\t\t},\n\n\t\t/**\n\t\t * This is the margin of the avatar (size - margin = avatar size)\n\t\t */\n\t\tmargin: {\n\t\t\ttype: Number,\n\t\t\tdefault: 2,\n\t\t},\n\t},\n\n\temits: [\n\t\t'click',\n\t\t'update:open',\n\t],\n\n\tcomputed: {\n\t\t/**\n\t\t * If userbubble is empty, let's NOT\n\t\t * use the Popover component\n\t\t * We need a component instead of a simple div here,\n\t\t * because otherwise the trigger template will not be shown.\n\t\t *\n\t\t * @return {string} 'Popover' or 'UserBubbleDiv'\n\t\t */\n\t\tisPopoverComponent() {\n\t\t\treturn !this.popoverEmpty\n\t\t\t\t? 'NcPopover'\n\t\t\t\t: 'NcUserBubbleDiv'\n\t\t},\n\n\t\t/**\n\t\t * Is the provided avatar url valid or not\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisAvatarUrl() {\n\t\t\tif (!this.avatarImage) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst url = new URL(this.avatarImage)\n\t\t\t\treturn !!url\n\t\t\t} catch {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Do we have a custom avatar or not\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisCustomAvatar() {\n\t\t\treturn !!this.avatarImage\n\t\t},\n\n\t\thasUrl() {\n\t\t\treturn this.url && this.url.trim() !== ''\n\t\t},\n\n\t\tisLinkComponent() {\n\t\t\tif (this.hasUrl) {\n\t\t\t\treturn 'a'\n\t\t\t} else if (this.to) {\n\t\t\t\treturn RouterLink\n\t\t\t} else {\n\t\t\t\treturn 'div'\n\t\t\t}\n\t\t},\n\n\t\tpopoverEmpty() {\n\t\t\tif ('default' in this.$slots) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\tstyles() {\n\t\t\treturn {\n\t\t\t\tcontent: {\n\t\t\t\t\theight: this.size + 'px',\n\t\t\t\t\tlineHeight: this.size + 'px',\n\t\t\t\t\tborderRadius: this.size / 2 + 'px',\n\t\t\t\t},\n\n\t\t\t\tavatar: {\n\t\t\t\t\tmarginInlineStart: this.margin + 'px',\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tif (!this.displayName && !this.user) {\n\t\t\tVue.util.warn('[NcUserBubble] At least `displayName` or `user` property should be set.')\n\t\t}\n\t},\n\n\tmethods: {\n\t\tonOpenChange(state) {\n\t\t\tthis.$emit('update:open', state)\n\t\t},\n\n\t\t/**\n\t\t * Catch and forward click event to parent\n\t\t *\n\t\t * @param {Event} event the click event\n\t\t */\n\t\tonClick(event) {\n\t\t\tthis.$emit('click', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-bubble {\n\t&__wrapper {\n\t\t// align inline with text\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t\t// shrink and allow grow to fit\n\t\tmin-width: 0;\n\t\tmax-width: 100%;\n\t}\n\n\t&__content {\n\t\tdisplay: inline-flex;\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-background-dark);\n\n\t\t&--primary {\n\t\t\tcolor: var(--color-primary-element-text);\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\n\t\t> :last-child {\n\t\t\t// border radius end padding\n\t\t\tpadding-inline-end: 8px;\n\t\t}\n\t}\n\n\t&__avatar {\n\t\talign-self: center;\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__name,\n\t&__secondary {\n\t\t// proper spacing between avatar, name & slot\n\t\tpadding-block: 0;\n\t\tpadding-inline: 4px 0;\n\t}\n}\n</style>\n"],"names":["_sfc_main"],"mappings":"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"}
@@ -3,8 +3,8 @@ require('../assets/NcUserStatusIcon-Bw8yMFMP.css');
3
3
  const axios = require("@nextcloud/axios");
4
4
  const capabilities = require("@nextcloud/capabilities");
5
5
  const router = require("@nextcloud/router");
6
- const _l10n = require("./_l10n-skrZri3h.cjs");
7
- const legacy = require("./legacy-Bk0qQxIg.cjs");
6
+ const _l10n = require("./_l10n-Be-gO5QO.cjs");
7
+ const legacy = require("./legacy-BpZw2Eww.cjs");
8
8
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
9
9
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
10
10
  const axios__default = /* @__PURE__ */ _interopDefault(axios);
@@ -17,8 +17,8 @@ const invisibleLegacySvg = '<!--\n - SPDX-FileCopyrightText: 2020 Google Inc.\n
17
17
  const invisibleSvg = '<!--\n - SPDX-FileCopyrightText: 2020 Google Inc.\n - SPDX-License-Identifier: Apache-2.0\n-->\n<svg viewBox="0 -960 960 960" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg">\n <path\n fill="var(--user-status-color-offline, var(--color-text-maxcontrast, #6B6B6B))"\n d="M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z"/>\n</svg>\n';
18
18
  const onlineLegacySvg = '<!--\n - SPDX-FileCopyrightText: 2020 Google Inc.\n - SPDX-License-Identifier: Apache-2.0\n-->\n<svg viewBox="-1 -1 18 18" width="16" height="16" xmlns="http://www.w3.org/2000/svg">\n <path fill="var(--color-success)" d="M4.8 11.2h6.4V4.8H4.8v6.4zM8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z" />\n</svg>\n';
19
19
  const onlineSvg = '<!--\n - SPDX-FileCopyrightText: 2020 Google Inc.\n - SPDX-License-Identifier: Apache-2.0\n-->\n<svg viewBox="0 -960 960 960" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg">\n <path\n fill="var(--user-status-color-online, var(--color-success, #2D7B41))"\n d="m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z"/>\n</svg>\n';
20
- _l10n.register(_l10n.t53);
21
- _l10n.register(_l10n.t11);
20
+ _l10n.register(_l10n.t54);
21
+ _l10n.register(_l10n.t12);
22
22
  function getUserStatusText(status) {
23
23
  switch (status) {
24
24
  case "away":
@@ -142,4 +142,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
142
142
  const NcUserStatusIcon = __component__.exports;
143
143
  exports.NcUserStatusIcon = NcUserStatusIcon;
144
144
  exports.getUserStatusText = getUserStatusText;
145
- //# sourceMappingURL=NcUserStatusIcon-BnGtoiCy.cjs.map
145
+ //# sourceMappingURL=NcUserStatusIcon-BP2cHGxs.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcUserStatusIcon-BnGtoiCy.cjs","sources":["../../src/assets/status-icons/user-status-away-legacy.svg?raw","../../src/assets/status-icons/user-status-away.svg?raw","../../src/assets/status-icons/user-status-busy.svg?raw","../../src/assets/status-icons/user-status-dnd-legacy.svg?raw","../../src/assets/status-icons/user-status-dnd.svg?raw","../../src/assets/status-icons/user-status-invisible-legacy.svg?raw","../../src/assets/status-icons/user-status-invisible.svg?raw","../../src/assets/status-icons/user-status-online-legacy.svg?raw","../../src/assets/status-icons/user-status-online.svg?raw","../../src/utils/UserStatus.ts","../../src/components/NcUserStatusIcon/NcUserStatusIcon.vue"],"sourcesContent":["export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4z\\\" />\\n\\t<path fill=\\\"var(--color-warning)\\\" d=\\\"M6.9.1C3 .6-.1 4-.1 8c0 4.4 3.6 8 8 8 4 0 7.4-3 8-6.9-1.2 1.3-2.9 2.1-4.7 2.1-3.5 0-6.4-2.9-6.4-6.4 0-1.9.8-3.6 2.1-4.7z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-away, var(--color-warning, #C88800))\\\"\\n\\t\\td=\\\"m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-busy, var(--color-error, #DB0606))\\\"\\n\\t\\td=\\\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4V-4z\\\" />\\n\\t<path fill=\\\"var(--color-border-error, var(--color-error))\\\" d=\\\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\" />\\n\\t<path fill=\\\"#fdffff\\\" d=\\\"M5 6.5h6c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5H5c-.8 0-1.5-.7-1.5-1.5S4.2 6.5 5 6.5z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-busy, var(--color-error, #DB0606))\\\"\\n\\t\\td=\\\"M280-440h400v-80H280v80ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4V-4z\\\" />\\n\\t<path d=\\\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 3.2c2.7 0 4.8 2.1 4.8 4.8s-2.1 4.8-4.8 4.8S3.2 10.7 3.2 8 5.3 3.2 8 3.2z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-offline, var(--color-text-maxcontrast, #6B6B6B))\\\"\\n\\t\\td=\\\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"var(--color-success)\\\" d=\\\"M4.8 11.2h6.4V4.8H4.8v6.4zM8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-online, var(--color-success, #2D7B41))\\\"\\n\\t\\td=\\\"m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '../l10n.js'\n\ntype Status = 'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'\n\n/**\n * Get the translated label for a given user status\n *\n * @param status - The user status\n */\nexport function getUserStatusText(status: Status): string {\n\tswitch (status) {\n\t\tcase 'away': return t('away') // TRANSLATORS: User status if the user is currently away from keyboard\n\t\tcase 'busy': return t('busy')\n\t\tcase 'dnd': return t('do not disturb')\n\t\tcase 'online': return t('online')\n\t\tcase 'invisible': return t('invisible')\n\t\tcase 'offline': return t('offline')\n\t\tdefault: return status\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\n\nThis component displays a user status icon.\n\n### Example\n\n```vue\n<template>\n\t<div class=\"flex\">\n\t\t<div class=\"grid\">\n\t\t\t<NcUserStatusIcon status=\"online\" />\n\t\t\t<span>Online</span>\n\t\t\t<NcUserStatusIcon status=\"away\" />\n\t\t\t<span>Away</span>\n\t\t\t<NcUserStatusIcon status=\"busy\" />\n\t\t\t<span>Busy</span>\n\t\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t\t<span>Do not disturb</span>\n\t\t\t<NcUserStatusIcon status=\"invisible\" />\n\t\t\t<span>Invisible</span>\n\t\t\t<NcUserStatusIcon status=\"offline\" />\n\t\t\t<span>Offline</span>\n\t\t</div>\n\n\t\t<NcThemeProvider dark>\n\t\t\t<div class=\"grid\">\n\t\t\t\t<NcUserStatusIcon status=\"online\" />\n\t\t\t\t<span>Online</span>\n\t\t\t\t<NcUserStatusIcon status=\"away\" />\n\t\t\t\t<span>Away</span>\n\t\t\t\t<NcUserStatusIcon status=\"busy\" />\n\t\t\t\t<span>Busy</span>\n\t\t\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t\t\t<span>Do not disturb</span>\n\t\t\t\t<NcUserStatusIcon status=\"invisible\" />\n\t\t\t\t<span>Invisible</span>\n\t\t\t\t<NcUserStatusIcon status=\"offline\" />\n\t\t\t\t<span>Offline</span>\n\t\t\t</div>\n\t\t</NcThemeProvider>\n\t</div>\n</template>\n\n<style>\n.flex {\n\tdisplay: flex;\n\tgap: 4px;\n}\n\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: 20px 1fr;\n\tgap: 8px;\n\talign-items: center;\n\tpadding: 4px;\n\twidth: fit-content;\n\tbackground-color: var(--color-main-background);\n\tcolor: var(--color-main-text);\n}\n</style>\n```\n</docs>\n\n<template>\n\t<span\n\t\tv-if=\"activeStatus\"\n\t\tclass=\"user-status-icon\"\n\t\t:class=\"{\n\t\t\t'user-status-icon--invisible': ['invisible', 'offline'].includes(status),\n\t\t}\"\n\t\trole=\"img\"\n\t\t:aria-hidden=\"ariaHidden\"\n\t\t:aria-label=\"ariaLabel\"\n\t\tv-html=\"activeSvg\" /> <!-- eslint-disable-line vue/no-v-html -->\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport awayLegacySvg from '../../assets/status-icons/user-status-away-legacy.svg?raw'\nimport awaySvg from '../../assets/status-icons/user-status-away.svg?raw'\nimport busySvg from '../../assets/status-icons/user-status-busy.svg?raw'\nimport dndLegacySvg from '../../assets/status-icons/user-status-dnd-legacy.svg?raw'\nimport dndSvg from '../../assets/status-icons/user-status-dnd.svg?raw'\nimport invisibleLegacySvg from '../../assets/status-icons/user-status-invisible-legacy.svg?raw'\nimport invisibleSvg from '../../assets/status-icons/user-status-invisible.svg?raw'\nimport onlineLegacySvg from '../../assets/status-icons/user-status-online-legacy.svg?raw'\nimport onlineSvg from '../../assets/status-icons/user-status-online.svg?raw'\nimport { t } from '../../l10n.js'\nimport { isLegacy32 } from '../../utils/legacy.ts'\nimport { getUserStatusText } from '../../utils/UserStatus.ts'\n\nconst matchSvg = {\n\tonline: isLegacy32 ? onlineLegacySvg : onlineSvg,\n\taway: isLegacy32 ? awayLegacySvg : awaySvg,\n\tbusy: isLegacy32 ? awayLegacySvg : busySvg,\n\tdnd: isLegacy32 ? dndLegacySvg : dndSvg,\n\tinvisible: isLegacy32 ? invisibleLegacySvg : invisibleSvg,\n\toffline: isLegacy32 ? invisibleLegacySvg : invisibleSvg,\n}\n\nexport default {\n\tname: 'NcUserStatusIcon',\n\n\tprops: {\n\t\t/**\n\t\t * Set the user id to fetch the status\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Set the status\n\t\t *\n\t\t * @type {'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'}\n\t\t */\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => [\n\t\t\t\t'online',\n\t\t\t\t'away',\n\t\t\t\t'busy',\n\t\t\t\t'dnd',\n\t\t\t\t'invisible',\n\t\t\t\t'offline',\n\t\t\t].includes(value),\n\t\t},\n\n\t\t/**\n\t\t * Set the `aria-hidden` attribute\n\t\t *\n\t\t * @type {'true' | 'false'}\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => [\n\t\t\t\t'true',\n\t\t\t\t'false',\n\t\t\t].includes(value),\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfetchedUserStatus: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tactiveStatus() {\n\t\t\treturn this.status ?? this.fetchedUserStatus\n\t\t},\n\n\t\tactiveSvg() {\n\t\t\treturn matchSvg[this.activeStatus] ?? null\n\t\t},\n\n\t\tariaLabel() {\n\t\t\tif (this.ariaHidden === 'true') {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn t('User status: {status}', { status: getUserStatusText(this.activeStatus) })\n\t\t},\n\t},\n\n\twatch: {\n\t\tuser: {\n\t\t\timmediate: true,\n\t\t\tasync handler(user) {\n\t\t\t\tif (!user || !getCapabilities()?.user_status?.enabled) {\n\t\t\t\t\tthis.fetchedUserStatus = null\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tconst { data } = await axios.get(generateOcsUrl('/apps/user_status/api/v1/statuses/{user}', { user }))\n\t\t\t\t\tthis.fetchedUserStatus = data.ocs?.data?.status\n\t\t\t\t} catch {\n\t\t\t\t\tthis.fetchedUserStatus = null\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-status-icon {\n\t// Custom colors for the svg icons, to not rely on server variables\n\t--user-status-color-online: #2D7B41;\n\t--user-status-color-busy: #DB0606;\n\t--user-status-color-away: #C88800;\n\t--user-status-color-offline: #6B6B6B;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\n\t&--invisible {\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t:deep(svg) {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n}\n</style>\n"],"names":["t","isLegacy32","getCapabilities","axios","generateOcsUrl"],"mappings":";;;;;;;;;AAAA,MAAA,gBAAe;ACAf,MAAA,UAAe;ACAf,MAAA,UAAe;ACAf,MAAA,eAAe;ACAf,MAAA,SAAe;ACAf,MAAA,qBAAe;ACAf,MAAA,eAAe;ACAf,MAAA,kBAAe;ACAf,MAAA,YAAe;;;ACcR,SAAS,kBAAkB,QAAwB;AACzD,UAAQ,QAAA;AAAA,IACP,KAAK;AAAQ,aAAOA,MAAAA,EAAE,MAAM;AAAA;AAAA,IAC5B,KAAK;AAAQ,aAAOA,MAAAA,EAAE,MAAM;AAAA,IAC5B,KAAK;AAAO,aAAOA,MAAAA,EAAE,gBAAgB;AAAA,IACrC,KAAK;AAAU,aAAOA,MAAAA,EAAE,QAAQ;AAAA,IAChC,KAAK;AAAa,aAAOA,MAAAA,EAAE,WAAW;AAAA,IACtC,KAAK;AAAW,aAAOA,MAAAA,EAAE,SAAS;AAAA,IAClC;AAAS,aAAO;AAAA,EAAA;AAElB;AC2EA,MAAA,WAAA;AAAA,EACA,QAAAC,OAAAA,aAAA,kBAAA;AAAA,EACA,MAAAA,OAAAA,aAAA,gBAAA;AAAA,EACA,MAAAA,OAAAA,aAAA,gBAAA;AAAA,EACA,KAAAA,OAAAA,aAAA,eAAA;AAAA,EACA,WAAAA,OAAAA,aAAA,qBAAA;AAAA,EACA,SAAAA,OAAAA,aAAA,qBAAA;AACA;AAEA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,UAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACA,EAAA,SAAA,KAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,UAAA;AAAA,QACA;AAAA,QACA;AAAA,MACA,EAAA,SAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,mBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,eAAA;AACA,aAAA,KAAA,UAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAA,SAAA,KAAA,YAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,UAAA,KAAA,eAAA,QAAA;AACA,eAAA;AAAA,MACA;AACA,aAAAD,MAAAA,EAAA,yBAAA,EAAA,QAAA,kBAAA,KAAA,YAAA,EAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA,QAAA,MAAA;AACA,YAAA,CAAA,QAAA,CAAAE,aAAAA,gBAAA,GAAA,aAAA,SAAA;AACA,eAAA,oBAAA;AACA;AAAA,QACA;AACA,YAAA;AACA,gBAAA,EAAA,KAAA,IAAA,MAAAC,eAAAA,QAAA,IAAAC,sBAAA,4CAAA,EAAA,MAAA,CAAA;AACA,eAAA,oBAAA,KAAA,KAAA,MAAA;AAAA,QACA,QAAA;AACA,eAAA,oBAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcUserStatusIcon-BP2cHGxs.cjs","sources":["../../src/assets/status-icons/user-status-away-legacy.svg?raw","../../src/assets/status-icons/user-status-away.svg?raw","../../src/assets/status-icons/user-status-busy.svg?raw","../../src/assets/status-icons/user-status-dnd-legacy.svg?raw","../../src/assets/status-icons/user-status-dnd.svg?raw","../../src/assets/status-icons/user-status-invisible-legacy.svg?raw","../../src/assets/status-icons/user-status-invisible.svg?raw","../../src/assets/status-icons/user-status-online-legacy.svg?raw","../../src/assets/status-icons/user-status-online.svg?raw","../../src/utils/UserStatus.ts","../../src/components/NcUserStatusIcon/NcUserStatusIcon.vue"],"sourcesContent":["export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4z\\\" />\\n\\t<path fill=\\\"var(--color-warning)\\\" d=\\\"M6.9.1C3 .6-.1 4-.1 8c0 4.4 3.6 8 8 8 4 0 7.4-3 8-6.9-1.2 1.3-2.9 2.1-4.7 2.1-3.5 0-6.4-2.9-6.4-6.4 0-1.9.8-3.6 2.1-4.7z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-away, var(--color-warning, #C88800))\\\"\\n\\t\\td=\\\"m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-busy, var(--color-error, #DB0606))\\\"\\n\\t\\td=\\\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4V-4z\\\" />\\n\\t<path fill=\\\"var(--color-border-error, var(--color-error))\\\" d=\\\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\" />\\n\\t<path fill=\\\"#fdffff\\\" d=\\\"M5 6.5h6c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5H5c-.8 0-1.5-.7-1.5-1.5S4.2 6.5 5 6.5z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-busy, var(--color-error, #DB0606))\\\"\\n\\t\\td=\\\"M280-440h400v-80H280v80ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4V-4z\\\" />\\n\\t<path d=\\\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 3.2c2.7 0 4.8 2.1 4.8 4.8s-2.1 4.8-4.8 4.8S3.2 10.7 3.2 8 5.3 3.2 8 3.2z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-offline, var(--color-text-maxcontrast, #6B6B6B))\\\"\\n\\t\\td=\\\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"var(--color-success)\\\" d=\\\"M4.8 11.2h6.4V4.8H4.8v6.4zM8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-online, var(--color-success, #2D7B41))\\\"\\n\\t\\td=\\\"m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '../l10n.js'\n\ntype Status = 'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'\n\n/**\n * Get the translated label for a given user status\n *\n * @param status - The user status\n */\nexport function getUserStatusText(status: Status): string {\n\tswitch (status) {\n\t\tcase 'away': return t('away') // TRANSLATORS: User status if the user is currently away from keyboard\n\t\tcase 'busy': return t('busy')\n\t\tcase 'dnd': return t('do not disturb')\n\t\tcase 'online': return t('online')\n\t\tcase 'invisible': return t('invisible')\n\t\tcase 'offline': return t('offline')\n\t\tdefault: return status\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\n\nThis component displays a user status icon.\n\n### Example\n\n```vue\n<template>\n\t<div class=\"flex\">\n\t\t<div class=\"grid\">\n\t\t\t<NcUserStatusIcon status=\"online\" />\n\t\t\t<span>Online</span>\n\t\t\t<NcUserStatusIcon status=\"away\" />\n\t\t\t<span>Away</span>\n\t\t\t<NcUserStatusIcon status=\"busy\" />\n\t\t\t<span>Busy</span>\n\t\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t\t<span>Do not disturb</span>\n\t\t\t<NcUserStatusIcon status=\"invisible\" />\n\t\t\t<span>Invisible</span>\n\t\t\t<NcUserStatusIcon status=\"offline\" />\n\t\t\t<span>Offline</span>\n\t\t</div>\n\n\t\t<NcThemeProvider dark>\n\t\t\t<div class=\"grid\">\n\t\t\t\t<NcUserStatusIcon status=\"online\" />\n\t\t\t\t<span>Online</span>\n\t\t\t\t<NcUserStatusIcon status=\"away\" />\n\t\t\t\t<span>Away</span>\n\t\t\t\t<NcUserStatusIcon status=\"busy\" />\n\t\t\t\t<span>Busy</span>\n\t\t\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t\t\t<span>Do not disturb</span>\n\t\t\t\t<NcUserStatusIcon status=\"invisible\" />\n\t\t\t\t<span>Invisible</span>\n\t\t\t\t<NcUserStatusIcon status=\"offline\" />\n\t\t\t\t<span>Offline</span>\n\t\t\t</div>\n\t\t</NcThemeProvider>\n\t</div>\n</template>\n\n<style>\n.flex {\n\tdisplay: flex;\n\tgap: 4px;\n}\n\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: 20px 1fr;\n\tgap: 8px;\n\talign-items: center;\n\tpadding: 4px;\n\twidth: fit-content;\n\tbackground-color: var(--color-main-background);\n\tcolor: var(--color-main-text);\n}\n</style>\n```\n</docs>\n\n<template>\n\t<span\n\t\tv-if=\"activeStatus\"\n\t\tclass=\"user-status-icon\"\n\t\t:class=\"{\n\t\t\t'user-status-icon--invisible': ['invisible', 'offline'].includes(status),\n\t\t}\"\n\t\trole=\"img\"\n\t\t:aria-hidden=\"ariaHidden\"\n\t\t:aria-label=\"ariaLabel\"\n\t\tv-html=\"activeSvg\" /> <!-- eslint-disable-line vue/no-v-html -->\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport awayLegacySvg from '../../assets/status-icons/user-status-away-legacy.svg?raw'\nimport awaySvg from '../../assets/status-icons/user-status-away.svg?raw'\nimport busySvg from '../../assets/status-icons/user-status-busy.svg?raw'\nimport dndLegacySvg from '../../assets/status-icons/user-status-dnd-legacy.svg?raw'\nimport dndSvg from '../../assets/status-icons/user-status-dnd.svg?raw'\nimport invisibleLegacySvg from '../../assets/status-icons/user-status-invisible-legacy.svg?raw'\nimport invisibleSvg from '../../assets/status-icons/user-status-invisible.svg?raw'\nimport onlineLegacySvg from '../../assets/status-icons/user-status-online-legacy.svg?raw'\nimport onlineSvg from '../../assets/status-icons/user-status-online.svg?raw'\nimport { t } from '../../l10n.js'\nimport { isLegacy32 } from '../../utils/legacy.ts'\nimport { getUserStatusText } from '../../utils/UserStatus.ts'\n\nconst matchSvg = {\n\tonline: isLegacy32 ? onlineLegacySvg : onlineSvg,\n\taway: isLegacy32 ? awayLegacySvg : awaySvg,\n\tbusy: isLegacy32 ? awayLegacySvg : busySvg,\n\tdnd: isLegacy32 ? dndLegacySvg : dndSvg,\n\tinvisible: isLegacy32 ? invisibleLegacySvg : invisibleSvg,\n\toffline: isLegacy32 ? invisibleLegacySvg : invisibleSvg,\n}\n\nexport default {\n\tname: 'NcUserStatusIcon',\n\n\tprops: {\n\t\t/**\n\t\t * Set the user id to fetch the status\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Set the status\n\t\t *\n\t\t * @type {'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'}\n\t\t */\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => [\n\t\t\t\t'online',\n\t\t\t\t'away',\n\t\t\t\t'busy',\n\t\t\t\t'dnd',\n\t\t\t\t'invisible',\n\t\t\t\t'offline',\n\t\t\t].includes(value),\n\t\t},\n\n\t\t/**\n\t\t * Set the `aria-hidden` attribute\n\t\t *\n\t\t * @type {'true' | 'false'}\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => [\n\t\t\t\t'true',\n\t\t\t\t'false',\n\t\t\t].includes(value),\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfetchedUserStatus: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tactiveStatus() {\n\t\t\treturn this.status ?? this.fetchedUserStatus\n\t\t},\n\n\t\tactiveSvg() {\n\t\t\treturn matchSvg[this.activeStatus] ?? null\n\t\t},\n\n\t\tariaLabel() {\n\t\t\tif (this.ariaHidden === 'true') {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn t('User status: {status}', { status: getUserStatusText(this.activeStatus) })\n\t\t},\n\t},\n\n\twatch: {\n\t\tuser: {\n\t\t\timmediate: true,\n\t\t\tasync handler(user) {\n\t\t\t\tif (!user || !getCapabilities()?.user_status?.enabled) {\n\t\t\t\t\tthis.fetchedUserStatus = null\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tconst { data } = await axios.get(generateOcsUrl('/apps/user_status/api/v1/statuses/{user}', { user }))\n\t\t\t\t\tthis.fetchedUserStatus = data.ocs?.data?.status\n\t\t\t\t} catch {\n\t\t\t\t\tthis.fetchedUserStatus = null\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-status-icon {\n\t// Custom colors for the svg icons, to not rely on server variables\n\t--user-status-color-online: #2D7B41;\n\t--user-status-color-busy: #DB0606;\n\t--user-status-color-away: #C88800;\n\t--user-status-color-offline: #6B6B6B;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\n\t&--invisible {\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t:deep(svg) {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n}\n</style>\n"],"names":["t","isLegacy32","getCapabilities","axios","generateOcsUrl"],"mappings":";;;;;;;;;AAAA,MAAA,gBAAe;ACAf,MAAA,UAAe;ACAf,MAAA,UAAe;ACAf,MAAA,eAAe;ACAf,MAAA,SAAe;ACAf,MAAA,qBAAe;ACAf,MAAA,eAAe;ACAf,MAAA,kBAAe;ACAf,MAAA,YAAe;;;ACcR,SAAS,kBAAkB,QAAwB;AACzD,UAAQ,QAAA;AAAA,IACP,KAAK;AAAQ,aAAOA,MAAAA,EAAE,MAAM;AAAA;AAAA,IAC5B,KAAK;AAAQ,aAAOA,MAAAA,EAAE,MAAM;AAAA,IAC5B,KAAK;AAAO,aAAOA,MAAAA,EAAE,gBAAgB;AAAA,IACrC,KAAK;AAAU,aAAOA,MAAAA,EAAE,QAAQ;AAAA,IAChC,KAAK;AAAa,aAAOA,MAAAA,EAAE,WAAW;AAAA,IACtC,KAAK;AAAW,aAAOA,MAAAA,EAAE,SAAS;AAAA,IAClC;AAAS,aAAO;AAAA,EAAA;AAElB;AC2EA,MAAA,WAAA;AAAA,EACA,QAAAC,OAAAA,aAAA,kBAAA;AAAA,EACA,MAAAA,OAAAA,aAAA,gBAAA;AAAA,EACA,MAAAA,OAAAA,aAAA,gBAAA;AAAA,EACA,KAAAA,OAAAA,aAAA,eAAA;AAAA,EACA,WAAAA,OAAAA,aAAA,qBAAA;AAAA,EACA,SAAAA,OAAAA,aAAA,qBAAA;AACA;AAEA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,UAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACA,EAAA,SAAA,KAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,UAAA;AAAA,QACA;AAAA,QACA;AAAA,MACA,EAAA,SAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,mBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,eAAA;AACA,aAAA,KAAA,UAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAA,SAAA,KAAA,YAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,UAAA,KAAA,eAAA,QAAA;AACA,eAAA;AAAA,MACA;AACA,aAAAD,MAAAA,EAAA,yBAAA,EAAA,QAAA,kBAAA,KAAA,YAAA,EAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA,QAAA,MAAA;AACA,YAAA,CAAA,QAAA,CAAAE,aAAAA,gBAAA,GAAA,aAAA,SAAA;AACA,eAAA,oBAAA;AACA;AAAA,QACA;AACA,YAAA;AACA,gBAAA,EAAA,KAAA,IAAA,MAAAC,eAAAA,QAAA,IAAAC,sBAAA,4CAAA,EAAA,MAAA,CAAA;AACA,eAAA,oBAAA,KAAA,KAAA,MAAA;AAAA,QACA,QAAA;AACA,eAAA,oBAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;"}
@@ -2,8 +2,8 @@ import '../assets/NcUserStatusIcon-Bw8yMFMP.css';
2
2
  import axios from "@nextcloud/axios";
3
3
  import { getCapabilities } from "@nextcloud/capabilities";
4
4
  import { generateOcsUrl } from "@nextcloud/router";
5
- import { r as register, W as t53, X as t11, a as t } from "./_l10n-DVz9Qdzk.mjs";
6
- import { a as isLegacy32 } from "./legacy-DV3mGZdh.mjs";
5
+ import { r as register, Y as t54, Z as t12, a as t } from "./_l10n-CAnZaLWU.mjs";
6
+ import { a as isLegacy32 } from "./legacy-Cy3dCXuB.mjs";
7
7
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
8
8
  const awayLegacySvg = '<!--\n - SPDX-FileCopyrightText: 2020 Google Inc.\n - SPDX-License-Identifier: Apache-2.0\n-->\n<svg viewBox="-1 -1 18 18" width="16" height="16" xmlns="http://www.w3.org/2000/svg">\n <path fill="none" d="M-4-4h24v24H-4z" />\n <path fill="var(--color-warning)" d="M6.9.1C3 .6-.1 4-.1 8c0 4.4 3.6 8 8 8 4 0 7.4-3 8-6.9-1.2 1.3-2.9 2.1-4.7 2.1-3.5 0-6.4-2.9-6.4-6.4 0-1.9.8-3.6 2.1-4.7z" />\n</svg>\n';
9
9
  const awaySvg = '<!--\n - SPDX-FileCopyrightText: 2020 Google Inc.\n - SPDX-License-Identifier: Apache-2.0\n-->\n<svg viewBox="0 -960 960 960" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg">\n <path\n fill="var(--user-status-color-away, var(--color-warning, #C88800))"\n d="m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z"/>\n</svg>\n';
@@ -14,8 +14,8 @@ const invisibleLegacySvg = '<!--\n - SPDX-FileCopyrightText: 2020 Google Inc.\n
14
14
  const invisibleSvg = '<!--\n - SPDX-FileCopyrightText: 2020 Google Inc.\n - SPDX-License-Identifier: Apache-2.0\n-->\n<svg viewBox="0 -960 960 960" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg">\n <path\n fill="var(--user-status-color-offline, var(--color-text-maxcontrast, #6B6B6B))"\n d="M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z"/>\n</svg>\n';
15
15
  const onlineLegacySvg = '<!--\n - SPDX-FileCopyrightText: 2020 Google Inc.\n - SPDX-License-Identifier: Apache-2.0\n-->\n<svg viewBox="-1 -1 18 18" width="16" height="16" xmlns="http://www.w3.org/2000/svg">\n <path fill="var(--color-success)" d="M4.8 11.2h6.4V4.8H4.8v6.4zM8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z" />\n</svg>\n';
16
16
  const onlineSvg = '<!--\n - SPDX-FileCopyrightText: 2020 Google Inc.\n - SPDX-License-Identifier: Apache-2.0\n-->\n<svg viewBox="0 -960 960 960" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg">\n <path\n fill="var(--user-status-color-online, var(--color-success, #2D7B41))"\n d="m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z"/>\n</svg>\n';
17
- register(t53);
18
- register(t11);
17
+ register(t54);
18
+ register(t12);
19
19
  function getUserStatusText(status) {
20
20
  switch (status) {
21
21
  case "away":
@@ -141,4 +141,4 @@ export {
141
141
  NcUserStatusIcon as N,
142
142
  getUserStatusText as g
143
143
  };
144
- //# sourceMappingURL=NcUserStatusIcon-DdPPN-cP.mjs.map
144
+ //# sourceMappingURL=NcUserStatusIcon-gpl3yJFX.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcUserStatusIcon-DdPPN-cP.mjs","sources":["../../src/assets/status-icons/user-status-away-legacy.svg?raw","../../src/assets/status-icons/user-status-away.svg?raw","../../src/assets/status-icons/user-status-busy.svg?raw","../../src/assets/status-icons/user-status-dnd-legacy.svg?raw","../../src/assets/status-icons/user-status-dnd.svg?raw","../../src/assets/status-icons/user-status-invisible-legacy.svg?raw","../../src/assets/status-icons/user-status-invisible.svg?raw","../../src/assets/status-icons/user-status-online-legacy.svg?raw","../../src/assets/status-icons/user-status-online.svg?raw","../../src/utils/UserStatus.ts","../../src/components/NcUserStatusIcon/NcUserStatusIcon.vue"],"sourcesContent":["export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4z\\\" />\\n\\t<path fill=\\\"var(--color-warning)\\\" d=\\\"M6.9.1C3 .6-.1 4-.1 8c0 4.4 3.6 8 8 8 4 0 7.4-3 8-6.9-1.2 1.3-2.9 2.1-4.7 2.1-3.5 0-6.4-2.9-6.4-6.4 0-1.9.8-3.6 2.1-4.7z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-away, var(--color-warning, #C88800))\\\"\\n\\t\\td=\\\"m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-busy, var(--color-error, #DB0606))\\\"\\n\\t\\td=\\\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4V-4z\\\" />\\n\\t<path fill=\\\"var(--color-border-error, var(--color-error))\\\" d=\\\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\" />\\n\\t<path fill=\\\"#fdffff\\\" d=\\\"M5 6.5h6c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5H5c-.8 0-1.5-.7-1.5-1.5S4.2 6.5 5 6.5z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-busy, var(--color-error, #DB0606))\\\"\\n\\t\\td=\\\"M280-440h400v-80H280v80ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4V-4z\\\" />\\n\\t<path d=\\\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 3.2c2.7 0 4.8 2.1 4.8 4.8s-2.1 4.8-4.8 4.8S3.2 10.7 3.2 8 5.3 3.2 8 3.2z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-offline, var(--color-text-maxcontrast, #6B6B6B))\\\"\\n\\t\\td=\\\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"var(--color-success)\\\" d=\\\"M4.8 11.2h6.4V4.8H4.8v6.4zM8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-online, var(--color-success, #2D7B41))\\\"\\n\\t\\td=\\\"m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '../l10n.js'\n\ntype Status = 'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'\n\n/**\n * Get the translated label for a given user status\n *\n * @param status - The user status\n */\nexport function getUserStatusText(status: Status): string {\n\tswitch (status) {\n\t\tcase 'away': return t('away') // TRANSLATORS: User status if the user is currently away from keyboard\n\t\tcase 'busy': return t('busy')\n\t\tcase 'dnd': return t('do not disturb')\n\t\tcase 'online': return t('online')\n\t\tcase 'invisible': return t('invisible')\n\t\tcase 'offline': return t('offline')\n\t\tdefault: return status\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\n\nThis component displays a user status icon.\n\n### Example\n\n```vue\n<template>\n\t<div class=\"flex\">\n\t\t<div class=\"grid\">\n\t\t\t<NcUserStatusIcon status=\"online\" />\n\t\t\t<span>Online</span>\n\t\t\t<NcUserStatusIcon status=\"away\" />\n\t\t\t<span>Away</span>\n\t\t\t<NcUserStatusIcon status=\"busy\" />\n\t\t\t<span>Busy</span>\n\t\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t\t<span>Do not disturb</span>\n\t\t\t<NcUserStatusIcon status=\"invisible\" />\n\t\t\t<span>Invisible</span>\n\t\t\t<NcUserStatusIcon status=\"offline\" />\n\t\t\t<span>Offline</span>\n\t\t</div>\n\n\t\t<NcThemeProvider dark>\n\t\t\t<div class=\"grid\">\n\t\t\t\t<NcUserStatusIcon status=\"online\" />\n\t\t\t\t<span>Online</span>\n\t\t\t\t<NcUserStatusIcon status=\"away\" />\n\t\t\t\t<span>Away</span>\n\t\t\t\t<NcUserStatusIcon status=\"busy\" />\n\t\t\t\t<span>Busy</span>\n\t\t\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t\t\t<span>Do not disturb</span>\n\t\t\t\t<NcUserStatusIcon status=\"invisible\" />\n\t\t\t\t<span>Invisible</span>\n\t\t\t\t<NcUserStatusIcon status=\"offline\" />\n\t\t\t\t<span>Offline</span>\n\t\t\t</div>\n\t\t</NcThemeProvider>\n\t</div>\n</template>\n\n<style>\n.flex {\n\tdisplay: flex;\n\tgap: 4px;\n}\n\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: 20px 1fr;\n\tgap: 8px;\n\talign-items: center;\n\tpadding: 4px;\n\twidth: fit-content;\n\tbackground-color: var(--color-main-background);\n\tcolor: var(--color-main-text);\n}\n</style>\n```\n</docs>\n\n<template>\n\t<span\n\t\tv-if=\"activeStatus\"\n\t\tclass=\"user-status-icon\"\n\t\t:class=\"{\n\t\t\t'user-status-icon--invisible': ['invisible', 'offline'].includes(status),\n\t\t}\"\n\t\trole=\"img\"\n\t\t:aria-hidden=\"ariaHidden\"\n\t\t:aria-label=\"ariaLabel\"\n\t\tv-html=\"activeSvg\" /> <!-- eslint-disable-line vue/no-v-html -->\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport awayLegacySvg from '../../assets/status-icons/user-status-away-legacy.svg?raw'\nimport awaySvg from '../../assets/status-icons/user-status-away.svg?raw'\nimport busySvg from '../../assets/status-icons/user-status-busy.svg?raw'\nimport dndLegacySvg from '../../assets/status-icons/user-status-dnd-legacy.svg?raw'\nimport dndSvg from '../../assets/status-icons/user-status-dnd.svg?raw'\nimport invisibleLegacySvg from '../../assets/status-icons/user-status-invisible-legacy.svg?raw'\nimport invisibleSvg from '../../assets/status-icons/user-status-invisible.svg?raw'\nimport onlineLegacySvg from '../../assets/status-icons/user-status-online-legacy.svg?raw'\nimport onlineSvg from '../../assets/status-icons/user-status-online.svg?raw'\nimport { t } from '../../l10n.js'\nimport { isLegacy32 } from '../../utils/legacy.ts'\nimport { getUserStatusText } from '../../utils/UserStatus.ts'\n\nconst matchSvg = {\n\tonline: isLegacy32 ? onlineLegacySvg : onlineSvg,\n\taway: isLegacy32 ? awayLegacySvg : awaySvg,\n\tbusy: isLegacy32 ? awayLegacySvg : busySvg,\n\tdnd: isLegacy32 ? dndLegacySvg : dndSvg,\n\tinvisible: isLegacy32 ? invisibleLegacySvg : invisibleSvg,\n\toffline: isLegacy32 ? invisibleLegacySvg : invisibleSvg,\n}\n\nexport default {\n\tname: 'NcUserStatusIcon',\n\n\tprops: {\n\t\t/**\n\t\t * Set the user id to fetch the status\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Set the status\n\t\t *\n\t\t * @type {'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'}\n\t\t */\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => [\n\t\t\t\t'online',\n\t\t\t\t'away',\n\t\t\t\t'busy',\n\t\t\t\t'dnd',\n\t\t\t\t'invisible',\n\t\t\t\t'offline',\n\t\t\t].includes(value),\n\t\t},\n\n\t\t/**\n\t\t * Set the `aria-hidden` attribute\n\t\t *\n\t\t * @type {'true' | 'false'}\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => [\n\t\t\t\t'true',\n\t\t\t\t'false',\n\t\t\t].includes(value),\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfetchedUserStatus: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tactiveStatus() {\n\t\t\treturn this.status ?? this.fetchedUserStatus\n\t\t},\n\n\t\tactiveSvg() {\n\t\t\treturn matchSvg[this.activeStatus] ?? null\n\t\t},\n\n\t\tariaLabel() {\n\t\t\tif (this.ariaHidden === 'true') {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn t('User status: {status}', { status: getUserStatusText(this.activeStatus) })\n\t\t},\n\t},\n\n\twatch: {\n\t\tuser: {\n\t\t\timmediate: true,\n\t\t\tasync handler(user) {\n\t\t\t\tif (!user || !getCapabilities()?.user_status?.enabled) {\n\t\t\t\t\tthis.fetchedUserStatus = null\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tconst { data } = await axios.get(generateOcsUrl('/apps/user_status/api/v1/statuses/{user}', { user }))\n\t\t\t\t\tthis.fetchedUserStatus = data.ocs?.data?.status\n\t\t\t\t} catch {\n\t\t\t\t\tthis.fetchedUserStatus = null\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-status-icon {\n\t// Custom colors for the svg icons, to not rely on server variables\n\t--user-status-color-online: #2D7B41;\n\t--user-status-color-busy: #DB0606;\n\t--user-status-color-away: #C88800;\n\t--user-status-color-offline: #6B6B6B;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\n\t&--invisible {\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t:deep(svg) {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n}\n</style>\n"],"names":[],"mappings":";;;;;;AAAA,MAAA,gBAAe;ACAf,MAAA,UAAe;ACAf,MAAA,UAAe;ACAf,MAAA,eAAe;ACAf,MAAA,SAAe;ACAf,MAAA,qBAAe;ACAf,MAAA,eAAe;ACAf,MAAA,kBAAe;ACAf,MAAA,YAAe;;;ACcR,SAAS,kBAAkB,QAAwB;AACzD,UAAQ,QAAA;AAAA,IACP,KAAK;AAAQ,aAAO,EAAE,MAAM;AAAA;AAAA,IAC5B,KAAK;AAAQ,aAAO,EAAE,MAAM;AAAA,IAC5B,KAAK;AAAO,aAAO,EAAE,gBAAgB;AAAA,IACrC,KAAK;AAAU,aAAO,EAAE,QAAQ;AAAA,IAChC,KAAK;AAAa,aAAO,EAAE,WAAW;AAAA,IACtC,KAAK;AAAW,aAAO,EAAE,SAAS;AAAA,IAClC;AAAS,aAAO;AAAA,EAAA;AAElB;AC2EA,MAAA,WAAA;AAAA,EACA,QAAA,aAAA,kBAAA;AAAA,EACA,MAAA,aAAA,gBAAA;AAAA,EACA,MAAA,aAAA,gBAAA;AAAA,EACA,KAAA,aAAA,eAAA;AAAA,EACA,WAAA,aAAA,qBAAA;AAAA,EACA,SAAA,aAAA,qBAAA;AACA;AAEA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,UAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACA,EAAA,SAAA,KAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,UAAA;AAAA,QACA;AAAA,QACA;AAAA,MACA,EAAA,SAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,mBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,eAAA;AACA,aAAA,KAAA,UAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAA,SAAA,KAAA,YAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,UAAA,KAAA,eAAA,QAAA;AACA,eAAA;AAAA,MACA;AACA,aAAA,EAAA,yBAAA,EAAA,QAAA,kBAAA,KAAA,YAAA,EAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA,QAAA,MAAA;AACA,YAAA,CAAA,QAAA,CAAA,gBAAA,GAAA,aAAA,SAAA;AACA,eAAA,oBAAA;AACA;AAAA,QACA;AACA,YAAA;AACA,gBAAA,EAAA,KAAA,IAAA,MAAA,MAAA,IAAA,eAAA,4CAAA,EAAA,MAAA,CAAA;AACA,eAAA,oBAAA,KAAA,KAAA,MAAA;AAAA,QACA,QAAA;AACA,eAAA,oBAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcUserStatusIcon-gpl3yJFX.mjs","sources":["../../src/assets/status-icons/user-status-away-legacy.svg?raw","../../src/assets/status-icons/user-status-away.svg?raw","../../src/assets/status-icons/user-status-busy.svg?raw","../../src/assets/status-icons/user-status-dnd-legacy.svg?raw","../../src/assets/status-icons/user-status-dnd.svg?raw","../../src/assets/status-icons/user-status-invisible-legacy.svg?raw","../../src/assets/status-icons/user-status-invisible.svg?raw","../../src/assets/status-icons/user-status-online-legacy.svg?raw","../../src/assets/status-icons/user-status-online.svg?raw","../../src/utils/UserStatus.ts","../../src/components/NcUserStatusIcon/NcUserStatusIcon.vue"],"sourcesContent":["export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4z\\\" />\\n\\t<path fill=\\\"var(--color-warning)\\\" d=\\\"M6.9.1C3 .6-.1 4-.1 8c0 4.4 3.6 8 8 8 4 0 7.4-3 8-6.9-1.2 1.3-2.9 2.1-4.7 2.1-3.5 0-6.4-2.9-6.4-6.4 0-1.9.8-3.6 2.1-4.7z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-away, var(--color-warning, #C88800))\\\"\\n\\t\\td=\\\"m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-busy, var(--color-error, #DB0606))\\\"\\n\\t\\td=\\\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4V-4z\\\" />\\n\\t<path fill=\\\"var(--color-border-error, var(--color-error))\\\" d=\\\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\" />\\n\\t<path fill=\\\"#fdffff\\\" d=\\\"M5 6.5h6c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5H5c-.8 0-1.5-.7-1.5-1.5S4.2 6.5 5 6.5z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-busy, var(--color-error, #DB0606))\\\"\\n\\t\\td=\\\"M280-440h400v-80H280v80ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"none\\\" d=\\\"M-4-4h24v24H-4V-4z\\\" />\\n\\t<path d=\\\"M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 3.2c2.7 0 4.8 2.1 4.8 4.8s-2.1 4.8-4.8 4.8S3.2 10.7 3.2 8 5.3 3.2 8 3.2z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-offline, var(--color-text-maxcontrast, #6B6B6B))\\\"\\n\\t\\td=\\\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\\\"/>\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"-1 -1 18 18\\\" width=\\\"16\\\" height=\\\"16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path fill=\\\"var(--color-success)\\\" d=\\\"M4.8 11.2h6.4V4.8H4.8v6.4zM8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8z\\\" />\\n</svg>\\n\"","export default \"<!--\\n - SPDX-FileCopyrightText: 2020 Google Inc.\\n - SPDX-License-Identifier: Apache-2.0\\n-->\\n<svg viewBox=\\\"0 -960 960 960\\\" width=\\\"24px\\\" height=\\\"24px\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n\\t<path\\n\\t\\tfill=\\\"var(--user-status-color-online, var(--color-success, #2D7B41))\\\"\\n\\t\\td=\\\"m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z\\\"/>\\n</svg>\\n\"","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '../l10n.js'\n\ntype Status = 'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'\n\n/**\n * Get the translated label for a given user status\n *\n * @param status - The user status\n */\nexport function getUserStatusText(status: Status): string {\n\tswitch (status) {\n\t\tcase 'away': return t('away') // TRANSLATORS: User status if the user is currently away from keyboard\n\t\tcase 'busy': return t('busy')\n\t\tcase 'dnd': return t('do not disturb')\n\t\tcase 'online': return t('online')\n\t\tcase 'invisible': return t('invisible')\n\t\tcase 'offline': return t('offline')\n\t\tdefault: return status\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\n\nThis component displays a user status icon.\n\n### Example\n\n```vue\n<template>\n\t<div class=\"flex\">\n\t\t<div class=\"grid\">\n\t\t\t<NcUserStatusIcon status=\"online\" />\n\t\t\t<span>Online</span>\n\t\t\t<NcUserStatusIcon status=\"away\" />\n\t\t\t<span>Away</span>\n\t\t\t<NcUserStatusIcon status=\"busy\" />\n\t\t\t<span>Busy</span>\n\t\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t\t<span>Do not disturb</span>\n\t\t\t<NcUserStatusIcon status=\"invisible\" />\n\t\t\t<span>Invisible</span>\n\t\t\t<NcUserStatusIcon status=\"offline\" />\n\t\t\t<span>Offline</span>\n\t\t</div>\n\n\t\t<NcThemeProvider dark>\n\t\t\t<div class=\"grid\">\n\t\t\t\t<NcUserStatusIcon status=\"online\" />\n\t\t\t\t<span>Online</span>\n\t\t\t\t<NcUserStatusIcon status=\"away\" />\n\t\t\t\t<span>Away</span>\n\t\t\t\t<NcUserStatusIcon status=\"busy\" />\n\t\t\t\t<span>Busy</span>\n\t\t\t\t<NcUserStatusIcon status=\"dnd\" />\n\t\t\t\t<span>Do not disturb</span>\n\t\t\t\t<NcUserStatusIcon status=\"invisible\" />\n\t\t\t\t<span>Invisible</span>\n\t\t\t\t<NcUserStatusIcon status=\"offline\" />\n\t\t\t\t<span>Offline</span>\n\t\t\t</div>\n\t\t</NcThemeProvider>\n\t</div>\n</template>\n\n<style>\n.flex {\n\tdisplay: flex;\n\tgap: 4px;\n}\n\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: 20px 1fr;\n\tgap: 8px;\n\talign-items: center;\n\tpadding: 4px;\n\twidth: fit-content;\n\tbackground-color: var(--color-main-background);\n\tcolor: var(--color-main-text);\n}\n</style>\n```\n</docs>\n\n<template>\n\t<span\n\t\tv-if=\"activeStatus\"\n\t\tclass=\"user-status-icon\"\n\t\t:class=\"{\n\t\t\t'user-status-icon--invisible': ['invisible', 'offline'].includes(status),\n\t\t}\"\n\t\trole=\"img\"\n\t\t:aria-hidden=\"ariaHidden\"\n\t\t:aria-label=\"ariaLabel\"\n\t\tv-html=\"activeSvg\" /> <!-- eslint-disable-line vue/no-v-html -->\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport awayLegacySvg from '../../assets/status-icons/user-status-away-legacy.svg?raw'\nimport awaySvg from '../../assets/status-icons/user-status-away.svg?raw'\nimport busySvg from '../../assets/status-icons/user-status-busy.svg?raw'\nimport dndLegacySvg from '../../assets/status-icons/user-status-dnd-legacy.svg?raw'\nimport dndSvg from '../../assets/status-icons/user-status-dnd.svg?raw'\nimport invisibleLegacySvg from '../../assets/status-icons/user-status-invisible-legacy.svg?raw'\nimport invisibleSvg from '../../assets/status-icons/user-status-invisible.svg?raw'\nimport onlineLegacySvg from '../../assets/status-icons/user-status-online-legacy.svg?raw'\nimport onlineSvg from '../../assets/status-icons/user-status-online.svg?raw'\nimport { t } from '../../l10n.js'\nimport { isLegacy32 } from '../../utils/legacy.ts'\nimport { getUserStatusText } from '../../utils/UserStatus.ts'\n\nconst matchSvg = {\n\tonline: isLegacy32 ? onlineLegacySvg : onlineSvg,\n\taway: isLegacy32 ? awayLegacySvg : awaySvg,\n\tbusy: isLegacy32 ? awayLegacySvg : busySvg,\n\tdnd: isLegacy32 ? dndLegacySvg : dndSvg,\n\tinvisible: isLegacy32 ? invisibleLegacySvg : invisibleSvg,\n\toffline: isLegacy32 ? invisibleLegacySvg : invisibleSvg,\n}\n\nexport default {\n\tname: 'NcUserStatusIcon',\n\n\tprops: {\n\t\t/**\n\t\t * Set the user id to fetch the status\n\t\t */\n\t\tuser: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Set the status\n\t\t *\n\t\t * @type {'online' | 'away' | 'busy' | 'dnd' | 'invisible' | 'offline'}\n\t\t */\n\t\tstatus: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => [\n\t\t\t\t'online',\n\t\t\t\t'away',\n\t\t\t\t'busy',\n\t\t\t\t'dnd',\n\t\t\t\t'invisible',\n\t\t\t\t'offline',\n\t\t\t].includes(value),\n\t\t},\n\n\t\t/**\n\t\t * Set the `aria-hidden` attribute\n\t\t *\n\t\t * @type {'true' | 'false'}\n\t\t */\n\t\tariaHidden: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t\tvalidator: (value) => [\n\t\t\t\t'true',\n\t\t\t\t'false',\n\t\t\t].includes(value),\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfetchedUserStatus: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tactiveStatus() {\n\t\t\treturn this.status ?? this.fetchedUserStatus\n\t\t},\n\n\t\tactiveSvg() {\n\t\t\treturn matchSvg[this.activeStatus] ?? null\n\t\t},\n\n\t\tariaLabel() {\n\t\t\tif (this.ariaHidden === 'true') {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn t('User status: {status}', { status: getUserStatusText(this.activeStatus) })\n\t\t},\n\t},\n\n\twatch: {\n\t\tuser: {\n\t\t\timmediate: true,\n\t\t\tasync handler(user) {\n\t\t\t\tif (!user || !getCapabilities()?.user_status?.enabled) {\n\t\t\t\t\tthis.fetchedUserStatus = null\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tconst { data } = await axios.get(generateOcsUrl('/apps/user_status/api/v1/statuses/{user}', { user }))\n\t\t\t\t\tthis.fetchedUserStatus = data.ocs?.data?.status\n\t\t\t\t} catch {\n\t\t\t\t\tthis.fetchedUserStatus = null\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.user-status-icon {\n\t// Custom colors for the svg icons, to not rely on server variables\n\t--user-status-color-online: #2D7B41;\n\t--user-status-color-busy: #DB0606;\n\t--user-status-color-away: #C88800;\n\t--user-status-color-offline: #6B6B6B;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\n\t&--invisible {\n\t\tfilter: var(--background-invert-if-dark);\n\t}\n\n\t:deep(svg) {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n}\n</style>\n"],"names":[],"mappings":";;;;;;AAAA,MAAA,gBAAe;ACAf,MAAA,UAAe;ACAf,MAAA,UAAe;ACAf,MAAA,eAAe;ACAf,MAAA,SAAe;ACAf,MAAA,qBAAe;ACAf,MAAA,eAAe;ACAf,MAAA,kBAAe;ACAf,MAAA,YAAe;;;ACcR,SAAS,kBAAkB,QAAwB;AACzD,UAAQ,QAAA;AAAA,IACP,KAAK;AAAQ,aAAO,EAAE,MAAM;AAAA;AAAA,IAC5B,KAAK;AAAQ,aAAO,EAAE,MAAM;AAAA,IAC5B,KAAK;AAAO,aAAO,EAAE,gBAAgB;AAAA,IACrC,KAAK;AAAU,aAAO,EAAE,QAAQ;AAAA,IAChC,KAAK;AAAa,aAAO,EAAE,WAAW;AAAA,IACtC,KAAK;AAAW,aAAO,EAAE,SAAS;AAAA,IAClC;AAAS,aAAO;AAAA,EAAA;AAElB;AC2EA,MAAA,WAAA;AAAA,EACA,QAAA,aAAA,kBAAA;AAAA,EACA,MAAA,aAAA,gBAAA;AAAA,EACA,MAAA,aAAA,gBAAA;AAAA,EACA,KAAA,aAAA,eAAA;AAAA,EACA,WAAA,aAAA,qBAAA;AAAA,EACA,SAAA,aAAA,qBAAA;AACA;AAEA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,UAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACA,EAAA,SAAA,KAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,UAAA;AAAA,QACA;AAAA,QACA;AAAA,MACA,EAAA,SAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,mBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,eAAA;AACA,aAAA,KAAA,UAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAA,SAAA,KAAA,YAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,UAAA,KAAA,eAAA,QAAA;AACA,eAAA;AAAA,MACA;AACA,aAAA,EAAA,yBAAA,EAAA,QAAA,kBAAA,KAAA,YAAA,EAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA,QAAA,MAAA;AACA,YAAA,CAAA,QAAA,CAAA,gBAAA,GAAA,aAAA,SAAA;AACA,eAAA,oBAAA;AACA;AAAA,QACA;AACA,YAAA;AACA,gBAAA,EAAA,KAAA,IAAA,MAAA,MAAA,IAAA,eAAA,4CAAA,EAAA,MAAA,CAAA;AACA,eAAA,oBAAA,KAAA,KAAA,MAAA;AAAA,QACA,QAAA;AACA,eAAA,oBAAA;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;"}
@@ -5,10 +5,10 @@ function ScopeComponent(Component) {
5
5
  Component.mounted = [Component.mounted];
6
6
  }
7
7
  Component.mounted.push(function() {
8
- this.$el.setAttribute(`data-v-${"1e35ee1"}`, "");
8
+ this.$el.setAttribute(`data-v-${"c9c00ef"}`, "");
9
9
  });
10
10
  }
11
11
  export {
12
12
  ScopeComponent as S
13
13
  };
14
- //# sourceMappingURL=ScopeComponent-77Az-4PS.mjs.map
14
+ //# sourceMappingURL=ScopeComponent-Df3JYkxQ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeComponent-77Az-4PS.mjs","sources":["../../src/utils/ScopeComponent.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Manually apply mixing to add data-v-SCOPE attribute on a component's root\n *\n * @param {import('vue').Component} Component - Vue component\n */\nfunction ScopeComponent(Component) {\n\t// Init mounted vue if none\n\tif (!Component.mounted) {\n\t\tComponent.mounted = []\n\t} else if (!Array.isArray(Component.mounted)) {\n\t\tComponent.mounted = [Component.mounted]\n\t}\n\n\t// Inject root scoping function\n\tComponent.mounted.push(function() {\n\t\tthis.$el.setAttribute(`data-v-${SCOPE_VERSION}`, '')\n\t})\n}\n\nexport default ScopeComponent\n"],"names":[],"mappings":"AAUA,SAAS,eAAe,WAAW;AAElC,MAAI,CAAC,UAAU,SAAS;AACvB,cAAU,UAAU,CAAA;AAAA,EACrB,WAAW,CAAC,MAAM,QAAQ,UAAU,OAAO,GAAG;AAC7C,cAAU,UAAU,CAAC,UAAU,OAAO;AAAA,EACvC;AAGA,YAAU,QAAQ,KAAK,WAAW;AACjC,SAAK,IAAI,aAAa,UAAU,SAAa,IAAI,EAAE;AAAA,EACpD,CAAC;AACF;"}
1
+ {"version":3,"file":"ScopeComponent-Df3JYkxQ.mjs","sources":["../../src/utils/ScopeComponent.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Manually apply mixing to add data-v-SCOPE attribute on a component's root\n *\n * @param {import('vue').Component} Component - Vue component\n */\nfunction ScopeComponent(Component) {\n\t// Init mounted vue if none\n\tif (!Component.mounted) {\n\t\tComponent.mounted = []\n\t} else if (!Array.isArray(Component.mounted)) {\n\t\tComponent.mounted = [Component.mounted]\n\t}\n\n\t// Inject root scoping function\n\tComponent.mounted.push(function() {\n\t\tthis.$el.setAttribute(`data-v-${SCOPE_VERSION}`, '')\n\t})\n}\n\nexport default ScopeComponent\n"],"names":[],"mappings":"AAUA,SAAS,eAAe,WAAW;AAElC,MAAI,CAAC,UAAU,SAAS;AACvB,cAAU,UAAU,CAAA;AAAA,EACrB,WAAW,CAAC,MAAM,QAAQ,UAAU,OAAO,GAAG;AAC7C,cAAU,UAAU,CAAC,UAAU,OAAO;AAAA,EACvC;AAGA,YAAU,QAAQ,KAAK,WAAW;AACjC,SAAK,IAAI,aAAa,UAAU,SAAa,IAAI,EAAE;AAAA,EACpD,CAAC;AACF;"}
@@ -6,8 +6,8 @@ function ScopeComponent(Component) {
6
6
  Component.mounted = [Component.mounted];
7
7
  }
8
8
  Component.mounted.push(function() {
9
- this.$el.setAttribute(`data-v-${"1e35ee1"}`, "");
9
+ this.$el.setAttribute(`data-v-${"c9c00ef"}`, "");
10
10
  });
11
11
  }
12
12
  exports.ScopeComponent = ScopeComponent;
13
- //# sourceMappingURL=ScopeComponent-BLaRYUFv.cjs.map
13
+ //# sourceMappingURL=ScopeComponent-O4dfHJkP.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeComponent-BLaRYUFv.cjs","sources":["../../src/utils/ScopeComponent.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Manually apply mixing to add data-v-SCOPE attribute on a component's root\n *\n * @param {import('vue').Component} Component - Vue component\n */\nfunction ScopeComponent(Component) {\n\t// Init mounted vue if none\n\tif (!Component.mounted) {\n\t\tComponent.mounted = []\n\t} else if (!Array.isArray(Component.mounted)) {\n\t\tComponent.mounted = [Component.mounted]\n\t}\n\n\t// Inject root scoping function\n\tComponent.mounted.push(function() {\n\t\tthis.$el.setAttribute(`data-v-${SCOPE_VERSION}`, '')\n\t})\n}\n\nexport default ScopeComponent\n"],"names":[],"mappings":";AAUA,SAAS,eAAe,WAAW;AAElC,MAAI,CAAC,UAAU,SAAS;AACvB,cAAU,UAAU,CAAA;AAAA,EACrB,WAAW,CAAC,MAAM,QAAQ,UAAU,OAAO,GAAG;AAC7C,cAAU,UAAU,CAAC,UAAU,OAAO;AAAA,EACvC;AAGA,YAAU,QAAQ,KAAK,WAAW;AACjC,SAAK,IAAI,aAAa,UAAU,SAAa,IAAI,EAAE;AAAA,EACpD,CAAC;AACF;;"}
1
+ {"version":3,"file":"ScopeComponent-O4dfHJkP.cjs","sources":["../../src/utils/ScopeComponent.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Manually apply mixing to add data-v-SCOPE attribute on a component's root\n *\n * @param {import('vue').Component} Component - Vue component\n */\nfunction ScopeComponent(Component) {\n\t// Init mounted vue if none\n\tif (!Component.mounted) {\n\t\tComponent.mounted = []\n\t} else if (!Array.isArray(Component.mounted)) {\n\t\tComponent.mounted = [Component.mounted]\n\t}\n\n\t// Inject root scoping function\n\tComponent.mounted.push(function() {\n\t\tthis.$el.setAttribute(`data-v-${SCOPE_VERSION}`, '')\n\t})\n}\n\nexport default ScopeComponent\n"],"names":[],"mappings":";AAUA,SAAS,eAAe,WAAW;AAElC,MAAI,CAAC,UAAU,SAAS;AACvB,cAAU,UAAU,CAAA;AAAA,EACrB,WAAW,CAAC,MAAM,QAAQ,UAAU,OAAO,GAAG;AAC7C,cAAU,UAAU,CAAC,UAAU,OAAO;AAAA,EACvC;AAGA,YAAU,QAAQ,KAAK,WAAW;AACjC,SAAK,IAAI,aAAa,UAAU,SAAa,IAAI,EAAE;AAAA,EACpD,CAAC;AACF;;"}